@irrelon/emitter 6.0.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/Emitter.d.ts +64 -5
- package/dist/cjs/src/Emitter.js +113 -18
- package/dist/cjs/tests/Emitter.test.js +66 -13
- package/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/esm/src/Emitter.d.ts +64 -5
- package/dist/esm/src/Emitter.js +111 -16
- package/dist/esm/tests/Emitter.test.js +66 -13
- package/dist/esm/tsconfig-esm.tsbuildinfo +1 -1
- package/eslint.config.mjs +42 -0
- package/jest.config.js +7 -0
- package/package.json +14 -25
- package/readme.md +20 -3
- package/src/Emitter.ts +330 -201
- package/tests/Emitter.test.ts +244 -163
- package/.editorconfig +0 -11
- package/fixPaths.cjs +0 -183
- /package/{.eslintrc.json → eslint.json} +0 -0
|
@@ -15,10 +15,14 @@ export interface EmitterAnyEventsInterface {
|
|
|
15
15
|
export type EmitterEventsInterface<T> = {
|
|
16
16
|
[K in keyof T]: T[K];
|
|
17
17
|
};
|
|
18
|
+
interface WithStar {
|
|
19
|
+
"*"?: (eventName: string, ...args: any[]) => void;
|
|
20
|
+
}
|
|
21
|
+
export type EmitterEventsWithStar<T> = EmitterEventsInterface<T> & WithStar;
|
|
18
22
|
/**
|
|
19
23
|
* Creates a new class with the capability to emit events.
|
|
20
24
|
*/
|
|
21
|
-
export declare class Emitter<EventsInterface extends
|
|
25
|
+
export declare class Emitter<EventsInterface extends EmitterEventsWithStar<EventsInterface> = EmitterAnyEventsInterface> {
|
|
22
26
|
_eventsEmitting: boolean;
|
|
23
27
|
_eventRemovalQueue: any[];
|
|
24
28
|
_eventListeners?: {
|
|
@@ -56,6 +60,11 @@ export declare class Emitter<EventsInterface extends EmitterEventsInterface<Even
|
|
|
56
60
|
* @returns The emitter instance.
|
|
57
61
|
*/
|
|
58
62
|
_off<EventName extends keyof EventsInterface>(eventName: EventName, id: string, listener?: EventListenerCallback<EventsInterface[EventName]>): this;
|
|
63
|
+
/**
|
|
64
|
+
* Creates an event listener that listens for any and all events
|
|
65
|
+
* emitted.
|
|
66
|
+
*/
|
|
67
|
+
onAny(listener: EventListenerCallback): void;
|
|
59
68
|
/**
|
|
60
69
|
* Attach an event listener to the passed event only if the passed
|
|
61
70
|
* id matches the document id for the event being fired.
|
|
@@ -90,6 +99,11 @@ export declare class Emitter<EventsInterface extends EmitterEventsInterface<Even
|
|
|
90
99
|
*/
|
|
91
100
|
overwrite<EventName extends keyof EventsInterface>(eventName: EventName, id: string, listener: EventListenerCallback<EventsInterface[EventName]>): this;
|
|
92
101
|
overwrite<EventName extends keyof EventsInterface>(eventName: EventName, listener: EventListenerCallback<EventsInterface[EventName]>): this;
|
|
102
|
+
/**
|
|
103
|
+
* Removes an event listener that listens for any and all events
|
|
104
|
+
* emitted.
|
|
105
|
+
*/
|
|
106
|
+
offAny(listener: EventListenerCallback): void;
|
|
93
107
|
/**
|
|
94
108
|
* Cancels an event listener based on an event name, id and listener function.
|
|
95
109
|
* @param eventName The event to cancel listener for.
|
|
@@ -101,7 +115,46 @@ export declare class Emitter<EventsInterface extends EmitterEventsInterface<Even
|
|
|
101
115
|
off<EventName extends keyof EventsInterface>(eventName: EventName, id: string, listener?: EventListenerCallback<EventsInterface[EventName]>): this;
|
|
102
116
|
off<EventName extends keyof EventsInterface>(eventName: EventName, listener?: EventListenerCallback<EventsInterface[EventName]>): this;
|
|
103
117
|
off<EventName extends keyof EventsInterface>(eventName: EventName): this;
|
|
118
|
+
_emitToSingleListener<EventName extends keyof EventsInterface>(listener: EventListenerCallback<EventsInterface[EventName]>, data: Parameters<EventsInterface[EventName]>): ReturnType<EventsInterface[EventName]> | ListenerReturnFlag;
|
|
104
119
|
_emitToArrayOfListeners<EventName extends keyof EventsInterface>(arr: EventListenerCallback<EventsInterface[EventName]>[], data: Parameters<EventsInterface[EventName]>): (ReturnType<EventsInterface[EventName]> | ListenerReturnFlag)[];
|
|
120
|
+
/**
|
|
121
|
+
* Call an event listener by name. The `rpc()` function differs from `emit()` in
|
|
122
|
+
* that it will only call and return data from the first event listener for the
|
|
123
|
+
* event rather than all event listeners. If you have more than one event listener
|
|
124
|
+
* assigned to the event, all others except the first will be ignored and will
|
|
125
|
+
* not receive the event.
|
|
126
|
+
* @param eventName The name of the event to call the listener for.
|
|
127
|
+
* @param {...any} data The arguments to send to the listening method.
|
|
128
|
+
* If you are sending multiple arguments, separate them with a comma so
|
|
129
|
+
* that they are received by the function as separate arguments.
|
|
130
|
+
* @return {number}
|
|
131
|
+
* @example #Call the Event Listener
|
|
132
|
+
* // Emit the event named "hello"
|
|
133
|
+
* myEntity.emit('hello');
|
|
134
|
+
* @example #Call the Event Listener With Data Object
|
|
135
|
+
* // Emit the event named "hello"
|
|
136
|
+
* myEntity.emit('hello', {moo: true});
|
|
137
|
+
* @example #Call the Event Listener With Multiple Data Values
|
|
138
|
+
* // Emit the event named "hello"
|
|
139
|
+
* myEntity.emit('hello', {moo: true}, 'someString');
|
|
140
|
+
* @example #Register the Listener for Event Data
|
|
141
|
+
* // Set a listener to listen for the data (multiple values emitted
|
|
142
|
+
* // from an event are passed as function arguments)
|
|
143
|
+
* myEntity.on('hello', function (arg1, arg2) {
|
|
144
|
+
* console.log("Arguments:", arg1, arg2);
|
|
145
|
+
* return "foo";
|
|
146
|
+
* }
|
|
147
|
+
*
|
|
148
|
+
* // Emit the event named "hello"
|
|
149
|
+
* const result = myEntity.emit('hello', 'data1', 'data2');
|
|
150
|
+
* console.log("Result:", result);
|
|
151
|
+
*
|
|
152
|
+
* // The console output is:
|
|
153
|
+
* // Arguments: data1 data2
|
|
154
|
+
* // Result: "foo"
|
|
155
|
+
*/
|
|
156
|
+
rpc<EventName extends keyof EventsInterface>(eventName: EventName, ...data: Parameters<EventsInterface[EventName]>): ReturnType<EventsInterface[EventName]> | ListenerReturnFlag;
|
|
157
|
+
rpcId<EventName extends keyof EventsInterface>(eventName: EventName, id: string, ...data: Parameters<EventsInterface[EventName]>): ReturnType<EventsInterface[EventName]> | ListenerReturnFlag;
|
|
105
158
|
/**
|
|
106
159
|
* Emit an event by name.
|
|
107
160
|
* @param eventName The name of the event to emit.
|
|
@@ -121,15 +174,20 @@ export declare class Emitter<EventsInterface extends EmitterEventsInterface<Even
|
|
|
121
174
|
* @example #Listen for Event Data
|
|
122
175
|
* // Set a listener to listen for the data (multiple values emitted
|
|
123
176
|
* // from an event are passed as function arguments)
|
|
124
|
-
*
|
|
125
|
-
* console.log(arg1, arg2);
|
|
177
|
+
* myEntity.on('hello', function (arg1, arg2) {
|
|
178
|
+
* console.log("Arguments:", arg1, arg2);
|
|
179
|
+
* return "foo";
|
|
126
180
|
* }
|
|
127
181
|
*
|
|
128
182
|
* // Emit the event named "hello"
|
|
129
|
-
*
|
|
183
|
+
* // The result is returned as an array of all return values
|
|
184
|
+
* // from all the listeners for the event
|
|
185
|
+
* const result = myEntity.emit('hello', 'data1', 'data2');
|
|
186
|
+
* console.log("Result:", result);
|
|
130
187
|
*
|
|
131
188
|
* // The console output is:
|
|
132
|
-
* //
|
|
189
|
+
* // Arguments: data1 data2
|
|
190
|
+
* // Result: ["foo"]
|
|
133
191
|
*/
|
|
134
192
|
emit<EventName extends keyof EventsInterface>(eventName: EventName, ...data: Parameters<EventsInterface[EventName]>): (ReturnType<EventsInterface[EventName]> | ListenerReturnFlag)[];
|
|
135
193
|
emitId<EventName extends keyof EventsInterface>(eventName: EventName, id: string, ...data: Parameters<EventsInterface[EventName]>): (ReturnType<EventsInterface[EventName]> | ListenerReturnFlag)[];
|
|
@@ -207,3 +265,4 @@ export declare class Emitter<EventsInterface extends EmitterEventsInterface<Even
|
|
|
207
265
|
export declare function makeEmitter(obj: AnyConstructor, prototypeMode: boolean): Emitter;
|
|
208
266
|
export declare function makeEmitter(obj: boolean): Emitter;
|
|
209
267
|
export declare function makeEmitter(obj: Record<string, unknown>, prototypeMode: boolean): Emitter;
|
|
268
|
+
export {};
|
package/dist/esm/src/Emitter.js
CHANGED
|
@@ -110,6 +110,13 @@ export class Emitter {
|
|
|
110
110
|
}
|
|
111
111
|
return this;
|
|
112
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Creates an event listener that listens for any and all events
|
|
115
|
+
* emitted.
|
|
116
|
+
*/
|
|
117
|
+
onAny(listener) {
|
|
118
|
+
this.on("*", listener);
|
|
119
|
+
}
|
|
113
120
|
on(eventName, idOrListener, listener) {
|
|
114
121
|
if (typeof idOrListener === "string") {
|
|
115
122
|
return this._on(eventName, idOrListener, listener);
|
|
@@ -132,6 +139,13 @@ export class Emitter {
|
|
|
132
139
|
this.off(eventName, rest[0]);
|
|
133
140
|
return this._on(eventName, rest[0], rest[1]);
|
|
134
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* Removes an event listener that listens for any and all events
|
|
144
|
+
* emitted.
|
|
145
|
+
*/
|
|
146
|
+
offAny(listener) {
|
|
147
|
+
this.off("*", listener);
|
|
148
|
+
}
|
|
135
149
|
off(eventName, ...rest) {
|
|
136
150
|
if (rest.length === 0) {
|
|
137
151
|
// Only event was provided, use * as the id to mean "any without"
|
|
@@ -147,6 +161,9 @@ export class Emitter {
|
|
|
147
161
|
// Both id and listener were provided, remove for the specific id
|
|
148
162
|
return this._off(eventName, rest[0], rest[1]);
|
|
149
163
|
}
|
|
164
|
+
_emitToSingleListener(listener, data) {
|
|
165
|
+
return listener(...data);
|
|
166
|
+
}
|
|
150
167
|
_emitToArrayOfListeners(arr, data) {
|
|
151
168
|
const arrCount = arr.length;
|
|
152
169
|
const resultArr = [];
|
|
@@ -165,6 +182,71 @@ export class Emitter {
|
|
|
165
182
|
}
|
|
166
183
|
return resultArr;
|
|
167
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Call an event listener by name. The `rpc()` function differs from `emit()` in
|
|
187
|
+
* that it will only call and return data from the first event listener for the
|
|
188
|
+
* event rather than all event listeners. If you have more than one event listener
|
|
189
|
+
* assigned to the event, all others except the first will be ignored and will
|
|
190
|
+
* not receive the event.
|
|
191
|
+
* @param eventName The name of the event to call the listener for.
|
|
192
|
+
* @param {...any} data The arguments to send to the listening method.
|
|
193
|
+
* If you are sending multiple arguments, separate them with a comma so
|
|
194
|
+
* that they are received by the function as separate arguments.
|
|
195
|
+
* @return {number}
|
|
196
|
+
* @example #Call the Event Listener
|
|
197
|
+
* // Emit the event named "hello"
|
|
198
|
+
* myEntity.emit('hello');
|
|
199
|
+
* @example #Call the Event Listener With Data Object
|
|
200
|
+
* // Emit the event named "hello"
|
|
201
|
+
* myEntity.emit('hello', {moo: true});
|
|
202
|
+
* @example #Call the Event Listener With Multiple Data Values
|
|
203
|
+
* // Emit the event named "hello"
|
|
204
|
+
* myEntity.emit('hello', {moo: true}, 'someString');
|
|
205
|
+
* @example #Register the Listener for Event Data
|
|
206
|
+
* // Set a listener to listen for the data (multiple values emitted
|
|
207
|
+
* // from an event are passed as function arguments)
|
|
208
|
+
* myEntity.on('hello', function (arg1, arg2) {
|
|
209
|
+
* console.log("Arguments:", arg1, arg2);
|
|
210
|
+
* return "foo";
|
|
211
|
+
* }
|
|
212
|
+
*
|
|
213
|
+
* // Emit the event named "hello"
|
|
214
|
+
* const result = myEntity.emit('hello', 'data1', 'data2');
|
|
215
|
+
* console.log("Result:", result);
|
|
216
|
+
*
|
|
217
|
+
* // The console output is:
|
|
218
|
+
* // Arguments: data1 data2
|
|
219
|
+
* // Result: "foo"
|
|
220
|
+
*/
|
|
221
|
+
rpc(eventName, ...data) {
|
|
222
|
+
return this.rpcId(eventName, "*", ...data);
|
|
223
|
+
}
|
|
224
|
+
rpcId(eventName, id, ...data) {
|
|
225
|
+
if (!this._eventListeners || !this._eventListeners[eventName]) {
|
|
226
|
+
throw new Error("Cannot make an rpc call without at least one event listener and none were found");
|
|
227
|
+
}
|
|
228
|
+
let emitterResult;
|
|
229
|
+
this._eventsEmitting = true;
|
|
230
|
+
if (this._eventListeners[eventName][id]) {
|
|
231
|
+
// Handle id emit
|
|
232
|
+
const arr = this._eventListeners[eventName][id];
|
|
233
|
+
emitterResult = this._emitToSingleListener(arr[0], data);
|
|
234
|
+
}
|
|
235
|
+
else if (id !== "*" && this._eventListeners[eventName]["*"]) {
|
|
236
|
+
// Handle wildcard emit if the id passed wasn't already a wildcard (*) id
|
|
237
|
+
const arr = this._eventListeners[eventName]["*"];
|
|
238
|
+
emitterResult = this._emitToSingleListener(arr[0], data);
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
if (id === "*") {
|
|
242
|
+
throw new Error(`Cannot make an rpc call to event "${eventName}" without at least one event listener and none were found, register a listener via on("${eventName}", () => { ...some listener code })`);
|
|
243
|
+
}
|
|
244
|
+
throw new Error(`Cannot make an rpc call to event "${eventName}" and id "${id}" without at least one event listener and none were found, register a listener via on("${eventName}", "${id}", () => { ...some listener code })`);
|
|
245
|
+
}
|
|
246
|
+
this._eventsEmitting = false;
|
|
247
|
+
this._processRemovalQueue();
|
|
248
|
+
return emitterResult;
|
|
249
|
+
}
|
|
168
250
|
/**
|
|
169
251
|
* Emit an event by name.
|
|
170
252
|
* @param eventName The name of the event to emit.
|
|
@@ -184,34 +266,45 @@ export class Emitter {
|
|
|
184
266
|
* @example #Listen for Event Data
|
|
185
267
|
* // Set a listener to listen for the data (multiple values emitted
|
|
186
268
|
* // from an event are passed as function arguments)
|
|
187
|
-
*
|
|
188
|
-
* console.log(arg1, arg2);
|
|
269
|
+
* myEntity.on('hello', function (arg1, arg2) {
|
|
270
|
+
* console.log("Arguments:", arg1, arg2);
|
|
271
|
+
* return "foo";
|
|
189
272
|
* }
|
|
190
273
|
*
|
|
191
274
|
* // Emit the event named "hello"
|
|
192
|
-
*
|
|
275
|
+
* // The result is returned as an array of all return values
|
|
276
|
+
* // from all the listeners for the event
|
|
277
|
+
* const result = myEntity.emit('hello', 'data1', 'data2');
|
|
278
|
+
* console.log("Result:", result);
|
|
193
279
|
*
|
|
194
280
|
* // The console output is:
|
|
195
|
-
* //
|
|
281
|
+
* // Arguments: data1 data2
|
|
282
|
+
* // Result: ["foo"]
|
|
196
283
|
*/
|
|
197
284
|
emit(eventName, ...data) {
|
|
198
285
|
return this.emitId(eventName, "*", ...data);
|
|
199
286
|
}
|
|
200
287
|
emitId(eventName, id, ...data) {
|
|
201
|
-
if (!this._eventListeners || !this._eventListeners[eventName]) {
|
|
288
|
+
if (!this._eventListeners || (!this._eventListeners[eventName] && !this._eventListeners["*"])) {
|
|
202
289
|
return [];
|
|
203
290
|
}
|
|
204
291
|
let emitterResult = [];
|
|
205
292
|
this._eventsEmitting = true;
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
293
|
+
if (this._eventListeners[eventName]) {
|
|
294
|
+
// Handle id emit
|
|
295
|
+
if (this._eventListeners[eventName][id]) {
|
|
296
|
+
const arr = this._eventListeners[eventName][id];
|
|
297
|
+
emitterResult = emitterResult.concat(this._emitToArrayOfListeners(arr, data));
|
|
298
|
+
}
|
|
299
|
+
// Handle id wildcard emit if the id passed wasn't already a wildcard (*) id
|
|
300
|
+
if (id !== "*" && this._eventListeners[eventName]["*"]) {
|
|
301
|
+
const arr = this._eventListeners[eventName]["*"];
|
|
302
|
+
emitterResult = emitterResult.concat(this._emitToArrayOfListeners(arr, data));
|
|
303
|
+
}
|
|
210
304
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
emitterResult = emitterResult.concat(this._emitToArrayOfListeners(arr, data));
|
|
305
|
+
if (this._eventListeners["*"]) {
|
|
306
|
+
const arr = this._eventListeners["*"]["*"];
|
|
307
|
+
emitterResult = emitterResult.concat(this._emitToArrayOfListeners(arr, [eventName, ...data]));
|
|
215
308
|
}
|
|
216
309
|
this._eventsEmitting = false;
|
|
217
310
|
this._processRemovalQueue();
|
|
@@ -231,7 +324,7 @@ export class Emitter {
|
|
|
231
324
|
this._eventListeners = this._eventListeners || {};
|
|
232
325
|
this._eventsEmitting = true;
|
|
233
326
|
if (this._eventListeners[eventName] && this._eventListeners[eventName][id]) {
|
|
234
|
-
// Handle
|
|
327
|
+
// Handle id wildcard emit
|
|
235
328
|
const arr = this._eventListeners[eventName][id];
|
|
236
329
|
const arrCount = arr.length;
|
|
237
330
|
for (let arrIndex = 0; arrIndex < arrCount; arrIndex++) {
|
|
@@ -280,7 +373,7 @@ export class Emitter {
|
|
|
280
373
|
}
|
|
281
374
|
}
|
|
282
375
|
}
|
|
283
|
-
// Handle
|
|
376
|
+
// Handle wildcard emit
|
|
284
377
|
if (this._eventListeners[eventName]["*"]) {
|
|
285
378
|
const arr = this._eventListeners[eventName]["*"];
|
|
286
379
|
const arrCount = arr.length;
|
|
@@ -359,7 +452,7 @@ export class Emitter {
|
|
|
359
452
|
}
|
|
360
453
|
}
|
|
361
454
|
}
|
|
362
|
-
// Handle
|
|
455
|
+
// Handle wildcard emit
|
|
363
456
|
if (this._eventListeners[eventName]["*"]) {
|
|
364
457
|
const arr = this._eventListeners[eventName]["*"];
|
|
365
458
|
const arrCount = arr.length;
|
|
@@ -456,7 +549,9 @@ export function makeEmitter(obj, prototypeMode) {
|
|
|
456
549
|
}
|
|
457
550
|
// Convert the object prototype to have eventing capability
|
|
458
551
|
operateOnObject.on = Emitter.prototype.on;
|
|
552
|
+
operateOnObject.onAny = Emitter.prototype.onAny;
|
|
459
553
|
operateOnObject.off = Emitter.prototype.off;
|
|
554
|
+
operateOnObject.offAny = Emitter.prototype.offAny;
|
|
460
555
|
operateOnObject.once = Emitter.prototype.once;
|
|
461
556
|
operateOnObject.emit = Emitter.prototype.emit;
|
|
462
557
|
operateOnObject.emitId = Emitter.prototype.emitId;
|
|
@@ -1,25 +1,26 @@
|
|
|
1
|
+
import { jest } from "@jest/globals";
|
|
1
2
|
import assert from "assert";
|
|
2
3
|
import { Emitter, ListenerReturnFlag } from "../src/Emitter";
|
|
3
4
|
let expectedAssertions = 0;
|
|
4
5
|
let actualAssertions = 0;
|
|
5
|
-
function
|
|
6
|
+
function expectAssertionCount(val) {
|
|
6
7
|
expectedAssertions = val;
|
|
7
8
|
}
|
|
8
|
-
function
|
|
9
|
+
function resetAssertionCount() {
|
|
9
10
|
expectedAssertions = 0;
|
|
10
11
|
actualAssertions = 0;
|
|
11
12
|
}
|
|
12
13
|
function countAssertion() {
|
|
13
14
|
actualAssertions++;
|
|
14
15
|
}
|
|
15
|
-
function
|
|
16
|
+
function checkAssertionCount() {
|
|
16
17
|
if (expectedAssertions === undefined || expectedAssertions === actualAssertions) {
|
|
17
18
|
return;
|
|
18
19
|
}
|
|
19
20
|
throw new Error("expected " + expectedAssertions + " assertions, got " + actualAssertions);
|
|
20
21
|
}
|
|
21
|
-
beforeEach(
|
|
22
|
-
afterEach(
|
|
22
|
+
beforeEach(resetAssertionCount);
|
|
23
|
+
afterEach(checkAssertionCount);
|
|
23
24
|
describe("Emitter", () => {
|
|
24
25
|
describe("new Emitter()", () => {
|
|
25
26
|
it("Creates emitter instance by instantiation", () => {
|
|
@@ -32,12 +33,8 @@ describe("Emitter", () => {
|
|
|
32
33
|
myClass._eventListeners.moo["*"].length, true, "Listeners all removed from event");
|
|
33
34
|
});
|
|
34
35
|
it("Supports extending Emitter as a base class", () => {
|
|
35
|
-
let testFuncCount = 0;
|
|
36
36
|
// Test extending Emitter and modifying base functionality
|
|
37
37
|
class MyClass extends Emitter {
|
|
38
|
-
testFunc() {
|
|
39
|
-
testFuncCount++;
|
|
40
|
-
}
|
|
41
38
|
on(eventName, ...rest) {
|
|
42
39
|
const restTypes = rest.map((arg) => typeof arg);
|
|
43
40
|
if (restTypes[0] === "function") {
|
|
@@ -150,6 +147,7 @@ describe("Emitter", () => {
|
|
|
150
147
|
await Promise.all(emitter.emit("foo"));
|
|
151
148
|
const delta = new Date().getTime() - time;
|
|
152
149
|
assert.ok(delta > 900, "Delta was not correct, await may not have paused?");
|
|
150
|
+
assert.strictEqual(listenerFiredCount, 2, "Listener fire count was incorect");
|
|
153
151
|
});
|
|
154
152
|
it("Supports awaiting async and non-async listener return data", async () => {
|
|
155
153
|
const emitter = new Emitter();
|
|
@@ -173,6 +171,29 @@ describe("Emitter", () => {
|
|
|
173
171
|
assert.strictEqual(results[0], "Foo1 Return Value", "Return data for foo1 was not correct");
|
|
174
172
|
assert.strictEqual(results[1], "Foo2 Return Value", "Return data for foo2 was not correct");
|
|
175
173
|
});
|
|
174
|
+
it("Supports awaiting async and non-async rpc listener return data", async () => {
|
|
175
|
+
const emitter = new Emitter();
|
|
176
|
+
let listenerFiredCount = 0;
|
|
177
|
+
emitter.on("foo1", () => {
|
|
178
|
+
return new Promise((resolve) => {
|
|
179
|
+
setTimeout(() => {
|
|
180
|
+
listenerFiredCount++;
|
|
181
|
+
resolve("Foo1 Return Value");
|
|
182
|
+
}, 1000);
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
emitter.on("foo2", () => {
|
|
186
|
+
return "Foo2 Return Value";
|
|
187
|
+
});
|
|
188
|
+
const time = new Date().getTime();
|
|
189
|
+
const result1 = await emitter.rpc("foo1");
|
|
190
|
+
const result2 = emitter.rpc("foo2");
|
|
191
|
+
const delta = new Date().getTime() - time;
|
|
192
|
+
assert.ok(delta > 900, "Delta was not correct, await may not have paused?");
|
|
193
|
+
assert.ok(listenerFiredCount === 1, "listenerFiredCount was not correct, await may not have been used?");
|
|
194
|
+
assert.strictEqual(result1, "Foo1 Return Value", "Return data for foo1 was not correct");
|
|
195
|
+
assert.strictEqual(result2, "Foo2 Return Value", "Return data for foo2 was not correct");
|
|
196
|
+
});
|
|
176
197
|
it("Supports responding with a cancellation signal", async () => {
|
|
177
198
|
const emitter = new Emitter();
|
|
178
199
|
let listenerFiredCount = 0;
|
|
@@ -271,7 +292,7 @@ describe("Emitter", () => {
|
|
|
271
292
|
it("Static emitter will emit when a new listener is added", (resolve) => {
|
|
272
293
|
class MyClass extends Emitter {
|
|
273
294
|
}
|
|
274
|
-
|
|
295
|
+
expectAssertionCount(1);
|
|
275
296
|
const myClass = new MyClass();
|
|
276
297
|
myClass.emitStatic("moo");
|
|
277
298
|
myClass.on("moo", () => {
|
|
@@ -285,7 +306,7 @@ describe("Emitter", () => {
|
|
|
285
306
|
it("Removes static emitter", (resolve) => {
|
|
286
307
|
class MyClass extends Emitter {
|
|
287
308
|
}
|
|
288
|
-
|
|
309
|
+
expectAssertionCount(1);
|
|
289
310
|
const myClass = new MyClass();
|
|
290
311
|
myClass.emitStatic("moo");
|
|
291
312
|
myClass.on("moo", () => {
|
|
@@ -306,7 +327,7 @@ describe("Emitter", () => {
|
|
|
306
327
|
it("Only fires the last listener added, cancelling all other listeners before it", (resolve) => {
|
|
307
328
|
class MyClass extends Emitter {
|
|
308
329
|
}
|
|
309
|
-
|
|
330
|
+
expectAssertionCount(1);
|
|
310
331
|
const myClass = new MyClass();
|
|
311
332
|
myClass.on("moo", () => {
|
|
312
333
|
countAssertion();
|
|
@@ -328,7 +349,7 @@ describe("Emitter", () => {
|
|
|
328
349
|
it("Only fires the last listener added (with id), cancelling all other listeners before it", (resolve) => {
|
|
329
350
|
class MyClass extends Emitter {
|
|
330
351
|
}
|
|
331
|
-
|
|
352
|
+
expectAssertionCount(2);
|
|
332
353
|
const myClass = new MyClass();
|
|
333
354
|
// Define a listener without an id, this should not be overwritten
|
|
334
355
|
myClass.on("moo", () => {
|
|
@@ -383,4 +404,36 @@ describe("Emitter", () => {
|
|
|
383
404
|
myClass._eventListeners?.moo["*"].length === 0, true, "Listeners all removed from event");
|
|
384
405
|
});
|
|
385
406
|
});
|
|
407
|
+
describe("Global listener functionality", () => {
|
|
408
|
+
it("Listens for any event emitted and fires the listener with the onAny() function", () => {
|
|
409
|
+
const emitter = new Emitter();
|
|
410
|
+
const spy = jest.fn();
|
|
411
|
+
emitter.onAny(spy);
|
|
412
|
+
emitter.emit("someEvent", "someArg1", true, false);
|
|
413
|
+
expect(spy).toHaveBeenCalledWith("someEvent", "someArg1", true, false);
|
|
414
|
+
});
|
|
415
|
+
it(`Listens for any event emitted and fires the listener with the on("*") function`, () => {
|
|
416
|
+
const emitter = new Emitter();
|
|
417
|
+
const spy = jest.fn();
|
|
418
|
+
emitter.on("*", spy);
|
|
419
|
+
emitter.emit("someEvent", "someArg1", true, false);
|
|
420
|
+
expect(spy).toHaveBeenCalledWith("someEvent", "someArg1", true, false);
|
|
421
|
+
});
|
|
422
|
+
it(`Cancels an event listener for any event emitted with the offAny() function`, () => {
|
|
423
|
+
const emitter = new Emitter();
|
|
424
|
+
const spy = jest.fn();
|
|
425
|
+
emitter.on("*", spy);
|
|
426
|
+
emitter.offAny(spy);
|
|
427
|
+
emitter.emit("someEvent", "someArg1", true, false);
|
|
428
|
+
expect(spy).toHaveBeenCalledTimes(0);
|
|
429
|
+
});
|
|
430
|
+
it(`Cancels an event listener for any event emitted with the off("*") function`, () => {
|
|
431
|
+
const emitter = new Emitter();
|
|
432
|
+
const spy = jest.fn();
|
|
433
|
+
emitter.on("*", spy);
|
|
434
|
+
emitter.off("*", spy);
|
|
435
|
+
emitter.emit("someEvent", "someArg1", true, false);
|
|
436
|
+
expect(spy).toHaveBeenCalledTimes(0);
|
|
437
|
+
});
|
|
438
|
+
});
|
|
386
439
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"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.esnext.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.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.sharedmemory.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.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../src/emitter.ts","../../tests/emitter.test.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/globals.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/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.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/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.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/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/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/globals.global.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/@jest/expect-utils/build/index.d.ts","../../node_modules/jest-matcher-utils/node_modules/chalk/index.d.ts","../../node_modules/@sinclair/typebox/typebox.d.ts","../../node_modules/@jest/schemas/build/index.d.ts","../../node_modules/pretty-format/build/index.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/jest-matcher-utils/build/index.d.ts","../../node_modules/expect/build/index.d.ts","../../node_modules/@types/jest/index.d.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","bed7b7ba0eb5a160b69af72814b4dde371968e40b6c5e73d3a9f7bee407d158c",{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"62a4966981264d1f04c44eb0f4b5bdc3d81c1a54725608861e44755aa24ad6a5","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"86a34c7a13de9cabc43161348f663624b56871ed80986e41d214932ddd8d6719","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"4350e5922fecd4bedda2964d69c213a1436349d0b8d260dd902795f5b94dc74b","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"26fbc5e2e6ca6b5341a2c1b0f2a22d7727cb461f45924569dee7c39b41477756","signature":"815c63ed250d406ad551ba3690048484ee5fc4a788410760301a13d5b2af10d8"},{"version":"f7f80f896c5dbc24c28c7d2589e922de1e6258c3a47509d4e97ebe94000d58c9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"9122ed7070e054b73ebab37c2373a196def2d90e7d1a9a7fcd9d46b0e51fae78","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"e31b69b603075736c59065f0c89606f93068600d94b456dda77248c8b2a803a9","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"002d6d5f044365b3fbfba0ba9be3bb57cac09b81547c8df4b0795755d2081d90","affectsGlobalScope":true},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","c4cfc9a6e2ebb8bc8c0e2392dfc4056993ced3b35069ebf132ac18ca7a562881","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","75ecef44f126e2ae018b4abbd85b6e8a2e2ba1638ebec56cc64274643ce3567b","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"bae4ea23beb8397755b935cb84d3cdc6cdb0b1b4a329b90de9fc6c8774d71994","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","df36874d9e56aff601e921c4b3971d37cf66d14f6455935ce821e6cad13b1823","3c135ff5bda0355f6b52a10ea931736ec7c5a80b7fb8772019054e0eaa0fd6b6","1abb206a4ecd13b21536b677d7d5f66e0d7316f0d44610197cfcc5776f78884a","dbe5aa5a5dd8bd1c6a8d11b1310c3f0cdabaacc78a37b394a8c7b14faeb5fb84","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"76527127c8b749bee5977408861ce3ee56ec19ddcea8704c628f98ca610283e6","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b68bd7bef90dab08b1866a9fee24f03d9fee10bcb3f587b074e96e61abf6d3f0","cb4f3f03480e1727eae46400606cecaa97f550186ff8fa909ebc00db4180531b",{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","d1a78a3c5708807e8de3e399f91df4797c62e44b02195eefc2209b2e713e54ee","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","556bf5c36deb62cffa1bf697c1789fe008ec82db0273025001db66732714e9d9","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","24ad30a03d6c9266b63540956868dd70fa2dc523d60d780d6586eb0c281946bc",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"bfe39beb986d2a2e512c091cbe924f1c415bc65de54de0e2f6a0dc6f84c183d9","affectsGlobalScope":true},"2d526e6f21d8cc66ac11ada32874e95ae88d870c6c9d3d9d4e03b1d1f9ad7b8e","06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","d2ec52f565f0570e90b659811347bd689f8c6039b11eaaccd0f243759d46da6e","8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"854a39fe9c9e32cc0855380e0f16bbb25217c3b62d8a687fe2b663ba44b3b5a1","763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","032cbd1883827ca3728c1400145403b62e65b7b584a0d2115ae538c9edec7936","427ce5854885cfc34387e09de05c1d5c1acf94c2143e1693f1d9ff54880573e7","bed2c4f96fab3348be4a34d88dcb12578c1b2475b07c6acd369e99e227718d81","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","3b105d5a0dacc73812d93e90d3c7243fd5a9c0566a2e63bc2964ca12d882c8e8",{"version":"458e2fd1185e659cb800ef68d01ef77de70dcab8860bedf6d94eaebe736751f1","affectsGlobalScope":true}],"root":[64,65],"options":{"allowJs":false,"allowSyntheticDefaultImports":true,"declaration":true,"downlevelIteration":true,"esModuleInterop":true,"inlineSourceMap":false,"module":99,"outDir":"./","skipLibCheck":false,"strict":true,"target":99},"fileIdsList":[[111],[111,121],[111,123,126],[66,111],[69,111],[70,75,111],[71,81,82,89,99,110,111],[71,72,81,89,111],[73,111],[74,75,82,90,111],[75,99,107,111],[76,78,81,89,111],[77,111],[78,79,111],[80,81,111],[81,111],[81,82,83,99,110,111],[81,82,83,99,102,111],[111,115],[84,89,99,110,111],[81,82,84,85,89,99,107,110,111],[84,86,99,107,110,111],[66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117],[81,87,111],[88,110,111],[78,81,89,99,111],[90,111],[91,111],[69,92,111],[93,109,111,115],[94,111],[95,111],[81,96,97,111],[96,98,111,113],[81,99,100,101,102,111],[99,101,111],[99,100,111],[102,111],[103,111],[81,105,106,111],[105,106,111],[75,89,99,107,111],[108,111],[89,109,111],[70,84,95,110,111],[75,111],[99,111,112],[111,113],[111,114],[70,75,81,83,92,99,110,111,113,115],[99,111,116],[111,119,125],[111,123],[111,120,124],[111,122],[64,66,111]],"referencedMap":[[119,1],[122,2],[121,1],[127,3],[66,4],[67,4],[69,5],[70,6],[71,7],[72,8],[73,9],[74,10],[75,11],[76,12],[77,13],[78,14],[79,14],[80,15],[81,16],[82,17],[83,18],[68,19],[117,1],[84,20],[85,21],[86,22],[118,23],[87,24],[88,25],[89,26],[90,27],[91,28],[92,29],[93,30],[94,31],[95,32],[96,33],[97,33],[98,34],[99,35],[101,36],[100,37],[102,38],[103,39],[104,1],[105,40],[106,41],[107,42],[108,43],[109,44],[110,45],[111,46],[112,47],[113,48],[114,49],[115,50],[116,51],[126,52],[124,53],[125,54],[120,1],[123,55],[62,1],[63,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[22,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[56,1],[54,1],[55,1],[57,1],[58,1],[10,1],[1,1],[11,1],[61,1],[60,1],[59,1],[64,1],[65,56]],"exportedModulesMap":[[119,1],[122,2],[121,1],[127,3],[66,4],[67,4],[69,5],[70,6],[71,7],[72,8],[73,9],[74,10],[75,11],[76,12],[77,13],[78,14],[79,14],[80,15],[81,16],[82,17],[83,18],[68,19],[117,1],[84,20],[85,21],[86,22],[118,23],[87,24],[88,25],[89,26],[90,27],[91,28],[92,29],[93,30],[94,31],[95,32],[96,33],[97,33],[98,34],[99,35],[101,36],[100,37],[102,38],[103,39],[104,1],[105,40],[106,41],[107,42],[108,43],[109,44],[110,45],[111,46],[112,47],[113,48],[114,49],[115,50],[116,51],[126,52],[124,53],[125,54],[120,1],[123,55],[62,1],[63,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[22,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[56,1],[54,1],[55,1],[57,1],[58,1],[10,1],[1,1],[11,1],[61,1],[60,1],[59,1]],"semanticDiagnosticsPerFile":[119,122,121,127,66,67,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,68,117,84,85,86,118,87,88,89,90,91,92,93,94,95,96,97,98,99,101,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,126,124,125,120,123,62,63,13,12,2,14,15,16,17,18,19,20,21,3,4,22,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,57,58,10,1,11,61,60,59,64,65]},"version":"5.3.2"}
|
|
1
|
+
{"program":{"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.esnext.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.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.sharedmemory.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.esnext.array.d.ts","../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.string.d.ts","../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.esnext.object.d.ts","../../node_modules/typescript/lib/lib.esnext.regexp.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../src/emitter.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/globals.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/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.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/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.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/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/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/globals.global.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts","../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../node_modules/@jest/types/node_modules/chalk/index.d.ts","../../node_modules/@types/istanbul-lib-report/index.d.ts","../../node_modules/@types/istanbul-reports/index.d.ts","../../node_modules/@sinclair/typebox/typebox.d.ts","../../node_modules/@jest/schemas/build/index.d.ts","../../node_modules/@jest/types/build/index.d.ts","../../node_modules/jest-mock/build/index.d.ts","../../node_modules/@types/stack-utils/index.d.ts","../../node_modules/jest-message-util/build/index.d.ts","../../node_modules/@jest/fake-timers/build/index.d.ts","../../node_modules/@jest/environment/build/index.d.ts","../../node_modules/@jest/expect-utils/build/index.d.ts","../../node_modules/jest-matcher-utils/node_modules/chalk/index.d.ts","../../node_modules/pretty-format/build/index.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/jest-matcher-utils/build/index.d.ts","../../node_modules/expect/build/index.d.ts","../../node_modules/jest-snapshot/build/index.d.ts","../../node_modules/@jest/expect/build/index.d.ts","../../node_modules/@jest/globals/build/index.d.ts","../../tests/emitter.test.ts","../../node_modules/@types/jest/index.d.ts"],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","17edc026abf73c5c2dd508652d63f68ec4efd9d4856e3469890d27598209feb5",{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true},{"version":"ae37d6ccd1560b0203ab88d46987393adaaa78c919e51acf32fb82c86502e98c","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true},{"version":"0b11f3ca66aa33124202c80b70cd203219c3d4460cfc165e0707aa9ec710fc53","affectsGlobalScope":true},{"version":"6a3f5a0129cc80cf439ab71164334d649b47059a4f5afca90282362407d0c87f","affectsGlobalScope":true},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true},{"version":"15b98a533864d324e5f57cd3cfc0579b231df58c1c0f6063ea0fcb13c3c74ff9","affectsGlobalScope":true},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"a39a5d33bd6fadb44a4f509ea81dcd0c4cb40c718a150235bb70da86350d79a1","signature":"2c7b1d39c71022acdf6ca3560f0780a4dc43217ffc1a024d47e55e34e157cd0f"},"9122ed7070e054b73ebab37c2373a196def2d90e7d1a9a7fcd9d46b0e51fae78","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"e31b69b603075736c59065f0c89606f93068600d94b456dda77248c8b2a803a9","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"002d6d5f044365b3fbfba0ba9be3bb57cac09b81547c8df4b0795755d2081d90","affectsGlobalScope":true},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","c4cfc9a6e2ebb8bc8c0e2392dfc4056993ced3b35069ebf132ac18ca7a562881","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","75ecef44f126e2ae018b4abbd85b6e8a2e2ba1638ebec56cc64274643ce3567b","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"bae4ea23beb8397755b935cb84d3cdc6cdb0b1b4a329b90de9fc6c8774d71994","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","df36874d9e56aff601e921c4b3971d37cf66d14f6455935ce821e6cad13b1823","3c135ff5bda0355f6b52a10ea931736ec7c5a80b7fb8772019054e0eaa0fd6b6","1abb206a4ecd13b21536b677d7d5f66e0d7316f0d44610197cfcc5776f78884a","dbe5aa5a5dd8bd1c6a8d11b1310c3f0cdabaacc78a37b394a8c7b14faeb5fb84","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"76527127c8b749bee5977408861ce3ee56ec19ddcea8704c628f98ca610283e6","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b68bd7bef90dab08b1866a9fee24f03d9fee10bcb3f587b074e96e61abf6d3f0","cb4f3f03480e1727eae46400606cecaa97f550186ff8fa909ebc00db4180531b",{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","d1a78a3c5708807e8de3e399f91df4797c62e44b02195eefc2209b2e713e54ee","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","556bf5c36deb62cffa1bf697c1789fe008ec82db0273025001db66732714e9d9","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","24ad30a03d6c9266b63540956868dd70fa2dc523d60d780d6586eb0c281946bc",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"bfe39beb986d2a2e512c091cbe924f1c415bc65de54de0e2f6a0dc6f84c183d9","affectsGlobalScope":true},"2d526e6f21d8cc66ac11ada32874e95ae88d870c6c9d3d9d4e03b1d1f9ad7b8e","06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","d2ec52f565f0570e90b659811347bd689f8c6039b11eaaccd0f243759d46da6e","8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"854a39fe9c9e32cc0855380e0f16bbb25217c3b62d8a687fe2b663ba44b3b5a1","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","28288f5e5f8b7b895ed2abe6359c1da3e0d14a64b5aef985071285671f347c01","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","e00243d23c495ca2170c9b9e20b5c92331239100b51efdc2b4401cdad859bbef","41ea7fd137518560e0d2af581edadadd236b685b5e2f80f083127a28e01cf0ac","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","6fa5d56af71f07dc276aae3f6f30807a9cccf758517fb39742af72e963553d80","819dddfec57391f8458929ca8e4377f030d42107ff6ec431e620b70b0695d530","701bdef1f4a13932f64c4ce89537f2c66301eb46daf30a16a436c991df568686","cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec","ac5f598a09eed39b957ae3d909b88126f3faf605bd4589c19e9ae85d23ef71e3","92abba98a71c0244a6bcdd3ad4d2e04f1d0a8bcae57d2bb865bf53d1ac86e3d0","d2afa0d86bc6f2e72c1cf2ecb2372bf1b0f002493706a81f2b9a3ee4f944e219",{"version":"8aa53fa9c77f8c248703e3444a84bd5c61904d00e1f642d7c22bc8b9d51bde54","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"5ab630d466ac55baa6d32820378098404fc18ba9da6f7bc5df30c5dbb1cffae8","affectsGlobalScope":true}],"root":[72,149],"options":{"allowJs":false,"allowSyntheticDefaultImports":true,"declaration":true,"downlevelIteration":true,"esModuleInterop":true,"inlineSourceMap":false,"module":99,"outDir":"./","skipLibCheck":false,"strict":true,"target":99},"fileIdsList":[[118,120,125,134,135,138],[118],[118,145,146],[118,134,135,137],[118,134,135,139,147],[118,132],[118,125,127,128,129,131,133],[118,128],[118,130],[118,142,145],[73,118],[76,118],[77,82,118],[78,88,89,96,106,117,118],[78,79,88,96,118],[80,118],[81,82,89,97,118],[82,106,114,118],[83,85,88,96,118],[84,118],[85,86,118],[87,88,118],[88,118],[88,89,90,106,117,118],[88,89,90,106,109,118],[118,122],[91,96,106,117,118],[88,89,91,92,96,106,114,117,118],[91,93,106,114,117,118],[73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124],[88,94,118],[95,117,118],[85,88,96,106,118],[97,118],[98,118],[76,99,118],[100,116,118,122],[101,118],[102,118],[88,103,104,118],[103,105,118,120],[88,106,107,108,109,118],[106,108,118],[106,107,118],[109,118],[110,118],[88,112,113,118],[112,113,118],[82,96,106,114,118],[115,118],[96,116,118],[77,91,102,117,118],[82,118],[106,118,119],[118,120],[118,121],[77,82,88,90,99,106,117,118,120,122],[106,118,123],[118,126],[118,140,144],[118,142],[118,129,143],[118,134,136],[118,134,142,145],[118,133],[72,73,118,148]],"referencedMap":[[139,1],[140,2],[147,3],[138,4],[148,5],[133,6],[134,7],[129,2],[132,2],[128,2],[130,8],[131,9],[150,10],[73,11],[74,11],[76,12],[77,13],[78,14],[79,15],[80,16],[81,17],[82,18],[83,19],[84,20],[85,21],[86,21],[87,22],[88,23],[89,24],[90,25],[75,26],[124,2],[91,27],[92,28],[93,29],[125,30],[94,31],[95,32],[96,33],[97,34],[98,35],[99,36],[100,37],[101,38],[102,39],[103,40],[104,40],[105,41],[106,42],[108,43],[107,44],[109,45],[110,46],[111,2],[112,47],[113,48],[114,49],[115,50],[116,51],[117,52],[118,53],[119,54],[120,55],[121,56],[122,57],[123,58],[136,2],[126,2],[127,59],[145,60],[143,61],[144,62],[141,2],[137,63],[135,2],[146,64],[142,65],[70,2],[71,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[22,2],[4,2],[23,2],[27,2],[24,2],[25,2],[26,2],[28,2],[29,2],[30,2],[5,2],[31,2],[32,2],[33,2],[34,2],[6,2],[38,2],[35,2],[36,2],[37,2],[39,2],[7,2],[40,2],[45,2],[46,2],[41,2],[42,2],[43,2],[44,2],[8,2],[50,2],[47,2],[48,2],[49,2],[51,2],[9,2],[52,2],[53,2],[54,2],[57,2],[55,2],[56,2],[58,2],[59,2],[10,2],[60,2],[1,2],[61,2],[62,2],[11,2],[67,2],[64,2],[63,2],[68,2],[66,2],[69,2],[65,2],[72,2],[149,66]]},"version":"5.5.2"}
|