@t4h.framework/core 0.6.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/.ai/skills/framework-core/SKILL.md +103 -287
  2. package/.ai/skills/framework-workflow-creation/SKILL.md +108 -60
  3. package/.ai/skills/framework-workflow-testing/SKILL.md +165 -111
  4. package/README.md +123 -37
  5. package/dist/models/AsyncActivity.d.ts +1 -0
  6. package/dist/models/AsyncActivity.d.ts.map +1 -1
  7. package/dist/models/AsyncActivity.js +1 -0
  8. package/dist/models/AsyncActivity.js.map +1 -1
  9. package/dist/models/History.d.ts +1 -0
  10. package/dist/models/History.d.ts.map +1 -1
  11. package/dist/models/History.js +3 -0
  12. package/dist/models/History.js.map +1 -1
  13. package/dist/models/SyncActivity.d.ts +1 -0
  14. package/dist/models/SyncActivity.d.ts.map +1 -1
  15. package/dist/models/SyncActivity.js +1 -0
  16. package/dist/models/SyncActivity.js.map +1 -1
  17. package/dist/testing/ActivityTesting.d.ts +1 -1
  18. package/dist/testing/ActivityTesting.d.ts.map +1 -1
  19. package/dist/testing/ActivityTesting.js.map +1 -1
  20. package/dist/testing/TestClock.d.ts.map +1 -1
  21. package/dist/testing/TestClock.js +1 -2
  22. package/dist/testing/TestClock.js.map +1 -1
  23. package/dist/testing/TestWorkflowEnvironment.d.ts +6 -18
  24. package/dist/testing/TestWorkflowEnvironment.d.ts.map +1 -1
  25. package/dist/testing/TestWorkflowEnvironment.js +35 -93
  26. package/dist/testing/TestWorkflowEnvironment.js.map +1 -1
  27. package/dist/testing/WorkflowTesting.d.ts +1 -1
  28. package/dist/testing/async-activity-results.d.ts +12 -0
  29. package/dist/testing/async-activity-results.d.ts.map +1 -0
  30. package/dist/testing/async-activity-results.js +10 -0
  31. package/dist/testing/async-activity-results.js.map +1 -0
  32. package/dist/testing/create-mock-claim.d.ts +11 -5
  33. package/dist/testing/create-mock-claims.d.ts +12 -8
  34. package/dist/testing/create-test-env.d.ts +10 -4
  35. package/dist/testing/exceptions/NonDeterministicWorkflowError.d.ts +4 -0
  36. package/dist/testing/exceptions/NonDeterministicWorkflowError.d.ts.map +1 -0
  37. package/dist/testing/exceptions/NonDeterministicWorkflowError.js +7 -0
  38. package/dist/testing/exceptions/NonDeterministicWorkflowError.js.map +1 -0
  39. package/dist/testing/index.d.ts +8 -1
  40. package/dist/testing/index.d.ts.map +1 -1
  41. package/dist/testing/index.js +8 -1
  42. package/dist/testing/index.js.map +1 -1
  43. package/dist/testing/mock-async.d.ts +48 -0
  44. package/dist/testing/mock-async.d.ts.map +1 -0
  45. package/dist/testing/mock-async.js +58 -0
  46. package/dist/testing/mock-async.js.map +1 -0
  47. package/dist/testing/outcomes.d.ts +12 -0
  48. package/dist/testing/outcomes.d.ts.map +1 -0
  49. package/dist/testing/outcomes.js +10 -0
  50. package/dist/testing/outcomes.js.map +1 -0
  51. package/dist/testing/run-workflow.d.ts +22 -21
  52. package/dist/testing/run-workflow.d.ts.map +1 -1
  53. package/dist/testing/run-workflow.js +91 -33
  54. package/dist/testing/run-workflow.js.map +1 -1
  55. package/dist/testing/tools/create-mock-claim.d.ts +5 -0
  56. package/dist/testing/tools/create-mock-claim.d.ts.map +1 -0
  57. package/dist/testing/tools/create-mock-claim.js +26 -0
  58. package/dist/testing/tools/create-mock-claim.js.map +1 -0
  59. package/dist/testing/tools/create-mock-claims.d.ts +8 -0
  60. package/dist/testing/tools/create-mock-claims.d.ts.map +1 -0
  61. package/dist/testing/tools/create-mock-claims.js +5 -0
  62. package/dist/testing/tools/create-mock-claims.js.map +1 -0
  63. package/dist/testing/tools/create-test-env.d.ts +4 -0
  64. package/dist/testing/tools/create-test-env.d.ts.map +1 -0
  65. package/dist/testing/tools/create-test-env.js +7 -0
  66. package/dist/testing/tools/create-test-env.js.map +1 -0
  67. package/dist/testing/tools/mock-async.d.ts +20 -0
  68. package/dist/testing/tools/mock-async.d.ts.map +1 -0
  69. package/dist/testing/tools/mock-async.js +57 -0
  70. package/dist/testing/tools/mock-async.js.map +1 -0
  71. package/dist/testing/tools/resolve-activity.d.ts +11 -0
  72. package/dist/testing/tools/resolve-activity.d.ts.map +1 -0
  73. package/dist/testing/tools/resolve-activity.js +23 -0
  74. package/dist/testing/tools/resolve-activity.js.map +1 -0
  75. package/dist/testing/tools/resolve-async-activity.d.ts +15 -0
  76. package/dist/testing/tools/resolve-async-activity.d.ts.map +1 -0
  77. package/dist/testing/tools/resolve-async-activity.js +69 -0
  78. package/dist/testing/tools/resolve-async-activity.js.map +1 -0
  79. package/dist/testing/tools/run-with-clock.d.ts +3 -0
  80. package/dist/testing/tools/run-with-clock.d.ts.map +1 -0
  81. package/dist/testing/tools/run-with-clock.js +7 -0
  82. package/dist/testing/tools/run-with-clock.js.map +1 -0
  83. package/dist/testing/tools/run-workflow-ticks.d.ts +8 -0
  84. package/dist/testing/tools/run-workflow-ticks.d.ts.map +1 -0
  85. package/dist/testing/tools/run-workflow-ticks.js +26 -0
  86. package/dist/testing/tools/run-workflow-ticks.js.map +1 -0
  87. package/dist/testing/tools/run-workflow.d.ts +25 -0
  88. package/dist/testing/tools/run-workflow.d.ts.map +1 -0
  89. package/dist/testing/tools/run-workflow.js +25 -0
  90. package/dist/testing/tools/run-workflow.js.map +1 -0
  91. package/dist/testing/types.d.ts +1 -1
  92. package/dist/testing/types.d.ts.map +1 -1
  93. package/dist/testing/typings/AsyncActivityResult.d.ts +10 -0
  94. package/dist/testing/typings/AsyncActivityResult.d.ts.map +1 -0
  95. package/dist/testing/typings/AsyncActivityResult.js +2 -0
  96. package/dist/testing/typings/AsyncActivityResult.js.map +1 -0
  97. package/dist/testing/typings/ClaimConstructor.d.ts +2 -0
  98. package/dist/testing/typings/ClaimConstructor.d.ts.map +1 -0
  99. package/dist/testing/typings/ClaimConstructor.js +2 -0
  100. package/dist/testing/typings/ClaimConstructor.js.map +1 -0
  101. package/dist/testing/typings/MockAsyncActivity.d.ts +10 -0
  102. package/dist/testing/typings/MockAsyncActivity.d.ts.map +1 -0
  103. package/dist/testing/typings/MockAsyncActivity.js +2 -0
  104. package/dist/testing/typings/MockAsyncActivity.js.map +1 -0
  105. package/dist/tools/Internals.d.ts +1 -0
  106. package/dist/tools/Internals.d.ts.map +1 -1
  107. package/dist/tools/Internals.js +1 -0
  108. package/dist/tools/Internals.js.map +1 -1
  109. package/package.json +3 -2
  110. package/dist/testing/auto-resolve-timeouts.d.ts +0 -3
  111. package/dist/testing/auto-resolve-timeouts.d.ts.map +0 -1
  112. package/dist/testing/auto-resolve-timeouts.js +0 -16
  113. package/dist/testing/auto-resolve-timeouts.js.map +0 -1
  114. package/dist/testing/mock-async-by-activity.d.ts +0 -10
  115. package/dist/testing/mock-async-by-activity.d.ts.map +0 -1
  116. package/dist/testing/mock-async-by-activity.js +0 -15
  117. package/dist/testing/mock-async-by-activity.js.map +0 -1
  118. package/dist/testing/resolve-async-activities-in-order.d.ts +0 -3
  119. package/dist/testing/resolve-async-activities-in-order.d.ts.map +0 -1
  120. package/dist/testing/resolve-async-activities-in-order.js +0 -10
  121. package/dist/testing/resolve-async-activities-in-order.js.map +0 -1
  122. package/dist/tools/runWorkflowToCompletion.d.ts +0 -15
  123. package/dist/tools/runWorkflowToCompletion.d.ts.map +0 -1
  124. package/dist/tools/runWorkflowToCompletion.js +0 -61
  125. package/dist/tools/runWorkflowToCompletion.js.map +0 -1
package/README.md CHANGED
@@ -356,66 +356,152 @@ single process), use the dedicated `testing` entrypoint. It is meant for tests a
356
356
  local execution only and is not part of the runtime contract.
357
357
 
358
358
  ```typescript
359
- import { WorkflowTesting } from '@t4h.framework/core/testing'
359
+ import {
360
+ TestWorkflowEnvironment,
361
+ mockAsync,
362
+ fulfilled,
363
+ createMockClaims,
364
+ mockClaim,
365
+ } from '@t4h.framework/core/testing'
360
366
 
361
- const output = await WorkflowTesting.run<MyWorkflow>(myWorkflow, input, {
367
+ const env = TestWorkflowEnvironment.create({ now: 0 })
368
+
369
+ const output = await env.execute(myWorkflow, input, {
362
370
  env: { API_URL: 'https://api.example.com' },
363
- claims: [
364
- { provide: UserRepositoryClaim, value: new UserRepositoryClaimImpl() },
365
- ],
366
- mockAsyncActivity: () => ({ status: 'fulfilled', output: true }),
371
+ claims: [{ provide: UserRepositoryClaim, value: new UserRepositoryClaimImpl() }],
372
+ mockAsyncActivity: mockAsync().on(WaitForApprovalActivity, fulfilled(true)),
367
373
  })
368
374
  ```
369
375
 
376
+ `TestWorkflowEnvironment.create()` options:
377
+
378
+ | Option | Default | Purpose |
379
+ |--------|---------|---------|
380
+ | `now` | `0` | Pins `Date.now()` to this value at run start |
381
+ | `resolveActivityTimeouts` | `true` | Auto-advances clock to each activity's `timeoutAt` and resolves via `onTimeout` |
382
+
383
+ `execute()` options:
384
+
385
+ | Option | Type | Purpose |
386
+ |--------|------|---------|
387
+ | `claims` | `readonly ClaimProvider[]` | Claim implementations |
388
+ | `env` | `Env.Entries` | String env vars |
389
+ | `mockAsyncActivity` | `MockAsyncActivity` | Required when `bootstrap` returns `pending` and `resolveActivityTimeouts` doesn't cover it |
390
+
391
+ **Replay validation is automatic.** After each `execute()`, the environment
392
+ re-runs the workflow from the recorded history and from a fresh tick-by-tick
393
+ replay. A mismatch throws `NonDeterministicWorkflowError`.
394
+
370
395
  ### Driving async activities
371
396
 
372
397
  The harness runs the real `bootstrap`. If it already settles (`done`/`rejected`),
373
- that result is honored. If it returns `pending`, you **must** provide a
374
- `mockAsyncActivity` mock that declares the outcome for that activity — otherwise
375
- the run throws. This forces each test to consciously pick the scenario it covers.
398
+ that result is honored. If it returns `pending`, the `resolveActivityTimeouts`
399
+ option (default `true`) auto-advances the clock and resolves the activity via its
400
+ real `onTimeout` handler. When `resolveActivityTimeouts` is false or the activity
401
+ has no `timeoutAt`, you must provide `mockAsyncActivity`.
376
402
 
377
- The mock returns an outcome (not an `advance` payload):
403
+ Use the `mockAsync()` builder to declare outcomes per activity type:
378
404
 
379
405
  ```typescript
380
- // success
381
- mockAsyncActivity: () => ({ status: 'fulfilled', output: true })
406
+ import { mockAsync, fulfilled, rejected, timeout } from '@t4h.framework/core/testing'
407
+
408
+ // Static outcome per activity type
409
+ mockAsyncActivity: mockAsync()
410
+ .on(WaitForApprovalActivity, fulfilled(true))
411
+ .on(EmailActivity, fulfilled())
412
+
413
+ // Sequential outcomes per type (per-type call count)
414
+ mockAsyncActivity: mockAsync()
415
+ .on(WaitForApprovalActivity, [rejected(new Error('transient')), fulfilled(true)])
416
+
417
+ // Callback with per-type callCount
418
+ mockAsyncActivity: mockAsync()
419
+ .on(WaitForApprovalActivity, (activity, { callCount }) =>
420
+ callCount === 0 ? rejected() : fulfilled(true),
421
+ )
422
+
423
+ // Auto-resolve timeoutAt-based activities (e.g. SleepActivity)
424
+ mockAsyncActivity: mockAsync()
425
+ .on(WaitForApprovalActivity, fulfilled(true))
426
+ .timeout()
427
+
428
+ // Fallback for types not explicitly registered
429
+ mockAsyncActivity: mockAsync()
430
+ .on(WaitForApprovalActivity, fulfilled(true))
431
+ .fallback(() => timeout())
432
+ ```
382
433
 
383
- // rejection
384
- mockAsyncActivity: () => ({ status: 'rejected', reason: 'denied' })
434
+ Outcome helpers:
385
435
 
386
- // timeout — runs the activity's real onTimeout(pending) policy
387
- mockAsyncActivity: () => ({ status: 'timeout' })
436
+ ```typescript
437
+ fulfilled(output?) // { status: 'fulfilled', output }
438
+ rejected(reason?) // { status: 'rejected', reason }
439
+ timeout() // { status: 'timeout' } — runs the activity's real onTimeout()
388
440
  ```
389
441
 
390
- For workflows with several async activities in a fixed order, pass an array of
391
- outcomes — each pending async consumes the next entry (FIFO):
442
+ ### Mock claims
443
+
444
+ Use `mockClaim` and `createMockClaims` to build typed claim providers without
445
+ manual casts:
392
446
 
393
447
  ```typescript
394
- mockAsyncActivity: [
395
- { status: 'fulfilled', output: true },
396
- { status: 'rejected', reason: 'denied' },
397
- { status: 'timeout' },
398
- ]
448
+ import { createMockClaims, mockClaim } from '@t4h.framework/core/testing'
449
+ import { SftpClaim } from '@t4h.framework/sftp'
450
+
451
+ const list = vi.fn().mockResolvedValue([])
452
+ const claims = createMockClaims([mockClaim(SftpClaim, { list })])
399
453
  ```
400
454
 
401
- The mock receives the activity instance and `{ input, pending, index }`, so you
402
- can branch per activity or per resolution order:
455
+ Unimplemented claim methods throw with a clear error instead of returning
456
+ `undefined`.
457
+
458
+ For ready-made mocks, use each package's testing entrypoint — for example
459
+ `@t4h.framework/sftp/testing`, `@t4h.framework/http/testing`,
460
+ `@t4h.framework/orm/testing`.
461
+
462
+ ### Controlling test time
463
+
464
+ The environment exposes a clock that stays synchronized with the pinned
465
+ `Date.now()` across runs:
403
466
 
404
467
  ```typescript
405
- mockAsyncActivity: (activity, { index }) => {
406
- if (activity instanceof WaitForApprovalActivity)
407
- return { status: 'fulfilled', output: true }
468
+ env.clock.now() // current pinned timestamp (ms)
469
+ env.clock.advance(ms) // advance the pinned clock
470
+ env.clock.set(now) // set clock to a Date | number
471
+ ```
408
472
 
409
- if (index === 1) return { status: 'timeout' }
473
+ For direct clock control outside an environment, use `TestClock`:
410
474
 
411
- return { status: 'rejected', reason: 'denied' }
412
- }
475
+ ```typescript
476
+ import { TestClock } from '@t4h.framework/core/testing'
477
+
478
+ await TestClock.run({ now: 0 }, async () => {
479
+ TestClock.advance(86_400_000) // advance 1 day
480
+ // Date.now() returns the pinned value here
481
+ })
482
+ ```
483
+
484
+ ### Activity-level tests
485
+
486
+ The real `advance` logic is intentionally **not** exercised by `execute()`.
487
+ Test `advance` by calling it directly via `Internals.runActivity`:
488
+
489
+ ```typescript
490
+ import { Internals } from '@t4h.framework/core'
491
+
492
+ await Internals.runActivity(
493
+ WaitForApprovalActivity,
494
+ { env, claims },
495
+ activity => activity.advance({ approved: true }, pendingResult),
496
+ )
413
497
  ```
414
498
 
415
- You can also build the same FIFO behavior explicitly with
416
- `resolveAsyncActivitiesInOrder([...])` from `@t4h.framework/core/testing`.
499
+ ### Env helpers
417
500
 
418
- > The real `advance` logic is intentionally **not** exercised here — drive it in a
419
- > dedicated activity-level test via `Internals.runActivity`. The pending/resume
420
- > boundary (`PushWaitAsyncActivity`) is also not modeled: an async activity is a
421
- > single decision point per run.
501
+ Use `createTestEnv` to build env overrides:
502
+
503
+ ```typescript
504
+ import { createTestEnv } from '@t4h.framework/core/testing'
505
+
506
+ const envEntries = createTestEnv({ API_URL: 'https://example.com' })
507
+ ```
@@ -5,6 +5,7 @@ import type { IHistoryItemAsync } from './History.js';
5
5
  import type { Serializable } from '../typings/Serializable.js';
6
6
  export type AnyAsyncActivity = AsyncActivity<readonly any[], any, any, any, any, any>;
7
7
  export declare abstract class AsyncActivity<TArgs extends readonly any[], TInput extends Serializable, TSerializableOutput extends Serializable | void, TOutput, TBootstrap extends Serializable, TSchema extends Type.TSchema> {
8
+ id: string;
8
9
  abstract toInput(...args: TArgs): TInput | Promise<TInput>;
9
10
  abstract bootstrap(input: TInput): AsyncActivityResult<TBootstrap, TSchema, TSerializableOutput> | Promise<AsyncActivityResult<TBootstrap, TSchema, TSerializableOutput>>;
10
11
  abstract advance(payload: Type.Static<TSchema>, bootstrap: AsyncActivityResultPending): AsyncActivityResult<Serializable, TSchema, TSerializableOutput> | Promise<AsyncActivityResult<Serializable, TSchema, TSerializableOutput>>;
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncActivity.d.ts","sourceRoot":"","sources":["../../src/models/AsyncActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAA;AAE/B,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,mBAAmB,EACxB,KAAK,iCAAiC,EACvC,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAC1C,SAAS,GAAG,EAAE,EACd,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACJ,CAAA;AAED,8BAAsB,aAAa,CACjC,KAAK,SAAS,SAAS,GAAG,EAAE,EAC5B,MAAM,SAAS,YAAY,EAC3B,mBAAmB,SAAS,YAAY,GAAG,IAAI,EAC/C,OAAO,EACP,UAAU,SAAS,YAAY,EAC/B,OAAO,SAAS,IAAI,CAAC,OAAO;aAEZ,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;aAEjD,SAAS,CACvB,KAAK,EAAE,MAAM,GAEX,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,mBAAmB,CAAC,GAC7D,OAAO,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;aAE1D,OAAO,CACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAC7B,SAAS,EAAE,0BAA0B,GAEnC,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC,GAC/D,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;aAE5D,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,KAAK,GAAG,OAAO;IAEvE,SAAS,CAAC,CAEf,OAAO,EAAE,0BAA0B,GAEjC,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC,GAC/D,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAM5E,SAAS,CAAC,OAAO,CACf,OAAO,CAAC,EAAE,iCAAiC,CAAC,UAAU,EAAE,OAAO,CAAC;IAKlE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,mBAAmB;IAI5C,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAIzC,WAAW,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE;CAGjE"}
1
+ {"version":3,"file":"AsyncActivity.d.ts","sourceRoot":"","sources":["../../src/models/AsyncActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAA;AAE/B,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,mBAAmB,EACxB,KAAK,iCAAiC,EACvC,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAC1C,SAAS,GAAG,EAAE,EACd,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACJ,CAAA;AAED,8BAAsB,aAAa,CACjC,KAAK,SAAS,SAAS,GAAG,EAAE,EAC5B,MAAM,SAAS,YAAY,EAC3B,mBAAmB,SAAS,YAAY,GAAG,IAAI,EAC/C,OAAO,EACP,UAAU,SAAS,YAAY,EAC/B,OAAO,SAAS,IAAI,CAAC,OAAO;IAErB,EAAE,EAAG,MAAM,CAAA;aAEF,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;aAEjD,SAAS,CACvB,KAAK,EAAE,MAAM,GAEX,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,mBAAmB,CAAC,GAC7D,OAAO,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;aAE1D,OAAO,CACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAC7B,SAAS,EAAE,0BAA0B,GAEnC,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC,GAC/D,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;aAE5D,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,KAAK,GAAG,OAAO;IAEvE,SAAS,CAAC,CAEf,OAAO,EAAE,0BAA0B,GAEjC,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC,GAC/D,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAM5E,SAAS,CAAC,OAAO,CACf,OAAO,CAAC,EAAE,iCAAiC,CAAC,UAAU,EAAE,OAAO,CAAC;IAKlE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,mBAAmB;IAI5C,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAIzC,WAAW,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE;CAGjE"}
@@ -1,6 +1,7 @@
1
1
  import { AsyncActivityResultFulfilled, AsyncActivityResultPending, AsyncActivityResultRejected, } from './AsyncActivityAdvanceResult.js';
2
2
  import { AsyncActivityAwaitable } from './AsyncActivityAwaitable.js';
3
3
  export class AsyncActivity {
4
+ id;
4
5
  onTimeout(
5
6
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
6
7
  payload) {
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncActivity.js","sourceRoot":"","sources":["../../src/models/AsyncActivity.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,GAG5B,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAapE,MAAM,OAAgB,aAAa;IAyB1B,SAAS;IACd,6DAA6D;IAC7D,OAAmC;QAInC,OAAO,IAAI,CAAC,QAAQ,CAAC;YACnB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAA;IACJ,CAAC;IAES,OAAO,CACf,OAAgE;QAEhE,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC;IAES,IAAI,CAAC,OAA6B;QAC1C,OAAO,IAAI,4BAA4B,CAAC,OAAO,CAAC,CAAA;IAClD,CAAC;IAES,QAAQ,CAAC,OAA6B;QAC9C,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC;IAEM,WAAW,CAAC,IAAuB,EAAE,IAAoB;QAC9D,OAAO,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACrD,CAAC;CACF"}
1
+ {"version":3,"file":"AsyncActivity.js","sourceRoot":"","sources":["../../src/models/AsyncActivity.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,GAG5B,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAapE,MAAM,OAAgB,aAAa;IAQ1B,EAAE,CAAS;IAmBX,SAAS;IACd,6DAA6D;IAC7D,OAAmC;QAInC,OAAO,IAAI,CAAC,QAAQ,CAAC;YACnB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAA;IACJ,CAAC;IAES,OAAO,CACf,OAAgE;QAEhE,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC;IAES,IAAI,CAAC,OAA6B;QAC1C,OAAO,IAAI,4BAA4B,CAAC,OAAO,CAAC,CAAA;IAClD,CAAC;IAES,QAAQ,CAAC,OAA6B;QAC9C,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC;IAEM,WAAW,CAAC,IAAuB,EAAE,IAAoB;QAC9D,OAAO,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACrD,CAAC;CACF"}
@@ -3,6 +3,7 @@ import { type AnyAsyncActivity } from './AsyncActivity.js';
3
3
  import { AsyncActivityAwaitable } from './AsyncActivityAwaitable.js';
4
4
  export type HistoryItemType = 'sync' | 'async';
5
5
  interface IHistoryItem<T extends HistoryItemType> {
6
+ id: string;
6
7
  type: T;
7
8
  output: any;
8
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../src/models/History.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAGpE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,CAAA;AAE9C,UAAU,YAAY,CAAC,CAAC,SAAS,eAAe;IAC9C,IAAI,EAAE,CAAC,CAAA;IACP,MAAM,EAAE,GAAG,CAAA;CACZ;AAGD,MAAM,WAAW,gBAAiB,SAAQ,YAAY,CAAC,MAAM,CAAC;CAAG;AAEjE,MAAM,WAAW,iBAAkB,SAAQ,YAAY,CAAC,OAAO,CAAC;IAC9D,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,CAAA;IAC5C,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CACxB;AAED,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;AAE9D,yBAAiB,OAAO,CAAC;IACvB,KAAY,gBAAgB,CAAC,CAAC,SAAS,QAAQ,IAAI,CAAC,SAAS,gBAAgB,GACzE,sBAAsB,CAAC,CAAC,CAAC,GACzB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAItB,SAAgB,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,IACpD,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,kCAClC;IAED,SAAsB,UAAU,CAAC,CAAC,SAAS,QAAQ,EACjD,QAAQ,EAAE,UAAU,CAAC,EACrB,GAAG,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAuB9B;IAED,SAAgB,WAAW,IAAI,OAAO,CAMrC;IAED,SAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,KAElE;CACF"}
1
+ {"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../src/models/History.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAGpE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,CAAA;AAE9C,UAAU,YAAY,CAAC,CAAC,SAAS,eAAe;IAC9C,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,CAAC,CAAA;IACP,MAAM,EAAE,GAAG,CAAA;CACZ;AAGD,MAAM,WAAW,gBAAiB,SAAQ,YAAY,CAAC,MAAM,CAAC;CAAG;AAEjE,MAAM,WAAW,iBAAkB,SAAQ,YAAY,CAAC,OAAO,CAAC;IAC9D,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,CAAA;IAC5C,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CACxB;AAED,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;AAE9D,yBAAiB,OAAO,CAAC;IACvB,KAAY,gBAAgB,CAAC,CAAC,SAAS,QAAQ,IAAI,CAAC,SAAS,gBAAgB,GACzE,sBAAsB,CAAC,CAAC,CAAC,GACzB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAItB,SAAgB,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,IACpD,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,kCAClC;IAED,SAAsB,UAAU,CAAC,CAAC,SAAS,QAAQ,EACjD,QAAQ,EAAE,UAAU,CAAC,EACrB,GAAG,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CA4B9B;IAED,SAAgB,WAAW,IAAI,OAAO,CAMrC;IAED,SAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,KAElE;CACF"}
@@ -1,4 +1,5 @@
1
1
  import { AsyncLocalStorage } from 'node:async_hooks';
2
+ import { uuidv7 } from 'uuidv7';
2
3
  import {} from './Activity.js';
3
4
  import { AsyncActivity } from './AsyncActivity.js';
4
5
  import { AsyncActivityAwaitable } from './AsyncActivityAwaitable.js';
@@ -17,9 +18,11 @@ export var History;
17
18
  const value = history.shift();
18
19
  const activity = new Activity();
19
20
  if (!value) {
21
+ activity.id = uuidv7();
20
22
  const input = await activity.toInput(...args);
21
23
  throw new PushActivity(activity, input);
22
24
  }
25
+ activity.id = value.id;
23
26
  if (activity instanceof AsyncActivity) {
24
27
  if (value.type !== 'async')
25
28
  throw new Error('Invalid history item type');
@@ -1 +1 @@
1
- {"version":3,"file":"History.js","sourceRoot":"","sources":["../../src/models/History.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAiB,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAyB,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAmBhD,MAAM,KAAW,OAAO,CAkDvB;AAlDD,WAAiB,OAAO;IAKtB,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAiB,CAAA;IAEtD,SAAgB,IAAI,CAAqB,QAAqB;QAC5D,OAAO,CAAC,GAAG,IAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAA;IACrE,CAAC;IAFe,YAAI,OAEnB,CAAA;IAEM,KAAK,UAAU,UAAU,CAC9B,QAAqB,EACrB,GAAG,IAAsB;QAEzB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;QAElC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAEzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAA;QAC7B,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;QAE/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;YAE7C,MAAM,IAAI,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC;QAED,IAAI,QAAQ,YAAY,aAAa,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;YAExE,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAwB,CAAA;QACjE,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAE3B,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,IAAI,CAAwB,CAAA;IAClE,CAAC;IA1BqB,kBAAU,aA0B/B,CAAA;IAED,SAAgB,WAAW;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;QAEhC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QAExB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IACzB,CAAC;IANe,mBAAW,cAM1B,CAAA;IAED,SAAgB,GAAG,CAAI,OAA+B,EAAE,EAAW;QACjE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IACjD,CAAC;IAFe,WAAG,MAElB,CAAA;AACH,CAAC,EAlDgB,OAAO,KAAP,OAAO,QAkDvB"}
1
+ {"version":3,"file":"History.js","sourceRoot":"","sources":["../../src/models/History.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAiB,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAyB,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAoBhD,MAAM,KAAW,OAAO,CAuDvB;AAvDD,WAAiB,OAAO;IAKtB,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAiB,CAAA;IAEtD,SAAgB,IAAI,CAAqB,QAAqB;QAC5D,OAAO,CAAC,GAAG,IAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAA;IACrE,CAAC;IAFe,YAAI,OAEnB,CAAA;IAEM,KAAK,UAAU,UAAU,CAC9B,QAAqB,EACrB,GAAG,IAAsB;QAEzB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;QAElC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAEzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAA;QAE7B,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;QAE/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,QAAQ,CAAC,EAAE,GAAG,MAAM,EAAE,CAAA;YAEtB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;YAE7C,MAAM,IAAI,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC;QAED,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAA;QAEtB,IAAI,QAAQ,YAAY,aAAa,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;YAExE,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAwB,CAAA;QACjE,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAE3B,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,IAAI,CAAwB,CAAA;IAClE,CAAC;IA/BqB,kBAAU,aA+B/B,CAAA;IAED,SAAgB,WAAW;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;QAEhC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QAExB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IACzB,CAAC;IANe,mBAAW,cAM1B,CAAA;IAED,SAAgB,GAAG,CAAI,OAA+B,EAAE,EAAW;QACjE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IACjD,CAAC;IAFe,WAAG,MAElB,CAAA;AACH,CAAC,EAvDgB,OAAO,KAAP,OAAO,QAuDvB"}
@@ -1,5 +1,6 @@
1
1
  import type { Serializable } from '../typings/Serializable.js';
2
2
  export declare abstract class SyncActivity<TArgs extends readonly any[], TInput extends Serializable, TSerializableOutput extends Serializable | void, TOutput> {
3
+ id: string;
3
4
  abstract toInput(...args: TArgs): TInput | Promise<TInput>;
4
5
  abstract run(input: TInput): TSerializableOutput | Promise<TSerializableOutput>;
5
6
  abstract toOutput(output: TSerializableOutput, ...args: TArgs): TOutput;
@@ -1 +1 @@
1
- {"version":3,"file":"SyncActivity.d.ts","sourceRoot":"","sources":["../../src/models/SyncActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,8BAAsB,YAAY,CAChC,KAAK,SAAS,SAAS,GAAG,EAAE,EAC5B,MAAM,SAAS,YAAY,EAC3B,mBAAmB,SAAS,YAAY,GAAG,IAAI,EAC/C,OAAO;aAES,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;aAEjD,GAAG,CACjB,KAAK,EAAE,MAAM,GACZ,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;aAErC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,KAAK,GAAG,OAAO;CAC/E"}
1
+ {"version":3,"file":"SyncActivity.d.ts","sourceRoot":"","sources":["../../src/models/SyncActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,8BAAsB,YAAY,CAChC,KAAK,SAAS,SAAS,GAAG,EAAE,EAC5B,MAAM,SAAS,YAAY,EAC3B,mBAAmB,SAAS,YAAY,GAAG,IAAI,EAC/C,OAAO;IAEA,EAAE,EAAG,MAAM,CAAA;aAEF,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;aAEjD,GAAG,CACjB,KAAK,EAAE,MAAM,GACZ,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;aAErC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,KAAK,GAAG,OAAO;CAC/E"}
@@ -1,3 +1,4 @@
1
1
  export class SyncActivity {
2
+ id;
2
3
  }
3
4
  //# sourceMappingURL=SyncActivity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SyncActivity.js","sourceRoot":"","sources":["../../src/models/SyncActivity.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,YAAY;CAajC"}
1
+ {"version":3,"file":"SyncActivity.js","sourceRoot":"","sources":["../../src/models/SyncActivity.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,YAAY;IAMzB,EAAE,CAAS;CASnB"}
@@ -1,8 +1,8 @@
1
+ import type { AsyncActivityOutcome } from './types.js';
1
2
  import type { Activity } from '../models/Activity.js';
2
3
  import type { ClaimProvider } from '../models/Claim.js';
3
4
  import type { Env } from '../models/Env.js';
4
5
  import type { Log } from '../models/Logger.js';
5
- import type { AsyncActivityOutcome } from './types.js';
6
6
  export interface ActivityTestingAsyncOptions {
7
7
  /** Run the real advance handler when bootstrap returns pending. */
8
8
  advance?: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityTesting.d.ts","sourceRoot":"","sources":["../../src/testing/ActivityTesting.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,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;AAG9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD,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;AAuFD,qBAAa,0BAA2B,SAAQ,KAAK;aACvB,MAAM,EAAE,OAAO;gBAAf,MAAM,EAAE,OAAO;CAQ5C"}
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 +1 @@
1
- {"version":3,"file":"ActivityTesting.js","sourceRoot":"","sources":["../../src/testing/ActivityTesting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActivityTesting.js","sourceRoot":"","sources":["../../src/testing/ActivityTesting.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TestClock.d.ts","sourceRoot":"","sources":["../../src/testing/TestClock.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;CACpB;AAqBD,qBAAa,SAAS;WACN,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;WA8BpD,QAAQ,IAAI,OAAO;WAInB,GAAG,IAAI,MAAM;WAIb,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;WAWzB,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI;WAW7B,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;CAGtC"}
1
+ {"version":3,"file":"TestClock.d.ts","sourceRoot":"","sources":["../../src/testing/TestClock.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;CACpB;AAwBD,qBAAa,SAAS;WACN,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;WA+BpD,QAAQ,IAAI,OAAO;WAInB,GAAG,IAAI,MAAM;WAIb,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;WAWzB,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI;WAW7B,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;CAGtC"}
@@ -2,7 +2,7 @@ import { AsyncLocalStorage } from 'node:async_hooks';
2
2
  const storage = new AsyncLocalStorage();
3
3
  const OriginalDate = globalThis.Date;
4
4
  function createPatchedDateConstructor() {
5
- const PatchedDate = class extends OriginalDate {
5
+ return class extends OriginalDate {
6
6
  constructor(...args) {
7
7
  if (args.length === 0) {
8
8
  super(TestClock.now());
@@ -14,7 +14,6 @@ function createPatchedDateConstructor() {
14
14
  return TestClock.now();
15
15
  }
16
16
  };
17
- return PatchedDate;
18
17
  }
19
18
  export class TestClock {
20
19
  static run(options, fn) {
@@ -1 +1 @@
1
- {"version":3,"file":"TestClock.js","sourceRoot":"","sources":["../../src/testing/TestClock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAMpD,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAkB,CAAA;AAEvD,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAA;AAMpC,SAAS,4BAA4B;IACnC,MAAM,WAAW,GAAG,KAAM,SAAQ,YAAY;QAC5C,YAAY,GAAG,IAAmC;YAChD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAA;gBACtB,OAAM;YACR,CAAC;YAED,KAAK,CAAC,GAAI,IAAmD,CAAC,CAAA;QAChE,CAAC;QAEM,MAAM,CAAC,GAAG;YACf,OAAO,SAAS,CAAC,GAAG,EAAE,CAAA;QACxB,CAAC;KACF,CAAA;IAED,OAAO,WAA8B,CAAA;AACvC,CAAC;AAED,MAAM,OAAO,SAAS;IACb,MAAM,CAAC,GAAG,CAAI,OAA4B,EAAE,EAAW;QAC5D,MAAM,GAAG,GACP,OAAO,CAAC,GAAG,YAAY,IAAI;YACzB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;YACvB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,CAAC,CAAA;QAEzC,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE;YAC/B,MAAM,WAAW,GAAG,4BAA4B,EAAE,CAAA;YAClD,UAAU,CAAC,IAAI,GAAG,WAAW,CAAA;YAE7B,MAAM,MAAM,GAAG,GAAG,EAAE;gBAClB,UAAU,CAAC,IAAI,GAAG,YAAY,CAAA;YAChC,CAAC,CAAA;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,EAAE,EAAE,CAAA;gBAEnB,IAAI,MAAM,YAAY,OAAO;oBAC3B,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAM,CAAA;gBAEpC,MAAM,EAAE,CAAA;gBAER,OAAO,MAAM,CAAA;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,EAAE,CAAA;gBACR,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,MAAM,CAAC,QAAQ;QACpB,OAAO,OAAO,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAA;IACzC,CAAC;IAEM,MAAM,CAAC,GAAG;QACf,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,CAAA;IACtD,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,EAAU;QAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;QAEhC,IAAI,CAAC,KAAK;YACR,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAA;QAEH,KAAK,CAAC,GAAG,IAAI,EAAE,CAAA;IACjB,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,GAAkB;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;QAEhC,IAAI,CAAC,KAAK;YACR,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAA;QAEH,KAAK,CAAC,GAAG,GAAG,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;IACvD,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,EAAU;QAC5B,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"TestClock.js","sourceRoot":"","sources":["../../src/testing/TestClock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAUpD,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAkB,CAAA;AAEvD,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAA;AAEpC,SAAS,4BAA4B;IACnC,OAAO,KAAM,SAAQ,YAAY;QAC/B,YAAY,GAAG,IAAmC;YAChD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAA;gBAEtB,OAAM;YACR,CAAC;YAED,KAAK,CAAC,GAAI,IAAmD,CAAC,CAAA;QAChE,CAAC;QAEM,MAAM,CAAC,GAAG;YACf,OAAO,SAAS,CAAC,GAAG,EAAE,CAAA;QACxB,CAAC;KACiB,CAAA;AACtB,CAAC;AAED,MAAM,OAAO,SAAS;IACb,MAAM,CAAC,GAAG,CAAI,OAA4B,EAAE,EAAW;QAC5D,MAAM,GAAG,GACP,OAAO,CAAC,GAAG,YAAY,IAAI;YACzB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;YACvB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,CAAC,CAAA;QAEzC,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE;YAC/B,MAAM,WAAW,GAAG,4BAA4B,EAAE,CAAA;YAElD,UAAU,CAAC,IAAI,GAAG,WAAW,CAAA;YAE7B,MAAM,MAAM,GAAG,GAAG,EAAE;gBAClB,UAAU,CAAC,IAAI,GAAG,YAAY,CAAA;YAChC,CAAC,CAAA;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,EAAE,EAAE,CAAA;gBAEnB,IAAI,MAAM,YAAY,OAAO;oBAAE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAM,CAAA;gBAEjE,MAAM,EAAE,CAAA;gBAER,OAAO,MAAM,CAAA;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,EAAE,CAAA;gBAER,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,MAAM,CAAC,QAAQ;QACpB,OAAO,OAAO,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAA;IACzC,CAAC;IAEM,MAAM,CAAC,GAAG;QACf,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,CAAA;IACtD,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,EAAU;QAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;QAEhC,IAAI,CAAC,KAAK;YACR,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAA;QAEH,KAAK,CAAC,GAAG,IAAI,EAAE,CAAA;IACjB,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,GAAkB;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;QAEhC,IAAI,CAAC,KAAK;YACR,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAA;QAEH,KAAK,CAAC,GAAG,GAAG,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;IACvD,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,EAAU;QAC5B,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC;CACF"}
@@ -1,39 +1,27 @@
1
1
  import type { ClaimProvider } from '../models/Claim.js';
2
2
  import type { Env } from '../models/Env.js';
3
- import type { HistoryItem } from '../models/History.js';
4
- import type { Log } from '../models/Logger.js';
5
3
  import type { Workflow, WorkflowInput } from '../models/Workflow.js';
6
- import { type MockAsyncActivityInput } from './run-workflow.js';
4
+ import type { MockAsyncActivity } from './typings/MockAsyncActivity.js';
7
5
  export interface TestWorkflowEnvironmentOptions {
8
6
  now?: Date | number;
9
- strict?: boolean;
10
- autoResolveTimeouts?: boolean;
7
+ resolveActivityTimeouts?: boolean;
11
8
  }
12
9
  export interface TestWorkflowEnvironmentExecuteOptions {
13
10
  claims?: readonly ClaimProvider<any>[];
14
11
  env?: Env.Entries;
15
- mockAsyncActivity?: MockAsyncActivityInput;
16
- maxTicks?: number;
12
+ mockAsyncActivity?: MockAsyncActivity;
17
13
  }
18
14
  export declare class TestWorkflowEnvironment {
19
- private readonly strict;
20
- private readonly autoResolveTimeouts;
21
- private currentNow;
22
- private disposed;
23
- private lastRun?;
15
+ private resolveActivityTimeouts;
16
+ private now;
24
17
  private constructor();
25
18
  static create(options?: TestWorkflowEnvironmentOptions): TestWorkflowEnvironment;
26
- get history(): readonly HistoryItem[];
27
- get logs(): readonly Log[];
28
19
  readonly clock: {
29
20
  now: () => number;
30
21
  advance: (ms: number) => void;
31
- sleep: (ms: number) => void;
32
22
  set: (now: Date | number) => void;
33
23
  };
34
24
  execute<T extends Workflow<any, any>>(workflow: T, input?: WorkflowInput<T>, options?: TestWorkflowEnvironmentExecuteOptions): Promise<unknown>;
35
- assertReplayable(): Promise<void>;
36
- teardown(): void;
37
- private assertActive;
25
+ private assertWorkflowReplays;
38
26
  }
39
27
  //# sourceMappingURL=TestWorkflowEnvironment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TestWorkflowEnvironment.d.ts","sourceRoot":"","sources":["../../src/testing/TestWorkflowEnvironment.ts"],"names":[],"mappings":"AAAA,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;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAGpE,OAAO,EAGL,KAAK,sBAAsB,EAE5B,MAAM,mBAAmB,CAAA;AAG1B,MAAM,WAAW,8BAA8B;IAC7C,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,MAAM,WAAW,qCAAqC;IACpD,MAAM,CAAC,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;IACtC,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACjB,iBAAiB,CAAC,EAAE,sBAAsB,CAAA;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAaD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAE7C,OAAO,CAAC,UAAU,CAAQ;IAE1B,OAAO,CAAC,QAAQ,CAAQ;IAExB,OAAO,CAAC,OAAO,CAAC,CAAkB;IAElC,OAAO;WAUO,MAAM,CAClB,OAAO,GAAE,8BAAmC,GAC3C,uBAAuB;IAI1B,IAAW,OAAO,IAAI,SAAS,WAAW,EAAE,CAE3C;IAED,IAAW,IAAI,IAAI,SAAS,GAAG,EAAE,CAEhC;IAED,SAAgB,KAAK;;sBAGL,MAAM;oBAMR,MAAM;mBAIP,IAAI,GAAG,MAAM;MAKzB;IAEY,OAAO,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAC/C,QAAQ,EAAE,CAAC,EACX,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,OAAO,GAAE,qCAA0C;IAkDxC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IA8CvC,QAAQ,IAAI,IAAI;IAKvB,OAAO,CAAC,YAAY;CAMrB"}
1
+ {"version":3,"file":"TestWorkflowEnvironment.d.ts","sourceRoot":"","sources":["../../src/testing/TestWorkflowEnvironment.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAEvE,MAAM,WAAW,8BAA8B;IAC7C,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC;AAED,MAAM,WAAW,qCAAqC;IACpD,MAAM,CAAC,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;IACtC,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACjB,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CACtC;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,uBAAuB,CAAgB;IAE/C,OAAO,CAAC,GAAG,CAAY;IAEvB,OAAO;WASO,MAAM,CAClB,OAAO,GAAE,8BAAmC,GAC3C,uBAAuB;IAI1B,SAAgB,KAAK;;sBAGL,MAAM;mBAMT,IAAI,GAAG,MAAM;MAKzB;IAEY,OAAO,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAC/C,QAAQ,EAAE,CAAC,EACX,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,OAAO,GAAE,qCAA0C;YAgCvC,qBAAqB;CAsBpC"}
@@ -1,120 +1,62 @@
1
- import { Internals } from '../tools/Internals.js';
2
- import { NonDeterministicWorkflowError } from './NonDeterministicWorkflowError.js';
3
- import { runWorkflowDetailed, runWorkflowTicks, } from './run-workflow.js';
1
+ import { isDeepStrictEqual } from 'node:util';
2
+ import { NonDeterministicWorkflowError } from './exceptions/NonDeterministicWorkflowError.js';
4
3
  import { TestClock } from './TestClock.js';
4
+ import { runWorkflow } from './tools/run-workflow.js';
5
+ import { Internals } from '../tools/Internals.js';
5
6
  export class TestWorkflowEnvironment {
6
- strict;
7
- autoResolveTimeouts;
8
- currentNow;
9
- disposed = false;
10
- lastRun;
7
+ resolveActivityTimeouts = true;
8
+ now = 0;
11
9
  constructor(options) {
12
- this.currentNow =
13
- options.now instanceof Date
14
- ? options.now.getTime()
15
- : (options.now ?? 0);
16
- this.strict = options.strict ?? true;
17
- this.autoResolveTimeouts = options.autoResolveTimeouts ?? true;
10
+ if (options.now)
11
+ this.now =
12
+ options.now instanceof Date ? options.now.getTime() : options.now;
13
+ if (typeof options.resolveActivityTimeouts === 'boolean')
14
+ this.resolveActivityTimeouts = options.resolveActivityTimeouts;
18
15
  }
19
16
  static create(options = {}) {
20
17
  return new TestWorkflowEnvironment(options);
21
18
  }
22
- get history() {
23
- return this.lastRun?.history ?? [];
24
- }
25
- get logs() {
26
- return this.lastRun?.logs ?? [];
27
- }
28
19
  clock = {
29
- now: () => this.currentNow,
20
+ now: () => this.now,
30
21
  advance: (ms) => {
31
- this.currentNow += ms;
22
+ this.now += ms;
32
23
  if (TestClock.isActive())
33
24
  TestClock.advance(ms);
34
25
  },
35
- sleep: (ms) => {
36
- this.clock.advance(ms);
37
- },
38
26
  set: (now) => {
39
- this.currentNow = now instanceof Date ? now.getTime() : now;
27
+ this.now = now instanceof Date ? now.getTime() : now;
40
28
  if (TestClock.isActive())
41
29
  TestClock.set(now);
42
30
  },
43
31
  };
44
32
  async execute(workflow, input, options = {}) {
45
- this.assertActive();
46
- const history = [];
47
- const logs = [];
48
- const claims = options.claims ?? [];
49
- const env = options.env ?? {};
50
- const workflowInput = input;
51
- const runOptions = {
52
- claims,
53
- env,
54
- history,
55
- logs,
56
- clock: { now: this.currentNow },
57
- strict: this.strict,
58
- autoResolveTimeouts: this.autoResolveTimeouts,
59
- maxTicks: options.maxTicks,
33
+ const runWorkflowOptions = {
34
+ claims: options.claims ?? [],
35
+ env: options.env ?? {},
36
+ history: [],
37
+ logs: [],
38
+ clock: { now: this.now },
39
+ resolveActivityTimeouts: this.resolveActivityTimeouts,
60
40
  };
61
41
  if (options.mockAsyncActivity !== undefined)
62
- runOptions.mockAsyncActivity = options.mockAsyncActivity;
63
- const result = await TestClock.run({ now: this.currentNow }, async () => {
64
- const runResult = await runWorkflowDetailed(workflow, workflowInput, runOptions);
65
- this.currentNow = TestClock.now();
66
- return runResult;
67
- });
68
- this.lastRun = {
69
- workflow,
70
- input: workflowInput,
71
- output: result.output,
72
- history: [...history],
73
- logs: [...logs],
74
- claims,
75
- env,
76
- mockAsyncActivity: options.mockAsyncActivity,
77
- };
42
+ runWorkflowOptions.mockAsyncActivity = options.mockAsyncActivity;
43
+ const result = await runWorkflow(workflow, input, runWorkflowOptions);
44
+ if (result.clockNow !== undefined)
45
+ this.now = result.clockNow;
46
+ await this.assertWorkflowReplays(workflow, input, result.output, runWorkflowOptions);
78
47
  return result.output;
79
48
  }
80
- async assertReplayable() {
81
- this.assertActive();
82
- const lastRun = this.lastRun;
83
- if (!lastRun)
84
- throw new Error('No workflow execution to replay. Call execute() before assertReplayable().');
85
- const replayResult = await TestClock.run({ now: this.currentNow }, () => Internals.runWorkflow(lastRun.workflow, {
86
- input: lastRun.input,
87
- claims: lastRun.claims,
88
- env: lastRun.env,
89
- history: structuredClone(lastRun.history),
90
- logs: [],
91
- }));
92
- if (!isEqual(lastRun.output, replayResult))
93
- throw new NonDeterministicWorkflowError('Replay from recorded history produced a different workflow output.');
94
- const history = [];
95
- await TestClock.run({ now: this.currentNow }, () => runWorkflowTicks(lastRun.workflow, lastRun.input, {
96
- claims: lastRun.claims,
97
- env: lastRun.env,
98
- history,
49
+ async assertWorkflowReplays(workflow, input, output, context) {
50
+ const replay = await TestClock.run({ now: this.now }, () => Internals.runWorkflow(workflow, {
51
+ input,
52
+ claims: context.claims,
53
+ env: context.env,
54
+ history: structuredClone(context.history),
99
55
  logs: [],
100
- strict: this.strict,
101
- autoResolveTimeouts: this.autoResolveTimeouts,
102
- mockAsyncActivity: lastRun.mockAsyncActivity,
103
- maxTicks: 10_000,
104
56
  }));
105
- if (!isEqual(lastRun.history, history))
106
- throw new NonDeterministicWorkflowError('A second workflow run produced a different activity history. Workflow code may be non-deterministic.');
57
+ if (isDeepStrictEqual(output, replay))
58
+ return;
59
+ throw new NonDeterministicWorkflowError('Replay from recorded history produced a different workflow output.');
107
60
  }
108
- teardown() {
109
- this.disposed = true;
110
- this.lastRun = undefined;
111
- }
112
- assertActive() {
113
- if (this.disposed)
114
- throw new Error('TestWorkflowEnvironment has been torn down. Create a new environment with TestWorkflowEnvironment.create().');
115
- }
116
- }
117
- function isEqual(left, right) {
118
- return JSON.stringify(left) === JSON.stringify(right);
119
61
  }
120
62
  //# sourceMappingURL=TestWorkflowEnvironment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TestWorkflowEnvironment.js","sourceRoot":"","sources":["../../src/testing/TestWorkflowEnvironment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TestWorkflowEnvironment.js","sourceRoot":"","sources":["../../src/testing/TestWorkflowEnvironment.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type RunWorkflowOptions } from './run-workflow.js';
2
2
  import type { Workflow, WorkflowInput } from '../models/Workflow.js';
3
3
  export declare class WorkflowTesting {
4
- static run<T extends Workflow<any, any>>(workflow: T, input?: WorkflowInput<T>, options?: RunWorkflowOptions): Promise<any>;
4
+ static run<T extends Workflow<any, any>>(workflow: T, input?: WorkflowInput<T>, options?: RunWorkflowOptions): Promise<unknown>;
5
5
  }
6
6
  //# sourceMappingURL=WorkflowTesting.d.ts.map