@gjsify/timers 0.3.21 → 0.4.3
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/lib/esm/_virtual/_rolldown/runtime.js +1 -0
- package/lib/esm/index.js +1 -1
- package/lib/esm/promises.js +1 -1
- package/lib/esm/timeout.js +1 -1
- package/lib/types/promises.d.ts +19 -0
- package/package.json +42 -39
- package/src/extended.spec.ts +0 -149
- package/src/index.spec.ts +0 -326
- package/src/index.ts +0 -83
- package/src/promises.spec.ts +0 -136
- package/src/promises.ts +0 -89
- package/src/test.mts +0 -11
- package/src/timeout.ts +0 -126
- package/tsconfig.json +0 -29
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.defineProperty,__name=(t,n)=>e(t,`name`,{value:n,configurable:!0});export{__name};
|
package/lib/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Immediate as e,Timeout as t}from"./timeout.js";function _setTimeout(e,n=0,...r){return new t(e,n,r,!1)}function _clearTimeout(e){e instanceof t?e.close():e!=null&&clearTimeout(e)}function _setInterval(e,n=0,...r){return new t(e,n,r,!0)}function _clearInterval(e){e instanceof t?e.close():e!=null&&clearInterval(e)}function _setImmediate(t,...n){return new e(t,n)}function _clearImmediate(t){t instanceof e?t.close():t!=null&&clearTimeout(t)}var n={setTimeout:_setTimeout,clearTimeout:_clearTimeout,setInterval:_setInterval,clearInterval:_clearInterval,setImmediate:_setImmediate,clearImmediate:_clearImmediate,Timeout:t,Immediate:e};export{e as Immediate,t as Timeout,_clearImmediate as clearImmediate,_clearInterval as clearInterval,_clearTimeout as clearTimeout,n as default,_setImmediate as setImmediate,_setInterval as setInterval,_setTimeout as setTimeout};
|
|
1
|
+
import"./_virtual/_rolldown/runtime.js";import{Immediate as e,Timeout as t}from"./timeout.js";function _setTimeout(e,n=0,...r){return new t(e,n,r,!1)}function _clearTimeout(e){e instanceof t?e.close():e!=null&&clearTimeout(e)}function _setInterval(e,n=0,...r){return new t(e,n,r,!0)}function _clearInterval(e){e instanceof t?e.close():e!=null&&clearInterval(e)}function _setImmediate(t,...n){return new e(t,n)}function _clearImmediate(t){t instanceof e?t.close():t!=null&&clearTimeout(t)}var n={setTimeout:_setTimeout,clearTimeout:_clearTimeout,setInterval:_setInterval,clearInterval:_clearInterval,setImmediate:_setImmediate,clearImmediate:_clearImmediate,Timeout:t,Immediate:e};export{e as Immediate,t as Timeout,_clearImmediate as clearImmediate,_clearInterval as clearInterval,_clearTimeout as clearTimeout,n as default,_setImmediate as setImmediate,_setInterval as setInterval,_setTimeout as setTimeout};
|
package/lib/esm/promises.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Timeout as e}from"./timeout.js";function setTimeout(t=0,n,r){return new Promise((i,a)=>{if(r?.signal?.aborted){a(r.signal.reason??new DOMException(`The operation was aborted`,`AbortError`));return}let o=new e(()=>{cleanup(),i(n)},t,[],!1);r?.ref===!1&&o.unref();let onAbort;function cleanup(){onAbort&&r?.signal&&r.signal.removeEventListener(`abort`,onAbort)}r?.signal&&(onAbort=()=>{o.close(),a(r.signal.reason??new DOMException(`The operation was aborted`,`AbortError`))},r.signal.addEventListener(`abort`,onAbort,{once:!0}))})}function setImmediate(e,t){return setTimeout(0,e,t)}async function*setInterval(t=0,n,r){if(r?.signal?.aborted)throw r.signal.reason??new DOMException(`The operation was aborted`,`AbortError`);for(;;){if(r?.signal?.aborted)throw r.signal.reason??new DOMException(`The operation was aborted`,`AbortError`);yield await new Promise((i,a)=>{let o=new e(()=>{cleanup(),i(n)},t,[],!1);r?.ref===!1&&o.unref();let onAbort;function cleanup(){onAbort&&r?.signal&&r.signal.removeEventListener(`abort`,onAbort)}r?.signal&&(onAbort=()=>{o.close(),a(r.signal.reason??new DOMException(`The operation was aborted`,`AbortError`))},r.signal.addEventListener(`abort`,onAbort,{once:!0}))})}}export{setImmediate,setInterval,setTimeout};
|
|
1
|
+
import"./_virtual/_rolldown/runtime.js";import{Timeout as e}from"./timeout.js";function setTimeout(t=0,n,r){return new Promise((i,a)=>{if(r?.signal?.aborted){a(r.signal.reason??new DOMException(`The operation was aborted`,`AbortError`));return}let o=new e(()=>{cleanup(),i(n)},t,[],!1);r?.ref===!1&&o.unref();let onAbort;function cleanup(){onAbort&&r?.signal&&r.signal.removeEventListener(`abort`,onAbort)}r?.signal&&(onAbort=()=>{o.close(),a(r.signal.reason??new DOMException(`The operation was aborted`,`AbortError`))},r.signal.addEventListener(`abort`,onAbort,{once:!0}))})}function setImmediate(e,t){return setTimeout(0,e,t)}async function*setInterval(t=0,n,r){if(r?.signal?.aborted)throw r.signal.reason??new DOMException(`The operation was aborted`,`AbortError`);for(;;){if(r?.signal?.aborted)throw r.signal.reason??new DOMException(`The operation was aborted`,`AbortError`);yield await new Promise((i,a)=>{let o=new e(()=>{cleanup(),i(n)},t,[],!1);r?.ref===!1&&o.unref();let onAbort;function cleanup(){onAbort&&r?.signal&&r.signal.removeEventListener(`abort`,onAbort)}r?.signal&&(onAbort=()=>{o.close(),a(r.signal.reason??new DOMException(`The operation was aborted`,`AbortError`))},r.signal.addEventListener(`abort`,onAbort,{once:!0}))})}}const t={wait(e=1,t){return setTimeout(e,void 0,t)},yield(){return new Promise(e=>{queueMicrotask(e)})}};export{t as scheduler,setImmediate,setInterval,setTimeout};
|
package/lib/esm/timeout.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Timeout=class{_id;_ref=!0;_callback;_delay;_args;_isInterval;constructor(e,t,n,r){this._callback=e,this._delay=t,this._args=n,this._isInterval=r,r?this._id=setInterval(e,t,...n):this._id=setTimeout(e,t,...n)}ref(){return this._ref=!0,this}unref(){return this._ref=!1,this}hasRef(){return this._ref}refresh(){return this._id!=null&&(this._isInterval?(clearInterval(this._id),this._id=setInterval(this._callback,this._delay,...this._args)):(clearTimeout(this._id),this._id=setTimeout(this._callback,this._delay,...this._args))),this}close(){this._id!=null&&(this._isInterval?clearInterval(this._id):clearTimeout(this._id),this._id=null)}[Symbol.toPrimitive](){return this._id}},Immediate=class{_id=null;_ref=!0;_cancelled=!1;constructor(e,t){Promise.resolve().then(()=>{this._cancelled||e(...t)})}ref(){return this._ref=!0,this}unref(){return this._ref=!1,this}hasRef(){return this._ref}close(){this._cancelled=!0,this._id!=null&&(clearTimeout(this._id),this._id=null)}[Symbol.toPrimitive](){return this._id}};export{Immediate,Timeout};
|
|
1
|
+
import"./_virtual/_rolldown/runtime.js";var Timeout=class{_id;_ref=!0;_callback;_delay;_args;_isInterval;constructor(e,t,n,r){this._callback=e,this._delay=t,this._args=n,this._isInterval=r,r?this._id=setInterval(e,t,...n):this._id=setTimeout(e,t,...n)}ref(){return this._ref=!0,this}unref(){return this._ref=!1,this}hasRef(){return this._ref}refresh(){return this._id!=null&&(this._isInterval?(clearInterval(this._id),this._id=setInterval(this._callback,this._delay,...this._args)):(clearTimeout(this._id),this._id=setTimeout(this._callback,this._delay,...this._args))),this}close(){this._id!=null&&(this._isInterval?clearInterval(this._id):clearTimeout(this._id),this._id=null)}[Symbol.toPrimitive](){return this._id}},Immediate=class{_id=null;_ref=!0;_cancelled=!1;constructor(e,t){Promise.resolve().then(()=>{this._cancelled||e(...t)})}ref(){return this._ref=!0,this}unref(){return this._ref=!1,this}hasRef(){return this._ref}close(){this._cancelled=!0,this._id!=null&&(clearTimeout(this._id),this._id=null)}[Symbol.toPrimitive](){return this._id}};export{Immediate,Timeout};
|
package/lib/types/promises.d.ts
CHANGED
|
@@ -22,3 +22,22 @@ export declare function setInterval<T = void>(delay?: number, value?: T, options
|
|
|
22
22
|
signal?: AbortSignal;
|
|
23
23
|
ref?: boolean;
|
|
24
24
|
}): AsyncGenerator<T>;
|
|
25
|
+
/**
|
|
26
|
+
* `scheduler` namespace — Node 19+/24 stable APIs.
|
|
27
|
+
* Reference: https://nodejs.org/api/timers.html#timerspromisesschedulerwaitdelay-options
|
|
28
|
+
*/
|
|
29
|
+
export declare const scheduler: {
|
|
30
|
+
/**
|
|
31
|
+
* Returns a promise that resolves after `delay` ms (or 1ms if undefined).
|
|
32
|
+
* Same as `setTimeout(delay)` but co-located on the `scheduler` namespace.
|
|
33
|
+
*/
|
|
34
|
+
wait(delay?: number, options?: {
|
|
35
|
+
signal?: AbortSignal;
|
|
36
|
+
ref?: boolean;
|
|
37
|
+
}): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Yields control back to the event loop — resolves on the next macrotask.
|
|
40
|
+
* Lighter than `setTimeout(0)` (no timer source allocation, just a microtask).
|
|
41
|
+
*/
|
|
42
|
+
yield(): Promise<void>;
|
|
43
|
+
};
|
package/package.json
CHANGED
|
@@ -1,42 +1,45 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
"name": "@gjsify/timers",
|
|
3
|
+
"version": "0.4.3",
|
|
4
|
+
"description": "Node.js timers module for Gjs",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"module": "lib/esm/index.js",
|
|
7
|
+
"types": "lib/types/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./lib/types/index.d.ts",
|
|
11
|
+
"default": "./lib/esm/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./promises": {
|
|
14
|
+
"types": "./lib/types/promises.d.ts",
|
|
15
|
+
"default": "./lib/esm/promises.js"
|
|
16
|
+
}
|
|
12
17
|
},
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
"files": [
|
|
19
|
+
"lib"
|
|
20
|
+
],
|
|
21
|
+
"scripts": {
|
|
22
|
+
"clear": "rm -rf lib tsconfig.tsbuildinfo tsconfig.types.tsbuildinfo test.gjs.mjs test.node.mjs || exit 0",
|
|
23
|
+
"check": "tsc --noEmit",
|
|
24
|
+
"build": "gjsify run build:gjsify && gjsify run build:types",
|
|
25
|
+
"build:gjsify": "gjsify build --library 'src/**/*.{ts,js}' --exclude 'src/**/*.spec.{mts,ts}' 'src/test.{mts,ts}'",
|
|
26
|
+
"build:types": "tsc",
|
|
27
|
+
"build:test": "gjsify run build:test:gjs && gjsify run build:test:node",
|
|
28
|
+
"build:test:gjs": "gjsify build src/test.mts --app gjs --outfile test.gjs.mjs",
|
|
29
|
+
"build:test:node": "gjsify build src/test.mts --app node --outfile test.node.mjs",
|
|
30
|
+
"test": "gjsify run build:gjsify && gjsify run build:test && gjsify run test:node && gjsify run test:gjs",
|
|
31
|
+
"test:gjs": "gjsify run test.gjs.mjs",
|
|
32
|
+
"test:node": "node test.node.mjs"
|
|
33
|
+
},
|
|
34
|
+
"keywords": [
|
|
35
|
+
"gjs",
|
|
36
|
+
"node",
|
|
37
|
+
"timers"
|
|
38
|
+
],
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@gjsify/cli": "workspace:^",
|
|
41
|
+
"@gjsify/unit": "workspace:^",
|
|
42
|
+
"@types/node": "^25.6.2",
|
|
43
|
+
"typescript": "^6.0.3"
|
|
16
44
|
}
|
|
17
|
-
|
|
18
|
-
"scripts": {
|
|
19
|
-
"clear": "rm -rf lib tsconfig.tsbuildinfo tsconfig.types.tsbuildinfo test.gjs.mjs test.node.mjs || exit 0",
|
|
20
|
-
"check": "tsc --noEmit",
|
|
21
|
-
"build": "yarn build:gjsify && yarn build:types",
|
|
22
|
-
"build:gjsify": "gjsify build --library 'src/**/*.{ts,js}' --exclude 'src/**/*.spec.{mts,ts}' 'src/test.{mts,ts}'",
|
|
23
|
-
"build:types": "tsc",
|
|
24
|
-
"build:test": "yarn build:test:gjs && yarn build:test:node",
|
|
25
|
-
"build:test:gjs": "gjsify build src/test.mts --app gjs --outfile test.gjs.mjs",
|
|
26
|
-
"build:test:node": "gjsify build src/test.mts --app node --outfile test.node.mjs",
|
|
27
|
-
"test": "yarn build:gjsify && yarn build:test && yarn test:node && yarn test:gjs",
|
|
28
|
-
"test:gjs": "gjsify run test.gjs.mjs",
|
|
29
|
-
"test:node": "node test.node.mjs"
|
|
30
|
-
},
|
|
31
|
-
"keywords": [
|
|
32
|
-
"gjs",
|
|
33
|
-
"node",
|
|
34
|
-
"timers"
|
|
35
|
-
],
|
|
36
|
-
"devDependencies": {
|
|
37
|
-
"@gjsify/cli": "^0.3.21",
|
|
38
|
-
"@gjsify/unit": "^0.3.21",
|
|
39
|
-
"@types/node": "^25.6.2",
|
|
40
|
-
"typescript": "^6.0.3"
|
|
41
|
-
}
|
|
42
|
-
}
|
|
45
|
+
}
|
package/src/extended.spec.ts
DELETED
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
// Ported from refs/node-test/parallel/test-timers-*.js
|
|
2
|
-
// Original: MIT license, Node.js contributors
|
|
3
|
-
|
|
4
|
-
import { describe, it, expect } from '@gjsify/unit';
|
|
5
|
-
|
|
6
|
-
export default async () => {
|
|
7
|
-
|
|
8
|
-
// ===================== setTimeout deep =====================
|
|
9
|
-
await describe('setTimeout deep', async () => {
|
|
10
|
-
await it('should call callback after delay', async () => {
|
|
11
|
-
const start = Date.now();
|
|
12
|
-
await new Promise<void>((resolve) => {
|
|
13
|
-
setTimeout(() => {
|
|
14
|
-
const elapsed = Date.now() - start;
|
|
15
|
-
expect(elapsed >= 20).toBe(true);
|
|
16
|
-
resolve();
|
|
17
|
-
}, 30);
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
await it('should pass arguments to callback', async () => {
|
|
22
|
-
const result = await new Promise<string>((resolve) => {
|
|
23
|
-
setTimeout((a: string, b: string) => resolve(a + b), 10, 'hello', ' world');
|
|
24
|
-
});
|
|
25
|
-
expect(result).toBe('hello world');
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
await it('should return a timeout ID', async () => {
|
|
29
|
-
const id = setTimeout(() => {}, 1000);
|
|
30
|
-
expect(id).toBeDefined();
|
|
31
|
-
clearTimeout(id);
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
await it('clearTimeout should prevent callback', async () => {
|
|
35
|
-
let called = false;
|
|
36
|
-
const id = setTimeout(() => { called = true; }, 30);
|
|
37
|
-
clearTimeout(id);
|
|
38
|
-
await new Promise<void>((r) => setTimeout(r, 100));
|
|
39
|
-
expect(called).toBe(false);
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
await it('should handle 0 delay', async () => {
|
|
43
|
-
const result = await new Promise<boolean>((resolve) => {
|
|
44
|
-
setTimeout(() => resolve(true), 0);
|
|
45
|
-
});
|
|
46
|
-
expect(result).toBe(true);
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
// ===================== setInterval deep =====================
|
|
51
|
-
await describe('setInterval deep', async () => {
|
|
52
|
-
await it('should call callback repeatedly', async () => {
|
|
53
|
-
let count = 0;
|
|
54
|
-
await new Promise<void>((resolve) => {
|
|
55
|
-
const id = setInterval(() => {
|
|
56
|
-
count++;
|
|
57
|
-
if (count >= 3) {
|
|
58
|
-
clearInterval(id);
|
|
59
|
-
resolve();
|
|
60
|
-
}
|
|
61
|
-
}, 30);
|
|
62
|
-
});
|
|
63
|
-
expect(count).toBeGreaterThan(2);
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
await it('clearInterval should stop repetition', async () => {
|
|
67
|
-
let count = 0;
|
|
68
|
-
const id = setInterval(() => { count++; }, 20);
|
|
69
|
-
await new Promise<void>((r) => setTimeout(r, 60));
|
|
70
|
-
clearInterval(id);
|
|
71
|
-
const countAfterClear = count;
|
|
72
|
-
await new Promise<void>((r) => setTimeout(r, 60));
|
|
73
|
-
// Should not have increased much after clear
|
|
74
|
-
expect(count - countAfterClear).toBeLessThan(2);
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
await it('should pass arguments to callback', async () => {
|
|
78
|
-
const result = await new Promise<number>((resolve) => {
|
|
79
|
-
const id = setInterval((val: number) => {
|
|
80
|
-
clearInterval(id);
|
|
81
|
-
resolve(val);
|
|
82
|
-
}, 10, 42);
|
|
83
|
-
});
|
|
84
|
-
expect(result).toBe(42);
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
// ===================== setImmediate =====================
|
|
89
|
-
await describe('setImmediate', async () => {
|
|
90
|
-
await it('should call callback asynchronously', async () => {
|
|
91
|
-
let called = false;
|
|
92
|
-
setImmediate(() => { called = true; });
|
|
93
|
-
expect(called).toBe(false); // Should not be called synchronously
|
|
94
|
-
await new Promise<void>((r) => setTimeout(r, 50));
|
|
95
|
-
expect(called).toBe(true);
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
await it('should pass arguments', async () => {
|
|
99
|
-
const result = await new Promise<string>((resolve) => {
|
|
100
|
-
setImmediate((a: string) => resolve(a), 'immediate');
|
|
101
|
-
});
|
|
102
|
-
expect(result).toBe('immediate');
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
await it('clearImmediate should prevent callback', async () => {
|
|
106
|
-
let called = false;
|
|
107
|
-
const id = setImmediate(() => { called = true; });
|
|
108
|
-
clearImmediate(id);
|
|
109
|
-
await new Promise<void>((r) => setTimeout(r, 50));
|
|
110
|
-
expect(called).toBe(false);
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
// ===================== Ordering guarantees =====================
|
|
115
|
-
await describe('timer ordering', async () => {
|
|
116
|
-
await it('setImmediate should fire before setTimeout(0)', async () => {
|
|
117
|
-
const order: string[] = [];
|
|
118
|
-
await new Promise<void>((resolve) => {
|
|
119
|
-
setTimeout(() => {
|
|
120
|
-
order.push('timeout');
|
|
121
|
-
if (order.length === 2) resolve();
|
|
122
|
-
}, 0);
|
|
123
|
-
setImmediate(() => {
|
|
124
|
-
order.push('immediate');
|
|
125
|
-
if (order.length === 2) resolve();
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
// Both should have fired
|
|
129
|
-
expect(order.length).toBe(2);
|
|
130
|
-
expect(order).toContain('timeout');
|
|
131
|
-
expect(order).toContain('immediate');
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
await it('nested setTimeout should fire in order', async () => {
|
|
135
|
-
const order: number[] = [];
|
|
136
|
-
await new Promise<void>((resolve) => {
|
|
137
|
-
setTimeout(() => {
|
|
138
|
-
order.push(1);
|
|
139
|
-
setTimeout(() => {
|
|
140
|
-
order.push(2);
|
|
141
|
-
resolve();
|
|
142
|
-
}, 10);
|
|
143
|
-
}, 10);
|
|
144
|
-
});
|
|
145
|
-
expect(order[0]).toBe(1);
|
|
146
|
-
expect(order[1]).toBe(2);
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
};
|
package/src/index.spec.ts
DELETED
|
@@ -1,326 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from '@gjsify/unit';
|
|
2
|
-
import timers from 'node:timers';
|
|
3
|
-
|
|
4
|
-
export default async () => {
|
|
5
|
-
await describe('timers', async () => {
|
|
6
|
-
await describe('setTimeout', async () => {
|
|
7
|
-
await it('should call callback after delay', async () => {
|
|
8
|
-
const result = await new Promise<string>((resolve) => {
|
|
9
|
-
timers.setTimeout(() => resolve('done'), 10);
|
|
10
|
-
});
|
|
11
|
-
expect(result).toBe('done');
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
await it('should pass arguments to callback', async () => {
|
|
15
|
-
const result = await new Promise<string>((resolve) => {
|
|
16
|
-
timers.setTimeout((a: string, b: string) => resolve(a + b), 10, 'hello', ' world');
|
|
17
|
-
});
|
|
18
|
-
expect(result).toBe('hello world');
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
await it('should return a Timeout object with ref/unref/hasRef', async () => {
|
|
22
|
-
const timeout = timers.setTimeout(() => {}, 1000);
|
|
23
|
-
expect(timeout.hasRef()).toBe(true);
|
|
24
|
-
timeout.unref();
|
|
25
|
-
expect(timeout.hasRef()).toBe(false);
|
|
26
|
-
timeout.ref();
|
|
27
|
-
expect(timeout.hasRef()).toBe(true);
|
|
28
|
-
timers.clearTimeout(timeout);
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
await it('should execute with 0 delay', async () => {
|
|
32
|
-
const result = await new Promise<string>((resolve) => {
|
|
33
|
-
timers.setTimeout(() => resolve('zero'), 0);
|
|
34
|
-
});
|
|
35
|
-
expect(result).toBe('zero');
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
await it('should treat negative delay as 0', async () => {
|
|
39
|
-
const result = await new Promise<string>((resolve) => {
|
|
40
|
-
timers.setTimeout(() => resolve('negative'), -100);
|
|
41
|
-
});
|
|
42
|
-
expect(result).toBe('negative');
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
await it('should execute multiple timeouts in order with same delay', async () => {
|
|
46
|
-
const order: number[] = [];
|
|
47
|
-
await new Promise<void>((resolve) => {
|
|
48
|
-
timers.setTimeout(() => order.push(1), 10);
|
|
49
|
-
timers.setTimeout(() => order.push(2), 10);
|
|
50
|
-
timers.setTimeout(() => {
|
|
51
|
-
order.push(3);
|
|
52
|
-
resolve();
|
|
53
|
-
}, 30);
|
|
54
|
-
});
|
|
55
|
-
expect(order[0]).toBe(1);
|
|
56
|
-
expect(order[1]).toBe(2);
|
|
57
|
-
expect(order[2]).toBe(3);
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
await it('should allow nested setTimeout', async () => {
|
|
61
|
-
const result = await new Promise<string>((resolve) => {
|
|
62
|
-
timers.setTimeout(() => {
|
|
63
|
-
timers.setTimeout(() => resolve('nested'), 10);
|
|
64
|
-
}, 10);
|
|
65
|
-
});
|
|
66
|
-
expect(result).toBe('nested');
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
await describe('clearTimeout', async () => {
|
|
71
|
-
await it('should cancel a pending timeout', async () => {
|
|
72
|
-
let called = false;
|
|
73
|
-
const timeout = timers.setTimeout(() => { called = true; }, 10);
|
|
74
|
-
timers.clearTimeout(timeout);
|
|
75
|
-
await new Promise<void>((resolve) => globalThis.setTimeout(resolve, 50));
|
|
76
|
-
expect(called).toBe(false);
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
await it('clearTimeout(null) should not throw', async () => {
|
|
80
|
-
expect(() => timers.clearTimeout(null as any)).not.toThrow();
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
await it('clearTimeout(undefined) should not throw', async () => {
|
|
84
|
-
expect(() => timers.clearTimeout(undefined as any)).not.toThrow();
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
await describe('setInterval', async () => {
|
|
89
|
-
await it('should call callback repeatedly', async () => {
|
|
90
|
-
let count = 0;
|
|
91
|
-
const interval = timers.setInterval(() => { count++; }, 10);
|
|
92
|
-
await new Promise<void>((resolve) => globalThis.setTimeout(resolve, 55));
|
|
93
|
-
timers.clearInterval(interval);
|
|
94
|
-
expect(count).toBeGreaterThan(1);
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
await it('should stop calling after clearInterval', async () => {
|
|
98
|
-
let count = 0;
|
|
99
|
-
const interval = timers.setInterval(() => { count++; }, 10);
|
|
100
|
-
await new Promise<void>((resolve) => globalThis.setTimeout(resolve, 35));
|
|
101
|
-
timers.clearInterval(interval);
|
|
102
|
-
const countAfterClear = count;
|
|
103
|
-
await new Promise<void>((resolve) => globalThis.setTimeout(resolve, 50));
|
|
104
|
-
expect(count).toBe(countAfterClear);
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
await it('should pass arguments to callback', async () => {
|
|
108
|
-
const result = await new Promise<string>((resolve) => {
|
|
109
|
-
const interval = timers.setInterval((a: string) => {
|
|
110
|
-
timers.clearInterval(interval);
|
|
111
|
-
resolve(a);
|
|
112
|
-
}, 10, 'arg');
|
|
113
|
-
});
|
|
114
|
-
expect(result).toBe('arg');
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
await describe('clearInterval', async () => {
|
|
119
|
-
await it('clearInterval(null) should not throw', async () => {
|
|
120
|
-
expect(() => timers.clearInterval(null as any)).not.toThrow();
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
await it('clearInterval(undefined) should not throw', async () => {
|
|
124
|
-
expect(() => timers.clearInterval(undefined as any)).not.toThrow();
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
await describe('setImmediate', async () => {
|
|
129
|
-
await it('should call callback on next tick', async () => {
|
|
130
|
-
const result = await new Promise<string>((resolve) => {
|
|
131
|
-
timers.setImmediate(() => resolve('immediate'));
|
|
132
|
-
});
|
|
133
|
-
expect(result).toBe('immediate');
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
await it('should pass arguments to callback', async () => {
|
|
137
|
-
const result = await new Promise<number>((resolve) => {
|
|
138
|
-
timers.setImmediate((a: number, b: number) => resolve(a + b), 1, 2);
|
|
139
|
-
});
|
|
140
|
-
expect(result).toBe(3);
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
await it('should have ref/unref/hasRef', async () => {
|
|
144
|
-
const immediate = timers.setImmediate(() => {});
|
|
145
|
-
expect(typeof immediate.ref).toBe('function');
|
|
146
|
-
expect(typeof immediate.unref).toBe('function');
|
|
147
|
-
expect(typeof immediate.hasRef).toBe('function');
|
|
148
|
-
timers.clearImmediate(immediate);
|
|
149
|
-
});
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
await describe('clearImmediate', async () => {
|
|
153
|
-
await it('should cancel a pending immediate', async () => {
|
|
154
|
-
let called = false;
|
|
155
|
-
const immediate = timers.setImmediate(() => { called = true; });
|
|
156
|
-
timers.clearImmediate(immediate);
|
|
157
|
-
await new Promise<void>((resolve) => globalThis.setTimeout(resolve, 50));
|
|
158
|
-
expect(called).toBe(false);
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
await it('clearImmediate(null) should not throw', async () => {
|
|
162
|
-
expect(() => timers.clearImmediate(null as any)).not.toThrow();
|
|
163
|
-
});
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
await describe('Timeout properties', async () => {
|
|
167
|
-
await it('should have refresh method', async () => {
|
|
168
|
-
const timeout = timers.setTimeout(() => {}, 1000);
|
|
169
|
-
expect(typeof timeout.refresh).toBe('function');
|
|
170
|
-
timers.clearTimeout(timeout);
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
await it('refresh should return the same object', async () => {
|
|
174
|
-
const timeout = timers.setTimeout(() => {}, 1000);
|
|
175
|
-
const result = timeout.refresh();
|
|
176
|
-
expect(result === timeout).toBeTruthy();
|
|
177
|
-
timers.clearTimeout(timeout);
|
|
178
|
-
});
|
|
179
|
-
|
|
180
|
-
await it('should have close method (alias for clearTimeout)', async () => {
|
|
181
|
-
const timeout = timers.setTimeout(() => {}, 1000);
|
|
182
|
-
expect(typeof timeout.close).toBe('function');
|
|
183
|
-
timeout.close();
|
|
184
|
-
});
|
|
185
|
-
|
|
186
|
-
await it('refresh should reset the timer', async () => {
|
|
187
|
-
let called = false;
|
|
188
|
-
const timeout = timers.setTimeout(() => { called = true; }, 50);
|
|
189
|
-
// Refresh before it fires
|
|
190
|
-
await new Promise<void>((resolve) => globalThis.setTimeout(resolve, 30));
|
|
191
|
-
timeout.refresh();
|
|
192
|
-
// Should not have fired yet after refresh
|
|
193
|
-
await new Promise<void>((resolve) => globalThis.setTimeout(resolve, 30));
|
|
194
|
-
expect(called).toBe(false);
|
|
195
|
-
// Now wait for it to fire
|
|
196
|
-
await new Promise<void>((resolve) => globalThis.setTimeout(resolve, 40));
|
|
197
|
-
expect(called).toBe(true);
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
|
|
201
|
-
await describe('module exports', async () => {
|
|
202
|
-
await it('should export setTimeout and clearTimeout', async () => {
|
|
203
|
-
expect(typeof timers.setTimeout).toBe('function');
|
|
204
|
-
expect(typeof timers.clearTimeout).toBe('function');
|
|
205
|
-
});
|
|
206
|
-
|
|
207
|
-
await it('should export setInterval and clearInterval', async () => {
|
|
208
|
-
expect(typeof timers.setInterval).toBe('function');
|
|
209
|
-
expect(typeof timers.clearInterval).toBe('function');
|
|
210
|
-
});
|
|
211
|
-
|
|
212
|
-
await it('should export setImmediate and clearImmediate', async () => {
|
|
213
|
-
expect(typeof timers.setImmediate).toBe('function');
|
|
214
|
-
expect(typeof timers.clearImmediate).toBe('function');
|
|
215
|
-
});
|
|
216
|
-
|
|
217
|
-
await it('should export active and unenroll (legacy)', async () => {
|
|
218
|
-
// Node.js exports these legacy functions; they're not in @types/node.
|
|
219
|
-
const t = timers as any;
|
|
220
|
-
expect(typeof t.active === 'function' || typeof t.active === 'undefined').toBe(true);
|
|
221
|
-
expect(typeof t.unenroll === 'function' || typeof t.unenroll === 'undefined').toBe(true);
|
|
222
|
-
});
|
|
223
|
-
});
|
|
224
|
-
|
|
225
|
-
// ==================== Additional tests ====================
|
|
226
|
-
|
|
227
|
-
await describe('setTimeout additional', async () => {
|
|
228
|
-
await it('should not throw with very large delay', async () => {
|
|
229
|
-
const timeout = timers.setTimeout(() => {}, 2147483647);
|
|
230
|
-
expect(timeout).toBeDefined();
|
|
231
|
-
timers.clearTimeout(timeout);
|
|
232
|
-
});
|
|
233
|
-
|
|
234
|
-
await it('should handle string delay by coercing to number', async () => {
|
|
235
|
-
const result = await new Promise<string>((resolve) => {
|
|
236
|
-
timers.setTimeout(() => resolve('coerced'), '10' as any);
|
|
237
|
-
});
|
|
238
|
-
expect(result).toBe('coerced');
|
|
239
|
-
});
|
|
240
|
-
});
|
|
241
|
-
|
|
242
|
-
await describe('setInterval additional', async () => {
|
|
243
|
-
await it('should fire at least 3 times then be clearable', async () => {
|
|
244
|
-
let count = 0;
|
|
245
|
-
await new Promise<void>((resolve) => {
|
|
246
|
-
const interval = timers.setInterval(() => {
|
|
247
|
-
count++;
|
|
248
|
-
if (count >= 3) {
|
|
249
|
-
timers.clearInterval(interval);
|
|
250
|
-
resolve();
|
|
251
|
-
}
|
|
252
|
-
}, 15);
|
|
253
|
-
});
|
|
254
|
-
expect(count).toBeGreaterThan(2);
|
|
255
|
-
});
|
|
256
|
-
|
|
257
|
-
await it('should handle 0 interval without hanging', async () => {
|
|
258
|
-
let count = 0;
|
|
259
|
-
await new Promise<void>((resolve) => {
|
|
260
|
-
const interval = timers.setInterval(() => {
|
|
261
|
-
count++;
|
|
262
|
-
if (count >= 3) {
|
|
263
|
-
timers.clearInterval(interval);
|
|
264
|
-
resolve();
|
|
265
|
-
}
|
|
266
|
-
}, 0);
|
|
267
|
-
});
|
|
268
|
-
expect(count).toBeGreaterThan(2);
|
|
269
|
-
});
|
|
270
|
-
});
|
|
271
|
-
|
|
272
|
-
await describe('clearTimeout additional', async () => {
|
|
273
|
-
await it('clearTimeout on already fired timer should not throw', async () => {
|
|
274
|
-
const timeout = timers.setTimeout(() => {}, 5);
|
|
275
|
-
// Wait for the timer to fire
|
|
276
|
-
await new Promise<void>((resolve) => globalThis.setTimeout(resolve, 50));
|
|
277
|
-
// Clearing after it has fired should be safe
|
|
278
|
-
expect(() => timers.clearTimeout(timeout)).not.toThrow();
|
|
279
|
-
});
|
|
280
|
-
});
|
|
281
|
-
|
|
282
|
-
await describe('Timeout.refresh additional', async () => {
|
|
283
|
-
await it('refresh() on cleared timer should not throw', async () => {
|
|
284
|
-
const timeout = timers.setTimeout(() => {}, 1000);
|
|
285
|
-
timers.clearTimeout(timeout);
|
|
286
|
-
// Calling refresh on a cleared timer should not throw
|
|
287
|
-
expect(() => timeout.refresh()).not.toThrow();
|
|
288
|
-
});
|
|
289
|
-
});
|
|
290
|
-
|
|
291
|
-
await describe('setImmediate ordering', async () => {
|
|
292
|
-
await it('should execute before setTimeout(0)', async () => {
|
|
293
|
-
const order: string[] = [];
|
|
294
|
-
await new Promise<void>((resolve) => {
|
|
295
|
-
timers.setTimeout(() => {
|
|
296
|
-
order.push('timeout');
|
|
297
|
-
if (order.length === 2) resolve();
|
|
298
|
-
}, 0);
|
|
299
|
-
timers.setImmediate(() => {
|
|
300
|
-
order.push('immediate');
|
|
301
|
-
if (order.length === 2) resolve();
|
|
302
|
-
});
|
|
303
|
-
});
|
|
304
|
-
// setImmediate should fire before or at least at the same time as setTimeout(0)
|
|
305
|
-
// In Node.js, order can vary in the top level, but setImmediate is generally prioritized
|
|
306
|
-
expect(order.length).toBe(2);
|
|
307
|
-
expect(order[0]).toBe('immediate');
|
|
308
|
-
});
|
|
309
|
-
|
|
310
|
-
await it('multiple setImmediates should execute in order', async () => {
|
|
311
|
-
const order: number[] = [];
|
|
312
|
-
await new Promise<void>((resolve) => {
|
|
313
|
-
timers.setImmediate(() => order.push(1));
|
|
314
|
-
timers.setImmediate(() => order.push(2));
|
|
315
|
-
timers.setImmediate(() => {
|
|
316
|
-
order.push(3);
|
|
317
|
-
resolve();
|
|
318
|
-
});
|
|
319
|
-
});
|
|
320
|
-
expect(order[0]).toBe(1);
|
|
321
|
-
expect(order[1]).toBe(2);
|
|
322
|
-
expect(order[2]).toBe(3);
|
|
323
|
-
});
|
|
324
|
-
});
|
|
325
|
-
});
|
|
326
|
-
};
|
package/src/index.ts
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
// Node.js timers module for GJS
|
|
2
|
-
// Reference: Node.js lib/timers.js
|
|
3
|
-
|
|
4
|
-
import { Timeout, Immediate } from './timeout.js';
|
|
5
|
-
|
|
6
|
-
export { Timeout, Immediate };
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Schedule a callback to be called after `delay` milliseconds.
|
|
10
|
-
* Returns a Timeout object with ref/unref/refresh methods.
|
|
11
|
-
*/
|
|
12
|
-
function _setTimeout<T extends any[]>(callback: (...args: T) => void, delay = 0, ...args: T): Timeout {
|
|
13
|
-
return new Timeout(callback, delay, args, false);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Cancel a timeout created by setTimeout.
|
|
18
|
-
*/
|
|
19
|
-
function _clearTimeout(timeout: Timeout | number | undefined): void {
|
|
20
|
-
if (timeout instanceof Timeout) {
|
|
21
|
-
timeout.close();
|
|
22
|
-
} else if (timeout != null) {
|
|
23
|
-
clearTimeout(timeout as any);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Schedule a callback to be called repeatedly every `delay` milliseconds.
|
|
29
|
-
* Returns a Timeout object with ref/unref/refresh methods.
|
|
30
|
-
*/
|
|
31
|
-
function _setInterval<T extends any[]>(callback: (...args: T) => void, delay = 0, ...args: T): Timeout {
|
|
32
|
-
return new Timeout(callback, delay, args, true);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Cancel an interval created by setInterval.
|
|
37
|
-
*/
|
|
38
|
-
function _clearInterval(timeout: Timeout | number | undefined): void {
|
|
39
|
-
if (timeout instanceof Timeout) {
|
|
40
|
-
timeout.close();
|
|
41
|
-
} else if (timeout != null) {
|
|
42
|
-
clearInterval(timeout as any);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Schedule a callback to be called on the next iteration of the event loop.
|
|
48
|
-
* Returns an Immediate object with ref/unref methods.
|
|
49
|
-
*/
|
|
50
|
-
function _setImmediate<T extends any[]>(callback: (...args: T) => void, ...args: T): Immediate {
|
|
51
|
-
return new Immediate(callback, args);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Cancel an immediate created by setImmediate.
|
|
56
|
-
*/
|
|
57
|
-
function _clearImmediate(immediate: Immediate | number | undefined): void {
|
|
58
|
-
if (immediate instanceof Immediate) {
|
|
59
|
-
immediate.close();
|
|
60
|
-
} else if (immediate != null) {
|
|
61
|
-
clearTimeout(immediate as any);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export {
|
|
66
|
-
_setTimeout as setTimeout,
|
|
67
|
-
_clearTimeout as clearTimeout,
|
|
68
|
-
_setInterval as setInterval,
|
|
69
|
-
_clearInterval as clearInterval,
|
|
70
|
-
_setImmediate as setImmediate,
|
|
71
|
-
_clearImmediate as clearImmediate,
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
export default {
|
|
75
|
-
setTimeout: _setTimeout,
|
|
76
|
-
clearTimeout: _clearTimeout,
|
|
77
|
-
setInterval: _setInterval,
|
|
78
|
-
clearInterval: _clearInterval,
|
|
79
|
-
setImmediate: _setImmediate,
|
|
80
|
-
clearImmediate: _clearImmediate,
|
|
81
|
-
Timeout,
|
|
82
|
-
Immediate,
|
|
83
|
-
};
|
package/src/promises.spec.ts
DELETED
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from '@gjsify/unit';
|
|
2
|
-
import { setTimeout, setImmediate, setInterval } from 'node:timers/promises';
|
|
3
|
-
|
|
4
|
-
export default async () => {
|
|
5
|
-
await describe('timers/promises', async () => {
|
|
6
|
-
await describe('setTimeout', async () => {
|
|
7
|
-
await it('should resolve after delay', async () => {
|
|
8
|
-
const start = Date.now();
|
|
9
|
-
await setTimeout(20);
|
|
10
|
-
const elapsed = Date.now() - start;
|
|
11
|
-
expect(elapsed).toBeGreaterThan(10);
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
await it('should resolve with value', async () => {
|
|
15
|
-
const result = await setTimeout(10, 'hello');
|
|
16
|
-
expect(result).toBe('hello');
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
await it('should resolve with undefined when no value', async () => {
|
|
20
|
-
const result = await setTimeout(10);
|
|
21
|
-
expect(result).toBeUndefined();
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
await it('should reject when signal is already aborted', async () => {
|
|
25
|
-
const controller = new AbortController();
|
|
26
|
-
controller.abort();
|
|
27
|
-
let threw = false;
|
|
28
|
-
try {
|
|
29
|
-
await setTimeout(10, undefined, { signal: controller.signal });
|
|
30
|
-
} catch (e: any) {
|
|
31
|
-
threw = true;
|
|
32
|
-
expect(e.name).toBe('AbortError');
|
|
33
|
-
}
|
|
34
|
-
expect(threw).toBe(true);
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
await it('should reject when signal is aborted during wait', async () => {
|
|
38
|
-
const controller = new AbortController();
|
|
39
|
-
globalThis.setTimeout(() => controller.abort(), 10);
|
|
40
|
-
let threw = false;
|
|
41
|
-
try {
|
|
42
|
-
await setTimeout(1000, undefined, { signal: controller.signal });
|
|
43
|
-
} catch (e: any) {
|
|
44
|
-
threw = true;
|
|
45
|
-
expect(e.name).toBe('AbortError');
|
|
46
|
-
}
|
|
47
|
-
expect(threw).toBe(true);
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
await it('should accept 0 delay', async () => {
|
|
51
|
-
const result = await setTimeout(0, 'zero');
|
|
52
|
-
expect(result).toBe('zero');
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
await describe('setImmediate', async () => {
|
|
57
|
-
await it('should resolve with value', async () => {
|
|
58
|
-
const result = await setImmediate(42);
|
|
59
|
-
expect(result).toBe(42);
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
await it('should resolve with undefined when no value', async () => {
|
|
63
|
-
const result = await setImmediate();
|
|
64
|
-
expect(result).toBeUndefined();
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
await it('should reject when signal is already aborted', async () => {
|
|
68
|
-
const controller = new AbortController();
|
|
69
|
-
controller.abort();
|
|
70
|
-
let threw = false;
|
|
71
|
-
try {
|
|
72
|
-
await setImmediate(undefined, { signal: controller.signal });
|
|
73
|
-
} catch (e: any) {
|
|
74
|
-
threw = true;
|
|
75
|
-
expect(e.name).toBe('AbortError');
|
|
76
|
-
}
|
|
77
|
-
expect(threw).toBe(true);
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
await describe('setInterval', async () => {
|
|
82
|
-
await it('should be an async generator', async () => {
|
|
83
|
-
const controller = new AbortController();
|
|
84
|
-
const iter = setInterval(10, 'tick', { signal: controller.signal });
|
|
85
|
-
expect(typeof iter[Symbol.asyncIterator]).toBe('function');
|
|
86
|
-
controller.abort();
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
await it('should yield values at intervals', async () => {
|
|
90
|
-
const controller = new AbortController();
|
|
91
|
-
const values: string[] = [];
|
|
92
|
-
try {
|
|
93
|
-
for await (const val of setInterval(15, 'tick', { signal: controller.signal })) {
|
|
94
|
-
values.push(val);
|
|
95
|
-
if (values.length >= 3) {
|
|
96
|
-
controller.abort();
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
} catch (e: any) {
|
|
100
|
-
expect(e.name).toBe('AbortError');
|
|
101
|
-
}
|
|
102
|
-
expect(values.length).toBe(3);
|
|
103
|
-
expect(values[0]).toBe('tick');
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
await it('should reject immediately when signal is already aborted', async () => {
|
|
107
|
-
const controller = new AbortController();
|
|
108
|
-
controller.abort();
|
|
109
|
-
let threw = false;
|
|
110
|
-
try {
|
|
111
|
-
for await (const _ of setInterval(10, 'tick', { signal: controller.signal })) {
|
|
112
|
-
// Should not reach here
|
|
113
|
-
}
|
|
114
|
-
} catch (e: any) {
|
|
115
|
-
threw = true;
|
|
116
|
-
expect(e.name).toBe('AbortError');
|
|
117
|
-
}
|
|
118
|
-
expect(threw).toBe(true);
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
await describe('exports', async () => {
|
|
123
|
-
await it('should export setTimeout as a function', async () => {
|
|
124
|
-
expect(typeof setTimeout).toBe('function');
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
await it('should export setImmediate as a function', async () => {
|
|
128
|
-
expect(typeof setImmediate).toBe('function');
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
await it('should export setInterval as a function', async () => {
|
|
132
|
-
expect(typeof setInterval).toBe('function');
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
};
|
package/src/promises.ts
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
// Node.js timers/promises module for GJS
|
|
2
|
-
// Reference: Node.js lib/timers/promises.js
|
|
3
|
-
|
|
4
|
-
import { Timeout, Immediate } from './timeout.js';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Returns a promise that resolves after `delay` milliseconds.
|
|
8
|
-
* Supports AbortSignal for cancellation.
|
|
9
|
-
*/
|
|
10
|
-
export function setTimeout<T = void>(delay = 0, value?: T, options?: { signal?: AbortSignal; ref?: boolean }): Promise<T> {
|
|
11
|
-
return new Promise<T>((resolve, reject) => {
|
|
12
|
-
if (options?.signal?.aborted) {
|
|
13
|
-
reject(options.signal.reason ?? new DOMException('The operation was aborted', 'AbortError'));
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const timeout = new Timeout(() => {
|
|
18
|
-
cleanup();
|
|
19
|
-
resolve(value as T);
|
|
20
|
-
}, delay, [], false);
|
|
21
|
-
|
|
22
|
-
if (options?.ref === false) timeout.unref();
|
|
23
|
-
|
|
24
|
-
let onAbort: (() => void) | undefined;
|
|
25
|
-
|
|
26
|
-
function cleanup() {
|
|
27
|
-
if (onAbort && options?.signal) {
|
|
28
|
-
options.signal.removeEventListener('abort', onAbort);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if (options?.signal) {
|
|
33
|
-
onAbort = () => {
|
|
34
|
-
timeout.close();
|
|
35
|
-
reject(options!.signal!.reason ?? new DOMException('The operation was aborted', 'AbortError'));
|
|
36
|
-
};
|
|
37
|
-
options.signal.addEventListener('abort', onAbort, { once: true });
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Returns a promise that resolves on the next event loop iteration.
|
|
44
|
-
* Supports AbortSignal for cancellation.
|
|
45
|
-
*/
|
|
46
|
-
export function setImmediate<T = void>(value?: T, options?: { signal?: AbortSignal; ref?: boolean }): Promise<T> {
|
|
47
|
-
return setTimeout(0, value, options);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Returns an async iterable that yields at `delay` ms intervals.
|
|
52
|
-
* Supports AbortSignal for cancellation.
|
|
53
|
-
*/
|
|
54
|
-
export async function* setInterval<T = void>(delay = 0, value?: T, options?: { signal?: AbortSignal; ref?: boolean }): AsyncGenerator<T> {
|
|
55
|
-
if (options?.signal?.aborted) {
|
|
56
|
-
throw options.signal.reason ?? new DOMException('The operation was aborted', 'AbortError');
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
while (true) {
|
|
60
|
-
if (options?.signal?.aborted) {
|
|
61
|
-
throw options.signal.reason ?? new DOMException('The operation was aborted', 'AbortError');
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
yield await new Promise<T>((resolve, reject) => {
|
|
65
|
-
const timeout = new Timeout(() => {
|
|
66
|
-
cleanup();
|
|
67
|
-
resolve(value as T);
|
|
68
|
-
}, delay, [], false);
|
|
69
|
-
|
|
70
|
-
if (options?.ref === false) timeout.unref();
|
|
71
|
-
|
|
72
|
-
let onAbort: (() => void) | undefined;
|
|
73
|
-
|
|
74
|
-
function cleanup() {
|
|
75
|
-
if (onAbort && options?.signal) {
|
|
76
|
-
options.signal.removeEventListener('abort', onAbort);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
if (options?.signal) {
|
|
81
|
-
onAbort = () => {
|
|
82
|
-
timeout.close();
|
|
83
|
-
reject(options!.signal!.reason ?? new DOMException('The operation was aborted', 'AbortError'));
|
|
84
|
-
};
|
|
85
|
-
options.signal.addEventListener('abort', onAbort, { once: true });
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
}
|
package/src/test.mts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import '@gjsify/node-globals/register/process';
|
|
2
|
-
import '@gjsify/node-globals/register/timers';
|
|
3
|
-
import '@gjsify/node-globals/register/microtask';
|
|
4
|
-
import 'abort-controller/register'; // register AbortController/AbortSignal globals on GJS (no-op on Node)
|
|
5
|
-
import { run } from '@gjsify/unit';
|
|
6
|
-
|
|
7
|
-
import testSuiteTimers from './index.spec.js';
|
|
8
|
-
import testSuitePromises from './promises.spec.js';
|
|
9
|
-
import extendedTestSuite from './extended.spec.js';
|
|
10
|
-
|
|
11
|
-
run({ testSuiteTimers, testSuitePromises, extendedTestSuite });
|
package/src/timeout.ts
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
// Reference: Node.js lib/internal/timers.js — Timeout/Immediate classes
|
|
2
|
-
// Reimplemented for GJS
|
|
3
|
-
|
|
4
|
-
export class Timeout {
|
|
5
|
-
private _id: ReturnType<typeof setTimeout> | null;
|
|
6
|
-
private _ref = true;
|
|
7
|
-
private _callback: (...args: any[]) => void;
|
|
8
|
-
private _delay: number;
|
|
9
|
-
private _args: any[];
|
|
10
|
-
private _isInterval: boolean;
|
|
11
|
-
|
|
12
|
-
constructor(
|
|
13
|
-
callback: (...args: any[]) => void,
|
|
14
|
-
delay: number,
|
|
15
|
-
args: any[],
|
|
16
|
-
isInterval: boolean,
|
|
17
|
-
) {
|
|
18
|
-
this._callback = callback;
|
|
19
|
-
this._delay = delay;
|
|
20
|
-
this._args = args;
|
|
21
|
-
this._isInterval = isInterval;
|
|
22
|
-
|
|
23
|
-
if (isInterval) {
|
|
24
|
-
this._id = setInterval(callback, delay, ...args);
|
|
25
|
-
} else {
|
|
26
|
-
this._id = setTimeout(callback, delay, ...args);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Mark this timeout as referenced (default).
|
|
32
|
-
* Referenced timers keep the event loop alive.
|
|
33
|
-
*/
|
|
34
|
-
ref(): this {
|
|
35
|
-
this._ref = true;
|
|
36
|
-
return this;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Mark this timeout as unreferenced.
|
|
41
|
-
* Unreferenced timers do not keep the event loop alive.
|
|
42
|
-
*/
|
|
43
|
-
unref(): this {
|
|
44
|
-
this._ref = false;
|
|
45
|
-
return this;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/** Whether this timeout is referenced. */
|
|
49
|
-
hasRef(): boolean {
|
|
50
|
-
return this._ref;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Reset the timer's start time to now and reschedule.
|
|
55
|
-
*/
|
|
56
|
-
refresh(): this {
|
|
57
|
-
if (this._id != null) {
|
|
58
|
-
if (this._isInterval) {
|
|
59
|
-
clearInterval(this._id);
|
|
60
|
-
this._id = setInterval(this._callback, this._delay, ...this._args);
|
|
61
|
-
} else {
|
|
62
|
-
clearTimeout(this._id);
|
|
63
|
-
this._id = setTimeout(this._callback, this._delay, ...this._args);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return this;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/** Close/clear this timer. */
|
|
70
|
-
close(): void {
|
|
71
|
-
if (this._id != null) {
|
|
72
|
-
if (this._isInterval) {
|
|
73
|
-
clearInterval(this._id);
|
|
74
|
-
} else {
|
|
75
|
-
clearTimeout(this._id);
|
|
76
|
-
}
|
|
77
|
-
this._id = null;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/** Get the underlying timer ID (for clearTimeout/clearInterval). */
|
|
82
|
-
[Symbol.toPrimitive](): number {
|
|
83
|
-
return this._id as unknown as number;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export class Immediate {
|
|
88
|
-
private _id: ReturnType<typeof setTimeout> | null = null;
|
|
89
|
-
private _ref = true;
|
|
90
|
-
private _cancelled = false;
|
|
91
|
-
|
|
92
|
-
constructor(callback: (...args: any[]) => void, args: any[]) {
|
|
93
|
-
// Use a microtask so setImmediate fires before setTimeout(0)
|
|
94
|
-
Promise.resolve().then(() => {
|
|
95
|
-
if (!this._cancelled) {
|
|
96
|
-
callback(...args);
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
ref(): this {
|
|
102
|
-
this._ref = true;
|
|
103
|
-
return this;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
unref(): this {
|
|
107
|
-
this._ref = false;
|
|
108
|
-
return this;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
hasRef(): boolean {
|
|
112
|
-
return this._ref;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
close(): void {
|
|
116
|
-
this._cancelled = true;
|
|
117
|
-
if (this._id != null) {
|
|
118
|
-
clearTimeout(this._id);
|
|
119
|
-
this._id = null;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
[Symbol.toPrimitive](): number {
|
|
124
|
-
return this._id as unknown as number;
|
|
125
|
-
}
|
|
126
|
-
}
|
package/tsconfig.json
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"module": "ESNext",
|
|
4
|
-
"target": "ESNext",
|
|
5
|
-
"moduleResolution": "bundler",
|
|
6
|
-
"types": [
|
|
7
|
-
"node"
|
|
8
|
-
],
|
|
9
|
-
"experimentalDecorators": true,
|
|
10
|
-
"emitDeclarationOnly": true,
|
|
11
|
-
"declaration": true,
|
|
12
|
-
"allowImportingTsExtensions": true,
|
|
13
|
-
"outDir": "lib",
|
|
14
|
-
"rootDir": "src",
|
|
15
|
-
"declarationDir": "lib/types",
|
|
16
|
-
"composite": true,
|
|
17
|
-
"skipLibCheck": true,
|
|
18
|
-
"allowJs": true,
|
|
19
|
-
"checkJs": false,
|
|
20
|
-
"strict": false
|
|
21
|
-
},
|
|
22
|
-
"include": [
|
|
23
|
-
"src/**/*.ts"
|
|
24
|
-
],
|
|
25
|
-
"exclude": [
|
|
26
|
-
"src/test.ts",
|
|
27
|
-
"src/test.mts"
|
|
28
|
-
]
|
|
29
|
-
}
|
package/tsconfig.tsbuildinfo
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/typescript/lib/lib.es2025.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.date.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../../node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.esnext.full.d.ts","../../../node_modules/@girs/gjs/gettext.d.ts","../../../node_modules/@girs/gobject-2.0/gobject-2.0-ambient.d.ts","../../../node_modules/@girs/gobject-2.0/gobject-2.0-import.d.ts","../../../node_modules/@girs/glib-2.0/glib-2.0-ambient.d.ts","../../../node_modules/@girs/glib-2.0/glib-2.0-import.d.ts","../../../node_modules/@girs/glib-2.0/glib-2.0.d.ts","../../../node_modules/@girs/glib-2.0/index.d.ts","../../../node_modules/@girs/gobject-2.0/gobject-2.0.d.ts","../../../node_modules/@girs/gobject-2.0/index.d.ts","../../../node_modules/@girs/gjs/system.d.ts","../../../node_modules/@girs/cairo-1.0/cairo-1.0-ambient.d.ts","../../../node_modules/@girs/cairo-1.0/cairo-1.0-import.d.ts","../../../node_modules/@girs/cairo-1.0/cairo-1.0.d.ts","../../../node_modules/@girs/cairo-1.0/index.d.ts","../../../node_modules/@girs/gjs/cairo.d.ts","../../../node_modules/@girs/gjs/console.d.ts","../../../node_modules/@girs/gjs/gi.d.ts","../../../node_modules/@girs/gjs/gjs-ambient.d.ts","../../../node_modules/@girs/gjs/gjs.d.ts","../../../node_modules/@girs/gjs/index.d.ts","../../gjs/unit/lib/types/spy.d.ts","../../gjs/unit/lib/types/index.d.ts","./src/extended.spec.ts","./src/index.spec.ts","./src/timeout.ts","./src/index.ts","./src/promises.spec.ts","./src/promises.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/utility.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client-stats.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/undici-types/h2c-client.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/path/posix.d.ts","../../../node_modules/@types/node/path/win32.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/quic.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/test/reporters.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/util/types.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts"],"fileIdsList":[[104,107,111,124,187,190,195,199,202,204,205,206,219],[107,111,124,187,190,195,199,202,204,205,206,219],[100,102,111,113,124,187,190,195,199,202,204,205,206,219],[105,106,111,124,187,190,195,199,202,204,205,206,219],[102,107,111,124,187,190,195,199,202,204,205,206,219],[111,124,187,190,195,199,202,204,205,206,219],[94,103,108,109,110,124,187,190,195,199,202,204,205,206,219],[94,100,102,103,108,111,124,187,190,195,199,202,204,205,206,219],[111,112,124,187,190,195,199,202,204,205,206,219],[102,111,124,187,190,195,199,202,204,205,206,219],[97,100,111,124,187,190,195,199,202,204,205,206,219],[100,111,124,187,190,195,199,202,204,205,206,219],[102,111,113,124,187,190,195,199,202,204,205,206,219],[98,99,111,124,187,190,195,199,202,204,205,206,219],[95,102,111,124,187,190,195,199,202,204,205,206,219],[100,111,113,124,187,190,195,199,202,204,205,206,219],[96,101,111,124,187,190,195,199,202,204,205,206,219],[111,124,184,185,187,190,195,199,202,204,205,206,219],[111,124,186,187,190,195,199,202,204,205,206,219],[111,187,190,195,199,202,204,205,206,219],[111,124,187,190,195,199,202,204,205,206,219,227],[111,124,187,188,190,193,195,198,199,202,204,205,206,208,219,224,236],[111,124,187,188,189,190,195,198,199,202,204,205,206,219],[111,124,187,190,195,199,202,204,205,206,219,237],[111,124,187,190,191,192,195,199,202,204,205,206,210,219],[111,124,187,190,192,195,199,202,204,205,206,219,224,233],[111,124,187,190,193,195,198,199,202,204,205,206,208,219],[111,124,186,187,190,194,195,199,202,204,205,206,219],[111,124,187,190,195,196,199,202,204,205,206,219],[111,124,187,190,195,197,198,199,202,204,205,206,219],[111,124,186,187,190,195,198,199,202,204,205,206,219],[111,124,187,190,195,198,199,200,202,204,205,206,219,224,236],[111,124,187,190,195,198,199,200,202,204,205,206,219,224,227],[111,124,174,187,190,195,198,199,201,202,204,205,206,208,219,224,236],[111,124,187,190,195,198,199,201,202,204,205,206,208,219,224,233,236],[111,124,187,190,195,199,201,202,203,204,205,206,219,224,233,236],[111,122,123,124,125,126,127,128,129,130,131,132,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243],[111,124,187,190,195,198,199,202,204,205,206,219],[111,124,187,190,195,199,202,204,206,219],[111,124,187,190,195,199,202,204,205,206,207,219,236],[111,124,187,190,195,198,199,202,204,205,206,208,219,224],[111,124,187,190,195,199,202,204,205,206,210,219],[111,124,187,190,195,199,202,204,205,206,211,219],[111,124,187,190,195,198,199,202,204,205,206,214,219],[111,124,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243],[111,124,187,190,195,199,202,204,205,206,216,219],[111,124,187,190,195,199,202,204,205,206,217,219],[111,124,187,190,192,195,199,202,204,205,206,208,219,227],[111,124,187,190,195,198,199,202,204,205,206,219,220],[111,124,187,190,195,199,202,204,205,206,219,221,237,240],[111,124,187,190,195,198,199,202,204,205,206,219,224,226,227],[111,124,187,190,195,199,202,204,205,206,219,225,227],[111,124,187,190,195,199,202,204,205,206,219,227,237],[111,124,187,190,195,199,202,204,205,206,219,228],[111,124,184,187,190,195,199,202,204,205,206,219,224,230,236],[111,124,187,190,195,199,202,204,205,206,219,224,229],[111,124,187,190,195,198,199,202,204,205,206,219,231,232],[111,124,187,190,195,199,202,204,205,206,219,231,232],[111,124,187,190,192,195,199,202,204,205,206,208,219,224,233],[111,124,187,190,195,199,202,204,205,206,219,234],[111,124,187,190,195,199,202,204,205,206,208,219,235],[111,124,187,190,195,199,201,202,204,205,206,217,219,236],[111,124,187,190,195,199,202,204,205,206,219,237,238],[111,124,187,190,192,195,199,202,204,205,206,219,238],[111,124,187,190,195,199,202,204,205,206,219,224,239],[111,124,187,190,195,199,202,204,205,206,207,219,240],[111,124,187,190,195,199,202,204,205,206,219,241],[111,124,187,190,192,195,199,202,204,205,206,219],[111,124,174,187,190,195,199,202,204,205,206,219],[111,124,187,190,195,199,202,204,205,206,219,236],[111,124,187,190,195,199,202,204,205,206,219,242],[111,124,187,190,195,199,202,204,205,206,214,219],[111,124,187,190,195,199,202,204,205,206,219,232],[111,124,174,187,190,195,198,199,200,202,204,205,206,214,219,224,227,236,239,240,242],[111,124,187,190,195,199,202,204,205,206,219,224,243],[111,124,139,142,145,146,187,190,195,199,202,204,205,206,219,236],[111,124,142,187,190,195,199,202,204,205,206,219,224,236],[111,124,142,146,187,190,195,199,202,204,205,206,219,236],[111,124,187,190,195,199,202,204,205,206,219,224],[111,124,136,187,190,195,199,202,204,205,206,219],[111,124,140,187,190,195,199,202,204,205,206,219],[111,124,138,139,142,187,190,195,199,202,204,205,206,219,236],[111,124,187,190,195,199,202,204,205,206,208,219,233],[111,124,187,190,195,199,202,204,205,206,219,244],[111,124,136,187,190,195,199,202,204,205,206,219,244],[111,124,138,142,187,190,195,199,202,204,205,206,208,219,236],[111,124,133,134,135,137,141,187,190,195,198,199,202,204,205,206,219,224,236],[111,124,142,151,159,187,190,195,199,202,204,205,206,219],[111,124,134,140,187,190,195,199,202,204,205,206,219],[111,124,142,168,169,187,190,195,199,202,204,205,206,219],[111,124,134,137,142,187,190,195,199,202,204,205,206,219,227,236,244],[111,124,142,187,190,195,199,202,204,205,206,219],[111,124,138,142,187,190,195,199,202,204,205,206,219,236],[111,124,133,187,190,195,199,202,204,205,206,219],[111,124,136,137,138,140,141,142,143,144,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,169,170,171,172,173,187,190,195,199,202,204,205,206,219],[111,124,142,161,164,187,190,195,199,202,204,205,206,219],[111,124,142,151,152,153,187,190,195,199,202,204,205,206,219],[111,124,140,142,152,154,187,190,195,199,202,204,205,206,219],[111,124,141,187,190,195,199,202,204,205,206,219],[111,124,134,136,142,187,190,195,199,202,204,205,206,219],[111,124,142,146,152,154,187,190,195,199,202,204,205,206,219],[111,124,146,187,190,195,199,202,204,205,206,219],[111,124,140,142,145,187,190,195,199,202,204,205,206,219,236],[111,124,134,138,142,151,187,190,195,199,202,204,205,206,219],[111,124,142,161,187,190,195,199,202,204,205,206,219],[111,124,154,187,190,195,199,202,204,205,206,219],[111,124,136,142,168,187,190,195,199,202,204,205,206,219,227,242,244],[111,113,114,124,187,190,195,199,202,204,205,206,219],[111,115,124,187,190,195,199,202,204,205,206,219],[111,115,124,187,190,195,199,202,204,205,206,219,231],[111,118,124,187,190,195,199,202,204,205,206,219],[111,115,124,187,190,195,199,202,204,205,206,219,232]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"2a2de5b9459b3fc44decd9ce6100b72f1b002ef523126c1d3d8b2a4a63d74d78","affectsGlobalScope":true,"impliedFormat":1},{"version":"f13f4b465c99041e912db5c44129a94588e1aafee35a50eab51044833f50b4ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"ef4a897cd2a3f91000c10264e400b3667c7e51e1b7365f03b62e8081dc53bde6","impliedFormat":1},{"version":"4936d25ba31379ce4e3d4289f6c0ea936510e111f823ec377015de6ba7047adf","impliedFormat":99},{"version":"1ffa53902f87f288dbaebc1dd9c754a0f0f1c4af2733fc7e173022209e7d4ef8","impliedFormat":99},{"version":"d7801240a49920afb07e1a83597b05a26e5e3758163a70448ba14df3f7ab5286","affectsGlobalScope":true,"impliedFormat":99},{"version":"2aed5de224f5094280addfaf59e82b362b3680083917cfa7f066c4b89cc58b74","impliedFormat":99},{"version":"86ecf772256f9205f72c768dc9b47d27b4254a64a1dd94f61c8c2f29219c24e1","affectsGlobalScope":true,"impliedFormat":99},{"version":"f62bcd0d626998f4b14a5e4bf6c65abf4dfeaa042243dd57e4e92125fd602ed6","impliedFormat":99},{"version":"9462f849ff8d50a61639f09a8e369f7584c623a8cbcf9d99c6b81aacbca91fd2","impliedFormat":99},{"version":"6da820ee582c593971e71a933dbf54d72b47984bb11f888d225c7a8476e74790","impliedFormat":99},{"version":"048a292f9fb06d0aab8c52cabd81bc820c70d68500530afe1867c08e431d4e46","impliedFormat":99},{"version":"e2f9944677cba1c7f636dde67d7ca77982da3b52134c617bd86d3a4d8607b498","impliedFormat":99},{"version":"ceaf67c6cb2df4f38f466bd3709a72199d1d98377dcf215bf760b2a383fc73a8","impliedFormat":99},{"version":"c5f89dedf8e238012d580d16ee2286bf0681f1389f14d419c87711070430995c","affectsGlobalScope":true,"impliedFormat":99},{"version":"dc996a90baa100126e6014b2f55022930e1a44621ec68eb163f322714b7596bc","impliedFormat":99},{"version":"cdd5245a59183386c7b465ad56e2353a0a1b49c32733520ec5c0eeb718781012","impliedFormat":99},{"version":"35c6737b37a2c92e67a14ba7692f3216df6c140c28133835768f7c66cb15fa88","impliedFormat":99},{"version":"7b607f4711c496c7c4f57abddfc7b9912059e1f264417ff8f4280b65f756bf4d","impliedFormat":99},{"version":"17122ddf1e2ff9f0538a06af6edc8d2666d7e1a428239e86358afc09ac7a8779","impliedFormat":99},{"version":"2cc6a5c34041442caa16aff0686d41595296248c7c33bfac5b94cd4fe8ae20de","impliedFormat":99},{"version":"8384e3ab082eecd9d0faa07ddf7e9ff3879bfac60216e47328f799600e47ea80","affectsGlobalScope":true,"impliedFormat":99},{"version":"715e7c015d2f3f4de0da107d9be2db02b52cea3d2d446ad11d2e732848d8e3e7","impliedFormat":99},"cda120f78df4c624c7fb1bd8e17343a39bfbede803f38312fb8e51fa818e1a7a","d9e135cc1dcf9f798edb9665b777dcad812d980a467b6ed11ce1d1bb9f017176",{"version":"f2f9d119e78b474f1aba0235574fb721e48e246dfed8b38c263ee9ed50544164","signature":"fefaf643ad02c05059e06244a8291c4cb3a2693ec928c843599c25d00ee9f574"},{"version":"5c44ae204d6e5cb5c5d6624927e4214682cde44137c4fca2e58cc6e66e609076","signature":"fefaf643ad02c05059e06244a8291c4cb3a2693ec928c843599c25d00ee9f574"},{"version":"22a8ccd3f0995877816c1cc24eb5dd8ef47a9a255b5ec8d5f35c9ae251c5b9d9","signature":"663c0ee4aea73e54d14f67f136704976237debe5688143bd63610d0932ea6cde"},{"version":"13be7020d9f80cc10a23da3f97b321498d1401f10fbf63c407dfd7f7bacbd35c","signature":"1afe168918a279fa7aff84c476c95f428cae41b230f6d6df86fea9b09d210d89"},{"version":"995c8ba188e58833f05a4cc9a68ff21b6120b12fd8dd5e5c86572ee49d6f4b7a","signature":"fefaf643ad02c05059e06244a8291c4cb3a2693ec928c843599c25d00ee9f574"},{"version":"404e93ea60c02af0686439da60eb26df6449c756f5891f5af8995b76b72bb0c3","signature":"762010463cd7c0de4630b94ca6f1e4721254cfbf6fdf46f280585e7890a9afce"},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc2110f7decca6bfb9392e30421cfa1436479e4a6756e8fec6cbc22625d4f881","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"10ec5e82144dfac6f04fa5d1d6c11763b3e4dbbac6d99101427219ab3e2ae887","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"074de5b2fdead0165a2757e3aaef20f27a6347b1c36adea27d51456795b37682","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"4137ebf04166f3a325f056aa56101adc75e9dceb30404a1844eb8604d89770e2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"3e11fce78ad8c0e1d1db4ba5f0652285509be3acdd519529bc8fcef85f7dafd9","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"9c32412007b5662fd34a8eb04292fb5314ec370d7016d1c2fb8aa193c807fe22","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"6ebe8ebb8659aaa9d1acbf3710d7dae3e923e97610238b9511c25dc39023a166","impliedFormat":1},{"version":"e85d7f8068f6a26710bff0cc8c0fc5e47f71089c3780fbede05857331d2ddec9","impliedFormat":1},{"version":"7befaf0e76b5671be1d47b77fcc65f2b0aad91cc26529df1904f4a7c46d216e9","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"1cc2a09e1a61a5222d4174ab358a9f9de5e906afe79dbf7363d871a7edda3955","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"b64d4d1c5f877f9c666e98e833f0205edb9384acc46e98a1fef344f64d6aba44","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"c9381908473a1c92cb8c516b184e75f4d226dad95c3a85a5af35f670064d9a2f","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2ae155afe8a01cc0ae612d99117cf8ef16692ba7c4366590156fdec1bcf2d8c","impliedFormat":1},{"version":"3f5e5d9be35913db9fea42a63f3df0b7e3c8703b97670a2125587b4dbbd56d7c","impliedFormat":1},{"version":"8caeb65fdc3bfe0d13f86f67324fcb2d858ed1c55f1f0cce892eb1acfb9f3239","impliedFormat":1},{"version":"57c23df0b5f7a8e26363a3849b0bc7763f6b241207157c8e40089d1df4116f35","affectsGlobalScope":true,"impliedFormat":1},{"version":"3b8bc0c17b54081b0878673989216229e575d67a10874e84566a21025a2461ee","impliedFormat":1},{"version":"5b0db5a58b73498792a29bfebc333438e61906fef75da898b410e24e52229e6f","impliedFormat":1},{"version":"dbe055b2b29a7bab2c1ca8f259436306adb43f469dca7e639a02cd3695d3f621","impliedFormat":1},{"version":"1678b04557dca52feab73cc67610918a7f5e25bfdba3e7fa081acd625d93106d","impliedFormat":1},{"version":"e3905f6902f0b69e5eefc230daa69fdd4ab707a973ec2d086d65af1b3ea47ef0","impliedFormat":1},{"version":"2ea729503db9793f2691162fec3dd1118cab62e96d025f8eeb376d43ec293395","impliedFormat":1},{"version":"9ec87fea42b92894b0f209931a880789d43c3397d09dd99c631ae40a2f7071d1","impliedFormat":1},{"version":"c68e88cdfadfb6c8ba5fc38e58a3a166b0beae77b1f05b7d921150a32a5ffb8d","impliedFormat":1},{"version":"2bc7aa4fba46df0bd495425a7c8201437a7d465f83854fac859df2d67f664df3","impliedFormat":1},{"version":"41d17e1ad9a002feb11c8cdd2777e5bbc0cdb1e3f595d237e4dded0b6949983b","impliedFormat":1},{"version":"07e4e61e946a9c15045539ecd5f5d2d02e7aab6fa82567826857e09cf0f37c2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c4714ccc29149efb8777a1da0b04b8d2258f5d13ddbf4cd3c3d361fb531ac86","impliedFormat":1},{"version":"3ff275f84f89f8a7c0543da838f9da9614201abc4ce74c533029825adfb4433d","impliedFormat":1},{"version":"0eb5d0cbf09de5d34542b977fd6a933bb2e0817bffe8e1a541b2f1ad1b9af1ff","impliedFormat":1},{"version":"10deca769dfed888051b1808d6746f8883a490a707f8bdf9367079146987d6d0","impliedFormat":1},{"version":"2c2bdaa1d8ead9f68628d6d9d250e46ee8e81aa4898b4769a36956ae15e060fe","impliedFormat":1},{"version":"c32c840c62d8bd7aeb3147aa6754cd2d922b990a6b6634530cb2ebdce5adc8e9","impliedFormat":1},{"version":"e1c1a0b4d1ead0de9eca52203aeb1f771f21e6238d6fcd15aa56ac2a02f1b7bf","impliedFormat":1},{"version":"82b91e4e42e6c41bc7fc1b6c2dc5eba6a2ba98375eb1f210e6ff6bba2d54177e","impliedFormat":1},{"version":"6fe28249ac0c7bc19a79aa9264baf00efbd080e868dbe1d3052033ad1c64f206","affectsGlobalScope":true,"impliedFormat":1},{"version":"cbed824fec91efefc7bbdcb8b43d1a531fdbebd0e2ef19481501ff365a93cb70","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"d0716593b3f2b0451bcf0c24cfa86dec2235c325c89f201934248b7c742715fc","impliedFormat":1},{"version":"ec501101c2a96133a6c695f934c8f6642149cc728571b29cbb7b770984c1088e","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"2991bca2cc0f0628a278df2a2ccdb8d6cbcb700f3761abbed62bba137d5b1790","impliedFormat":1},{"version":"ce8653341224f8b45ff46d2a06f2cacb96f841f768a886c9d8dd8ec0878b11bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"230763250f20449fa7b3c9273e1967adb0023dc890d4be1553faca658ee65971","impliedFormat":1},{"version":"c3e9078b60cb329d1221f5878e88cecfa3e74460550e605a58fcfb41a66029ff","impliedFormat":1},{"version":"a74edb3bab7394a9dbde529d60632be590def2f5f01024dbd85441587fbfbbe0","impliedFormat":1},{"version":"0ea59f7d3e51440baa64f429253759b106cfcbaf51e474cae606e02265b37cf8","impliedFormat":1},{"version":"bc18a1991ba681f03e13285fa1d7b99b03b67ee671b7bc936254467177543890","impliedFormat":1},{"version":"00049ccc87f3f37726db03c01ca68fe74fd9c0109b68c29eb9923ebec2c76b13","impliedFormat":1},{"version":"fa94bbf532b7af8f394b95fa310980d6e20bd2d4c871c6a6cb9f70f03750a44b","impliedFormat":1},{"version":"68d3f35108e2608b1f2f28b36d19d7055f31c4465cc5692cbd06c716a9fe7973","impliedFormat":1},{"version":"a6d543044570fbeed13a7f9925a868081cd2b14ef59cdd9da6ae76d41cab03d3","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fa2214bb0d64701bc6f9ce8cde2fd2ff8c571e0b23065fa04a8a5a6beb91511","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"016b29bf4926b80255a108c53a1451717350059da04fcae64d1075f5e93bbb39","impliedFormat":1},{"version":"841983e39bd4cbb463be385e92fda11057cab368bf27100a801c492f1d86cbaa","impliedFormat":1},{"version":"6f5383b3df1cdf4ff1aa7fb0850f77042b5786b5e65ec9a9b6be56ebfe4d9036","impliedFormat":1},{"version":"62fc21ed9ccbd83bd1166de277a4b5daaa8d15b5fa614c75610d20f3b73fba87","impliedFormat":1},{"version":"e4156ddb25aa0e3b5303d372f26957b36778f0f6bbd4326359269873295e3058","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc1b433a84cae05ddc5672d4823170af78606ad21ecef60dbc4570190cbf1357","impliedFormat":1},{"version":"9d3821bc75c59577e52643324cec92fc2145642e8d17cf7ee07a3181f21d985d","impliedFormat":1},{"version":"7f78cfb2b343838612c192cb251746e3a7c62ac7675726a47e130d9b213f6580","impliedFormat":1},{"version":"201db9cf1687fab1adf5282fcba861f382b32303dc4f67c89d59655e78a25461","impliedFormat":1},{"version":"c77fb31bc17fd241d3922a9f88c59e3361cdf76d1328ba9412fc6bf7310b638d","impliedFormat":1},{"version":"0a20eaf2e4b1e3c1e1f87f7bccb0c936375b23b022baeea750519b7c9bc6ce83","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"a16b91b27bd6b706c687c88cbc8a7d4ee98e5ed6043026d6b84bda923c0aed67","impliedFormat":1},{"version":"694b812e0ed11285e8822cf8131e3ce7083a500b3b1d185fff9ed1089677bd0a","impliedFormat":1},{"version":"99ab6d0d660ce4d21efb52288a39fd35bb3f556980ec5463b1ae8f304a3bbc85","impliedFormat":1},{"version":"6eeded8c7e352be6e0efb83f4935ec752513c4d22043b52522b90849a49a3a11","impliedFormat":1},{"version":"6c1ad90050ffbb151cacc68e2d06ea1a26a945659391e32651f5d42b86fd7f2c","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1}],"root":[[116,121]],"options":{"allowImportingTsExtensions":true,"allowJs":true,"checkJs":false,"composite":true,"declaration":true,"declarationDir":"./lib/types","emitDeclarationOnly":true,"experimentalDecorators":true,"module":99,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"strict":false,"target":99},"referencedMap":[[104,1],[105,2],[106,3],[107,4],[108,5],[109,6],[94,6],[110,6],[111,7],[112,8],[113,9],[103,10],[97,11],[98,12],[99,13],[100,14],[95,15],[96,10],[101,16],[102,17],[184,18],[185,18],[186,19],[124,20],[187,21],[188,22],[189,23],[122,6],[190,24],[191,25],[192,26],[193,27],[194,28],[195,29],[196,29],[197,30],[198,31],[199,32],[200,33],[125,6],[123,6],[201,34],[202,35],[203,36],[244,37],[204,38],[205,39],[206,38],[207,40],[208,41],[210,42],[211,43],[212,43],[213,43],[214,44],[215,45],[216,46],[217,47],[218,48],[219,49],[220,49],[221,50],[222,6],[223,6],[224,51],[225,52],[226,51],[227,53],[228,54],[229,55],[230,56],[231,57],[232,58],[233,59],[234,60],[235,61],[236,62],[237,63],[238,64],[239,65],[240,66],[241,67],[126,38],[127,6],[128,6],[129,68],[130,6],[131,24],[132,6],[175,69],[176,70],[177,71],[178,71],[179,72],[180,6],[181,21],[182,73],[183,70],[242,74],[243,75],[209,6],[91,6],[92,6],[16,6],[14,6],[15,6],[20,6],[19,6],[2,6],[21,6],[22,6],[23,6],[24,6],[25,6],[26,6],[27,6],[28,6],[3,6],[29,6],[30,6],[4,6],[31,6],[35,6],[32,6],[33,6],[34,6],[36,6],[37,6],[38,6],[5,6],[39,6],[40,6],[41,6],[42,6],[6,6],[46,6],[43,6],[44,6],[45,6],[47,6],[7,6],[48,6],[53,6],[54,6],[49,6],[50,6],[51,6],[52,6],[8,6],[58,6],[55,6],[56,6],[57,6],[59,6],[9,6],[60,6],[61,6],[62,6],[64,6],[63,6],[65,6],[66,6],[10,6],[67,6],[68,6],[69,6],[11,6],[70,6],[71,6],[72,6],[73,6],[74,6],[75,6],[12,6],[76,6],[77,6],[78,6],[79,6],[80,6],[1,6],[81,6],[82,6],[13,6],[83,6],[84,6],[85,6],[86,6],[93,6],[87,6],[88,6],[89,6],[90,6],[18,6],[17,6],[151,76],[163,77],[148,78],[164,79],[173,80],[139,81],[140,82],[138,83],[172,84],[167,85],[171,86],[142,87],[160,88],[141,89],[170,90],[136,91],[137,85],[143,92],[144,6],[150,93],[147,92],[134,94],[174,95],[165,96],[154,97],[153,92],[155,98],[158,99],[152,100],[156,101],[168,84],[145,102],[146,103],[159,104],[135,79],[162,105],[161,92],[149,103],[157,106],[166,6],[133,6],[169,107],[115,108],[114,6],[116,109],[117,110],[119,111],[120,112],[121,111],[118,6]],"latestChangedDtsFile":"./lib/types/promises.d.ts","version":"6.0.3"}
|