anbaric-tsapi 1.56.8 → 1.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +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
4
  type CodeRun = (job: Job) => Promise<Map<string, any>>;
4
5
  declare class Action {
5
6
  readonly id: string;
@@ -7,6 +8,7 @@ declare class Action {
7
8
  description: string;
8
9
  actor: Actor;
9
10
  constructor(name: string, actor: Actor, description?: string, id?: string);
11
+ reads: Reads;
10
12
  predicate: (_job: Job) => boolean;
11
13
  run: CodeRun;
12
14
  }
@@ -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;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,3 +1,9 @@
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
7
  class Action {
2
8
  id;
3
9
  name;
@@ -9,6 +15,7 @@ class Action {
9
15
  this.description = description;
10
16
  this.id = id;
11
17
  }
18
+ reads = Reads.everything;
12
19
  predicate = (_job) => true;
13
20
  run = async (_job) => new Map();
14
21
  }
@@ -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":"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,4 +1,5 @@
1
1
  import { Job } from "../jobs/Job.js";
2
+ import { Reads } from "../jobs/Reads.js";
2
3
  import { AwaitParty, WaitForInput } from "./WaitForInput.js";
3
4
  declare class Await {
4
5
  readonly id: string;
@@ -9,6 +10,7 @@ declare class Await {
9
10
  resolveUrl: string | ((job: Job) => string);
10
11
  metadata: (job: Job) => Map<string, any>;
11
12
  notify: Array<string>;
13
+ reads: Reads;
12
14
  constructor(name: string, waitingFor?: AwaitParty, description?: string, id?: string, notify?: Array<string>);
13
15
  waitForInput(job: Job): WaitForInput;
14
16
  }
@@ -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,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,3 +1,4 @@
1
+ import { Reads } from "../jobs/Reads.js";
1
2
  import { WaitForInput } from "./WaitForInput.js";
2
3
  /* A pause point in a state's action list. When a job reaches an Await it runs
3
4
  nothing: the job is parked in the "Awaiting input" status and is not
@@ -21,6 +22,8 @@ class Await {
21
22
  resolveUrl = "";
22
23
  metadata = (_job) => new Map();
23
24
  notify = [];
25
+ // What resolveUrl and metadata read from the job; everything by default.
26
+ reads = Reads.everything;
24
27
  constructor(name, waitingFor, description = "", id = crypto.randomUUID(), notify = []) {
25
28
  this.name = name;
26
29
  this.waitingFor = waitingFor;
@@ -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,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"}
@@ -11,18 +11,26 @@ 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
- list(actor: Actor, pageSize?: number, page?: number): Promise<Array<Job>>;
17
- protected abstract saveInternal(job: Job): Promise<void>;
18
- protected abstract retrieveInternal(id: string): Promise<Job>;
16
+ list(actor: Actor, pageSize?: number, page?: number, query?: JobPersistence.Query): Promise<Array<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
- protected abstract listInternal(pageSize?: number, page?: number): Promise<Array<Job>>;
20
+ protected abstract listInternal(pageSize?: number, page?: number, query?: JobPersistence.Query): Promise<Array<Job>>;
21
21
  protected abstract killInternal(id: string): Promise<void>;
22
22
  protected abstract killOlderThanInternal(lastUpdatedBefore: Date): Promise<number>;
23
23
  protected abstract countByStateInternal(): Promise<Array<JobPersistence.StateCount>>;
24
24
  }
25
25
  declare namespace JobPersistence {
26
+ type Query = {
27
+ workflowId?: string;
28
+ appId?: string;
29
+ state?: string;
30
+ status?: string;
31
+ killed?: boolean;
32
+ order?: "oldest" | "newest";
33
+ };
26
34
  enum Interaction {
27
35
  CREATE = "CREATE",
28
36
  UPDATE_PROPERTIES = "UPDATE_PROPERTIES",
@@ -1 +1 @@
1
- {"version":3,"file":"JobPersistence.d.ts","sourceRoot":"","sources":["../../../src/api/jobs/JobPersistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAO7B,uBAAe,cAAc;IAEb,SAAS,CAAC,OAAO,EAAG,OAAO;IAAvC,YAAsB,OAAO,EAAG,OAAO,EACtC;IAEK,MAAM,CAAC,KAAK,EAAG,KAAK,EACf,GAAG,EAAG,GAAG,GAAI,OAAO,CAAC,IAAI,CAAC,CAKpC;IAEK,IAAI,CAAC,KAAK,EAAG,KAAK,EACb,iBAAiB,EAAG,MAAM,EAC1B,GAAG,EAAG,GAAG,EACT,UAAU,CAAC,EAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,KAAK,CAAC,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC,CAiC1C;IAEK,IAAI,CAAC,EAAE,EAAG,MAAM,EAAE,KAAK,EAAG,KAAK,GAAI,OAAO,CAAC,IAAI,CAAC,CAGrD;IAEK,aAAa,CAAC,iBAAiB,EAAG,IAAI,EAAE,KAAK,EAAG,KAAK,GAAI,OAAO,CAAC,MAAM,CAAC,CAI7E;IAEK,YAAY,CAAC,KAAK,EAAG,KAAK,GAAI,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAG5E;IAED,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,gBAAgB;IAQlB,QAAQ,CAAC,EAAE,EAAG,MAAM,EAAE,KAAK,EAAG,KAAK,GAAI,OAAO,CAAC,GAAG,CAAC,CAGxD;IAEK,MAAM,CAAC,EAAE,EAAG,MAAM,EAAE,KAAK,EAAG,KAAK,GAAI,OAAO,CAAC,IAAI,CAAC,CAGvD;IAEK,IAAI,CAAC,KAAK,EAAG,KAAK,EAAE,QAAQ,CAAC,EAAG,MAAM,EAAE,IAAI,CAAC,EAAG,MAAM,GAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAGlF;IAED,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAG,GAAG,GAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,EAAG,MAAM,GAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAG,MAAM,EAAE,IAAI,CAAC,EAAG,MAAM,GAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1F,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,iBAAiB,EAAG,IAAI,GAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACrF,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAK,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;CAEzF;AAED,kBAAU,cAAc,CAAC;IAErB,KAAY,WAAW;QACnB,MAAM,WAAW;QACjB,iBAAiB,sBAAsB;QACvC,YAAY,iBAAiB;QAC7B,KAAK,UAAU;QACf,MAAM,WAAW;QACjB,IAAI,SAAS;QACb,IAAI,SAAS;QACb,IAAI,SAAS;KAChB;IAED,KAAY,UAAU,GAAG;QACrB,KAAK,EAAG,MAAM,CAAC;QACf,MAAM,EAAG,OAAO,CAAC;QACjB,KAAK,EAAG,MAAM,CAAC;KAClB,CAAC;CAEL;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"JobPersistence.d.ts","sourceRoot":"","sources":["../../../src/api/jobs/JobPersistence.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ 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);
15
15
  }
16
16
  async save(actor, changeDescription, job, properties, state) {
17
17
  const change = {
@@ -29,7 +29,7 @@ class JobPersistence {
29
29
  }
30
30
  await this.auditor.audit(job.appId, "job", job.id, actor, interaction, changeDescription, change);
31
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);
32
+ await this.saveInternal(updatedJob, properties);
33
33
  }
34
34
  async kill(id, actor) {
35
35
  await this.auditor.audit(currentAppId(), "job", id, actor, [JobPersistence.Interaction.KILL], "Job killed", null);
@@ -57,17 +57,26 @@ class JobPersistence {
57
57
  }
58
58
  return updated;
59
59
  }
60
- async retrieve(id, actor) {
60
+ /* The job, with either every property or only the `keys` asked for. A job
61
+ is read with the keys its next step declares it reads, so a job holding
62
+ a great deal of data costs a step only what that step needs. A property
63
+ that was not asked for is simply absent from the map. */
64
+ async retrieve(id, actor, keys) {
61
65
  await this.auditor.audit(currentAppId(), "job", id, actor, [JobPersistence.Interaction.READ], "", null);
62
- return this.retrieveInternal(id);
66
+ return this.retrieveInternal(id, keys);
63
67
  }
64
68
  async delete(id, actor) {
65
69
  await this.auditor.audit(currentAppId(), "job", id, actor, [JobPersistence.Interaction.DELETE], "", null);
66
70
  await this.deleteInternal(id);
67
71
  }
68
- async list(actor, pageSize, page) {
72
+ /* A page of jobs: `pageSize` of them (100 by default), page `page` (0 by
73
+ default), oldest first unless the query says otherwise. Every job the
74
+ store holds is reachable by paging - the size is a page, not a cap - and
75
+ a page shorter than `pageSize` is the last one. The query narrows the
76
+ set before paging, so page numbers count matching jobs only. */
77
+ async list(actor, pageSize, page, query) {
69
78
  await this.auditor.audit(currentAppId(), "job", "*", actor, [JobPersistence.Interaction.LIST], "", null);
70
- return this.listInternal(pageSize, page);
79
+ return this.listInternal(pageSize, page, query);
71
80
  }
72
81
  }
73
82
  (function (JobPersistence) {
@@ -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,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,8 +1,10 @@
1
1
  import { Job } from "../jobs/Job.js";
2
+ import { Reads } from "../jobs/Reads.js";
2
3
  declare class Transition {
3
4
  to: string;
4
5
  predicate: (job: Job) => boolean;
5
- constructor(to: string, predicate?: (job: Job) => boolean);
6
+ reads: Reads;
7
+ constructor(to: string, predicate?: (job: Job) => boolean, reads?: Reads);
6
8
  }
7
9
  export { Transition };
8
10
  //# 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;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,13 +1,18 @@
1
+ import { Reads } from "../jobs/Reads.js";
1
2
  /* A move to another state, taken by the first transition whose predicate holds.
2
3
  The predicate is optional: a transition with no guard always fires, which is
3
4
  what you want when a state's actions simply run and the job moves on. Guard
4
- it only when the move is conditional. */
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. */
5
8
  class Transition {
6
9
  to;
7
10
  predicate;
8
- constructor(to, predicate = () => true) {
11
+ reads;
12
+ constructor(to, predicate, reads) {
9
13
  this.to = to;
10
- this.predicate = predicate;
14
+ this.predicate = predicate ?? (() => true);
15
+ this.reads = reads ?? (predicate ? Reads.everything : Reads.nothing);
11
16
  }
12
17
  }
13
18
  export { Transition };
@@ -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":"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"}
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/Reads.js";
5
6
  export * from "./api/states/State.js";
6
7
  export * from "./api/states/Terminal.js";
7
8
  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,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/Reads.js";
5
6
  export * from "./api/states/State.js";
6
7
  export * from "./api/states/Terminal.js";
7
8
  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,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.8",
3
+ "version": "1.57.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",