@duraflows/nestjs 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/controllers/dto/available-events-query.dto.d.ts +4 -0
- package/dist/controllers/dto/available-events-query.dto.d.ts.map +1 -0
- package/dist/controllers/dto/available-events-query.dto.js +18 -0
- package/dist/controllers/dto/available-events-query.dto.js.map +1 -0
- package/dist/controllers/dto/create-instance.dto.d.ts +7 -0
- package/dist/controllers/dto/create-instance.dto.d.ts.map +1 -0
- package/dist/controllers/dto/create-instance.dto.js +36 -0
- package/dist/controllers/dto/create-instance.dto.js.map +1 -0
- package/dist/controllers/dto/history-query.dto.d.ts +8 -0
- package/dist/controllers/dto/history-query.dto.d.ts.map +1 -0
- package/dist/controllers/dto/history-query.dto.js +32 -0
- package/dist/controllers/dto/history-query.dto.js.map +1 -0
- package/dist/controllers/dto/index.d.ts +6 -0
- package/dist/controllers/dto/index.d.ts.map +1 -0
- package/dist/controllers/dto/index.js +6 -0
- package/dist/controllers/dto/index.js.map +1 -0
- package/dist/controllers/dto/timeout-process.dto.d.ts +4 -0
- package/dist/controllers/dto/timeout-process.dto.d.ts.map +1 -0
- package/dist/controllers/dto/timeout-process.dto.js +19 -0
- package/dist/controllers/dto/timeout-process.dto.js.map +1 -0
- package/dist/controllers/dto/trigger-event.dto.d.ts +9 -0
- package/dist/controllers/dto/trigger-event.dto.d.ts.map +1 -0
- package/dist/controllers/dto/trigger-event.dto.js +36 -0
- package/dist/controllers/dto/trigger-event.dto.js.map +1 -0
- package/dist/controllers/workflow-event.controller.d.ts +9 -0
- package/dist/controllers/workflow-event.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-event.controller.js +45 -0
- package/dist/controllers/workflow-event.controller.js.map +1 -0
- package/dist/controllers/workflow-instance.controller.d.ts +10 -0
- package/dist/controllers/workflow-instance.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-instance.controller.js +57 -0
- package/dist/controllers/workflow-instance.controller.js.map +1 -0
- package/dist/controllers/workflow-query.controller.d.ts +10 -0
- package/dist/controllers/workflow-query.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-query.controller.js +55 -0
- package/dist/controllers/workflow-query.controller.js.map +1 -0
- package/dist/controllers/workflow-timeout.controller.d.ts +9 -0
- package/dist/controllers/workflow-timeout.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-timeout.controller.js +38 -0
- package/dist/controllers/workflow-timeout.controller.js.map +1 -0
- package/dist/decorators/workflow-command.decorator.d.ts +5 -0
- package/dist/decorators/workflow-command.decorator.d.ts.map +1 -0
- package/dist/decorators/workflow-command.decorator.js +14 -0
- package/dist/decorators/workflow-command.decorator.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/command-discovery.d.ts +5 -0
- package/dist/providers/command-discovery.d.ts.map +1 -0
- package/dist/providers/command-discovery.js +31 -0
- package/dist/providers/command-discovery.js.map +1 -0
- package/dist/providers/injection-tokens.d.ts +8 -0
- package/dist/providers/injection-tokens.d.ts.map +1 -0
- package/dist/providers/injection-tokens.js +8 -0
- package/dist/providers/injection-tokens.js.map +1 -0
- package/dist/providers/nest-command-registry.d.ts +16 -0
- package/dist/providers/nest-command-registry.d.ts.map +1 -0
- package/dist/providers/nest-command-registry.js +28 -0
- package/dist/providers/nest-command-registry.js.map +1 -0
- package/dist/services/workflow-timeout.service.d.ts +7 -0
- package/dist/services/workflow-timeout.service.d.ts.map +1 -0
- package/dist/services/workflow-timeout.service.js +30 -0
- package/dist/services/workflow-timeout.service.js.map +1 -0
- package/dist/services/workflow.service.d.ts +16 -0
- package/dist/services/workflow.service.d.ts.map +1 -0
- package/dist/services/workflow.service.js +48 -0
- package/dist/services/workflow.service.js.map +1 -0
- package/dist/workflow.module.d.ts +27 -0
- package/dist/workflow.module.d.ts.map +1 -0
- package/dist/workflow.module.js +206 -0
- package/dist/workflow.module.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAOtD,WAAW;AACX,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAEhF,YAAY;AACZ,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,EAC5B,2BAA2B,EAC3B,cAAc,GACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAG3E,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAE5G,cAAc;AACd,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AAEzF,OAAO;AACP,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAkCpC,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { DiscoveryService } from "@nestjs/core";
|
|
2
|
+
import type { WorkflowCommandRegistration } from "./nest-command-registry.js";
|
|
3
|
+
export declare function discoverDecoratedCommands(discoveryService: DiscoveryService): WorkflowCommandRegistration[];
|
|
4
|
+
export declare function mergeCommandRegistrations(explicit: WorkflowCommandRegistration[], discovered: WorkflowCommandRegistration[]): WorkflowCommandRegistration[];
|
|
5
|
+
//# sourceMappingURL=command-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-discovery.d.ts","sourceRoot":"","sources":["../../src/providers/command-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIrD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAM9E,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,2BAA2B,EAAE,CAsB3G;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,2BAA2B,EAAE,EACvC,UAAU,EAAE,2BAA2B,EAAE,GACxC,2BAA2B,EAAE,CAY/B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { WorkflowError } from "@duraflows/core";
|
|
2
|
+
import { InternalWorkflowCommandDecorator, WORKFLOW_COMMAND_METADATA_KEY, } from "../decorators/workflow-command.decorator.js";
|
|
3
|
+
export function discoverDecoratedCommands(discoveryService) {
|
|
4
|
+
const providers = discoveryService.getProviders({
|
|
5
|
+
metadataKey: WORKFLOW_COMMAND_METADATA_KEY,
|
|
6
|
+
});
|
|
7
|
+
const registrations = [];
|
|
8
|
+
for (const wrapper of providers) {
|
|
9
|
+
const metadata = discoveryService.getMetadataByDecorator(InternalWorkflowCommandDecorator, wrapper);
|
|
10
|
+
// metadata is the string value passed to @WorkflowCommand("name"),
|
|
11
|
+
// or undefined if not set
|
|
12
|
+
const name = Array.isArray(metadata) ? metadata[0] : metadata;
|
|
13
|
+
if (typeof name !== "string")
|
|
14
|
+
continue;
|
|
15
|
+
const cls = wrapper.metatype;
|
|
16
|
+
if (!cls)
|
|
17
|
+
continue;
|
|
18
|
+
registrations.push({ name, useClass: cls });
|
|
19
|
+
}
|
|
20
|
+
return registrations;
|
|
21
|
+
}
|
|
22
|
+
export function mergeCommandRegistrations(explicit, discovered) {
|
|
23
|
+
const explicitNames = new Set(explicit.map((r) => r.name));
|
|
24
|
+
for (const reg of discovered) {
|
|
25
|
+
if (explicitNames.has(reg.name)) {
|
|
26
|
+
throw new WorkflowError(`Command "${reg.name}" is registered both explicitly in module options and via @WorkflowCommand decorator. Remove one registration to resolve the conflict.`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return [...explicit, ...discovered];
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=command-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-discovery.js","sourceRoot":"","sources":["../../src/providers/command-discovery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EACL,gCAAgC,EAChC,6BAA6B,GAC9B,MAAM,6CAA6C,CAAC;AAErD,MAAM,UAAU,yBAAyB,CAAC,gBAAkC;IAC1E,MAAM,SAAS,GAAG,gBAAgB,CAAC,YAAY,CAAC;QAC9C,WAAW,EAAE,6BAA6B;KAC3C,CAAC,CAAC;IAEH,MAAM,aAAa,GAAkC,EAAE,CAAC;IAExD,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;QAEpG,mEAAmE;QACnE,0BAA0B;QAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9D,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QAEvC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAiC,CAAC;QACtD,IAAI,CAAC,GAAG;YAAE,SAAS;QAEnB,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,QAAuC,EACvC,UAAyC;IAEzC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3D,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,aAAa,CACrB,YAAY,GAAG,CAAC,IAAI,wIAAwI,CAC7J,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const WORKFLOW_RUNTIME: unique symbol;
|
|
2
|
+
export declare const WORKFLOW_INSTANCE_STORE: unique symbol;
|
|
3
|
+
export declare const WORKFLOW_HISTORY_STORE: unique symbol;
|
|
4
|
+
export declare const WORKFLOW_COMMAND_REGISTRY: unique symbol;
|
|
5
|
+
export declare const WORKFLOW_DEFINITION_REGISTRY: unique symbol;
|
|
6
|
+
export declare const WORKFLOW_TRANSACTION_RUNNER: unique symbol;
|
|
7
|
+
export declare const WORKFLOW_CLOCK: unique symbol;
|
|
8
|
+
//# sourceMappingURL=injection-tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injection-tokens.d.ts","sourceRoot":"","sources":["../../src/providers/injection-tokens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAC3D,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AACzE,eAAO,MAAM,sBAAsB,eAAmC,CAAC;AACvE,eAAO,MAAM,yBAAyB,eAAsC,CAAC;AAC7E,eAAO,MAAM,4BAA4B,eAAyC,CAAC;AACnF,eAAO,MAAM,2BAA2B,eAAwC,CAAC;AACjF,eAAO,MAAM,cAAc,eAA2B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const WORKFLOW_RUNTIME = Symbol("WORKFLOW_RUNTIME");
|
|
2
|
+
export const WORKFLOW_INSTANCE_STORE = Symbol("WORKFLOW_INSTANCE_STORE");
|
|
3
|
+
export const WORKFLOW_HISTORY_STORE = Symbol("WORKFLOW_HISTORY_STORE");
|
|
4
|
+
export const WORKFLOW_COMMAND_REGISTRY = Symbol("WORKFLOW_COMMAND_REGISTRY");
|
|
5
|
+
export const WORKFLOW_DEFINITION_REGISTRY = Symbol("WORKFLOW_DEFINITION_REGISTRY");
|
|
6
|
+
export const WORKFLOW_TRANSACTION_RUNNER = Symbol("WORKFLOW_TRANSACTION_RUNNER");
|
|
7
|
+
export const WORKFLOW_CLOCK = Symbol("WORKFLOW_CLOCK");
|
|
8
|
+
//# sourceMappingURL=injection-tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injection-tokens.js","sourceRoot":"","sources":["../../src/providers/injection-tokens.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC;AACnF,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ModuleRef } from "@nestjs/core";
|
|
2
|
+
import type { Type } from "@nestjs/common";
|
|
3
|
+
import type { WorkflowCommandRegistry, WorkflowCommand } from "@duraflows/core";
|
|
4
|
+
export interface WorkflowCommandRegistration {
|
|
5
|
+
name: string;
|
|
6
|
+
useClass: Type<WorkflowCommand>;
|
|
7
|
+
}
|
|
8
|
+
export declare class NestCommandRegistry implements WorkflowCommandRegistry {
|
|
9
|
+
private readonly moduleRef;
|
|
10
|
+
private readonly registrations;
|
|
11
|
+
constructor(moduleRef: ModuleRef, registrations?: WorkflowCommandRegistration[]);
|
|
12
|
+
get(name: string): WorkflowCommand;
|
|
13
|
+
has(name: string): boolean;
|
|
14
|
+
getRegisteredNames(): Set<string>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=nest-command-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nest-command-registry.d.ts","sourceRoot":"","sources":["../../src/providers/nest-command-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGhF,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;CACjC;AAED,qBAAa,mBAAoB,YAAW,uBAAuB;IAI/D,OAAO,CAAC,QAAQ,CAAC,SAAS;IAH5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4C;gBAGvD,SAAS,EAAE,SAAS,EACrC,aAAa,GAAE,2BAA2B,EAAO;IAUnD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAQlC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC;CAGlC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { WorkflowError } from "@duraflows/core";
|
|
2
|
+
export class NestCommandRegistry {
|
|
3
|
+
moduleRef;
|
|
4
|
+
registrations = new Map();
|
|
5
|
+
constructor(moduleRef, registrations = []) {
|
|
6
|
+
this.moduleRef = moduleRef;
|
|
7
|
+
for (const reg of registrations) {
|
|
8
|
+
if (this.registrations.has(reg.name)) {
|
|
9
|
+
throw new WorkflowError(`Command "${reg.name}" is already registered`);
|
|
10
|
+
}
|
|
11
|
+
this.registrations.set(reg.name, reg.useClass);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
get(name) {
|
|
15
|
+
const cls = this.registrations.get(name);
|
|
16
|
+
if (!cls) {
|
|
17
|
+
throw new WorkflowError(`Command "${name}" not found in registry`);
|
|
18
|
+
}
|
|
19
|
+
return this.moduleRef.get(cls, { strict: false });
|
|
20
|
+
}
|
|
21
|
+
has(name) {
|
|
22
|
+
return this.registrations.has(name);
|
|
23
|
+
}
|
|
24
|
+
getRegisteredNames() {
|
|
25
|
+
return new Set(this.registrations.keys());
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=nest-command-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nest-command-registry.js","sourceRoot":"","sources":["../../src/providers/nest-command-registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD,MAAM,OAAO,mBAAmB;IAIX;IAHF,aAAa,GAAG,IAAI,GAAG,EAAiC,CAAC;IAE1E,YACmB,SAAoB,EACrC,gBAA+C,EAAE;QADhC,cAAS,GAAT,SAAS,CAAW;QAGrC,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,aAAa,CAAC,YAAY,GAAG,CAAC,IAAI,yBAAyB,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAY;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,aAAa,CAAC,YAAY,IAAI,yBAAyB,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WorkflowRuntime, ProcessExpiredWorkflowsResult } from "@duraflows/core";
|
|
2
|
+
export declare class WorkflowTimeoutService {
|
|
3
|
+
private readonly runtime;
|
|
4
|
+
constructor(runtime: WorkflowRuntime);
|
|
5
|
+
processExpiredWorkflows(limit?: number): Promise<ProcessExpiredWorkflowsResult>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=workflow-timeout.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-timeout.service.d.ts","sourceRoot":"","sources":["../../src/services/workflow-timeout.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAGtF,qBACa,sBAAsB;IAG/B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,eAAe;IAGrC,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;CAGtF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { Inject, Injectable } from "@nestjs/common";
|
|
14
|
+
import { WORKFLOW_RUNTIME } from "../providers/injection-tokens.js";
|
|
15
|
+
let WorkflowTimeoutService = class WorkflowTimeoutService {
|
|
16
|
+
runtime;
|
|
17
|
+
constructor(runtime) {
|
|
18
|
+
this.runtime = runtime;
|
|
19
|
+
}
|
|
20
|
+
async processExpiredWorkflows(limit) {
|
|
21
|
+
return this.runtime.processExpiredWorkflows({ limit });
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
WorkflowTimeoutService = __decorate([
|
|
25
|
+
Injectable(),
|
|
26
|
+
__param(0, Inject(WORKFLOW_RUNTIME)),
|
|
27
|
+
__metadata("design:paramtypes", [Function])
|
|
28
|
+
], WorkflowTimeoutService);
|
|
29
|
+
export { WorkflowTimeoutService };
|
|
30
|
+
//# sourceMappingURL=workflow-timeout.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-timeout.service.js","sourceRoot":"","sources":["../../src/services/workflow-timeout.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAG7D,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAGd;IAFnB,YAEmB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IACxC,CAAC;IAEJ,KAAK,CAAC,uBAAuB,CAAC,KAAc;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;CACF,CAAA;AATY,sBAAsB;IADlC,UAAU,EAAE;IAGR,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;;GAFhB,sBAAsB,CASlC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { WorkflowRuntime, CreateWorkflowInstanceInput, TriggerWorkflowEventInput, GetAvailableEventsInput, WorkflowInstance, WorkflowExecutionResult, AvailableWorkflowEvent, WorkflowInstanceStore, WorkflowHistoryStore, WorkflowHistoryRecord } from "@duraflows/core";
|
|
2
|
+
export declare class WorkflowService {
|
|
3
|
+
private readonly runtime;
|
|
4
|
+
private readonly instanceStore;
|
|
5
|
+
private readonly historyStore;
|
|
6
|
+
constructor(runtime: WorkflowRuntime, instanceStore: WorkflowInstanceStore, historyStore: WorkflowHistoryStore);
|
|
7
|
+
createInstance(input: CreateWorkflowInstanceInput): Promise<WorkflowInstance>;
|
|
8
|
+
triggerEvent(input: TriggerWorkflowEventInput): Promise<WorkflowExecutionResult>;
|
|
9
|
+
getAvailableEvents(input: GetAvailableEventsInput): Promise<AvailableWorkflowEvent[]>;
|
|
10
|
+
getInstance(uuid: string): Promise<WorkflowInstance | null>;
|
|
11
|
+
getHistory(workflowInstanceUuid: string, options?: {
|
|
12
|
+
limit?: number;
|
|
13
|
+
offset?: number;
|
|
14
|
+
}): Promise<WorkflowHistoryRecord[]>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=workflow.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.service.d.ts","sourceRoot":"","sources":["../../src/services/workflow.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAGzB,qBACa,eAAe;IAGxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAJZ,OAAO,EAAE,eAAe,EAExB,aAAa,EAAE,qBAAqB,EAEpC,YAAY,EAAE,oBAAoB;IAG/C,cAAc,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI7E,YAAY,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIhF,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAIrF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAI3D,UAAU,CACd,oBAAoB,EAAE,MAAM,EAC5B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,qBAAqB,EAAE,CAAC;CAGpC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { Inject, Injectable } from "@nestjs/common";
|
|
14
|
+
import { WORKFLOW_RUNTIME, WORKFLOW_INSTANCE_STORE, WORKFLOW_HISTORY_STORE } from "../providers/injection-tokens.js";
|
|
15
|
+
let WorkflowService = class WorkflowService {
|
|
16
|
+
runtime;
|
|
17
|
+
instanceStore;
|
|
18
|
+
historyStore;
|
|
19
|
+
constructor(runtime, instanceStore, historyStore) {
|
|
20
|
+
this.runtime = runtime;
|
|
21
|
+
this.instanceStore = instanceStore;
|
|
22
|
+
this.historyStore = historyStore;
|
|
23
|
+
}
|
|
24
|
+
async createInstance(input) {
|
|
25
|
+
return this.runtime.createInstance(input);
|
|
26
|
+
}
|
|
27
|
+
async triggerEvent(input) {
|
|
28
|
+
return this.runtime.triggerEvent(input);
|
|
29
|
+
}
|
|
30
|
+
async getAvailableEvents(input) {
|
|
31
|
+
return this.runtime.getAvailableEvents(input);
|
|
32
|
+
}
|
|
33
|
+
async getInstance(uuid) {
|
|
34
|
+
return this.instanceStore.findByUuid(uuid);
|
|
35
|
+
}
|
|
36
|
+
async getHistory(workflowInstanceUuid, options) {
|
|
37
|
+
return this.historyStore.findByInstanceUuid(workflowInstanceUuid, options);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
WorkflowService = __decorate([
|
|
41
|
+
Injectable(),
|
|
42
|
+
__param(0, Inject(WORKFLOW_RUNTIME)),
|
|
43
|
+
__param(1, Inject(WORKFLOW_INSTANCE_STORE)),
|
|
44
|
+
__param(2, Inject(WORKFLOW_HISTORY_STORE)),
|
|
45
|
+
__metadata("design:paramtypes", [Function, Object, Object])
|
|
46
|
+
], WorkflowService);
|
|
47
|
+
export { WorkflowService };
|
|
48
|
+
//# sourceMappingURL=workflow.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.service.js","sourceRoot":"","sources":["../../src/services/workflow.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAapD,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAG9G,IAAM,eAAe,GAArB,MAAM,eAAe;IAGP;IAEA;IAEA;IANnB,YAEmB,OAAwB,EAExB,aAAoC,EAEpC,YAAkC;QAJlC,YAAO,GAAP,OAAO,CAAiB;QAExB,kBAAa,GAAb,aAAa,CAAuB;QAEpC,iBAAY,GAAZ,YAAY,CAAsB;IAClD,CAAC;IAEJ,KAAK,CAAC,cAAc,CAAC,KAAkC;QACrD,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAgC;QACjD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAA8B;QACrD,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,UAAU,CACd,oBAA4B,EAC5B,OAA6C;QAE7C,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;CACF,CAAA;AAhCY,eAAe;IAD3B,UAAU,EAAE;IAGR,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAExB,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;IAE/B,WAAA,MAAM,CAAC,sBAAsB,CAAC,CAAA;;GANtB,eAAe,CAgC3B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type DynamicModule, type Type, type InjectionToken } from "@nestjs/common";
|
|
2
|
+
import type { WorkflowDefinition, WorkflowClock, WorkflowPersistenceProvider } from "@duraflows/core";
|
|
3
|
+
import { type WorkflowCommandRegistration } from "./providers/nest-command-registry.js";
|
|
4
|
+
export interface WorkflowModuleOptions {
|
|
5
|
+
workflows: WorkflowDefinition[];
|
|
6
|
+
commands?: WorkflowCommandRegistration[];
|
|
7
|
+
persistence: WorkflowPersistenceProvider;
|
|
8
|
+
clock?: WorkflowClock;
|
|
9
|
+
enableControllers?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface WorkflowModuleFactoryConfig {
|
|
12
|
+
workflows: WorkflowDefinition[];
|
|
13
|
+
persistence: WorkflowPersistenceProvider;
|
|
14
|
+
clock?: WorkflowClock;
|
|
15
|
+
}
|
|
16
|
+
export interface WorkflowModuleAsyncOptions {
|
|
17
|
+
imports?: Type<unknown>[];
|
|
18
|
+
commands?: WorkflowCommandRegistration[];
|
|
19
|
+
enableControllers?: boolean;
|
|
20
|
+
useFactory: (...args: any[]) => Promise<WorkflowModuleFactoryConfig> | WorkflowModuleFactoryConfig;
|
|
21
|
+
inject?: InjectionToken[];
|
|
22
|
+
}
|
|
23
|
+
export declare class WorkflowModule {
|
|
24
|
+
static forRoot(options: WorkflowModuleOptions): DynamicModule;
|
|
25
|
+
static forRootAsync(options: WorkflowModuleAsyncOptions): DynamicModule;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=workflow.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.module.d.ts","sourceRoot":"","sources":["../src/workflow.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,aAAa,EAAE,KAAK,IAAI,EAAiB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3G,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,2BAA2B,EAK5B,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAuB,KAAK,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAkB7G,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,2BAA2B,EAAE,CAAC;IACzC,WAAW,EAAE,2BAA2B,CAAC;IACzC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,WAAW,EAAE,2BAA2B,CAAC;IACzC,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,2BAA2B,EAAE,CAAC;IACzC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,2BAA2B,CAAC,GAAG,2BAA2B,CAAC;IACnG,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;CAC3B;AAcD,qBACa,cAAc;IACzB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa;IA4F7D,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,0BAA0B,GAAG,aAAa;CAqGxE"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var WorkflowModule_1;
|
|
8
|
+
import { Module } from "@nestjs/common";
|
|
9
|
+
import { DiscoveryModule, DiscoveryService, ModuleRef } from "@nestjs/core";
|
|
10
|
+
import { InMemoryDefinitionRegistry, WorkflowRuntime, WorkflowValidator, WorkflowCompiler, } from "@duraflows/core";
|
|
11
|
+
import { NestCommandRegistry } from "./providers/nest-command-registry.js";
|
|
12
|
+
import { discoverDecoratedCommands, mergeCommandRegistrations } from "./providers/command-discovery.js";
|
|
13
|
+
import { WORKFLOW_RUNTIME, WORKFLOW_INSTANCE_STORE, WORKFLOW_HISTORY_STORE, WORKFLOW_COMMAND_REGISTRY, WORKFLOW_DEFINITION_REGISTRY, WORKFLOW_TRANSACTION_RUNNER, WORKFLOW_CLOCK, } from "./providers/injection-tokens.js";
|
|
14
|
+
import { WorkflowService } from "./services/workflow.service.js";
|
|
15
|
+
import { WorkflowTimeoutService } from "./services/workflow-timeout.service.js";
|
|
16
|
+
import { WorkflowEventController } from "./controllers/workflow-event.controller.js";
|
|
17
|
+
import { WorkflowQueryController } from "./controllers/workflow-query.controller.js";
|
|
18
|
+
import { WorkflowTimeoutController } from "./controllers/workflow-timeout.controller.js";
|
|
19
|
+
import { WorkflowInstanceController } from "./controllers/workflow-instance.controller.js";
|
|
20
|
+
const EXPORTED_TOKENS = [
|
|
21
|
+
WorkflowService,
|
|
22
|
+
WorkflowTimeoutService,
|
|
23
|
+
WORKFLOW_RUNTIME,
|
|
24
|
+
WORKFLOW_INSTANCE_STORE,
|
|
25
|
+
WORKFLOW_HISTORY_STORE,
|
|
26
|
+
WORKFLOW_DEFINITION_REGISTRY,
|
|
27
|
+
WORKFLOW_COMMAND_REGISTRY,
|
|
28
|
+
WORKFLOW_TRANSACTION_RUNNER,
|
|
29
|
+
WORKFLOW_CLOCK,
|
|
30
|
+
];
|
|
31
|
+
let WorkflowModule = WorkflowModule_1 = class WorkflowModule {
|
|
32
|
+
static forRoot(options) {
|
|
33
|
+
const controllers = options.enableControllers
|
|
34
|
+
? [WorkflowInstanceController, WorkflowEventController, WorkflowQueryController, WorkflowTimeoutController]
|
|
35
|
+
: [];
|
|
36
|
+
const explicitCommands = options.commands ?? [];
|
|
37
|
+
const commandClasses = explicitCommands.map((c) => c.useClass);
|
|
38
|
+
const clock = options.clock ?? { now: () => new Date() };
|
|
39
|
+
const providers = [
|
|
40
|
+
...commandClasses,
|
|
41
|
+
{
|
|
42
|
+
provide: WORKFLOW_COMMAND_REGISTRY,
|
|
43
|
+
useFactory: (moduleRef, discoveryService) => {
|
|
44
|
+
const discovered = discoverDecoratedCommands(discoveryService);
|
|
45
|
+
const merged = mergeCommandRegistrations(explicitCommands, discovered);
|
|
46
|
+
return new NestCommandRegistry(moduleRef, merged);
|
|
47
|
+
},
|
|
48
|
+
inject: [ModuleRef, DiscoveryService],
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
provide: WORKFLOW_DEFINITION_REGISTRY,
|
|
52
|
+
useFactory: (commandRegistry) => {
|
|
53
|
+
const knownCommandNames = commandRegistry.getRegisteredNames();
|
|
54
|
+
const registry = new InMemoryDefinitionRegistry({
|
|
55
|
+
validator: new WorkflowValidator(),
|
|
56
|
+
compiler: new WorkflowCompiler(),
|
|
57
|
+
validationOptions: { knownCommandNames },
|
|
58
|
+
});
|
|
59
|
+
for (const workflow of options.workflows) {
|
|
60
|
+
registry.register(workflow);
|
|
61
|
+
}
|
|
62
|
+
return registry;
|
|
63
|
+
},
|
|
64
|
+
inject: [WORKFLOW_COMMAND_REGISTRY],
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
provide: WORKFLOW_INSTANCE_STORE,
|
|
68
|
+
useValue: options.persistence.instanceStore,
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
provide: WORKFLOW_HISTORY_STORE,
|
|
72
|
+
useValue: options.persistence.historyStore,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
provide: WORKFLOW_TRANSACTION_RUNNER,
|
|
76
|
+
useValue: options.persistence.transactionRunner,
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
provide: WORKFLOW_CLOCK,
|
|
80
|
+
useValue: clock,
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
provide: WORKFLOW_RUNTIME,
|
|
84
|
+
useFactory: (definitionRegistry, commandRegistry, instanceStore, historyStore, transactionRunner, wfClock) => new WorkflowRuntime({
|
|
85
|
+
definitionRegistry,
|
|
86
|
+
commandRegistry,
|
|
87
|
+
instanceStore,
|
|
88
|
+
historyStore,
|
|
89
|
+
transactionRunner,
|
|
90
|
+
clock: wfClock,
|
|
91
|
+
}),
|
|
92
|
+
inject: [
|
|
93
|
+
WORKFLOW_DEFINITION_REGISTRY,
|
|
94
|
+
WORKFLOW_COMMAND_REGISTRY,
|
|
95
|
+
WORKFLOW_INSTANCE_STORE,
|
|
96
|
+
WORKFLOW_HISTORY_STORE,
|
|
97
|
+
WORKFLOW_TRANSACTION_RUNNER,
|
|
98
|
+
WORKFLOW_CLOCK,
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
WorkflowService,
|
|
102
|
+
WorkflowTimeoutService,
|
|
103
|
+
];
|
|
104
|
+
return {
|
|
105
|
+
module: WorkflowModule_1,
|
|
106
|
+
imports: [DiscoveryModule],
|
|
107
|
+
controllers,
|
|
108
|
+
providers,
|
|
109
|
+
exports: EXPORTED_TOKENS,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
static forRootAsync(options) {
|
|
113
|
+
const controllers = options.enableControllers
|
|
114
|
+
? [WorkflowInstanceController, WorkflowEventController, WorkflowQueryController, WorkflowTimeoutController]
|
|
115
|
+
: [];
|
|
116
|
+
const explicitCommands = options.commands ?? [];
|
|
117
|
+
const commandClasses = explicitCommands.map((c) => c.useClass);
|
|
118
|
+
const configProvider = {
|
|
119
|
+
provide: "WORKFLOW_MODULE_OPTIONS",
|
|
120
|
+
useFactory: options.useFactory,
|
|
121
|
+
inject: options.inject ?? [],
|
|
122
|
+
};
|
|
123
|
+
const providers = [
|
|
124
|
+
configProvider,
|
|
125
|
+
...commandClasses,
|
|
126
|
+
{
|
|
127
|
+
provide: WORKFLOW_COMMAND_REGISTRY,
|
|
128
|
+
useFactory: (moduleRef, discoveryService) => {
|
|
129
|
+
const discovered = discoverDecoratedCommands(discoveryService);
|
|
130
|
+
const merged = mergeCommandRegistrations(explicitCommands, discovered);
|
|
131
|
+
return new NestCommandRegistry(moduleRef, merged);
|
|
132
|
+
},
|
|
133
|
+
inject: [ModuleRef, DiscoveryService],
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
provide: WORKFLOW_DEFINITION_REGISTRY,
|
|
137
|
+
useFactory: (config, commandRegistry) => {
|
|
138
|
+
const knownCommandNames = commandRegistry.getRegisteredNames();
|
|
139
|
+
const registry = new InMemoryDefinitionRegistry({
|
|
140
|
+
validator: new WorkflowValidator(),
|
|
141
|
+
compiler: new WorkflowCompiler(),
|
|
142
|
+
validationOptions: { knownCommandNames },
|
|
143
|
+
});
|
|
144
|
+
for (const workflow of config.workflows) {
|
|
145
|
+
registry.register(workflow);
|
|
146
|
+
}
|
|
147
|
+
return registry;
|
|
148
|
+
},
|
|
149
|
+
inject: ["WORKFLOW_MODULE_OPTIONS", WORKFLOW_COMMAND_REGISTRY],
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
provide: WORKFLOW_INSTANCE_STORE,
|
|
153
|
+
useFactory: (config) => config.persistence.instanceStore,
|
|
154
|
+
inject: ["WORKFLOW_MODULE_OPTIONS"],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
provide: WORKFLOW_HISTORY_STORE,
|
|
158
|
+
useFactory: (config) => config.persistence.historyStore,
|
|
159
|
+
inject: ["WORKFLOW_MODULE_OPTIONS"],
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
provide: WORKFLOW_TRANSACTION_RUNNER,
|
|
163
|
+
useFactory: (config) => config.persistence.transactionRunner,
|
|
164
|
+
inject: ["WORKFLOW_MODULE_OPTIONS"],
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
provide: WORKFLOW_CLOCK,
|
|
168
|
+
useFactory: (config) => config.clock ?? { now: () => new Date() },
|
|
169
|
+
inject: ["WORKFLOW_MODULE_OPTIONS"],
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
provide: WORKFLOW_RUNTIME,
|
|
173
|
+
useFactory: (definitionRegistry, commandRegistry, instanceStore, historyStore, transactionRunner, clock) => new WorkflowRuntime({
|
|
174
|
+
definitionRegistry,
|
|
175
|
+
commandRegistry,
|
|
176
|
+
instanceStore,
|
|
177
|
+
historyStore,
|
|
178
|
+
transactionRunner,
|
|
179
|
+
clock,
|
|
180
|
+
}),
|
|
181
|
+
inject: [
|
|
182
|
+
WORKFLOW_DEFINITION_REGISTRY,
|
|
183
|
+
WORKFLOW_COMMAND_REGISTRY,
|
|
184
|
+
WORKFLOW_INSTANCE_STORE,
|
|
185
|
+
WORKFLOW_HISTORY_STORE,
|
|
186
|
+
WORKFLOW_TRANSACTION_RUNNER,
|
|
187
|
+
WORKFLOW_CLOCK,
|
|
188
|
+
],
|
|
189
|
+
},
|
|
190
|
+
WorkflowService,
|
|
191
|
+
WorkflowTimeoutService,
|
|
192
|
+
];
|
|
193
|
+
return {
|
|
194
|
+
module: WorkflowModule_1,
|
|
195
|
+
imports: [DiscoveryModule, ...(options.imports ?? [])],
|
|
196
|
+
controllers,
|
|
197
|
+
providers,
|
|
198
|
+
exports: EXPORTED_TOKENS,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
WorkflowModule = WorkflowModule_1 = __decorate([
|
|
203
|
+
Module({})
|
|
204
|
+
], WorkflowModule);
|
|
205
|
+
export { WorkflowModule };
|
|
206
|
+
//# sourceMappingURL=workflow.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.module.js","sourceRoot":"","sources":["../src/workflow.module.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@duraflows/nestjs",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"import": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsc --build"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@duraflows/core": "^0.0.1",
|
|
24
|
+
"@nestjs/common": "^11.0.0",
|
|
25
|
+
"@nestjs/core": "^11.0.0",
|
|
26
|
+
"class-transformer": "^0.5.1",
|
|
27
|
+
"class-validator": "^0.15.1"
|
|
28
|
+
},
|
|
29
|
+
"peerDependencies": {
|
|
30
|
+
"reflect-metadata": "^0.2.0",
|
|
31
|
+
"rxjs": "^7.0.0"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@nestjs/testing": "^11.1.17"
|
|
35
|
+
}
|
|
36
|
+
}
|