@beignet/core 0.0.37 → 0.0.38

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 (111) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +108 -19
  3. package/dist/client/client.d.ts.map +1 -1
  4. package/dist/client/client.js +6 -28
  5. package/dist/client/client.js.map +1 -1
  6. package/dist/error-reporting/index.d.ts +42 -1
  7. package/dist/error-reporting/index.d.ts.map +1 -1
  8. package/dist/error-reporting/index.js +60 -0
  9. package/dist/error-reporting/index.js.map +1 -1
  10. package/dist/error-reporting/internal.d.ts +11 -0
  11. package/dist/error-reporting/internal.d.ts.map +1 -0
  12. package/dist/error-reporting/internal.js +36 -0
  13. package/dist/error-reporting/internal.js.map +1 -0
  14. package/dist/events/index.d.ts +9 -4
  15. package/dist/events/index.d.ts.map +1 -1
  16. package/dist/events/index.js +5 -3
  17. package/dist/events/index.js.map +1 -1
  18. package/dist/idempotency/index.d.ts +25 -2
  19. package/dist/idempotency/index.d.ts.map +1 -1
  20. package/dist/idempotency/index.js +35 -5
  21. package/dist/idempotency/index.js.map +1 -1
  22. package/dist/jobs/index.d.ts +26 -4
  23. package/dist/jobs/index.d.ts.map +1 -1
  24. package/dist/jobs/index.js +51 -6
  25. package/dist/jobs/index.js.map +1 -1
  26. package/dist/locks/index.d.ts +19 -1
  27. package/dist/locks/index.d.ts.map +1 -1
  28. package/dist/locks/index.js +27 -12
  29. package/dist/locks/index.js.map +1 -1
  30. package/dist/outbox/index.d.ts +23 -4
  31. package/dist/outbox/index.d.ts.map +1 -1
  32. package/dist/outbox/index.js +71 -23
  33. package/dist/outbox/index.js.map +1 -1
  34. package/dist/ports/events.d.ts +5 -5
  35. package/dist/ports/events.d.ts.map +1 -1
  36. package/dist/ports/index.d.ts +4 -4
  37. package/dist/ports/unbound.js +1 -1
  38. package/dist/ports/unbound.js.map +1 -1
  39. package/dist/ports/unit-of-work.d.ts +4 -1
  40. package/dist/ports/unit-of-work.d.ts.map +1 -1
  41. package/dist/ports/unit-of-work.js +4 -3
  42. package/dist/ports/unit-of-work.js.map +1 -1
  43. package/dist/query-codec.d.ts +3 -0
  44. package/dist/query-codec.d.ts.map +1 -0
  45. package/dist/query-codec.js +110 -0
  46. package/dist/query-codec.js.map +1 -0
  47. package/dist/server/hooks/cors.d.ts +3 -2
  48. package/dist/server/hooks/cors.d.ts.map +1 -1
  49. package/dist/server/hooks/cors.js +7 -3
  50. package/dist/server/hooks/cors.js.map +1 -1
  51. package/dist/server/hooks/error-reporting.d.ts +8 -0
  52. package/dist/server/hooks/error-reporting.d.ts.map +1 -1
  53. package/dist/server/hooks/error-reporting.js +55 -25
  54. package/dist/server/hooks/error-reporting.js.map +1 -1
  55. package/dist/server/hooks/idempotency.d.ts +1 -1
  56. package/dist/server/hooks/idempotency.d.ts.map +1 -1
  57. package/dist/server/hooks/idempotency.js +30 -9
  58. package/dist/server/hooks/idempotency.js.map +1 -1
  59. package/dist/server/request-executor.d.ts.map +1 -1
  60. package/dist/server/request-executor.js +4 -10
  61. package/dist/server/request-executor.js.map +1 -1
  62. package/dist/server/request-preparation.d.ts.map +1 -1
  63. package/dist/server/request-preparation.js +3 -1
  64. package/dist/server/request-preparation.js.map +1 -1
  65. package/dist/server/response-finalization.d.ts +3 -1
  66. package/dist/server/response-finalization.d.ts.map +1 -1
  67. package/dist/server/response-finalization.js +24 -2
  68. package/dist/server/response-finalization.js.map +1 -1
  69. package/dist/server/server.js +1 -1
  70. package/dist/server/server.js.map +1 -1
  71. package/dist/testing/index.d.ts +5 -5
  72. package/dist/testing/index.d.ts.map +1 -1
  73. package/dist/testing/index.js +9 -4
  74. package/dist/testing/index.js.map +1 -1
  75. package/dist/tracing/index.d.ts +27 -0
  76. package/dist/tracing/index.d.ts.map +1 -1
  77. package/dist/tracing/index.js +96 -0
  78. package/dist/tracing/index.js.map +1 -1
  79. package/dist/uploads/index.d.ts.map +1 -1
  80. package/dist/uploads/index.js +39 -6
  81. package/dist/uploads/index.js.map +1 -1
  82. package/dist/webhooks/index.d.ts +2 -1
  83. package/dist/webhooks/index.d.ts.map +1 -1
  84. package/dist/webhooks/index.js +25 -1
  85. package/dist/webhooks/index.js.map +1 -1
  86. package/package.json +1 -1
  87. package/skills/app-architecture/SKILL.md +19 -1
  88. package/src/client/client.ts +6 -31
  89. package/src/error-reporting/index.ts +111 -0
  90. package/src/error-reporting/internal.ts +47 -0
  91. package/src/events/index.ts +20 -4
  92. package/src/idempotency/index.ts +81 -7
  93. package/src/jobs/index.ts +85 -6
  94. package/src/locks/index.ts +65 -16
  95. package/src/outbox/index.ts +119 -27
  96. package/src/ports/events.ts +8 -1
  97. package/src/ports/index.ts +4 -4
  98. package/src/ports/unbound.ts +1 -1
  99. package/src/ports/unit-of-work.ts +10 -3
  100. package/src/query-codec.ts +130 -0
  101. package/src/server/hooks/cors.ts +10 -3
  102. package/src/server/hooks/error-reporting.ts +79 -23
  103. package/src/server/hooks/idempotency.ts +36 -10
  104. package/src/server/request-executor.ts +4 -12
  105. package/src/server/request-preparation.ts +4 -2
  106. package/src/server/response-finalization.ts +36 -5
  107. package/src/server/server.ts +1 -1
  108. package/src/testing/index.ts +25 -14
  109. package/src/tracing/index.ts +120 -0
  110. package/src/uploads/index.ts +44 -6
  111. package/src/webhooks/index.ts +34 -2
@@ -3,6 +3,9 @@
3
3
  *
4
4
  * Provider-neutral error reporting primitives for Beignet applications.
5
5
  */
6
+ import { redactValue } from "../ports/redaction.js";
7
+ import { DEFAULT_ERROR_REPORTING_TIMEOUT_MS, errorReportingObserverTimeout, runErrorReportingOperation, } from "./internal.js";
8
+ export { DEFAULT_ERROR_REPORTING_TIMEOUT_MS, ErrorReportingTimeoutError, } from "./internal.js";
6
9
  /**
7
10
  * Create a no-op reporter for apps that want to bind the port without sending
8
11
  * events.
@@ -95,6 +98,63 @@ export function reportException(reporter, error, options) {
95
98
  export function reportMessage(reporter, message, options) {
96
99
  return reporter.captureMessage(message, options);
97
100
  }
101
+ /**
102
+ * Best-effort exception capture for runtime boundaries.
103
+ *
104
+ * Missing reporters, reporter failures, and reporter-failure observer errors
105
+ * resolve to `undefined` so diagnostics cannot replace application behavior.
106
+ */
107
+ export async function tryReportException(options) {
108
+ const reporterSource = options.reporter;
109
+ if (!reporterSource)
110
+ return undefined;
111
+ const timeoutMs = options.timeoutMs ?? DEFAULT_ERROR_REPORTING_TIMEOUT_MS;
112
+ try {
113
+ return await runErrorReportingOperation(async () => {
114
+ const reporter = typeof reporterSource === "function"
115
+ ? await reporterSource()
116
+ : reporterSource;
117
+ if (!reporter)
118
+ return undefined;
119
+ return reporter.captureException(options.error, options.reportOptions);
120
+ }, timeoutMs);
121
+ }
122
+ catch (reportingError) {
123
+ try {
124
+ if (options.onReporterError) {
125
+ await runErrorReportingOperation(() => options.onReporterError?.({
126
+ error: options.error,
127
+ reportingError,
128
+ }), errorReportingObserverTimeout(timeoutMs));
129
+ }
130
+ }
131
+ catch {
132
+ // Reporter failure observers must not replace application behavior.
133
+ }
134
+ return undefined;
135
+ }
136
+ }
137
+ /**
138
+ * Redact structured error-report metadata with Beignet's shared sensitive-key
139
+ * rules. The original exception is intentionally not part of this operation.
140
+ */
141
+ export function redactErrorReportOptions(options, redactionOptions = {}) {
142
+ return {
143
+ ...options,
144
+ user: options.user
145
+ ? redactValue(options.user, redactionOptions)
146
+ : options.user,
147
+ tags: options.tags
148
+ ? redactValue(options.tags, redactionOptions)
149
+ : options.tags,
150
+ contexts: options.contexts
151
+ ? redactValue(options.contexts, redactionOptions)
152
+ : options.contexts,
153
+ extra: options.extra
154
+ ? redactValue(options.extra, redactionOptions)
155
+ : options.extra,
156
+ };
157
+ }
98
158
  function withAmbientState(port, options) {
99
159
  const contexts = port.contexts.size > 0 ? Object.fromEntries(port.contexts) : undefined;
100
160
  const hasTags = Object.keys(port.tags).length > 0;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/error-reporting/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/error-reporting/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ type MaybePromise<T> = T | Promise<T>;
2
+ export declare const DEFAULT_ERROR_REPORTING_TIMEOUT_MS = 1000;
3
+ export declare class ErrorReportingTimeoutError extends Error {
4
+ readonly code: "ERROR_REPORTING_TIMEOUT";
5
+ readonly timeoutMs: number;
6
+ constructor(timeoutMs: number);
7
+ }
8
+ export declare function errorReportingObserverTimeout(timeoutMs: number | false): number | false;
9
+ export declare function runErrorReportingOperation<T>(operation: () => MaybePromise<T>, timeoutMs?: number | false): Promise<T>;
10
+ export {};
11
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/error-reporting/internal.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,eAAO,MAAM,kCAAkC,OAAO,CAAC;AAEvD,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,IAAI,EAAG,yBAAyB,CAAU;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,SAAS,EAAE,MAAM;CAK9B;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,GAAG,KAAK,GACxB,MAAM,GAAG,KAAK,CAIhB;AAED,wBAAsB,0BAA0B,CAAC,CAAC,EAChD,SAAS,EAAE,MAAM,YAAY,CAAC,CAAC,CAAC,EAChC,SAAS,GAAE,MAAM,GAAG,KAA0C,GAC7D,OAAO,CAAC,CAAC,CAAC,CAoBZ"}
@@ -0,0 +1,36 @@
1
+ export const DEFAULT_ERROR_REPORTING_TIMEOUT_MS = 1000;
2
+ export class ErrorReportingTimeoutError extends Error {
3
+ code = "ERROR_REPORTING_TIMEOUT";
4
+ timeoutMs;
5
+ constructor(timeoutMs) {
6
+ super(`Error reporting timed out after ${timeoutMs}ms.`);
7
+ this.name = "ErrorReportingTimeoutError";
8
+ this.timeoutMs = timeoutMs;
9
+ }
10
+ }
11
+ export function errorReportingObserverTimeout(timeoutMs) {
12
+ return timeoutMs === false || (Number.isFinite(timeoutMs) && timeoutMs > 0)
13
+ ? timeoutMs
14
+ : DEFAULT_ERROR_REPORTING_TIMEOUT_MS;
15
+ }
16
+ export async function runErrorReportingOperation(operation, timeoutMs = DEFAULT_ERROR_REPORTING_TIMEOUT_MS) {
17
+ if (timeoutMs === false)
18
+ return operation();
19
+ if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {
20
+ throw new TypeError("Error reporting timeoutMs must be a positive number.");
21
+ }
22
+ let timeout;
23
+ try {
24
+ return await Promise.race([
25
+ Promise.resolve().then(operation),
26
+ new Promise((_, reject) => {
27
+ timeout = setTimeout(() => reject(new ErrorReportingTimeoutError(timeoutMs)), timeoutMs);
28
+ }),
29
+ ]);
30
+ }
31
+ finally {
32
+ if (timeout !== undefined)
33
+ clearTimeout(timeout);
34
+ }
35
+ }
36
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/error-reporting/internal.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kCAAkC,GAAG,IAAI,CAAC;AAEvD,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC1C,IAAI,GAAG,yBAAkC,CAAC;IAC1C,SAAS,CAAS;IAE3B,YAAY,SAAiB;QAC3B,KAAK,CAAC,mCAAmC,SAAS,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,UAAU,6BAA6B,CAC3C,SAAyB;IAEzB,OAAO,SAAS,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC;QACzE,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,kCAAkC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,SAAgC,EAChC,YAA4B,kCAAkC;IAE9D,IAAI,SAAS,KAAK,KAAK;QAAE,OAAO,SAAS,EAAE,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,OAAkD,CAAC;IACvD,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;YACxB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;YACjC,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBAC/B,OAAO,GAAG,UAAU,CAClB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,0BAA0B,CAAC,SAAS,CAAC,CAAC,EACvD,SAAS,CACV,CAAC;YACJ,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,IAAI,OAAO,KAAK,SAAS;YAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { StandardSchemaV1 } from "@standard-schema/spec";
2
- import type { TracingPort } from "../tracing/index.js";
2
+ import { type TraceCarrier, type TracingPort } from "../tracing/index.js";
3
3
  /**
4
4
  * Any Standard Schema compatible validator.
5
5
  */
@@ -42,6 +42,11 @@ export interface EventDef<Name extends string = string, Payload extends Standard
42
42
  * Infer the parsed payload type for an event definition.
43
43
  */
44
44
  export type InferEventPayload<E extends EventPayloadDef> = E["payload"] extends StandardSchemaV1<unknown, infer Output> ? Output : never;
45
+ /** Metadata propagated with an event delivery. */
46
+ export interface EventPublishOptions {
47
+ /** Versioned trace context captured by the event producer. */
48
+ trace?: TraceCarrier;
49
+ }
45
50
  /**
46
51
  * Options for `defineEvent(...)`.
47
52
  */
@@ -113,11 +118,11 @@ export interface EventBusLike {
113
118
  /**
114
119
  * Publish an event payload.
115
120
  */
116
- publish<E extends EventPayloadDef>(event: E, payload: InferEventPayload<E>): MaybePromise<void>;
121
+ publish<E extends EventPayloadDef>(event: E, payload: InferEventPayload<E>, options?: EventPublishOptions): MaybePromise<void>;
117
122
  /**
118
123
  * Subscribe to an event and return an unsubscribe function.
119
124
  */
120
- subscribe<E extends EventPayloadDef>(event: E, handler: (payload: InferEventPayload<E>) => MaybePromise<void>): () => void;
125
+ subscribe<E extends EventPayloadDef>(event: E, handler: (payload: InferEventPayload<E>, options?: EventPublishOptions) => MaybePromise<void>): () => void;
121
126
  }
122
127
  /**
123
128
  * Options for `registerListeners(...)`.
@@ -174,7 +179,7 @@ export declare function parseEventPayload<E extends EventPayloadDef>(event: E, p
174
179
  /**
175
180
  * Validate an event payload and publish it through an event bus.
176
181
  */
177
- export declare function publishEvent<E extends EventPayloadDef>(eventBus: EventBusLike, event: E, payload: InferEventPayload<E>): Promise<void>;
182
+ export declare function publishEvent<E extends EventPayloadDef>(eventBus: EventBusLike, event: E, payload: InferEventPayload<E>, options?: EventPublishOptions): Promise<void>;
178
183
  /**
179
184
  * Register listeners against an event bus and return an unsubscribe function.
180
185
  *
@@ -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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"}
@@ -1,4 +1,5 @@
1
1
  import { runWithResolvedTracingContext } from "../tracing/execution.js";
2
+ import { parseTraceCarrier, } from "../tracing/index.js";
2
3
  /**
3
4
  * Error thrown when event payload validation fails.
4
5
  */
@@ -76,9 +77,9 @@ export async function parseEventPayload(event, payload) {
76
77
  /**
77
78
  * Validate an event payload and publish it through an event bus.
78
79
  */
79
- export async function publishEvent(eventBus, event, payload) {
80
+ export async function publishEvent(eventBus, event, payload, options) {
80
81
  const parsed = await parseEventPayload(event, payload);
81
- await eventBus.publish(event, parsed);
82
+ await eventBus.publish(event, parsed, options);
82
83
  }
83
84
  /**
84
85
  * Register listeners against an event bus and return an unsubscribe function.
@@ -87,7 +88,7 @@ export async function publishEvent(eventBus, event, payload) {
87
88
  * resolved per delivery when `options.ctx` is a factory.
88
89
  */
89
90
  export function registerListeners(eventBus, listeners, options = {}) {
90
- const unsubscribes = listeners.map((listener) => eventBus.subscribe(listener.event, async (rawPayload) => {
91
+ const unsubscribes = listeners.map((listener) => eventBus.subscribe(listener.event, async (rawPayload, publishOptions) => {
91
92
  try {
92
93
  const payload = await parseEventPayload(listener.event, rawPayload);
93
94
  const traceAttributes = {
@@ -101,6 +102,7 @@ export function registerListeners(eventBus, listeners, options = {}) {
101
102
  name: `beignet.listener ${listener.name}`,
102
103
  type: "listener",
103
104
  kind: "consumer",
105
+ parent: parseTraceCarrier(publishOptions?.trace),
104
106
  attributes: traceAttributes,
105
107
  metricAttributes: traceAttributes,
106
108
  },
@@ -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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"}
@@ -22,6 +22,8 @@ export type IdempotencyScope = string | Record<string, IdempotencyScopeValue>;
22
22
  * Scope mode that HTTP hooks can use when deriving an idempotency scope.
23
23
  */
24
24
  export type IdempotencyScopeMode = "global" | "actor" | "tenant" | "actor-tenant";
25
+ /** Default lifetime for unfinished idempotency reservations. */
26
+ export declare const DEFAULT_IDEMPOTENCY_RESERVATION_TTL_SEC = 300;
25
27
  /**
26
28
  * Contract metadata for idempotency-aware routes.
27
29
  *
@@ -48,9 +50,15 @@ export interface IdempotencyMeta {
48
50
  */
49
51
  scope?: IdempotencyScopeMode;
50
52
  /**
51
- * Time-to-live for reserved and completed keys.
53
+ * Time-to-live for completed replay results.
52
54
  */
53
55
  ttlSec?: number;
56
+ /**
57
+ * Time-to-live for unfinished reservations.
58
+ *
59
+ * @default 300
60
+ */
61
+ reservationTtlSec?: number;
54
62
  }
55
63
  /**
56
64
  * Input for reserving an idempotency key.
@@ -73,9 +81,15 @@ export interface IdempotencyReserveInput {
73
81
  */
74
82
  fingerprint: string;
75
83
  /**
76
- * Optional key time-to-live in seconds.
84
+ * Optional time-to-live for the completed replay result.
77
85
  */
78
86
  ttlSec?: number;
87
+ /**
88
+ * Time-to-live for unfinished work before a successor may reserve the key.
89
+ *
90
+ * @default 300
91
+ */
92
+ reservationTtlSec?: number;
79
93
  }
80
94
  /**
81
95
  * Result of reserving an idempotency key.
@@ -86,6 +100,7 @@ export type IdempotencyReservation = {
86
100
  key: string;
87
101
  scopeKey: string;
88
102
  fingerprint: string;
103
+ reservationToken: string;
89
104
  reservedAt: Date;
90
105
  expiresAt: Date | null;
91
106
  } | {
@@ -137,6 +152,8 @@ export interface IdempotencyCompleteInput {
137
152
  * Fingerprint that must match the reserved operation.
138
153
  */
139
154
  fingerprint: string;
155
+ /** Opaque identity returned by the matching reserved result. */
156
+ reservationToken: string;
140
157
  /**
141
158
  * Result to replay for future matching requests.
142
159
  */
@@ -162,6 +179,8 @@ export interface IdempotencyFailInput {
162
179
  * Fingerprint that must match the reserved operation.
163
180
  */
164
181
  fingerprint: string;
182
+ /** Opaque identity returned by the matching reserved result. */
183
+ reservationToken: string;
165
184
  /**
166
185
  * Error that caused the protected operation to fail.
167
186
  */
@@ -248,6 +267,8 @@ export interface MemoryIdempotencyEntry {
248
267
  * Fingerprint of the logical command payload.
249
268
  */
250
269
  fingerprint: string;
270
+ /** Opaque identity of the current in-progress reservation. */
271
+ reservationToken: string;
251
272
  /**
252
273
  * Memory store status.
253
274
  */
@@ -339,6 +360,8 @@ export interface MemoryIdempotencyStoreOptions {
339
360
  * system clock.
340
361
  */
341
362
  now?: () => Date;
363
+ /** Token factory used for deterministic tests. */
364
+ createReservationToken?: () => string;
342
365
  }
343
366
  /**
344
367
  * Create an in-memory idempotency store for tests and local examples.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/idempotency/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,CAAC;AAEd;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,cAAc,CAAC;AAEnB;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAE7B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAC9B;IACE,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB,GACD;IACE,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,IAAI,CAAC;IAClB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB,GACD;IACE,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB,GACD;IACE,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB,CAAC;AAEN;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEzE;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,MAAM,CAC5C,SAAQ,uBAAuB;IAC/B;;OAEG;IACH,GAAG,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IAChC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mCAAmC;IAClD;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACpD;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,EAAE,aAAa,GAAG,WAAW,CAAC;IACpC;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,UAAU,EAAE,IAAI,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;gBAEzB,IAAI,EAAE;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,mBAAmB,EAAE,MAAM,CAAC;KAC7B;CAWF;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;CASvE;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;CASvE;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAqCD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAClC,MAAM,CAUR;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B,GAAG,MAAM,CAcT;AAsDD;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,6BAAkC,GAC1C,sBAAsB,CAiFxB;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAC1C,WAAW,EAAE,eAAe,EAC5B,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,CAsDjB;AAsGD;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,mCAAwC,GAChD,OAAO,CAAC,MAAM,CAAC,CAejB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/idempotency/index.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@
3
3
  *
4
4
  * Idempotency primitives for retry-safe commands, webhooks, and jobs.
5
5
  */
6
+ /** Default lifetime for unfinished idempotency reservations. */
7
+ export const DEFAULT_IDEMPOTENCY_RESERVATION_TTL_SEC = 300;
6
8
  /**
7
9
  * Error thrown when an idempotency key is reused with a different fingerprint.
8
10
  */
@@ -170,6 +172,7 @@ function reservationFromRecord(record, receivedFingerprint) {
170
172
  */
171
173
  export function createMemoryIdempotencyStore(options = {}) {
172
174
  const storeNow = options.now ?? (() => new Date());
175
+ const createReservationToken = options.createReservationToken ?? createRandomReservationToken;
173
176
  const records = new Map();
174
177
  return {
175
178
  get entries() {
@@ -180,6 +183,7 @@ export function createMemoryIdempotencyStore(options = {}) {
180
183
  assertNonEmptyString("key", input.key);
181
184
  assertNonEmptyString("fingerprint", input.fingerprint);
182
185
  assertTtl(input.ttlSec);
186
+ assertTtl(input.reservationTtlSec);
183
187
  const now = storeNow();
184
188
  const storageKey = createIdempotencyStorageKey(input);
185
189
  const existing = records.get(storageKey);
@@ -194,9 +198,11 @@ export function createMemoryIdempotencyStore(options = {}) {
194
198
  key: input.key,
195
199
  scopeKey: normalizeIdempotencyScope(input.scope),
196
200
  fingerprint: input.fingerprint,
201
+ reservationToken: createReservationToken(),
202
+ replayTtlSec: input.ttlSec,
197
203
  status: "in-progress",
198
204
  reservedAt: now,
199
- expiresAt: resolveExpiresAt(input.ttlSec, now),
205
+ expiresAt: resolveExpiresAt(input.reservationTtlSec ?? DEFAULT_IDEMPOTENCY_RESERVATION_TTL_SEC, now),
200
206
  };
201
207
  records.set(storageKey, record);
202
208
  return {
@@ -205,6 +211,7 @@ export function createMemoryIdempotencyStore(options = {}) {
205
211
  key: record.key,
206
212
  scopeKey: record.scopeKey,
207
213
  fingerprint: record.fingerprint,
214
+ reservationToken: record.reservationToken,
208
215
  reservedAt: record.reservedAt,
209
216
  expiresAt: record.expiresAt,
210
217
  };
@@ -215,11 +222,17 @@ export function createMemoryIdempotencyStore(options = {}) {
215
222
  assertNonEmptyString("fingerprint", input.fingerprint);
216
223
  const storageKey = createIdempotencyStorageKey(input);
217
224
  const existing = records.get(storageKey);
218
- if (!existing || existing.fingerprint !== input.fingerprint)
225
+ assertNonEmptyString("reservationToken", input.reservationToken);
226
+ if (!existing ||
227
+ existing.fingerprint !== input.fingerprint ||
228
+ existing.reservationToken !== input.reservationToken ||
229
+ existing.status !== "in-progress") {
219
230
  return;
231
+ }
220
232
  existing.status = "completed";
221
233
  existing.result = input.result;
222
234
  existing.completedAt = storeNow();
235
+ existing.expiresAt = resolveExpiresAt(existing.replayTtlSec, existing.completedAt);
223
236
  },
224
237
  async fail(input) {
225
238
  assertNonEmptyString("namespace", input.namespace);
@@ -227,10 +240,13 @@ export function createMemoryIdempotencyStore(options = {}) {
227
240
  assertNonEmptyString("fingerprint", input.fingerprint);
228
241
  const storageKey = createIdempotencyStorageKey(input);
229
242
  const existing = records.get(storageKey);
230
- if (!existing || existing.fingerprint !== input.fingerprint)
231
- return;
232
- if (existing.status === "completed")
243
+ assertNonEmptyString("reservationToken", input.reservationToken);
244
+ if (!existing ||
245
+ existing.fingerprint !== input.fingerprint ||
246
+ existing.reservationToken !== input.reservationToken ||
247
+ existing.status === "completed") {
233
248
  return;
249
+ }
234
250
  records.delete(storageKey);
235
251
  },
236
252
  clear() {
@@ -253,6 +269,7 @@ export async function runIdempotently(idempotency, options) {
253
269
  scope: options.scope,
254
270
  fingerprint: options.fingerprint,
255
271
  ttlSec: options.ttlSec,
272
+ reservationTtlSec: options.reservationTtlSec,
256
273
  };
257
274
  const reservation = await idempotency.reserve(operation);
258
275
  switch (reservation.status) {
@@ -279,6 +296,7 @@ export async function runIdempotently(idempotency, options) {
279
296
  key: operation.key,
280
297
  scope: operation.scope,
281
298
  fingerprint: operation.fingerprint,
299
+ reservationToken: reservation.reservationToken,
282
300
  error,
283
301
  });
284
302
  throw error;
@@ -288,6 +306,7 @@ export async function runIdempotently(idempotency, options) {
288
306
  key: operation.key,
289
307
  scope: operation.scope,
290
308
  fingerprint: operation.fingerprint,
309
+ reservationToken: reservation.reservationToken,
291
310
  result,
292
311
  });
293
312
  return result;
@@ -298,6 +317,17 @@ export async function runIdempotently(idempotency, options) {
298
317
  }
299
318
  }
300
319
  }
320
+ function createRandomReservationToken() {
321
+ if (typeof globalThis.crypto?.randomUUID === "function") {
322
+ return globalThis.crypto.randomUUID();
323
+ }
324
+ const bytes = new Uint8Array(16);
325
+ globalThis.crypto?.getRandomValues?.(bytes);
326
+ if (bytes.some((value) => value !== 0)) {
327
+ return Array.from(bytes, (value) => value.toString(16).padStart(2, "0")).join("");
328
+ }
329
+ return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
330
+ }
301
331
  function normalizeOmitPath(path) {
302
332
  if (typeof path === "string")
303
333
  return path.split(".").filter(Boolean);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/idempotency/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/idempotency/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { StandardSchemaV1 } from "@standard-schema/spec";
2
2
  import type { LeaseMetadata, LocksPort } from "../locks/index.js";
3
- import type { TracingPort } from "../tracing/index.js";
3
+ import { type TraceCarrier, type TracingPort } from "../tracing/index.js";
4
4
  /**
5
5
  * Any Standard Schema compatible validator.
6
6
  */
@@ -470,6 +470,26 @@ export interface InlineJobDispatcherOptions<Ctx> {
470
470
  */
471
471
  hooks?: readonly JobHook<JobDef<string, StandardSchema, Ctx>, Ctx>[];
472
472
  }
473
+ /** Metadata propagated when a job is dispatched. */
474
+ export interface JobDispatchOptions {
475
+ /** Versioned trace context captured by the job producer. */
476
+ trace?: TraceCarrier;
477
+ }
478
+ /** Parsed payload and propagation metadata from a job transport envelope. */
479
+ export interface ParsedJobTransportEnvelope {
480
+ payload: unknown;
481
+ trace?: TraceCarrier;
482
+ }
483
+ /**
484
+ * Wrap a job payload with transport metadata when a trace is present.
485
+ * Payloads without metadata retain their legacy wire shape.
486
+ */
487
+ export declare function createJobTransportEnvelope(payload: unknown, options?: JobDispatchOptions): unknown;
488
+ /**
489
+ * Decode a Beignet job transport envelope while accepting legacy raw payloads.
490
+ * Unknown or malformed trace metadata is ignored without dropping the payload.
491
+ */
492
+ export declare function parseJobTransportEnvelope(value: unknown): ParsedJobTransportEnvelope;
473
493
  /**
474
494
  * Well-known symbol under which the inline dispatcher exposes a
475
495
  * single-attempt dispatch. Delivery systems that own execution retries
@@ -482,7 +502,7 @@ export declare const SINGLE_ATTEMPT_DISPATCH: unique symbol;
482
502
  * Metadata passed to a single-attempt dispatch when another delivery layer
483
503
  * owns retry scheduling.
484
504
  */
485
- export interface SingleAttemptJobDispatchOptions {
505
+ export interface SingleAttemptJobDispatchOptions extends JobDispatchOptions {
486
506
  /**
487
507
  * One-based delivery attempt.
488
508
  */
@@ -501,7 +521,7 @@ export type SingleAttemptJobDispatch = <J extends JobDef>(job: J, payload: Infer
501
521
  * Job dispatcher shape accepted by job wrappers.
502
522
  */
503
523
  export interface JobDispatcher {
504
- dispatch<J extends JobDef>(job: J, payload: InferJobPayload<J>): MaybePromise<void>;
524
+ dispatch<J extends JobDef>(job: J, payload: InferJobPayload<J>, options?: JobDispatchOptions): MaybePromise<void>;
505
525
  }
506
526
  /**
507
527
  * Arguments passed when a unique job dispatch is suppressed.
@@ -563,7 +583,7 @@ export interface InlineJobDispatcher<Ctx = unknown> {
563
583
  * Validate a payload and run the job handler inline, honoring the job's
564
584
  * declared retry policy before failing.
565
585
  */
566
- dispatch<J extends JobDef<string, StandardSchema, Ctx>>(job: J, payload: InferJobPayload<J>): Promise<void>;
586
+ dispatch<J extends JobDef<string, StandardSchema, Ctx>>(job: J, payload: InferJobPayload<J>, options?: JobDispatchOptions): Promise<void>;
567
587
  }
568
588
  /**
569
589
  * Context-bound job helper factory.
@@ -678,6 +698,8 @@ export interface RunJobHandlerOptions<J extends JobDef<string, StandardSchema, C
678
698
  ctx: Ctx | (() => MaybePromise<Ctx>);
679
699
  /** Runtime tracing port used before a lazy context factory runs. */
680
700
  tracing?: TracingPort;
701
+ /** Trace context captured by the dispatching process. */
702
+ trace?: TraceCarrier;
681
703
  /**
682
704
  * Runner-level hooks. These wrap job-local hooks.
683
705
  */