@powerlines/engine 0.44.1 → 0.44.2
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/_internal/worker.cjs +34 -5
- package/dist/_internal/worker.mjs +35 -6
- package/dist/_internal/worker.mjs.map +1 -1
- package/dist/api.cjs +4 -4
- package/dist/api.mjs +4 -4
- package/dist/{base-context-DkGTyGX0.cjs → base-context-CAA1druQ.cjs} +34 -1
- package/dist/{base-context-Dv5OTHxZ.mjs → base-context-fOM4ZWUo.mjs} +39 -6
- package/dist/base-context-fOM4ZWUo.mjs.map +1 -0
- package/dist/context/index.cjs +3 -3
- package/dist/context/index.d.cts.map +1 -1
- package/dist/context/index.d.mts.map +1 -1
- package/dist/context/index.mjs +3 -3
- package/dist/{engine-context-CytME-Ht.mjs → engine-context-BWGxMU_n.mjs} +2 -2
- package/dist/{engine-context-CytME-Ht.mjs.map → engine-context-BWGxMU_n.mjs.map} +1 -1
- package/dist/{engine-context-CDSR7PHF.cjs → engine-context-CUPubmrM.cjs} +1 -1
- package/dist/{execution-context-B-CVP76S.cjs → execution-context-BoJhCK0d.cjs} +9 -9
- package/dist/{execution-context-F7RyGqff.mjs → execution-context-CFJst4Fz.mjs} +10 -10
- package/dist/{execution-context-F7RyGqff.mjs.map → execution-context-CFJst4Fz.mjs.map} +1 -1
- package/dist/index.cjs +107 -41
- package/dist/index.d.cts +8 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +8 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +107 -41
- package/dist/index.mjs.map +1 -1
- package/dist/storage/index.cjs +1 -1
- package/dist/storage/index.mjs +1 -1
- package/dist/{tsconfig-Cstsoprg.mjs → tsconfig-CI6bla4E.mjs} +2 -2
- package/dist/{tsconfig-Cstsoprg.mjs.map → tsconfig-CI6bla4E.mjs.map} +1 -1
- package/dist/{tsconfig-DeyWQC2N.cjs → tsconfig-QMSxSwBD.cjs} +1 -1
- package/dist/typescript/index.cjs +1 -1
- package/dist/typescript/index.mjs +1 -1
- package/dist/{virtual-CUgOdyIa.mjs → virtual-CYGZHTDd.mjs} +5 -5
- package/dist/virtual-CYGZHTDd.mjs.map +1 -0
- package/dist/{virtual-1hYa9zCy.cjs → virtual-Ct3ZqPeN.cjs} +2 -2
- package/package.json +3 -3
- package/dist/base-context-Dv5OTHxZ.mjs.map +0 -1
- package/dist/virtual-CUgOdyIa.mjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_chunk = require('./chunk-C0xms8kb.cjs');
|
|
3
|
-
const require_engine_context = require('./engine-context-
|
|
3
|
+
const require_engine_context = require('./engine-context-CUPubmrM.cjs');
|
|
4
4
|
let _powerlines_core_constants = require("@powerlines/core/constants");
|
|
5
|
+
let _stryke_convert_to_array = require("@stryke/convert/to-array");
|
|
5
6
|
let _stryke_fs_resolve = require("@stryke/fs/resolve");
|
|
6
7
|
let _stryke_path_join = require("@stryke/path/join");
|
|
7
8
|
let _stryke_type_checks_is_set = require("@stryke/type-checks/is-set");
|
|
@@ -12,10 +13,9 @@ let jest_worker = require("jest-worker");
|
|
|
12
13
|
let node_os = require("node:os");
|
|
13
14
|
let node_stream = require("node:stream");
|
|
14
15
|
let node_util = require("node:util");
|
|
15
|
-
let _stryke_convert_to_array = require("@stryke/convert/to-array");
|
|
16
16
|
let _stryke_type_checks_is_set_string = require("@stryke/type-checks/is-set-string");
|
|
17
17
|
|
|
18
|
-
//#region src/_internal/ipc/
|
|
18
|
+
//#region src/_internal/ipc/parse.ts
|
|
19
19
|
function parseIpcMessage(data) {
|
|
20
20
|
let message;
|
|
21
21
|
if ((0, _stryke_type_checks_is_set_object.isSetObject)(data)) message = data;
|
|
@@ -26,15 +26,16 @@ function parseIpcMessage(data) {
|
|
|
26
26
|
if (message && (0, _stryke_type_checks_is_set_string.isSetString)(message.id) && (0, _stryke_type_checks_is_set_string.isSetString)(message.type) && (0, _stryke_type_checks_is_set_string.isSetString)(message.executionId) && Number.isInteger(message.executionIndex) && !Number.isNaN(message.timestamp)) return message;
|
|
27
27
|
}
|
|
28
28
|
function parseWriteLogMessagePayload(data) {
|
|
29
|
-
if ((0, _stryke_type_checks_is_set_object.isSetObject)(data) && (0,
|
|
29
|
+
if ((0, _stryke_type_checks_is_set_object.isSetObject)(data) && (0, _stryke_type_checks_is_set_object.isSetObject)(data.meta) && (0, _stryke_type_checks_is_set_string.isSetString)(data.meta.type) && ((0, _stryke_type_checks_is_set_string.isSetString)(data.message) || Array.isArray(data.message))) return {
|
|
30
30
|
...data,
|
|
31
|
+
meta: data.meta,
|
|
31
32
|
message: (0, _stryke_convert_to_array.toArray)(data.message).filter(Boolean)
|
|
32
33
|
};
|
|
33
|
-
throw new Error(
|
|
34
|
+
throw new Error(`Invalid "write-log" message payload: ${JSON.stringify(data)}`);
|
|
34
35
|
}
|
|
35
36
|
function parseUpdateCommandMessagePayload(data) {
|
|
36
37
|
if ((0, _stryke_type_checks_is_set_string.isSetString)(data?.command)) return { command: data.command };
|
|
37
|
-
throw new Error(
|
|
38
|
+
throw new Error(`Invalid "update-command" message payload: ${JSON.stringify(data)}`);
|
|
38
39
|
}
|
|
39
40
|
function parseUpdateHookMessagePayload(data) {
|
|
40
41
|
if ((0, _stryke_type_checks_is_set_string.isSetString)(data?.hook) && [
|
|
@@ -45,11 +46,11 @@ function parseUpdateHookMessagePayload(data) {
|
|
|
45
46
|
hook: data.hook,
|
|
46
47
|
order: data.order
|
|
47
48
|
};
|
|
48
|
-
throw new Error(
|
|
49
|
+
throw new Error(`Invalid "update-hook" message payload: ${JSON.stringify(data)}`);
|
|
49
50
|
}
|
|
50
51
|
function parseUpdatePluginMessagePayload(data) {
|
|
51
52
|
if ((0, _stryke_type_checks_is_set_string.isSetString)(data?.plugin)) return { plugin: data.plugin };
|
|
52
|
-
throw new Error(
|
|
53
|
+
throw new Error(`Invalid "update-plugin" message payload: ${JSON.stringify(data)}`);
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
//#endregion
|
|
@@ -314,39 +315,7 @@ var Worker = class {
|
|
|
314
315
|
const message = parseIpcMessage(data);
|
|
315
316
|
if (message) {
|
|
316
317
|
logger.trace(`Received IPC message from worker: ${JSON.stringify(message)}`);
|
|
317
|
-
|
|
318
|
-
case "write-log":
|
|
319
|
-
if (options.onWriteLog) Promise.resolve(options.onWriteLog({
|
|
320
|
-
...message,
|
|
321
|
-
type: "write-log",
|
|
322
|
-
payload: parseWriteLogMessagePayload(message.payload)
|
|
323
|
-
}));
|
|
324
|
-
break;
|
|
325
|
-
case "update-command":
|
|
326
|
-
if (options.onUpdateCommand) Promise.resolve(options.onUpdateCommand({
|
|
327
|
-
...message,
|
|
328
|
-
type: "update-command",
|
|
329
|
-
payload: parseUpdateCommandMessagePayload(message.payload)
|
|
330
|
-
}));
|
|
331
|
-
break;
|
|
332
|
-
case "update-hook":
|
|
333
|
-
if (options.onUpdateHook) Promise.resolve(options.onUpdateHook({
|
|
334
|
-
...message,
|
|
335
|
-
type: "update-hook",
|
|
336
|
-
payload: parseUpdateHookMessagePayload(message.payload)
|
|
337
|
-
}));
|
|
338
|
-
break;
|
|
339
|
-
case "update-plugin":
|
|
340
|
-
if (options.onUpdatePlugin) Promise.resolve(options.onUpdatePlugin({
|
|
341
|
-
...message,
|
|
342
|
-
type: "update-plugin",
|
|
343
|
-
payload: parseUpdatePluginMessagePayload(message.payload)
|
|
344
|
-
}));
|
|
345
|
-
break;
|
|
346
|
-
case "activity":
|
|
347
|
-
case void 0:
|
|
348
|
-
default: break;
|
|
349
|
-
}
|
|
318
|
+
Promise.resolve(this.options.onIpcMessage?.(message));
|
|
350
319
|
}
|
|
351
320
|
}
|
|
352
321
|
});
|
|
@@ -435,6 +404,7 @@ var PowerlinesEngine = class PowerlinesEngine {
|
|
|
435
404
|
const packagePath = await (0, _stryke_fs_resolve.resolvePackage)("@powerlines/engine");
|
|
436
405
|
if (!packagePath) throw new Error("Could not resolve `@powerlines/engine` package location.");
|
|
437
406
|
api.#worker = new Worker((0, _stryke_path_join.joinPaths)(packagePath, "./_internal/worker.mjs"), {
|
|
407
|
+
onIpcMessage: api.handleIpcMessage.bind(api),
|
|
438
408
|
enableSourceMaps: options.mode === "development",
|
|
439
409
|
exposedMethods: _powerlines_core_constants.POWERLINES_API_FUNCTIONS,
|
|
440
410
|
logger: api.context.extendLogger({ category: "ipc" })
|
|
@@ -642,9 +612,105 @@ var PowerlinesEngine = class PowerlinesEngine {
|
|
|
642
612
|
this.context.debug("✔ Powerlines finalization completed successfully");
|
|
643
613
|
timer();
|
|
644
614
|
}
|
|
615
|
+
/**
|
|
616
|
+
* Asynchronous disposal method for the Powerlines Engine, which will call the finalize method to perform any necessary cleanup when the engine is disposed of.
|
|
617
|
+
*/
|
|
645
618
|
async [Symbol.asyncDispose]() {
|
|
646
619
|
return this.finalize();
|
|
647
620
|
}
|
|
621
|
+
async handleIpcMessage(message) {
|
|
622
|
+
switch (message.type) {
|
|
623
|
+
case "write-log":
|
|
624
|
+
this.context.logger.debug({
|
|
625
|
+
meta: {
|
|
626
|
+
category: "ipc",
|
|
627
|
+
executionId: message.executionId,
|
|
628
|
+
executionIndex: message.executionIndex,
|
|
629
|
+
environment: message.environment
|
|
630
|
+
},
|
|
631
|
+
message: "Received a \"write-log\" IPC message from worker"
|
|
632
|
+
});
|
|
633
|
+
await this.handleWriteLog({
|
|
634
|
+
...message,
|
|
635
|
+
type: "write-log",
|
|
636
|
+
payload: parseWriteLogMessagePayload(message.payload)
|
|
637
|
+
});
|
|
638
|
+
break;
|
|
639
|
+
case "update-command":
|
|
640
|
+
this.context.logger.debug({
|
|
641
|
+
meta: {
|
|
642
|
+
category: "ipc",
|
|
643
|
+
executionId: message.executionId,
|
|
644
|
+
executionIndex: message.executionIndex,
|
|
645
|
+
environment: message.environment
|
|
646
|
+
},
|
|
647
|
+
message: "Received an \"update-command\" IPC message from worker"
|
|
648
|
+
});
|
|
649
|
+
await this.handleUpdateCommand({
|
|
650
|
+
...message,
|
|
651
|
+
type: "update-command",
|
|
652
|
+
payload: parseUpdateCommandMessagePayload(message.payload)
|
|
653
|
+
});
|
|
654
|
+
break;
|
|
655
|
+
case "update-hook":
|
|
656
|
+
this.context.logger.debug({
|
|
657
|
+
meta: {
|
|
658
|
+
category: "ipc",
|
|
659
|
+
executionId: message.executionId,
|
|
660
|
+
executionIndex: message.executionIndex,
|
|
661
|
+
environment: message.environment
|
|
662
|
+
},
|
|
663
|
+
message: "Received an \"update-hook\" IPC message from worker"
|
|
664
|
+
});
|
|
665
|
+
await this.handleUpdateHook({
|
|
666
|
+
...message,
|
|
667
|
+
type: "update-hook",
|
|
668
|
+
payload: parseUpdateHookMessagePayload(message.payload)
|
|
669
|
+
});
|
|
670
|
+
break;
|
|
671
|
+
case "update-plugin":
|
|
672
|
+
this.context.logger.debug({
|
|
673
|
+
meta: {
|
|
674
|
+
category: "ipc",
|
|
675
|
+
executionId: message.executionId,
|
|
676
|
+
executionIndex: message.executionIndex,
|
|
677
|
+
environment: message.environment
|
|
678
|
+
},
|
|
679
|
+
message: "Received an \"update-plugin\" IPC message from worker"
|
|
680
|
+
});
|
|
681
|
+
await this.handleUpdatePlugin({
|
|
682
|
+
...message,
|
|
683
|
+
type: "update-plugin",
|
|
684
|
+
payload: parseUpdatePluginMessagePayload(message.payload)
|
|
685
|
+
});
|
|
686
|
+
break;
|
|
687
|
+
case "activity":
|
|
688
|
+
case void 0:
|
|
689
|
+
default: break;
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
async handleWriteLog(message) {
|
|
693
|
+
const { payload } = message;
|
|
694
|
+
this.context.logger.log(payload.meta.type, {
|
|
695
|
+
message: (0, _stryke_convert_to_array.toArray)(payload.message).filter(Boolean).join("\n"),
|
|
696
|
+
meta: {
|
|
697
|
+
category: payload.meta.category,
|
|
698
|
+
logId: payload.meta.logId,
|
|
699
|
+
name: payload.meta.name,
|
|
700
|
+
executionId: message.executionId,
|
|
701
|
+
executionIndex: message.executionIndex,
|
|
702
|
+
command: payload.meta.command,
|
|
703
|
+
hook: payload.meta.hook,
|
|
704
|
+
environment: message.environment,
|
|
705
|
+
plugin: payload.meta.plugin,
|
|
706
|
+
source: payload.meta.source,
|
|
707
|
+
timestamp: message.timestamp
|
|
708
|
+
}
|
|
709
|
+
});
|
|
710
|
+
}
|
|
711
|
+
async handleUpdatePlugin(_) {}
|
|
712
|
+
async handleUpdateHook(_) {}
|
|
713
|
+
async handleUpdateCommand(_) {}
|
|
648
714
|
};
|
|
649
715
|
|
|
650
716
|
//#endregion
|
package/dist/index.d.cts
CHANGED
|
@@ -119,7 +119,15 @@ declare class PowerlinesEngine implements Engine, AsyncDisposable {
|
|
|
119
119
|
* @returns A promise that resolves when the finalization process has completed
|
|
120
120
|
*/
|
|
121
121
|
finalize(): Promise<void>;
|
|
122
|
+
/**
|
|
123
|
+
* Asynchronous disposal method for the Powerlines Engine, which will call the finalize method to perform any necessary cleanup when the engine is disposed of.
|
|
124
|
+
*/
|
|
122
125
|
[Symbol.asyncDispose](): Promise<void>;
|
|
126
|
+
private handleIpcMessage;
|
|
127
|
+
private handleWriteLog;
|
|
128
|
+
private handleUpdatePlugin;
|
|
129
|
+
private handleUpdateHook;
|
|
130
|
+
private handleUpdateCommand;
|
|
123
131
|
}
|
|
124
132
|
//#endregion
|
|
125
133
|
export { PowerlinesEngine };
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;AA+DA;;;;;;cAAa,gBAAA,YAA4B,MAAA,EAAQ,eAAA;EAAA;EAmEtC;;;;;;EAAA,OAlDW,WAAA,CAClB,OAAA,EAAS,aAAA,GACR,OAAA,CAAQ,gBAAA;EA0FY;;;EAAA,IAjEZ,OAAA,CAAA,GAAW,aAAA;EAkEJ;;;;;EAAA,UAzDT,WAAA,CAAa,OAAA,EAAS,aAAA;EA2Db;;;;;;;;EA/CL,KAAA,CACX,YAAA,GAAc,WAAA,CACZ,IAAA,CAAK,iBAAA,8BAIN,OAAA;EA4Ce;;;;;;;;EATL,OAAA,CACX,YAAA,GACI,WAAA,CAAY,IAAA,CAAK,mBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,iBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,eAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,iBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,iBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,gBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,gBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,kBAAA,8BAEpB,OAAA;EA8DoB;;;;;;;;;EA9BV,GAAA,CAAI,YAAA,EAAc,WAAA,CAAY,eAAA,eAA2B,OAAA;EA8DnE;;;;;;;;;EAnCU,KAAA,CACX,YAAA,GACI,WAAA,CAAY,IAAA,CAAK,iBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,mBAAA,8BAEpB,OAAA;EA4Fa;;;;;;EAnEH,IAAA,CACX,YAAA,GACI,WAAA,CAAY,IAAA,CAAK,gBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,iBAAA,8BAEpB,OAAA;EAmIC;;;;;;;;;EAvGS,IAAA,CACX,YAAA,GACI,WAAA,CAAY,IAAA,CAAK,gBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,iBAAA,8BAEpB,OAAA;EApPoC;;;;;;;;;EAgR1B,KAAA,CACX,YAAA,GAAc,WAAA,CACZ,IAAA,CAAK,iBAAA,8BAIN,OAAA;EAjOM;;;;;;EAyPI,IAAA,CACX,YAAA,GAAc,WAAA,CACZ,IAAA,CAAK,gBAAA,8BAIN,OAAA;EAlPD;;;;;;;;EAkRW,MAAA,CACX,YAAA,GAAc,WAAA,CACZ,IAAA,CAAK,kBAAA,8BAIN,OAAA;EA5OG;;;;;;;;EAwQO,QAAA,CAAA,GAAQ,OAAA;EArQf;;;EAAA,CAkRQ,MAAA,CAAO,YAAA,KAAa,OAAA;EAAA,QAIpB,gBAAA;EAAA,QAsFA,cAAA;EAAA,QAqBA,kBAAA;EAAA,QAEA,gBAAA;EAAA,QAEA,mBAAA;AAAA"}
|
package/dist/index.d.mts
CHANGED
|
@@ -119,7 +119,15 @@ declare class PowerlinesEngine implements Engine, AsyncDisposable {
|
|
|
119
119
|
* @returns A promise that resolves when the finalization process has completed
|
|
120
120
|
*/
|
|
121
121
|
finalize(): Promise<void>;
|
|
122
|
+
/**
|
|
123
|
+
* Asynchronous disposal method for the Powerlines Engine, which will call the finalize method to perform any necessary cleanup when the engine is disposed of.
|
|
124
|
+
*/
|
|
122
125
|
[Symbol.asyncDispose](): Promise<void>;
|
|
126
|
+
private handleIpcMessage;
|
|
127
|
+
private handleWriteLog;
|
|
128
|
+
private handleUpdatePlugin;
|
|
129
|
+
private handleUpdateHook;
|
|
130
|
+
private handleUpdateCommand;
|
|
123
131
|
}
|
|
124
132
|
//#endregion
|
|
125
133
|
export { PowerlinesEngine };
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;AA+DA;;;;;;cAAa,gBAAA,YAA4B,MAAA,EAAQ,eAAA;EAAA;EAmEtC;;;;;;EAAA,OAlDW,WAAA,CAClB,OAAA,EAAS,aAAA,GACR,OAAA,CAAQ,gBAAA;EA0FY;;;EAAA,IAjEZ,OAAA,CAAA,GAAW,aAAA;EAkEJ;;;;;EAAA,UAzDT,WAAA,CAAa,OAAA,EAAS,aAAA;EA2Db;;;;;;;;EA/CL,KAAA,CACX,YAAA,GAAc,WAAA,CACZ,IAAA,CAAK,iBAAA,8BAIN,OAAA;EA4Ce;;;;;;;;EATL,OAAA,CACX,YAAA,GACI,WAAA,CAAY,IAAA,CAAK,mBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,iBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,eAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,iBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,iBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,gBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,gBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,kBAAA,8BAEpB,OAAA;EA8DoB;;;;;;;;;EA9BV,GAAA,CAAI,YAAA,EAAc,WAAA,CAAY,eAAA,eAA2B,OAAA;EA8DnE;;;;;;;;;EAnCU,KAAA,CACX,YAAA,GACI,WAAA,CAAY,IAAA,CAAK,iBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,mBAAA,8BAEpB,OAAA;EA4Fa;;;;;;EAnEH,IAAA,CACX,YAAA,GACI,WAAA,CAAY,IAAA,CAAK,gBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,iBAAA,8BAEpB,OAAA;EAmIC;;;;;;;;;EAvGS,IAAA,CACX,YAAA,GACI,WAAA,CAAY,IAAA,CAAK,gBAAA,8BACjB,WAAA,CAAY,IAAA,CAAK,iBAAA,8BAEpB,OAAA;EApPoC;;;;;;;;;EAgR1B,KAAA,CACX,YAAA,GAAc,WAAA,CACZ,IAAA,CAAK,iBAAA,8BAIN,OAAA;EAjOM;;;;;;EAyPI,IAAA,CACX,YAAA,GAAc,WAAA,CACZ,IAAA,CAAK,gBAAA,8BAIN,OAAA;EAlPD;;;;;;;;EAkRW,MAAA,CACX,YAAA,GAAc,WAAA,CACZ,IAAA,CAAK,kBAAA,8BAIN,OAAA;EA5OG;;;;;;;;EAwQO,QAAA,CAAA,GAAQ,OAAA;EArQf;;;EAAA,CAkRQ,MAAA,CAAO,YAAA,KAAa,OAAA;EAAA,QAIpB,gBAAA;EAAA,QAsFA,cAAA;EAAA,QAqBA,kBAAA;EAAA,QAEA,gBAAA;EAAA,QAEA,mBAAA;AAAA"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { t as PowerlinesEngineContext } from "./engine-context-
|
|
1
|
+
import { t as PowerlinesEngineContext } from "./engine-context-BWGxMU_n.mjs";
|
|
2
2
|
import { POWERLINES_API_FUNCTIONS } from "@powerlines/core/constants";
|
|
3
|
+
import { toArray } from "@stryke/convert/to-array";
|
|
3
4
|
import { resolvePackage } from "@stryke/fs/resolve";
|
|
4
5
|
import { joinPaths } from "@stryke/path/join";
|
|
5
6
|
import { isSet } from "@stryke/type-checks/is-set";
|
|
@@ -10,10 +11,9 @@ import { Worker } from "jest-worker";
|
|
|
10
11
|
import { cpus } from "node:os";
|
|
11
12
|
import { Transform } from "node:stream";
|
|
12
13
|
import { parseArgs } from "node:util";
|
|
13
|
-
import { toArray } from "@stryke/convert/to-array";
|
|
14
14
|
import { isSetString } from "@stryke/type-checks/is-set-string";
|
|
15
15
|
|
|
16
|
-
//#region src/_internal/ipc/
|
|
16
|
+
//#region src/_internal/ipc/parse.ts
|
|
17
17
|
function parseIpcMessage(data) {
|
|
18
18
|
let message;
|
|
19
19
|
if (isSetObject(data)) message = data;
|
|
@@ -24,15 +24,16 @@ function parseIpcMessage(data) {
|
|
|
24
24
|
if (message && isSetString(message.id) && isSetString(message.type) && isSetString(message.executionId) && Number.isInteger(message.executionIndex) && !Number.isNaN(message.timestamp)) return message;
|
|
25
25
|
}
|
|
26
26
|
function parseWriteLogMessagePayload(data) {
|
|
27
|
-
if (isSetObject(data) &&
|
|
27
|
+
if (isSetObject(data) && isSetObject(data.meta) && isSetString(data.meta.type) && (isSetString(data.message) || Array.isArray(data.message))) return {
|
|
28
28
|
...data,
|
|
29
|
+
meta: data.meta,
|
|
29
30
|
message: toArray(data.message).filter(Boolean)
|
|
30
31
|
};
|
|
31
|
-
throw new Error(
|
|
32
|
+
throw new Error(`Invalid "write-log" message payload: ${JSON.stringify(data)}`);
|
|
32
33
|
}
|
|
33
34
|
function parseUpdateCommandMessagePayload(data) {
|
|
34
35
|
if (isSetString(data?.command)) return { command: data.command };
|
|
35
|
-
throw new Error(
|
|
36
|
+
throw new Error(`Invalid "update-command" message payload: ${JSON.stringify(data)}`);
|
|
36
37
|
}
|
|
37
38
|
function parseUpdateHookMessagePayload(data) {
|
|
38
39
|
if (isSetString(data?.hook) && [
|
|
@@ -43,11 +44,11 @@ function parseUpdateHookMessagePayload(data) {
|
|
|
43
44
|
hook: data.hook,
|
|
44
45
|
order: data.order
|
|
45
46
|
};
|
|
46
|
-
throw new Error(
|
|
47
|
+
throw new Error(`Invalid "update-hook" message payload: ${JSON.stringify(data)}`);
|
|
47
48
|
}
|
|
48
49
|
function parseUpdatePluginMessagePayload(data) {
|
|
49
50
|
if (isSetString(data?.plugin)) return { plugin: data.plugin };
|
|
50
|
-
throw new Error(
|
|
51
|
+
throw new Error(`Invalid "update-plugin" message payload: ${JSON.stringify(data)}`);
|
|
51
52
|
}
|
|
52
53
|
|
|
53
54
|
//#endregion
|
|
@@ -312,39 +313,7 @@ var Worker$1 = class {
|
|
|
312
313
|
const message = parseIpcMessage(data);
|
|
313
314
|
if (message) {
|
|
314
315
|
logger.trace(`Received IPC message from worker: ${JSON.stringify(message)}`);
|
|
315
|
-
|
|
316
|
-
case "write-log":
|
|
317
|
-
if (options.onWriteLog) Promise.resolve(options.onWriteLog({
|
|
318
|
-
...message,
|
|
319
|
-
type: "write-log",
|
|
320
|
-
payload: parseWriteLogMessagePayload(message.payload)
|
|
321
|
-
}));
|
|
322
|
-
break;
|
|
323
|
-
case "update-command":
|
|
324
|
-
if (options.onUpdateCommand) Promise.resolve(options.onUpdateCommand({
|
|
325
|
-
...message,
|
|
326
|
-
type: "update-command",
|
|
327
|
-
payload: parseUpdateCommandMessagePayload(message.payload)
|
|
328
|
-
}));
|
|
329
|
-
break;
|
|
330
|
-
case "update-hook":
|
|
331
|
-
if (options.onUpdateHook) Promise.resolve(options.onUpdateHook({
|
|
332
|
-
...message,
|
|
333
|
-
type: "update-hook",
|
|
334
|
-
payload: parseUpdateHookMessagePayload(message.payload)
|
|
335
|
-
}));
|
|
336
|
-
break;
|
|
337
|
-
case "update-plugin":
|
|
338
|
-
if (options.onUpdatePlugin) Promise.resolve(options.onUpdatePlugin({
|
|
339
|
-
...message,
|
|
340
|
-
type: "update-plugin",
|
|
341
|
-
payload: parseUpdatePluginMessagePayload(message.payload)
|
|
342
|
-
}));
|
|
343
|
-
break;
|
|
344
|
-
case "activity":
|
|
345
|
-
case void 0:
|
|
346
|
-
default: break;
|
|
347
|
-
}
|
|
316
|
+
Promise.resolve(this.options.onIpcMessage?.(message));
|
|
348
317
|
}
|
|
349
318
|
}
|
|
350
319
|
});
|
|
@@ -433,6 +402,7 @@ var PowerlinesEngine = class PowerlinesEngine {
|
|
|
433
402
|
const packagePath = await resolvePackage("@powerlines/engine");
|
|
434
403
|
if (!packagePath) throw new Error("Could not resolve `@powerlines/engine` package location.");
|
|
435
404
|
api.#worker = new Worker$1(joinPaths(packagePath, "./_internal/worker.mjs"), {
|
|
405
|
+
onIpcMessage: api.handleIpcMessage.bind(api),
|
|
436
406
|
enableSourceMaps: options.mode === "development",
|
|
437
407
|
exposedMethods: POWERLINES_API_FUNCTIONS,
|
|
438
408
|
logger: api.context.extendLogger({ category: "ipc" })
|
|
@@ -640,9 +610,105 @@ var PowerlinesEngine = class PowerlinesEngine {
|
|
|
640
610
|
this.context.debug("✔ Powerlines finalization completed successfully");
|
|
641
611
|
timer();
|
|
642
612
|
}
|
|
613
|
+
/**
|
|
614
|
+
* Asynchronous disposal method for the Powerlines Engine, which will call the finalize method to perform any necessary cleanup when the engine is disposed of.
|
|
615
|
+
*/
|
|
643
616
|
async [Symbol.asyncDispose]() {
|
|
644
617
|
return this.finalize();
|
|
645
618
|
}
|
|
619
|
+
async handleIpcMessage(message) {
|
|
620
|
+
switch (message.type) {
|
|
621
|
+
case "write-log":
|
|
622
|
+
this.context.logger.debug({
|
|
623
|
+
meta: {
|
|
624
|
+
category: "ipc",
|
|
625
|
+
executionId: message.executionId,
|
|
626
|
+
executionIndex: message.executionIndex,
|
|
627
|
+
environment: message.environment
|
|
628
|
+
},
|
|
629
|
+
message: "Received a \"write-log\" IPC message from worker"
|
|
630
|
+
});
|
|
631
|
+
await this.handleWriteLog({
|
|
632
|
+
...message,
|
|
633
|
+
type: "write-log",
|
|
634
|
+
payload: parseWriteLogMessagePayload(message.payload)
|
|
635
|
+
});
|
|
636
|
+
break;
|
|
637
|
+
case "update-command":
|
|
638
|
+
this.context.logger.debug({
|
|
639
|
+
meta: {
|
|
640
|
+
category: "ipc",
|
|
641
|
+
executionId: message.executionId,
|
|
642
|
+
executionIndex: message.executionIndex,
|
|
643
|
+
environment: message.environment
|
|
644
|
+
},
|
|
645
|
+
message: "Received an \"update-command\" IPC message from worker"
|
|
646
|
+
});
|
|
647
|
+
await this.handleUpdateCommand({
|
|
648
|
+
...message,
|
|
649
|
+
type: "update-command",
|
|
650
|
+
payload: parseUpdateCommandMessagePayload(message.payload)
|
|
651
|
+
});
|
|
652
|
+
break;
|
|
653
|
+
case "update-hook":
|
|
654
|
+
this.context.logger.debug({
|
|
655
|
+
meta: {
|
|
656
|
+
category: "ipc",
|
|
657
|
+
executionId: message.executionId,
|
|
658
|
+
executionIndex: message.executionIndex,
|
|
659
|
+
environment: message.environment
|
|
660
|
+
},
|
|
661
|
+
message: "Received an \"update-hook\" IPC message from worker"
|
|
662
|
+
});
|
|
663
|
+
await this.handleUpdateHook({
|
|
664
|
+
...message,
|
|
665
|
+
type: "update-hook",
|
|
666
|
+
payload: parseUpdateHookMessagePayload(message.payload)
|
|
667
|
+
});
|
|
668
|
+
break;
|
|
669
|
+
case "update-plugin":
|
|
670
|
+
this.context.logger.debug({
|
|
671
|
+
meta: {
|
|
672
|
+
category: "ipc",
|
|
673
|
+
executionId: message.executionId,
|
|
674
|
+
executionIndex: message.executionIndex,
|
|
675
|
+
environment: message.environment
|
|
676
|
+
},
|
|
677
|
+
message: "Received an \"update-plugin\" IPC message from worker"
|
|
678
|
+
});
|
|
679
|
+
await this.handleUpdatePlugin({
|
|
680
|
+
...message,
|
|
681
|
+
type: "update-plugin",
|
|
682
|
+
payload: parseUpdatePluginMessagePayload(message.payload)
|
|
683
|
+
});
|
|
684
|
+
break;
|
|
685
|
+
case "activity":
|
|
686
|
+
case void 0:
|
|
687
|
+
default: break;
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
async handleWriteLog(message) {
|
|
691
|
+
const { payload } = message;
|
|
692
|
+
this.context.logger.log(payload.meta.type, {
|
|
693
|
+
message: toArray(payload.message).filter(Boolean).join("\n"),
|
|
694
|
+
meta: {
|
|
695
|
+
category: payload.meta.category,
|
|
696
|
+
logId: payload.meta.logId,
|
|
697
|
+
name: payload.meta.name,
|
|
698
|
+
executionId: message.executionId,
|
|
699
|
+
executionIndex: message.executionIndex,
|
|
700
|
+
command: payload.meta.command,
|
|
701
|
+
hook: payload.meta.hook,
|
|
702
|
+
environment: message.environment,
|
|
703
|
+
plugin: payload.meta.plugin,
|
|
704
|
+
source: payload.meta.source,
|
|
705
|
+
timestamp: message.timestamp
|
|
706
|
+
}
|
|
707
|
+
});
|
|
708
|
+
}
|
|
709
|
+
async handleUpdatePlugin(_) {}
|
|
710
|
+
async handleUpdateHook(_) {}
|
|
711
|
+
async handleUpdateCommand(_) {}
|
|
646
712
|
};
|
|
647
713
|
|
|
648
714
|
//#endregion
|