anbaric-tsapi 1.21.5 → 1.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/actions/Action.d.ts +14 -0
- package/dist/api/actions/Action.d.ts.map +1 -0
- package/dist/api/actions/Action.js +16 -0
- package/dist/api/actions/Action.js.map +1 -0
- package/dist/api/actions/AgenticAction.d.ts +11 -0
- package/dist/api/actions/AgenticAction.d.ts.map +1 -0
- package/dist/api/actions/AgenticAction.js +14 -0
- package/dist/api/actions/AgenticAction.js.map +1 -0
- package/dist/api/actions/Await.d.ts +15 -0
- package/dist/api/actions/Await.d.ts.map +1 -0
- package/{src/api/actions/Await.ts → dist/api/actions/Await.js} +12 -18
- package/dist/api/actions/Await.js.map +1 -0
- package/dist/api/actions/WaitForInput.d.ts +19 -0
- package/dist/api/actions/WaitForInput.d.ts.map +1 -0
- package/dist/api/actions/WaitForInput.js +25 -0
- package/dist/api/actions/WaitForInput.js.map +1 -0
- package/dist/api/actors/Actor.d.ts +8 -0
- package/dist/api/actors/Actor.d.ts.map +1 -0
- package/dist/api/actors/Actor.js +2 -0
- package/dist/api/actors/Actor.js.map +1 -0
- package/dist/api/actors/SystemActor.d.ts +9 -0
- package/dist/api/actors/SystemActor.d.ts.map +1 -0
- package/dist/api/actors/SystemActor.js +8 -0
- package/dist/api/actors/SystemActor.js.map +1 -0
- package/dist/api/actors/agents/Agent.d.ts +16 -0
- package/dist/api/actors/agents/Agent.d.ts.map +1 -0
- package/dist/api/actors/agents/Agent.js +21 -0
- package/dist/api/actors/agents/Agent.js.map +1 -0
- package/dist/api/actors/agents/AgentMessage.d.ts +6 -0
- package/dist/api/actors/agents/AgentMessage.d.ts.map +1 -0
- package/dist/api/actors/agents/AgentMessage.js +2 -0
- package/dist/api/actors/agents/AgentMessage.js.map +1 -0
- package/dist/api/actors/agents/AgentRequest.d.ts +7 -0
- package/dist/api/actors/agents/AgentRequest.d.ts.map +1 -0
- package/dist/api/actors/agents/AgentRequest.js +2 -0
- package/dist/api/actors/agents/AgentRequest.js.map +1 -0
- package/dist/api/auditing/Auditor.d.ts +6 -0
- package/dist/api/auditing/Auditor.d.ts.map +1 -0
- package/dist/api/auditing/Auditor.js +2 -0
- package/dist/api/auditing/Auditor.js.map +1 -0
- package/dist/api/auditing/NoOpAuditor.d.ts +7 -0
- package/dist/api/auditing/NoOpAuditor.d.ts.map +1 -0
- package/dist/api/auditing/NoOpAuditor.js +9 -0
- package/dist/api/auditing/NoOpAuditor.js.map +1 -0
- package/dist/api/cloud/AppAware.d.ts +7 -0
- package/dist/api/cloud/AppAware.d.ts.map +1 -0
- package/dist/api/cloud/AppAware.js +5 -0
- package/dist/api/cloud/AppAware.js.map +1 -0
- package/dist/api/cloud/AuditRecord.d.ts +14 -0
- package/dist/api/cloud/AuditRecord.d.ts.map +1 -0
- package/dist/api/cloud/AuditRecord.js +2 -0
- package/dist/api/cloud/AuditRecord.js.map +1 -0
- package/dist/api/cloud/QueueMessage.d.ts +8 -0
- package/dist/api/cloud/QueueMessage.d.ts.map +1 -0
- package/dist/api/cloud/QueueMessage.js +2 -0
- package/dist/api/cloud/QueueMessage.js.map +1 -0
- package/dist/api/cloud/WorkflowDefinition.d.ts +33 -0
- package/dist/api/cloud/WorkflowDefinition.d.ts.map +1 -0
- package/dist/api/cloud/WorkflowDefinition.js +28 -0
- package/dist/api/cloud/WorkflowDefinition.js.map +1 -0
- package/dist/api/documents/JsonSchema.d.ts +11 -0
- package/dist/api/documents/JsonSchema.d.ts.map +1 -0
- package/dist/api/documents/JsonSchema.js +40 -0
- package/dist/api/documents/JsonSchema.js.map +1 -0
- package/dist/api/documents/JsonStore.d.ts +27 -0
- package/dist/api/documents/JsonStore.d.ts.map +1 -0
- package/dist/api/documents/JsonStore.js +43 -0
- package/dist/api/documents/JsonStore.js.map +1 -0
- package/dist/api/jobs/Job.d.ts +24 -0
- package/dist/api/jobs/Job.d.ts.map +1 -0
- package/{src/api/jobs/Job.ts → dist/api/jobs/Job.js} +19 -32
- package/dist/api/jobs/Job.js.map +1 -0
- package/dist/api/jobs/JobPersistence.d.ts +43 -0
- package/dist/api/jobs/JobPersistence.d.ts.map +1 -0
- package/dist/api/jobs/JobPersistence.js +87 -0
- package/dist/api/jobs/JobPersistence.js.map +1 -0
- package/dist/api/jobs/JobSerialization.d.ts +21 -0
- package/dist/api/jobs/JobSerialization.d.ts.map +1 -0
- package/dist/api/jobs/JobSerialization.js +22 -0
- package/dist/api/jobs/JobSerialization.js.map +1 -0
- package/dist/api/jobs/PropertyDefinition.d.ts +9 -0
- package/dist/api/jobs/PropertyDefinition.d.ts.map +1 -0
- package/dist/api/jobs/PropertyDefinition.js +14 -0
- package/dist/api/jobs/PropertyDefinition.js.map +1 -0
- package/dist/api/secrets/SecretStore.d.ts +26 -0
- package/dist/api/secrets/SecretStore.d.ts.map +1 -0
- package/dist/api/secrets/SecretStore.js +42 -0
- package/dist/api/secrets/SecretStore.js.map +1 -0
- package/dist/api/sessions/SessionResolver.d.ts +10 -0
- package/dist/api/sessions/SessionResolver.d.ts.map +1 -0
- package/dist/api/sessions/SessionResolver.js +2 -0
- package/dist/api/sessions/SessionResolver.js.map +1 -0
- package/dist/api/sql/SqlStore.d.ts +19 -0
- package/dist/api/sql/SqlStore.d.ts.map +1 -0
- package/dist/api/sql/SqlStore.js +29 -0
- package/dist/api/sql/SqlStore.js.map +1 -0
- package/dist/api/state-machine/Consumer.d.ts +6 -0
- package/dist/api/state-machine/Consumer.d.ts.map +1 -0
- package/dist/api/state-machine/Consumer.js +2 -0
- package/dist/api/state-machine/Consumer.js.map +1 -0
- package/dist/api/state-machine/Queue.d.ts +13 -0
- package/dist/api/state-machine/Queue.d.ts.map +1 -0
- package/dist/api/state-machine/Queue.js +7 -0
- package/dist/api/state-machine/Queue.js.map +1 -0
- package/dist/api/states/State.d.ts +13 -0
- package/dist/api/states/State.d.ts.map +1 -0
- package/dist/api/states/State.js +17 -0
- package/dist/api/states/State.js.map +1 -0
- package/dist/api/states/Terminal.d.ts +13 -0
- package/dist/api/states/Terminal.d.ts.map +1 -0
- package/dist/api/states/Terminal.js +19 -0
- package/dist/api/states/Terminal.js.map +1 -0
- package/dist/api/transitions/Transition.d.ts +8 -0
- package/dist/api/transitions/Transition.d.ts.map +1 -0
- package/dist/api/transitions/Transition.js +10 -0
- package/dist/api/transitions/Transition.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/package.json +14 -5
- package/src/api/actions/Action.ts +0 -25
- package/src/api/actions/AgenticAction.ts +0 -24
- package/src/api/actions/WaitForInput.ts +0 -43
- package/src/api/actors/Actor.ts +0 -11
- package/src/api/actors/SystemActor.ts +0 -13
- package/src/api/actors/agents/Agent.ts +0 -32
- package/src/api/actors/agents/AgentMessage.ts +0 -8
- package/src/api/actors/agents/AgentRequest.ts +0 -10
- package/src/api/auditing/Auditor.ts +0 -13
- package/src/api/auditing/NoOpAuditor.ts +0 -15
- package/src/api/cloud/AppAware.ts +0 -14
- package/src/api/cloud/AuditRecord.ts +0 -14
- package/src/api/cloud/QueueMessage.ts +0 -8
- package/src/api/cloud/WorkflowDefinition.ts +0 -49
- package/src/api/documents/JsonSchema.ts +0 -53
- package/src/api/documents/JsonStore.ts +0 -56
- package/src/api/jobs/JobPersistence.ts +0 -141
- package/src/api/jobs/JobSerialization.ts +0 -45
- package/src/api/jobs/PropertyDefinition.ts +0 -12
- package/src/api/secrets/SecretStore.ts +0 -57
- package/src/api/sessions/SessionResolver.ts +0 -20
- package/src/api/sql/SqlStore.ts +0 -41
- package/src/api/state-machine/Consumer.ts +0 -8
- package/src/api/state-machine/Queue.ts +0 -22
- package/src/api/states/State.ts +0 -25
- package/src/api/states/Terminal.ts +0 -25
- package/src/api/transitions/Transition.ts +0 -13
- 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
|
-
|
|
6
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
|
23
|
-
waitingFor
|
|
24
|
-
awaitMetadata
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
export const Status = {
|
|
37
|
+
(function (Job) {
|
|
38
|
+
Job.Status = {
|
|
51
39
|
ACTIVE: "active",
|
|
52
40
|
AWAITING_INPUT: "Awaiting input",
|
|
53
|
-
}
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyDefinition.d.ts","sourceRoot":"","sources":["../../../src/api/jobs/PropertyDefinition.ts"],"names":[],"mappings":"AAGA,cAAM,kBAAkB;IAEpB,EAAE,EAAG,MAAM,CAAC;IACZ,QAAQ,EAAG,OAAO,CAAS;IAC3B,OAAO,CAAC,EAAG,GAAG,CAAC;IACf,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,14 @@
|
|
|
1
|
+
/* An `example` is carried into the workflow definition, so tools that start a
|
|
2
|
+
job - the admin console's Start dialog, generated docs - can offer a
|
|
3
|
+
realistic value rather than an empty placeholder. */
|
|
4
|
+
class PropertyDefinition {
|
|
5
|
+
id;
|
|
6
|
+
required = false;
|
|
7
|
+
example;
|
|
8
|
+
validation = (value) => true;
|
|
9
|
+
constructor(id) {
|
|
10
|
+
this.id = id;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export { PropertyDefinition };
|
|
14
|
+
//# sourceMappingURL=PropertyDefinition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyDefinition.js","sourceRoot":"","sources":["../../../src/api/jobs/PropertyDefinition.ts"],"names":[],"mappings":"AAAA;;uDAEuD;AACvD,MAAM,kBAAkB;IAEpB,EAAE,CAAU;IACZ,QAAQ,GAAa,KAAK,CAAC;IAC3B,OAAO,CAAQ;IACf,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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"Consumer.js","sourceRoot":"","sources":["../../../src/api/state-machine/Consumer.ts"],"names":[],"mappings":""}
|