anbaric-tsapi 1.21.5 → 1.22.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 (149) hide show
  1. package/dist/api/actions/Action.d.ts +14 -0
  2. package/dist/api/actions/Action.d.ts.map +1 -0
  3. package/dist/api/actions/Action.js +16 -0
  4. package/dist/api/actions/Action.js.map +1 -0
  5. package/dist/api/actions/AgenticAction.d.ts +11 -0
  6. package/dist/api/actions/AgenticAction.d.ts.map +1 -0
  7. package/dist/api/actions/AgenticAction.js +14 -0
  8. package/dist/api/actions/AgenticAction.js.map +1 -0
  9. package/dist/api/actions/Await.d.ts +15 -0
  10. package/dist/api/actions/Await.d.ts.map +1 -0
  11. package/{src/api/actions/Await.ts → dist/api/actions/Await.js} +12 -18
  12. package/dist/api/actions/Await.js.map +1 -0
  13. package/dist/api/actions/WaitForInput.d.ts +19 -0
  14. package/dist/api/actions/WaitForInput.d.ts.map +1 -0
  15. package/dist/api/actions/WaitForInput.js +25 -0
  16. package/dist/api/actions/WaitForInput.js.map +1 -0
  17. package/dist/api/actors/Actor.d.ts +8 -0
  18. package/dist/api/actors/Actor.d.ts.map +1 -0
  19. package/dist/api/actors/Actor.js +2 -0
  20. package/dist/api/actors/Actor.js.map +1 -0
  21. package/dist/api/actors/SystemActor.d.ts +9 -0
  22. package/dist/api/actors/SystemActor.d.ts.map +1 -0
  23. package/dist/api/actors/SystemActor.js +8 -0
  24. package/dist/api/actors/SystemActor.js.map +1 -0
  25. package/dist/api/actors/agents/Agent.d.ts +16 -0
  26. package/dist/api/actors/agents/Agent.d.ts.map +1 -0
  27. package/dist/api/actors/agents/Agent.js +21 -0
  28. package/dist/api/actors/agents/Agent.js.map +1 -0
  29. package/dist/api/actors/agents/AgentMessage.d.ts +6 -0
  30. package/dist/api/actors/agents/AgentMessage.d.ts.map +1 -0
  31. package/dist/api/actors/agents/AgentMessage.js +2 -0
  32. package/dist/api/actors/agents/AgentMessage.js.map +1 -0
  33. package/dist/api/actors/agents/AgentRequest.d.ts +7 -0
  34. package/dist/api/actors/agents/AgentRequest.d.ts.map +1 -0
  35. package/dist/api/actors/agents/AgentRequest.js +2 -0
  36. package/dist/api/actors/agents/AgentRequest.js.map +1 -0
  37. package/dist/api/auditing/Auditor.d.ts +6 -0
  38. package/dist/api/auditing/Auditor.d.ts.map +1 -0
  39. package/dist/api/auditing/Auditor.js +2 -0
  40. package/dist/api/auditing/Auditor.js.map +1 -0
  41. package/dist/api/auditing/NoOpAuditor.d.ts +7 -0
  42. package/dist/api/auditing/NoOpAuditor.d.ts.map +1 -0
  43. package/dist/api/auditing/NoOpAuditor.js +9 -0
  44. package/dist/api/auditing/NoOpAuditor.js.map +1 -0
  45. package/dist/api/cloud/AppAware.d.ts +7 -0
  46. package/dist/api/cloud/AppAware.d.ts.map +1 -0
  47. package/dist/api/cloud/AppAware.js +5 -0
  48. package/dist/api/cloud/AppAware.js.map +1 -0
  49. package/dist/api/cloud/AuditRecord.d.ts +14 -0
  50. package/dist/api/cloud/AuditRecord.d.ts.map +1 -0
  51. package/dist/api/cloud/AuditRecord.js +2 -0
  52. package/dist/api/cloud/AuditRecord.js.map +1 -0
  53. package/dist/api/cloud/QueueMessage.d.ts +8 -0
  54. package/dist/api/cloud/QueueMessage.d.ts.map +1 -0
  55. package/dist/api/cloud/QueueMessage.js +2 -0
  56. package/dist/api/cloud/QueueMessage.js.map +1 -0
  57. package/dist/api/cloud/WorkflowDefinition.d.ts +32 -0
  58. package/dist/api/cloud/WorkflowDefinition.d.ts.map +1 -0
  59. package/dist/api/cloud/WorkflowDefinition.js +24 -0
  60. package/dist/api/cloud/WorkflowDefinition.js.map +1 -0
  61. package/dist/api/documents/JsonSchema.d.ts +11 -0
  62. package/dist/api/documents/JsonSchema.d.ts.map +1 -0
  63. package/dist/api/documents/JsonSchema.js +40 -0
  64. package/dist/api/documents/JsonSchema.js.map +1 -0
  65. package/dist/api/documents/JsonStore.d.ts +27 -0
  66. package/dist/api/documents/JsonStore.d.ts.map +1 -0
  67. package/dist/api/documents/JsonStore.js +43 -0
  68. package/dist/api/documents/JsonStore.js.map +1 -0
  69. package/dist/api/jobs/Job.d.ts +24 -0
  70. package/dist/api/jobs/Job.d.ts.map +1 -0
  71. package/{src/api/jobs/Job.ts → dist/api/jobs/Job.js} +19 -32
  72. package/dist/api/jobs/Job.js.map +1 -0
  73. package/dist/api/jobs/JobPersistence.d.ts +43 -0
  74. package/dist/api/jobs/JobPersistence.d.ts.map +1 -0
  75. package/dist/api/jobs/JobPersistence.js +87 -0
  76. package/dist/api/jobs/JobPersistence.js.map +1 -0
  77. package/dist/api/jobs/JobSerialization.d.ts +21 -0
  78. package/dist/api/jobs/JobSerialization.d.ts.map +1 -0
  79. package/dist/api/jobs/JobSerialization.js +22 -0
  80. package/dist/api/jobs/JobSerialization.js.map +1 -0
  81. package/dist/api/jobs/PropertyDefinition.d.ts +8 -0
  82. package/dist/api/jobs/PropertyDefinition.d.ts.map +1 -0
  83. package/dist/api/jobs/PropertyDefinition.js +10 -0
  84. package/dist/api/jobs/PropertyDefinition.js.map +1 -0
  85. package/dist/api/secrets/SecretStore.d.ts +26 -0
  86. package/dist/api/secrets/SecretStore.d.ts.map +1 -0
  87. package/dist/api/secrets/SecretStore.js +42 -0
  88. package/dist/api/secrets/SecretStore.js.map +1 -0
  89. package/dist/api/sessions/SessionResolver.d.ts +10 -0
  90. package/dist/api/sessions/SessionResolver.d.ts.map +1 -0
  91. package/dist/api/sessions/SessionResolver.js +2 -0
  92. package/dist/api/sessions/SessionResolver.js.map +1 -0
  93. package/dist/api/sql/SqlStore.d.ts +19 -0
  94. package/dist/api/sql/SqlStore.d.ts.map +1 -0
  95. package/dist/api/sql/SqlStore.js +29 -0
  96. package/dist/api/sql/SqlStore.js.map +1 -0
  97. package/dist/api/state-machine/Consumer.d.ts +6 -0
  98. package/dist/api/state-machine/Consumer.d.ts.map +1 -0
  99. package/dist/api/state-machine/Consumer.js +2 -0
  100. package/dist/api/state-machine/Consumer.js.map +1 -0
  101. package/dist/api/state-machine/Queue.d.ts +13 -0
  102. package/dist/api/state-machine/Queue.d.ts.map +1 -0
  103. package/dist/api/state-machine/Queue.js +7 -0
  104. package/dist/api/state-machine/Queue.js.map +1 -0
  105. package/dist/api/states/State.d.ts +13 -0
  106. package/dist/api/states/State.d.ts.map +1 -0
  107. package/dist/api/states/State.js +17 -0
  108. package/dist/api/states/State.js.map +1 -0
  109. package/dist/api/states/Terminal.d.ts +13 -0
  110. package/dist/api/states/Terminal.d.ts.map +1 -0
  111. package/dist/api/states/Terminal.js +19 -0
  112. package/dist/api/states/Terminal.js.map +1 -0
  113. package/dist/api/transitions/Transition.d.ts +8 -0
  114. package/dist/api/transitions/Transition.d.ts.map +1 -0
  115. package/dist/api/transitions/Transition.js +10 -0
  116. package/dist/api/transitions/Transition.js.map +1 -0
  117. package/dist/index.d.ts +30 -0
  118. package/dist/index.d.ts.map +1 -0
  119. package/dist/index.js +30 -0
  120. package/dist/index.js.map +1 -0
  121. package/package.json +14 -5
  122. package/src/api/actions/Action.ts +0 -25
  123. package/src/api/actions/AgenticAction.ts +0 -24
  124. package/src/api/actions/WaitForInput.ts +0 -43
  125. package/src/api/actors/Actor.ts +0 -11
  126. package/src/api/actors/SystemActor.ts +0 -13
  127. package/src/api/actors/agents/Agent.ts +0 -32
  128. package/src/api/actors/agents/AgentMessage.ts +0 -8
  129. package/src/api/actors/agents/AgentRequest.ts +0 -10
  130. package/src/api/auditing/Auditor.ts +0 -13
  131. package/src/api/auditing/NoOpAuditor.ts +0 -15
  132. package/src/api/cloud/AppAware.ts +0 -14
  133. package/src/api/cloud/AuditRecord.ts +0 -14
  134. package/src/api/cloud/QueueMessage.ts +0 -8
  135. package/src/api/cloud/WorkflowDefinition.ts +0 -49
  136. package/src/api/documents/JsonSchema.ts +0 -53
  137. package/src/api/documents/JsonStore.ts +0 -56
  138. package/src/api/jobs/JobPersistence.ts +0 -141
  139. package/src/api/jobs/JobSerialization.ts +0 -45
  140. package/src/api/jobs/PropertyDefinition.ts +0 -12
  141. package/src/api/secrets/SecretStore.ts +0 -57
  142. package/src/api/sessions/SessionResolver.ts +0 -20
  143. package/src/api/sql/SqlStore.ts +0 -41
  144. package/src/api/state-machine/Consumer.ts +0 -8
  145. package/src/api/state-machine/Queue.ts +0 -22
  146. package/src/api/states/State.ts +0 -25
  147. package/src/api/states/Terminal.ts +0 -25
  148. package/src/api/transitions/Transition.ts +0 -13
  149. package/src/index.ts +0 -29
@@ -0,0 +1,27 @@
1
+ import { Actor } from "../actors/Actor.js";
2
+ import { Auditor } from "../auditing/Auditor.js";
3
+ declare abstract class JsonStore {
4
+ protected auditor: Auditor;
5
+ protected collection: string;
6
+ constructor(auditor: Auditor, collection?: string);
7
+ create(actor: Actor, id: string, document: any): Promise<void>;
8
+ save(actor: Actor, changeDescription: string, id: string, document: any): Promise<void>;
9
+ retrieve(id: string, actor: Actor): Promise<any>;
10
+ delete(id: string, actor: Actor): Promise<void>;
11
+ list(actor: Actor, pageSize?: number, page?: number): Promise<Array<any>>;
12
+ protected abstract saveInternal(id: string, document: any): Promise<void>;
13
+ protected abstract retrieveInternal(id: string): Promise<any>;
14
+ protected abstract deleteInternal(id: string): Promise<void>;
15
+ protected abstract listInternal(pageSize?: number, page?: number): Promise<Array<any>>;
16
+ }
17
+ declare namespace JsonStore {
18
+ enum Interaction {
19
+ CREATE = "CREATE",
20
+ SAVE = "SAVE",
21
+ READ = "READ",
22
+ DELETE = "DELETE",
23
+ LIST = "LIST"
24
+ }
25
+ }
26
+ export { JsonStore };
27
+ //# sourceMappingURL=JsonStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonStore.d.ts","sourceRoot":"","sources":["../../../src/api/documents/JsonStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAK/C,uBAAe,SAAS;IAER,SAAS,CAAC,OAAO,EAAG,OAAO;IAAE,SAAS,CAAC,UAAU,EAAG,MAAM;IAAtE,YAAsB,OAAO,EAAG,OAAO,EAAY,UAAU,GAAG,MAAoB,EACnF;IAEK,MAAM,CAAC,KAAK,EAAG,KAAK,EAAE,EAAE,EAAG,MAAM,EAAE,QAAQ,EAAG,GAAG,GAAI,OAAO,CAAC,IAAI,CAAC,CAGvE;IAEK,IAAI,CAAC,KAAK,EAAG,KAAK,EAAE,iBAAiB,EAAG,MAAM,EAAE,EAAE,EAAG,MAAM,EAAE,QAAQ,EAAG,GAAG,GAAI,OAAO,CAAC,IAAI,CAAC,CAGjG;IAEK,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,EAAE,EAAG,MAAM,EAAE,QAAQ,EAAG,GAAG,GAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,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;CAE7F;AAED,kBAAU,SAAS,CAAC;IAEhB,KAAY,WAAW;QACnB,MAAM,WAAW;QACjB,IAAI,SAAS;QACb,IAAI,SAAS;QACb,MAAM,WAAW;QACjB,IAAI,SAAS;KAChB;CAEJ;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -0,0 +1,43 @@
1
+ import { currentAppId } from "../cloud/AppAware.js";
2
+ /* A schema-validated JSON document store that audits every interaction, keyed
3
+ by collection and id. Public methods audit then defer to ...Internal. */
4
+ class JsonStore {
5
+ auditor;
6
+ collection;
7
+ constructor(auditor, collection = "documents") {
8
+ this.auditor = auditor;
9
+ this.collection = collection;
10
+ }
11
+ async create(actor, id, document) {
12
+ await this.auditor.audit(currentAppId(), "document", `${this.collection}/${id}`, actor, [JsonStore.Interaction.CREATE], "Document created", document);
13
+ await this.saveInternal(id, document);
14
+ }
15
+ async save(actor, changeDescription, id, document) {
16
+ await this.auditor.audit(currentAppId(), "document", `${this.collection}/${id}`, actor, [JsonStore.Interaction.SAVE], changeDescription, document);
17
+ await this.saveInternal(id, document);
18
+ }
19
+ async retrieve(id, actor) {
20
+ await this.auditor.audit(currentAppId(), "document", `${this.collection}/${id}`, actor, [JsonStore.Interaction.READ], "", null);
21
+ return this.retrieveInternal(id);
22
+ }
23
+ async delete(id, actor) {
24
+ await this.auditor.audit(currentAppId(), "document", `${this.collection}/${id}`, actor, [JsonStore.Interaction.DELETE], "", null);
25
+ await this.deleteInternal(id);
26
+ }
27
+ async list(actor, pageSize, page) {
28
+ await this.auditor.audit(currentAppId(), "document", `${this.collection}/*`, actor, [JsonStore.Interaction.LIST], "", null);
29
+ return this.listInternal(pageSize, page);
30
+ }
31
+ }
32
+ (function (JsonStore) {
33
+ let Interaction;
34
+ (function (Interaction) {
35
+ Interaction["CREATE"] = "CREATE";
36
+ Interaction["SAVE"] = "SAVE";
37
+ Interaction["READ"] = "READ";
38
+ Interaction["DELETE"] = "DELETE";
39
+ Interaction["LIST"] = "LIST";
40
+ })(Interaction = JsonStore.Interaction || (JsonStore.Interaction = {}));
41
+ })(JsonStore || (JsonStore = {}));
42
+ export { JsonStore };
43
+ //# sourceMappingURL=JsonStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonStore.js","sourceRoot":"","sources":["../../../src/api/documents/JsonStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAElD;2EAC2E;AAC3E,MAAe,SAAS;IAEE,OAAO;IAAsB,UAAU;IAA7D,YAAsB,OAAiB,EAAY,UAAU,GAAY,WAAW;uBAA9D,OAAO;0BAAsB,UAAU;IAC7D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,EAAW,EAAE,QAAc;QACnD,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QACtJ,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,iBAA0B,EAAE,EAAW,EAAE,QAAc;QAC7E,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QACnJ,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAW,EAAE,KAAa;QACrC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAChI,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,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAClI,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,QAAkB,EAAE,IAAc;QACxD,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5H,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;CAOJ;AAED,WAAU,SAAS;IAEf,IAAY,WAMX;IAND,WAAY,WAAW;QACnB,gCAAiB,CAAA;QACjB,4BAAa,CAAA;QACb,4BAAa,CAAA;QACb,gCAAiB,CAAA;QACjB,4BAAa,CAAA;IACjB,CAAC,EANW,WAAW,GAAX,UAAA,WAAW,KAAX,UAAA,WAAW,QAMtB;AAEL,CAAC,EAVS,SAAS,KAAT,SAAS,QAUlB;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { WaitForInput } from "../actions/WaitForInput.js";
2
+ declare class Job {
3
+ readonly id: string;
4
+ readonly state: string;
5
+ readonly properties: Map<string, any>;
6
+ readonly appId?: string;
7
+ readonly workflowId?: string;
8
+ readonly startedAt: Date;
9
+ readonly startedBy: string;
10
+ readonly lastUpdated: Date;
11
+ readonly killed: boolean;
12
+ status: string;
13
+ waitingFor?: string;
14
+ 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
+ }
17
+ declare namespace Job {
18
+ const Status: {
19
+ readonly ACTIVE: "active";
20
+ readonly AWAITING_INPUT: "Awaiting input";
21
+ };
22
+ }
23
+ export { Job };
24
+ //# sourceMappingURL=Job.d.ts.map
@@ -0,0 +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;IAEL,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;IAIvC,QAAQ,CAAC,KAAK,CAAC,EAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAG,MAAM,CAAC;IAC9B,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;IAM1B,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;KAC1B,CAAC;CAEd;AAED,OAAO,EAAE,GAAG,EAAE,CAAA"}
@@ -1,34 +1,25 @@
1
- import {WaitForInput} from "../actions/WaitForInput";
2
-
3
1
  class Job {
4
-
5
- readonly id : string;
6
- readonly state: string;
7
- readonly properties : Map<string, any>;
2
+ id;
3
+ state;
4
+ properties;
8
5
  // A workflow is identified by the composite (appId, workflowId): the app the
9
6
  // job's state machine was deployed in, and the machine's own id. appId is
10
7
  // undefined when running outside a deployed app (locally).
11
- readonly appId? : string;
12
- readonly workflowId? : string;
13
- readonly startedAt : Date;
14
- readonly startedBy : string;
15
- readonly lastUpdated : Date;
16
- readonly killed : boolean;
8
+ appId;
9
+ workflowId;
10
+ startedAt;
11
+ startedBy;
12
+ lastUpdated;
13
+ killed;
17
14
  // Distinct from state: the job's processing status. A job whose current
18
15
  // state reaches an Await is parked in "Awaiting input" until an update
19
16
  // resumes it. waitingFor is the id of the await it is parked on (a foreign
20
17
  // key to the awaits table server-side); awaitMetadata is what that Await
21
18
  // stored (e.g. the input required). Both clear once the job moves on.
22
- status : string;
23
- waitingFor? : string;
24
- awaitMetadata? : WaitForInput;
25
-
26
- constructor(id : string, properties : Map<string, any> = new Map(), state: string, workflowId? : string,
27
- appId? : string, startedBy : string = "system", startedAt : Date = new Date(),
28
- lastUpdated : Date = startedAt, killed : boolean = false,
29
- status : string = Job.Status.ACTIVE, awaitMetadata? : WaitForInput,
30
- waitingFor? : string) {
31
-
19
+ status;
20
+ waitingFor;
21
+ awaitMetadata;
22
+ constructor(id, properties = new Map(), state, workflowId, appId, startedBy = "system", startedAt = new Date(), lastUpdated = startedAt, killed = false, status = Job.Status.ACTIVE, awaitMetadata, waitingFor) {
32
23
  this.id = id;
33
24
  this.properties = properties;
34
25
  this.state = state;
@@ -42,16 +33,12 @@ class Job {
42
33
  this.awaitMetadata = awaitMetadata;
43
34
  this.waitingFor = waitingFor;
44
35
  }
45
-
46
36
  }
47
-
48
- namespace Job {
49
-
50
- export const Status = {
37
+ (function (Job) {
38
+ Job.Status = {
51
39
  ACTIVE: "active",
52
40
  AWAITING_INPUT: "Awaiting input",
53
- } as const;
54
-
55
- }
56
-
57
- export { Job }
41
+ };
42
+ })(Job || (Job = {}));
43
+ export { Job };
44
+ //# sourceMappingURL=Job.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Job.js","sourceRoot":"","sources":["../../../src/api/jobs/Job.ts"],"names":[],"mappings":"AAEA,MAAM,GAAG;IAEI,EAAE,CAAU;IACZ,KAAK,CAAS;IACd,UAAU,CAAoB;IACvC,6EAA6E;IAC7E,0EAA0E;IAC1E,2DAA2D;IAClD,KAAK,CAAW;IAChB,UAAU,CAAW;IACrB,SAAS,CAAQ;IACjB,SAAS,CAAU;IACnB,WAAW,CAAQ;IACnB,MAAM,CAAW;IAC1B,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;KAC1B,CAAC;AAEf,CAAC,EAPS,GAAG,KAAH,GAAG,QAOZ;AAED,OAAO,EAAE,GAAG,EAAE,CAAA"}
@@ -0,0 +1,43 @@
1
+ import { Actor } from "../actors/Actor.js";
2
+ import { Auditor } from "../auditing/Auditor.js";
3
+ import { Job } from "./Job.js";
4
+ declare abstract class JobPersistence {
5
+ protected auditor: Auditor;
6
+ constructor(auditor: Auditor);
7
+ create(actor: Actor, job: Job): Promise<void>;
8
+ save(actor: Actor, changeDescription: string, job: Job, properties?: Map<string, any>, state?: string): Promise<void>;
9
+ kill(id: string, actor: Actor): Promise<void>;
10
+ killOlderThan(lastUpdatedBefore: Date, actor: Actor): Promise<number>;
11
+ countByState(actor: Actor): Promise<Array<JobPersistence.StateCount>>;
12
+ private generatePropertiesDiff;
13
+ private updateProperties;
14
+ retrieve(id: string, actor: Actor): Promise<Job>;
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>;
19
+ protected abstract deleteInternal(id: string): Promise<void>;
20
+ protected abstract listInternal(pageSize?: number, page?: number): Promise<Array<Job>>;
21
+ protected abstract killInternal(id: string): Promise<void>;
22
+ protected abstract killOlderThanInternal(lastUpdatedBefore: Date): Promise<number>;
23
+ protected abstract countByStateInternal(): Promise<Array<JobPersistence.StateCount>>;
24
+ }
25
+ declare namespace JobPersistence {
26
+ enum Interaction {
27
+ CREATE = "CREATE",
28
+ UPDATE_PROPERTIES = "UPDATE_PROPERTIES",
29
+ CHANGE_STATE = "CHANGE_STATE",
30
+ AWAIT = "AWAIT",
31
+ DELETE = "DELETE",
32
+ READ = "READ",
33
+ LIST = "LIST",
34
+ KILL = "KILL"
35
+ }
36
+ type StateCount = {
37
+ state: string;
38
+ killed: boolean;
39
+ count: number;
40
+ };
41
+ }
42
+ export { JobPersistence };
43
+ //# sourceMappingURL=JobPersistence.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,87 @@
1
+ import { Job } from "./Job.js";
2
+ import { serializeWaitForInput } from "../actions/WaitForInput.js";
3
+ import { currentAppId } from "../cloud/AppAware.js";
4
+ /* Persists jobs and audits every interaction. Public methods record the
5
+ interaction against the injected auditor and then defer to the abstract
6
+ ...Internal methods a concrete store implements. */
7
+ class JobPersistence {
8
+ auditor;
9
+ constructor(auditor) {
10
+ this.auditor = auditor;
11
+ }
12
+ async create(actor, job) {
13
+ await this.auditor.audit(job.appId, "job", job.id, actor, [JobPersistence.Interaction.CREATE], "Job created", job);
14
+ this.saveInternal(job);
15
+ }
16
+ async save(actor, changeDescription, job, properties, state) {
17
+ const change = {
18
+ properties: properties ? this.generatePropertiesDiff(job.properties, properties) : undefined,
19
+ state: state ? { from: job.state, to: state } : undefined
20
+ };
21
+ const interaction = [];
22
+ if (properties)
23
+ interaction.push(JobPersistence.Interaction.UPDATE_PROPERTIES);
24
+ if (state)
25
+ interaction.push(JobPersistence.Interaction.CHANGE_STATE);
26
+ if (job.status === Job.Status.AWAITING_INPUT && job.awaitMetadata) {
27
+ interaction.push(JobPersistence.Interaction.AWAIT);
28
+ change.metadata = serializeWaitForInput(job.awaitMetadata);
29
+ }
30
+ 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);
33
+ }
34
+ async kill(id, actor) {
35
+ await this.auditor.audit(currentAppId(), "job", id, actor, [JobPersistence.Interaction.KILL], "Job killed", null);
36
+ await this.killInternal(id);
37
+ }
38
+ async killOlderThan(lastUpdatedBefore, actor) {
39
+ await this.auditor.audit(currentAppId(), "job", "*", actor, [JobPersistence.Interaction.KILL], `Jobs not updated since ${lastUpdatedBefore.toISOString()} killed`, null);
40
+ return this.killOlderThanInternal(lastUpdatedBefore);
41
+ }
42
+ async countByState(actor) {
43
+ await this.auditor.audit(currentAppId(), "job", "*", actor, [JobPersistence.Interaction.LIST], "", null);
44
+ return this.countByStateInternal();
45
+ }
46
+ generatePropertiesDiff(oldVersion, newVersion) {
47
+ const diff = new Map();
48
+ for (const [key, value] of newVersion) {
49
+ diff.set(key, { from: oldVersion.get(key), to: value });
50
+ }
51
+ return diff;
52
+ }
53
+ updateProperties(oldVersion, newVersion) {
54
+ const updated = new Map(oldVersion);
55
+ for (const [key, value] of newVersion) {
56
+ updated.set(key, value);
57
+ }
58
+ return updated;
59
+ }
60
+ async retrieve(id, actor) {
61
+ await this.auditor.audit(currentAppId(), "job", id, actor, [JobPersistence.Interaction.READ], "", null);
62
+ return this.retrieveInternal(id);
63
+ }
64
+ async delete(id, actor) {
65
+ await this.auditor.audit(currentAppId(), "job", id, actor, [JobPersistence.Interaction.DELETE], "", null);
66
+ await this.deleteInternal(id);
67
+ }
68
+ async list(actor, pageSize, page) {
69
+ await this.auditor.audit(currentAppId(), "job", "*", actor, [JobPersistence.Interaction.LIST], "", null);
70
+ return this.listInternal(pageSize, page);
71
+ }
72
+ }
73
+ (function (JobPersistence) {
74
+ let Interaction;
75
+ (function (Interaction) {
76
+ Interaction["CREATE"] = "CREATE";
77
+ Interaction["UPDATE_PROPERTIES"] = "UPDATE_PROPERTIES";
78
+ Interaction["CHANGE_STATE"] = "CHANGE_STATE";
79
+ Interaction["AWAIT"] = "AWAIT";
80
+ Interaction["DELETE"] = "DELETE";
81
+ Interaction["READ"] = "READ";
82
+ Interaction["LIST"] = "LIST";
83
+ Interaction["KILL"] = "KILL";
84
+ })(Interaction = JobPersistence.Interaction || (JobPersistence.Interaction = {}));
85
+ })(JobPersistence || (JobPersistence = {}));
86
+ export { JobPersistence };
87
+ //# sourceMappingURL=JobPersistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JobPersistence.js","sourceRoot":"","sources":["../../../src/api/jobs/JobPersistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { Job } from "./Job.js";
2
+ import { SerializedWaitForInput } from "../actions/WaitForInput.js";
3
+ type SerializedJob = {
4
+ id: string;
5
+ state: string;
6
+ properties: Record<string, any>;
7
+ workflowId?: string;
8
+ appId?: string;
9
+ startedAt?: string;
10
+ startedBy?: string;
11
+ lastUpdated?: string;
12
+ killed?: boolean;
13
+ status?: string;
14
+ waitingFor?: string;
15
+ awaitMetadata?: SerializedWaitForInput;
16
+ };
17
+ declare const serializeJob: (job: Job) => SerializedJob;
18
+ declare const deserializeJob: (serialized: SerializedJob) => Job;
19
+ export { serializeJob, deserializeJob };
20
+ export type { SerializedJob };
21
+ //# sourceMappingURL=JobSerialization.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,22 @@
1
+ import { Job } from "./Job.js";
2
+ import { serializeWaitForInput, deserializeWaitForInput } from "../actions/WaitForInput.js";
3
+ const serializeJob = (job) => ({
4
+ id: job.id,
5
+ state: job.state,
6
+ properties: Object.fromEntries(job.properties),
7
+ workflowId: job.workflowId,
8
+ appId: job.appId,
9
+ startedAt: job.startedAt.toISOString(),
10
+ startedBy: job.startedBy,
11
+ lastUpdated: job.lastUpdated.toISOString(),
12
+ killed: job.killed,
13
+ status: job.status,
14
+ waitingFor: job.waitingFor,
15
+ awaitMetadata: job.awaitMetadata ? serializeWaitForInput(job.awaitMetadata) : undefined,
16
+ });
17
+ const deserializeJob = (serialized) => {
18
+ const startedAt = serialized.startedAt ? new Date(serialized.startedAt) : new Date();
19
+ return new Job(serialized.id, new Map(Object.entries(serialized.properties)), serialized.state, serialized.workflowId, serialized.appId, serialized.startedBy ?? "system", startedAt, serialized.lastUpdated ? new Date(serialized.lastUpdated) : startedAt, serialized.killed ?? false, serialized.status ?? Job.Status.ACTIVE, serialized.awaitMetadata ? deserializeWaitForInput(serialized.awaitMetadata) : undefined, serialized.waitingFor);
20
+ };
21
+ export { serializeJob, deserializeJob };
22
+ //# sourceMappingURL=JobSerialization.js.map
@@ -0,0 +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"}
@@ -0,0 +1,8 @@
1
+ declare class PropertyDefinition {
2
+ id: string;
3
+ required: boolean;
4
+ validation: (arg0: any) => boolean;
5
+ constructor(id: string);
6
+ }
7
+ export { PropertyDefinition };
8
+ //# sourceMappingURL=PropertyDefinition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyDefinition.d.ts","sourceRoot":"","sources":["../../../src/api/jobs/PropertyDefinition.ts"],"names":[],"mappings":"AAAA,cAAM,kBAAkB;IAEpB,EAAE,EAAG,MAAM,CAAC;IACZ,QAAQ,EAAG,OAAO,CAAS;IAC3B,UAAU,EAAG,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAyB;IAE5D,YAAY,EAAE,EAAG,MAAM,EAEtB;CACJ;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
@@ -0,0 +1,10 @@
1
+ class PropertyDefinition {
2
+ id;
3
+ required = false;
4
+ validation = (value) => true;
5
+ constructor(id) {
6
+ this.id = id;
7
+ }
8
+ }
9
+ export { PropertyDefinition };
10
+ //# sourceMappingURL=PropertyDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyDefinition.js","sourceRoot":"","sources":["../../../src/api/jobs/PropertyDefinition.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB;IAEpB,EAAE,CAAU;IACZ,QAAQ,GAAa,KAAK,CAAC;IAC3B,UAAU,GAA4B,CAAC,KAAW,EAAE,EAAE,CAAC,IAAI,CAAC;IAE5D,YAAY,EAAW;QACnB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;CACJ;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { Actor } from "../actors/Actor.js";
2
+ import { Auditor } from "../auditing/Auditor.js";
3
+ declare abstract class SecretStore {
4
+ protected auditor: Auditor;
5
+ constructor(auditor: Auditor);
6
+ create(actor: Actor, name: string, value: string): Promise<void>;
7
+ save(actor: Actor, changeDescription: string, name: string, value: string): Promise<void>;
8
+ retrieve(name: string, actor: Actor): Promise<string>;
9
+ delete(name: string, actor: Actor): Promise<void>;
10
+ list(actor: Actor): Promise<Array<string>>;
11
+ protected abstract saveInternal(name: string, value: string): Promise<void>;
12
+ protected abstract retrieveInternal(name: string): Promise<string>;
13
+ protected abstract deleteInternal(name: string): Promise<void>;
14
+ protected abstract listInternal(): Promise<Array<string>>;
15
+ }
16
+ declare namespace SecretStore {
17
+ enum Interaction {
18
+ CREATE = "CREATE",
19
+ SAVE = "SAVE",
20
+ READ = "READ",
21
+ DELETE = "DELETE",
22
+ LIST = "LIST"
23
+ }
24
+ }
25
+ export { SecretStore };
26
+ //# sourceMappingURL=SecretStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecretStore.d.ts","sourceRoot":"","sources":["../../../src/api/secrets/SecretStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAM/C,uBAAe,WAAW;IAEV,SAAS,CAAC,OAAO,EAAG,OAAO;IAAvC,YAAsB,OAAO,EAAG,OAAO,EACtC;IAEK,MAAM,CAAC,KAAK,EAAG,KAAK,EAAE,IAAI,EAAG,MAAM,EAAE,KAAK,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC,CAGzE;IAEK,IAAI,CAAC,KAAK,EAAG,KAAK,EAAE,iBAAiB,EAAG,MAAM,EAAE,IAAI,EAAG,MAAM,EAAE,KAAK,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC,CAGnG;IAEK,QAAQ,CAAC,IAAI,EAAG,MAAM,EAAE,KAAK,EAAG,KAAK,GAAI,OAAO,CAAC,MAAM,CAAC,CAG7D;IAEK,MAAM,CAAC,IAAI,EAAG,MAAM,EAAE,KAAK,EAAG,KAAK,GAAI,OAAO,CAAC,IAAI,CAAC,CAGzD;IAEK,IAAI,CAAC,KAAK,EAAG,KAAK,GAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAGjD;IAED,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAG,MAAM,EAAE,KAAK,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAG,MAAM,GAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAK,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;CAE9D;AAED,kBAAU,WAAW,CAAC;IAElB,KAAY,WAAW;QACnB,MAAM,WAAW;QACjB,IAAI,SAAS;QACb,IAAI,SAAS;QACb,MAAM,WAAW;QACjB,IAAI,SAAS;KAChB;CAEJ;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { currentAppId } from "../cloud/AppAware.js";
2
+ /* Stores named secrets and audits every interaction. The secret value is
3
+ never included in an audit record. Public methods audit then defer to the
4
+ abstract ...Internal methods. */
5
+ class SecretStore {
6
+ auditor;
7
+ constructor(auditor) {
8
+ this.auditor = auditor;
9
+ }
10
+ async create(actor, name, value) {
11
+ await this.auditor.audit(currentAppId(), "secret", name, actor, [SecretStore.Interaction.CREATE], "Secret created", null);
12
+ await this.saveInternal(name, value);
13
+ }
14
+ async save(actor, changeDescription, name, value) {
15
+ await this.auditor.audit(currentAppId(), "secret", name, actor, [SecretStore.Interaction.SAVE], changeDescription, null);
16
+ await this.saveInternal(name, value);
17
+ }
18
+ async retrieve(name, actor) {
19
+ await this.auditor.audit(currentAppId(), "secret", name, actor, [SecretStore.Interaction.READ], "", null);
20
+ return this.retrieveInternal(name);
21
+ }
22
+ async delete(name, actor) {
23
+ await this.auditor.audit(currentAppId(), "secret", name, actor, [SecretStore.Interaction.DELETE], "", null);
24
+ await this.deleteInternal(name);
25
+ }
26
+ async list(actor) {
27
+ await this.auditor.audit(currentAppId(), "secret", "*", actor, [SecretStore.Interaction.LIST], "", null);
28
+ return this.listInternal();
29
+ }
30
+ }
31
+ (function (SecretStore) {
32
+ let Interaction;
33
+ (function (Interaction) {
34
+ Interaction["CREATE"] = "CREATE";
35
+ Interaction["SAVE"] = "SAVE";
36
+ Interaction["READ"] = "READ";
37
+ Interaction["DELETE"] = "DELETE";
38
+ Interaction["LIST"] = "LIST";
39
+ })(Interaction = SecretStore.Interaction || (SecretStore.Interaction = {}));
40
+ })(SecretStore || (SecretStore = {}));
41
+ export { SecretStore };
42
+ //# sourceMappingURL=SecretStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecretStore.js","sourceRoot":"","sources":["../../../src/api/secrets/SecretStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAElD;;mCAEmC;AACnC,MAAe,WAAW;IAEA,OAAO;IAA7B,YAAsB,OAAiB;uBAAjB,OAAO;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAAa,EAAE,KAAc;QACrD,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAC1H,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,iBAA0B,EAAE,IAAa,EAAE,KAAc;QAC/E,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;QACzH,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAa,EAAE,KAAa;QACvC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1G,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAa,EAAE,KAAa;QACrC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5G,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa;QACpB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACzG,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC/B,CAAC;CAOJ;AAED,WAAU,WAAW;IAEjB,IAAY,WAMX;IAND,WAAY,WAAW;QACnB,gCAAiB,CAAA;QACjB,4BAAa,CAAA;QACb,4BAAa,CAAA;QACb,gCAAiB,CAAA;QACjB,4BAAa,CAAA;IACjB,CAAC,EANW,WAAW,GAAX,YAAA,WAAW,KAAX,YAAA,WAAW,QAMtB;AAEL,CAAC,EAVS,WAAW,KAAX,WAAW,QAUpB;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -0,0 +1,10 @@
1
+ type ResolvedSession = {
2
+ id: string;
3
+ roles: Array<string>;
4
+ tenant?: string;
5
+ };
6
+ interface SessionResolver {
7
+ resolve(sessionToken: string): Promise<ResolvedSession | undefined>;
8
+ }
9
+ export type { SessionResolver, ResolvedSession };
10
+ //# sourceMappingURL=SessionResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionResolver.d.ts","sourceRoot":"","sources":["../../../src/api/sessions/SessionResolver.ts"],"names":[],"mappings":"AACA,KAAK,eAAe,GAAG;IAEnB,EAAE,EAAG,MAAM,CAAC;IACZ,KAAK,EAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,CAAC,EAAG,MAAM,CAAC;CAEpB,CAAC;AAMF,UAAU,eAAe;IAErB,OAAO,CAAC,YAAY,EAAG,MAAM,GAAI,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;CAEzE;AAED,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SessionResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionResolver.js","sourceRoot":"","sources":["../../../src/api/sessions/SessionResolver.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import { Actor } from "../actors/Actor.js";
2
+ import { Auditor } from "../auditing/Auditor.js";
3
+ declare abstract class SqlStore {
4
+ protected auditor: Auditor;
5
+ constructor(auditor: Auditor);
6
+ query(actor: Actor, sql: string, parameters?: Array<any>): Promise<Array<Record<string, any>>>;
7
+ execute(actor: Actor, sql: string, parameters?: Array<any>): Promise<number>;
8
+ abstract close(): Promise<void>;
9
+ protected abstract queryInternal(sql: string, parameters: Array<any>): Promise<Array<Record<string, any>>>;
10
+ protected abstract executeInternal(sql: string, parameters: Array<any>): Promise<number>;
11
+ }
12
+ declare namespace SqlStore {
13
+ enum Interaction {
14
+ QUERY = "QUERY",
15
+ EXECUTE = "EXECUTE"
16
+ }
17
+ }
18
+ export { SqlStore };
19
+ //# sourceMappingURL=SqlStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlStore.d.ts","sourceRoot":"","sources":["../../../src/api/sql/SqlStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAQ/C,uBAAe,QAAQ;IAEP,SAAS,CAAC,OAAO,EAAG,OAAO;IAAvC,YAAsB,OAAO,EAAG,OAAO,EACtC;IAEK,KAAK,CAAC,KAAK,EAAG,KAAK,EAAE,GAAG,EAAG,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC,GAAG,CAAM,GAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAG3G;IAEK,OAAO,CAAC,KAAK,EAAG,KAAK,EAAE,GAAG,EAAG,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC,GAAG,CAAM,GAAI,OAAO,CAAC,MAAM,CAAC,CAGzF;IAED,QAAQ,CAAC,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAG,MAAM,EAAE,UAAU,EAAG,KAAK,CAAC,GAAG,CAAC,GAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9G,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAG,MAAM,EAAE,UAAU,EAAG,KAAK,CAAC,GAAG,CAAC,GAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAE/F;AAED,kBAAU,QAAQ,CAAC;IAEf,KAAY,WAAW;QACnB,KAAK,UAAU;QACf,OAAO,YAAY;KACtB;CAEJ;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { currentAppId } from "../cloud/AppAware.js";
2
+ /* A relational (SQL) store for application data. Public methods audit the
3
+ interaction then defer to the abstract ...Internal. `query` returns rows;
4
+ `execute` runs a statement and returns the number of affected rows. The
5
+ backing engine (SQLite locally, PostgreSQL in the cloud) is chosen by the
6
+ factory; SQL placeholder syntax differs between them (see the docs). */
7
+ class SqlStore {
8
+ auditor;
9
+ constructor(auditor) {
10
+ this.auditor = auditor;
11
+ }
12
+ async query(actor, sql, parameters = []) {
13
+ await this.auditor.audit(currentAppId(), "sql", "*", actor, [SqlStore.Interaction.QUERY], sql, null);
14
+ return this.queryInternal(sql, parameters);
15
+ }
16
+ async execute(actor, sql, parameters = []) {
17
+ await this.auditor.audit(currentAppId(), "sql", "*", actor, [SqlStore.Interaction.EXECUTE], sql, null);
18
+ return this.executeInternal(sql, parameters);
19
+ }
20
+ }
21
+ (function (SqlStore) {
22
+ let Interaction;
23
+ (function (Interaction) {
24
+ Interaction["QUERY"] = "QUERY";
25
+ Interaction["EXECUTE"] = "EXECUTE";
26
+ })(Interaction = SqlStore.Interaction || (SqlStore.Interaction = {}));
27
+ })(SqlStore || (SqlStore = {}));
28
+ export { SqlStore };
29
+ //# sourceMappingURL=SqlStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlStore.js","sourceRoot":"","sources":["../../../src/api/sql/SqlStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAElD;;;;0EAI0E;AAC1E,MAAe,QAAQ;IAEG,OAAO;IAA7B,YAAsB,OAAiB;uBAAjB,OAAO;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,GAAY,EAAE,UAAU,GAAgB,EAAE;QACjE,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACrG,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,GAAY,EAAE,UAAU,GAAgB,EAAE;QACnE,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACvG,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC;CAOJ;AAED,WAAU,QAAQ;IAEd,IAAY,WAGX;IAHD,WAAY,WAAW;QACnB,8BAAe,CAAA;QACf,kCAAmB,CAAA;IACvB,CAAC,EAHW,WAAW,GAAX,SAAA,WAAW,KAAX,SAAA,WAAW,QAGtB;AAEL,CAAC,EAPS,QAAQ,KAAR,QAAQ,QAOjB;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ interface Consumer {
2
+ subscribe(appId: string | undefined, workflowId: string, processJob: (jobId: string) => Promise<void>): void;
3
+ cleanUp(): Promise<void>;
4
+ }
5
+ export { Consumer };
6
+ //# sourceMappingURL=Consumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Consumer.d.ts","sourceRoot":"","sources":["../../../src/api/state-machine/Consumer.ts"],"names":[],"mappings":"AAAA,UAAU,QAAQ;IAEd,SAAS,CAAC,KAAK,EAAG,MAAM,GAAG,SAAS,EAAE,UAAU,EAAG,MAAM,EAAE,UAAU,EAAG,CAAC,KAAK,EAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAI,IAAI,CAAC;IAClH,OAAO,IAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAE7B;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Consumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Consumer.js","sourceRoot":"","sources":["../../../src/api/state-machine/Consumer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { QueueMessage } from "../cloud/QueueMessage.js";
2
+ interface Queue {
3
+ enqueue(jobId: string, appId: string | undefined, workflowId: string): Promise<void>;
4
+ schedule(jobId: string, appId: string | undefined, workflowId: string, due: Date): Promise<void>;
5
+ }
6
+ interface Dequeue extends Queue {
7
+ dequeueSome(): Promise<Array<QueueMessage>>;
8
+ }
9
+ declare const Dequeue: {
10
+ supports(queue: Queue): queue is Dequeue;
11
+ };
12
+ export { Queue, Dequeue };
13
+ //# sourceMappingURL=Queue.d.ts.map