@beignet/core 0.0.49 → 0.0.51

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 (145) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +213 -32
  3. package/dist/application/index.d.ts +5 -5
  4. package/dist/application/index.d.ts.map +1 -1
  5. package/dist/application/index.js +5 -4
  6. package/dist/application/index.js.map +1 -1
  7. package/dist/events/index.d.ts +54 -5
  8. package/dist/events/index.d.ts.map +1 -1
  9. package/dist/events/index.js +188 -34
  10. package/dist/events/index.js.map +1 -1
  11. package/dist/events/payload-state.d.ts +4 -0
  12. package/dist/events/payload-state.d.ts.map +1 -0
  13. package/dist/events/payload-state.js +11 -0
  14. package/dist/events/payload-state.js.map +1 -0
  15. package/dist/idempotency/index.d.ts +7 -3
  16. package/dist/idempotency/index.d.ts.map +1 -1
  17. package/dist/idempotency/index.js +45 -12
  18. package/dist/idempotency/index.js.map +1 -1
  19. package/dist/locks/index.d.ts.map +1 -1
  20. package/dist/locks/index.js +0 -4
  21. package/dist/locks/index.js.map +1 -1
  22. package/dist/mail/index.d.ts.map +1 -1
  23. package/dist/mail/index.js +6 -3
  24. package/dist/mail/index.js.map +1 -1
  25. package/dist/outbox/index.d.ts +163 -15
  26. package/dist/outbox/index.d.ts.map +1 -1
  27. package/dist/outbox/index.js +1009 -152
  28. package/dist/outbox/index.js.map +1 -1
  29. package/dist/payments/index.d.ts.map +1 -1
  30. package/dist/payments/index.js +0 -4
  31. package/dist/payments/index.js.map +1 -1
  32. package/dist/ports/best-effort-work.d.ts +21 -0
  33. package/dist/ports/best-effort-work.d.ts.map +1 -0
  34. package/dist/ports/best-effort-work.js +2 -0
  35. package/dist/ports/best-effort-work.js.map +1 -0
  36. package/dist/ports/events.d.ts +7 -5
  37. package/dist/ports/events.d.ts.map +1 -1
  38. package/dist/ports/index.d.ts +7 -2
  39. package/dist/ports/index.d.ts.map +1 -1
  40. package/dist/ports/index.js +1 -0
  41. package/dist/ports/index.js.map +1 -1
  42. package/dist/ports/testing.d.ts +28 -0
  43. package/dist/ports/testing.d.ts.map +1 -1
  44. package/dist/ports/testing.js +50 -0
  45. package/dist/ports/testing.js.map +1 -1
  46. package/dist/ports/unit-of-work.d.ts +9 -7
  47. package/dist/ports/unit-of-work.d.ts.map +1 -1
  48. package/dist/ports/unit-of-work.js +16 -6
  49. package/dist/ports/unit-of-work.js.map +1 -1
  50. package/dist/providers/index.d.ts +1 -1
  51. package/dist/providers/index.d.ts.map +1 -1
  52. package/dist/providers/index.js.map +1 -1
  53. package/dist/providers/provider.d.ts +8 -43
  54. package/dist/providers/provider.d.ts.map +1 -1
  55. package/dist/providers/provider.js.map +1 -1
  56. package/dist/search/index.d.ts.map +1 -1
  57. package/dist/search/index.js +0 -4
  58. package/dist/search/index.js.map +1 -1
  59. package/dist/server/hooks/cors.d.ts +7 -2
  60. package/dist/server/hooks/cors.d.ts.map +1 -1
  61. package/dist/server/hooks/cors.js +31 -2
  62. package/dist/server/hooks/cors.js.map +1 -1
  63. package/dist/server/hooks/logging.d.ts +2 -2
  64. package/dist/server/hooks/logging.d.ts.map +1 -1
  65. package/dist/server/hooks/logging.js.map +1 -1
  66. package/dist/server/hooks/security.d.ts +2 -2
  67. package/dist/server/hooks/security.d.ts.map +1 -1
  68. package/dist/server/hooks/security.js.map +1 -1
  69. package/dist/server/http.d.ts +21 -2
  70. package/dist/server/http.d.ts.map +1 -1
  71. package/dist/server/index.d.ts +4 -0
  72. package/dist/server/index.d.ts.map +1 -1
  73. package/dist/server/index.js +4 -0
  74. package/dist/server/index.js.map +1 -1
  75. package/dist/server/instrumentation.d.ts.map +1 -1
  76. package/dist/server/instrumentation.js +5 -3
  77. package/dist/server/instrumentation.js.map +1 -1
  78. package/dist/server/request-executor.d.ts.map +1 -1
  79. package/dist/server/request-executor.js +9 -0
  80. package/dist/server/request-executor.js.map +1 -1
  81. package/dist/server/request-preparation.d.ts.map +1 -1
  82. package/dist/server/request-preparation.js +20 -2
  83. package/dist/server/request-preparation.js.map +1 -1
  84. package/dist/server/response-finalization.d.ts +2 -2
  85. package/dist/server/response-finalization.d.ts.map +1 -1
  86. package/dist/server/response-finalization.js +25 -8
  87. package/dist/server/response-finalization.js.map +1 -1
  88. package/dist/server/route-matching.d.ts.map +1 -1
  89. package/dist/server/route-matching.js +12 -1
  90. package/dist/server/route-matching.js.map +1 -1
  91. package/dist/server/server-sent-events.d.ts +94 -0
  92. package/dist/server/server-sent-events.d.ts.map +1 -0
  93. package/dist/server/server-sent-events.js +275 -0
  94. package/dist/server/server-sent-events.js.map +1 -0
  95. package/dist/server/server.d.ts.map +1 -1
  96. package/dist/server/server.js +75 -31
  97. package/dist/server/server.js.map +1 -1
  98. package/dist/server/trusted-proxy-internal.d.ts +4 -0
  99. package/dist/server/trusted-proxy-internal.d.ts.map +1 -1
  100. package/dist/server/trusted-proxy-internal.js +20 -0
  101. package/dist/server/trusted-proxy-internal.js.map +1 -1
  102. package/dist/server/trusted-proxy.d.ts.map +1 -1
  103. package/dist/server/trusted-proxy.js +3 -8
  104. package/dist/server/trusted-proxy.js.map +1 -1
  105. package/dist/testing/index.d.ts +17 -0
  106. package/dist/testing/index.d.ts.map +1 -1
  107. package/dist/testing/index.js +18 -7
  108. package/dist/testing/index.js.map +1 -1
  109. package/package.json +1 -1
  110. package/skills/app-architecture/SKILL.md +37 -3
  111. package/src/application/index.ts +18 -7
  112. package/src/events/index.ts +268 -40
  113. package/src/events/payload-state.ts +24 -0
  114. package/src/idempotency/index.ts +65 -17
  115. package/src/locks/index.ts +0 -4
  116. package/src/mail/index.ts +7 -3
  117. package/src/outbox/index.ts +1382 -175
  118. package/src/payments/index.ts +0 -4
  119. package/src/ports/best-effort-work.ts +21 -0
  120. package/src/ports/events.ts +9 -4
  121. package/src/ports/index.ts +12 -0
  122. package/src/ports/testing.ts +76 -0
  123. package/src/ports/unit-of-work.ts +28 -14
  124. package/src/providers/index.ts +0 -1
  125. package/src/providers/provider.ts +8 -45
  126. package/src/search/index.ts +0 -4
  127. package/src/server/hooks/cors.ts +53 -5
  128. package/src/server/hooks/logging.ts +6 -2
  129. package/src/server/hooks/security.ts +8 -4
  130. package/src/server/http.ts +23 -2
  131. package/src/server/index.ts +4 -0
  132. package/src/server/instrumentation.ts +12 -4
  133. package/src/server/request-executor.ts +14 -0
  134. package/src/server/request-preparation.ts +23 -3
  135. package/src/server/response-finalization.ts +51 -15
  136. package/src/server/route-matching.ts +24 -1
  137. package/src/server/server-sent-events.ts +415 -0
  138. package/src/server/server.ts +98 -41
  139. package/src/server/trusted-proxy-internal.ts +20 -0
  140. package/src/server/trusted-proxy.ts +6 -7
  141. package/src/testing/index.ts +50 -9
  142. package/dist/query-codec.d.ts +0 -27
  143. package/dist/query-codec.d.ts.map +0 -1
  144. package/dist/query-codec.js +0 -245
  145. package/dist/query-codec.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # @beignet/core
2
2
 
3
+ ## 0.0.51
4
+
5
+ ### Patch Changes
6
+
7
+ - 4f033a6: Forward canonical event payloads, expose framework error ownership through CORS, run focused-route misses through the fallback lifecycle, and inspect formatted route handlers with the TypeScript AST.
8
+ - ea3d734: Renew active outbox claims, reconcile exhausted deliveries, and surface uncertain lease or settlement outcomes across runtime and operational tools. Custom outbox adapters must implement `renewClaim(...)`, return `{ claimed, deadLettered }` from `claimBatch(...)`, and reject renewal or settlement after the active claim expires.
9
+ - 98ab47f: Make package-owned `beignet.provider` manifests the sole source of provider metadata and remove the unused runtime `ServiceProvider.metadata` API.
10
+
11
+ ## 0.0.50
12
+
13
+ ### Patch Changes
14
+
15
+ - 6fe026a: Expose event-subscription readiness and asynchronous cleanup, await listener
16
+ registries during provider startup with bounded rollback, diagnose unsafe app
17
+ wiring, and make Redis subscription lifecycle failures observable with bounded
18
+ provider shutdown and recoverable channel state.
19
+ - 4be4573: Keep mail content out of provider instrumentation, document the Redis
20
+ deployment policy required for monotonic fencing, and align generated agent
21
+ guidance with optional seed, worker, and migration paths.
22
+ - ee402a9: Map invalid adapter URLs to framework responses, cancel oversized request
23
+ streams, distinguish typed idempotency inputs, preserve repeated response
24
+ headers, and match Unicode static routes against encoded URL pathnames.
25
+ - d1db53e: Add a portable Server-Sent Events response helper with JSON framing,
26
+ heartbeats, bounded unread buffering, optional maximum lifetime,
27
+ cancellation-aware asynchronous setup, eventual late cleanup, and safe
28
+ response headers, expose native request cancellation through
29
+ `HttpRequestLike.signal`, and use recoverable bounded snapshots for the
30
+ Devtools live stream with visible partial-data reporting.
31
+ - 7b0961b: Add a non-durable best-effort work port, a recording test adapter, and a Next.js `after()` adapter that isolates scheduler and callback failures.
32
+
3
33
  ## 0.0.49
4
34
 
5
35
  ### Patch Changes
package/README.md CHANGED
@@ -72,11 +72,11 @@ name the framework area they depend on.
72
72
  | `@beignet/core/outbox` | Durable event and job outbox |
73
73
  | `@beignet/core/payments` | Payments port, memory payments adapter, and memory payments provider |
74
74
  | `@beignet/core/pagination` | Offset/cursor page types, normalizers, and result helpers |
75
- | `@beignet/core/ports` | App-facing ports, auth, audit, policies, cache, storage, logging, and redaction |
75
+ | `@beignet/core/ports` | App-facing ports, auth, audit, policies, cache, storage, best-effort work, logging, and redaction |
76
76
  | `@beignet/core/providers` | Provider lifecycle and instrumentation primitives |
77
77
  | `@beignet/core/search` | Search index definitions, SearchPort, memory adapter, memory provider, and helpers |
78
78
  | `@beignet/core/schedules` | Schedule primitives |
79
- | `@beignet/core/server` | Framework-agnostic server runtime, security headers, CSRF, and hook helpers |
79
+ | `@beignet/core/server` | Framework-agnostic server runtime, SSE responses, security headers, CSRF, and hook helpers |
80
80
  | `@beignet/core/server-only` | Static lint marker for modules that must stay out of client bundles |
81
81
  | `@beignet/core/tasks` | Operational task definitions and inline task execution |
82
82
  | `@beignet/core/tenancy` | Branded tenant scope helpers for repository boundaries |
@@ -313,6 +313,61 @@ and dead-lettered messages when you pass a devtools or instrumentation port to
313
313
  `drainOutbox(...)`. Pass `instrumentationContext` when the worker has request or
314
314
  trace IDs that should connect the drain to devtools rows.
315
315
 
316
+ ## Best-effort work
317
+
318
+ `BestEffortWorkPort` lets application code request non-durable follow-up work
319
+ without waiting for it in the originating operation:
320
+
321
+ ```ts
322
+ import type { BestEffortWorkPort } from "@beignet/core/ports";
323
+
324
+ export type AppPorts = {
325
+ bestEffortWork: BestEffortWorkPort;
326
+ };
327
+
328
+ ctx.ports.bestEffortWork.defer(() =>
329
+ ctx.ports.workspaceBroadcast.publish(workspaceId, message),
330
+ );
331
+ ```
332
+
333
+ Use it only when losing the callback does not change the operation's result,
334
+ such as publishing a cache-invalidation hint after the authoritative write has
335
+ committed. The adapter owns scheduler and callback error isolation. Use a job
336
+ or transaction-scoped outbox when work must be retried or survive process
337
+ termination.
338
+
339
+ Tests can use `createRecordingBestEffortWork()` directly or the default
340
+ `bestEffortWork` returned by `createTestPorts(...)`. Call
341
+ `fixture.flushBestEffortWork()` to run the current queued batch deterministically;
342
+ callbacks deferred by that batch remain pending until the next flush. A flush
343
+ attempts the complete batch before rejecting with any callback failures.
344
+
345
+ ## Event subscriptions
346
+
347
+ `EventBusPort.subscribe(...)` returns an `EventSubscription` with a `ready`
348
+ promise and asynchronous, idempotent `unsubscribe()` method. Await `ready`
349
+ before advertising that a process can receive events, and await
350
+ `unsubscribe()` during shutdown. The memory adapter is ready immediately;
351
+ transport adapters resolve readiness only after their initial subscription is
352
+ active.
353
+
354
+ `registerListeners(...)` combines a listener registry into one subscription.
355
+ It waits for every child subscription and applies one 10-second registration
356
+ deadline by default. When setup fails or times out, Beignet starts every child
357
+ cleanup within the remaining deadline. If cleanup does not settle in time,
358
+ `ready` rejects with both the startup failure and a
359
+ `ListenerRegistrationCleanupTimeoutError` instead of hanging startup. Set
360
+ `readyTimeoutMs` when the process needs a different bounded startup policy.
361
+ Normal teardown after successful readiness still awaits transport cleanup;
362
+ apply a host-level shutdown deadline when required. Readiness is an initial
363
+ lifecycle signal, not an ongoing health check or durability guarantee.
364
+
365
+ An app-owned in-process `EventBusPort` adapter must forward the complete
366
+ `EventPublishOptions` object to subscribers rather than rebuilding only its
367
+ trace field. A serialized adapter sends documented transport metadata such as
368
+ the trace carrier and lets `registerListeners(...)` validate the decoded
369
+ payload again at the receiving boundary.
370
+
316
371
  ## Provider-contributed ports
317
372
 
318
373
  Apps bind app-owned ports directly and defer the rest to providers with the
@@ -381,7 +436,9 @@ defer those ports before choosing production infrastructure.
381
436
  `createMemoryMailerProvider(options?)` contributes `{ mailer: MailerPort }`
382
437
  backed by `createMemoryMailer(...)`. Deliveries are captured in memory and
383
438
  recorded as `mail.sent` devtools events through the `mail` watcher when an
384
- instrumentation port is installed. Options extend
439
+ instrumentation port is installed. Instrumentation records only the provider,
440
+ recipient count, delivery ID, and duration; it does not record addresses,
441
+ subjects, or message bodies. Options extend
385
442
  `CreateMemoryMailerOptions` (`defaultFrom`, `now`, `id`, `onSend`) plus a
386
443
  provider `name` that defaults to `"memory-mailer"`.
387
444
 
@@ -854,27 +911,11 @@ never fails doctor, even in strict mode. Use
854
911
  `parseProviderPackageMetadata(...)` to validate manifest metadata before
855
912
  publishing a provider package.
856
913
 
857
- Provider objects can also declare optional runtime-inert metadata for app-local
858
- tooling and documentation. It does not change runtime setup; it describes the
859
- package, contributed ports, required prior ports, env vars, and devtools
860
- watchers owned by the provider.
861
-
862
- ```typescript
863
- import { createProvider } from "@beignet/core/providers";
864
-
865
- export const cacheProvider = createProvider({
866
- name: "cache",
867
- metadata: {
868
- packageName: "@acme/beignet-provider-cache",
869
- ports: ["cache"],
870
- env: ["CACHE_URL"],
871
- watchers: ["cache"],
872
- },
873
- setup() {
874
- return { ports: { cache: createCachePort() } };
875
- },
876
- });
877
- ```
914
+ The package manifest is the sole provider metadata source. Runtime provider
915
+ objects define lifecycle behavior and a diagnostic `name`; they do not repeat
916
+ package facts. App-local providers therefore need no metadata declaration
917
+ unless they are published as a reusable package, in which case add the
918
+ manifest to that package.
878
919
 
879
920
  ## Tasks
880
921
 
@@ -1080,6 +1121,78 @@ feeds metadata-driven hooks such as rate limiting exactly like contract
1080
1121
  metadata, and the route is not added to the registry — the adapter mounts
1081
1122
  the returned handler at the route's own path.
1082
1123
 
1124
+ ### Server-sent events
1125
+
1126
+ `createServerSentEventResponse(...)` creates a portable Fetch `Response` for
1127
+ an SSE endpoint. Use it from a contract handler or raw route after
1128
+ application-owned authentication and authorization:
1129
+
1130
+ ```ts
1131
+ import { createServerSentEventResponse } from "@beignet/core/server";
1132
+
1133
+ return createServerSentEventResponse({
1134
+ signal: req.signal,
1135
+ maxLifetimeMs: 240_000,
1136
+ start({ send }) {
1137
+ send({ event: "reconcile", data: { workspaceId } });
1138
+ const subscription = ctx.ports.workspaceBroadcast.subscribe(
1139
+ workspaceId,
1140
+ (change) => {
1141
+ send({ event: "changed", data: change });
1142
+ },
1143
+ );
1144
+ return { close: () => subscription.unsubscribe() };
1145
+ },
1146
+ onError: (error) => ctx.ports.logger.error("SSE stream failed", { error }),
1147
+ });
1148
+ ```
1149
+
1150
+ Event `data` is JSON-encoded. Optional `event`, `id`, and `retry` fields use
1151
+ standard SSE framing; `retry` sets the browser reconnection delay in
1152
+ milliseconds. `comment(...)` sends an explicit comment, and `close()` ends the
1153
+ response. `send(...)` and `comment(...)` return `true` when they enqueue a
1154
+ frame and `false` after closure, when framing or encoding fails, or when the
1155
+ unread byte limit would be exceeded. Event names and IDs must fit on one line,
1156
+ and IDs cannot contain null characters. A producer, framing, encoding, stream,
1157
+ or buffer-overflow failure reports through `onError` and closes the connection.
1158
+
1159
+ Heartbeat comments default to 25 seconds; `heartbeatMs: false` disables them.
1160
+ `maxLifetimeMs` is opt-in. Both options accept `false` or an integer from `1`
1161
+ through `2_147_483_647`; `retry` accepts an integer from `0` through the same
1162
+ maximum. `start(...)` receives a stream-scoped `signal` that aborts whenever
1163
+ the response closes. Pass it to subscription APIs that perform asynchronous
1164
+ setup. `start(...)` may return a cleanup callback, a closeable subscription, a
1165
+ promise of either, or nothing. If it returns cleanup, request abort, response
1166
+ cancellation, explicit close, and maximum lifetime invoke that cleanup exactly
1167
+ once. `onError` also observes cleanup failures without creating an unhandled
1168
+ rejection. When stream closure aborts asynchronous setup, an expected
1169
+ `AbortError` rejection is treated as cancellation rather than a producer
1170
+ failure; other setup rejections still reach `onError`.
1171
+
1172
+ Unread encoded frames are bounded to `1_048_576` bytes by default. Set
1173
+ `maxBufferedBytes` to an integer from `1` through `2_147_483_647` when the
1174
+ endpoint has a verified frame-size requirement. If one frame or the
1175
+ accumulated unread queue would exceed the limit, the helper reports a
1176
+ `RangeError` and closes the connection; the limit remains active even when
1177
+ `maxLifetimeMs` is disabled. Response-body cancellation waits for cleanup that
1178
+ has already been registered, but it does not wait indefinitely for pending
1179
+ asynchronous setup. The stream signal lets setup stop cooperatively, and any
1180
+ cleanup returned after closure still runs exactly once.
1181
+
1182
+ The response always sets `Content-Type: text/event-stream`,
1183
+ `Cache-Control: no-store, no-transform`, and `X-Accel-Buffering: no`, removes
1184
+ `Content-Length` and hop-by-hop streaming headers, and preserves other custom
1185
+ headers supplied through `headers`. The helper does not own authorization,
1186
+ replay, durability, distributed connection limits, or client reconciliation.
1187
+ Keep authoritative state elsewhere and reconcile on initial connection and
1188
+ reconnect when messages are best-effort hints.
1189
+
1190
+ Use a contract handler when the stream belongs in the route registry and
1191
+ OpenAPI document. Use a raw route when the endpoint is transport-only and the
1192
+ app owns its request and response shape. Document a contract stream with a
1193
+ `.responses({ 200: null })` success schema and an OpenAPI `text/event-stream`
1194
+ media override.
1195
+
1083
1196
  Use `.headers(...)` for request headers that are part of the endpoint contract. Declare header keys in lowercase; server and client runtime matching is case-insensitive.
1084
1197
 
1085
1198
  Request bodies are supported for `POST`, `PUT`, and `PATCH` contracts only.
@@ -1177,7 +1290,8 @@ const tester = createUseCaseTester<AppContext>(createContext);
1177
1290
  The returned fixture exposes captured side effects such as `events`,
1178
1291
  `dispatchedJobs`, `audit.entries`, `mailer.deliveries`,
1179
1292
  `notifications.deliveries`, `outbox.messages`, and memory storage for
1180
- assertions.
1293
+ assertions. Its default `bestEffortWork` port queues callbacks in
1294
+ `pendingBestEffortWork`; call `flushBestEffortWork()` to run the current batch.
1181
1295
 
1182
1296
  `overrides` is typed as `TestPortsOverrides<Ports>`, which accepts typed
1183
1297
  partial ports without casts. The partial rule is one level deep: an
@@ -1557,6 +1671,8 @@ const result = await drainOutbox({ outbox, registry, eventBus, jobs });
1557
1671
  assertOutboxDrainResult(result, {
1558
1672
  claimed: 1,
1559
1673
  delivered: 1,
1674
+ settlementFailed: 0,
1675
+ leaseLost: 0,
1560
1676
  });
1561
1677
 
1562
1678
  assertOutboxDelivered(outbox.messages, {
@@ -1821,6 +1937,14 @@ import { createMemoryIdempotencyStore } from "@beignet/core/idempotency";
1821
1937
  const idempotency = createMemoryIdempotencyStore();
1822
1938
  ```
1823
1939
 
1940
+ `createIdempotencyFingerprint(...)` sorts object keys and tags non-JSON values
1941
+ before hashing while retaining the stable representation of ordinary JSON
1942
+ payloads. BigInts and Dates therefore remain distinct from same-looking
1943
+ strings; invalid dates, non-finite numbers, circular values, and the reserved
1944
+ tag key fail instead of producing ambiguous fingerprints. Non-plain objects
1945
+ other than `Date` fail as unsupported; project them to plain command data
1946
+ before hashing.
1947
+
1824
1948
  Reservation tokens use Web Crypto `randomUUID()` or `getRandomValues()` when
1825
1949
  available and securely fall back to `node:crypto` on supported Node runtimes.
1826
1950
  The memory adapter accepts `createReservationToken` when a deterministic test
@@ -1908,14 +2032,45 @@ registry with jobs requires `jobs`. `drainOutbox(...)` validates those
1908
2032
  capabilities before claiming a batch, so incomplete worker wiring fails
1909
2033
  without consuming delivery attempts.
1910
2034
 
2035
+ The storage port uses token-guarded leases. `claimBatch(...)` returns both
2036
+ newly claimed messages and eligible rows it atomically dead-lettered because a
2037
+ previous crashed claim exhausted `maxAttempts`. `renewClaim(...)` extends only
2038
+ an active, unexpired claim. `markDelivered(...)` and `markFailed(...)` also
2039
+ reject expired or stale claim tokens.
2040
+
2041
+ `drainOutbox(...)` defaults to a batch size of 100, serial delivery, a
2042
+ 30-second lease, a 10-second serialized heartbeat, and a 5-minute maximum
2043
+ active duration per message. Set `concurrency` above one only for handlers that
2044
+ can run without ordering guarantees. Configure `leaseMs`, `heartbeatMs`, and
2045
+ `maxActiveMs` together when delivery latency requires different limits, and
2046
+ synchronize the clocks on every drain host because adapters compare the
2047
+ timestamps supplied by workers. Reaching `maxActiveMs` stops further renewals;
2048
+ the last confirmed lease can remain active until its own expiration.
2049
+
2050
+ The result reports `abandonedDeadLettered`, `settlementFailed`, and `leaseLost`
2051
+ in addition to the normal claim and delivery counters. A successful external
2052
+ delivery whose acknowledgement cannot be stored increments
2053
+ `settlementFailed`; Beignet does not call `markFailed(...)` after that success.
2054
+ Treat either uncertainty counter as an operational failure because the message
2055
+ may be delivered again after lease expiry. `onLeaseError` distinguishes
2056
+ `recovered`, `degraded`, and `lost` lease states; only `lost` increments
2057
+ `leaseLost`. One message can increment both uncertainty counters when its
2058
+ settlement reaches the lease deadline.
2059
+
1911
2060
  The outbox is at-least-once delivery. Use idempotent listeners or jobs when a
1912
2061
  duplicate delivery would be harmful. Drizzle-backed outbox tables persist the
1913
2062
  optional versioned trace carrier in `trace_context_json`; add that nullable
1914
2063
  column to existing tables before upgrading the adapter.
1915
- Producer and drain validation preserve the original JSON-safe payload in
1916
- storage and across delivery. The receiving listener or job runner performs the
1917
- handler-facing parse, so schema transforms are applied exactly once at
1918
- execution.
2064
+
2065
+ Beignet's use-case event helpers, `publishEvent(...)`, and `enqueueEvent(...)`
2066
+ validate payloads and forward the parsed Standard Schema output. In-process
2067
+ delivery preserves that parsed state so listeners do not apply transforms
2068
+ twice. Durable or distributed transports serialize the canonical value and
2069
+ validate it again after decoding, so event schema outputs must be JSON-safe and
2070
+ stable when parsed again after serialization. For an outbox, model timestamps
2071
+ as JSON strings or numbers rather than `Date` objects. Job transports continue
2072
+ to preserve the original JSON-safe payload until the worker's handler-facing
2073
+ parse.
1919
2074
 
1920
2075
  An ordinary Unit of Work event flush has a different boundary: it runs after
1921
2076
  commit, and a publishing failure rejects even though the database writes are
@@ -2053,6 +2208,24 @@ Use `{ contract, handle }` as the escape hatch for response headers,
2053
2208
  streaming, and multi-status responses. `defineRoute` remains
2054
2209
  available for full handlers that read hook-added `ctx` fields.
2055
2210
 
2211
+ Framework-neutral response header values may be strings or string arrays.
2212
+ Use an array for repeated fields such as `Set-Cookie`; Web-compatible adapters
2213
+ append every item separately, and hooks receive the same string-or-array
2214
+ header record:
2215
+
2216
+ ```ts
2217
+ return {
2218
+ status: 200,
2219
+ headers: {
2220
+ "set-cookie": [
2221
+ "session=abc; Path=/; HttpOnly; Secure; SameSite=Lax",
2222
+ "theme=dark; Path=/; Secure; SameSite=Lax",
2223
+ ],
2224
+ },
2225
+ body: { ok: true },
2226
+ };
2227
+ ```
2228
+
2056
2229
  When credentials live in request headers, declare a `headers` schema on the
2057
2230
  auth hooks. The hook validates the raw lowercase request header record before
2058
2231
  `resolve` runs, so `resolve` receives typed header values; on `required()`
@@ -2099,12 +2272,16 @@ const publicCors = createCorsHooks({ origins: "*" });
2099
2272
  const browserAppCors = createCorsHooks({
2100
2273
  origins: ["https://app.example.com"],
2101
2274
  credentials: true,
2275
+ exposedHeaders: ["x-request-id"],
2102
2276
  });
2103
2277
  ```
2104
2278
 
2105
2279
  `createCorsHooks({ origins: "*", credentials: true })` throws during setup so
2106
2280
  apps do not accidentally reflect arbitrary request origins for cookies or
2107
- authorization headers.
2281
+ authorization headers. The hook always exposes `x-beignet-error-owner` so the
2282
+ typed browser client can distinguish framework failures from route-owned
2283
+ errors; `exposedHeaders` adds app-owned response headers that browser code also
2284
+ needs to read.
2108
2285
 
2109
2286
  The hook short-circuits only real browser preflights: `OPTIONS` requests that
2110
2287
  include both `Origin` and `Access-Control-Request-Method`. An explicit
@@ -2154,13 +2331,17 @@ status, including when reading the response stream itself fails.
2154
2331
  request validation, response validation, error mapping, and provider lifecycle.
2155
2332
  Adapters own the platform edge only:
2156
2333
 
2157
- - Convert the native request into `HttpRequestLike`
2334
+ - Convert the native request into `HttpRequestLike`, including its abort
2335
+ signal when the platform exposes one
2158
2336
  - Call `server.api(...)` or a single route handler
2159
2337
  - Convert `HttpResponse` back into the native response type
2160
2338
 
2161
2339
  The public adapter contract is `HttpAdapter<NativeRequest, NativeResponse>`.
2162
2340
  Use it when building a runtime package beyond the first-party `@beignet/web`
2163
- and `@beignet/next` adapters.
2341
+ and `@beignet/next` adapters. Custom adapters must supply an absolute HTTP or
2342
+ HTTPS `HttpRequestLike.url`; invalid values are converted to a framework-owned
2343
+ `400 INVALID_REQUEST_URL` response instead of escaping as a rejected handler
2344
+ promise.
2164
2345
 
2165
2346
  ### Health and readiness
2166
2347
 
@@ -1,4 +1,5 @@
1
1
  import type { StandardSchemaV1 } from "@standard-schema/spec";
2
+ import type { EventPublishOptions } from "../events/index.js";
2
3
  /**
3
4
  * Any Standard Schema compatible validator.
4
5
  */
@@ -63,9 +64,8 @@ export declare class UseCaseEventValidationError extends Error {
63
64
  /**
64
65
  * Minimal domain event definition accepted by use-case event helpers.
65
66
  *
66
- * This matches events from `@beignet/core/events` and compatible app-owned
67
- * definitions without forcing the application builder to depend on one event
68
- * implementation.
67
+ * This structurally matches events from `@beignet/core/events` and compatible
68
+ * app-owned definitions.
69
69
  */
70
70
  export interface DomainEventLike {
71
71
  /**
@@ -88,7 +88,7 @@ export interface UseCaseEventRecorderTarget {
88
88
  /**
89
89
  * Record a domain event payload.
90
90
  */
91
- record<E extends DomainEventLike>(event: E, payload: InferUseCaseEventPayload<E>): Promise<void> | void;
91
+ record<E extends DomainEventLike>(event: E, payload: InferUseCaseEventPayload<E>, options?: EventPublishOptions): Promise<void> | void;
92
92
  }
93
93
  /**
94
94
  * Minimal event-bus shape accepted by use-case event helpers.
@@ -97,7 +97,7 @@ export interface UseCaseEventBusTarget {
97
97
  /**
98
98
  * Publish a domain event payload.
99
99
  */
100
- publish<E extends DomainEventLike>(event: E, payload: InferUseCaseEventPayload<E>): Promise<void> | void;
100
+ publish<E extends DomainEventLike>(event: E, payload: InferUseCaseEventPayload<E>, options?: EventPublishOptions): Promise<void> | void;
101
101
  }
102
102
  /**
103
103
  * Event helper scoped to the events declared by a use case.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/application/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/application/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAa9D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,gBAAgB,IAChD,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,gBAAgB,IAC/C,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAGjC,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAExD;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,4BAA4B;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAEvC,IAAI,EAAE;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,sBAAsB,CAAC;QAC9B,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,CAAC;KAC3C;CAQF;AAED;;;GAGG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,IAAI,kCAAkC;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;gBAEnC,IAAI,EAAE;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;KACvC;CAaF;AAsBD;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,IAAI,iCAAiC;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAEvC,IAAI,EAAE;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,CAAC;KAC3C;CAQF;AAsBD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,eAAe,IAC5D,CAAC,CAAC,SAAS,CAAC,SAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,eAAe,EAC9B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,EACpC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,OAAO,CAAC,CAAC,SAAS,eAAe,EAC/B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,EACpC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,KAAK,SAAS,SAAS,eAAe,EAAE;IAC3E;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IAEzB;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC;IAE5C;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAE7C;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,EAC5B,QAAQ,EAAE,0BAA0B,EACpC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,EAC7B,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAmFD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,EAAE,OAAO,MAEzC,CAAC;AAIF;;;;;GAKG;AACH,MAAM,WAAW,UAAU,CACzB,GAAG,EACH,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,WAAW,EACxB,WAAW,SAAS,gBAAgB,EACpC,YAAY,SAAS,gBAAgB,EACrC,KAAK,SAAS,SAAS,eAAe,EAAE,GAAG,SAAS,EAAE;IAEtD;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IACX;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IACX,oEAAoE;IACpE,WAAW,EAAE,WAAW,CAAC;IACzB,uEAAuE;IACvE,YAAY,EAAE,YAAY,CAAC;IAC3B;;;OAGG;IACH,KAAK,EAAE,KAAK,CAAC;IACb;;OAEG;IACH,GAAG,EAAE,CAAC,IAAI,EAAE;QACV,GAAG,EAAE,GAAG,CAAC;QACT,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;KAChC,KAAK,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,GAAG;IAClC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC;IAClB;;OAEG;IACH,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;IACjC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,GAAG,EAAE,GAAG,CAAC;CACV;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,GAAG;IACvC;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9D;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC5D;AAcD,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAsIF;;GAEG;AACH,UAAU,oBAAoB,CAC5B,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,WAAW,EACxB,WAAW,SAAS,gBAAgB,GAAG,SAAS,EAChD,YAAY,SAAS,gBAAgB,GAAG,SAAS,EACjD,KAAK,SAAS,SAAS,eAAe,EAAE;IAExC,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;GAEG;AACH,cAAM,cAAc,CAClB,GAAG,EACH,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,WAAW,EACxB,WAAW,SAAS,gBAAgB,GAAG,SAAS,EAChD,YAAY,SAAS,gBAAgB,GAAG,SAAS,EACjD,KAAK,SAAS,SAAS,eAAe,EAAE,GAAG,SAAS,EAAE;IAGpD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAOvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IAGvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAI3B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAdZ,MAAM,EAAE,oBAAoB,CAC3C,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,KAAK,CACN,EACgB,KAAK,CAAC,GAAE,CACvB,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,KACxB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,aAAA,EACR,UAAU,GAAE,iBAG5B,EACgB,YAAY,GAAE,OAAc;IAG/C;;OAEG;IACH,KAAK,CAAC,CAAC,SAAS,gBAAgB,EAC9B,MAAM,EAAE,CAAC,GACR,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC;IAY1D;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,gBAAgB,EAC/B,MAAM,EAAE,CAAC,GACR,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC;IAYzD;;OAEG;IACH,KAAK,CAAC,CAAC,SAAS,SAAS,eAAe,EAAE,EACxC,MAAM,EAAE,CAAC,GACR,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;IAYhE;;OAEG;IACH,GAAG,CACD,EAAE,EAAE,WAAW,SAAS,gBAAgB,GACpC,YAAY,SAAS,gBAAgB,GACnC,CAAC,IAAI,EAAE;QACL,GAAG,EAAE,GAAG,CAAC;QACT,KAAK,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;QACjC,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;KACpC,KAAK,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,GACtE,KAAK,GACP,KAAK,GACR,WAAW,SAAS,gBAAgB,GACnC,YAAY,SAAS,gBAAgB,GACnC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,GAC7D,KAAK,GACP,KAAK;CA2JV;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,GAAG;IACrC;;OAEG;IACH,OAAO,CAAC,IAAI,SAAS,MAAM,EACzB,IAAI,EAAE,IAAI,GACT,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IAE3E;;OAEG;IACH,KAAK,CAAC,IAAI,SAAS,MAAM,EACvB,IAAI,EAAE,IAAI,GACT,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;CAC1E;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,QAAQ,IAAI,QAAQ,SAAS;IACtD,GAAG,EAAE,CAAC,IAAI,EAAE;QACV,GAAG,EAAE,MAAM,GAAG,CAAC;QACf,KAAK,EAAE,MAAM,MAAM,CAAC;KACrB,KAAK,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC;CAC9B,GACG,GAAG,GACH,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,QAAQ,IAAI,QAAQ,SAAS;IACpD,GAAG,EAAE,CAAC,IAAI,EAAE;QACV,GAAG,EAAE,MAAM,IAAI,CAAC;QAChB,KAAK,EAAE,MAAM,KAAK,CAAC;KACpB,KAAK,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC;CAC9B,GACG,KAAK,GACL,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,QAAQ,IAAI,QAAQ,SAAS;IACrD,GAAG,EAAE,CAAC,IAAI,EAAE;QACV,GAAG,EAAE,MAAM,IAAI,CAAC;QAChB,KAAK,EAAE,MAAM,MAAM,CAAC;KACrB,KAAK,OAAO,CAAC,MAAM,MAAM,CAAC,CAAC;CAC7B,GACG,MAAM,GACN,KAAK,CAAC;AAEV,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,GAAG;IAChC;;OAEG;IACH,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpB;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EACf,OAAO,EAAE;QACP,GAAG,CAAC,IAAI,EAAE;YAAE,GAAG,EAAE,GAAG,CAAC;YAAC,KAAK,EAAE,KAAK,CAAA;SAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;KACxD,EACD,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,GACtB,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EACrC,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,GAC7C,aAAa,CAAC,GAAG,CAAC,CAqBpB;AAKD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAC/B,OAAO,CAAC,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAClC,kBAAkB,CAAC,GAAG,CAAC,CA4CzB"}
@@ -1,3 +1,4 @@
1
+ import { markEventPayloadParsed } from "../events/payload-state.js";
1
2
  import { resolveProviderInstrumentationPort, } from "../providers/instrumentation.js";
2
3
  import { createChildTraceContext, resolveTracingPort, runWithTracing, } from "../tracing/index.js";
3
4
  /**
@@ -125,13 +126,13 @@ function createUseCaseEventHelpers(useCaseName, declared) {
125
126
  assertDeclared,
126
127
  async record(recorder, event, payload) {
127
128
  const declaredEvent = resolveDeclared(event);
128
- await parseEventPayload(declaredEvent, payload, useCaseName);
129
- await recorder.record(declaredEvent, payload);
129
+ const parsed = await parseEventPayload(declaredEvent, payload, useCaseName);
130
+ await recorder.record(declaredEvent, parsed, markEventPayloadParsed());
130
131
  },
131
132
  async publish(eventBus, event, payload) {
132
133
  const declaredEvent = resolveDeclared(event);
133
- await parseEventPayload(declaredEvent, payload, useCaseName);
134
- await eventBus.publish(declaredEvent, payload);
134
+ const parsed = await parseEventPayload(declaredEvent, payload, useCaseName);
135
+ await eventBus.publish(declaredEvent, parsed, markEventPayloadParsed());
135
136
  },
136
137
  };
137
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/application/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/application/index.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,45 @@ export interface EventPublishOptions {
47
47
  /** Versioned trace context captured by the event producer. */
48
48
  trace?: TraceCarrier;
49
49
  }
50
+ /**
51
+ * Lifecycle handle for one event subscription or a composed listener
52
+ * registration.
53
+ *
54
+ * `ready` proves initial transport readiness. It does not represent ongoing
55
+ * connectivity, durability, replay, or handler success after startup.
56
+ */
57
+ export interface EventSubscription {
58
+ /** Resolves when the subscription can receive events. */
59
+ readonly ready: Promise<void>;
60
+ /** Stop local delivery and await transport cleanup. Idempotent. */
61
+ unsubscribe(): Promise<void>;
62
+ }
63
+ /** Error used when a subscription closes before initial readiness. */
64
+ export declare class EventSubscriptionClosedError extends Error {
65
+ constructor(message?: string);
66
+ }
67
+ /** Error thrown when a listener registry misses its readiness deadline. */
68
+ export declare class ListenerRegistrationTimeoutError extends Error {
69
+ /** Configured readiness deadline in milliseconds. */
70
+ readonly timeoutMs: number;
71
+ /** Listener names that were part of the registration. */
72
+ readonly listenerNames: readonly string[];
73
+ constructor(args: {
74
+ timeoutMs: number;
75
+ listenerNames: readonly string[];
76
+ });
77
+ }
78
+ /** Error thrown when listener rollback misses the registration deadline. */
79
+ export declare class ListenerRegistrationCleanupTimeoutError extends Error {
80
+ /** Configured registration deadline in milliseconds. */
81
+ readonly timeoutMs: number;
82
+ /** Listener names that were part of the registration. */
83
+ readonly listenerNames: readonly string[];
84
+ constructor(args: {
85
+ timeoutMs: number;
86
+ listenerNames: readonly string[];
87
+ });
88
+ }
50
89
  /**
51
90
  * Options for `defineEvent(...)`.
52
91
  */
@@ -120,9 +159,9 @@ export interface EventBusLike {
120
159
  */
121
160
  publish<E extends EventPayloadDef>(event: E, payload: InferEventPayload<E>, options?: EventPublishOptions): MaybePromise<void>;
122
161
  /**
123
- * Subscribe to an event and return an unsubscribe function.
162
+ * Subscribe to an event and return its readiness and cleanup handle.
124
163
  */
125
- subscribe<E extends EventPayloadDef>(event: E, handler: (payload: InferEventPayload<E>, options?: EventPublishOptions) => MaybePromise<void>): () => void;
164
+ subscribe<E extends EventPayloadDef>(event: E, handler: (payload: InferEventPayload<E>, options?: EventPublishOptions) => MaybePromise<void>): EventSubscription;
126
165
  }
127
166
  /**
128
167
  * Options for `registerListeners(...)`.
@@ -142,6 +181,12 @@ export interface RegisterListenersOptions<Ctx> {
142
181
  * the event bus subscription callback.
143
182
  */
144
183
  onError?: (error: unknown, listener: ListenerDef<EventDef, Ctx>) => void;
184
+ /**
185
+ * Maximum time for the complete listener registry to become ready. The same
186
+ * registration deadline bounds automatic rollback after startup failure.
187
+ * Defaults to 10 seconds.
188
+ */
189
+ readyTimeoutMs?: number;
145
190
  }
146
191
  /**
147
192
  * Context-bound listener helper factory.
@@ -181,12 +226,16 @@ export declare function parseEventPayload<E extends EventPayloadDef>(event: E, p
181
226
  */
182
227
  export declare function publishEvent<E extends EventPayloadDef>(eventBus: EventBusLike, event: E, payload: InferEventPayload<E>, options?: EventPublishOptions): Promise<void>;
183
228
  /**
184
- * Register listeners against an event bus and return an unsubscribe function.
229
+ * Register listeners against an event bus and return a composite lifecycle
230
+ * handle.
185
231
  *
186
232
  * Payloads are validated before listener handlers run. Listener context is
187
- * resolved per delivery when `options.ctx` is a factory.
233
+ * resolved per delivery when `options.ctx` is a factory. Initial registration
234
+ * starts every child cleanup after a synchronous subscribe failure, rejected
235
+ * readiness promise, or readiness timeout. Cleanup that cannot finish inside
236
+ * the registration deadline is reported without extending startup forever.
188
237
  */
189
- export declare function registerListeners<Ctx>(eventBus: EventBusLike, listeners: readonly ListenerDef<EventDef, Ctx>[], options?: RegisterListenersOptions<Ctx>): () => void;
238
+ export declare function registerListeners<Ctx>(eventBus: EventBusLike, listeners: readonly ListenerDef<EventDef, Ctx>[], options?: RegisterListenersOptions<Ctx>): EventSubscription;
190
239
  /**
191
240
  * Create listener helper methods bound to an application context type.
192
241
  *