anbaric-state-machine 1.24.0 → 1.26.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.
@@ -1,4 +1,4 @@
1
- import { Action, Actor, AppAware, Auditor, Job, JobPersistence, PropertyDefinition, Queue, State } from "anbaric-tsapi";
1
+ import { Action, Actor, AppAware, Auditor, Job, JobPersistence, Notifier, PropertyDefinition, Queue, State } from "anbaric-tsapi";
2
2
  declare class StateMachine implements AppAware {
3
3
  readonly workflowId: string;
4
4
  readonly states: Map<string, State>;
@@ -8,15 +8,18 @@ declare class StateMachine implements AppAware {
8
8
  private queue;
9
9
  private consumer;
10
10
  private machineActor;
11
+ private notifier;
11
12
  private auditor;
12
13
  private readonly NO_TRANSITION_REQUEUE_DELAY;
13
- constructor(workflowId: string, states: Array<State>, startState?: string, dataSchema?: Array<PropertyDefinition>, persistence?: JobPersistence, queue?: Queue, auditor?: Auditor);
14
+ constructor(workflowId: string, states: Array<State>, startState?: string, dataSchema?: Array<PropertyDefinition>, persistence?: JobPersistence, queue?: Queue, notifier?: Notifier | undefined, auditor?: Auditor);
14
15
  getAppId(): string;
15
16
  private describe;
16
17
  startJob(properties?: Map<string, any>, actor?: Actor): Promise<Job>;
17
18
  updateJob(jobId: string, properties: Map<string, any>, actor: Actor): Promise<void>;
18
19
  executeAction(jobId: string, action: Action): Promise<void>;
19
20
  private progressJob;
21
+ private notifyWaitingOn;
22
+ private failJob;
20
23
  private updateJobInternal;
21
24
  private validateProperties;
22
25
  private propertyProblem;
@@ -1 +1 @@
1
- {"version":3,"file":"StateMachine.d.ts","sourceRoot":"","sources":["../src/StateMachine.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,MAAM,EACN,KAAK,EACL,QAAQ,EACR,OAAO,EAIP,GAAG,EACH,cAAc,EACd,kBAAkB,EAClB,KAAK,EACL,KAAK,EAGR,MAAM,eAAe,CAAC;AAQvB,cAAM,YAAa,YAAW,QAAQ;IAElC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAErD,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,YAAY,CAAO;IAC3B,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAsB;IAElE,YAAY,UAAU,EAAG,MAAM,EAAE,MAAM,EAAG,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,EAAG,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC,kBAAkB,CAAM,EAAE,WAAW,GAAG,cAAiD,EAAE,KAAK,GAAG,KAA+B,EAAE,OAAO,GAAG,OAAmC,EAoBjR;IAED,QAAQ,IAAK,MAAM,CAElB;IAED,OAAO,CAAC,QAAQ;IAKV,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,KAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,CAY7F;IAEK,SAAS,CAAC,KAAK,EAAG,MAAM,EAAE,UAAU,EAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAG,KAAK,GAAI,OAAO,CAAC,IAAI,CAAC,CAO5F;IAEK,aAAa,CAAC,KAAK,EAAG,MAAM,EAAE,MAAM,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC,CAcnE;YAEa,WAAW;YA6EX,iBAAiB;IAQ/B,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,SAAS;IAIX,OAAO,IAAK,OAAO,CAAC,IAAI,CAAC,CAE9B;IAED,OAAO,CAAC,cAAc;CAIzB;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"StateMachine.d.ts","sourceRoot":"","sources":["../src/StateMachine.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,MAAM,EACN,KAAK,EACL,QAAQ,EACR,OAAO,EAIP,GAAG,EACH,cAAc,EACd,QAAQ,EACR,kBAAkB,EAClB,KAAK,EACL,KAAK,EAGR,MAAM,eAAe,CAAC;AASvB,cAAM,YAAa,YAAW,QAAQ;IAElC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAErD,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,YAAY,CAAO;IAC3B,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAsB;IAElE,YAAY,UAAU,EAAG,MAAM,EAAE,MAAM,EAAG,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,EAAG,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC,kBAAkB,CAAM,EAAE,WAAW,GAAG,cAAiD,EAAE,KAAK,GAAG,KAA+B,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAsC,EAAE,OAAO,GAAG,OAAmC,EAqB/U;IAED,QAAQ,IAAK,MAAM,CAElB;IAED,OAAO,CAAC,QAAQ;IAKV,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,KAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,CAY7F;IAEK,SAAS,CAAC,KAAK,EAAG,MAAM,EAAE,UAAU,EAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAG,KAAK,GAAI,OAAO,CAAC,IAAI,CAAC,CAO5F;IAEK,aAAa,CAAC,KAAK,EAAG,MAAM,EAAE,MAAM,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC,CAcnE;YAEa,WAAW;YAwFX,eAAe;YAgBf,OAAO;YAUP,iBAAiB;IAQ/B,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,SAAS;IAIX,OAAO,IAAK,OAAO,CAAC,IAAI,CAAC,CAE9B;IAED,OAAO,CAAC,cAAc;CAIzB;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { Await, currentAppId, Job, SystemActor, WorkflowDefinition } from "anbaric-tsapi";
2
2
  import { JobPersistenceFactory } from "./persistence/JobPersistenceFactory.js";
3
3
  import { QueueFactory } from "./scheduling/QueueFactory.js";
4
+ import { NotifierFactory } from "./notifications/NotifierFactory.js";
4
5
  import { ConsumerFactory } from "./scheduling/ConsumerFactory.js";
5
6
  import { AuditorFactory } from "./auditing/AuditorFactory.js";
6
7
  import { Code } from "./actors/Code.js";
@@ -13,9 +14,10 @@ class StateMachine {
13
14
  queue;
14
15
  consumer;
15
16
  machineActor;
17
+ notifier;
16
18
  auditor;
17
19
  NO_TRANSITION_REQUEUE_DELAY = 5 * 60_000;
18
- constructor(workflowId, states, startState, dataSchema = [], persistence = JobPersistenceFactory.instance(), queue = QueueFactory.instance(), auditor = AuditorFactory.instance()) {
20
+ constructor(workflowId, states, startState, dataSchema = [], persistence = JobPersistenceFactory.instance(), queue = QueueFactory.instance(), notifier = NotifierFactory.instance(), auditor = AuditorFactory.instance()) {
19
21
  // The workflow's identity is the composite (appId, workflowId): the app
20
22
  // it is deployed in (from the environment, via getAppId()) and the
21
23
  // machine's own id, kept as separate values rather than a concatenated
@@ -26,6 +28,7 @@ class StateMachine {
26
28
  this.dataSchema = new Map(dataSchema.map(property => [property.id, property]));
27
29
  this.persistence = persistence;
28
30
  this.queue = queue;
31
+ this.notifier = notifier;
29
32
  this.machineActor = new Code(this.workflowId, "state-machine");
30
33
  this.auditor = auditor;
31
34
  this.consumer = ConsumerFactory.instance(queue);
@@ -88,13 +91,20 @@ class StateMachine {
88
91
  job.awaitMetadata = item.waitForInput(job);
89
92
  job.waitingFor = crypto.randomUUID();
90
93
  await this.persistence.save(this.machineActor, `Job ${job.id} awaiting input`, job, propertiesChanged ? job.properties : undefined);
94
+ await this.notifyWaitingOn(item, job);
91
95
  return;
92
96
  }
93
97
  if (!item.predicate(job))
94
98
  continue;
95
99
  if (!this.authorizeActor(item.actor, job))
96
100
  continue;
97
- const newProperties = await item.run(job);
101
+ let newProperties;
102
+ try {
103
+ newProperties = await item.run(job);
104
+ }
105
+ catch (error) {
106
+ return this.failJob(job, item, error);
107
+ }
98
108
  let applied = false;
99
109
  for (const [key, value] of newProperties) {
100
110
  const problem = this.propertyProblem(key, value);
@@ -138,6 +148,32 @@ class StateMachine {
138
148
  await this.persistence.save(involvedActors[0] ?? this.machineActor, `Job ${job.id} progressed automatically`, job, job.properties);
139
149
  await this.queue.schedule(job.id, this.getAppId(), this.workflowId, new Date(Date.now() + this.NO_TRANSITION_REQUEUE_DELAY));
140
150
  }
151
+ /* Told after the job is parked, so the people notified can act on it the
152
+ moment they read the message. Notifying is a side channel: a notifier
153
+ that fails must not undo a job that is already legitimately waiting, so
154
+ the failure is logged and the job left alone. */
155
+ async notifyWaitingOn(waiting, job) {
156
+ if (!this.notifier || waiting.notify.length === 0 || !job.awaitMetadata)
157
+ return;
158
+ try {
159
+ await this.notifier.notify(waiting.notify, job, job.awaitMetadata);
160
+ }
161
+ catch (error) {
162
+ const reason = error instanceof Error ? error.message : String(error);
163
+ console.error(`[${this.workflowId}] could not notify ${waiting.notify.join(", ")} that job ${job.id} is waiting: ${reason}`);
164
+ }
165
+ }
166
+ /* An action that throws used to leave the job silently stuck: the queue
167
+ message was never confirmed, so the job neither advanced nor visibly
168
+ failed. Failing it here marks the job, records why in the audit trail,
169
+ and lets the consumer confirm the message. An update that moves the job
170
+ on clears the status, so a failure is recoverable rather than terminal. */
171
+ async failJob(job, action, error) {
172
+ const reason = error instanceof Error ? error.message : String(error);
173
+ job.status = Job.Status.FAILED;
174
+ console.error(`[${this.workflowId}] action "${action.name}" threw on job ${job.id}: ${reason}`);
175
+ await this.persistence.save(action.actor, `Action "${action.name}" failed on job ${job.id}: ${reason}`, job);
176
+ }
141
177
  async updateJobInternal(actor, message, job, newProperties, newState) {
142
178
  if (newProperties && !this.validateProperties(newProperties, false))
143
179
  throw new Error("Invalid properties");
@@ -1 +1 @@
1
- {"version":3,"file":"StateMachine.js","sourceRoot":"","sources":["../src/StateMachine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StateMachine.js","sourceRoot":"","sources":["../src/StateMachine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Human.d.ts","sourceRoot":"","sources":["../../src/actors/Human.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAC,KAAK,EAAE,eAAe,EAAC,MAAM,eAAe,CAAC;AAIrD,cAAM,KAAM,YAAW,KAAK;IAExB,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAE/B,YAAY,EAAE,EAAG,MAAM,EAAE,KAAK,EAAG,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,EAGtD;IAOD,OAAa,WAAW,CAAC,MAAM,EAAG,MAAM,GAAG,eAAe,EACjC,QAAQ,GAAG,eAAmD,GAAI,OAAO,CAAC,KAAK,CAAC,CAKxG;CAEJ;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"Human.d.ts","sourceRoot":"","sources":["../../src/actors/Human.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAC,KAAK,EAAE,eAAe,EAAC,MAAM,eAAe,CAAC;AAIrD,cAAM,KAAM,YAAW,KAAK;IAExB,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAE/B,YAAY,EAAE,EAAG,MAAM,EAAE,KAAK,EAAG,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,EAGtD;IAOD,OAAa,WAAW,CAAC,MAAM,EAAG,MAAM,GAAG,eAAe,EACjC,QAAQ,GAAG,eAAmD,GAAI,OAAO,CAAC,KAAK,CAAC,CAMxG;CAEJ;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Human.js","sourceRoot":"","sources":["../../src/actors/Human.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,sBAAsB,EAAC,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAE3D,MAAM,KAAK;IAEE,IAAI,GAAG,OAAgB,CAAC;IACxB,EAAE,CAAU;IACZ,KAAK,CAAiB;IAE/B,YAAY,EAAW,EAAE,KAA8B;QACnD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7D,CAAC;IAED;;;;gBAIY;IACZ,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAiC,EACjC,QAAQ,GAAqB,sBAAsB,CAAC,QAAQ,EAAE;QACnF,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/D,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;CAEJ;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"Human.js","sourceRoot":"","sources":["../../src/actors/Human.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,sBAAsB,EAAC,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAE3D,MAAM,KAAK;IAEE,IAAI,GAAG,OAAgB,CAAC;IACxB,EAAE,CAAU;IACZ,KAAK,CAAiB;IAE/B,YAAY,EAAW,EAAE,KAA8B;QACnD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7D,CAAC;IAED;;;;gBAIY;IACZ,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAiC,EACjC,QAAQ,GAAqB,sBAAsB,CAAC,QAAQ,EAAE;QAEnF,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,IAAI,CAAE,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAChE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;CAEJ;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
package/dist/index.d.ts CHANGED
@@ -11,6 +11,7 @@ export * from "./scheduling/InMemoryQueue.js";
11
11
  export * from "./scheduling/PullConsumer.js";
12
12
  export * from "./scheduling/ConsumerFactory.js";
13
13
  export * from "./scheduling/QueueFactory.js";
14
+ export * from "./notifications/NotifierFactory.js";
14
15
  export * from "./scheduling/Schedule.js";
15
16
  export * from "./scheduling/JobRunScheduler.js";
16
17
  export * from "./scheduling/InMemoryJobRunSchedulePersistence.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC;AACpD,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mDAAmD,CAAC;AAClE,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC;AACpD,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mDAAmD,CAAC;AAClE,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC"}
package/dist/index.js CHANGED
@@ -11,6 +11,7 @@ export * from "./scheduling/InMemoryQueue.js";
11
11
  export * from "./scheduling/PullConsumer.js";
12
12
  export * from "./scheduling/ConsumerFactory.js";
13
13
  export * from "./scheduling/QueueFactory.js";
14
+ export * from "./notifications/NotifierFactory.js";
14
15
  export * from "./scheduling/Schedule.js";
15
16
  export * from "./scheduling/JobRunScheduler.js";
16
17
  export * from "./scheduling/InMemoryJobRunSchedulePersistence.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC;AACpD,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mDAAmD,CAAC;AAClE,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC;AACpD,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mDAAmD,CAAC;AAClE,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Notifier } from "anbaric-tsapi";
2
+ declare const NotifierFactory: {
3
+ instance(): Notifier | undefined;
4
+ };
5
+ export { NotifierFactory };
6
+ //# sourceMappingURL=NotifierFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotifierFactory.d.ts","sourceRoot":"","sources":["../../src/notifications/NotifierFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAQvC,QAAA,MAAM,eAAe;IAEjB,QAAQ,IAAK,QAAQ,GAAG,SAAS;CASpC,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { CloudNotifier } from "anbaric-impl-cloud";
2
+ /* Like the other services, the notifier is chosen by environment. There is no
3
+ local implementation - nothing can be delivered from a laptop - so with no
4
+ env a machine simply doesn't notify. Deployed, the platform sets
5
+ ANBARIC_NOTIFIER_TYPE=cloud and the app posts to the platform, which owns
6
+ delivery. */
7
+ const NotifierFactory = {
8
+ instance() {
9
+ switch (process.env.ANBARIC_NOTIFIER_TYPE) {
10
+ case "cloud":
11
+ return new CloudNotifier();
12
+ default:
13
+ return undefined;
14
+ }
15
+ },
16
+ };
17
+ export { NotifierFactory };
18
+ //# sourceMappingURL=NotifierFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotifierFactory.js","sourceRoot":"","sources":["../../src/notifications/NotifierFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAEjD;;;;eAIe;AACf,MAAM,eAAe,GAAG;IAEpB,QAAQ;QACJ,QAAQ,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;YACxC,KAAK,OAAO;gBACR,OAAO,IAAI,aAAa,EAAE,CAAC;YAC/B;gBACI,OAAO,SAAS,CAAC;QACzB,CAAC;IACL,CAAC;CAEJ,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConsumerFactory.d.ts","sourceRoot":"","sources":["../../src/scheduling/ConsumerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAW,KAAK,EAAC,MAAM,eAAe,CAAC;AAIvD,QAAA,MAAM,eAAe;IACjB,QAAQ,QAAS,KAAK,GAAI,QAAQ;CAOrC,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"ConsumerFactory.d.ts","sourceRoot":"","sources":["../../src/scheduling/ConsumerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAW,KAAK,EAAC,MAAM,eAAe,CAAC;AAwBvD,QAAA,MAAM,eAAe;IAEjB,QAAQ,QAAS,KAAK,GAAI,QAAQ;CAmBrC,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1,15 +1,40 @@
1
1
  import { Dequeue } from "anbaric-tsapi";
2
2
  import { PushConsumer } from "anbaric-impl-cloud";
3
3
  import { PullConsumer } from "./PullConsumer.js";
4
+ /* Consumers are shared rather than made per state machine. A push consumer
5
+ binds a port, so giving every machine its own meant the second machine in a
6
+ deployed app died on EADDRINUSE - an app could only ever have one machine.
7
+ Both consumers already key their subscribers by (appId, workflowId), so one
8
+ shared consumer dispatches each message to the right machine.
9
+
10
+ Neither is shared globally, because a consumer is only interchangeable with
11
+ another that talks to the same place. Pull consumers are shared per queue: a
12
+ machine built with its own queue still needs that queue drained, and
13
+ QueueFactory hands out a separate in-memory queue on every call. Push
14
+ consumers are shared per platform, since a consumer registers its callback
15
+ URL with one platform and confirms messages back to it. A process talks to a
16
+ single platform, so in a deployed app that is one consumer on one port. */
17
+ const pullConsumers = new WeakMap();
18
+ const pushConsumers = new Map();
19
+ const platform = () => process.env.ANBARIC_CLOUD_URL ?? "";
4
20
  const ConsumerFactory = {
5
21
  instance(queue) {
6
22
  if (Dequeue.supports(queue)) {
7
- return new PullConsumer(queue);
23
+ const existing = pullConsumers.get(queue);
24
+ if (existing)
25
+ return existing;
26
+ const consumer = new PullConsumer(queue);
27
+ pullConsumers.set(queue, consumer);
28
+ return consumer;
8
29
  }
9
- else {
10
- return new PushConsumer();
11
- }
12
- }
30
+ const platformUrl = platform();
31
+ const existing = pushConsumers.get(platformUrl);
32
+ if (existing)
33
+ return existing;
34
+ const consumer = new PushConsumer();
35
+ pushConsumers.set(platformUrl, consumer);
36
+ return consumer;
37
+ },
13
38
  };
14
39
  export { ConsumerFactory };
15
40
  //# sourceMappingURL=ConsumerFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConsumerFactory.js","sourceRoot":"","sources":["../../src/scheduling/ConsumerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAQ,MAAM,eAAe,CAAC;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAE/C,MAAM,eAAe,GAAG;IACpB,QAAQ,CAAC,KAAa;QAClB,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,YAAY,EAAE,CAAC;QAC9B,CAAC;IACL,CAAC;CACJ,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"ConsumerFactory.js","sourceRoot":"","sources":["../../src/scheduling/ConsumerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAQ,MAAM,eAAe,CAAC;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAE/C;;;;;;;;;;;;6EAY6E;AAE7E,MAAM,aAAa,GAAG,IAAI,OAAO,EAAyB,CAAC;AAE3D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAwB,CAAC;AAEtD,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;AAE3D,MAAM,eAAe,GAAG;IAEpB,QAAQ,CAAC,KAAa;QAClB,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAE9B,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;YACzC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACnC,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QACpC,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACzC,OAAO,QAAQ,CAAC;IACpB,CAAC;CAEJ,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "anbaric-state-machine",
3
- "version": "1.24.0",
3
+ "version": "1.26.0",
4
4
  "description": "This is the state machine library that one can use to add state management to an application. It will, by default, be locally runnable but can deployed to the Anbaric Cloud via the CLI",
5
5
  "license": "MIT",
6
6
  "author": "chris@anbaric.ai",
@@ -24,8 +24,8 @@
24
24
  "typescript": "^7.0.2"
25
25
  },
26
26
  "dependencies": {
27
- "anbaric-impl-cloud": "^1.24.0",
28
- "anbaric-tsapi": "^1.24.0"
27
+ "anbaric-impl-cloud": "^1.26.0",
28
+ "anbaric-tsapi": "^1.26.0"
29
29
  },
30
30
  "files": [
31
31
  "dist"