@decaf-ts/core 0.28.1 → 0.30.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/README.md +15 -7
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/lib/cjs/index.cjs +3 -3
- package/lib/cjs/migrations/MigrationService.cjs +32 -4
- package/lib/cjs/migrations/MigrationService.cjs.map +1 -1
- package/lib/cjs/migrations/SemverMigrationVersioning.cjs +15 -0
- package/lib/cjs/migrations/SemverMigrationVersioning.cjs.map +1 -1
- package/lib/cjs/migrations/StandardMigrationVersioning.cjs +11 -0
- package/lib/cjs/migrations/StandardMigrationVersioning.cjs.map +1 -1
- package/lib/cjs/tasks/TaskContext.cjs +3 -0
- package/lib/cjs/tasks/TaskContext.cjs.map +1 -1
- package/lib/cjs/tasks/TaskEngine.cjs +148 -69
- package/lib/cjs/tasks/TaskEngine.cjs.map +1 -1
- package/lib/cjs/tasks/builder.cjs +4 -0
- package/lib/cjs/tasks/builder.cjs.map +1 -1
- package/lib/cjs/tasks/constants.cjs +1 -0
- package/lib/cjs/tasks/constants.cjs.map +1 -1
- package/lib/cjs/tasks/models/TaskStepSpecModel.cjs +6 -0
- package/lib/cjs/tasks/models/TaskStepSpecModel.cjs.map +1 -1
- package/lib/esm/index.js +3 -3
- package/lib/esm/migrations/MigrationService.js +32 -4
- package/lib/esm/migrations/MigrationService.js.map +1 -1
- package/lib/esm/migrations/SemverMigrationVersioning.js +15 -0
- package/lib/esm/migrations/SemverMigrationVersioning.js.map +1 -1
- package/lib/esm/migrations/StandardMigrationVersioning.js +11 -0
- package/lib/esm/migrations/StandardMigrationVersioning.js.map +1 -1
- package/lib/esm/tasks/TaskContext.js +3 -0
- package/lib/esm/tasks/TaskContext.js.map +1 -1
- package/lib/esm/tasks/TaskEngine.js +148 -69
- package/lib/esm/tasks/TaskEngine.js.map +1 -1
- package/lib/esm/tasks/builder.js +4 -0
- package/lib/esm/tasks/builder.js.map +1 -1
- package/lib/esm/tasks/constants.js +1 -0
- package/lib/esm/tasks/constants.js.map +1 -1
- package/lib/esm/tasks/models/TaskStepSpecModel.js +6 -0
- package/lib/esm/tasks/models/TaskStepSpecModel.js.map +1 -1
- package/lib/types/index.d.cts +3 -3
- package/lib/types/index.d.mts +3 -3
- package/lib/types/migrations/MigrationService.d.cts +13 -0
- package/lib/types/migrations/MigrationService.d.mts +13 -0
- package/lib/types/migrations/MigrationVersioning.d.cts +9 -0
- package/lib/types/migrations/MigrationVersioning.d.mts +9 -0
- package/lib/types/migrations/SemverMigrationVersioning.d.cts +10 -0
- package/lib/types/migrations/SemverMigrationVersioning.d.mts +10 -0
- package/lib/types/migrations/StandardMigrationVersioning.d.cts +1 -0
- package/lib/types/migrations/StandardMigrationVersioning.d.mts +1 -0
- package/lib/types/tasks/TaskContext.d.cts +2 -0
- package/lib/types/tasks/TaskContext.d.mts +2 -0
- package/lib/types/tasks/TaskEngine.d.cts +5 -0
- package/lib/types/tasks/TaskEngine.d.mts +5 -0
- package/lib/types/tasks/builder.d.cts +1 -0
- package/lib/types/tasks/builder.d.mts +1 -0
- package/lib/types/tasks/models/TaskStepSpecModel.d.cts +1 -0
- package/lib/types/tasks/models/TaskStepSpecModel.d.mts +1 -0
- package/lib/types/tasks/types.d.cts +4 -0
- package/lib/types/tasks/types.d.mts +4 -0
- package/package.json +1 -1
package/lib/types/index.d.cts
CHANGED
|
@@ -24,21 +24,21 @@ export * from "./persistence/index.d.cts";
|
|
|
24
24
|
* @const VERSION
|
|
25
25
|
* @memberOf module:core
|
|
26
26
|
*/
|
|
27
|
-
export declare const VERSION = "0.
|
|
27
|
+
export declare const VERSION = "0.29.0";
|
|
28
28
|
/**
|
|
29
29
|
* @description Represents the current commit hash of the module build.
|
|
30
30
|
* @summary Stores the current git commit hash for the package. The build replaces
|
|
31
31
|
* the placeholder with the actual commit hash at publish time.
|
|
32
32
|
* @const COMMIT
|
|
33
33
|
*/
|
|
34
|
-
export declare const COMMIT = "
|
|
34
|
+
export declare const COMMIT = "53430c1";
|
|
35
35
|
/**
|
|
36
36
|
* @description Represents the full version string of the module.
|
|
37
37
|
* @summary Stores the semver version and commit hash for the package.
|
|
38
38
|
* The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
|
|
39
39
|
* @const FULL_VERSION
|
|
40
40
|
*/
|
|
41
|
-
export declare const FULL_VERSION = "0.
|
|
41
|
+
export declare const FULL_VERSION = "0.29.0-53430c1";
|
|
42
42
|
/**
|
|
43
43
|
* @description Stores the current package version
|
|
44
44
|
* @summary A constant representing the version of the core package
|
package/lib/types/index.d.mts
CHANGED
|
@@ -24,21 +24,21 @@ export * from "./persistence/index.d.mts";
|
|
|
24
24
|
* @const VERSION
|
|
25
25
|
* @memberOf module:core
|
|
26
26
|
*/
|
|
27
|
-
export declare const VERSION = "0.
|
|
27
|
+
export declare const VERSION = "0.29.0";
|
|
28
28
|
/**
|
|
29
29
|
* @description Represents the current commit hash of the module build.
|
|
30
30
|
* @summary Stores the current git commit hash for the package. The build replaces
|
|
31
31
|
* the placeholder with the actual commit hash at publish time.
|
|
32
32
|
* @const COMMIT
|
|
33
33
|
*/
|
|
34
|
-
export declare const COMMIT = "
|
|
34
|
+
export declare const COMMIT = "53430c1";
|
|
35
35
|
/**
|
|
36
36
|
* @description Represents the full version string of the module.
|
|
37
37
|
* @summary Stores the semver version and commit hash for the package.
|
|
38
38
|
* The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
|
|
39
39
|
* @const FULL_VERSION
|
|
40
40
|
*/
|
|
41
|
-
export declare const FULL_VERSION = "0.
|
|
41
|
+
export declare const FULL_VERSION = "0.29.0-53430c1";
|
|
42
42
|
/**
|
|
43
43
|
* @description Stores the current package version
|
|
44
44
|
* @summary A constant representing the version of the core package
|
|
@@ -44,6 +44,19 @@ export declare class MigrationService<PERSIST extends boolean, A extends Adapter
|
|
|
44
44
|
protected referencesMigration(candidate: Migration<any, any>, target: ResolvedMigration): boolean;
|
|
45
45
|
protected precedenceHint(migration: Migration<any, any>): string | undefined;
|
|
46
46
|
protected compareByPrecedence(migration1: ResolvedMigration, migration2: ResolvedMigration): number;
|
|
47
|
+
/**
|
|
48
|
+
* Compare two migrations by their base version. The base version is the
|
|
49
|
+
* portion of the version string stripped of prerelease and build identifiers.
|
|
50
|
+
* If both migrations share the same base, the method returns `0` and the
|
|
51
|
+
* caller falls back to precedence comparison. When the versioning scheme
|
|
52
|
+
* cannot split a version, the full version is used as its own base.
|
|
53
|
+
*
|
|
54
|
+
* @param migration1 The first migration to compare.
|
|
55
|
+
* @param migration2 The second migration to compare.
|
|
56
|
+
* @returns Negative if `migration1` precedes `migration2`, positive if after,
|
|
57
|
+
* or `0` when bases are equal.
|
|
58
|
+
*/
|
|
59
|
+
protected compareByBaseVersion(migration1: ResolvedMigration, migration2: ResolvedMigration): number;
|
|
47
60
|
protected sort(migrations: ResolvedMigration[]): ResolvedMigration[];
|
|
48
61
|
protected resolveMigration(migration: Migration<any, any>): ResolvedMigration;
|
|
49
62
|
protected shouldIncludeMigration(migration: ResolvedMigration, targetFlavour?: string, includeGeneric?: boolean): boolean;
|
|
@@ -44,6 +44,19 @@ export declare class MigrationService<PERSIST extends boolean, A extends Adapter
|
|
|
44
44
|
protected referencesMigration(candidate: Migration<any, any>, target: ResolvedMigration): boolean;
|
|
45
45
|
protected precedenceHint(migration: Migration<any, any>): string | undefined;
|
|
46
46
|
protected compareByPrecedence(migration1: ResolvedMigration, migration2: ResolvedMigration): number;
|
|
47
|
+
/**
|
|
48
|
+
* Compare two migrations by their base version. The base version is the
|
|
49
|
+
* portion of the version string stripped of prerelease and build identifiers.
|
|
50
|
+
* If both migrations share the same base, the method returns `0` and the
|
|
51
|
+
* caller falls back to precedence comparison. When the versioning scheme
|
|
52
|
+
* cannot split a version, the full version is used as its own base.
|
|
53
|
+
*
|
|
54
|
+
* @param migration1 The first migration to compare.
|
|
55
|
+
* @param migration2 The second migration to compare.
|
|
56
|
+
* @returns Negative if `migration1` precedes `migration2`, positive if after,
|
|
57
|
+
* or `0` when bases are equal.
|
|
58
|
+
*/
|
|
59
|
+
protected compareByBaseVersion(migration1: ResolvedMigration, migration2: ResolvedMigration): number;
|
|
47
60
|
protected sort(migrations: ResolvedMigration[]): ResolvedMigration[];
|
|
48
61
|
protected resolveMigration(migration: Migration<any, any>): ResolvedMigration;
|
|
49
62
|
protected shouldIncludeMigration(migration: ResolvedMigration, targetFlavour?: string, includeGeneric?: boolean): boolean;
|
|
@@ -4,4 +4,13 @@ export interface MigrationVersioning {
|
|
|
4
4
|
compare(a: string, b: string): number;
|
|
5
5
|
gt(a: string, b: string): boolean;
|
|
6
6
|
lte(a: string, b: string): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Returns the base portion of a normalized version string with prerelease
|
|
9
|
+
* and build identifiers stripped. If the versioning scheme cannot split the
|
|
10
|
+
* version, returns `undefined` so callers treat the full version as its own base.
|
|
11
|
+
*
|
|
12
|
+
* @param version The full version string.
|
|
13
|
+
* @returns The base version, or `undefined` when not applicable.
|
|
14
|
+
*/
|
|
15
|
+
base?(version: string): string | undefined;
|
|
7
16
|
}
|
|
@@ -4,4 +4,13 @@ export interface MigrationVersioning {
|
|
|
4
4
|
compare(a: string, b: string): number;
|
|
5
5
|
gt(a: string, b: string): boolean;
|
|
6
6
|
lte(a: string, b: string): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Returns the base portion of a normalized version string with prerelease
|
|
9
|
+
* and build identifiers stripped. If the versioning scheme cannot split the
|
|
10
|
+
* version, returns `undefined` so callers treat the full version as its own base.
|
|
11
|
+
*
|
|
12
|
+
* @param version The full version string.
|
|
13
|
+
* @returns The base version, or `undefined` when not applicable.
|
|
14
|
+
*/
|
|
15
|
+
base?(version: string): string | undefined;
|
|
7
16
|
}
|
|
@@ -5,6 +5,16 @@ export declare class SemverMigrationVersioning implements MigrationVersioning {
|
|
|
5
5
|
isVersionHint(value: string): boolean;
|
|
6
6
|
normalize(reference: string, precedenceHint?: string): string;
|
|
7
7
|
compare(a: string, b: string): number;
|
|
8
|
+
/**
|
|
9
|
+
* Returns the core version (major.minor.patch) of a semver-compliant version.
|
|
10
|
+
* This base is used to rank declared precedence before comparing prerelease
|
|
11
|
+
* identifiers. Versions that are not parsable as semver return `undefined`,
|
|
12
|
+
* causing callers to fall back to identity semantics.
|
|
13
|
+
*
|
|
14
|
+
* @param version The full semver version string.
|
|
15
|
+
* @returns The core version without prerelease/build metadata, or `undefined`.
|
|
16
|
+
*/
|
|
17
|
+
base(version: string): string | undefined;
|
|
8
18
|
gt(a: string, b: string): boolean;
|
|
9
19
|
lte(a: string, b: string): boolean;
|
|
10
20
|
}
|
|
@@ -5,6 +5,16 @@ export declare class SemverMigrationVersioning implements MigrationVersioning {
|
|
|
5
5
|
isVersionHint(value: string): boolean;
|
|
6
6
|
normalize(reference: string, precedenceHint?: string): string;
|
|
7
7
|
compare(a: string, b: string): number;
|
|
8
|
+
/**
|
|
9
|
+
* Returns the core version (major.minor.patch) of a semver-compliant version.
|
|
10
|
+
* This base is used to rank declared precedence before comparing prerelease
|
|
11
|
+
* identifiers. Versions that are not parsable as semver return `undefined`,
|
|
12
|
+
* causing callers to fall back to identity semantics.
|
|
13
|
+
*
|
|
14
|
+
* @param version The full semver version string.
|
|
15
|
+
* @returns The core version without prerelease/build metadata, or `undefined`.
|
|
16
|
+
*/
|
|
17
|
+
base(version: string): string | undefined;
|
|
8
18
|
gt(a: string, b: string): boolean;
|
|
9
19
|
lte(a: string, b: string): boolean;
|
|
10
20
|
}
|
|
@@ -7,6 +7,7 @@ export declare class StandardMigrationVersioning implements MigrationVersioning
|
|
|
7
7
|
isVersionHint(value: string): boolean;
|
|
8
8
|
normalize(reference: string, precedenceHint?: string): string;
|
|
9
9
|
compare(a: string, b: string): number;
|
|
10
|
+
base(version: string): string | undefined;
|
|
10
11
|
gt(a: string, b: string): boolean;
|
|
11
12
|
lte(a: string, b: string): boolean;
|
|
12
13
|
}
|
|
@@ -7,6 +7,7 @@ export declare class StandardMigrationVersioning implements MigrationVersioning
|
|
|
7
7
|
isVersionHint(value: string): boolean;
|
|
8
8
|
normalize(reference: string, precedenceHint?: string): string;
|
|
9
9
|
compare(a: string, b: string): number;
|
|
10
|
+
base(version: string): string | undefined;
|
|
10
11
|
gt(a: string, b: string): boolean;
|
|
11
12
|
lte(a: string, b: string): boolean;
|
|
12
13
|
}
|
|
@@ -6,6 +6,7 @@ import { TaskErrorModel } from "./models/TaskErrorModel.d.cts";
|
|
|
6
6
|
import { TaskStatus } from "./constants.d.cts";
|
|
7
7
|
import { TaskStateChangeRequest } from "./TaskStateChangeError.d.cts";
|
|
8
8
|
import { TaskStepSpecModel } from "./models/TaskStepSpecModel.d.cts";
|
|
9
|
+
import { Lock } from "@decaf-ts/transactional-decorators";
|
|
9
10
|
export declare class TaskContext extends Context<TaskFlags> {
|
|
10
11
|
get taskId(): string;
|
|
11
12
|
get logger(): TaskLogger<any>;
|
|
@@ -16,6 +17,7 @@ export declare class TaskContext extends Context<TaskFlags> {
|
|
|
16
17
|
get attempt(): number;
|
|
17
18
|
get progress(): (data: any) => Promise<void>;
|
|
18
19
|
get heartbeat(): () => Promise<void>;
|
|
20
|
+
get stepWriteLock(): Lock;
|
|
19
21
|
cacheResult(taskId: string, payload: any): void;
|
|
20
22
|
protected changeState(status: TaskStatus, payload?: Partial<TaskStateChangeRequest>): never;
|
|
21
23
|
cancel(reason?: string | Error | TaskErrorModel, details?: any): never;
|
|
@@ -6,6 +6,7 @@ import { TaskErrorModel } from "./models/TaskErrorModel.d.mts";
|
|
|
6
6
|
import { TaskStatus } from "./constants.d.mts";
|
|
7
7
|
import { TaskStateChangeRequest } from "./TaskStateChangeError.d.mts";
|
|
8
8
|
import { TaskStepSpecModel } from "./models/TaskStepSpecModel.d.mts";
|
|
9
|
+
import { Lock } from "@decaf-ts/transactional-decorators";
|
|
9
10
|
export declare class TaskContext extends Context<TaskFlags> {
|
|
10
11
|
get taskId(): string;
|
|
11
12
|
get logger(): TaskLogger<any>;
|
|
@@ -16,6 +17,7 @@ export declare class TaskContext extends Context<TaskFlags> {
|
|
|
16
17
|
get attempt(): number;
|
|
17
18
|
get progress(): (data: any) => Promise<void>;
|
|
18
19
|
get heartbeat(): () => Promise<void>;
|
|
20
|
+
get stepWriteLock(): Lock;
|
|
19
21
|
cacheResult(taskId: string, payload: any): void;
|
|
20
22
|
protected changeState(status: TaskStatus, payload?: Partial<TaskStateChangeRequest>): never;
|
|
21
23
|
cancel(reason?: string | Error | TaskErrorModel, details?: any): never;
|
|
@@ -79,6 +79,11 @@ export declare class TaskEngine<A extends Adapter<any, any, any, any>, C extends
|
|
|
79
79
|
protected getStepLock(task: TaskModel, stepIndex: number | undefined): string | undefined;
|
|
80
80
|
protected hasLockConflict(task: TaskModel, stepIndex: number | undefined, ctx: Context): Promise<boolean>;
|
|
81
81
|
protected isRunnable(task: TaskModel, ctx: Context): Promise<boolean>;
|
|
82
|
+
protected getCompositeStepConcurrencyLimit(): number;
|
|
83
|
+
protected isConcurrentCompositeStep(step: TaskStepSpecModel): boolean;
|
|
84
|
+
protected createCompositeStepContext(context: TaskContext, stepIndex: number): TaskContext;
|
|
85
|
+
protected withStepWriteLock<T>(ctx: TaskContext, fn: () => Promise<T>): Promise<T>;
|
|
86
|
+
protected recalculateCompositeCurrentStep(steps: TaskStepSpecModel[], results: TaskStepResultModel[]): number;
|
|
82
87
|
protected executeClaimed(task: TaskModel): Promise<void>;
|
|
83
88
|
protected handleTaskStateChange(request: TaskStateChangeRequest, task: TaskModel, ctx: TaskContext): Promise<void>;
|
|
84
89
|
protected runComposite(task: TaskModel, context: TaskContext): Promise<any>;
|
|
@@ -79,6 +79,11 @@ export declare class TaskEngine<A extends Adapter<any, any, any, any>, C extends
|
|
|
79
79
|
protected getStepLock(task: TaskModel, stepIndex: number | undefined): string | undefined;
|
|
80
80
|
protected hasLockConflict(task: TaskModel, stepIndex: number | undefined, ctx: Context): Promise<boolean>;
|
|
81
81
|
protected isRunnable(task: TaskModel, ctx: Context): Promise<boolean>;
|
|
82
|
+
protected getCompositeStepConcurrencyLimit(): number;
|
|
83
|
+
protected isConcurrentCompositeStep(step: TaskStepSpecModel): boolean;
|
|
84
|
+
protected createCompositeStepContext(context: TaskContext, stepIndex: number): TaskContext;
|
|
85
|
+
protected withStepWriteLock<T>(ctx: TaskContext, fn: () => Promise<T>): Promise<T>;
|
|
86
|
+
protected recalculateCompositeCurrentStep(steps: TaskStepSpecModel[], results: TaskStepResultModel[]): number;
|
|
82
87
|
protected executeClaimed(task: TaskModel): Promise<void>;
|
|
83
88
|
protected handleTaskStateChange(request: TaskStateChangeRequest, task: TaskModel, ctx: TaskContext): Promise<void>;
|
|
84
89
|
protected runComposite(task: TaskModel, context: TaskContext): Promise<any>;
|
|
@@ -45,6 +45,7 @@ export declare class TaskStepSpecBuilder {
|
|
|
45
45
|
setName(value?: string): this;
|
|
46
46
|
setInput(value: any): this;
|
|
47
47
|
setLock(value?: string): this;
|
|
48
|
+
setAllowConcurrent(value?: boolean): this;
|
|
48
49
|
setDependsOn(value?: string[]): this;
|
|
49
50
|
setCanFail(value: boolean): this;
|
|
50
51
|
setMaxAttempts(value?: number): this;
|
|
@@ -45,6 +45,7 @@ export declare class TaskStepSpecBuilder {
|
|
|
45
45
|
setName(value?: string): this;
|
|
46
46
|
setInput(value: any): this;
|
|
47
47
|
setLock(value?: string): this;
|
|
48
|
+
setAllowConcurrent(value?: boolean): this;
|
|
48
49
|
setDependsOn(value?: string[]): this;
|
|
49
50
|
setCanFail(value: boolean): this;
|
|
50
51
|
setMaxAttempts(value?: number): this;
|
|
@@ -9,6 +9,7 @@ import { TaskEventModel } from "./models/TaskEventModel.d.cts";
|
|
|
9
9
|
import { TaskStatus } from "./constants.d.cts";
|
|
10
10
|
import { TaskErrorModel } from "./models/TaskErrorModel.d.cts";
|
|
11
11
|
import { TaskStepSpecModel } from "./models/TaskStepSpecModel.d.cts";
|
|
12
|
+
import { Lock } from "@decaf-ts/transactional-decorators";
|
|
12
13
|
export interface ITaskHandler<I = any, O = any> {
|
|
13
14
|
type: string;
|
|
14
15
|
run(input: I, ctx: TaskContext): Promise<O>;
|
|
@@ -31,6 +32,8 @@ export interface LogPipe {
|
|
|
31
32
|
export interface TaskFlags<LOG extends TaskLogger<any> = TaskLogger<any>> extends ContextFlags<LOG> {
|
|
32
33
|
taskId: string;
|
|
33
34
|
attempt: number;
|
|
35
|
+
step?: number;
|
|
36
|
+
stepWriteLock?: Lock;
|
|
34
37
|
pipe: LogPipe;
|
|
35
38
|
flush: () => Promise<void>;
|
|
36
39
|
progress: (data: any) => Promise<void>;
|
|
@@ -47,6 +50,7 @@ export type TaskEngineConfig<A extends Adapter<any, any, any, any>> = {
|
|
|
47
50
|
registry?: TaskHandlerRegistry;
|
|
48
51
|
workerId: string;
|
|
49
52
|
concurrency: number;
|
|
53
|
+
maxConcurrentCompositeSteps?: number;
|
|
50
54
|
leaseMs: number;
|
|
51
55
|
pollMsIdle: number;
|
|
52
56
|
pollMsBusy: number;
|
|
@@ -9,6 +9,7 @@ import { TaskEventModel } from "./models/TaskEventModel.d.mts";
|
|
|
9
9
|
import { TaskStatus } from "./constants.d.mts";
|
|
10
10
|
import { TaskErrorModel } from "./models/TaskErrorModel.d.mts";
|
|
11
11
|
import { TaskStepSpecModel } from "./models/TaskStepSpecModel.d.mts";
|
|
12
|
+
import { Lock } from "@decaf-ts/transactional-decorators";
|
|
12
13
|
export interface ITaskHandler<I = any, O = any> {
|
|
13
14
|
type: string;
|
|
14
15
|
run(input: I, ctx: TaskContext): Promise<O>;
|
|
@@ -31,6 +32,8 @@ export interface LogPipe {
|
|
|
31
32
|
export interface TaskFlags<LOG extends TaskLogger<any> = TaskLogger<any>> extends ContextFlags<LOG> {
|
|
32
33
|
taskId: string;
|
|
33
34
|
attempt: number;
|
|
35
|
+
step?: number;
|
|
36
|
+
stepWriteLock?: Lock;
|
|
34
37
|
pipe: LogPipe;
|
|
35
38
|
flush: () => Promise<void>;
|
|
36
39
|
progress: (data: any) => Promise<void>;
|
|
@@ -47,6 +50,7 @@ export type TaskEngineConfig<A extends Adapter<any, any, any, any>> = {
|
|
|
47
50
|
registry?: TaskHandlerRegistry;
|
|
48
51
|
workerId: string;
|
|
49
52
|
concurrency: number;
|
|
53
|
+
maxConcurrentCompositeSteps?: number;
|
|
50
54
|
leaseMs: number;
|
|
51
55
|
pollMsIdle: number;
|
|
52
56
|
pollMsBusy: number;
|