@cadenza.io/core 1.9.1 → 1.10.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/index.d.mts CHANGED
@@ -228,7 +228,7 @@ declare class GraphNode extends SignalEmitter implements Graph {
228
228
  private workAsync;
229
229
  private executeAsync;
230
230
  private work;
231
- protected emitWithMetadata(signal: string, context: AnyObject): void;
231
+ protected emitWithMetadata(signal: string, ctx: AnyObject): void;
232
232
  private onProgress;
233
233
  private postProcess;
234
234
  private onError;
package/dist/index.d.ts CHANGED
@@ -228,7 +228,7 @@ declare class GraphNode extends SignalEmitter implements Graph {
228
228
  private workAsync;
229
229
  private executeAsync;
230
230
  private work;
231
- protected emitWithMetadata(signal: string, context: AnyObject): void;
231
+ protected emitWithMetadata(signal: string, ctx: AnyObject): void;
232
232
  private onProgress;
233
233
  private postProcess;
234
234
  private onError;
package/dist/index.js CHANGED
@@ -157,16 +157,27 @@ var SignalBroker = class _SignalBroker {
157
157
  }
158
158
  }
159
159
  execute(signal, context) {
160
+ const isMeta = signal.startsWith("meta");
161
+ const emittedAt = Date.now();
162
+ const data = {
163
+ ...context,
164
+ __signalEmission: {
165
+ ...context.__signalEmission,
166
+ signalName: signal,
167
+ emittedAt,
168
+ isMeta
169
+ }
170
+ };
160
171
  let executed;
161
- executed = this.executeListener(signal, context);
172
+ executed = this.executeListener(signal, data);
162
173
  const parts = signal.slice(0, Math.max(signal.lastIndexOf(":"), signal.lastIndexOf("."))).split(".");
163
174
  for (let i = parts.length; i > 0; i--) {
164
175
  const parent = parts.slice(0, i).join(".");
165
- executed = executed || this.executeListener(parent + ".*", context);
176
+ executed = executed || this.executeListener(parent + ".*", data);
166
177
  }
167
178
  if (this.debug) {
168
179
  console.log(
169
- `Emitted signal ${signal} with context ${JSON.stringify(context)}`,
180
+ `Emitted signal ${signal} with context ${JSON.stringify(data)}`,
170
181
  executed ? "\u2705" : "\u274C"
171
182
  );
172
183
  }
@@ -174,7 +185,8 @@ var SignalBroker = class _SignalBroker {
174
185
  }
175
186
  executeListener(signal, context) {
176
187
  const obs = this.signalObservers.get(signal);
177
- const runner = signal.startsWith("meta") ? this.metaRunner : this.runner;
188
+ const isMeta = signal.startsWith("meta");
189
+ const runner = isMeta ? this.metaRunner : this.runner;
178
190
  if (obs && obs.tasks.size && runner) {
179
191
  obs.fn(runner, Array.from(obs.tasks), context);
180
192
  return true;
@@ -182,13 +194,26 @@ var SignalBroker = class _SignalBroker {
182
194
  return false;
183
195
  }
184
196
  addSignal(signal) {
185
- if (!this.signalObservers.has(signal)) {
186
- this.validateSignalName(signal);
187
- this.signalObservers.set(signal, {
197
+ let _signal = signal;
198
+ if (!this.signalObservers.has(_signal)) {
199
+ this.validateSignalName(_signal);
200
+ this.signalObservers.set(_signal, {
188
201
  fn: (runner, tasks, context) => runner.run(tasks, context),
189
202
  tasks: /* @__PURE__ */ new Set()
190
203
  });
191
- this.emit("meta.signal_broker.added", { __signalName: signal });
204
+ const sections = _signal.split(":");
205
+ if (sections.length === 2) {
206
+ _signal = sections[0];
207
+ if (!this.signalObservers.has(sections[0])) {
208
+ this.signalObservers.set(_signal, {
209
+ fn: (runner, tasks, context) => runner.run(tasks, context),
210
+ tasks: /* @__PURE__ */ new Set()
211
+ });
212
+ } else {
213
+ return;
214
+ }
215
+ }
216
+ this.emit("meta.signal_broker.added", { __signalName: _signal });
192
217
  }
193
218
  }
194
219
  // TODO schedule signals
@@ -741,24 +766,23 @@ var GraphNode = class _GraphNode extends SignalEmitter {
741
766
  if (shouldSchedule) {
742
767
  this.layer = layer;
743
768
  layer.add(this);
744
- this.emit("meta.node.scheduled", {
769
+ const scheduledAt = Date.now();
770
+ this.emitWithMetadata("meta.node.scheduled", {
745
771
  ...this.lightExport(),
746
- __scheduled: Date.now()
772
+ __scheduled: scheduledAt
747
773
  });
748
774
  const context = this.context.getFullContext();
749
- if (context.__emittedSignal !== void 0 && context.__consumedByNode === void 0 && !context.__emittedSignal.includes("meta.")) {
750
- this.emit("meta.node.consumed_signal", {
751
- __signal_log: {
752
- signal_name: context.__emittedSignal,
753
- log_type: "consume",
754
- consumed_by_task_id: this.task.id,
755
- task_execution_id: this.id,
756
- relation_type: "listener",
757
- metadata: {},
758
- is_meta: false
775
+ if (context.__signalEmission !== void 0 && (!this.isMeta() || this.debug)) {
776
+ this.emitWithMetadata("meta.node.consumed_signal", {
777
+ __signalConsumption: {
778
+ signalName: context.__signalEmission.signalName,
779
+ taskId: this.task.id,
780
+ taskExecutionId: this.id,
781
+ consumedAt: scheduledAt
759
782
  }
760
783
  });
761
- context.__consumedByNode = this.id;
784
+ delete context.__signalEmission;
785
+ this.migrate(context);
762
786
  }
763
787
  }
764
788
  }
@@ -768,12 +792,12 @@ var GraphNode = class _GraphNode extends SignalEmitter {
768
792
  }
769
793
  const memento = this.lightExport();
770
794
  if (this.previousNodes.length === 0) {
771
- this.emit("meta.node.started_routine_execution", memento);
795
+ this.emitWithMetadata("meta.node.started_routine_execution", memento);
772
796
  }
773
797
  if (this.debug) {
774
798
  this.log();
775
799
  }
776
- this.emit("meta.node.started", memento);
800
+ this.emitWithMetadata("meta.node.started", memento);
777
801
  return this.executionStart;
778
802
  }
779
803
  end() {
@@ -785,11 +809,11 @@ var GraphNode = class _GraphNode extends SignalEmitter {
785
809
  this.executionTime = end - this.executionStart;
786
810
  const memento = this.lightExport();
787
811
  if (this.errored || this.failed) {
788
- this.emit("meta.node.errored", memento);
812
+ this.emitWithMetadata("meta.node.errored", memento);
789
813
  }
790
- this.emit("meta.node.ended", memento);
814
+ this.emitWithMetadata("meta.node.ended", memento);
791
815
  if (this.graphDone()) {
792
- this.emit(
816
+ this.emitWithMetadata(
793
817
  `meta.node.ended_routine_execution:${this.routineExecId}`,
794
818
  memento
795
819
  );
@@ -852,30 +876,19 @@ var GraphNode = class _GraphNode extends SignalEmitter {
852
876
  });
853
877
  }
854
878
  }
855
- emitWithMetadata(signal, context) {
879
+ emitWithMetadata(signal, ctx) {
856
880
  this.emit(signal, {
857
- ...context,
858
- __emittedSignal: signal,
859
- __emittedByNode: this.id
881
+ ...ctx,
882
+ __signalEmission: {
883
+ taskId: this.task.id,
884
+ taskExecutionId: this.id
885
+ }
860
886
  });
861
- if (!signal.includes(".meta")) {
862
- this.emit("meta.node.emitted_signal", {
863
- __signal_log: {
864
- signal_name: signal,
865
- log_type: "emit",
866
- emitted_by_task_id: this.task.id,
867
- task_execution_id: this.id,
868
- relation_type: "emitter",
869
- metadata: {},
870
- is_meta: false
871
- }
872
- });
873
- }
874
887
  }
875
888
  onProgress(progress) {
876
889
  var _a, _b, _c;
877
890
  progress = Math.min(Math.max(0, progress), 1);
878
- this.emit(`meta.node.progress:${this.routineExecId}`, {
891
+ this.emitWithMetadata(`meta.node.progress:${this.routineExecId}`, {
879
892
  __nodeId: this.id,
880
893
  __routineExecId: this.routineExecId,
881
894
  __progress: progress,