@workglow/util 0.2.15 → 0.2.17
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/browser.js +49 -39
- package/dist/browser.js.map +8 -7
- package/dist/bun.js +49 -39
- package/dist/bun.js.map +8 -7
- package/dist/logging/LoggerRegistry.d.ts.map +1 -1
- package/dist/media/Image.d.ts.map +1 -1
- package/dist/media-browser.js.map +3 -3
- package/dist/media-node.js.map +2 -2
- package/dist/node.js +49 -39
- package/dist/node.js.map +8 -7
- package/dist/telemetry/TelemetryRegistry.d.ts.map +1 -1
- package/dist/utilities/runtimeEnv.d.ts +18 -0
- package/dist/utilities/runtimeEnv.d.ts.map +1 -0
- package/dist/worker/WorkerManager.d.ts +6 -6
- package/dist/worker/WorkerManager.d.ts.map +1 -1
- package/dist/worker/WorkerServerBase.d.ts +8 -8
- package/dist/worker/WorkerServerBase.d.ts.map +1 -1
- package/dist/worker-browser.js +47 -31
- package/dist/worker-browser.js.map +7 -6
- package/dist/worker-bun.js +47 -31
- package/dist/worker-bun.js.map +7 -6
- package/dist/worker-node.js +47 -31
- package/dist/worker-node.js.map +7 -6
- package/package.json +2 -2
|
@@ -9,7 +9,7 @@ export declare class WorkerManager {
|
|
|
9
9
|
/** Function names registered on each worker, populated from the ready message. */
|
|
10
10
|
private workerFunctions;
|
|
11
11
|
private workerStreamFunctions;
|
|
12
|
-
private
|
|
12
|
+
private workerPreviewFunctions;
|
|
13
13
|
/** Persistent factories for workers that can be recreated after termination. */
|
|
14
14
|
private workerFactories;
|
|
15
15
|
/** Idle timeout configuration per registered worker. */
|
|
@@ -39,16 +39,16 @@ export declare class WorkerManager {
|
|
|
39
39
|
onProgress?: (progress: number, message?: string, details?: any) => void;
|
|
40
40
|
}): Promise<T>;
|
|
41
41
|
/**
|
|
42
|
-
* Call a
|
|
43
|
-
* if the worker has no
|
|
42
|
+
* Call a preview function on a worker. Returns undefined (rather than throwing)
|
|
43
|
+
* if the worker has no preview function registered for the given name, so callers
|
|
44
44
|
* can treat the result as an optional preview.
|
|
45
45
|
*
|
|
46
46
|
* @param workerName - Registered worker name
|
|
47
|
-
* @param functionName - Name of the
|
|
47
|
+
* @param functionName - Name of the preview function registered on the worker
|
|
48
48
|
* @param args - Arguments to pass: [input, output, model]
|
|
49
|
-
* @returns The
|
|
49
|
+
* @returns The preview result, or undefined if not registered / on error
|
|
50
50
|
*/
|
|
51
|
-
|
|
51
|
+
callWorkerPreviewFunction<T>(workerName: string, functionName: string, args: any[]): Promise<T | undefined>;
|
|
52
52
|
/**
|
|
53
53
|
* Terminate a single worker and clean up all associated state.
|
|
54
54
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerManager.d.ts","sourceRoot":"","sources":["../../src/worker/WorkerManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,YAAY,CAAyC;IAC7D,kFAAkF;IAClF,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"WorkerManager.d.ts","sourceRoot":"","sources":["../../src/worker/WorkerManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,YAAY,CAAyC;IAC7D,kFAAkF;IAClF,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,sBAAsB,CAAuC;IACrE,gFAAgF;IAChF,OAAO,CAAC,eAAe,CAAwC;IAC/D,wDAAwD;IACxD,OAAO,CAAC,YAAY,CAAkC;IACtD,uDAAuD;IACvD,OAAO,CAAC,gBAAgB,CAAyC;IACjE,4CAA4C;IAC5C,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,wDAAwD;IACxD,OAAO,CAAC,UAAU,CAAyD;IAC3E,qDAAqD;IACrD,OAAO,CAAC,mBAAmB,CAAyC;IAEpE,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EACxC,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GACnC,IAAI,CAaN;IAED,OAAO,CAAC,oBAAoB;YAiDd,iBAAiB;IAgC/B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI9B;IAED,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,uBAAuB;YAqBjB,2BAA2B;YAsB3B,uBAAuB;IAiC/B,kBAAkB,CAAC,CAAC,EACxB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;KAC1E,GACA,OAAO,CAAC,CAAC,CAAC,CAqEZ;IAED;;;;;;;;;OASG;IACG,yBAAyB,CAAC,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,GAAG,EAAE,GACV,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CA2CxB;IAED;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKjD;IAED;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAK7B;IAEK,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3C;IAED;;;;;;;;;;;OAWG;IACI,wBAAwB,CAAC,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,cAAc,CAAC,CAAC,CAAC,CAiHnB;CACF;AAED,eAAO,MAAM,cAAc,6CAAsD,CAAC"}
|
|
@@ -14,7 +14,7 @@ export declare class WorkerServerBase {
|
|
|
14
14
|
constructor();
|
|
15
15
|
private functions;
|
|
16
16
|
private streamFunctions;
|
|
17
|
-
private
|
|
17
|
+
private previewFunctions;
|
|
18
18
|
private requestControllers;
|
|
19
19
|
private completedRequests;
|
|
20
20
|
private postResult;
|
|
@@ -28,14 +28,14 @@ export declare class WorkerServerBase {
|
|
|
28
28
|
sendReady(): void;
|
|
29
29
|
registerFunction(name: string, fn: (...args: any[]) => Promise<any>): void;
|
|
30
30
|
/**
|
|
31
|
-
* Register a
|
|
32
|
-
*
|
|
31
|
+
* Register a preview function for lightweight preview execution.
|
|
32
|
+
* Preview functions receive (input, model) and return a fast preview
|
|
33
33
|
* without progress tracking or abort signals.
|
|
34
34
|
*
|
|
35
35
|
* @param name - The function name (e.g., task type identifier)
|
|
36
|
-
* @param fn - Async function: (input,
|
|
36
|
+
* @param fn - Async function: (input, model) => Promise<output | undefined>
|
|
37
37
|
*/
|
|
38
|
-
|
|
38
|
+
registerPreviewFunction(name: string, fn: (input: any, model: any) => Promise<any>): void;
|
|
39
39
|
/**
|
|
40
40
|
* Register an async generator function for streaming execution.
|
|
41
41
|
* When called via the worker protocol with `stream: true`, the server
|
|
@@ -52,10 +52,10 @@ export declare class WorkerServerBase {
|
|
|
52
52
|
}): Promise<void>;
|
|
53
53
|
handleAbort(id: string): Promise<void>;
|
|
54
54
|
/**
|
|
55
|
-
* Handle a
|
|
56
|
-
* function is not registered, since not all task types expose a
|
|
55
|
+
* Handle a preview call. Returns undefined (non-error) if the preview
|
|
56
|
+
* function is not registered, since not all task types expose a preview fn.
|
|
57
57
|
*/
|
|
58
|
-
|
|
58
|
+
handlePreviewCall(id: string, functionName: string, [input, model]: [any, any]): Promise<void>;
|
|
59
59
|
handleCall(id: string, functionName: string, [input, model]: [any, any]): Promise<void>;
|
|
60
60
|
/**
|
|
61
61
|
* Handle a streaming call. If a stream function is registered for the given name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerServerBase.d.ts","sourceRoot":"","sources":["../../src/worker/WorkerServerBase.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,qEAAqE;AACrE,eAAO,MAAM,aAAa,gDAAwD,CAAC;AAsEnF;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,cAAgB;IAEhB,OAAO,CAAC,SAAS,CAAwD;IACzE,OAAO,CAAC,eAAe,CAA8D;IACrF,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"WorkerServerBase.d.ts","sourceRoot":"","sources":["../../src/worker/WorkerServerBase.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,qEAAqE;AACrE,eAAO,MAAM,aAAa,gDAAwD,CAAC;AAsEnF;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,cAAgB;IAEhB,OAAO,CAAC,SAAS,CAAwD;IACzE,OAAO,CAAC,eAAe,CAA8D;IACrF,OAAO,CAAC,gBAAgB,CAAgE;IAGxF,OAAO,CAAC,kBAAkB,CAAsC;IAEhE,OAAO,CAAC,iBAAiB,CAAqB;IAE9C,OAAO,CAAC,UAAU,CAShB;IAEF,OAAO,CAAC,SAAS,CAcf;IAEF,OAAO,CAAC,eAAe,CAKrB;IAEF;;;;OAIG;IACH,SAAS,SAQR;IAED,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,QAElE;IAED;;;;;;;OAOG;IACH,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,QAEjF;IAED;;;;;;;;OAQG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,aAAa,CAAC,GAAG,CAAC,QAE9E;IAGK,aAAa,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,iBAcrD;IAEK,WAAW,CAAC,EAAE,EAAE,MAAM,iBAS3B;IAED;;;OAGG;IACG,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,iBAYnF;IAEK,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,iBAyB5E;IAED;;;;;OAKG;IACG,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,iBA0ClF;IAED;;;;OAIG;IACH,OAAO,CAAC,+BAA+B;CAexC"}
|
package/dist/worker-browser.js
CHANGED
|
@@ -283,6 +283,28 @@ class NullLogger {
|
|
|
283
283
|
return this;
|
|
284
284
|
}
|
|
285
285
|
}
|
|
286
|
+
// src/utilities/runtimeEnv.ts
|
|
287
|
+
function readRuntimeEnv(name) {
|
|
288
|
+
if (typeof process !== "undefined" && process.env) {
|
|
289
|
+
const fromProcess = process.env[name];
|
|
290
|
+
if (fromProcess !== undefined) {
|
|
291
|
+
return fromProcess;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
const meta = import.meta.env;
|
|
295
|
+
if (!meta) {
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
const value = meta[name];
|
|
299
|
+
if (value === undefined || value === null) {
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
if (typeof value === "boolean") {
|
|
303
|
+
return value ? "true" : undefined;
|
|
304
|
+
}
|
|
305
|
+
return String(value);
|
|
306
|
+
}
|
|
307
|
+
|
|
286
308
|
// src/logging/LoggerRegistry.ts
|
|
287
309
|
var LOGGER = createServiceToken("logger");
|
|
288
310
|
var VALID_LOG_LEVELS = new Set([
|
|
@@ -292,24 +314,18 @@ var VALID_LOG_LEVELS = new Set([
|
|
|
292
314
|
"error",
|
|
293
315
|
"fatal"
|
|
294
316
|
]);
|
|
295
|
-
function getEnv(name) {
|
|
296
|
-
if (typeof process !== "undefined" && process.env) {
|
|
297
|
-
return process.env[name];
|
|
298
|
-
}
|
|
299
|
-
return import.meta.env[name];
|
|
300
|
-
}
|
|
301
317
|
function isTruthy(value) {
|
|
302
318
|
return value !== undefined && value !== "" && value !== "0" && value !== "false";
|
|
303
319
|
}
|
|
304
320
|
function createDefaultLogger() {
|
|
305
|
-
const levelEnv =
|
|
321
|
+
const levelEnv = readRuntimeEnv("LOGGER_LEVEL")?.toLowerCase();
|
|
306
322
|
if (levelEnv && VALID_LOG_LEVELS.has(levelEnv)) {
|
|
307
323
|
return new ConsoleLogger({
|
|
308
324
|
level: levelEnv,
|
|
309
|
-
timings: isTruthy(
|
|
325
|
+
timings: isTruthy(readRuntimeEnv("LOGGER_TIMINGS"))
|
|
310
326
|
});
|
|
311
327
|
}
|
|
312
|
-
if (
|
|
328
|
+
if (isTruthy(readRuntimeEnv("DEV"))) {
|
|
313
329
|
return new ConsoleLogger({
|
|
314
330
|
level: "debug",
|
|
315
331
|
timings: true
|
|
@@ -364,7 +380,7 @@ class WorkerServerBase {
|
|
|
364
380
|
constructor() {}
|
|
365
381
|
functions = {};
|
|
366
382
|
streamFunctions = {};
|
|
367
|
-
|
|
383
|
+
previewFunctions = {};
|
|
368
384
|
requestControllers = new Map;
|
|
369
385
|
completedRequests = new Set;
|
|
370
386
|
postResult = (id, result) => {
|
|
@@ -402,20 +418,20 @@ class WorkerServerBase {
|
|
|
402
418
|
type: "ready",
|
|
403
419
|
functions: Object.keys(this.functions),
|
|
404
420
|
streamFunctions: Object.keys(this.streamFunctions),
|
|
405
|
-
|
|
421
|
+
previewFunctions: Object.keys(this.previewFunctions)
|
|
406
422
|
});
|
|
407
423
|
}
|
|
408
424
|
registerFunction(name, fn) {
|
|
409
425
|
this.functions[name] = fn;
|
|
410
426
|
}
|
|
411
|
-
|
|
412
|
-
this.
|
|
427
|
+
registerPreviewFunction(name, fn) {
|
|
428
|
+
this.previewFunctions[name] = fn;
|
|
413
429
|
}
|
|
414
430
|
registerStreamFunction(name, fn) {
|
|
415
431
|
this.streamFunctions[name] = fn;
|
|
416
432
|
}
|
|
417
433
|
async handleMessage(event) {
|
|
418
|
-
const { id, type, functionName, args, stream,
|
|
434
|
+
const { id, type, functionName, args, stream, preview } = event.data;
|
|
419
435
|
if (type === "abort") {
|
|
420
436
|
return await this.handleAbort(id);
|
|
421
437
|
}
|
|
@@ -423,8 +439,8 @@ class WorkerServerBase {
|
|
|
423
439
|
if (stream) {
|
|
424
440
|
return await this.handleStreamCall(id, functionName, args);
|
|
425
441
|
}
|
|
426
|
-
if (
|
|
427
|
-
return await this.
|
|
442
|
+
if (preview) {
|
|
443
|
+
return await this.handlePreviewCall(id, functionName, args);
|
|
428
444
|
}
|
|
429
445
|
return await this.handleCall(id, functionName, args);
|
|
430
446
|
}
|
|
@@ -438,14 +454,14 @@ class WorkerServerBase {
|
|
|
438
454
|
this.scheduleCompletedRequestCleanup(id);
|
|
439
455
|
}
|
|
440
456
|
}
|
|
441
|
-
async
|
|
442
|
-
if (!(functionName in this.
|
|
457
|
+
async handlePreviewCall(id, functionName, [input, model]) {
|
|
458
|
+
if (!(functionName in this.previewFunctions)) {
|
|
443
459
|
this.postResult(id, undefined);
|
|
444
460
|
return;
|
|
445
461
|
}
|
|
446
462
|
try {
|
|
447
|
-
const fn = this.
|
|
448
|
-
const result = await fn(input,
|
|
463
|
+
const fn = this.previewFunctions[functionName];
|
|
464
|
+
const result = await fn(input, model);
|
|
449
465
|
this.postResult(id, result);
|
|
450
466
|
} catch (error) {
|
|
451
467
|
this.postError(id, error);
|
|
@@ -533,7 +549,7 @@ class WorkerManager {
|
|
|
533
549
|
readyWorkers = new Map;
|
|
534
550
|
workerFunctions = new Map;
|
|
535
551
|
workerStreamFunctions = new Map;
|
|
536
|
-
|
|
552
|
+
workerPreviewFunctions = new Map;
|
|
537
553
|
workerFactories = new Map;
|
|
538
554
|
idleTimeouts = new Map;
|
|
539
555
|
lazyInitPromises = new Map;
|
|
@@ -582,7 +598,7 @@ class WorkerManager {
|
|
|
582
598
|
worker.removeEventListener("error", handleError);
|
|
583
599
|
this.workerFunctions.set(name, new Set(event.data.functions ?? []));
|
|
584
600
|
this.workerStreamFunctions.set(name, new Set(event.data.streamFunctions ?? []));
|
|
585
|
-
this.
|
|
601
|
+
this.workerPreviewFunctions.set(name, new Set(event.data.previewFunctions ?? []));
|
|
586
602
|
resolve();
|
|
587
603
|
}
|
|
588
604
|
};
|
|
@@ -672,7 +688,7 @@ class WorkerManager {
|
|
|
672
688
|
this.readyWorkers.delete(name);
|
|
673
689
|
this.workerFunctions.delete(name);
|
|
674
690
|
this.workerStreamFunctions.delete(name);
|
|
675
|
-
this.
|
|
691
|
+
this.workerPreviewFunctions.delete(name);
|
|
676
692
|
this.activeCallCounts.delete(name);
|
|
677
693
|
if (worker && "terminate" in worker && typeof worker.terminate === "function") {
|
|
678
694
|
try {
|
|
@@ -693,7 +709,7 @@ class WorkerManager {
|
|
|
693
709
|
this.readyWorkers.delete(name);
|
|
694
710
|
this.workerFunctions.delete(name);
|
|
695
711
|
this.workerStreamFunctions.delete(name);
|
|
696
|
-
this.
|
|
712
|
+
this.workerPreviewFunctions.delete(name);
|
|
697
713
|
this.activeCallCounts.delete(name);
|
|
698
714
|
try {
|
|
699
715
|
if (worker && "terminate" in worker && typeof worker.terminate === "function") {
|
|
@@ -761,15 +777,15 @@ class WorkerManager {
|
|
|
761
777
|
this.endWorkerActivity(workerName);
|
|
762
778
|
}
|
|
763
779
|
}
|
|
764
|
-
async
|
|
780
|
+
async callWorkerPreviewFunction(workerName, functionName, args) {
|
|
765
781
|
await this.ensureWorkerReady(workerName);
|
|
766
782
|
const worker = this.workers.get(workerName);
|
|
767
783
|
if (!worker)
|
|
768
784
|
return;
|
|
769
785
|
this.beginWorkerActivity(workerName);
|
|
770
786
|
try {
|
|
771
|
-
const
|
|
772
|
-
if (
|
|
787
|
+
const knownPreview = this.workerPreviewFunctions.get(workerName);
|
|
788
|
+
if (knownPreview && !knownPreview.has(functionName))
|
|
773
789
|
return;
|
|
774
790
|
return await new Promise((resolve) => {
|
|
775
791
|
const requestId = crypto.randomUUID();
|
|
@@ -782,7 +798,7 @@ class WorkerManager {
|
|
|
782
798
|
resolve(data);
|
|
783
799
|
} else if (type === "error") {
|
|
784
800
|
cleanup();
|
|
785
|
-
getLogger().warn(`Worker ${workerName}
|
|
801
|
+
getLogger().warn(`Worker ${workerName} preview function ${functionName} error:`, {
|
|
786
802
|
error: data
|
|
787
803
|
});
|
|
788
804
|
resolve(undefined);
|
|
@@ -792,9 +808,9 @@ class WorkerManager {
|
|
|
792
808
|
worker.removeEventListener("message", handleMessage);
|
|
793
809
|
};
|
|
794
810
|
worker.addEventListener("message", handleMessage);
|
|
795
|
-
const message = { id: requestId, type: "call", functionName, args,
|
|
811
|
+
const message = { id: requestId, type: "call", functionName, args, preview: true };
|
|
796
812
|
worker.postMessage(message);
|
|
797
|
-
getLogger().info(`Worker ${workerName}
|
|
813
|
+
getLogger().info(`Worker ${workerName} preview function ${functionName} called.`);
|
|
798
814
|
});
|
|
799
815
|
} finally {
|
|
800
816
|
this.endWorkerActivity(workerName);
|
|
@@ -1102,4 +1118,4 @@ export {
|
|
|
1102
1118
|
ConsoleLogger
|
|
1103
1119
|
};
|
|
1104
1120
|
|
|
1105
|
-
//# debugId=
|
|
1121
|
+
//# debugId=56DD96049385105064756E2164756E21
|