@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.
Files changed (38) hide show
  1. package/dist/_internal/worker.cjs +34 -5
  2. package/dist/_internal/worker.mjs +35 -6
  3. package/dist/_internal/worker.mjs.map +1 -1
  4. package/dist/api.cjs +4 -4
  5. package/dist/api.mjs +4 -4
  6. package/dist/{base-context-DkGTyGX0.cjs → base-context-CAA1druQ.cjs} +34 -1
  7. package/dist/{base-context-Dv5OTHxZ.mjs → base-context-fOM4ZWUo.mjs} +39 -6
  8. package/dist/base-context-fOM4ZWUo.mjs.map +1 -0
  9. package/dist/context/index.cjs +3 -3
  10. package/dist/context/index.d.cts.map +1 -1
  11. package/dist/context/index.d.mts.map +1 -1
  12. package/dist/context/index.mjs +3 -3
  13. package/dist/{engine-context-CytME-Ht.mjs → engine-context-BWGxMU_n.mjs} +2 -2
  14. package/dist/{engine-context-CytME-Ht.mjs.map → engine-context-BWGxMU_n.mjs.map} +1 -1
  15. package/dist/{engine-context-CDSR7PHF.cjs → engine-context-CUPubmrM.cjs} +1 -1
  16. package/dist/{execution-context-B-CVP76S.cjs → execution-context-BoJhCK0d.cjs} +9 -9
  17. package/dist/{execution-context-F7RyGqff.mjs → execution-context-CFJst4Fz.mjs} +10 -10
  18. package/dist/{execution-context-F7RyGqff.mjs.map → execution-context-CFJst4Fz.mjs.map} +1 -1
  19. package/dist/index.cjs +107 -41
  20. package/dist/index.d.cts +8 -0
  21. package/dist/index.d.cts.map +1 -1
  22. package/dist/index.d.mts +8 -0
  23. package/dist/index.d.mts.map +1 -1
  24. package/dist/index.mjs +107 -41
  25. package/dist/index.mjs.map +1 -1
  26. package/dist/storage/index.cjs +1 -1
  27. package/dist/storage/index.mjs +1 -1
  28. package/dist/{tsconfig-Cstsoprg.mjs → tsconfig-CI6bla4E.mjs} +2 -2
  29. package/dist/{tsconfig-Cstsoprg.mjs.map → tsconfig-CI6bla4E.mjs.map} +1 -1
  30. package/dist/{tsconfig-DeyWQC2N.cjs → tsconfig-QMSxSwBD.cjs} +1 -1
  31. package/dist/typescript/index.cjs +1 -1
  32. package/dist/typescript/index.mjs +1 -1
  33. package/dist/{virtual-CUgOdyIa.mjs → virtual-CYGZHTDd.mjs} +5 -5
  34. package/dist/virtual-CYGZHTDd.mjs.map +1 -0
  35. package/dist/{virtual-1hYa9zCy.cjs → virtual-Ct3ZqPeN.cjs} +2 -2
  36. package/package.json +3 -3
  37. package/dist/base-context-Dv5OTHxZ.mjs.map +0 -1
  38. 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-CDSR7PHF.cjs');
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/helpers.ts
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, _stryke_type_checks_is_set_string.isSetString)(data.type) && (0, _stryke_type_checks_is_set_string.isSetString)(data.category) && (0, _stryke_type_checks_is_set_string.isSetString)(data.logId) && (0, _stryke_type_checks_is_set_string.isSetString)(data.message)) return {
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("Invalid \"write-log\" message payload.");
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("Invalid \"update-command\" message payload.");
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("Invalid \"update-hook\" message payload.");
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("Invalid \"update-plugin\" message payload.");
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
- switch (message.type) {
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 };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;AAgDA;;;;;;cAAa,gBAAA,YAA4B,MAAA,EAAQ,eAAA;EAAA;EAkEtC;;;;;;EAAA,OAjDW,WAAA,CAClB,OAAA,EAAS,aAAA,GACR,OAAA,CAAQ,gBAAA;EAyFY;;;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;EAnPoC;;;;;;;;;EA+Q1B,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;EAAA,CAUd,MAAA,CAAO,YAAA,KAAa,OAAA;AAAA"}
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 };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;AAgDA;;;;;;cAAa,gBAAA,YAA4B,MAAA,EAAQ,eAAA;EAAA;EAkEtC;;;;;;EAAA,OAjDW,WAAA,CAClB,OAAA,EAAS,aAAA,GACR,OAAA,CAAQ,gBAAA;EAyFY;;;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;EAnPoC;;;;;;;;;EA+Q1B,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;EAAA,CAUd,MAAA,CAAO,YAAA,KAAa,OAAA;AAAA"}
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-CytME-Ht.mjs";
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/helpers.ts
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) && isSetString(data.type) && isSetString(data.category) && isSetString(data.logId) && isSetString(data.message)) return {
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("Invalid \"write-log\" message payload.");
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("Invalid \"update-command\" message payload.");
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("Invalid \"update-hook\" message payload.");
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("Invalid \"update-plugin\" message payload.");
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
- switch (message.type) {
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