@beignet/core 0.0.51 → 0.0.53
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 +27 -0
- package/README.md +112 -20
- package/dist/application/index.d.ts +1 -1
- package/dist/application/index.d.ts.map +1 -1
- package/dist/application/index.js +5 -2
- package/dist/application/index.js.map +1 -1
- package/dist/encryption/index.d.ts +40 -0
- package/dist/encryption/index.d.ts.map +1 -0
- package/dist/encryption/index.js +134 -0
- package/dist/encryption/index.js.map +1 -0
- package/dist/events/index.d.ts +26 -2
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +84 -10
- package/dist/events/index.js.map +1 -1
- package/dist/events/payload-state.d.ts +14 -2
- package/dist/events/payload-state.d.ts.map +1 -1
- package/dist/events/payload-state.js +116 -4
- package/dist/events/payload-state.js.map +1 -1
- 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/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.map +1 -1
- package/dist/outbox/index.js +10 -13
- package/dist/outbox/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/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 +3 -2
- package/dist/ports/testing.d.ts.map +1 -1
- package/dist/ports/testing.js +7 -4
- package/dist/ports/testing.js.map +1 -1
- package/dist/ports/unit-of-work.d.ts +4 -4
- package/dist/ports/unit-of-work.d.ts.map +1 -1
- package/dist/ports/unit-of-work.js +8 -9
- package/dist/ports/unit-of-work.js.map +1 -1
- package/dist/search/index.js +2 -2
- package/dist/search/index.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/request-executor.d.ts.map +1 -1
- package/dist/server/request-executor.js +13 -0
- package/dist/server/request-executor.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 +1 -3
- package/dist/server/server.js.map +1 -1
- package/dist/server/use-case-route.d.ts +82 -17
- package/dist/server/use-case-route.d.ts.map +1 -1
- package/dist/server/use-case-route.js +40 -4
- package/dist/server/use-case-route.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 +6 -2
- package/skills/app-architecture/SKILL.md +29 -6
- package/src/application/index.ts +24 -3
- package/src/encryption/index.ts +198 -0
- package/src/events/index.ts +137 -10
- package/src/events/payload-state.ts +205 -6
- package/src/events/transport.ts +242 -0
- package/src/openapi/index.ts +41 -3
- package/src/outbox/index.ts +26 -18
- package/src/ports/events.ts +4 -1
- package/src/ports/storage.ts +10 -0
- package/src/ports/testing.ts +11 -4
- package/src/ports/unit-of-work.ts +20 -16
- package/src/search/index.ts +2 -2
- package/src/server/instrumentation.ts +10 -8
- package/src/server/request-executor.ts +19 -0
- package/src/server/response-finalization.ts +33 -15
- package/src/server/server.ts +9 -8
- package/src/server/use-case-route.ts +234 -27
- package/src/uploads/index.ts +34 -16
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":"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
|
|
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,6 +1,8 @@
|
|
|
1
1
|
import { runWithResolvedTracingContext } from "../tracing/execution.js";
|
|
2
2
|
import { parseTraceCarrier, } from "../tracing/index.js";
|
|
3
|
-
import { isEventPayloadParsed,
|
|
3
|
+
import { isEventPayloadParsed, isEventPayloadTransportStable, markEventPayloadTransportStable, } from "./payload-state.js";
|
|
4
|
+
import { EventTransportError, eventTransportValuesEqual, toEventTransportValue, } from "./transport.js";
|
|
5
|
+
export { EventTransportError, } from "./transport.js";
|
|
4
6
|
const DEFAULT_LISTENER_READY_TIMEOUT_MS = 10_000;
|
|
5
7
|
const MAX_TIMER_MS = 2_147_483_647;
|
|
6
8
|
/** Error used when a subscription closes before initial readiness. */
|
|
@@ -90,7 +92,9 @@ async function parsePayload(schema, input, args) {
|
|
|
90
92
|
* Define a typed event.
|
|
91
93
|
*
|
|
92
94
|
* Event payloads are validated before publishing through `publishEvent(...)`
|
|
93
|
-
* 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.
|
|
94
98
|
*/
|
|
95
99
|
export function defineEvent(name, options) {
|
|
96
100
|
return {
|
|
@@ -117,11 +121,83 @@ export async function parseEventPayload(event, payload) {
|
|
|
117
121
|
}));
|
|
118
122
|
}
|
|
119
123
|
/**
|
|
120
|
-
*
|
|
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.
|
|
121
197
|
*/
|
|
122
198
|
export async function publishEvent(eventBus, event, payload, options) {
|
|
123
|
-
const
|
|
124
|
-
await eventBus.publish(event,
|
|
199
|
+
const prepared = await prepareEventPayloadForTransport(event, payload, options);
|
|
200
|
+
await eventBus.publish(event, prepared.payload, prepared.publishOptions);
|
|
125
201
|
}
|
|
126
202
|
function assertReadyTimeoutMs(value) {
|
|
127
203
|
if (Number.isInteger(value) && value >= 1 && value <= MAX_TIMER_MS)
|
|
@@ -182,9 +258,7 @@ export function registerListeners(eventBus, listeners, options = {}) {
|
|
|
182
258
|
try {
|
|
183
259
|
subscriptions.push(eventBus.subscribe(listener.event, async (rawPayload, publishOptions) => {
|
|
184
260
|
try {
|
|
185
|
-
const
|
|
186
|
-
? rawPayload
|
|
187
|
-
: await parseEventPayload(listener.event, rawPayload);
|
|
261
|
+
const prepared = await prepareEventPayloadForTransport(listener.event, rawPayload, publishOptions);
|
|
188
262
|
const traceAttributes = {
|
|
189
263
|
"beignet.listener.name": listener.name,
|
|
190
264
|
"beignet.event.name": listener.event.name,
|
|
@@ -196,13 +270,13 @@ export function registerListeners(eventBus, listeners, options = {}) {
|
|
|
196
270
|
name: `beignet.listener ${listener.name}`,
|
|
197
271
|
type: "listener",
|
|
198
272
|
kind: "consumer",
|
|
199
|
-
parent: parseTraceCarrier(publishOptions
|
|
273
|
+
parent: parseTraceCarrier(prepared.publishOptions.trace),
|
|
200
274
|
attributes: traceAttributes,
|
|
201
275
|
metricAttributes: traceAttributes,
|
|
202
276
|
},
|
|
203
277
|
run: (ctx) => listener.handle({
|
|
204
278
|
event: listener.event,
|
|
205
|
-
payload,
|
|
279
|
+
payload: prepared.payload,
|
|
206
280
|
ctx,
|
|
207
281
|
}),
|
|
208
282
|
});
|
package/dist/events/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import type { EventPublishOptions } from "./index.js";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import type { EventTransportValue } from "./transport.js";
|
|
3
|
+
interface EventPayloadIdentity {
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly payload: {
|
|
6
|
+
readonly "~standard": {
|
|
7
|
+
readonly validate: unknown;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export declare function markEventPayloadParsed(event: EventPayloadIdentity, payload: unknown, options?: EventPublishOptions): EventPublishOptions;
|
|
12
|
+
export declare function isEventPayloadParsed(event: EventPayloadIdentity, payload: unknown, options?: EventPublishOptions): boolean;
|
|
13
|
+
export declare function markEventPayloadTransportStable(event: EventPayloadIdentity, payload: unknown, transportValue: EventTransportValue, options?: EventPublishOptions): EventPublishOptions;
|
|
14
|
+
export declare function isEventPayloadTransportStable(event: EventPayloadIdentity, payload: unknown, transportValue: EventTransportValue, options?: EventPublishOptions): boolean;
|
|
15
|
+
export {};
|
|
4
16
|
//# sourceMappingURL=payload-state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload-state.d.ts","sourceRoot":"","sources":["../../src/events/payload-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"payload-state.d.ts","sourceRoot":"","sources":["../../src/events/payload-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AA0C1D,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,WAAW,EAAE;YACpB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;SAC5B,CAAC;KACH,CAAC;CACH;AA4FD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,mBAAmB,CAYrB;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAWT;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,mBAAmB,EACnC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,mBAAmB,CAqBrB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,mBAAmB,EACnC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAYT"}
|
|
@@ -1,11 +1,123 @@
|
|
|
1
1
|
const PARSED_EVENT_PAYLOAD = Symbol.for("beignet.eventPayload.parsed");
|
|
2
|
-
|
|
2
|
+
const TRANSPORT_STABLE_EVENT_PAYLOAD = Symbol.for("beignet.eventPayload.transportStable");
|
|
3
|
+
const transportStablePayloadStates = new WeakMap();
|
|
4
|
+
const parsedPayloadStates = new WeakMap();
|
|
5
|
+
function transportFingerprint(value) {
|
|
6
|
+
return JSON.stringify(value);
|
|
7
|
+
}
|
|
8
|
+
function capturePayloadSnapshot(value) {
|
|
9
|
+
if (value === null || typeof value !== "object") {
|
|
10
|
+
return { kind: "primitive", value };
|
|
11
|
+
}
|
|
12
|
+
if (Array.isArray(value)) {
|
|
13
|
+
const items = [];
|
|
14
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
15
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
|
|
16
|
+
if (!descriptor || !("value" in descriptor)) {
|
|
17
|
+
throw new TypeError("Transport-stable array state must contain data properties.");
|
|
18
|
+
}
|
|
19
|
+
items.push(capturePayloadSnapshot(descriptor.value));
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
kind: "array",
|
|
23
|
+
value,
|
|
24
|
+
prototype: Object.getPrototypeOf(value),
|
|
25
|
+
items,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
kind: "object",
|
|
30
|
+
value,
|
|
31
|
+
prototype: Object.getPrototypeOf(value),
|
|
32
|
+
entries: Reflect.ownKeys(value).map((key) => {
|
|
33
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
34
|
+
if (typeof key !== "string" || !descriptor || !("value" in descriptor)) {
|
|
35
|
+
throw new TypeError("Transport-stable payload state must contain data properties.");
|
|
36
|
+
}
|
|
37
|
+
return [key, capturePayloadSnapshot(descriptor.value)];
|
|
38
|
+
}),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function matchesPayloadSnapshot(snapshot, value) {
|
|
42
|
+
if (snapshot.kind === "primitive")
|
|
43
|
+
return Object.is(snapshot.value, value);
|
|
44
|
+
if (snapshot.value !== value || value === null || typeof value !== "object") {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
if (Object.getPrototypeOf(value) !== snapshot.prototype)
|
|
48
|
+
return false;
|
|
49
|
+
if (snapshot.kind === "array") {
|
|
50
|
+
return (Array.isArray(value) &&
|
|
51
|
+
value.length === snapshot.items.length &&
|
|
52
|
+
snapshot.items.every((item, index) => {
|
|
53
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
|
|
54
|
+
return (descriptor !== undefined &&
|
|
55
|
+
"value" in descriptor &&
|
|
56
|
+
matchesPayloadSnapshot(item, descriptor.value));
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
if (Array.isArray(value))
|
|
60
|
+
return false;
|
|
61
|
+
const keys = Reflect.ownKeys(value);
|
|
62
|
+
return (keys.length === snapshot.entries.length &&
|
|
63
|
+
snapshot.entries.every(([key, item], index) => {
|
|
64
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
65
|
+
return (keys[index] === key &&
|
|
66
|
+
descriptor !== undefined &&
|
|
67
|
+
"value" in descriptor &&
|
|
68
|
+
matchesPayloadSnapshot(item, descriptor.value));
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
export function markEventPayloadParsed(event, payload, options) {
|
|
72
|
+
const token = {};
|
|
73
|
+
parsedPayloadStates.set(token, {
|
|
74
|
+
eventName: event.name,
|
|
75
|
+
payloadSchema: event.payload,
|
|
76
|
+
validate: event.payload["~standard"].validate,
|
|
77
|
+
payload,
|
|
78
|
+
});
|
|
79
|
+
return {
|
|
80
|
+
...options,
|
|
81
|
+
[PARSED_EVENT_PAYLOAD]: token,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export function isEventPayloadParsed(event, payload, options) {
|
|
85
|
+
const token = options?.[PARSED_EVENT_PAYLOAD];
|
|
86
|
+
const state = token ? parsedPayloadStates.get(token) : undefined;
|
|
87
|
+
return (state?.eventName === event.name &&
|
|
88
|
+
state.payloadSchema === event.payload &&
|
|
89
|
+
state.validate === event.payload["~standard"].validate &&
|
|
90
|
+
Object.is(state.payload, payload));
|
|
91
|
+
}
|
|
92
|
+
export function markEventPayloadTransportStable(event, payload, transportValue, options) {
|
|
93
|
+
const parsedToken = {};
|
|
94
|
+
parsedPayloadStates.set(parsedToken, {
|
|
95
|
+
eventName: event.name,
|
|
96
|
+
payloadSchema: event.payload,
|
|
97
|
+
validate: event.payload["~standard"].validate,
|
|
98
|
+
payload,
|
|
99
|
+
});
|
|
100
|
+
const stableToken = {};
|
|
101
|
+
transportStablePayloadStates.set(stableToken, {
|
|
102
|
+
eventName: event.name,
|
|
103
|
+
payloadSchema: event.payload,
|
|
104
|
+
validate: event.payload["~standard"].validate,
|
|
105
|
+
payload: capturePayloadSnapshot(payload),
|
|
106
|
+
fingerprint: transportFingerprint(transportValue),
|
|
107
|
+
});
|
|
3
108
|
return {
|
|
4
109
|
...options,
|
|
5
|
-
[PARSED_EVENT_PAYLOAD]:
|
|
110
|
+
[PARSED_EVENT_PAYLOAD]: parsedToken,
|
|
111
|
+
[TRANSPORT_STABLE_EVENT_PAYLOAD]: stableToken,
|
|
6
112
|
};
|
|
7
113
|
}
|
|
8
|
-
export function
|
|
9
|
-
|
|
114
|
+
export function isEventPayloadTransportStable(event, payload, transportValue, options) {
|
|
115
|
+
const token = options?.[TRANSPORT_STABLE_EVENT_PAYLOAD];
|
|
116
|
+
const state = token ? transportStablePayloadStates.get(token) : undefined;
|
|
117
|
+
return (state?.eventName === event.name &&
|
|
118
|
+
state.payloadSchema === event.payload &&
|
|
119
|
+
state.validate === event.payload["~standard"].validate &&
|
|
120
|
+
matchesPayloadSnapshot(state.payload, payload) &&
|
|
121
|
+
state.fingerprint === transportFingerprint(transportValue));
|
|
10
122
|
}
|
|
11
123
|
//# sourceMappingURL=payload-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload-state.js","sourceRoot":"","sources":["../../src/events/payload-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"payload-state.js","sourceRoot":"","sources":["../../src/events/payload-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** Canonical JSON value that can cross an event transport boundary. */
|
|
2
|
+
export type EventTransportValue = null | string | number | boolean | readonly EventTransportValue[] | {
|
|
3
|
+
readonly [key: string]: EventTransportValue;
|
|
4
|
+
};
|
|
5
|
+
/** Why an event payload cannot safely cross a serialized transport. */
|
|
6
|
+
export type EventTransportErrorReason = "not-json-safe" | "not-stable";
|
|
7
|
+
/** Error thrown when an event payload cannot survive canonical JSON transport. */
|
|
8
|
+
export declare class EventTransportError extends Error {
|
|
9
|
+
/** Stable event name. */
|
|
10
|
+
readonly eventName: string;
|
|
11
|
+
/** Whether the value is not JSON-safe or changes under repeated parsing. */
|
|
12
|
+
readonly reason: EventTransportErrorReason;
|
|
13
|
+
/** Payload path associated with a JSON-safety failure. */
|
|
14
|
+
readonly path?: string;
|
|
15
|
+
constructor(args: {
|
|
16
|
+
eventName: string;
|
|
17
|
+
reason: EventTransportErrorReason;
|
|
18
|
+
message: string;
|
|
19
|
+
path?: string;
|
|
20
|
+
cause?: unknown;
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
export declare function toEventTransportValue(eventName: string, value: unknown, path?: string, seen?: WeakSet<object>): EventTransportValue;
|
|
24
|
+
export declare function eventTransportValuesEqual(left: EventTransportValue, right: EventTransportValue): boolean;
|
|
25
|
+
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/events/transport.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,MAAM,mBAAmB,GAC3B,IAAI,GACJ,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,mBAAmB,EAAE,GAC9B;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAAA;CAAE,CAAC;AAEpD,uEAAuE;AACvE,MAAM,MAAM,yBAAyB,GAAG,eAAe,GAAG,YAAY,CAAC;AAEvE,kFAAkF;AAClF,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,yBAAyB;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,IAAI,EAAE;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,yBAAyB,CAAC;QAClC,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;CASF;AAqBD,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,EACd,IAAI,SAAY,EAChB,IAAI,GAAE,OAAO,CAAC,MAAM,CAAiB,GACpC,mBAAmB,CAkJrB;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,mBAAmB,GACzB,OAAO,CA4BT"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/** Error thrown when an event payload cannot survive canonical JSON transport. */
|
|
2
|
+
export class EventTransportError extends Error {
|
|
3
|
+
/** Stable event name. */
|
|
4
|
+
eventName;
|
|
5
|
+
/** Whether the value is not JSON-safe or changes under repeated parsing. */
|
|
6
|
+
reason;
|
|
7
|
+
/** Payload path associated with a JSON-safety failure. */
|
|
8
|
+
path;
|
|
9
|
+
constructor(args) {
|
|
10
|
+
super(`Event "${args.eventName}" payload ${args.message}`, {
|
|
11
|
+
cause: args.cause,
|
|
12
|
+
});
|
|
13
|
+
this.name = "EventTransportError";
|
|
14
|
+
this.eventName = args.eventName;
|
|
15
|
+
this.reason = args.reason;
|
|
16
|
+
this.path = args.path;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function childTransportPath(path, key) {
|
|
20
|
+
return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key)
|
|
21
|
+
? `${path}.${key}`
|
|
22
|
+
: `${path}[${JSON.stringify(key)}]`;
|
|
23
|
+
}
|
|
24
|
+
function throwJsonSafetyError(args) {
|
|
25
|
+
throw new EventTransportError({
|
|
26
|
+
eventName: args.eventName,
|
|
27
|
+
reason: "not-json-safe",
|
|
28
|
+
path: args.path,
|
|
29
|
+
message: `is not transport-safe at ${args.path}: ${args.message}`,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
export function toEventTransportValue(eventName, value, path = "payload", seen = new WeakSet()) {
|
|
33
|
+
if (value === null)
|
|
34
|
+
return null;
|
|
35
|
+
if (typeof value === "string" || typeof value === "boolean")
|
|
36
|
+
return value;
|
|
37
|
+
if (typeof value === "number") {
|
|
38
|
+
if (!Number.isFinite(value)) {
|
|
39
|
+
return throwJsonSafetyError({
|
|
40
|
+
eventName,
|
|
41
|
+
path,
|
|
42
|
+
message: "numbers must be finite.",
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return Object.is(value, -0) ? 0 : value;
|
|
46
|
+
}
|
|
47
|
+
if (typeof value !== "object") {
|
|
48
|
+
return throwJsonSafetyError({
|
|
49
|
+
eventName,
|
|
50
|
+
path,
|
|
51
|
+
message: `received ${typeof value}; use null, strings, finite numbers, booleans, arrays, or plain objects.`,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
if (value instanceof Date) {
|
|
56
|
+
return throwJsonSafetyError({
|
|
57
|
+
eventName,
|
|
58
|
+
path,
|
|
59
|
+
message: "Date values are not supported; use an ISO string or number.",
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
if (seen.has(value)) {
|
|
63
|
+
return throwJsonSafetyError({
|
|
64
|
+
eventName,
|
|
65
|
+
path,
|
|
66
|
+
message: "circular references are not supported.",
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
seen.add(value);
|
|
70
|
+
if (Array.isArray(value)) {
|
|
71
|
+
const output = [];
|
|
72
|
+
const ownKeys = Reflect.ownKeys(value);
|
|
73
|
+
const hasUnsupportedKey = ownKeys.some((key) => {
|
|
74
|
+
if (key === "length")
|
|
75
|
+
return false;
|
|
76
|
+
if (typeof key !== "string")
|
|
77
|
+
return true;
|
|
78
|
+
const index = Number(key);
|
|
79
|
+
return (!Number.isInteger(index) ||
|
|
80
|
+
index < 0 ||
|
|
81
|
+
index >= value.length ||
|
|
82
|
+
String(index) !== key);
|
|
83
|
+
});
|
|
84
|
+
if (hasUnsupportedKey) {
|
|
85
|
+
return throwJsonSafetyError({
|
|
86
|
+
eventName,
|
|
87
|
+
path,
|
|
88
|
+
message: "arrays cannot contain symbol or custom properties.",
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
if (ownKeys.length !== value.length + 1) {
|
|
92
|
+
return throwJsonSafetyError({
|
|
93
|
+
eventName,
|
|
94
|
+
path,
|
|
95
|
+
message: "sparse arrays are not supported.",
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
99
|
+
const key = String(index);
|
|
100
|
+
const itemPath = `${path}[${index}]`;
|
|
101
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
102
|
+
if (!descriptor) {
|
|
103
|
+
return throwJsonSafetyError({
|
|
104
|
+
eventName,
|
|
105
|
+
path: itemPath,
|
|
106
|
+
message: "sparse arrays are not supported.",
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
if (!("value" in descriptor) || !descriptor.enumerable) {
|
|
110
|
+
return throwJsonSafetyError({
|
|
111
|
+
eventName,
|
|
112
|
+
path: itemPath,
|
|
113
|
+
message: "array items must be enumerable data properties.",
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
output.push(toEventTransportValue(eventName, descriptor.value, itemPath, seen));
|
|
117
|
+
}
|
|
118
|
+
return output;
|
|
119
|
+
}
|
|
120
|
+
const prototype = Object.getPrototypeOf(value);
|
|
121
|
+
if (prototype !== Object.prototype && prototype !== null) {
|
|
122
|
+
return throwJsonSafetyError({
|
|
123
|
+
eventName,
|
|
124
|
+
path,
|
|
125
|
+
message: "objects must be plain objects.",
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
const output = {};
|
|
129
|
+
for (const key of Reflect.ownKeys(value)) {
|
|
130
|
+
if (typeof key !== "string") {
|
|
131
|
+
return throwJsonSafetyError({
|
|
132
|
+
eventName,
|
|
133
|
+
path,
|
|
134
|
+
message: "symbol properties are not supported.",
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
const propertyPath = childTransportPath(path, key);
|
|
138
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
139
|
+
if (!descriptor || !("value" in descriptor) || !descriptor.enumerable) {
|
|
140
|
+
return throwJsonSafetyError({
|
|
141
|
+
eventName,
|
|
142
|
+
path: propertyPath,
|
|
143
|
+
message: "properties must be enumerable data properties.",
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
Object.defineProperty(output, key, {
|
|
147
|
+
configurable: true,
|
|
148
|
+
enumerable: true,
|
|
149
|
+
writable: true,
|
|
150
|
+
value: toEventTransportValue(eventName, descriptor.value, propertyPath, seen),
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
return output;
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
if (error instanceof EventTransportError)
|
|
157
|
+
throw error;
|
|
158
|
+
throw new EventTransportError({
|
|
159
|
+
eventName,
|
|
160
|
+
reason: "not-json-safe",
|
|
161
|
+
path,
|
|
162
|
+
message: `could not be inspected as transport data at ${path}.`,
|
|
163
|
+
cause: error,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
finally {
|
|
167
|
+
seen.delete(value);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
export function eventTransportValuesEqual(left, right) {
|
|
171
|
+
if (left === right)
|
|
172
|
+
return true;
|
|
173
|
+
if (left === null || right === null || typeof left !== typeof right) {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
if (Array.isArray(left) || Array.isArray(right)) {
|
|
177
|
+
if (!Array.isArray(left) || !Array.isArray(right))
|
|
178
|
+
return false;
|
|
179
|
+
return (left.length === right.length &&
|
|
180
|
+
left.every((value, index) => eventTransportValuesEqual(value, right[index])));
|
|
181
|
+
}
|
|
182
|
+
if (typeof left !== "object" || typeof right !== "object")
|
|
183
|
+
return false;
|
|
184
|
+
const leftRecord = left;
|
|
185
|
+
const rightRecord = right;
|
|
186
|
+
const leftKeys = Object.keys(leftRecord).sort();
|
|
187
|
+
const rightKeys = Object.keys(rightRecord).sort();
|
|
188
|
+
return (leftKeys.length === rightKeys.length &&
|
|
189
|
+
leftKeys.every((key, index) => key === rightKeys[index] &&
|
|
190
|
+
eventTransportValuesEqual(leftRecord[key], rightRecord[key])));
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=transport.js.map
|