@venturekit/runtime 0.0.0-dev.20260415182021 → 0.0.0-dev.20260427211132

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 (70) hide show
  1. package/dist/env/memo.d.ts +39 -0
  2. package/dist/env/memo.d.ts.map +1 -0
  3. package/dist/env/memo.js +85 -0
  4. package/dist/env/memo.js.map +1 -0
  5. package/dist/handler/context.d.ts.map +1 -1
  6. package/dist/handler/context.js +12 -14
  7. package/dist/handler/context.js.map +1 -1
  8. package/dist/handler/data-loader.d.ts +50 -0
  9. package/dist/handler/data-loader.d.ts.map +1 -0
  10. package/dist/handler/data-loader.js +68 -0
  11. package/dist/handler/data-loader.js.map +1 -0
  12. package/dist/handler/errors.d.ts +10 -0
  13. package/dist/handler/errors.d.ts.map +1 -1
  14. package/dist/handler/errors.js +13 -0
  15. package/dist/handler/errors.js.map +1 -1
  16. package/dist/handler/handler.d.ts +18 -0
  17. package/dist/handler/handler.d.ts.map +1 -1
  18. package/dist/handler/handler.js +56 -11
  19. package/dist/handler/handler.js.map +1 -1
  20. package/dist/handler/queue-batch.d.ts +140 -0
  21. package/dist/handler/queue-batch.d.ts.map +1 -0
  22. package/dist/handler/queue-batch.js +180 -0
  23. package/dist/handler/queue-batch.js.map +1 -0
  24. package/dist/handler/response.d.ts +8 -1
  25. package/dist/handler/response.d.ts.map +1 -1
  26. package/dist/handler/response.js +18 -4
  27. package/dist/handler/response.js.map +1 -1
  28. package/dist/handler/task-handler.d.ts.map +1 -1
  29. package/dist/handler/task-handler.js +8 -12
  30. package/dist/handler/task-handler.js.map +1 -1
  31. package/dist/index.d.ts +5 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +4 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/logging/logger.d.ts +20 -1
  36. package/dist/logging/logger.d.ts.map +1 -1
  37. package/dist/logging/logger.js +66 -23
  38. package/dist/logging/logger.js.map +1 -1
  39. package/dist/logging/metrics.d.ts +105 -0
  40. package/dist/logging/metrics.d.ts.map +1 -0
  41. package/dist/logging/metrics.js +189 -0
  42. package/dist/logging/metrics.js.map +1 -0
  43. package/dist/logging/tracing.d.ts +64 -10
  44. package/dist/logging/tracing.d.ts.map +1 -1
  45. package/dist/logging/tracing.js +197 -15
  46. package/dist/logging/tracing.js.map +1 -1
  47. package/dist/middleware/middleware.d.ts +3 -0
  48. package/dist/middleware/middleware.d.ts.map +1 -1
  49. package/dist/middleware/middleware.js +11 -2
  50. package/dist/middleware/middleware.js.map +1 -1
  51. package/dist/middleware/rate-limit-store.d.ts +18 -0
  52. package/dist/middleware/rate-limit-store.d.ts.map +1 -1
  53. package/dist/middleware/rate-limit-store.js +24 -4
  54. package/dist/middleware/rate-limit-store.js.map +1 -1
  55. package/dist/patterns/circuit-breaker.d.ts +11 -0
  56. package/dist/patterns/circuit-breaker.d.ts.map +1 -1
  57. package/dist/patterns/circuit-breaker.js +26 -2
  58. package/dist/patterns/circuit-breaker.js.map +1 -1
  59. package/dist/patterns/invoke.d.ts.map +1 -1
  60. package/dist/patterns/invoke.js +60 -31
  61. package/dist/patterns/invoke.js.map +1 -1
  62. package/dist/patterns/saga.d.ts +42 -1
  63. package/dist/patterns/saga.d.ts.map +1 -1
  64. package/dist/patterns/saga.js +78 -20
  65. package/dist/patterns/saga.js.map +1 -1
  66. package/dist/security/internal-hmac.d.ts +59 -0
  67. package/dist/security/internal-hmac.d.ts.map +1 -0
  68. package/dist/security/internal-hmac.js +117 -0
  69. package/dist/security/internal-hmac.js.map +1 -0
  70. package/package.json +4 -4
@@ -24,8 +24,11 @@
24
24
  * ```
25
25
  */
26
26
  import * as http from 'http';
27
+ import { randomUUID } from 'node:crypto';
27
28
  import { injectTraceHeaders, createChildTrace, generateId, extractTraceContext } from '../logging/tracing.js';
28
29
  import { createCircuitBreaker } from './circuit-breaker.js';
30
+ import { signInternalCall, INTERNAL_HMAC_HEADERS } from '../security/internal-hmac.js';
31
+ import { getLocalProjectUrls as getLocalProjectUrlsMemo } from '../env/memo.js';
29
32
  /**
30
33
  * Default function name resolver.
31
34
  * Converts 'users/get' → '{prefix}-users-get'
@@ -56,11 +59,17 @@ export function createInvoker(options) {
56
59
  const rawQueryString = Object.entries(queryParams)
57
60
  .map(([k, v]) => `${k}=${encodeURIComponent(v)}`)
58
61
  .join('&');
62
+ // Sign the internal call so the receiver can distinguish a real Lambda-to-
63
+ // Lambda call from a forged `x-venturekit-source: internal` header supplied
64
+ // by an external client to API Gateway.
65
+ const { timestamp: hmacTs, signature: hmacSig } = signInternalCall(functionName);
59
66
  // Build headers with trace propagation
60
67
  const allHeaders = {
61
68
  'content-type': 'application/json',
62
- 'x-venturekit-source': 'internal',
63
- 'x-venturekit-invoke-id': `inv-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
69
+ [INTERNAL_HMAC_HEADERS.SOURCE]: 'internal',
70
+ [INTERNAL_HMAC_HEADERS.TIMESTAMP]: hmacTs,
71
+ [INTERNAL_HMAC_HEADERS.SIGNATURE]: hmacSig,
72
+ [INTERNAL_HMAC_HEADERS.INVOKE_ID]: `inv-${randomUUID()}`,
64
73
  ...headers,
65
74
  };
66
75
  // Propagate trace context
@@ -208,27 +217,14 @@ export async function createLambdaInvoker(options) {
208
217
  };
209
218
  }
210
219
  /**
211
- * Parse the local project URL registry from VENTURE_LOCAL_URLS env var.
212
- *
213
- * Format: comma-separated `project=url` pairs, e.g.:
214
- * VENTURE_LOCAL_URLS="app=http://localhost:3000,billing=http://localhost:3001"
215
- *
216
- * When invoking a function whose resolved name starts with a known project
217
- * prefix, the request is routed to that project's local server instead of
218
- * the current one. This enables cross-project calls during local dev.
220
+ * Thin wrapper around the memoized local-project-URL registry
221
+ * (see `env/memo`). Kept as a local function so the rest of this file can
222
+ * continue to call `getLocalProjectUrls()` without knowing about the memo
223
+ * module; the cache invalidates automatically when `VENTURE_LOCAL_URLS`
224
+ * changes.
219
225
  */
220
226
  function getLocalProjectUrls() {
221
- const raw = process.env.VENTURE_LOCAL_URLS;
222
- if (!raw)
223
- return {};
224
- const map = {};
225
- for (const entry of raw.split(',')) {
226
- const [name, url] = entry.split('=');
227
- if (name && url) {
228
- map[name.trim()] = url.trim();
229
- }
230
- }
231
- return map;
227
+ return getLocalProjectUrlsMemo();
232
228
  }
233
229
  /**
234
230
  * Resolve the local base URL for a given function name.
@@ -387,6 +383,39 @@ async function getLambdaInvoker() {
387
383
  }
388
384
  return _lambdaInvokerSingleton;
389
385
  }
386
+ /**
387
+ * Cached `(resolver, invokerFn)` pair keyed by the project prefix.
388
+ *
389
+ * Both the name resolver and the `createInvoker` closure are pure functions
390
+ * of the prefix + lambda invoker — which are stable across warm invocations.
391
+ * Building them on every call was wasteful, especially under high QPS. We
392
+ * key by prefix so that test setups mutating `VENTURE_PROJECT_NAME` still
393
+ * see fresh closures, and by invoker identity so swapping the invoker
394
+ * (e.g. local-dev → prod SDK) transparently busts the cache.
395
+ */
396
+ let _cachedResolverForPrefix;
397
+ let _cachedResolver;
398
+ let _cachedInvokerFn;
399
+ let _cachedInvokerFnInvoker;
400
+ function resolverForPrefix(prefix) {
401
+ if (prefix !== _cachedResolverForPrefix || !_cachedResolver) {
402
+ _cachedResolver = defaultFunctionNameResolver(prefix);
403
+ _cachedResolverForPrefix = prefix;
404
+ // When the resolver identity changes, the invokerFn must be rebuilt too
405
+ // since it closes over the resolver. Invalidate here rather than in the
406
+ // caller to keep the cache state coherent.
407
+ _cachedInvokerFn = undefined;
408
+ _cachedInvokerFnInvoker = undefined;
409
+ }
410
+ return _cachedResolver;
411
+ }
412
+ function invokerFnFor(lambdaInvoker, resolver) {
413
+ if (!_cachedInvokerFn || lambdaInvoker !== _cachedInvokerFnInvoker) {
414
+ _cachedInvokerFn = createInvoker({ invoker: lambdaInvoker, resolver });
415
+ _cachedInvokerFnInvoker = lambdaInvoker;
416
+ }
417
+ return _cachedInvokerFn;
418
+ }
390
419
  /**
391
420
  * Get the project prefix for function name resolution.
392
421
  * Reads from VENTURE_PROJECT_NAME env var, falls back to 'app'.
@@ -482,21 +511,21 @@ export async function invoke(target, options) {
482
511
  if (typeof target === 'string') {
483
512
  const lambdaInvoker = await getLambdaInvoker();
484
513
  const prefix = getProjectPrefix();
485
- const resolver = defaultFunctionNameResolver(prefix);
514
+ // Reuse the module-level resolver + invokerFn closures when the prefix
515
+ // and underlying Lambda invoker haven't changed. This is the hot path
516
+ // under high QPS; building closures here on every call is measurable.
517
+ const resolver = resolverForPrefix(prefix);
518
+ const invokerFn = invokerFnFor(lambdaInvoker, resolver);
486
519
  const invokeOpts = options ?? {};
487
520
  // Auto-propagate trace context if not explicitly provided
488
521
  if (!invokeOpts.trace) {
489
522
  invokeOpts.trace = traceContextFromHeaders(invokeOpts.headers);
490
523
  }
491
- // Auto-propagate tenant from env if not explicitly provided
492
- if (!invokeOpts.tenantId && process.env._VENTURE_TENANT_ID) {
493
- invokeOpts.tenantId = process.env._VENTURE_TENANT_ID;
494
- }
495
- // Auto-propagate user from env if not explicitly provided
496
- if (!invokeOpts.userId && process.env._VENTURE_USER_ID) {
497
- invokeOpts.userId = process.env._VENTURE_USER_ID;
498
- }
499
- const invokerFn = createInvoker({ invoker: lambdaInvoker, resolver });
524
+ // NOTE: tenant/user are NOT auto-propagated from process.env. A Lambda
525
+ // container is reused across invocations — reading identity from env
526
+ // would leak request A's tenant/user into request B's outbound call.
527
+ // Callers must pass invokeOpts.tenantId / invokeOpts.userId explicitly
528
+ // (typically `tenantId: ctx.tenant?.id, userId: ctx.user?.id`).
500
529
  const doInvoke = () => invokerFn(target, invokeOpts);
501
530
  // Circuit breaker: wrap with fallback when provided
502
531
  if (invokeOpts.fallback) {
@@ -1 +1 @@
1
- {"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../src/patterns/invoke.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,UAAU,EAAE,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAC7H,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AA2E5D;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAc;IACxD,OAAO,CAAC,KAAa,EAAE,EAAE;QACvB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9D,OAAO,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAK7B;IACC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAEtC;;OAEG;IACH,OAAO,KAAK,UAAU,MAAM,CAC1B,KAAa,EACb,gBAA+B,EAAE;QAEjC,MAAM,EACJ,MAAM,GAAG,MAAM,EACf,IAAI,EACJ,UAAU,GAAG,EAAE,EACf,WAAW,GAAG,EAAE,EAChB,OAAO,GAAG,EAAE,EACZ,IAAI,GAAG,MAAM,EACb,KAAK,EACL,QAAQ,EACR,MAAM,GACP,GAAG,aAAa,CAAC;QAElB,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAErC,6BAA6B;QAC7B,IAAI,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,qBAAqB;QACrB,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;aAC/C,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;aAChD,IAAI,CAAC,GAAG,CAAC,CAAC;QAEb,uCAAuC;QACvC,MAAM,UAAU,GAA2B;YACzC,cAAc,EAAE,kBAAkB;YAClC,qBAAqB,EAAE,UAAU;YACjC,wBAAwB,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YACvF,GAAG,OAAO;SACX,CAAC;QAEF,0BAA0B;QAC1B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,mBAAmB;QACnB,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;QACvC,CAAC;QAED,iBAAiB;QACjB,IAAI,MAAM,EAAE,CAAC;YACX,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;QACnC,CAAC;QAED,qCAAqC;QACrC,MAAM,KAAK,GAAG;YACZ,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,GAAG,MAAM,IAAI,IAAI,EAAE;YAC7B,OAAO,EAAE,IAAI;YACb,cAAc;YACd,OAAO,EAAE,UAAU;YACnB,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YACpF,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC3E,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YAC3D,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE;gBACd,SAAS,EAAE,UAAU;gBACrB,KAAK,EAAE,UAAU;gBACjB,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,UAAU;gBACxB,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE;gBACnG,SAAS,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE;gBACjC,QAAQ,EAAE,GAAG,MAAM,IAAI,IAAI,EAAE;gBAC7B,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC9B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB;SACF,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAEtE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAC3B,YAAY;YACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC9B,cAAc;SACf,CAAC,CAAC;QAEH,2CAA2C;QAC3C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;gBACpC,IAAI,EAAE,SAAc;gBACpB,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,SAAc,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACrF,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE3E,OAAO;gBACL,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,GAAG;gBACtC,IAAI,EAAE,YAAY,EAAE,IAAI,IAAI,YAAY;gBACxC,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE;aAChC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;gBACpC,IAAI,EAAE,MAAM,CAAC,OAAuB;gBACpC,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E;;GAEG;AACH,SAAS,UAAU;IACjB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,oBAAoB,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,EAAE,CAAC;AACzG,CAAC;AAED;;;GAGG;AACH,IAAI,uBAAuB,GAAyB,IAAI,CAAC;AAEzD;;;GAGG;AACH,IAAI,eAAe,GAA0B,IAAI,CAAC;AAElD,SAAS,iBAAiB;IACxB,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,eAAe,GAAG,oBAAoB,CAAC;YACrC,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAA8B;IACpE,eAAe,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAGzC;IACC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,WAAW,CAAC;IAE1G,+DAA+D;IAC/D,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;YAChC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;SAClD,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO;YAC9B,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC5C,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO;SACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,mBAAmB;IAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,YAAoB;IAC3C,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;IACnC,uDAAuD;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9E,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;QACpC,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC;YAC3C,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,iBAAiB,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,kBAAkB;IAEhC,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,2EAA2E;QAC3E,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAErD,4EAA4E;QAC5E,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,SAAiB,CAAC;QACtB,IAAI,MAAc,CAAC;QACnB,IAAI,IAAwB,CAAC;QAC7B,IAAI,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAE7E,8DAA8D;QAC9D,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;YACtE,wEAAwE;YACxE,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;YACrD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;YACnC,MAAM,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,SAAS,GAAG,GAAG,OAAO,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;YACrC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACnB,2BAA2B;YAC3B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,yDAAyD;YACzD,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7D,SAAS,GAAG,GAAG,OAAO,gBAAgB,MAAM,EAAE,CAAC;YAC/C,MAAM,GAAG,MAAM,CAAC;YAChB,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QAED,4CAA4C;QAC5C,OAAO,IAAI,OAAO,CAA4C,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAChF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/B,MAAM,UAAU,GAAwB;gBACtC,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM;gBAC/B,MAAM;gBACN,OAAO;aACR,CAAC;YAEF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAE7D,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;wBACvC,oEAAoE;wBACpE,MAAM,eAAe,GAA2B,EAAE,CAAC;wBACnD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;4BAChB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gCACjD,IAAI,OAAO,CAAC,KAAK,QAAQ;oCAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BACpD,CAAC;wBACH,CAAC;wBACD,OAAO,CAAC;4BACN,UAAU,EAAE,GAAG;4BACf,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;gCACtB,UAAU,EAAE,GAAG,CAAC,UAAU;gCAC1B,OAAO,EAAE,eAAe;gCACxB,IAAI,EAAE,YAAY;6BACnB,CAAC;yBACH,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,+CAA+C;wBAC/C,OAAO,CAAC;4BACN,UAAU,EAAE,GAAG,CAAC,UAAU;4BAC1B,OAAO,EAAE,YAAY;yBACtB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACtB,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,OAAO,uCAAuC,CAAC,CAAC,CAAC;YAChG,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,EAAE,CAAC;gBACT,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YACD,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB,CAAC,QAAgB;IAChD,6CAA6C;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAE/B,2CAA2C;IAC3C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,WAAW,GAAG,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC;IAC1C,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,OAAO,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,IAAI,UAAU,EAAE,EAAE,CAAC;YACjB,uBAAuB,GAAG,kBAAkB,EAAE,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,uBAAuB,GAAG,MAAM,mBAAmB,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;IACD,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB;WAClC,OAAO,CAAC,GAAG,CAAC,gBAAgB;WAC5B,KAAK,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ;IACf,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,KAAK,CAAC;AAC5C,CAAC;AAwDD;;;GAGG;AACH,SAAS,uBAAuB,CAAC,OAA4C;IAC3E,IAAI,OAAO,EAAE,CAAC;QACZ,+EAA+E;QAC/E,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,gEAAgE;IAChE,OAAO;QACL,OAAO,EAAE,UAAU,EAAE;QACrB,MAAM,EAAE,UAAU,EAAE;QACpB,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,OAAgB;IAChE,MAAM,MAAM,GAAG,OAAO,IAAI,gBAAgB,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,OAAO,GAAG,MAAM,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAAqC,EACrC,OAA+C;IAE/C,oCAAoC;IACpC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,UAAU,GAAI,OAAyB,IAAI,EAAE,CAAC;QAEpD,0DAA0D;QAC1D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,UAAU,CAAC,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;QAED,4DAA4D;QAC5D,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;YAC3D,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACvD,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvD,UAAU,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACnD,CAAC;QAED,MAAM,SAAS,GAAG,aAAa,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,SAAS,CAAI,MAAM,EAAE,UAAU,CAAC,CAAC;QAExD,oDAAoD;QACpD,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtC,OAAO,iBAAiB,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,QAA2B,CAAC,CAAC;QAClG,CAAC;QAED,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,gEAAgE;IAChE,MAAM,MAAM,GAAI,OAAiC,IAAI,EAAE,CAAC;IACxD,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;IAC/C,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEtE,iFAAiF;IACjF,IAAI,YAAY,GAAG,OAAO,CAAC;IAC3B,MAAM,WAAW,GAAG,uBAAuB,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACjD,YAAY,GAAG;QACb,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAClF,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC;KACxC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,IAA8B,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,YAAY;YACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;YACrC,cAAc;SACf,CAAC,CAAC;QAEH,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;gBACpC,IAAI,EAAE,SAAc;gBACpB,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,SAAc,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACrF,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAM,CAAC;YAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,OAAuB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACrG,CAAC;IACH,CAAC,CAAC;IAEF,oDAAoD;IACpD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,iBAAiB,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,QAA2B,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,QAAQ,EAAE,CAAC;AACpB,CAAC;AA0BD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,YAAoB,EACpB,UAAmB,EAAE,EACrB,UAA+B,EAAE;IAEjC,MAAM,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IAClC,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAE/C,MAAM,cAAc,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEtE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;QACjC,YAAY;QACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAChC,cAAc;KACf,CAAC,CAAC;IAEH,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,SAAc,EAAE,CAAC;IACxE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,SAAc,EAAE,CAAC;IACxE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAM,CAAC;QAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,OAAuB,EAAE,CAAC;IACxF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../src/patterns/invoke.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@
29
29
  * ]);
30
30
  * ```
31
31
  */
32
+ import { Logger } from '../logging/logger.js';
32
33
  /**
33
34
  * Saga step definition
34
35
  */
@@ -48,9 +49,16 @@ export interface SagaStep<TContext = Record<string, unknown>> {
48
49
  * If true, this step runs fire-and-forget: the saga does NOT wait
49
50
  * for it to complete and moves to the next step immediately.
50
51
  * The step's return value is NOT merged into the context.
51
- * Compensation is NOT called for async steps (they may not have finished).
52
52
  *
53
53
  * Use cases: sending notifications, triggering analytics, audit logging.
54
+ *
55
+ * When an async step eventually rejects, the saga forwards the error to
56
+ * {@link SagaOptions.onAsyncError} so you can surface it on a DLQ / metric
57
+ * instead of silently swallowing it in a log line.
58
+ *
59
+ * If you don't want a compensation to run for a fire-and-forget step on
60
+ * later saga failure, simply don't define `compensate` — the saga only
61
+ * calls compensations that exist.
54
62
  */
55
63
  async?: boolean;
56
64
  }
@@ -216,12 +224,45 @@ export interface SagaOptions<TContext = Record<string, unknown>> {
216
224
  store?: SagaStore;
217
225
  /** Trace ID for distributed tracing (propagated to all step logs) */
218
226
  traceId?: string;
227
+ /**
228
+ * Optional structured logger. Defaults to a child of the framework logger
229
+ * scoped with `{ component: 'saga', saga: name }`. Pass your request logger
230
+ * (e.g. from `ctx.logger`) to correlate saga logs with the originating request.
231
+ */
232
+ logger?: Logger;
219
233
  /** Called when a step completes successfully */
220
234
  onStepComplete?: (event: SagaStepEvent<TContext>) => void;
221
235
  /** Called when a step compensation begins */
222
236
  onCompensating?: (event: SagaCompensateEvent<TContext>) => void;
223
237
  /** Called when the saga fails (after compensation attempt) */
224
238
  onFailed?: (event: SagaFailedEvent<TContext>) => void;
239
+ /**
240
+ * Called when a fire-and-forget (async) step rejects AFTER the saga has
241
+ * already moved on. Without this hook, async failures would disappear into
242
+ * a log line — use it to forward the error to a metric, DLQ, or alert so
243
+ * operators notice that notifications/analytics side-effects silently broke.
244
+ *
245
+ * @param event - Typed payload with the step name, saga ID/name, and the
246
+ * captured Error object.
247
+ */
248
+ onAsyncError?: (event: SagaAsyncErrorEvent) => void;
249
+ }
250
+ /**
251
+ * Event passed to onAsyncError when a fire-and-forget step rejects.
252
+ */
253
+ export interface SagaAsyncErrorEvent {
254
+ /** The async step that failed */
255
+ name: string;
256
+ /** Whether the step was part of a parallel group */
257
+ inParallelGroup: boolean;
258
+ /** The captured error */
259
+ error: Error;
260
+ /** Saga execution ID */
261
+ sagaId: string;
262
+ /** Saga name */
263
+ sagaName: string;
264
+ /** Trace ID, if set */
265
+ traceId?: string;
225
266
  }
226
267
  /**
227
268
  * Options for saga.run()
@@ -1 +1 @@
1
- {"version":3,"file":"saga.d.ts","sourceRoot":"","sources":["../../src/patterns/saga.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"saga.d.ts","sourceRoot":"","sources":["../../src/patterns/saga.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,9 @@
29
29
  * ]);
30
30
  * ```
31
31
  */
32
+ import { randomUUID } from 'node:crypto';
32
33
  import { generateId } from '../logging/tracing.js';
34
+ import { createLogger } from '../logging/logger.js';
33
35
  /**
34
36
  * Helper to create a parallel step group.
35
37
  *
@@ -121,32 +123,62 @@ function isParallelGroup(entry) {
121
123
  * ```
122
124
  */
123
125
  export function saga(name, steps, options = {}) {
124
- const { store, traceId: defaultTraceId, onStepComplete, onCompensating, onFailed } = options;
126
+ const { store, traceId: defaultTraceId, onStepComplete, onCompensating, onFailed, onAsyncError } = options;
127
+ // Structured logger scoped to this saga. Accepts an injected logger for
128
+ // correlation with the originating request; otherwise creates a framework-
129
+ // default one. All events log at `info` (step boundaries) or `error` (failures).
130
+ const sagaLogger = (options.logger ?? createLogger()).child({
131
+ component: 'saga',
132
+ saga: name,
133
+ });
125
134
  /** Flatten a step entry into its individual steps (for compensation tracking) */
126
135
  function flattenEntry(entry) {
127
136
  return isParallelGroup(entry) ? entry.steps : [entry];
128
137
  }
129
- /** Build a log prefix with traceId when available */
130
- function logPrefix(tid) {
131
- return tid ? `[saga:${name}][trace:${tid}]` : `[saga:${name}]`;
138
+ /** Build a log-context object. traceId is threaded into every saga log line. */
139
+ function logCtx(tid, extra) {
140
+ return { ...(tid ? { traceId: tid } : {}), ...extra };
132
141
  }
133
142
  /**
134
143
  * Execute a single step entry (sequential step or parallel group).
135
144
  * Returns the updated context and per-step results.
136
145
  */
137
- async function executeEntry(entry, context, stepResults, tid) {
146
+ async function executeEntry(entry, context, stepResults, tid, sagaId) {
138
147
  if (isParallelGroup(entry)) {
139
148
  // Execute all steps in the group concurrently
140
149
  const results = await Promise.all(entry.steps.map(async (step) => {
141
150
  if (step.async) {
142
- console.log(`${logPrefix(tid)} firing async parallel step: ${step.name}`);
151
+ sagaLogger.info('firing async parallel step', logCtx(tid, { step: step.name }));
143
152
  step.execute(context).catch((err) => {
144
- console.error(`${logPrefix(tid)} async parallel step failed (ignored): ${step.name} — ${err}`);
153
+ const error = err instanceof Error ? err : new Error(String(err));
154
+ sagaLogger.error('async parallel step failed (ignored)', logCtx(tid, {
155
+ step: step.name,
156
+ error: error.message,
157
+ }));
158
+ // Typed hook so operators can forward async failures to a DLQ /
159
+ // metric. onAsyncError is best-effort: if the hook itself throws
160
+ // we log and move on rather than crash the async chain.
161
+ try {
162
+ onAsyncError?.({
163
+ name: step.name,
164
+ inParallelGroup: true,
165
+ error,
166
+ sagaId,
167
+ sagaName: name,
168
+ traceId: tid,
169
+ });
170
+ }
171
+ catch (hookErr) {
172
+ sagaLogger.error('onAsyncError hook threw', logCtx(tid, {
173
+ step: step.name,
174
+ error: hookErr instanceof Error ? hookErr.message : String(hookErr),
175
+ }));
176
+ }
145
177
  });
146
178
  stepResults[step.name] = { name: step.name, output: context, async: true };
147
179
  return context;
148
180
  }
149
- console.log(`${logPrefix(tid)} executing parallel step: ${step.name}`);
181
+ sagaLogger.info('executing parallel step', logCtx(tid, { step: step.name }));
150
182
  const output = await step.execute(context);
151
183
  stepResults[step.name] = { name: step.name, output, async: false };
152
184
  return output;
@@ -160,15 +192,35 @@ export function saga(name, steps, options = {}) {
160
192
  }
161
193
  // Async (fire-and-forget) step
162
194
  if (entry.async) {
163
- console.log(`${logPrefix(tid)} firing async step: ${entry.name}`);
195
+ sagaLogger.info('firing async step', logCtx(tid, { step: entry.name }));
164
196
  entry.execute(context).catch((err) => {
165
- console.error(`${logPrefix(tid)} async step failed (ignored): ${entry.name} — ${err}`);
197
+ const error = err instanceof Error ? err : new Error(String(err));
198
+ sagaLogger.error('async step failed (ignored)', logCtx(tid, {
199
+ step: entry.name,
200
+ error: error.message,
201
+ }));
202
+ try {
203
+ onAsyncError?.({
204
+ name: entry.name,
205
+ inParallelGroup: false,
206
+ error,
207
+ sagaId,
208
+ sagaName: name,
209
+ traceId: tid,
210
+ });
211
+ }
212
+ catch (hookErr) {
213
+ sagaLogger.error('onAsyncError hook threw', logCtx(tid, {
214
+ step: entry.name,
215
+ error: hookErr instanceof Error ? hookErr.message : String(hookErr),
216
+ }));
217
+ }
166
218
  });
167
219
  stepResults[entry.name] = { name: entry.name, output: context, async: true };
168
220
  return context;
169
221
  }
170
222
  // Sequential step
171
- console.log(`${logPrefix(tid)} executing step: ${entry.name}`);
223
+ sagaLogger.info('executing step', logCtx(tid, { step: entry.name }));
172
224
  const output = await entry.execute(context);
173
225
  stepResults[entry.name] = { name: entry.name, output, async: false };
174
226
  return output;
@@ -189,7 +241,7 @@ export function saga(name, steps, options = {}) {
189
241
  name: s.name, index: i, context, reason,
190
242
  sagaId: record.id, sagaName: name,
191
243
  });
192
- console.log(`${logPrefix(tid)} compensating parallel step: ${s.name}`);
244
+ sagaLogger.info('compensating parallel step', logCtx(tid, { step: s.name }));
193
245
  return s.compensate(context);
194
246
  });
195
247
  await Promise.all(subCompensations);
@@ -199,7 +251,7 @@ export function saga(name, steps, options = {}) {
199
251
  name: entry.name, index: i, context, reason,
200
252
  sagaId: record.id, sagaName: name,
201
253
  });
202
- console.log(`${logPrefix(tid)} compensating step: ${entry.name}`);
254
+ sagaLogger.info('compensating step', logCtx(tid, { step: entry.name }));
203
255
  await entry.compensate(context);
204
256
  }
205
257
  }
@@ -217,7 +269,10 @@ export function saga(name, steps, options = {}) {
217
269
  const tid = runOptions.traceId
218
270
  || defaultTraceId
219
271
  || generateId();
220
- const id = runOptions.id || `saga-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
272
+ // Cryptographically strong saga ID critical because the ID is used as
273
+ // the DynamoDB conditional-write key for idempotent resume; a collision
274
+ // would silently merge two distinct sagas.
275
+ const id = runOptions.id || `saga-${randomUUID()}`;
221
276
  // Check if this saga was previously attempted (resume support)
222
277
  let existingRecord = null;
223
278
  if (store) {
@@ -250,7 +305,7 @@ export function saga(name, steps, options = {}) {
250
305
  await store.save(record);
251
306
  }
252
307
  }
253
- console.log(`${logPrefix(tid)} started (id=${id}, attempt=${record.attempts}${isResume ? ', resumed' : ''})`);
308
+ sagaLogger.info('started', logCtx(tid, { sagaId: id, attempt: record.attempts, resumed: isResume }));
254
309
  let context = record.context;
255
310
  // Track which entries were completed (for compensation on failure)
256
311
  const completedEntries = [];
@@ -265,7 +320,10 @@ export function saga(name, steps, options = {}) {
265
320
  // Idempotent resume: skip entries whose steps are all already completed
266
321
  const allCompleted = entryStepNames.every((n) => record.completedSteps.includes(n));
267
322
  if (isResume && allCompleted) {
268
- console.log(`${logPrefix(tid)} skipping completed entry: ${isParallelGroup(entry) ? entry.name : entry.name}`);
323
+ sagaLogger.info('skipping completed entry', logCtx(tid, {
324
+ sagaId: id,
325
+ entry: entry.name,
326
+ }));
269
327
  completedEntries.push({ entry, completedSubSteps: entryStepNames });
270
328
  continue;
271
329
  }
@@ -273,7 +331,7 @@ export function saga(name, steps, options = {}) {
273
331
  await store.update(id, { currentStep: i, status: 'running' });
274
332
  }
275
333
  const stepStart = Date.now();
276
- context = await executeEntry(entry, context, stepResults, tid);
334
+ context = await executeEntry(entry, context, stepResults, tid, id);
277
335
  const stepDurationMs = Date.now() - stepStart;
278
336
  // Track completion
279
337
  for (const sn of entryStepNames) {
@@ -310,12 +368,12 @@ export function saga(name, steps, options = {}) {
310
368
  if (store) {
311
369
  await store.update(id, { status: 'completed', completedAt: record.completedAt });
312
370
  }
313
- console.log(`${logPrefix(tid)} completed (id=${id})`);
371
+ sagaLogger.info('completed', logCtx(tid, { sagaId: id }));
314
372
  return { success: true, context, record, steps: stepResults };
315
373
  }
316
374
  catch (executeError) {
317
375
  const error = executeError instanceof Error ? executeError : new Error(String(executeError));
318
- console.error(`${logPrefix(tid)} step failed: ${error.message}`);
376
+ sagaLogger.error('step failed', logCtx(tid, { sagaId: id, error: error.message }));
319
377
  record.status = 'compensating';
320
378
  record.error = error.message;
321
379
  if (store) {
@@ -338,7 +396,7 @@ export function saga(name, steps, options = {}) {
338
396
  await store.update(id, { status: 'failed', error: record.error });
339
397
  }
340
398
  }
341
- console.error(`${logPrefix(tid)} ${record.status} (id=${id})`);
399
+ sagaLogger.error(record.status, logCtx(tid, { sagaId: id }));
342
400
  onFailed?.({
343
401
  error, record, context,
344
402
  failedStep: steps[record.currentStep]
@@ -1 +1 @@
1
- {"version":3,"file":"saga.js","sourceRoot":"","sources":["../../src/patterns/saga.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"saga.js","sourceRoot":"","sources":["../../src/patterns/saga.ts"],"names":[],"mappings":"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"}