@t4h.framework/core 0.8.0 → 0.9.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/.ai/skills/framework-core/SKILL.md +3 -4
- package/CHANGELOG.md +99 -0
- package/LICENSE +21 -0
- package/README.md +5 -8
- package/dist/activities/StartWorkflowActivity.d.ts +51 -9
- package/dist/activities/StartWorkflowActivity.d.ts.map +1 -1
- package/dist/activities/StartWorkflowActivity.js +46 -5
- package/dist/activities/StartWorkflowActivity.js.map +1 -1
- package/dist/core.d.ts +2 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +2 -0
- package/dist/core.js.map +1 -1
- package/dist/models/WorkflowBatchClaim.d.ts +10 -0
- package/dist/models/WorkflowBatchClaim.d.ts.map +1 -0
- package/dist/models/WorkflowBatchClaim.js +3 -0
- package/dist/models/WorkflowBatchClaim.js.map +1 -0
- package/dist/models/WorkflowBatchRef.d.ts +6 -0
- package/dist/models/WorkflowBatchRef.d.ts.map +1 -0
- package/dist/models/WorkflowBatchRef.js +9 -0
- package/dist/models/WorkflowBatchRef.js.map +1 -0
- package/dist/models/WorkflowRef.d.ts +2 -2
- package/dist/models/WorkflowRef.d.ts.map +1 -1
- package/dist/models/WorkflowRef.js.map +1 -1
- package/dist/testing/TestWorkflowEnvironment.d.ts.map +1 -1
- package/dist/testing/TestWorkflowEnvironment.js +3 -1
- package/dist/testing/TestWorkflowEnvironment.js.map +1 -1
- package/dist/testing/tools/clone.d.ts +2 -0
- package/dist/testing/tools/clone.d.ts.map +1 -0
- package/dist/testing/tools/clone.js +42 -0
- package/dist/testing/tools/clone.js.map +1 -0
- package/package.json +1 -1
- package/dist/models/ExecutionContext.d.ts +0 -8
- package/dist/models/ExecutionContext.d.ts.map +0 -1
- package/dist/models/ExecutionContext.js +0 -22
- package/dist/models/ExecutionContext.js.map +0 -1
- package/dist/testing/ActivityTesting.d.ts +0 -25
- package/dist/testing/ActivityTesting.d.ts.map +0 -1
- package/dist/testing/ActivityTesting.js +0 -74
- package/dist/testing/ActivityTesting.js.map +0 -1
- package/dist/testing/NonDeterministicWorkflowError.d.ts +0 -4
- package/dist/testing/NonDeterministicWorkflowError.d.ts.map +0 -1
- package/dist/testing/NonDeterministicWorkflowError.js +0 -7
- package/dist/testing/NonDeterministicWorkflowError.js.map +0 -1
- package/dist/testing/StrictGuard.d.ts +0 -4
- package/dist/testing/StrictGuard.d.ts.map +0 -1
- package/dist/testing/StrictGuard.js +0 -26
- package/dist/testing/StrictGuard.js.map +0 -1
- package/dist/testing/WorkflowTesting.d.ts +0 -6
- package/dist/testing/WorkflowTesting.d.ts.map +0 -1
- package/dist/testing/WorkflowTesting.js +0 -7
- package/dist/testing/WorkflowTesting.js.map +0 -1
- package/dist/testing/create-mock-claim.d.ts +0 -11
- package/dist/testing/create-mock-claim.d.ts.map +0 -1
- package/dist/testing/create-mock-claim.js +0 -26
- package/dist/testing/create-mock-claim.js.map +0 -1
- package/dist/testing/create-mock-claims.d.ts +0 -13
- package/dist/testing/create-mock-claims.d.ts.map +0 -1
- package/dist/testing/create-mock-claims.js +0 -8
- package/dist/testing/create-mock-claims.js.map +0 -1
- package/dist/testing/create-test-env.d.ts +0 -10
- package/dist/testing/create-test-env.d.ts.map +0 -1
- package/dist/testing/create-test-env.js +0 -7
- package/dist/testing/create-test-env.js.map +0 -1
- package/dist/testing/mock-async.d.ts +0 -48
- package/dist/testing/mock-async.d.ts.map +0 -1
- package/dist/testing/mock-async.js +0 -58
- package/dist/testing/mock-async.js.map +0 -1
- package/dist/testing/outcomes.d.ts +0 -12
- package/dist/testing/outcomes.d.ts.map +0 -1
- package/dist/testing/outcomes.js +0 -10
- package/dist/testing/outcomes.js.map +0 -1
- package/dist/testing/run-workflow.d.ts +0 -32
- package/dist/testing/run-workflow.d.ts.map +0 -1
- package/dist/testing/run-workflow.js +0 -160
- package/dist/testing/run-workflow.js.map +0 -1
- package/dist/testing/types.d.ts +0 -19
- package/dist/testing/types.d.ts.map +0 -1
- package/dist/testing/types.js +0 -2
- package/dist/testing/types.js.map +0 -1
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export type ExecutionLayer = 'workflow' | 'activity';
|
|
2
|
-
export declare namespace ExecutionContext {
|
|
3
|
-
function run<T>(layer: ExecutionLayer, fn: () => T): T;
|
|
4
|
-
function getLayer(): ExecutionLayer | undefined;
|
|
5
|
-
function isWorkflow(): boolean;
|
|
6
|
-
function isActivity(): boolean;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=ExecutionContext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionContext.d.ts","sourceRoot":"","sources":["../../src/models/ExecutionContext.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,UAAU,CAAA;AAQpD,yBAAiB,gBAAgB,CAAC;IAChC,SAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE5D;IAED,SAAgB,QAAQ,IAAI,cAAc,GAAG,SAAS,CAErD;IAED,SAAgB,UAAU,IAAI,OAAO,CAEpC;IAED,SAAgB,UAAU,IAAI,OAAO,CAEpC;CACF"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
-
const storage = new AsyncLocalStorage();
|
|
3
|
-
export var ExecutionContext;
|
|
4
|
-
(function (ExecutionContext) {
|
|
5
|
-
function run(layer, fn) {
|
|
6
|
-
return storage.run({ layer }, fn);
|
|
7
|
-
}
|
|
8
|
-
ExecutionContext.run = run;
|
|
9
|
-
function getLayer() {
|
|
10
|
-
return storage.getStore()?.layer;
|
|
11
|
-
}
|
|
12
|
-
ExecutionContext.getLayer = getLayer;
|
|
13
|
-
function isWorkflow() {
|
|
14
|
-
return storage.getStore()?.layer === 'workflow';
|
|
15
|
-
}
|
|
16
|
-
ExecutionContext.isWorkflow = isWorkflow;
|
|
17
|
-
function isActivity() {
|
|
18
|
-
return storage.getStore()?.layer === 'activity';
|
|
19
|
-
}
|
|
20
|
-
ExecutionContext.isActivity = isActivity;
|
|
21
|
-
})(ExecutionContext || (ExecutionContext = {}));
|
|
22
|
-
//# sourceMappingURL=ExecutionContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionContext.js","sourceRoot":"","sources":["../../src/models/ExecutionContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAQpD,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAyB,CAAA;AAE9D,MAAM,KAAW,gBAAgB,CAgBhC;AAhBD,WAAiB,gBAAgB;IAC/B,SAAgB,GAAG,CAAI,KAAqB,EAAE,EAAW;QACvD,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;IAFe,oBAAG,MAElB,CAAA;IAED,SAAgB,QAAQ;QACtB,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAA;IAClC,CAAC;IAFe,yBAAQ,WAEvB,CAAA;IAED,SAAgB,UAAU;QACxB,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,KAAK,UAAU,CAAA;IACjD,CAAC;IAFe,2BAAU,aAEzB,CAAA;IAED,SAAgB,UAAU;QACxB,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,KAAK,UAAU,CAAA;IACjD,CAAC;IAFe,2BAAU,aAEzB,CAAA;AACH,CAAC,EAhBgB,gBAAgB,KAAhB,gBAAgB,QAgBhC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { AsyncActivityOutcome } from './types.js';
|
|
2
|
-
import type { Activity } from '../models/Activity.js';
|
|
3
|
-
import type { ClaimProvider } from '../models/Claim.js';
|
|
4
|
-
import type { Env } from '../models/Env.js';
|
|
5
|
-
import type { Log } from '../models/Logger.js';
|
|
6
|
-
export interface ActivityTestingAsyncOptions {
|
|
7
|
-
/** Run the real advance handler when bootstrap returns pending. */
|
|
8
|
-
advance?: unknown;
|
|
9
|
-
/** Simulate runtime resolution without calling advance. */
|
|
10
|
-
outcome?: AsyncActivityOutcome;
|
|
11
|
-
}
|
|
12
|
-
export interface ActivityTestingOptions {
|
|
13
|
-
claims?: readonly ClaimProvider<any>[];
|
|
14
|
-
env?: Env.Entries;
|
|
15
|
-
logs?: Log[];
|
|
16
|
-
async?: ActivityTestingAsyncOptions;
|
|
17
|
-
}
|
|
18
|
-
export declare class ActivityTesting {
|
|
19
|
-
static run<T extends Activity>(ActivityClass: Activity.Constructor<T>, args?: Activity.Args<T>, options?: ActivityTestingOptions): Promise<Activity.Output<T>>;
|
|
20
|
-
}
|
|
21
|
-
export declare class AsyncActivityRejectedError extends Error {
|
|
22
|
-
readonly reason: unknown;
|
|
23
|
-
constructor(reason: unknown);
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=ActivityTesting.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityTesting.d.ts","sourceRoot":"","sources":["../../src/testing/ActivityTesting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAUrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAI9C,MAAM,WAAW,2BAA2B;IAC1C,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,oBAAoB,CAAA;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;IACtC,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,KAAK,CAAC,EAAE,2BAA2B,CAAA;CACpC;AAED,qBAAa,eAAe;WACN,GAAG,CAAC,CAAC,SAAS,QAAQ,EACxC,aAAa,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EACtC,IAAI,GAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAqC,EAC1D,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CA6B/B;AAyFD,qBAAa,0BAA2B,SAAQ,KAAK;aACvB,MAAM,EAAE,OAAO;gBAAf,MAAM,EAAE,OAAO;CAQ5C"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { AsyncActivity, } from '../models/AsyncActivity.js';
|
|
2
|
-
import { AsyncActivityResultFulfilled, AsyncActivityResultPending, AsyncActivityResultRejected, } from '../models/AsyncActivityAdvanceResult.js';
|
|
3
|
-
import { SyncActivity } from '../models/SyncActivity.js';
|
|
4
|
-
import { Internals } from '../tools/Internals.js';
|
|
5
|
-
export class ActivityTesting {
|
|
6
|
-
static async run(ActivityClass, args = [], options = {}) {
|
|
7
|
-
const activity = new ActivityClass();
|
|
8
|
-
const context = {
|
|
9
|
-
claims: options.claims ?? [],
|
|
10
|
-
env: options.env ?? {},
|
|
11
|
-
};
|
|
12
|
-
const input = await activity.toInput(...args);
|
|
13
|
-
if (activity instanceof SyncActivity) {
|
|
14
|
-
const output = await Internals.runActivity(activity, context, instance => instance.run(input));
|
|
15
|
-
return activity.toOutput(output, ...args);
|
|
16
|
-
}
|
|
17
|
-
if (activity instanceof AsyncActivity) {
|
|
18
|
-
return resolveAsyncActivity(activity, input, args, context, options);
|
|
19
|
-
}
|
|
20
|
-
throw new Error(`Unknown activity type: ${ActivityClass.name}`);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
async function resolveAsyncActivity(activity, input, args, context, options) {
|
|
24
|
-
const bootstrap = await Internals.runActivity(activity, context, instance => instance.bootstrap(input));
|
|
25
|
-
if (bootstrap instanceof AsyncActivityResultFulfilled)
|
|
26
|
-
return activity.toOutput(bootstrap.payload, ...args);
|
|
27
|
-
if (bootstrap instanceof AsyncActivityResultRejected)
|
|
28
|
-
throw new AsyncActivityRejectedError(bootstrap.payload);
|
|
29
|
-
if (!(bootstrap instanceof AsyncActivityResultPending))
|
|
30
|
-
throw new Error(`Unknown async bootstrap result for "${activity.constructor.name}"`);
|
|
31
|
-
const asyncOptions = options.async;
|
|
32
|
-
if (asyncOptions && 'advance' in asyncOptions) {
|
|
33
|
-
const result = await Internals.runActivity(activity, context, instance => instance.advance(asyncOptions.advance, bootstrap));
|
|
34
|
-
if (result instanceof AsyncActivityResultFulfilled)
|
|
35
|
-
return activity.toOutput(result.payload, ...args);
|
|
36
|
-
if (result instanceof AsyncActivityResultRejected)
|
|
37
|
-
throw new AsyncActivityRejectedError(result.payload);
|
|
38
|
-
throw new Error(`Async activity "${activity.constructor.name}" stayed pending after advance`);
|
|
39
|
-
}
|
|
40
|
-
if (asyncOptions?.outcome) {
|
|
41
|
-
switch (asyncOptions.outcome.status) {
|
|
42
|
-
case 'fulfilled':
|
|
43
|
-
return activity.toOutput(asyncOptions.outcome.output, ...args);
|
|
44
|
-
case 'rejected':
|
|
45
|
-
throw new AsyncActivityRejectedError(asyncOptions.outcome.reason);
|
|
46
|
-
case 'timeout': {
|
|
47
|
-
const onTimeout = activity.onTimeout?.bind(activity);
|
|
48
|
-
if (!onTimeout)
|
|
49
|
-
throw new Error(`Async activity "${activity.constructor.name}" timed out but defines no onTimeout handler`);
|
|
50
|
-
const result = await Internals.runActivity(activity, context, () => onTimeout(bootstrap));
|
|
51
|
-
if (result instanceof AsyncActivityResultFulfilled)
|
|
52
|
-
return activity.toOutput(result.payload, ...args);
|
|
53
|
-
if (result instanceof AsyncActivityResultRejected)
|
|
54
|
-
throw new AsyncActivityRejectedError(result.payload);
|
|
55
|
-
throw new Error(`Async activity "${activity.constructor.name}" stayed pending after onTimeout`);
|
|
56
|
-
}
|
|
57
|
-
default:
|
|
58
|
-
throw new Error(`Unknown async activity outcome for "${activity.constructor.name}"`);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
throw new Error(`Async activity "${activity.constructor.name}" is pending. ` +
|
|
62
|
-
`Provide options.async.advance or options.async.outcome in ActivityTesting.run().`);
|
|
63
|
-
}
|
|
64
|
-
export class AsyncActivityRejectedError extends Error {
|
|
65
|
-
reason;
|
|
66
|
-
constructor(reason) {
|
|
67
|
-
super(reason instanceof Error
|
|
68
|
-
? reason.message
|
|
69
|
-
: `Async activity rejected: ${JSON.stringify(reason)}`);
|
|
70
|
-
this.reason = reason;
|
|
71
|
-
this.name = 'AsyncActivityRejectedError';
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=ActivityTesting.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityTesting.js","sourceRoot":"","sources":["../../src/testing/ActivityTesting.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NonDeterministicWorkflowError.d.ts","sourceRoot":"","sources":["../../src/testing/NonDeterministicWorkflowError.ts"],"names":[],"mappings":"AAAA,qBAAa,6BAA8B,SAAQ,KAAK;gBAC1C,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NonDeterministicWorkflowError.js","sourceRoot":"","sources":["../../src/testing/NonDeterministicWorkflowError.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAA;IAC7C,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StrictGuard.d.ts","sourceRoot":"","sources":["../../src/testing/StrictGuard.ts"],"names":[],"mappings":"AAMA,qBAAa,WAAW;WACR,OAAO,IAAI,MAAM,IAAI;CA6BpC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { ExecutionContext } from '../models/ExecutionContext.js';
|
|
2
|
-
import { NonDeterministicWorkflowError } from './NonDeterministicWorkflowError.js';
|
|
3
|
-
const WORKFLOW_SIDE_EFFECT_MESSAGE = 'Side effects must go through History.reconciler and activities — not directly from workflow code.';
|
|
4
|
-
export class StrictGuard {
|
|
5
|
-
static install() {
|
|
6
|
-
const originalRandom = Math.random;
|
|
7
|
-
const originalFetch = globalThis.fetch;
|
|
8
|
-
Math.random = () => {
|
|
9
|
-
if (ExecutionContext.isWorkflow())
|
|
10
|
-
throw new NonDeterministicWorkflowError(`Math.random() is not allowed in workflow code. ${WORKFLOW_SIDE_EFFECT_MESSAGE}`);
|
|
11
|
-
return originalRandom.call(Math);
|
|
12
|
-
};
|
|
13
|
-
if (originalFetch)
|
|
14
|
-
globalThis.fetch = ((...args) => {
|
|
15
|
-
if (ExecutionContext.isWorkflow())
|
|
16
|
-
throw new NonDeterministicWorkflowError(`fetch() is not allowed in workflow code. ${WORKFLOW_SIDE_EFFECT_MESSAGE}`);
|
|
17
|
-
return originalFetch(...args);
|
|
18
|
-
});
|
|
19
|
-
return () => {
|
|
20
|
-
Math.random = originalRandom;
|
|
21
|
-
if (originalFetch)
|
|
22
|
-
globalThis.fetch = originalFetch;
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=StrictGuard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StrictGuard.js","sourceRoot":"","sources":["../../src/testing/StrictGuard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA;AAElF,MAAM,4BAA4B,GAChC,mGAAmG,CAAA;AAErG,MAAM,OAAO,WAAW;IACf,MAAM,CAAC,OAAO;QACnB,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAA;QAClC,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAA;QAEtC,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE;YACjB,IAAI,gBAAgB,CAAC,UAAU,EAAE;gBAC/B,MAAM,IAAI,6BAA6B,CACrC,kDAAkD,4BAA4B,EAAE,CACjF,CAAA;YAEH,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClC,CAAC,CAAA;QAED,IAAI,aAAa;YACf,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAA8B,EAAE,EAAE;gBACxD,IAAI,gBAAgB,CAAC,UAAU,EAAE;oBAC/B,MAAM,IAAI,6BAA6B,CACrC,4CAA4C,4BAA4B,EAAE,CAC3E,CAAA;gBAEH,OAAO,aAAa,CAAC,GAAG,IAAI,CAAC,CAAA;YAC/B,CAAC,CAAiB,CAAA;QAEpB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,MAAM,GAAG,cAAc,CAAA;YAE5B,IAAI,aAAa;gBAAE,UAAU,CAAC,KAAK,GAAG,aAAa,CAAA;QACrD,CAAC,CAAA;IACH,CAAC;CACF"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { type RunWorkflowOptions } from './run-workflow.js';
|
|
2
|
-
import type { Workflow, WorkflowInput } from '../models/Workflow.js';
|
|
3
|
-
export declare class WorkflowTesting {
|
|
4
|
-
static run<T extends Workflow<any, any>>(workflow: T, input?: WorkflowInput<T>, options?: RunWorkflowOptions): Promise<unknown>;
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=WorkflowTesting.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowTesting.d.ts","sourceRoot":"","sources":["../../src/testing/WorkflowTesting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAEpE,qBAAa,eAAe;WACN,GAAG,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAClD,QAAQ,EAAE,CAAC,EACX,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,OAAO,CAAC,EAAE,kBAAkB;CAI/B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowTesting.js","sourceRoot":"","sources":["../../src/testing/WorkflowTesting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAA;AAGxE,MAAM,OAAO,eAAe;IACnB,MAAM,CAAC,KAAK,CAAC,GAAG,CACrB,QAAW,EACX,KAAwB,EACxB,OAA4B;QAE5B,OAAO,WAAW,CAAC,QAAQ,EAAE,KAAyB,EAAE,OAAO,CAAC,CAAA;IAClE,CAAC;CACF"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ClaimProvider } from '../../models/Claim.js'
|
|
2
|
-
import type { ClaimConstructor } from '../types.js'
|
|
3
|
-
export declare function createMockClaim<T extends ClaimConstructor>(
|
|
4
|
-
ClaimClass: T,
|
|
5
|
-
implementation?: Partial<InstanceType<T>>,
|
|
6
|
-
): InstanceType<T>
|
|
7
|
-
export declare function mockClaim<T extends ClaimConstructor>(
|
|
8
|
-
ClaimClass: T,
|
|
9
|
-
implementation?: Partial<InstanceType<T>>,
|
|
10
|
-
): ClaimProvider<InstanceType<T>>
|
|
11
|
-
//# sourceMappingURL=create-mock-claim.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-mock-claim.d.ts","sourceRoot":"","sources":["../../src/testing/create-mock-claim.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,wBAAgB,eAAe,CAAC,CAAC,SAAS,gBAAgB,EACxD,UAAU,EAAE,CAAC,EACb,cAAc,GAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAM,GAC5C,YAAY,CAAC,CAAC,CAAC,CAuBjB;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,gBAAgB,EAClD,UAAU,EAAE,CAAC,EACb,cAAc,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACxC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAKhC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export function createMockClaim(ClaimClass, implementation = {}) {
|
|
2
|
-
const name = ClaimClass.name;
|
|
3
|
-
return new Proxy(implementation, {
|
|
4
|
-
get(target, propertyKey, receiver) {
|
|
5
|
-
if (propertyKey in target) {
|
|
6
|
-
const value = Reflect.get(target, propertyKey, receiver);
|
|
7
|
-
if (typeof value === 'function')
|
|
8
|
-
return value.bind(target);
|
|
9
|
-
return value;
|
|
10
|
-
}
|
|
11
|
-
if (propertyKey === 'then')
|
|
12
|
-
return undefined;
|
|
13
|
-
return (...args) => {
|
|
14
|
-
throw new Error(`Mock ${name}.${String(propertyKey)} was not implemented. ` +
|
|
15
|
-
`Provide it via mockClaim(${name}, { ${String(propertyKey)}: ... }).`);
|
|
16
|
-
};
|
|
17
|
-
},
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
export function mockClaim(ClaimClass, implementation) {
|
|
21
|
-
return {
|
|
22
|
-
provide: ClaimClass,
|
|
23
|
-
value: createMockClaim(ClaimClass, implementation ?? {}),
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=create-mock-claim.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-mock-claim.js","sourceRoot":"","sources":["../../src/testing/create-mock-claim.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,eAAe,CAC7B,UAAa,EACb,iBAA2C,EAAE;IAE7C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;IAE5B,OAAO,IAAI,KAAK,CAAC,cAAwB,EAAE;QACzC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ;YAC/B,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;gBAExD,IAAI,OAAO,KAAK,KAAK,UAAU;oBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAE1D,OAAO,KAAK,CAAA;YACd,CAAC;YAED,IAAI,WAAW,KAAK,MAAM;gBAAE,OAAO,SAAS,CAAA;YAE5C,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE;gBAC5B,MAAM,IAAI,KAAK,CACb,QAAQ,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,wBAAwB;oBACzD,4BAA4B,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,WAAW,CACxE,CAAA;YACH,CAAC,CAAA;QACH,CAAC;KACF,CAAoB,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,UAAa,EACb,cAAyC;IAEzC,OAAO;QACL,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,eAAe,CAAC,UAAU,EAAE,cAAc,IAAI,EAAE,CAAC;KACzD,CAAA;AACH,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { ClaimConstructor } from '../types.js'
|
|
2
|
-
import type { ClaimProvider } from '../../models/Claim.js'
|
|
3
|
-
export declare function createMockClaims(
|
|
4
|
-
...providers: readonly ClaimProvider<any>[]
|
|
5
|
-
): readonly ClaimProvider<any>[]
|
|
6
|
-
export type MockClaimEntry = readonly [
|
|
7
|
-
claim: ClaimConstructor,
|
|
8
|
-
implementation?: Partial<InstanceType<ClaimConstructor>>,
|
|
9
|
-
]
|
|
10
|
-
export declare function createMockClaimsFromMap(
|
|
11
|
-
entries: readonly MockClaimEntry[],
|
|
12
|
-
): readonly ClaimProvider<any>[]
|
|
13
|
-
//# sourceMappingURL=create-mock-claims.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-mock-claims.d.ts","sourceRoot":"","sources":["../../src/testing/create-mock-claims.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,wBAAgB,gBAAgB,CAC9B,GAAG,SAAS,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,GAC1C,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAE/B;AAED,MAAM,MAAM,cAAc,GAAG,SAAS;IACpC,KAAK,EAAE,gBAAgB;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;CACzD,CAAA;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,SAAS,cAAc,EAAE,GACjC,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAI/B"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { mockClaim } from './create-mock-claim.js';
|
|
2
|
-
export function createMockClaims(...providers) {
|
|
3
|
-
return providers;
|
|
4
|
-
}
|
|
5
|
-
export function createMockClaimsFromMap(entries) {
|
|
6
|
-
return entries.map(([ClaimClass, implementation]) => mockClaim(ClaimClass, implementation ?? {}));
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=create-mock-claims.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-mock-claims.js","sourceRoot":"","sources":["../../src/testing/create-mock-claims.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAIlD,MAAM,UAAU,gBAAgB,CAC9B,GAAG,SAAwC;IAE3C,OAAO,SAAS,CAAA;AAClB,CAAC;AAOD,MAAM,UAAU,uBAAuB,CACrC,OAAkC;IAElC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,EAAE,CAClD,SAAS,CAAC,UAAU,EAAE,cAAc,IAAI,EAAE,CAAC,CAC5C,CAAA;AACH,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { Env } from '../../models/Env.js'
|
|
2
|
-
export declare function createTestEnv(
|
|
3
|
-
overrides: Record<string, string | undefined>,
|
|
4
|
-
base?: Record<string, string | undefined>,
|
|
5
|
-
): Record<string, string | undefined>
|
|
6
|
-
export declare function createTestEnvEntries(
|
|
7
|
-
overrides: Record<string, string | undefined>,
|
|
8
|
-
base?: Record<string, string | undefined>,
|
|
9
|
-
): Env.Entries
|
|
10
|
-
//# sourceMappingURL=create-test-env.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-test-env.d.ts","sourceRoot":"","sources":["../../src/testing/create-test-env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC7C,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM,GAC5C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAEpC;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC7C,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM,GAC5C,GAAG,CAAC,OAAO,CAEb"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-test-env.js","sourceRoot":"","sources":["../../src/testing/create-test-env.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAC3B,SAA6C,EAC7C,OAA2C,EAAE;IAE7C,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAE,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,SAA6C,EAC7C,OAA2C,EAAE;IAE7C,OAAO,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AACvC,CAAC"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import type { MockAsyncActivity } from '../types.js'
|
|
2
|
-
import {
|
|
3
|
-
AsyncActivity,
|
|
4
|
-
type AnyAsyncActivity,
|
|
5
|
-
} from '../../models/AsyncActivity.js'
|
|
6
|
-
import type { AsyncActivityResultPending } from '../../models/AsyncActivityAdvanceResult.js'
|
|
7
|
-
type InferSerializableOutput<T extends AnyAsyncActivity> =
|
|
8
|
-
T extends AsyncActivity<any, any, infer TSerializableOutput, any, any, any>
|
|
9
|
-
? TSerializableOutput
|
|
10
|
-
: unknown
|
|
11
|
-
type TypedOutcome<TOutput> =
|
|
12
|
-
| {
|
|
13
|
-
status: 'fulfilled'
|
|
14
|
-
output?: TOutput
|
|
15
|
-
}
|
|
16
|
-
| {
|
|
17
|
-
status: 'rejected'
|
|
18
|
-
reason?: unknown
|
|
19
|
-
}
|
|
20
|
-
| {
|
|
21
|
-
status: 'timeout'
|
|
22
|
-
}
|
|
23
|
-
interface OnContext {
|
|
24
|
-
callCount: number
|
|
25
|
-
input: unknown
|
|
26
|
-
pending: AsyncActivityResultPending
|
|
27
|
-
}
|
|
28
|
-
type OnCallback<T extends AnyAsyncActivity> = (
|
|
29
|
-
activity: T,
|
|
30
|
-
context: OnContext,
|
|
31
|
-
) =>
|
|
32
|
-
| TypedOutcome<InferSerializableOutput<T>>
|
|
33
|
-
| Promise<TypedOutcome<InferSerializableOutput<T>>>
|
|
34
|
-
type OnHandler<T extends AnyAsyncActivity> =
|
|
35
|
-
| TypedOutcome<InferSerializableOutput<T>>
|
|
36
|
-
| TypedOutcome<InferSerializableOutput<T>>[]
|
|
37
|
-
| OnCallback<T>
|
|
38
|
-
export interface MockAsyncBuilder extends MockAsyncActivity {
|
|
39
|
-
on<T extends AnyAsyncActivity>(
|
|
40
|
-
ActivityClass: new () => T,
|
|
41
|
-
handler: OnHandler<T>,
|
|
42
|
-
): MockAsyncBuilder
|
|
43
|
-
timeout(): MockAsyncBuilder
|
|
44
|
-
fallback(handler: MockAsyncActivity): MockAsyncBuilder
|
|
45
|
-
}
|
|
46
|
-
export declare function mockAsync(): MockAsyncBuilder
|
|
47
|
-
export {}
|
|
48
|
-
//# sourceMappingURL=mock-async.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-async.d.ts","sourceRoot":"","sources":["../../src/testing/mock-async.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,aAAa,EACb,KAAK,gBAAgB,EACtB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAA;AAEzF,KAAK,uBAAuB,CAAC,CAAC,SAAS,gBAAgB,IACrD,CAAC,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,mBAAmB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACvE,mBAAmB,GACnB,OAAO,CAAA;AAEb,KAAK,YAAY,CAAC,OAAO,IACrB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACxC;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAA;AAEzB,UAAU,SAAS;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,0BAA0B,CAAA;CACpC;AAED,KAAK,UAAU,CAAC,CAAC,SAAS,gBAAgB,IAAI,CAC5C,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,SAAS,KAEhB,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,GACxC,OAAO,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAErD,KAAK,SAAS,CAAC,CAAC,SAAS,gBAAgB,IACrC,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,GACxC,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,GAC1C,UAAU,CAAC,CAAC,CAAC,CAAA;AAQjB,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,EAAE,CAAC,CAAC,SAAS,gBAAgB,EAC3B,aAAa,EAAE,UAAU,CAAC,EAC1B,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GACpB,gBAAgB,CAAA;IAEnB,OAAO,IAAI,gBAAgB,CAAA;IAE3B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAAA;CACvD;AAED,wBAAgB,SAAS,IAAI,gBAAgB,CA+E5C"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { TestClock } from './TestClock.js';
|
|
2
|
-
import { AsyncActivity, } from '../models/AsyncActivity.js';
|
|
3
|
-
export function mockAsync() {
|
|
4
|
-
const entries = [];
|
|
5
|
-
let timeoutFallback = false;
|
|
6
|
-
let fallbackHandler;
|
|
7
|
-
const execute = async (activity, context) => {
|
|
8
|
-
for (const entry of entries) {
|
|
9
|
-
if (!(activity instanceof entry.ActivityClass))
|
|
10
|
-
continue;
|
|
11
|
-
const callCount = entry.callCount++;
|
|
12
|
-
const ctx = {
|
|
13
|
-
callCount,
|
|
14
|
-
input: context.input,
|
|
15
|
-
pending: context.pending,
|
|
16
|
-
};
|
|
17
|
-
if (typeof entry.handler === 'function') {
|
|
18
|
-
return entry.handler(activity, ctx);
|
|
19
|
-
}
|
|
20
|
-
if (Array.isArray(entry.handler)) {
|
|
21
|
-
const outcome = entry.handler[callCount];
|
|
22
|
-
if (outcome === undefined)
|
|
23
|
-
throw new Error(`mockAsync().on(${activity.constructor.name}): no outcome at call ${callCount} (${entry.handler.length} defined)`);
|
|
24
|
-
return outcome;
|
|
25
|
-
}
|
|
26
|
-
return entry.handler;
|
|
27
|
-
}
|
|
28
|
-
if (timeoutFallback && context.pending.timeoutAt) {
|
|
29
|
-
const target = context.pending.timeoutAt.getTime();
|
|
30
|
-
if (TestClock.isActive() && TestClock.now() < target)
|
|
31
|
-
TestClock.advance(target - TestClock.now());
|
|
32
|
-
return { status: 'timeout' };
|
|
33
|
-
}
|
|
34
|
-
if (fallbackHandler)
|
|
35
|
-
return fallbackHandler(activity, context);
|
|
36
|
-
throw new Error(`mockAsync(): no handler registered for "${activity.constructor.name}"`);
|
|
37
|
-
};
|
|
38
|
-
const builder = Object.assign(execute, {
|
|
39
|
-
on(ActivityClass, handler) {
|
|
40
|
-
entries.push({
|
|
41
|
-
ActivityClass: ActivityClass,
|
|
42
|
-
handler: handler,
|
|
43
|
-
callCount: 0,
|
|
44
|
-
});
|
|
45
|
-
return builder;
|
|
46
|
-
},
|
|
47
|
-
timeout() {
|
|
48
|
-
timeoutFallback = true;
|
|
49
|
-
return builder;
|
|
50
|
-
},
|
|
51
|
-
fallback(handler) {
|
|
52
|
-
fallbackHandler = handler;
|
|
53
|
-
return builder;
|
|
54
|
-
},
|
|
55
|
-
});
|
|
56
|
-
return builder;
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=mock-async.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mock-async.js","sourceRoot":"","sources":["../../src/testing/mock-async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAM1C,OAAO,EACL,aAAa,GAEd,MAAM,4BAA4B,CAAA;AAgDnC,MAAM,UAAU,SAAS;IACvB,MAAM,OAAO,GAAc,EAAE,CAAA;IAC7B,IAAI,eAAe,GAAG,KAAK,CAAA;IAC3B,IAAI,eAA8C,CAAA;IAElD,MAAM,OAAO,GAAsB,KAAK,EACtC,QAA0B,EAC1B,OAAiC,EACF,EAAE;QACjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,QAAQ,YAAY,KAAK,CAAC,aAAa,CAAC;gBAAE,SAAQ;YAExD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;YACnC,MAAM,GAAG,GAAc;gBACrB,SAAS;gBACT,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAA;YAED,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACxC,OAAQ,KAAK,CAAC,OAAwC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;YACvE,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gBAExC,IAAI,OAAO,KAAK,SAAS;oBACvB,MAAM,IAAI,KAAK,CACb,kBAAkB,QAAQ,CAAC,WAAW,CAAC,IAAI,yBAAyB,SAAS,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,WAAW,CAClH,CAAA;gBAEH,OAAO,OAAO,CAAA;YAChB,CAAC;YAED,OAAO,KAAK,CAAC,OAAO,CAAA;QACtB,CAAC;QAED,IAAI,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;YAElD,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,GAAG,EAAE,GAAG,MAAM;gBAClD,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAA;YAE7C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;QAC9B,CAAC;QAED,IAAI,eAAe;YAAE,OAAO,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAE9D,MAAM,IAAI,KAAK,CACb,2CAA2C,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CACxE,CAAA;IACH,CAAC,CAAA;IAED,MAAM,OAAO,GAAqB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QACvD,EAAE,CACA,aAA0B,EAC1B,OAAqB;YAErB,OAAO,CAAC,IAAI,CAAC;gBACX,aAAa,EAAE,aAA2C;gBAC1D,OAAO,EAAE,OAAsC;gBAC/C,SAAS,EAAE,CAAC;aACb,CAAC,CAAA;YAEF,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,OAAO;YACL,eAAe,GAAG,IAAI,CAAA;YACtB,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,QAAQ,CAAC,OAA0B;YACjC,eAAe,GAAG,OAAO,CAAA;YACzB,OAAO,OAAO,CAAA;QAChB,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export declare function fulfilled<T>(output?: T): {
|
|
2
|
-
status: 'fulfilled';
|
|
3
|
-
output?: T;
|
|
4
|
-
};
|
|
5
|
-
export declare function rejected(reason?: unknown): {
|
|
6
|
-
status: 'rejected';
|
|
7
|
-
reason?: unknown;
|
|
8
|
-
};
|
|
9
|
-
export declare function timeout(): {
|
|
10
|
-
status: 'timeout';
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=outcomes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"outcomes.d.ts","sourceRoot":"","sources":["../../src/testing/outcomes.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,CAAA;CAAE,CAE5E;AAED,wBAAgB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAEnF;AAED,wBAAgB,OAAO,IAAI;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAE/C"}
|
package/dist/testing/outcomes.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export function fulfilled(output) {
|
|
2
|
-
return { status: 'fulfilled', output };
|
|
3
|
-
}
|
|
4
|
-
export function rejected(reason) {
|
|
5
|
-
return { status: 'rejected', reason };
|
|
6
|
-
}
|
|
7
|
-
export function timeout() {
|
|
8
|
-
return { status: 'timeout' };
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=outcomes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"outcomes.js","sourceRoot":"","sources":["../../src/testing/outcomes.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAI,MAAU;IACrC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAgB;IACvC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;AAC9B,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { type TestClockRunOptions } from './TestClock.js';
|
|
2
|
-
import type { MockAsyncActivity } from './types.js';
|
|
3
|
-
import type { ClaimProvider } from '../models/Claim.js';
|
|
4
|
-
import type { Env } from '../models/Env.js';
|
|
5
|
-
import type { HistoryItem } from '../models/History.js';
|
|
6
|
-
import type { Log } from '../models/Logger.js';
|
|
7
|
-
import type { Workflow, WorkflowInput } from '../models/Workflow.js';
|
|
8
|
-
export type { AsyncActivityOutcome, MockAsyncActivity, MockAsyncActivityContext, } from './types.js';
|
|
9
|
-
export interface RunWorkflowOptions {
|
|
10
|
-
claims?: readonly ClaimProvider<any>[];
|
|
11
|
-
env?: Env.Entries;
|
|
12
|
-
mockAsyncActivity?: MockAsyncActivity;
|
|
13
|
-
maxTicks?: number;
|
|
14
|
-
logs?: Log[];
|
|
15
|
-
history?: HistoryItem[];
|
|
16
|
-
clock?: TestClockRunOptions | false;
|
|
17
|
-
strict?: boolean;
|
|
18
|
-
autoResolveTimeouts?: boolean;
|
|
19
|
-
}
|
|
20
|
-
export interface RunWorkflowResult<TOutput = unknown> {
|
|
21
|
-
output: TOutput;
|
|
22
|
-
history: readonly HistoryItem[];
|
|
23
|
-
logs: readonly Log[];
|
|
24
|
-
clockNow?: number;
|
|
25
|
-
}
|
|
26
|
-
export declare function runWorkflow<T extends Workflow<any, any>>(workflow: T, input: WorkflowInput<T>, options?: RunWorkflowOptions): Promise<unknown>;
|
|
27
|
-
export declare function runWorkflowDetailed<T extends Workflow<any, any>>(workflow: T, input: WorkflowInput<T>, options?: RunWorkflowOptions): Promise<RunWorkflowResult>;
|
|
28
|
-
export declare function runWorkflowTicks<T extends Workflow<any, any>>(workflow: T, input: WorkflowInput<T>, options: RunWorkflowOptions & {
|
|
29
|
-
history: HistoryItem[];
|
|
30
|
-
logs: Log[];
|
|
31
|
-
}): Promise<any>;
|
|
32
|
-
//# sourceMappingURL=run-workflow.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-workflow.d.ts","sourceRoot":"","sources":["../../src/testing/run-workflow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,KAAK,EAAwB,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAWzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAG9C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAGpE,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;IACtC,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACjB,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,OAAO,CAAC,EAAE,WAAW,EAAE,CAAA;IACvB,KAAK,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAA;IACnC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB,CAAC,OAAO,GAAG,OAAO;IAClD,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;IAC/B,IAAI,EAAE,SAAS,GAAG,EAAE,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAqBD,wBAAsB,WAAW,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAC5D,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,OAAO,GAAE,kBAAuB,oBAKjC;AAED,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EACpE,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAwB5B;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EACjE,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,OAAO,EAAE,kBAAkB,GAAG;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,IAAI,EAAE,GAAG,EAAE,CAAA;CACZ,gBAkCF"}
|