@beignet/core 0.0.50 → 0.0.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/README.md +99 -32
- package/dist/application/index.d.ts +5 -5
- package/dist/application/index.d.ts.map +1 -1
- package/dist/application/index.js +8 -4
- package/dist/application/index.js.map +1 -1
- package/dist/events/index.d.ts +26 -2
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +84 -7
- package/dist/events/index.js.map +1 -1
- package/dist/events/payload-state.d.ts +16 -0
- package/dist/events/payload-state.d.ts.map +1 -0
- package/dist/events/payload-state.js +123 -0
- package/dist/events/payload-state.js.map +1 -0
- package/dist/events/transport.d.ts +25 -0
- package/dist/events/transport.d.ts.map +1 -0
- package/dist/events/transport.js +192 -0
- package/dist/events/transport.js.map +1 -0
- package/dist/locks/index.d.ts.map +1 -1
- package/dist/locks/index.js +0 -4
- package/dist/locks/index.js.map +1 -1
- package/dist/openapi/index.d.ts.map +1 -1
- package/dist/openapi/index.js +27 -4
- package/dist/openapi/index.js.map +1 -1
- package/dist/outbox/index.d.ts +163 -15
- package/dist/outbox/index.d.ts.map +1 -1
- package/dist/outbox/index.js +1009 -155
- package/dist/outbox/index.js.map +1 -1
- package/dist/payments/index.d.ts.map +1 -1
- package/dist/payments/index.js +0 -4
- package/dist/payments/index.js.map +1 -1
- package/dist/ports/events.d.ts +4 -1
- package/dist/ports/events.d.ts.map +1 -1
- package/dist/ports/index.d.ts +1 -1
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js.map +1 -1
- package/dist/ports/storage.d.ts +7 -0
- package/dist/ports/storage.d.ts.map +1 -1
- package/dist/ports/storage.js +4 -0
- package/dist/ports/storage.js.map +1 -1
- package/dist/ports/testing.d.ts +16 -2
- package/dist/ports/testing.d.ts.map +1 -1
- package/dist/ports/testing.js +19 -4
- package/dist/ports/testing.js.map +1 -1
- package/dist/ports/unit-of-work.d.ts +9 -7
- package/dist/ports/unit-of-work.d.ts.map +1 -1
- package/dist/ports/unit-of-work.js +16 -7
- package/dist/ports/unit-of-work.js.map +1 -1
- package/dist/providers/index.d.ts +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/provider.d.ts +0 -38
- package/dist/providers/provider.d.ts.map +1 -1
- package/dist/providers/provider.js.map +1 -1
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js +2 -6
- package/dist/search/index.js.map +1 -1
- package/dist/server/hooks/cors.d.ts +5 -0
- package/dist/server/hooks/cors.d.ts.map +1 -1
- package/dist/server/hooks/cors.js +29 -1
- package/dist/server/hooks/cors.js.map +1 -1
- package/dist/server/instrumentation.d.ts +5 -5
- package/dist/server/instrumentation.d.ts.map +1 -1
- package/dist/server/instrumentation.js +3 -4
- package/dist/server/instrumentation.js.map +1 -1
- package/dist/server/response-finalization.d.ts.map +1 -1
- package/dist/server/response-finalization.js +25 -13
- package/dist/server/response-finalization.js.map +1 -1
- package/dist/server/server.d.ts +8 -5
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +35 -12
- package/dist/server/server.js.map +1 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +12 -6
- package/dist/testing/index.js.map +1 -1
- package/dist/uploads/index.d.ts.map +1 -1
- package/dist/uploads/index.js +37 -16
- package/dist/uploads/index.js.map +1 -1
- package/package.json +2 -2
- package/skills/app-architecture/SKILL.md +16 -0
- package/src/application/index.ts +39 -7
- package/src/events/index.ts +137 -7
- package/src/events/payload-state.ts +223 -0
- package/src/events/transport.ts +242 -0
- package/src/locks/index.ts +0 -4
- package/src/openapi/index.ts +41 -3
- package/src/outbox/index.ts +1393 -178
- package/src/payments/index.ts +0 -4
- package/src/ports/events.ts +4 -1
- package/src/ports/index.ts +3 -0
- package/src/ports/storage.ts +10 -0
- package/src/ports/testing.ts +42 -4
- package/src/ports/unit-of-work.ts +33 -15
- package/src/providers/index.ts +0 -1
- package/src/providers/provider.ts +0 -40
- package/src/search/index.ts +2 -6
- package/src/server/hooks/cors.ts +42 -0
- package/src/server/instrumentation.ts +10 -8
- package/src/server/response-finalization.ts +33 -15
- package/src/server/server.ts +61 -27
- package/src/testing/index.ts +20 -9
- package/src/uploads/index.ts +34 -16
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @beignet/core
|
|
2
2
|
|
|
3
|
+
## 0.0.52
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- b39bb6e: Clarify that Beignet applications require Node.js 22.12 or newer and can use
|
|
8
|
+
npm, pnpm, Yarn, or Bun for package management and framework commands.
|
|
9
|
+
- 33bd8a2: Reject duplicate or ambiguous path operations during direct OpenAPI generation instead of emitting overwritten or invalid paths.
|
|
10
|
+
- ac76ab9: Reject event payloads with `EventTransportError` when they are not canonical JSON or change when validated again after transport, before publishing or recording them durably. Direct memory and recording-bus publication must be awaited while validation completes.
|
|
11
|
+
- 64dca8d: Bound webhook bodies, keep fallback errors private outside development and
|
|
12
|
+
tests, serialize snapshot-safe local storage operations, preserve ambient audit
|
|
13
|
+
correlation, surface provider shutdown failures, validate timer ranges, and
|
|
14
|
+
omit raw search and database queries from instrumentation. Release unread
|
|
15
|
+
storage bodies explicitly and bound provider-owned Redis shutdown.
|
|
16
|
+
- a50ef66: Send the parsed response-schema output from framework-neutral route handlers,
|
|
17
|
+
including transformed catalog error details.
|
|
18
|
+
|
|
19
|
+
## 0.0.51
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- 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.
|
|
24
|
+
- 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.
|
|
25
|
+
- 98ab47f: Make package-owned `beignet.provider` manifests the sole source of provider metadata and remove the unused runtime `ServiceProvider.metadata` API.
|
|
26
|
+
|
|
3
27
|
## 0.0.50
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# @beignet/core
|
|
2
2
|
|
|
3
|
-
> **Runtime:** Beignet requires Node.js 22.12 or newer. Bun
|
|
4
|
-
> supported for Beignet commands.
|
|
3
|
+
> **Runtime:** Beignet requires Node.js 22.12 or newer. Bun is optional.
|
|
5
4
|
|
|
6
5
|
> Core framework primitives for Beignet
|
|
7
6
|
|
|
@@ -344,6 +343,17 @@ attempts the complete batch before rejecting with any callback failures.
|
|
|
344
343
|
|
|
345
344
|
## Event subscriptions
|
|
346
345
|
|
|
346
|
+
Beignet event payloads are canonical JSON transport data. `publishEvent(...)`,
|
|
347
|
+
use-case event helpers, buffered recorder flushes, and outbox helpers parse the
|
|
348
|
+
payload, convert the output to strict JSON, and validate the decoded JSON again.
|
|
349
|
+
They throw `EventTransportError` before publication or durable recording when
|
|
350
|
+
the output is not JSON-safe or changes under repeated validation. Use strings
|
|
351
|
+
or numbers for timestamps rather than `Date`, and keep schema transforms
|
|
352
|
+
idempotent. Keep validation deterministic and side-effect-free because Beignet
|
|
353
|
+
can run it at producer and receiving boundaries. A transform such as
|
|
354
|
+
`z.string().trim()` is valid because parsing its canonical output does not
|
|
355
|
+
change it.
|
|
356
|
+
|
|
347
357
|
`EventBusPort.subscribe(...)` returns an `EventSubscription` with a `ready`
|
|
348
358
|
promise and asynchronous, idempotent `unsubscribe()` method. Await `ready`
|
|
349
359
|
before advertising that a process can receive events, and await
|
|
@@ -362,6 +372,14 @@ Normal teardown after successful readiness still awaits transport cleanup;
|
|
|
362
372
|
apply a host-level shutdown deadline when required. Readiness is an initial
|
|
363
373
|
lifecycle signal, not an ongoing health check or durability guarantee.
|
|
364
374
|
|
|
375
|
+
An app-owned `EventBusPort` adapter must call
|
|
376
|
+
`prepareEventPayloadForTransport(...)` before publication. An in-process
|
|
377
|
+
adapter delivers the returned `payload` and forwards the complete
|
|
378
|
+
`publishOptions` object to subscribers. A serialized adapter encodes
|
|
379
|
+
`transportValue`, sends documented metadata such as the trace carrier, and lets
|
|
380
|
+
`registerListeners(...)` validate the decoded payload again at the receiving
|
|
381
|
+
boundary.
|
|
382
|
+
|
|
365
383
|
## Provider-contributed ports
|
|
366
384
|
|
|
367
385
|
Apps bind app-owned ports directly and defer the rest to providers with the
|
|
@@ -677,6 +695,8 @@ const results = await ctx.ports.search.search(issueSearchIndex, {
|
|
|
677
695
|
Use `createMemorySearch(...)` in tests, `createMemorySearchProvider()` for local
|
|
678
696
|
provider wiring, or install `@beignet/provider-search-meilisearch` for
|
|
679
697
|
production search.
|
|
698
|
+
Search instrumentation records the index, result count, and query length. It
|
|
699
|
+
does not record query text or document bodies.
|
|
680
700
|
Provider adapters may require query fields to be declared in the index
|
|
681
701
|
metadata. For Meilisearch, `filters` and `facets` must use
|
|
682
702
|
`filterableAttributes`, and `sort` must use `sortableAttributes`.
|
|
@@ -716,6 +736,11 @@ trailing slashes, backslashes, empty segments, and `.` / `..` segments.
|
|
|
716
736
|
Provider adapters may add narrower restrictions for their own internal
|
|
717
737
|
namespaces.
|
|
718
738
|
|
|
739
|
+
`StoragePort.get(...)` returns a one-shot `StorageObjectBody`. Consume one of
|
|
740
|
+
its body methods, or call `await object.cancel()` when only inspecting metadata
|
|
741
|
+
so providers can release unread streams, sockets, or file snapshots. Prefer
|
|
742
|
+
`stat(...)` for metadata-only lookups.
|
|
743
|
+
|
|
719
744
|
## Uploads
|
|
720
745
|
|
|
721
746
|
Use `@beignet/core/uploads` for typed file workflows above `StoragePort`.
|
|
@@ -905,27 +930,11 @@ never fails doctor, even in strict mode. Use
|
|
|
905
930
|
`parseProviderPackageMetadata(...)` to validate manifest metadata before
|
|
906
931
|
publishing a provider package.
|
|
907
932
|
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
package
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
```typescript
|
|
914
|
-
import { createProvider } from "@beignet/core/providers";
|
|
915
|
-
|
|
916
|
-
export const cacheProvider = createProvider({
|
|
917
|
-
name: "cache",
|
|
918
|
-
metadata: {
|
|
919
|
-
packageName: "@acme/beignet-provider-cache",
|
|
920
|
-
ports: ["cache"],
|
|
921
|
-
env: ["CACHE_URL"],
|
|
922
|
-
watchers: ["cache"],
|
|
923
|
-
},
|
|
924
|
-
setup() {
|
|
925
|
-
return { ports: { cache: createCachePort() } };
|
|
926
|
-
},
|
|
927
|
-
});
|
|
928
|
-
```
|
|
933
|
+
The package manifest is the sole provider metadata source. Runtime provider
|
|
934
|
+
objects define lifecycle behavior and a diagnostic `name`; they do not repeat
|
|
935
|
+
package facts. App-local providers therefore need no metadata declaration
|
|
936
|
+
unless they are published as a reusable package, in which case add the
|
|
937
|
+
manifest to that package.
|
|
929
938
|
|
|
930
939
|
## Tasks
|
|
931
940
|
|
|
@@ -1681,6 +1690,8 @@ const result = await drainOutbox({ outbox, registry, eventBus, jobs });
|
|
|
1681
1690
|
assertOutboxDrainResult(result, {
|
|
1682
1691
|
claimed: 1,
|
|
1683
1692
|
delivered: 1,
|
|
1693
|
+
settlementFailed: 0,
|
|
1694
|
+
leaseLost: 0,
|
|
1684
1695
|
});
|
|
1685
1696
|
|
|
1686
1697
|
assertOutboxDelivered(outbox.messages, {
|
|
@@ -1708,6 +1719,10 @@ assertProviderInstrumentationEvent(providerEvents, {
|
|
|
1708
1719
|
});
|
|
1709
1720
|
```
|
|
1710
1721
|
|
|
1722
|
+
`createRecordingEventBus()` applies the same canonical JSON and
|
|
1723
|
+
transport-stability checks as Beignet's runtime event buses before appending an
|
|
1724
|
+
event to its captured log. Await `bus.publish(...)` before reading that log.
|
|
1725
|
+
|
|
1711
1726
|
`createProviderInstrumentation(...)` adds `details.providerName` to custom and
|
|
1712
1727
|
typed provider events, so tests and devtools can group provider work
|
|
1713
1728
|
consistently. Watcher checks, synchronous sink errors, and rejected
|
|
@@ -2040,14 +2055,44 @@ registry with jobs requires `jobs`. `drainOutbox(...)` validates those
|
|
|
2040
2055
|
capabilities before claiming a batch, so incomplete worker wiring fails
|
|
2041
2056
|
without consuming delivery attempts.
|
|
2042
2057
|
|
|
2058
|
+
The storage port uses token-guarded leases. `claimBatch(...)` returns both
|
|
2059
|
+
newly claimed messages and eligible rows it atomically dead-lettered because a
|
|
2060
|
+
previous crashed claim exhausted `maxAttempts`. `renewClaim(...)` extends only
|
|
2061
|
+
an active, unexpired claim. `markDelivered(...)` and `markFailed(...)` also
|
|
2062
|
+
reject expired or stale claim tokens.
|
|
2063
|
+
|
|
2064
|
+
`drainOutbox(...)` defaults to a batch size of 100, serial delivery, a
|
|
2065
|
+
30-second lease, a 10-second serialized heartbeat, and a 5-minute maximum
|
|
2066
|
+
active duration per message. Set `concurrency` above one only for handlers that
|
|
2067
|
+
can run without ordering guarantees. Configure `leaseMs`, `heartbeatMs`, and
|
|
2068
|
+
`maxActiveMs` together when delivery latency requires different limits, and
|
|
2069
|
+
synchronize the clocks on every drain host because adapters compare the
|
|
2070
|
+
timestamps supplied by workers. Reaching `maxActiveMs` stops further renewals;
|
|
2071
|
+
the last confirmed lease can remain active until its own expiration.
|
|
2072
|
+
|
|
2073
|
+
The result reports `abandonedDeadLettered`, `settlementFailed`, and `leaseLost`
|
|
2074
|
+
in addition to the normal claim and delivery counters. A successful external
|
|
2075
|
+
delivery whose acknowledgement cannot be stored increments
|
|
2076
|
+
`settlementFailed`; Beignet does not call `markFailed(...)` after that success.
|
|
2077
|
+
Treat either uncertainty counter as an operational failure because the message
|
|
2078
|
+
may be delivered again after lease expiry. `onLeaseError` distinguishes
|
|
2079
|
+
`recovered`, `degraded`, and `lost` lease states; only `lost` increments
|
|
2080
|
+
`leaseLost`. One message can increment both uncertainty counters when its
|
|
2081
|
+
settlement reaches the lease deadline.
|
|
2082
|
+
|
|
2043
2083
|
The outbox is at-least-once delivery. Use idempotent listeners or jobs when a
|
|
2044
2084
|
duplicate delivery would be harmful. Drizzle-backed outbox tables persist the
|
|
2045
2085
|
optional versioned trace carrier in `trace_context_json`; add that nullable
|
|
2046
2086
|
column to existing tables before upgrading the adapter.
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2087
|
+
|
|
2088
|
+
Beignet's use-case event helpers, `publishEvent(...)`, and `enqueueEvent(...)`
|
|
2089
|
+
validate payloads and forward canonical Standard Schema output. They reject
|
|
2090
|
+
non-JSON outputs and transforms that change when canonical JSON is validated
|
|
2091
|
+
again, before publishing or writing an outbox row. In-process delivery
|
|
2092
|
+
preserves that validation state, while durable or distributed transports
|
|
2093
|
+
validate decoded JSON again. For an outbox, model timestamps as JSON strings or
|
|
2094
|
+
numbers rather than `Date` objects. Job transports continue to preserve the
|
|
2095
|
+
original JSON-safe payload until the worker's handler-facing parse.
|
|
2051
2096
|
|
|
2052
2097
|
An ordinary Unit of Work event flush has a different boundary: it runs after
|
|
2053
2098
|
commit, and a publishing failure rejects even though the database writes are
|
|
@@ -2249,12 +2294,16 @@ const publicCors = createCorsHooks({ origins: "*" });
|
|
|
2249
2294
|
const browserAppCors = createCorsHooks({
|
|
2250
2295
|
origins: ["https://app.example.com"],
|
|
2251
2296
|
credentials: true,
|
|
2297
|
+
exposedHeaders: ["x-request-id"],
|
|
2252
2298
|
});
|
|
2253
2299
|
```
|
|
2254
2300
|
|
|
2255
2301
|
`createCorsHooks({ origins: "*", credentials: true })` throws during setup so
|
|
2256
2302
|
apps do not accidentally reflect arbitrary request origins for cookies or
|
|
2257
|
-
authorization headers.
|
|
2303
|
+
authorization headers. The hook always exposes `x-beignet-error-owner` so the
|
|
2304
|
+
typed browser client can distinguish framework failures from route-owned
|
|
2305
|
+
errors; `exposedHeaders` adds app-owned response headers that browser code also
|
|
2306
|
+
needs to read.
|
|
2258
2307
|
|
|
2259
2308
|
The hook short-circuits only real browser preflights: `OPTIONS` requests that
|
|
2260
2309
|
include both `Origin` and `Access-Control-Request-Method`. An explicit
|
|
@@ -2368,7 +2417,7 @@ import { appContext } from "@/server/context";
|
|
|
2368
2417
|
const server = await createServer({
|
|
2369
2418
|
ports,
|
|
2370
2419
|
providers,
|
|
2371
|
-
// Defaults shown. Pass
|
|
2420
|
+
// Defaults shown. Pass false to disable headers and event recording.
|
|
2372
2421
|
instrumentation: {
|
|
2373
2422
|
requestIdHeader: "x-request-id",
|
|
2374
2423
|
traceContextHeader: "traceparent",
|
|
@@ -2382,6 +2431,12 @@ Service contexts created with `server.createServiceContext(...)` receive fresh
|
|
|
2382
2431
|
`requestId` and `trace` values per call. Context values win: when a factory
|
|
2383
2432
|
sets its own `requestId`, headers and recorded events use it.
|
|
2384
2433
|
|
|
2434
|
+
`instrumentation: false` keeps request and service correlation available to
|
|
2435
|
+
context factories and `createAmbientAuditLog(...)`; it disables only response
|
|
2436
|
+
headers and instrumentation event recording.
|
|
2437
|
+
`ignorePaths` suppresses recorded events without removing ambient correlation
|
|
2438
|
+
from matching requests.
|
|
2439
|
+
|
|
2385
2440
|
Trace primitives live in `@beignet/core/tracing` (`TraceContext`,
|
|
2386
2441
|
`TracingPort`, `TraceOperation`, `TraceSpan`, `createTraceContext`,
|
|
2387
2442
|
`createChildTraceContext`, `parseTraceparent`, `createTraceparent`,
|
|
@@ -2458,9 +2513,16 @@ normalize to an anonymous actor.
|
|
|
2458
2513
|
|
|
2459
2514
|
Route-owned response validation can be disabled with
|
|
2460
2515
|
`validateResponses: false` on `createServer(...)`, mirroring the client option
|
|
2461
|
-
of the same name.
|
|
2462
|
-
|
|
2463
|
-
|
|
2516
|
+
of the same name. When enabled, Beignet sends the declared response schema's
|
|
2517
|
+
parsed output: object schemas can strip undeclared keys, transforms change the
|
|
2518
|
+
wire value, and catalog error-detail schemas apply the same semantics. The
|
|
2519
|
+
parsed body is also the value observed by response finalizers, `afterSend`
|
|
2520
|
+
hooks, and idempotency storage. Disabling validation sends route-owned handler
|
|
2521
|
+
bodies as-is without schema stripping or transforms.
|
|
2522
|
+
|
|
2523
|
+
Binder routes whose use case `.output(...)` schema is the declared success
|
|
2524
|
+
response schema by reference skip the redundant success-status parse only when
|
|
2525
|
+
use-case output validation is enabled. If the use case sets
|
|
2464
2526
|
`validate: { output: false }`, route response validation still runs once. If
|
|
2465
2527
|
profiling justifies disabling validation entirely, drive `validateResponses`
|
|
2466
2528
|
from an environment flag so development and CI keep it on.
|
|
@@ -2508,6 +2570,11 @@ schema.
|
|
|
2508
2570
|
OpenAPI `operationId` defaults to the stable contract name. Explicit operation
|
|
2509
2571
|
IDs are supported when an external SDK needs a different method name; server
|
|
2510
2572
|
registration and OpenAPI generation reject duplicates.
|
|
2573
|
+
`contractsToOpenAPI(...)` also rejects duplicate method and normalized path
|
|
2574
|
+
combinations instead of replacing an earlier operation; `:id` and `[id]` both
|
|
2575
|
+
normalize to the OpenAPI path parameter `{id}`. Paths with the same hierarchy
|
|
2576
|
+
must also use consistent parameter names: `/items/{id}` and `/items/{slug}`
|
|
2577
|
+
cannot coexist in one OpenAPI document, even when they use different methods.
|
|
2511
2578
|
|
|
2512
2579
|
### External TypeScript clients
|
|
2513
2580
|
|
|
@@ -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
|
|
67
|
-
* definitions
|
|
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
|
|
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
|
|
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":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/application/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { prepareEventPayloadForTransport, } from "../events/index.js";
|
|
2
|
+
import { markEventPayloadParsed } from "../events/payload-state.js";
|
|
1
3
|
import { resolveProviderInstrumentationPort, } from "../providers/instrumentation.js";
|
|
2
4
|
import { createChildTraceContext, resolveTracingPort, runWithTracing, } from "../tracing/index.js";
|
|
3
5
|
/**
|
|
@@ -125,13 +127,15 @@ function createUseCaseEventHelpers(useCaseName, declared) {
|
|
|
125
127
|
assertDeclared,
|
|
126
128
|
async record(recorder, event, payload) {
|
|
127
129
|
const declaredEvent = resolveDeclared(event);
|
|
128
|
-
await parseEventPayload(declaredEvent, payload, useCaseName);
|
|
129
|
-
await
|
|
130
|
+
const parsed = await parseEventPayload(declaredEvent, payload, useCaseName);
|
|
131
|
+
const prepared = await prepareEventPayloadForTransport(declaredEvent, parsed, markEventPayloadParsed(declaredEvent, parsed));
|
|
132
|
+
await recorder.record(declaredEvent, prepared.payload, prepared.publishOptions);
|
|
130
133
|
},
|
|
131
134
|
async publish(eventBus, event, payload) {
|
|
132
135
|
const declaredEvent = resolveDeclared(event);
|
|
133
|
-
await parseEventPayload(declaredEvent, payload, useCaseName);
|
|
134
|
-
await
|
|
136
|
+
const parsed = await parseEventPayload(declaredEvent, payload, useCaseName);
|
|
137
|
+
const prepared = await prepareEventPayloadForTransport(declaredEvent, parsed, markEventPayloadParsed(declaredEvent, parsed));
|
|
138
|
+
await eventBus.publish(declaredEvent, prepared.payload, prepared.publishOptions);
|
|
135
139
|
},
|
|
136
140
|
};
|
|
137
141
|
}
|
|
@@ -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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"}
|
package/dist/events/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { StandardSchemaV1 } from "@standard-schema/spec";
|
|
2
2
|
import { type TraceCarrier, type TracingPort } from "../tracing/index.js";
|
|
3
|
+
import { type EventTransportValue } from "./transport.js";
|
|
4
|
+
export { EventTransportError, type EventTransportErrorReason, type EventTransportValue, } from "./transport.js";
|
|
3
5
|
/**
|
|
4
6
|
* Any Standard Schema compatible validator.
|
|
5
7
|
*/
|
|
@@ -210,11 +212,24 @@ export declare class EventValidationError extends Error {
|
|
|
210
212
|
issues: readonly StandardSchemaV1.Issue[];
|
|
211
213
|
});
|
|
212
214
|
}
|
|
215
|
+
/**
|
|
216
|
+
* Parsed runtime value and canonical JSON value for one event publication.
|
|
217
|
+
*/
|
|
218
|
+
export interface PreparedEventPayload<E extends EventPayloadDef> {
|
|
219
|
+
/** Parsed Standard Schema output delivered to in-process listeners. */
|
|
220
|
+
readonly payload: InferEventPayload<E>;
|
|
221
|
+
/** Canonical JSON value written by serialized transports. */
|
|
222
|
+
readonly transportValue: EventTransportValue;
|
|
223
|
+
/** Complete publish metadata to forward to in-process subscribers. */
|
|
224
|
+
readonly publishOptions: EventPublishOptions;
|
|
225
|
+
}
|
|
213
226
|
/**
|
|
214
227
|
* Define a typed event.
|
|
215
228
|
*
|
|
216
229
|
* Event payloads are validated before publishing through `publishEvent(...)`
|
|
217
|
-
* and before registered listeners run.
|
|
230
|
+
* and before registered listeners run. Producer helpers also require parsed
|
|
231
|
+
* output to be plain JSON that remains unchanged when validated again after a
|
|
232
|
+
* transport round trip.
|
|
218
233
|
*/
|
|
219
234
|
export declare function defineEvent<Name extends string, Payload extends StandardSchema>(name: Name, options: DefineEventOptions<Payload>): EventDef<Name, Payload>;
|
|
220
235
|
/**
|
|
@@ -222,7 +237,16 @@ export declare function defineEvent<Name extends string, Payload extends Standar
|
|
|
222
237
|
*/
|
|
223
238
|
export declare function parseEventPayload<E extends EventPayloadDef>(event: E, payload: unknown): Promise<InferEventPayload<E>>;
|
|
224
239
|
/**
|
|
225
|
-
*
|
|
240
|
+
* Parse an event payload and prove that its canonical JSON survives transport.
|
|
241
|
+
*
|
|
242
|
+
* Custom event-bus providers must call this before publishing. The returned
|
|
243
|
+
* runtime payload is suitable for in-process listeners; `transportValue` is
|
|
244
|
+
* the exact JSON-safe value to encode for a serialized transport.
|
|
245
|
+
*/
|
|
246
|
+
export declare function prepareEventPayloadForTransport<E extends EventPayloadDef>(event: E, payload: unknown, options?: EventPublishOptions): Promise<PreparedEventPayload<E>>;
|
|
247
|
+
/**
|
|
248
|
+
* Validate an event payload, prove transport stability, and publish it through
|
|
249
|
+
* an event bus.
|
|
226
250
|
*/
|
|
227
251
|
export declare function publishEvent<E extends EventPayloadDef>(eventBus: EventBusLike, event: E, payload: InferEventPayload<E>, options?: EventPublishOptions): Promise<void>;
|
|
228
252
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"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"}
|
package/dist/events/index.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { runWithResolvedTracingContext } from "../tracing/execution.js";
|
|
2
2
|
import { parseTraceCarrier, } from "../tracing/index.js";
|
|
3
|
+
import { isEventPayloadParsed, isEventPayloadTransportStable, markEventPayloadTransportStable, } from "./payload-state.js";
|
|
4
|
+
import { EventTransportError, eventTransportValuesEqual, toEventTransportValue, } from "./transport.js";
|
|
5
|
+
export { EventTransportError, } from "./transport.js";
|
|
3
6
|
const DEFAULT_LISTENER_READY_TIMEOUT_MS = 10_000;
|
|
4
7
|
const MAX_TIMER_MS = 2_147_483_647;
|
|
5
8
|
/** Error used when a subscription closes before initial readiness. */
|
|
@@ -89,7 +92,9 @@ async function parsePayload(schema, input, args) {
|
|
|
89
92
|
* Define a typed event.
|
|
90
93
|
*
|
|
91
94
|
* Event payloads are validated before publishing through `publishEvent(...)`
|
|
92
|
-
* and before registered listeners run.
|
|
95
|
+
* and before registered listeners run. Producer helpers also require parsed
|
|
96
|
+
* output to be plain JSON that remains unchanged when validated again after a
|
|
97
|
+
* transport round trip.
|
|
93
98
|
*/
|
|
94
99
|
export function defineEvent(name, options) {
|
|
95
100
|
return {
|
|
@@ -116,11 +121,83 @@ export async function parseEventPayload(event, payload) {
|
|
|
116
121
|
}));
|
|
117
122
|
}
|
|
118
123
|
/**
|
|
119
|
-
*
|
|
124
|
+
* Parse an event payload and prove that its canonical JSON survives transport.
|
|
125
|
+
*
|
|
126
|
+
* Custom event-bus providers must call this before publishing. The returned
|
|
127
|
+
* runtime payload is suitable for in-process listeners; `transportValue` is
|
|
128
|
+
* the exact JSON-safe value to encode for a serialized transport.
|
|
129
|
+
*/
|
|
130
|
+
export async function prepareEventPayloadForTransport(event, payload, options) {
|
|
131
|
+
const parsed = isEventPayloadParsed(event, payload, options)
|
|
132
|
+
? payload
|
|
133
|
+
: await parseEventPayload(event, payload);
|
|
134
|
+
const transportValue = toEventTransportValue(event.name, parsed);
|
|
135
|
+
let canonicalPayload = parsed;
|
|
136
|
+
let transportStateIsCurrent = false;
|
|
137
|
+
try {
|
|
138
|
+
transportStateIsCurrent = isEventPayloadTransportStable(event, parsed, transportValue, options);
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
// Revalidate if a mutated or proxied payload can no longer be compared.
|
|
142
|
+
}
|
|
143
|
+
if (!transportStateIsCurrent) {
|
|
144
|
+
let reparsed;
|
|
145
|
+
try {
|
|
146
|
+
reparsed = await parseEventPayload(event, transportValue);
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
throw new EventTransportError({
|
|
150
|
+
eventName: event.name,
|
|
151
|
+
reason: "not-stable",
|
|
152
|
+
message: "is not transport-stable: its canonical JSON failed validation when decoded again. Event schemas must accept their own canonical JSON output.",
|
|
153
|
+
cause: error,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
let reparsedTransportValue;
|
|
157
|
+
try {
|
|
158
|
+
reparsedTransportValue = toEventTransportValue(event.name, reparsed);
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
throw new EventTransportError({
|
|
162
|
+
eventName: event.name,
|
|
163
|
+
reason: "not-stable",
|
|
164
|
+
path: error instanceof EventTransportError ? error.path : undefined,
|
|
165
|
+
message: "is not transport-stable: validating its canonical JSON produced a value that is not JSON-safe.",
|
|
166
|
+
cause: error,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
if (!eventTransportValuesEqual(transportValue, reparsedTransportValue)) {
|
|
170
|
+
throw new EventTransportError({
|
|
171
|
+
eventName: event.name,
|
|
172
|
+
reason: "not-stable",
|
|
173
|
+
message: "is not transport-stable: its canonical JSON changed when validated again. Event schema transforms must be idempotent.",
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
canonicalPayload = reparsed;
|
|
177
|
+
}
|
|
178
|
+
try {
|
|
179
|
+
return {
|
|
180
|
+
payload: canonicalPayload,
|
|
181
|
+
transportValue,
|
|
182
|
+
publishOptions: markEventPayloadTransportStable(event, canonicalPayload, transportValue, options),
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
throw new EventTransportError({
|
|
187
|
+
eventName: event.name,
|
|
188
|
+
reason: "not-stable",
|
|
189
|
+
message: "is not transport-stable: its canonical output could not be inspected consistently.",
|
|
190
|
+
cause: error,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Validate an event payload, prove transport stability, and publish it through
|
|
196
|
+
* an event bus.
|
|
120
197
|
*/
|
|
121
198
|
export async function publishEvent(eventBus, event, payload, options) {
|
|
122
|
-
await
|
|
123
|
-
await eventBus.publish(event, payload,
|
|
199
|
+
const prepared = await prepareEventPayloadForTransport(event, payload, options);
|
|
200
|
+
await eventBus.publish(event, prepared.payload, prepared.publishOptions);
|
|
124
201
|
}
|
|
125
202
|
function assertReadyTimeoutMs(value) {
|
|
126
203
|
if (Number.isInteger(value) && value >= 1 && value <= MAX_TIMER_MS)
|
|
@@ -181,7 +258,7 @@ export function registerListeners(eventBus, listeners, options = {}) {
|
|
|
181
258
|
try {
|
|
182
259
|
subscriptions.push(eventBus.subscribe(listener.event, async (rawPayload, publishOptions) => {
|
|
183
260
|
try {
|
|
184
|
-
const
|
|
261
|
+
const prepared = await prepareEventPayloadForTransport(listener.event, rawPayload, publishOptions);
|
|
185
262
|
const traceAttributes = {
|
|
186
263
|
"beignet.listener.name": listener.name,
|
|
187
264
|
"beignet.event.name": listener.event.name,
|
|
@@ -193,13 +270,13 @@ export function registerListeners(eventBus, listeners, options = {}) {
|
|
|
193
270
|
name: `beignet.listener ${listener.name}`,
|
|
194
271
|
type: "listener",
|
|
195
272
|
kind: "consumer",
|
|
196
|
-
parent: parseTraceCarrier(publishOptions
|
|
273
|
+
parent: parseTraceCarrier(prepared.publishOptions.trace),
|
|
197
274
|
attributes: traceAttributes,
|
|
198
275
|
metricAttributes: traceAttributes,
|
|
199
276
|
},
|
|
200
277
|
run: (ctx) => listener.handle({
|
|
201
278
|
event: listener.event,
|
|
202
|
-
payload,
|
|
279
|
+
payload: prepared.payload,
|
|
203
280
|
ctx,
|
|
204
281
|
}),
|
|
205
282
|
});
|