anbaric-state-machine 1.24.0 → 1.25.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/StateMachine.d.ts +5 -2
- package/dist/StateMachine.d.ts.map +1 -1
- package/dist/StateMachine.js +38 -2
- package/dist/StateMachine.js.map +1 -1
- package/dist/actors/Human.d.ts.map +1 -1
- package/dist/actors/Human.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/notifications/NotifierFactory.d.ts +7 -0
- package/dist/notifications/NotifierFactory.d.ts.map +1 -0
- package/dist/notifications/NotifierFactory.js +16 -0
- package/dist/notifications/NotifierFactory.js.map +1 -0
- package/dist/scheduling/ConsumerFactory.d.ts.map +1 -1
- package/dist/scheduling/ConsumerFactory.js +30 -5
- package/dist/scheduling/ConsumerFactory.js.map +1 -1
- package/package.json +3 -3
package/dist/StateMachine.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/StateMachine.js
CHANGED
|
@@ -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
|
-
|
|
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");
|
package/dist/StateMachine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateMachine.js","sourceRoot":"","sources":["../src/StateMachine.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,KAAK,EAEL,YAAY,EACZ,GAAG,
|
|
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,
|
|
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"}
|
package/dist/actors/Human.js.map
CHANGED
|
@@ -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;
|
|
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";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"NotifierFactory.d.ts","sourceRoot":"","sources":["../../src/notifications/NotifierFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAUvC,QAAA,MAAM,eAAe;IAEjB,GAAG,WAAY,QAAQ,GAAG,SAAS,GAAI,IAAI;IAI3C,QAAQ,IAAK,QAAQ,GAAG,SAAS;CAIpC,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/* Unlike the other factories there is no local implementation to fall back on:
|
|
2
|
+
nothing sensible can be delivered from a laptop, so running outside a
|
|
3
|
+
platform yields undefined and a state machine simply doesn't notify. A host
|
|
4
|
+
that can deliver registers one during start-up, before any state machine is
|
|
5
|
+
constructed, and every machine built afterwards picks it up. */
|
|
6
|
+
let registered;
|
|
7
|
+
const NotifierFactory = {
|
|
8
|
+
use(notifier) {
|
|
9
|
+
registered = notifier;
|
|
10
|
+
},
|
|
11
|
+
instance() {
|
|
12
|
+
return registered;
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
export { NotifierFactory };
|
|
16
|
+
//# sourceMappingURL=NotifierFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotifierFactory.js","sourceRoot":"","sources":["../../src/notifications/NotifierFactory.ts"],"names":[],"mappings":"AAEA;;;;kEAIkE;AAElE,IAAI,UAAiC,CAAC;AAEtC,MAAM,eAAe,GAAG;IAEpB,GAAG,CAAC,QAA+B;QAC/B,UAAU,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED,QAAQ;QACJ,OAAO,UAAU,CAAC;IACtB,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;
|
|
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
|
-
|
|
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
|
-
|
|
10
|
-
|
|
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;
|
|
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.
|
|
3
|
+
"version": "1.25.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.
|
|
28
|
-
"anbaric-tsapi": "^1.
|
|
27
|
+
"anbaric-impl-cloud": "^1.25.0",
|
|
28
|
+
"anbaric-tsapi": "^1.25.0"
|
|
29
29
|
},
|
|
30
30
|
"files": [
|
|
31
31
|
"dist"
|