anbaric-tsapi 1.57.0 → 1.58.1

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 (40) hide show
  1. package/dist/api/actions/Action.d.ts +2 -3
  2. package/dist/api/actions/Action.d.ts.map +1 -1
  3. package/dist/api/actions/Action.js +2 -7
  4. package/dist/api/actions/Action.js.map +1 -1
  5. package/dist/api/actions/AgenticAction.d.ts +1 -1
  6. package/dist/api/actions/AgenticAction.d.ts.map +1 -1
  7. package/dist/api/actions/AgenticAction.js +1 -1
  8. package/dist/api/actions/AgenticAction.js.map +1 -1
  9. package/dist/api/actions/Await.d.ts +3 -5
  10. package/dist/api/actions/Await.d.ts.map +1 -1
  11. package/dist/api/actions/Await.js +3 -6
  12. package/dist/api/actions/Await.js.map +1 -1
  13. package/dist/api/cloud/WorkflowDefinition.js.map +1 -1
  14. package/dist/api/jobs/Job.d.ts +3 -2
  15. package/dist/api/jobs/Job.d.ts.map +1 -1
  16. package/dist/api/jobs/Job.js +5 -1
  17. package/dist/api/jobs/Job.js.map +1 -1
  18. package/dist/api/jobs/JobPersistence.d.ts.map +1 -1
  19. package/dist/api/jobs/JobPersistence.js +11 -4
  20. package/dist/api/jobs/JobPersistence.js.map +1 -1
  21. package/dist/api/jobs/JobProperties.d.ts +22 -0
  22. package/dist/api/jobs/JobProperties.d.ts.map +1 -0
  23. package/dist/api/jobs/JobProperties.js +87 -0
  24. package/dist/api/jobs/JobProperties.js.map +1 -0
  25. package/dist/api/jobs/JobSerialization.d.ts.map +1 -1
  26. package/dist/api/jobs/JobSerialization.js +3 -1
  27. package/dist/api/jobs/JobSerialization.js.map +1 -1
  28. package/dist/api/states/State.d.ts +2 -0
  29. package/dist/api/states/State.d.ts.map +1 -1
  30. package/dist/api/states/State.js +7 -0
  31. package/dist/api/states/State.js.map +1 -1
  32. package/dist/api/transitions/Transition.d.ts +2 -4
  33. package/dist/api/transitions/Transition.d.ts.map +1 -1
  34. package/dist/api/transitions/Transition.js +4 -8
  35. package/dist/api/transitions/Transition.js.map +1 -1
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +1 -0
  39. package/dist/index.js.map +1 -1
  40. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { Actor } from "../actors/Actor.js";
2
2
  import { Job } from "../jobs/Job.js";
3
- import { Reads } from "../jobs/Reads.js";
3
+ type CodePredicate = (job: Job) => boolean | Promise<boolean>;
4
4
  type CodeRun = (job: Job) => Promise<Map<string, any>>;
5
5
  declare class Action {
6
6
  readonly id: string;
@@ -8,8 +8,7 @@ declare class Action {
8
8
  description: string;
9
9
  actor: Actor;
10
10
  constructor(name: string, actor: Actor, description?: string, id?: string);
11
- reads: Reads;
12
- predicate: (_job: Job) => boolean;
11
+ predicate: CodePredicate;
13
12
  run: CodeRun;
14
13
  }
15
14
  export { Action };
@@ -1 +1 @@
1
- {"version":3,"file":"Action.d.ts","sourceRoot":"","sources":["../../../src/api/actions/Action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAC,GAAG,EAAC,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAEvC,KAAK,OAAO,GAAG,CAAC,GAAG,EAAG,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AAOxD,cAAM,MAAM;IAER,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAC;IACrB,IAAI,EAAG,MAAM,CAAC;IACd,WAAW,EAAG,MAAM,CAAC;IACrB,KAAK,EAAG,KAAK,CAAC;IAEd,YAAY,IAAI,EAAG,MAAM,EAAE,KAAK,EAAG,KAAK,EAAE,WAAW,GAAG,MAAW,EAAE,EAAE,GAAG,MAA4B,EAKrG;IAED,KAAK,EAAG,KAAK,CAAoB;IACjC,SAAS,SAAW,GAAG,aAAU;IACjC,GAAG,EAAG,OAAO,CAAmC;CAEnD;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
1
+ {"version":3,"file":"Action.d.ts","sourceRoot":"","sources":["../../../src/api/actions/Action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAC,GAAG,EAAC,MAAM,gBAAgB,CAAC;AAEnC,KAAK,aAAa,GAAG,CAAC,GAAG,EAAG,GAAG,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/D,KAAK,OAAO,GAAG,CAAC,GAAG,EAAG,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AAIxD,cAAM,MAAM;IAER,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAC;IACrB,IAAI,EAAG,MAAM,CAAC;IACd,WAAW,EAAG,MAAM,CAAC;IACrB,KAAK,EAAG,KAAK,CAAC;IAEd,YAAY,IAAI,EAAG,MAAM,EAAE,KAAK,EAAG,KAAK,EAAE,WAAW,GAAG,MAAW,EAAE,EAAE,GAAG,MAA4B,EAKrG;IAED,SAAS,EAAG,aAAa,CAAwB;IACjD,GAAG,EAAG,OAAO,CAAmC;CAEnD;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -1,9 +1,5 @@
1
- import { Reads } from "../jobs/Reads.js";
2
- /* A unit of work in a state. `reads` names the properties the action needs -
3
- given the machine's definitions, so it can be "everything" (the default),
4
- a fixed few, or whatever matches - and only those are loaded for the job
5
- before `predicate` and `run` see it. Declare it on any action that reads a
6
- little of a job that holds a lot. */
1
+ /* A unit of work in a state. The predicate may be asynchronous, since reading
2
+ a job's properties is. */
7
3
  class Action {
8
4
  id;
9
5
  name;
@@ -15,7 +11,6 @@ class Action {
15
11
  this.description = description;
16
12
  this.id = id;
17
13
  }
18
- reads = Reads.everything;
19
14
  predicate = (_job) => true;
20
15
  run = async (_job) => new Map();
21
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Action.js","sourceRoot":"","sources":["../../../src/api/actions/Action.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAIvC;;;;uCAIuC;AACvC,MAAM,MAAM;IAEC,EAAE,CAAU;IACrB,IAAI,CAAU;IACd,WAAW,CAAU;IACrB,KAAK,CAAS;IAEd,YAAY,IAAa,EAAE,KAAa,EAAE,WAAW,GAAY,EAAE,EAAE,EAAE,GAAY,MAAM,CAAC,UAAU,EAAE;QAClG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;IAED,KAAK,GAAW,KAAK,CAAC,UAAU,CAAC;IACjC,SAAS,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC;IACjC,GAAG,GAAa,KAAK,EAAE,IAAU,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;CAEnD;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
1
+ {"version":3,"file":"Action.js","sourceRoot":"","sources":["../../../src/api/actions/Action.ts"],"names":[],"mappings":"AAMA;4BAC4B;AAC5B,MAAM,MAAM;IAEC,EAAE,CAAU;IACrB,IAAI,CAAU;IACd,WAAW,CAAU;IACrB,KAAK,CAAS;IAEd,YAAY,IAAa,EAAE,KAAa,EAAE,WAAW,GAAY,EAAE,EAAE,EAAE,GAAY,MAAM,CAAC,UAAU,EAAE;QAClG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;IAED,SAAS,GAAmB,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC;IACjD,GAAG,GAAa,KAAK,EAAE,IAAU,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;CAEnD;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -5,7 +5,7 @@ import { Action } from "./Action.js";
5
5
  declare abstract class AgenticAction extends Action {
6
6
  protected agent: Agent;
7
7
  constructor(name: string, agent: Agent, description?: string, id?: string);
8
- protected abstract requestFor(job: Job): AgentRequest;
8
+ protected abstract requestFor(job: Job): AgentRequest | Promise<AgentRequest>;
9
9
  }
10
10
  export { AgenticAction };
11
11
  //# sourceMappingURL=AgenticAction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgenticAction.d.ts","sourceRoot":"","sources":["../../../src/api/actions/AgenticAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAC,YAAY,EAAC,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAC,GAAG,EAAC,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAKnC,uBAAe,aAAc,SAAQ,MAAM;IAEvC,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC;IAExB,YAAY,IAAI,EAAG,MAAM,EAAE,KAAK,EAAG,KAAK,EAAE,WAAW,GAAG,MAAW,EAAE,EAAE,CAAC,EAAG,MAAM,EAKhF;IAED,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAG,GAAG,GAAI,YAAY,CAAC;CAE3D;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"AgenticAction.d.ts","sourceRoot":"","sources":["../../../src/api/actions/AgenticAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAC,YAAY,EAAC,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAC,GAAG,EAAC,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAKnC,uBAAe,aAAc,SAAQ,MAAM;IAEvC,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC;IAExB,YAAY,IAAI,EAAG,MAAM,EAAE,KAAK,EAAG,KAAK,EAAE,WAAW,GAAG,MAAW,EAAE,EAAE,CAAC,EAAG,MAAM,EAKhF;IAED,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAG,GAAG,GAAI,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAEnF;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
@@ -7,7 +7,7 @@ class AgenticAction extends Action {
7
7
  constructor(name, agent, description = "", id) {
8
8
  super(name, agent, description, id);
9
9
  this.agent = agent;
10
- this.run = async (job) => new Map(Object.entries(await this.agent.client.generate(this.requestFor(job))));
10
+ this.run = async (job) => new Map(Object.entries(await this.agent.client.generate(await this.requestFor(job))));
11
11
  }
12
12
  }
13
13
  export { AgenticAction };
@@ -1 +1 @@
1
- {"version":3,"file":"AgenticAction.js","sourceRoot":"","sources":["../../../src/api/actions/AgenticAction.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAEnC;;8EAE8E;AAC9E,MAAe,aAAc,SAAQ,MAAM;IAE7B,KAAK,CAAS;IAExB,YAAY,IAAa,EAAE,KAAa,EAAE,WAAW,GAAY,EAAE,EAAE,EAAY;QAC7E,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE,GAAS,EAAE,EAAE,CAC3B,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;CAIJ;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"AgenticAction.js","sourceRoot":"","sources":["../../../src/api/actions/AgenticAction.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAEnC;;8EAE8E;AAC9E,MAAe,aAAc,SAAQ,MAAM;IAE7B,KAAK,CAAS;IAExB,YAAY,IAAa,EAAE,KAAa,EAAE,WAAW,GAAY,EAAE,EAAE,EAAY;QAC7E,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,KAAK,EAAE,GAAS,EAAE,EAAE,CAC3B,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;CAIJ;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
@@ -1,5 +1,4 @@
1
1
  import { Job } from "../jobs/Job.js";
2
- import { Reads } from "../jobs/Reads.js";
3
2
  import { AwaitParty, WaitForInput } from "./WaitForInput.js";
4
3
  declare class Await {
5
4
  readonly id: string;
@@ -7,12 +6,11 @@ declare class Await {
7
6
  description: string;
8
7
  waitingFor?: AwaitParty;
9
8
  fields: Array<string>;
10
- resolveUrl: string | ((job: Job) => string);
11
- metadata: (job: Job) => Map<string, any>;
9
+ resolveUrl: string | ((job: Job) => string | Promise<string>);
10
+ metadata: (job: Job) => Map<string, any> | Promise<Map<string, any>>;
12
11
  notify: Array<string>;
13
- reads: Reads;
14
12
  constructor(name: string, waitingFor?: AwaitParty, description?: string, id?: string, notify?: Array<string>);
15
- waitForInput(job: Job): WaitForInput;
13
+ waitForInput(job: Job): Promise<WaitForInput>;
16
14
  }
17
15
  export { Await };
18
16
  //# sourceMappingURL=Await.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Await.d.ts","sourceRoot":"","sources":["../../../src/api/actions/Await.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAe3D,cAAM,KAAK;IAEP,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAC;IACrB,IAAI,EAAG,MAAM,CAAC;IACd,WAAW,EAAG,MAAM,CAAC;IACrB,UAAU,CAAC,EAAG,UAAU,CAAC;IACzB,MAAM,EAAG,KAAK,CAAC,MAAM,CAAC,CAAM;IAC5B,UAAU,EAAG,MAAM,GAAG,CAAC,CAAC,GAAG,EAAG,GAAG,KAAK,MAAM,CAAC,CAAM;IACnD,QAAQ,EAAG,CAAC,GAAG,EAAG,GAAG,KAAK,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAA6B;IACvE,MAAM,EAAG,KAAK,CAAC,MAAM,CAAC,CAAM;IAE5B,KAAK,EAAG,KAAK,CAAoB;IAEjC,YAAY,IAAI,EAAG,MAAM,EAAE,UAAU,CAAC,EAAG,UAAU,EAAE,WAAW,GAAG,MAAW,EAClE,EAAE,GAAG,MAA4B,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAM,EAMzE;IAED,YAAY,CAAC,GAAG,EAAG,GAAG,GAAI,YAAY,CAGrC;CAEJ;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"Await.d.ts","sourceRoot":"","sources":["../../../src/api/actions/Await.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAe3D,cAAM,KAAK;IAEP,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAC;IACrB,IAAI,EAAG,MAAM,CAAC;IACd,WAAW,EAAG,MAAM,CAAC;IACrB,UAAU,CAAC,EAAG,UAAU,CAAC;IACzB,MAAM,EAAG,KAAK,CAAC,MAAM,CAAC,CAAM;IAC5B,UAAU,EAAG,MAAM,GAAG,CAAC,CAAC,GAAG,EAAG,GAAG,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM;IACrE,QAAQ,EAAG,CAAC,GAAG,EAAG,GAAG,KAAK,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA6B;IACnG,MAAM,EAAG,KAAK,CAAC,MAAM,CAAC,CAAM;IAE5B,YAAY,IAAI,EAAG,MAAM,EAAE,UAAU,CAAC,EAAG,UAAU,EAAE,WAAW,GAAG,MAAW,EAClE,EAAE,GAAG,MAA4B,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAM,EAMzE;IAEK,YAAY,CAAC,GAAG,EAAG,GAAG,GAAI,OAAO,CAAC,YAAY,CAAC,CAGpD;CAEJ;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -1,4 +1,3 @@
1
- import { Reads } from "../jobs/Reads.js";
2
1
  import { WaitForInput } from "./WaitForInput.js";
3
2
  /* A pause point in a state's action list. When a job reaches an Await it runs
4
3
  nothing: the job is parked in the "Awaiting input" status and is not
@@ -22,8 +21,6 @@ class Await {
22
21
  resolveUrl = "";
23
22
  metadata = (_job) => new Map();
24
23
  notify = [];
25
- // What resolveUrl and metadata read from the job; everything by default.
26
- reads = Reads.everything;
27
24
  constructor(name, waitingFor, description = "", id = crypto.randomUUID(), notify = []) {
28
25
  this.name = name;
29
26
  this.waitingFor = waitingFor;
@@ -31,9 +28,9 @@ class Await {
31
28
  this.id = id;
32
29
  this.notify = notify;
33
30
  }
34
- waitForInput(job) {
35
- const resolveUrl = typeof this.resolveUrl === "function" ? this.resolveUrl(job) : this.resolveUrl;
36
- return new WaitForInput(this.fields, resolveUrl, this.metadata(job), this.waitingFor);
31
+ async waitForInput(job) {
32
+ const resolveUrl = typeof this.resolveUrl === "function" ? await this.resolveUrl(job) : this.resolveUrl;
33
+ return new WaitForInput(this.fields, resolveUrl, await this.metadata(job), this.waitingFor);
37
34
  }
38
35
  }
39
36
  export { Await };
@@ -1 +1 @@
1
- {"version":3,"file":"Await.js","sourceRoot":"","sources":["../../../src/api/actions/Await.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAa,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAE3D;;;;;;;;;;;;iFAYiF;AACjF,MAAM,KAAK;IAEE,EAAE,CAAU;IACrB,IAAI,CAAU;IACd,WAAW,CAAU;IACrB,UAAU,CAAe;IACzB,MAAM,GAAmB,EAAE,CAAC;IAC5B,UAAU,GAAsC,EAAE,CAAC;IACnD,QAAQ,GAAqC,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;IACvE,MAAM,GAAmB,EAAE,CAAC;IAC5B,yEAAyE;IACzE,KAAK,GAAW,KAAK,CAAC,UAAU,CAAC;IAEjC,YAAY,IAAa,EAAE,UAAwB,EAAE,WAAW,GAAY,EAAE,EAClE,EAAE,GAAY,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,GAAmB,EAAE;QACtE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,YAAY,CAAC,GAAS;QAClB,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAClG,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1F,CAAC;CAEJ;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"Await.js","sourceRoot":"","sources":["../../../src/api/actions/Await.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAE3D;;;;;;;;;;;;iFAYiF;AACjF,MAAM,KAAK;IAEE,EAAE,CAAU;IACrB,IAAI,CAAU;IACd,WAAW,CAAU;IACrB,UAAU,CAAe;IACzB,MAAM,GAAmB,EAAE,CAAC;IAC5B,UAAU,GAAwD,EAAE,CAAC;IACrE,QAAQ,GAAiE,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;IACnG,MAAM,GAAmB,EAAE,CAAC;IAE5B,YAAY,IAAa,EAAE,UAAwB,EAAE,WAAW,GAAY,EAAE,EAClE,EAAE,GAAY,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,GAAmB,EAAE;QACtE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAS;QACxB,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QACxG,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAChG,CAAC;CAEJ;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowDefinition.js","sourceRoot":"","sources":["../../../src/api/cloud/WorkflowDefinition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowDefinition.js","sourceRoot":"","sources":["../../../src/api/cloud/WorkflowDefinition.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import { WaitForInput } from "../actions/WaitForInput.js";
2
+ import { JobProperties } from "./JobProperties.js";
2
3
  declare class Job {
3
4
  readonly appId?: string;
4
5
  readonly workflowId?: string;
5
6
  readonly id: string;
6
7
  readonly state: string;
7
- readonly properties: Map<string, any>;
8
+ readonly properties: JobProperties;
8
9
  readonly startedAt: Date;
9
10
  readonly startedBy: string;
10
11
  readonly lastUpdated: Date;
@@ -12,7 +13,7 @@ declare class Job {
12
13
  status: string;
13
14
  waitingFor?: string;
14
15
  awaitMetadata?: WaitForInput;
15
- constructor(id: string, properties: Map<string, any> | undefined, state: string, workflowId?: string, appId?: string, startedBy?: string, startedAt?: Date, lastUpdated?: Date, killed?: boolean, status?: string, awaitMetadata?: WaitForInput, waitingFor?: string);
16
+ constructor(id: string, properties: Map<string, any> | JobProperties | undefined, state: string, workflowId?: string, appId?: string, startedBy?: string, startedAt?: Date, lastUpdated?: Date, killed?: boolean, status?: string, awaitMetadata?: WaitForInput, waitingFor?: string);
16
17
  }
17
18
  declare namespace Job {
18
19
  const Status: {
@@ -1 +1 @@
1
- {"version":3,"file":"Job.d.ts","sourceRoot":"","sources":["../../../src/api/jobs/Job.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAExD,cAAM,GAAG;IAKL,QAAQ,CAAC,KAAK,CAAC,EAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAG,MAAM,CAAC;IAE9B,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEvC,QAAQ,CAAC,SAAS,EAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAG,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAG,OAAO,CAAC;IAO1B,MAAM,EAAG,MAAM,CAAC;IAChB,UAAU,CAAC,EAAG,MAAM,CAAC;IACrB,aAAa,CAAC,EAAG,YAAY,CAAC;IAE9B,YAAY,EAAE,EAAG,MAAM,EAAE,UAAU,EAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAG,MAAM,EAC3F,KAAK,CAAC,EAAG,MAAM,EAAE,SAAS,GAAG,MAAiB,EAAE,SAAS,GAAG,IAAiB,EAC7E,WAAW,GAAG,IAAgB,EAAE,MAAM,GAAG,OAAe,EACxD,MAAM,GAAG,MAA0B,EAAE,aAAa,CAAC,EAAG,YAAY,EAClE,UAAU,CAAC,EAAG,MAAM,EAc/B;CAEJ;AAED,kBAAU,GAAG,CAAC;IAEH,MAAM,MAAM;iBACf,MAAM,EAAE,QAAQ;iBAChB,cAAc,EAAE,gBAAgB;iBAChC,MAAM,EAAE,QAAQ;KACV,CAAC;CAEd;AAED,OAAO,EAAE,GAAG,EAAE,CAAA"}
1
+ {"version":3,"file":"Job.d.ts","sourceRoot":"","sources":["../../../src/api/jobs/Job.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAKjD,cAAM,GAAG;IAKL,QAAQ,CAAC,KAAK,CAAC,EAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAG,MAAM,CAAC;IAE9B,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAG,aAAa,CAAC;IAEpC,QAAQ,CAAC,SAAS,EAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAG,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAG,OAAO,CAAC;IAO1B,MAAM,EAAG,MAAM,CAAC;IAChB,UAAU,CAAC,EAAG,MAAM,CAAC;IACrB,aAAa,CAAC,EAAG,YAAY,CAAC;IAE9B,YAAY,EAAE,EAAG,MAAM,EAAE,UAAU,EAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,aAAa,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAG,MAAM,EAC3G,KAAK,CAAC,EAAG,MAAM,EAAE,SAAS,GAAG,MAAiB,EAAE,SAAS,GAAG,IAAiB,EAC7E,WAAW,GAAG,IAAgB,EAAE,MAAM,GAAG,OAAe,EACxD,MAAM,GAAG,MAA0B,EAAE,aAAa,CAAC,EAAG,YAAY,EAClE,UAAU,CAAC,EAAG,MAAM,EAc/B;CAEJ;AAED,kBAAU,GAAG,CAAC;IAEH,MAAM,MAAM;iBACf,MAAM,EAAE,QAAQ;iBAChB,cAAc,EAAE,gBAAgB;iBAChC,MAAM,EAAE,QAAQ;KACV,CAAC;CAEd;AAED,OAAO,EAAE,GAAG,EAAE,CAAA"}
@@ -1,3 +1,7 @@
1
+ import { JobProperties } from "./JobProperties.js";
2
+ /* One instance moving through a machine. Its properties are read on demand -
3
+ `await job.properties.get(key)` - so a job may hold a great deal without a
4
+ step paying for all of it; a Map given to the constructor is held whole. */
1
5
  class Job {
2
6
  // A workflow is identified by the composite (appId, workflowId): the app the
3
7
  // job's state machine was deployed in, and the machine's own id. appId is
@@ -21,7 +25,7 @@ class Job {
21
25
  awaitMetadata;
22
26
  constructor(id, properties = new Map(), state, workflowId, appId, startedBy = "system", startedAt = new Date(), lastUpdated = startedAt, killed = false, status = Job.Status.ACTIVE, awaitMetadata, waitingFor) {
23
27
  this.id = id;
24
- this.properties = properties;
28
+ this.properties = properties instanceof JobProperties ? properties : new JobProperties(properties);
25
29
  this.state = state;
26
30
  this.workflowId = workflowId;
27
31
  this.appId = appId;
@@ -1 +1 @@
1
- {"version":3,"file":"Job.js","sourceRoot":"","sources":["../../../src/api/jobs/Job.ts"],"names":[],"mappings":"AAEA,MAAM,GAAG;IAEL,6EAA6E;IAC7E,0EAA0E;IAC1E,2DAA2D;IAClD,KAAK,CAAW;IAChB,UAAU,CAAW;IAErB,EAAE,CAAU;IACZ,KAAK,CAAS;IACd,UAAU,CAAoB;IAE9B,SAAS,CAAQ;IACjB,SAAS,CAAU;IACnB,WAAW,CAAQ;IACnB,MAAM,CAAW;IAE1B,wEAAwE;IACxE,uEAAuE;IACvE,2EAA2E;IAC3E,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,CAAU;IAChB,UAAU,CAAW;IACrB,aAAa,CAAiB;IAE9B,YAAY,EAAW,EAAE,UAAU,GAAsB,IAAI,GAAG,EAAE,EAAE,KAAa,EAAE,UAAoB,EAC3F,KAAe,EAAE,SAAS,GAAY,QAAQ,EAAE,SAAS,GAAU,IAAI,IAAI,EAAE,EAC7E,WAAW,GAAU,SAAS,EAAE,MAAM,GAAa,KAAK,EACxD,MAAM,GAAY,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,aAA6B,EAClE,UAAoB;QAE5B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;CAEJ;AAED,WAAU,GAAG;IAEI,UAAM,GAAG;QAClB,MAAM,EAAE,QAAQ;QAChB,cAAc,EAAE,gBAAgB;QAChC,MAAM,EAAE,QAAQ;KACV,CAAC;AAEf,CAAC,EARS,GAAG,KAAH,GAAG,QAQZ;AAED,OAAO,EAAE,GAAG,EAAE,CAAA"}
1
+ {"version":3,"file":"Job.js","sourceRoot":"","sources":["../../../src/api/jobs/Job.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAEjD;;8EAE8E;AAC9E,MAAM,GAAG;IAEL,6EAA6E;IAC7E,0EAA0E;IAC1E,2DAA2D;IAClD,KAAK,CAAW;IAChB,UAAU,CAAW;IAErB,EAAE,CAAU;IACZ,KAAK,CAAS;IACd,UAAU,CAAiB;IAE3B,SAAS,CAAQ;IACjB,SAAS,CAAU;IACnB,WAAW,CAAQ;IACnB,MAAM,CAAW;IAE1B,wEAAwE;IACxE,uEAAuE;IACvE,2EAA2E;IAC3E,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,CAAU;IAChB,UAAU,CAAW;IACrB,aAAa,CAAiB;IAE9B,YAAY,EAAW,EAAE,UAAU,GAAsC,IAAI,GAAG,EAAE,EAAE,KAAa,EAAE,UAAoB,EAC3G,KAAe,EAAE,SAAS,GAAY,QAAQ,EAAE,SAAS,GAAU,IAAI,IAAI,EAAE,EAC7E,WAAW,GAAU,SAAS,EAAE,MAAM,GAAa,KAAK,EACxD,MAAM,GAAY,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,aAA6B,EAClE,UAAoB;QAE5B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,UAAU,GAAG,UAAU,YAAY,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC;QACnG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;CAEJ;AAED,WAAU,GAAG;IAEI,UAAM,GAAG;QAClB,MAAM,EAAE,QAAQ;QAChB,cAAc,EAAE,gBAAgB;QAChC,MAAM,EAAE,QAAQ;KACV,CAAC;AAEf,CAAC,EARS,GAAG,KAAH,GAAG,QAQZ;AAED,OAAO,EAAE,GAAG,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"JobPersistence.d.ts","sourceRoot":"","sources":["../../../src/api/jobs/JobPersistence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JobPersistence.d.ts","sourceRoot":"","sources":["../../../src/api/jobs/JobPersistence.ts"],"names":[],"mappings":"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"}
@@ -11,11 +11,14 @@ class JobPersistence {
11
11
  }
12
12
  async create(actor, job) {
13
13
  await this.auditor.audit(job.appId, "job", job.id, actor, [JobPersistence.Interaction.CREATE], "Job created", job);
14
- await this.saveInternal(job, job.properties);
14
+ await this.saveInternal(job, job.properties.snapshot());
15
+ job.properties.commit();
15
16
  }
16
17
  async save(actor, changeDescription, job, properties, state) {
18
+ // The old values are whatever the job holds: the audit sees the change
19
+ // against what the step read, without loading anything more.
17
20
  const change = {
18
- properties: properties ? this.generatePropertiesDiff(job.properties, properties) : undefined,
21
+ properties: properties ? this.generatePropertiesDiff(job.properties.snapshot(), properties) : undefined,
19
22
  state: state ? { from: job.state, to: state } : undefined
20
23
  };
21
24
  const interaction = [];
@@ -28,8 +31,12 @@ class JobPersistence {
28
31
  change.metadata = serializeWaitForInput(job.awaitMetadata);
29
32
  }
30
33
  await this.auditor.audit(job.appId, "job", job.id, actor, interaction, changeDescription, change);
31
- const updatedJob = new Job(job.id, properties ? this.updateProperties(job.properties, properties) : job.properties, state ? state : job.state, job.workflowId, job.appId, job.startedBy, job.startedAt, new Date(), job.killed, job.status, job.awaitMetadata, job.waitingFor);
32
- await this.saveInternal(updatedJob, properties);
34
+ for (const [key, value] of properties ?? [])
35
+ job.properties.set(key, value);
36
+ const updatedJob = new Job(job.id, job.properties, state ? state : job.state, job.workflowId, job.appId, job.startedBy, job.startedAt, new Date(), job.killed, job.status, job.awaitMetadata, job.waitingFor);
37
+ const changed = job.properties.changed();
38
+ await this.saveInternal(updatedJob, changed.size > 0 ? changed : undefined);
39
+ job.properties.commit();
33
40
  }
34
41
  async kill(id, actor) {
35
42
  await this.auditor.audit(currentAppId(), "job", id, actor, [JobPersistence.Interaction.KILL], "Job killed", null);
@@ -1 +1 @@
1
- {"version":3,"file":"JobPersistence.js","sourceRoot":"","sources":["../../../src/api/jobs/JobPersistence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JobPersistence.js","sourceRoot":"","sources":["../../../src/api/jobs/JobPersistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ type PropertyLoader = (keys?: Array<string>) => Promise<Map<string, any>>;
2
+ declare class JobProperties {
3
+ private loader?;
4
+ private loaded;
5
+ private absent;
6
+ private staged;
7
+ private complete;
8
+ constructor(initial?: Map<string, any> | Record<string, any>, loader?: PropertyLoader | undefined, complete?: boolean);
9
+ get(key: string): Promise<any>;
10
+ has(key: string): Promise<boolean>;
11
+ getMany(keys: Array<string>): Promise<Map<string, any>>;
12
+ prewarm(keys?: Array<string>): Promise<void>;
13
+ set(key: string, value: any): void;
14
+ changed(): Map<string, any>;
15
+ commit(): void;
16
+ toMap(): Promise<Map<string, any>>;
17
+ snapshot(): Map<string, any>;
18
+ get isComplete(): boolean;
19
+ }
20
+ export { JobProperties };
21
+ export type { PropertyLoader };
22
+ //# sourceMappingURL=JobProperties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JobProperties.d.ts","sourceRoot":"","sources":["../../../src/api/jobs/JobProperties.ts"],"names":[],"mappings":"AAGA,KAAK,cAAc,GAAG,CAAC,IAAI,CAAC,EAAG,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AAU3E,cAAM,aAAa;IAO2D,OAAO,CAAC,MAAM,CAAC;IALzF,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,QAAQ,CAAW;IAE3B,YAAY,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAa,EAAU,MAAM,CAAC,EAAG,cAAc,YAAA,EAC9F,QAAQ,GAAG,OAA8B,EAGpD;IAEK,GAAG,CAAC,GAAG,EAAG,MAAM,GAAI,OAAO,CAAC,GAAG,CAAC,CAIrC;IAEK,GAAG,CAAC,GAAG,EAAG,MAAM,GAAI,OAAO,CAAC,OAAO,CAAC,CAEzC;IAEK,OAAO,CAAC,IAAI,EAAG,KAAK,CAAC,MAAM,CAAC,GAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAI9D;IAIK,OAAO,CAAC,IAAI,CAAC,EAAG,KAAK,CAAC,MAAM,CAAC,GAAI,OAAO,CAAC,IAAI,CAAC,CAkBnD;IAED,GAAG,CAAC,GAAG,EAAG,MAAM,EAAE,KAAK,EAAG,GAAG,GAAI,IAAI,CAEpC;IAGD,OAAO,IAAK,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAE3B;IAGD,MAAM,IAAK,IAAI,CAMd;IAGK,KAAK,IAAK,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAGxC;IAGD,QAAQ,IAAK,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAE5B;IAED,IAAI,UAAU,IAAK,OAAO,CAEzB;CAEJ;AAED,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,87 @@
1
+ /* A job's properties, read on demand. What a step reads is fetched when it is
2
+ first asked for and kept; what a state prewarms is fetched up front in one
3
+ go; nothing else is ever loaded. Writes are staged and become the job's
4
+ next save - the changed properties and only those.
5
+
6
+ The reads are asynchronous because that is what makes the laziness safe:
7
+ nothing a step asks for can come back missing just because it was not
8
+ declared ahead of time. */
9
+ class JobProperties {
10
+ loader;
11
+ loaded = new Map();
12
+ absent = new Set();
13
+ staged = new Map();
14
+ complete;
15
+ constructor(initial = new Map(), loader, complete = loader === undefined) {
16
+ this.loader = loader;
17
+ this.loaded = initial instanceof Map ? new Map(initial) : new Map(Object.entries(initial));
18
+ this.complete = complete;
19
+ }
20
+ async get(key) {
21
+ if (this.staged.has(key))
22
+ return this.staged.get(key);
23
+ if (!this.loaded.has(key) && !this.absent.has(key) && !this.complete)
24
+ await this.prewarm([key]);
25
+ return this.loaded.get(key);
26
+ }
27
+ async has(key) {
28
+ return this.staged.has(key) || (await this.get(key)) !== undefined || this.loaded.has(key);
29
+ }
30
+ async getMany(keys) {
31
+ await this.prewarm(keys);
32
+ return new Map(keys.filter(key => this.staged.has(key) || this.loaded.has(key))
33
+ .map(key => [key, this.staged.has(key) ? this.staged.get(key) : this.loaded.get(key)]));
34
+ }
35
+ /* Fetches, in one call, the keys not yet held - or everything, given no
36
+ keys. A second call for the same keys costs nothing. */
37
+ async prewarm(keys) {
38
+ if (this.complete || !this.loader)
39
+ return;
40
+ if (keys === undefined) {
41
+ for (const [key, value] of await this.loader())
42
+ this.loaded.set(key, value);
43
+ this.absent.clear();
44
+ this.complete = true;
45
+ return;
46
+ }
47
+ const missing = keys.filter(key => !this.loaded.has(key) && !this.absent.has(key));
48
+ if (missing.length === 0)
49
+ return;
50
+ const found = await this.loader(missing);
51
+ for (const key of missing) {
52
+ if (found.has(key))
53
+ this.loaded.set(key, found.get(key));
54
+ else
55
+ this.absent.add(key);
56
+ }
57
+ }
58
+ set(key, value) {
59
+ this.staged.set(key, value);
60
+ }
61
+ // The writes since the last commit: what a save writes, and only that.
62
+ changed() {
63
+ return new Map(this.staged);
64
+ }
65
+ // The staged writes are now stored; they read back as loaded values.
66
+ commit() {
67
+ for (const [key, value] of this.staged) {
68
+ this.loaded.set(key, value);
69
+ this.absent.delete(key);
70
+ }
71
+ this.staged.clear();
72
+ }
73
+ // Every property, loading whatever is not yet held.
74
+ async toMap() {
75
+ await this.prewarm();
76
+ return this.snapshot();
77
+ }
78
+ // What is held right now - loaded plus staged - without loading anything.
79
+ snapshot() {
80
+ return new Map([...this.loaded, ...this.staged]);
81
+ }
82
+ get isComplete() {
83
+ return this.complete;
84
+ }
85
+ }
86
+ export { JobProperties };
87
+ //# sourceMappingURL=JobProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JobProperties.js","sourceRoot":"","sources":["../../../src/api/jobs/JobProperties.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"JobSerialization.d.ts","sourceRoot":"","sources":["../../../src/api/jobs/JobSerialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAC,sBAAsB,EAAiD,MAAM,4BAA4B,CAAC;AAElH,KAAK,aAAa,GAAG;IACjB,EAAE,EAAG,MAAM,CAAC;IACZ,KAAK,EAAG,MAAM,CAAC;IACf,UAAU,EAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,UAAU,CAAC,EAAG,MAAM,CAAC;IACrB,KAAK,CAAC,EAAG,MAAM,CAAC;IAChB,SAAS,CAAC,EAAG,MAAM,CAAC;IACpB,SAAS,CAAC,EAAG,MAAM,CAAC;IACpB,WAAW,CAAC,EAAG,MAAM,CAAC;IACtB,MAAM,CAAC,EAAG,OAAO,CAAC;IAClB,MAAM,CAAC,EAAG,MAAM,CAAC;IACjB,UAAU,CAAC,EAAG,MAAM,CAAC;IACrB,aAAa,CAAC,EAAG,sBAAsB,CAAC;CAC3C,CAAC;AAEF,QAAA,MAAM,YAAY,QAAU,GAAG,KAAI,aAajC,CAAC;AAEH,QAAA,MAAM,cAAc,eAAiB,aAAa,KAAI,GAQrD,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;AACxC,YAAY,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"JobSerialization.d.ts","sourceRoot":"","sources":["../../../src/api/jobs/JobSerialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAC,sBAAsB,EAAiD,MAAM,4BAA4B,CAAC;AAElH,KAAK,aAAa,GAAG;IACjB,EAAE,EAAG,MAAM,CAAC;IACZ,KAAK,EAAG,MAAM,CAAC;IACf,UAAU,EAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,UAAU,CAAC,EAAG,MAAM,CAAC;IACrB,KAAK,CAAC,EAAG,MAAM,CAAC;IAChB,SAAS,CAAC,EAAG,MAAM,CAAC;IACpB,SAAS,CAAC,EAAG,MAAM,CAAC;IACpB,WAAW,CAAC,EAAG,MAAM,CAAC;IACtB,MAAM,CAAC,EAAG,OAAO,CAAC;IAClB,MAAM,CAAC,EAAG,MAAM,CAAC;IACjB,UAAU,CAAC,EAAG,MAAM,CAAC;IACrB,aAAa,CAAC,EAAG,sBAAsB,CAAC;CAC3C,CAAC;AAIF,QAAA,MAAM,YAAY,QAAU,GAAG,KAAI,aAajC,CAAC;AAEH,QAAA,MAAM,cAAc,eAAiB,aAAa,KAAI,GAQrD,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;AACxC,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import { Job } from "./Job.js";
2
2
  import { serializeWaitForInput, deserializeWaitForInput } from "../actions/WaitForInput.js";
3
+ // Carries the properties the job holds right now - all of them for a job read
4
+ // whole, the loaded ones for a job read on demand.
3
5
  const serializeJob = (job) => ({
4
6
  id: job.id,
5
7
  state: job.state,
6
- properties: Object.fromEntries(job.properties),
8
+ properties: Object.fromEntries(job.properties.snapshot()),
7
9
  workflowId: job.workflowId,
8
10
  appId: job.appId,
9
11
  startedAt: job.startedAt.toISOString(),
@@ -1 +1 @@
1
- {"version":3,"file":"JobSerialization.js","sourceRoot":"","sources":["../../../src/api/jobs/JobSerialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAyB,qBAAqB,EAAE,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AAiBlH,MAAM,YAAY,GAAG,CAAC,GAAS,EAAkB,EAAE,CAAC,CAAC;IACjD,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,KAAK,EAAE,GAAG,CAAC,KAAK;IAChB,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;IAC9C,UAAU,EAAE,GAAG,CAAC,UAAU;IAC1B,KAAK,EAAE,GAAG,CAAC,KAAK;IAChB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE;IACtC,SAAS,EAAE,GAAG,CAAC,SAAS;IACxB,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE;IAC1C,MAAM,EAAE,GAAG,CAAC,MAAM;IAClB,MAAM,EAAE,GAAG,CAAC,MAAM;IAClB,UAAU,EAAE,GAAG,CAAC,UAAU;IAC1B,aAAa,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;CAC1F,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,UAA0B,EAAQ,EAAE;IACxD,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACrF,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,EAC1F,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,SAAS,IAAI,QAAQ,EAAE,SAAS,EACpF,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,IAAI,KAAK,EACjG,UAAU,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,EACtC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,uBAAuB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,EACxF,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"JobSerialization.js","sourceRoot":"","sources":["../../../src/api/jobs/JobSerialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAyB,qBAAqB,EAAE,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AAiBlH,8EAA8E;AAC9E,mDAAmD;AACnD,MAAM,YAAY,GAAG,CAAC,GAAS,EAAkB,EAAE,CAAC,CAAC;IACjD,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,KAAK,EAAE,GAAG,CAAC,KAAK;IAChB,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACzD,UAAU,EAAE,GAAG,CAAC,UAAU;IAC1B,KAAK,EAAE,GAAG,CAAC,KAAK;IAChB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE;IACtC,SAAS,EAAE,GAAG,CAAC,SAAS;IACxB,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE;IAC1C,MAAM,EAAE,GAAG,CAAC,MAAM;IAClB,MAAM,EAAE,GAAG,CAAC,MAAM;IAClB,UAAU,EAAE,GAAG,CAAC,UAAU;IAC1B,aAAa,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;CAC1F,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,UAA0B,EAAQ,EAAE;IACxD,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACrF,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,EAC1F,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,SAAS,IAAI,QAAQ,EAAE,SAAS,EACpF,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,IAAI,KAAK,EACjG,UAAU,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,EACtC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,uBAAuB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,EACxF,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC"}
@@ -1,11 +1,13 @@
1
1
  import { Action } from "../actions/Action.js";
2
2
  import { Await } from "../actions/Await.js";
3
+ import { Reads } from "../jobs/Reads.js";
3
4
  import { Transition } from "../transitions/Transition.js";
4
5
  declare class State {
5
6
  readonly id: string;
6
7
  actions: Array<Action | Await>;
7
8
  transitions: Array<Transition>;
8
9
  readonly isTerminal: boolean;
10
+ prewarm: Reads;
9
11
  constructor(id: string, actions?: Array<Action | Await>, transitions?: Array<Transition>, isTerminal?: boolean);
10
12
  subscribe(action: Action | Await): void;
11
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../src/api/states/State.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAC,UAAU,EAAC,MAAM,8BAA8B,CAAC;AAExD,cAAM,KAAK;IAEP,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAC;IACrB,OAAO,EAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAChC,WAAW,EAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAG,OAAO,CAAC;IAE9B,YAAY,EAAE,EAAG,MAAM,EAAE,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAM,EAAE,WAAW,GAAG,KAAK,CAAC,UAAU,CAAM,EAAE,UAAU,GAAG,OAAe,EAKhI;IAED,SAAS,CAAC,MAAM,EAAG,MAAM,GAAG,KAAK,GAAI,IAAI,CAExC;CAEJ;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../src/api/states/State.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,8BAA8B,CAAC;AAOxD,cAAM,KAAK;IAEP,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAC;IACrB,OAAO,EAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAChC,WAAW,EAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAG,OAAO,CAAC;IAC9B,OAAO,EAAG,KAAK,CAAoB;IAEnC,YAAY,EAAE,EAAG,MAAM,EAAE,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAM,EAAE,WAAW,GAAG,KAAK,CAAC,UAAU,CAAM,EAAE,UAAU,GAAG,OAAe,EAKhI;IAED,SAAS,CAAC,MAAM,EAAG,MAAM,GAAG,KAAK,GAAI,IAAI,CAExC;CAEJ;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -1,8 +1,15 @@
1
+ import { Reads } from "../jobs/Reads.js";
2
+ /* A state: its actions run in order, then the first transition whose guard
3
+ holds moves the job on. `prewarm` names the properties to load before the
4
+ pass, in one fetch - everything by default; a state that needs a little of a
5
+ job that holds a lot narrows it, and anything it missed still loads on
6
+ demand. */
1
7
  class State {
2
8
  id;
3
9
  actions;
4
10
  transitions;
5
11
  isTerminal;
12
+ prewarm = Reads.everything;
6
13
  constructor(id, actions = [], transitions = [], isTerminal = false) {
7
14
  this.id = id;
8
15
  this.actions = actions;
@@ -1 +1 @@
1
- {"version":3,"file":"State.js","sourceRoot":"","sources":["../../../src/api/states/State.ts"],"names":[],"mappings":"AAIA,MAAM,KAAK;IAEE,EAAE,CAAU;IACrB,OAAO,CAAyB;IAChC,WAAW,CAAqB;IACvB,UAAU,CAAW;IAE9B,YAAY,EAAW,EAAE,OAAO,GAA2B,EAAE,EAAE,WAAW,GAAuB,EAAE,EAAE,UAAU,GAAa,KAAK;QAC7H,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAED,SAAS,CAAC,MAAuB;QAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CAEJ;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"State.js","sourceRoot":"","sources":["../../../src/api/states/State.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAGvC;;;;aAIa;AACb,MAAM,KAAK;IAEE,EAAE,CAAU;IACrB,OAAO,CAAyB;IAChC,WAAW,CAAqB;IACvB,UAAU,CAAW;IAC9B,OAAO,GAAW,KAAK,CAAC,UAAU,CAAC;IAEnC,YAAY,EAAW,EAAE,OAAO,GAA2B,EAAE,EAAE,WAAW,GAAuB,EAAE,EAAE,UAAU,GAAa,KAAK;QAC7H,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAED,SAAS,CAAC,MAAuB;QAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CAEJ;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -1,10 +1,8 @@
1
1
  import { Job } from "../jobs/Job.js";
2
- import { Reads } from "../jobs/Reads.js";
3
2
  declare class Transition {
4
3
  to: string;
5
- predicate: (job: Job) => boolean;
6
- reads: Reads;
7
- constructor(to: string, predicate?: (job: Job) => boolean, reads?: Reads);
4
+ predicate: (job: Job) => boolean | Promise<boolean>;
5
+ constructor(to: string, predicate?: (job: Job) => boolean | Promise<boolean>);
8
6
  }
9
7
  export { Transition };
10
8
  //# sourceMappingURL=Transition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Transition.d.ts","sourceRoot":"","sources":["../../../src/api/transitions/Transition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAQvC,cAAM,UAAU;IAEZ,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;IACjC,KAAK,EAAG,KAAK,CAAC;IAEd,YAAY,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAG,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,EAAE,KAAK,CAAC,EAAG,KAAK,EAIzE;CAEJ;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"Transition.d.ts","sourceRoot":"","sources":["../../../src/api/transitions/Transition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,gBAAgB,CAAC;AAOnC,cAAM,UAAU;IAEZ,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpD,YAAY,EAAE,EAAE,MAAM,EAAE,SAAS,GAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAc,EAGvF;CAEJ;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -1,18 +1,14 @@
1
- import { Reads } from "../jobs/Reads.js";
2
1
  /* A move to another state, taken by the first transition whose predicate holds.
3
2
  The predicate is optional: a transition with no guard always fires, which is
4
3
  what you want when a state's actions simply run and the job moves on. Guard
5
- it only when the move is conditional. `reads` names the properties the
6
- predicate looks at, everything by default; an unguarded transition reads
7
- nothing. */
4
+ it only when the move is conditional. The guard may be asynchronous, since
5
+ reading a job's properties is. */
8
6
  class Transition {
9
7
  to;
10
8
  predicate;
11
- reads;
12
- constructor(to, predicate, reads) {
9
+ constructor(to, predicate = () => true) {
13
10
  this.to = to;
14
- this.predicate = predicate ?? (() => true);
15
- this.reads = reads ?? (predicate ? Reads.everything : Reads.nothing);
11
+ this.predicate = predicate;
16
12
  }
17
13
  }
18
14
  export { Transition };
@@ -1 +1 @@
1
- {"version":3,"file":"Transition.js","sourceRoot":"","sources":["../../../src/api/transitions/Transition.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAEvC;;;;;cAKc;AACd,MAAM,UAAU;IAEZ,EAAE,CAAS;IACX,SAAS,CAAwB;IACjC,KAAK,CAAS;IAEd,YAAY,EAAU,EAAE,SAAkC,EAAE,KAAc;QACtE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC;CAEJ;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"Transition.js","sourceRoot":"","sources":["../../../src/api/transitions/Transition.ts"],"names":[],"mappings":"AAEA;;;;oCAIoC;AACpC,MAAM,UAAU;IAEZ,EAAE,CAAS;IACX,SAAS,CAA2C;IAEpD,YAAY,EAAU,EAAE,SAAS,GAA6C,GAAG,EAAE,CAAC,IAAI;QACpF,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;CAEJ;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from "./api/jobs/Job.js";
2
2
  export * from "./api/jobs/JobPersistence.js";
3
3
  export * from "./api/jobs/JobSerialization.js";
4
4
  export * from "./api/jobs/PropertyDefinition.js";
5
+ export * from "./api/jobs/JobProperties.js";
5
6
  export * from "./api/jobs/Reads.js";
6
7
  export * from "./api/states/State.js";
7
8
  export * from "./api/states/Terminal.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,kCAAkC,CAAA;AAChD,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qCAAqC,CAAA;AACnD,cAAc,qCAAqC,CAAA;AACnD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oCAAoC,CAAA;AAClD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kDAAkD,CAAA;AAChE,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,kCAAkC,CAAA;AAChD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qCAAqC,CAAA;AACnD,cAAc,qCAAqC,CAAA;AACnD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oCAAoC,CAAA;AAClD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kDAAkD,CAAA;AAChE,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA"}
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@ export * from "./api/jobs/Job.js";
2
2
  export * from "./api/jobs/JobPersistence.js";
3
3
  export * from "./api/jobs/JobSerialization.js";
4
4
  export * from "./api/jobs/PropertyDefinition.js";
5
+ export * from "./api/jobs/JobProperties.js";
5
6
  export * from "./api/jobs/Reads.js";
6
7
  export * from "./api/states/State.js";
7
8
  export * from "./api/states/Terminal.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,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,kCAAkC,CAAA;AAChD,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qCAAqC,CAAA;AACnD,cAAc,qCAAqC,CAAA;AACnD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oCAAoC,CAAA;AAClD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kDAAkD,CAAA;AAChE,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,kCAAkC,CAAA;AAChD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qCAAqC,CAAA;AACnD,cAAc,qCAAqC,CAAA;AACnD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oCAAoC,CAAA;AAClD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kDAAkD,CAAA;AAChE,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "anbaric-tsapi",
3
- "version": "1.57.0",
3
+ "version": "1.58.1",
4
4
  "description": "These are the shared libraries - types, classes, etc - that both the public state-machine and hosting services share",
5
5
  "license": "MIT",
6
6
  "author": "chris@anbaric.ai",