anbaric-tsapi 1.56.9 → 1.58.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.
Files changed (45) hide show
  1. package/dist/api/actions/Action.d.ts +2 -1
  2. package/dist/api/actions/Action.d.ts.map +1 -1
  3. package/dist/api/actions/Action.js +2 -0
  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 -3
  10. package/dist/api/actions/Await.d.ts.map +1 -1
  11. package/dist/api/actions/Await.js +3 -3
  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 +3 -3
  19. package/dist/api/jobs/JobPersistence.d.ts.map +1 -1
  20. package/dist/api/jobs/JobPersistence.js +17 -6
  21. package/dist/api/jobs/JobPersistence.js.map +1 -1
  22. package/dist/api/jobs/JobProperties.d.ts +22 -0
  23. package/dist/api/jobs/JobProperties.d.ts.map +1 -0
  24. package/dist/api/jobs/JobProperties.js +87 -0
  25. package/dist/api/jobs/JobProperties.js.map +1 -0
  26. package/dist/api/jobs/JobSerialization.d.ts.map +1 -1
  27. package/dist/api/jobs/JobSerialization.js +3 -1
  28. package/dist/api/jobs/JobSerialization.js.map +1 -1
  29. package/dist/api/jobs/Reads.d.ts +10 -0
  30. package/dist/api/jobs/Reads.d.ts.map +1 -0
  31. package/dist/api/jobs/Reads.js +9 -0
  32. package/dist/api/jobs/Reads.js.map +1 -0
  33. package/dist/api/states/State.d.ts +2 -0
  34. package/dist/api/states/State.d.ts.map +1 -1
  35. package/dist/api/states/State.js +7 -0
  36. package/dist/api/states/State.js.map +1 -1
  37. package/dist/api/transitions/Transition.d.ts +2 -2
  38. package/dist/api/transitions/Transition.d.ts.map +1 -1
  39. package/dist/api/transitions/Transition.js +2 -1
  40. package/dist/api/transitions/Transition.js.map +1 -1
  41. package/dist/index.d.ts +2 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +2 -0
  44. package/dist/index.js.map +1 -1
  45. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import { Actor } from "../actors/Actor.js";
2
2
  import { Job } from "../jobs/Job.js";
3
+ type CodePredicate = (job: Job) => boolean | Promise<boolean>;
3
4
  type CodeRun = (job: Job) => Promise<Map<string, any>>;
4
5
  declare class Action {
5
6
  readonly id: string;
@@ -7,7 +8,7 @@ declare class Action {
7
8
  description: string;
8
9
  actor: Actor;
9
10
  constructor(name: string, actor: Actor, description?: string, id?: string);
10
- predicate: (_job: Job) => boolean;
11
+ predicate: CodePredicate;
11
12
  run: CodeRun;
12
13
  }
13
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;AAEnC,KAAK,OAAO,GAAG,CAAC,GAAG,EAAG,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AAExD,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,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,3 +1,5 @@
1
+ /* A unit of work in a state. The predicate may be asynchronous, since reading
2
+ a job's properties is. */
1
3
  class Action {
2
4
  id;
3
5
  name;
@@ -1 +1 @@
1
- {"version":3,"file":"Action.js","sourceRoot":"","sources":["../../../src/api/actions/Action.ts"],"names":[],"mappings":"AAKA,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,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"}
@@ -6,11 +6,11 @@ declare class Await {
6
6
  description: string;
7
7
  waitingFor?: AwaitParty;
8
8
  fields: Array<string>;
9
- resolveUrl: string | ((job: Job) => string);
10
- 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>>;
11
11
  notify: Array<string>;
12
12
  constructor(name: string, waitingFor?: AwaitParty, description?: string, id?: string, notify?: Array<string>);
13
- waitForInput(job: Job): WaitForInput;
13
+ waitForInput(job: Job): Promise<WaitForInput>;
14
14
  }
15
15
  export { Await };
16
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,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,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"}
@@ -28,9 +28,9 @@ class Await {
28
28
  this.id = id;
29
29
  this.notify = notify;
30
30
  }
31
- waitForInput(job) {
32
- const resolveUrl = typeof this.resolveUrl === "function" ? this.resolveUrl(job) : this.resolveUrl;
33
- 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);
34
34
  }
35
35
  }
36
36
  export { Await };
@@ -1 +1 @@
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,GAAsC,EAAE,CAAC;IACnD,QAAQ,GAAqC,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;IACvE,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,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"}
@@ -11,11 +11,11 @@ declare abstract class JobPersistence {
11
11
  countByState(actor: Actor): Promise<Array<JobPersistence.StateCount>>;
12
12
  private generatePropertiesDiff;
13
13
  private updateProperties;
14
- retrieve(id: string, actor: Actor): Promise<Job>;
14
+ retrieve(id: string, actor: Actor, keys?: Array<string>): Promise<Job>;
15
15
  delete(id: string, actor: Actor): Promise<void>;
16
16
  list(actor: Actor, pageSize?: number, page?: number, query?: JobPersistence.Query): Promise<Array<Job>>;
17
- protected abstract saveInternal(job: Job): Promise<void>;
18
- protected abstract retrieveInternal(id: string): Promise<Job>;
17
+ protected abstract saveInternal(job: Job, properties?: Map<string, any>): Promise<void>;
18
+ protected abstract retrieveInternal(id: string, keys?: Array<string>): Promise<Job>;
19
19
  protected abstract deleteInternal(id: string): Promise<void>;
20
20
  protected abstract listInternal(pageSize?: number, page?: number, query?: JobPersistence.Query): Promise<Array<Job>>;
21
21
  protected abstract killInternal(id: string): Promise<void>;
@@ -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
- this.saveInternal(job);
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
- this.saveInternal(updatedJob);
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);
@@ -57,9 +64,13 @@ class JobPersistence {
57
64
  }
58
65
  return updated;
59
66
  }
60
- async retrieve(id, actor) {
67
+ /* The job, with either every property or only the `keys` asked for. A job
68
+ is read with the keys its next step declares it reads, so a job holding
69
+ a great deal of data costs a step only what that step needs. A property
70
+ that was not asked for is simply absent from the map. */
71
+ async retrieve(id, actor, keys) {
61
72
  await this.auditor.audit(currentAppId(), "job", id, actor, [JobPersistence.Interaction.READ], "", null);
62
- return this.retrieveInternal(id);
73
+ return this.retrieveInternal(id, keys);
63
74
  }
64
75
  async delete(id, actor) {
65
76
  await this.auditor.audit(currentAppId(), "job", id, actor, [JobPersistence.Interaction.DELETE], "", null);
@@ -1 +1 @@
1
- {"version":3,"file":"JobPersistence.js","sourceRoot":"","sources":["../../../src/api/jobs/JobPersistence.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAElD;;sDAEsD;AACtD,MAAe,cAAc;IAEH,OAAO;IAA7B,YAAsB,OAAiB;uBAAjB,OAAO;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EACf,GAAS;QAEhB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QAEnH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa,EACb,iBAA0B,EAC1B,GAAS,EACT,UAA8B,EAC9B,KAAe;QAEtB,MAAM,MAAM,GAA0E;YAClF,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;YAC5F,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAC,IAAI,EAAG,GAAG,CAAC,KAAK,EAAE,EAAE,EAAG,KAAK,EAAC,CAAC,CAAC,CAAC,SAAS;SAC5D,CAAA;QAED,MAAM,WAAW,GAAmB,EAAE,CAAC;QACvC,IAAI,UAAU;YAAE,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAC/E,IAAI,KAAK;YAAE,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACrE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;YAChE,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,CAAC,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAElG,MAAM,UAAU,GAAG,IAAI,GAAG,CACtB,GAAG,CAAC,EAAE,EACN,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAC/E,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EACzB,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,SAAS,EACb,IAAI,IAAI,EAAE,EACV,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,aAAa,EACjB,GAAG,CAAC,UAAU,CACjB,CAAA;QAED,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAW,EAAE,KAAa;QACjC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QAClH,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,iBAAwB,EAAE,KAAa;QACvD,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,EACzF,0BAA0B,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa;QAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACzG,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACvC,CAAC;IAEO,sBAAsB,CAAC,UAA6B,EAAE,UAA6B;QACvF,MAAM,IAAI,GAAyC,IAAI,GAAG,EAAE,CAAC;QAE7D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,gBAAgB,CAAC,UAA6B,EAAE,UAA6B;QACjF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QACpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAW,EAAE,KAAa;QACrC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACxG,OAAO,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAW,EAAE,KAAa;QACnC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1G,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED;;;;sEAIkE;IAClE,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,QAAkB,EAAE,IAAc,EAAE,KAA6B;QACvF,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACzG,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;CAUJ;AAED,WAAU,cAAc;IAapB,IAAY,WASX;IATD,WAAY,WAAW;QACnB,gCAAiB,CAAA;QACjB,sDAAuC,CAAA;QACvC,4CAA6B,CAAA;QAC7B,8BAAe,CAAA;QACf,gCAAiB,CAAA;QACjB,4BAAa,CAAA;QACb,4BAAa,CAAA;QACb,4BAAa,CAAA;IACjB,CAAC,EATW,WAAW,GAAX,eAAA,WAAW,KAAX,eAAA,WAAW,QAStB;AAQL,CAAC,EA9BS,cAAc,KAAd,cAAc,QA8BvB;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
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"}
@@ -0,0 +1,10 @@
1
+ import { PropertyDefinition } from "./PropertyDefinition.js";
2
+ type Reads = (definitions: Array<PropertyDefinition>) => Array<string>;
3
+ declare namespace Reads {
4
+ const everything: Reads;
5
+ const nothing: Reads;
6
+ const only: (...keys: Array<string>) => Reads;
7
+ const where: (predicate: (definition: PropertyDefinition) => boolean) => Reads;
8
+ }
9
+ export { Reads };
10
+ //# sourceMappingURL=Reads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reads.d.ts","sourceRoot":"","sources":["../../../src/api/jobs/Reads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAO3D,KAAK,KAAK,GAAG,CAAC,WAAW,EAAG,KAAK,CAAC,kBAAkB,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;AAExE,kBAAU,KAAK,CAAC;IAEL,MAAM,UAAU,EAAG,KAAmE,CAAC;IAEvF,MAAM,OAAO,EAAG,KAAgB,CAAC;IAEjC,MAAM,IAAI,YAAc,KAAK,CAAC,MAAM,CAAC,KAAI,KAAmB,CAAC;IAE7D,MAAM,KAAK,cAAgB,CAAC,UAAU,EAAG,kBAAkB,KAAK,OAAO,KAAI,KACD,CAAC;CAErF;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ var Reads;
2
+ (function (Reads) {
3
+ Reads.everything = definitions => definitions.map(definition => definition.id);
4
+ Reads.nothing = () => [];
5
+ Reads.only = (...keys) => () => keys;
6
+ Reads.where = (predicate) => definitions => definitions.filter(predicate).map(definition => definition.id);
7
+ })(Reads || (Reads = {}));
8
+ export { Reads };
9
+ //# sourceMappingURL=Reads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reads.js","sourceRoot":"","sources":["../../../src/api/jobs/Reads.ts"],"names":[],"mappings":"AASA,IAAU,KAAK,CAWd;AAXD,WAAU,KAAK;IAEE,gBAAU,GAAW,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAEjF,aAAO,GAAW,GAAG,EAAE,CAAC,EAAE,CAAC;IAE3B,UAAI,GAAG,CAAC,GAAG,IAAoB,EAAU,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;IAEvD,WAAK,GAAG,CAAC,SAAwD,EAAU,EAAE,CACtF,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAEtF,CAAC,EAXS,KAAK,KAAL,KAAK,QAWd;AAED,OAAO,EAAE,KAAK,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,8 +1,8 @@
1
1
  import { Job } from "../jobs/Job.js";
2
2
  declare class Transition {
3
3
  to: string;
4
- predicate: (job: Job) => boolean;
5
- constructor(to: string, predicate?: (job: Job) => boolean);
4
+ predicate: (job: Job) => boolean | Promise<boolean>;
5
+ constructor(to: string, predicate?: (job: Job) => boolean | Promise<boolean>);
6
6
  }
7
7
  export { Transition };
8
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;AAMnC,cAAM,UAAU;IAEZ,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;IAEjC,YAAY,EAAE,EAAE,MAAM,EAAE,SAAS,GAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAoB,EAGpE;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,7 +1,8 @@
1
1
  /* A move to another state, taken by the first transition whose predicate holds.
2
2
  The predicate is optional: a transition with no guard always fires, which is
3
3
  what you want when a state's actions simply run and the job moves on. Guard
4
- it only when the move is conditional. */
4
+ it only when the move is conditional. The guard may be asynchronous, since
5
+ reading a job's properties is. */
5
6
  class Transition {
6
7
  to;
7
8
  predicate;
@@ -1 +1 @@
1
- {"version":3,"file":"Transition.js","sourceRoot":"","sources":["../../../src/api/transitions/Transition.ts"],"names":[],"mappings":"AAEA;;;2CAG2C;AAC3C,MAAM,UAAU;IAEZ,EAAE,CAAS;IACX,SAAS,CAAwB;IAEjC,YAAY,EAAU,EAAE,SAAS,GAA0B,GAAG,EAAE,CAAC,IAAI;QACjE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,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,8 @@ 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";
6
+ export * from "./api/jobs/Reads.js";
5
7
  export * from "./api/states/State.js";
6
8
  export * from "./api/states/Terminal.js";
7
9
  export * from "./api/actions/Action.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,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,8 @@ 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";
6
+ export * from "./api/jobs/Reads.js";
5
7
  export * from "./api/states/State.js";
6
8
  export * from "./api/states/Terminal.js";
7
9
  export * from "./api/actions/Action.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,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.56.9",
3
+ "version": "1.58.0",
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",