@beignet/core 0.0.33 → 0.0.35
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 +207 -30
- package/dist/agent-capabilities/index.d.ts +167 -0
- package/dist/agent-capabilities/index.d.ts.map +1 -0
- package/dist/agent-capabilities/index.js +275 -0
- package/dist/agent-capabilities/index.js.map +1 -0
- package/dist/application/index.d.ts +2 -2
- package/dist/application/index.d.ts.map +1 -1
- package/dist/application/index.js +13 -3
- package/dist/application/index.js.map +1 -1
- package/dist/client/client.d.ts +2 -0
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +33 -16
- package/dist/client/client.js.map +1 -1
- package/dist/contracts/contract-builder.d.ts +5 -7
- package/dist/contracts/contract-builder.d.ts.map +1 -1
- package/dist/contracts/contract-builder.js +3 -18
- package/dist/contracts/contract-builder.js.map +1 -1
- package/dist/contracts/contract-group.d.ts +2 -2
- package/dist/contracts/contract-group.d.ts.map +1 -1
- package/dist/contracts/contract-group.js +2 -1
- package/dist/contracts/contract-group.js.map +1 -1
- package/dist/contracts/metadata.d.ts +3 -0
- package/dist/contracts/metadata.d.ts.map +1 -0
- package/dist/contracts/metadata.js +14 -0
- package/dist/contracts/metadata.js.map +1 -0
- package/dist/contracts/types.d.ts +20 -0
- package/dist/contracts/types.d.ts.map +1 -1
- package/dist/contracts/types.js.map +1 -1
- package/dist/events/index.d.ts +4 -4
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +5 -5
- package/dist/events/index.js.map +1 -1
- package/dist/flags/index.d.ts +0 -4
- package/dist/flags/index.d.ts.map +1 -1
- package/dist/flags/index.js +0 -4
- package/dist/flags/index.js.map +1 -1
- package/dist/idempotency/index.d.ts.map +1 -1
- package/dist/idempotency/index.js +14 -9
- package/dist/idempotency/index.js.map +1 -1
- package/dist/jobs/index.d.ts.map +1 -1
- package/dist/jobs/index.js +10 -4
- package/dist/jobs/index.js.map +1 -1
- package/dist/notifications/index.d.ts +194 -10
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +397 -59
- package/dist/notifications/index.js.map +1 -1
- package/dist/openapi/index.js +15 -8
- package/dist/openapi/index.js.map +1 -1
- package/dist/ports/auth.d.ts +2 -0
- package/dist/ports/auth.d.ts.map +1 -1
- package/dist/ports/auth.js +2 -0
- package/dist/ports/auth.js.map +1 -1
- package/dist/ports/events.d.ts +2 -2
- package/dist/ports/index.d.ts +1 -1
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js +1 -1
- package/dist/ports/index.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 +10 -2
- package/dist/providers/provider.d.ts.map +1 -1
- package/dist/providers/provider.js.map +1 -1
- package/dist/schedules/index.d.ts +6 -13
- package/dist/schedules/index.d.ts.map +1 -1
- package/dist/schedules/index.js +24 -44
- package/dist/schedules/index.js.map +1 -1
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/request-executor.d.ts +72 -0
- package/dist/server/request-executor.d.ts.map +1 -0
- package/dist/server/request-executor.js +781 -0
- package/dist/server/request-executor.js.map +1 -0
- package/dist/server/request-preparation.d.ts +39 -0
- package/dist/server/request-preparation.d.ts.map +1 -0
- package/dist/server/request-preparation.js +248 -0
- package/dist/server/request-preparation.js.map +1 -0
- package/dist/server/response-finalization.d.ts +34 -0
- package/dist/server/response-finalization.d.ts.map +1 -0
- package/dist/server/response-finalization.js +279 -0
- package/dist/server/response-finalization.js.map +1 -0
- package/dist/server/route-definitions.d.ts +139 -0
- package/dist/server/route-definitions.d.ts.map +1 -0
- package/dist/server/route-definitions.js +94 -0
- package/dist/server/route-definitions.js.map +1 -0
- package/dist/server/route-matching.d.ts +15 -0
- package/dist/server/route-matching.d.ts.map +1 -0
- package/dist/server/route-matching.js +46 -0
- package/dist/server/route-matching.js.map +1 -0
- package/dist/server/server.d.ts +6 -157
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +29 -1340
- package/dist/server/server.js.map +1 -1
- package/dist/server/use-case-route.d.ts +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/tracing/index.d.ts +1 -1
- package/dist/tracing/index.d.ts.map +1 -1
- package/dist/tracing/index.js.map +1 -1
- package/dist/uploads/client.js +4 -7
- package/dist/uploads/client.js.map +1 -1
- package/dist/uploads/index.d.ts.map +1 -1
- package/dist/uploads/index.js +59 -12
- package/dist/uploads/index.js.map +1 -1
- package/package.json +5 -5
- package/skills/app-architecture/SKILL.md +31 -1
- package/src/agent-capabilities/index.ts +578 -0
- package/src/application/index.ts +19 -5
- package/src/client/client.ts +41 -17
- package/src/contracts/contract-builder.ts +8 -23
- package/src/contracts/contract-group.ts +4 -6
- package/src/contracts/metadata.ts +20 -0
- package/src/contracts/types.ts +39 -0
- package/src/events/index.ts +16 -20
- package/src/flags/index.ts +0 -5
- package/src/idempotency/index.ts +17 -9
- package/src/jobs/index.ts +8 -3
- package/src/notifications/index.ts +678 -70
- package/src/openapi/index.ts +24 -12
- package/src/ports/auth.ts +2 -0
- package/src/ports/events.ts +2 -2
- package/src/ports/index.ts +0 -1
- package/src/providers/index.ts +1 -0
- package/src/providers/provider.ts +18 -3
- package/src/schedules/index.ts +57 -63
- package/src/server/index.ts +4 -2
- package/src/server/request-executor.ts +1170 -0
- package/src/server/request-preparation.ts +409 -0
- package/src/server/response-finalization.ts +385 -0
- package/src/server/route-definitions.ts +338 -0
- package/src/server/route-matching.ts +64 -0
- package/src/server/server.ts +63 -2171
- package/src/server/use-case-route.ts +1 -1
- package/src/testing/index.ts +2 -0
- package/src/tracing/index.ts +1 -0
- package/src/uploads/client.ts +4 -7
- package/src/uploads/index.ts +70 -12
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createJobs, retry, } from "../jobs/index.js";
|
|
1
2
|
import { createProvider, createProviderInstrumentation, } from "../providers/index.js";
|
|
2
3
|
/**
|
|
3
4
|
* Error thrown when notification payload validation fails.
|
|
@@ -22,19 +23,46 @@ export class NotificationDeliveryError extends Error {
|
|
|
22
23
|
*/
|
|
23
24
|
notificationName;
|
|
24
25
|
/**
|
|
25
|
-
*
|
|
26
|
+
* First channel that failed, retained for concise error handling.
|
|
26
27
|
*/
|
|
27
28
|
channel;
|
|
28
29
|
/**
|
|
29
|
-
* Original channel
|
|
30
|
+
* Original error for the first failed channel when available.
|
|
30
31
|
*/
|
|
31
32
|
cause;
|
|
33
|
+
/**
|
|
34
|
+
* Complete notification result after every selected channel ran.
|
|
35
|
+
*/
|
|
36
|
+
result;
|
|
37
|
+
/**
|
|
38
|
+
* Failed channel results.
|
|
39
|
+
*/
|
|
40
|
+
failures;
|
|
41
|
+
/**
|
|
42
|
+
* Original channel errors in delivery order.
|
|
43
|
+
*/
|
|
44
|
+
errors;
|
|
32
45
|
constructor(args) {
|
|
33
|
-
|
|
46
|
+
const failures = args.result.results.filter((result) => result.status === "failed");
|
|
47
|
+
const firstFailure = failures[0];
|
|
48
|
+
const errors = args.errors ?? [];
|
|
49
|
+
super(`Notification "${args.result.notificationName}" failed on ${failures.length} channel${failures.length === 1 ? "" : "s"}: ${failures.map((failure) => failure.channel).join(", ")}.`);
|
|
34
50
|
this.name = "NotificationDeliveryError";
|
|
35
|
-
this.notificationName = args.notificationName;
|
|
36
|
-
this.channel =
|
|
37
|
-
this.cause =
|
|
51
|
+
this.notificationName = args.result.notificationName;
|
|
52
|
+
this.channel = firstFailure?.channel ?? "unknown";
|
|
53
|
+
this.cause = errors.find((entry) => entry.channel === firstFailure?.channel)?.error;
|
|
54
|
+
this.result = args.result;
|
|
55
|
+
this.failures = failures;
|
|
56
|
+
this.errors = errors;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Error thrown when a notification registry cannot safely resolve a delivery.
|
|
61
|
+
*/
|
|
62
|
+
export class NotificationRegistryError extends Error {
|
|
63
|
+
constructor(message) {
|
|
64
|
+
super(message);
|
|
65
|
+
this.name = "NotificationRegistryError";
|
|
38
66
|
}
|
|
39
67
|
}
|
|
40
68
|
function formatPath(path) {
|
|
@@ -77,17 +105,67 @@ function resolveChannelNames(notification, options) {
|
|
|
77
105
|
const available = Object.keys(notification.channels);
|
|
78
106
|
const selected = options?.channels ?? available;
|
|
79
107
|
for (const channel of selected) {
|
|
80
|
-
if (
|
|
108
|
+
if (typeof notification.channels[channel] !== "function") {
|
|
81
109
|
throw new Error(`Notification "${notification.name}" does not define channel "${channel}".`);
|
|
82
110
|
}
|
|
83
111
|
}
|
|
84
112
|
return selected;
|
|
85
113
|
}
|
|
86
114
|
function summarizeResults(results) {
|
|
115
|
+
const queued = results.filter((result) => result.status === "queued").length;
|
|
87
116
|
const sent = results.filter((result) => result.status === "sent").length;
|
|
88
117
|
const skipped = results.filter((result) => result.status === "skipped").length;
|
|
89
118
|
const failed = results.filter((result) => result.status === "failed").length;
|
|
90
|
-
return { sent, skipped, failed };
|
|
119
|
+
return { queued, sent, skipped, failed };
|
|
120
|
+
}
|
|
121
|
+
function resultSummary(results) {
|
|
122
|
+
const summary = summarizeResults(results);
|
|
123
|
+
const parts = [
|
|
124
|
+
summary.queued ? `${summary.queued} queued` : undefined,
|
|
125
|
+
`${summary.sent} sent`,
|
|
126
|
+
`${summary.skipped} skipped`,
|
|
127
|
+
`${summary.failed} failed`,
|
|
128
|
+
].filter((part) => Boolean(part));
|
|
129
|
+
return parts.join(", ");
|
|
130
|
+
}
|
|
131
|
+
function recordChannelResult(instrumentation, notificationName, result, options) {
|
|
132
|
+
instrumentation.custom({
|
|
133
|
+
name: `notification.channel.${result.status}`,
|
|
134
|
+
label: `Notification channel ${result.status}`,
|
|
135
|
+
summary: `${notificationName} (${result.channel})`,
|
|
136
|
+
requestId: options.requestId,
|
|
137
|
+
traceId: options.traceId,
|
|
138
|
+
spanId: options.spanId,
|
|
139
|
+
parentSpanId: options.parentSpanId,
|
|
140
|
+
traceparent: options.traceparent,
|
|
141
|
+
details: {
|
|
142
|
+
notificationName,
|
|
143
|
+
channel: result.channel,
|
|
144
|
+
status: result.status,
|
|
145
|
+
id: result.id,
|
|
146
|
+
provider: result.provider,
|
|
147
|
+
reason: result.reason,
|
|
148
|
+
resultDetails: result.details,
|
|
149
|
+
metadata: options.metadata,
|
|
150
|
+
},
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
async function failedChannelResult(error, args, onError) {
|
|
154
|
+
if (onError) {
|
|
155
|
+
try {
|
|
156
|
+
const handled = await onError(error, args);
|
|
157
|
+
if (handled)
|
|
158
|
+
return { ...handled, channel: args.channel };
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
// Error observers cannot interrupt delivery of the remaining channels.
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return {
|
|
165
|
+
channel: args.channel,
|
|
166
|
+
status: "failed",
|
|
167
|
+
reason: error instanceof Error ? error.message : String(error),
|
|
168
|
+
};
|
|
91
169
|
}
|
|
92
170
|
function defineNotificationImpl(name, options) {
|
|
93
171
|
return {
|
|
@@ -98,6 +176,136 @@ function defineNotificationImpl(name, options) {
|
|
|
98
176
|
channels: options.channels,
|
|
99
177
|
};
|
|
100
178
|
}
|
|
179
|
+
function isRecord(value) {
|
|
180
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
181
|
+
}
|
|
182
|
+
function contextInstrumentationTarget(ctx) {
|
|
183
|
+
if (!isRecord(ctx))
|
|
184
|
+
return undefined;
|
|
185
|
+
return isRecord(ctx.ports) ? ctx.ports : ctx;
|
|
186
|
+
}
|
|
187
|
+
const notificationDeliveryPayloadSchema = {
|
|
188
|
+
"~standard": {
|
|
189
|
+
version: 1,
|
|
190
|
+
vendor: "beignet",
|
|
191
|
+
validate(value) {
|
|
192
|
+
if (!isRecord(value)) {
|
|
193
|
+
return { issues: [{ message: "Expected an object." }] };
|
|
194
|
+
}
|
|
195
|
+
const issues = [];
|
|
196
|
+
if (typeof value.notificationName !== "string" ||
|
|
197
|
+
value.notificationName.length === 0) {
|
|
198
|
+
issues.push({
|
|
199
|
+
message: "Expected a non-empty string.",
|
|
200
|
+
path: ["notificationName"],
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
if (typeof value.channel !== "string" || value.channel.length === 0) {
|
|
204
|
+
issues.push({
|
|
205
|
+
message: "Expected a non-empty string.",
|
|
206
|
+
path: ["channel"],
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
if (!("payload" in value)) {
|
|
210
|
+
issues.push({ message: "Required.", path: ["payload"] });
|
|
211
|
+
}
|
|
212
|
+
if (!isRecord(value.options)) {
|
|
213
|
+
issues.push({ message: "Expected an object.", path: ["options"] });
|
|
214
|
+
}
|
|
215
|
+
const deliveryOptions = isRecord(value.options) ? value.options : {};
|
|
216
|
+
const correlationFields = [
|
|
217
|
+
"requestId",
|
|
218
|
+
"traceId",
|
|
219
|
+
"spanId",
|
|
220
|
+
"parentSpanId",
|
|
221
|
+
"traceparent",
|
|
222
|
+
];
|
|
223
|
+
for (const field of correlationFields) {
|
|
224
|
+
if (deliveryOptions[field] !== undefined &&
|
|
225
|
+
typeof deliveryOptions[field] !== "string") {
|
|
226
|
+
issues.push({
|
|
227
|
+
message: "Expected a string.",
|
|
228
|
+
path: ["options", field],
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
if (deliveryOptions.metadata !== undefined &&
|
|
233
|
+
!isRecord(deliveryOptions.metadata)) {
|
|
234
|
+
issues.push({
|
|
235
|
+
message: "Expected an object.",
|
|
236
|
+
path: ["options", "metadata"],
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
if (issues.length > 0)
|
|
240
|
+
return { issues };
|
|
241
|
+
return {
|
|
242
|
+
value: {
|
|
243
|
+
notificationName: value.notificationName,
|
|
244
|
+
channel: value.channel,
|
|
245
|
+
payload: value.payload,
|
|
246
|
+
options: queuedSendOptions(deliveryOptions),
|
|
247
|
+
},
|
|
248
|
+
};
|
|
249
|
+
},
|
|
250
|
+
},
|
|
251
|
+
};
|
|
252
|
+
/**
|
|
253
|
+
* Define the notification catalog available to durable delivery workers.
|
|
254
|
+
* Duplicate names throw because queued delivery resolves definitions by name.
|
|
255
|
+
*/
|
|
256
|
+
export function defineNotificationRegistry(definitions) {
|
|
257
|
+
const byName = new Map();
|
|
258
|
+
for (const notification of definitions) {
|
|
259
|
+
if (byName.has(notification.name)) {
|
|
260
|
+
throw new NotificationRegistryError(`Duplicate notification definition "${notification.name}" in notification registry.`);
|
|
261
|
+
}
|
|
262
|
+
byName.set(notification.name, notification);
|
|
263
|
+
}
|
|
264
|
+
return {
|
|
265
|
+
definitions: [...definitions],
|
|
266
|
+
get(name) {
|
|
267
|
+
return byName.get(name);
|
|
268
|
+
},
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Define the generic job that resolves and delivers one notification channel.
|
|
273
|
+
* Register the returned job with every worker or outbox registry that can
|
|
274
|
+
* receive queued notifications.
|
|
275
|
+
*/
|
|
276
|
+
export function defineNotificationDeliveryJob(options) {
|
|
277
|
+
const name = (options.name ?? "notifications.deliver");
|
|
278
|
+
const { defineJob } = createJobs();
|
|
279
|
+
const job = defineJob(name, {
|
|
280
|
+
payload: notificationDeliveryPayloadSchema,
|
|
281
|
+
description: "Deliver one notification channel.",
|
|
282
|
+
retry: options.retry ?? retry.exponential({ attempts: 3 }),
|
|
283
|
+
timeout: options.timeout,
|
|
284
|
+
hooks: options.hooks,
|
|
285
|
+
async handle({ payload, ctx }) {
|
|
286
|
+
const notification = options.registry.get(payload.notificationName);
|
|
287
|
+
if (!notification) {
|
|
288
|
+
throw new NotificationRegistryError(`Notification "${payload.notificationName}" is not registered for queued delivery.`);
|
|
289
|
+
}
|
|
290
|
+
if (!notification.channels[payload.channel]) {
|
|
291
|
+
throw new NotificationRegistryError(`Notification "${payload.notificationName}" does not define queued channel "${payload.channel}".`);
|
|
292
|
+
}
|
|
293
|
+
const dispatcher = createInlineNotificationDispatcher({
|
|
294
|
+
ctx,
|
|
295
|
+
preferences: options.preferences,
|
|
296
|
+
failureMode: "throw",
|
|
297
|
+
instrumentation: contextInstrumentationTarget(ctx),
|
|
298
|
+
});
|
|
299
|
+
await dispatcher.send(notification, payload.payload, {
|
|
300
|
+
...payload.options,
|
|
301
|
+
channels: [payload.channel],
|
|
302
|
+
});
|
|
303
|
+
},
|
|
304
|
+
});
|
|
305
|
+
return Object.assign(job, {
|
|
306
|
+
registry: options.registry,
|
|
307
|
+
});
|
|
308
|
+
}
|
|
101
309
|
/**
|
|
102
310
|
* Validate and parse a notification payload with the notification's Standard
|
|
103
311
|
* Schema.
|
|
@@ -111,8 +319,9 @@ export async function parseNotificationPayload(notification, payload) {
|
|
|
111
319
|
* Create an inline notification dispatcher.
|
|
112
320
|
*
|
|
113
321
|
* The dispatcher validates payloads and runs selected channel handlers
|
|
114
|
-
* immediately.
|
|
115
|
-
*
|
|
322
|
+
* immediately. Channel failures are isolated and reported after every selected
|
|
323
|
+
* channel runs. Use this directly in tests and local apps, or use
|
|
324
|
+
* `createQueuedNotificationDispatcher(...)` for background execution.
|
|
116
325
|
*/
|
|
117
326
|
export function createInlineNotificationDispatcher(options = {}) {
|
|
118
327
|
const instrumentation = createProviderInstrumentation(options.instrumentation, {
|
|
@@ -125,6 +334,7 @@ export function createInlineNotificationDispatcher(options = {}) {
|
|
|
125
334
|
const channels = resolveChannelNames(notification, sendOptions);
|
|
126
335
|
const ctx = await resolveCtx(options.ctx);
|
|
127
336
|
const results = [];
|
|
337
|
+
const errors = [];
|
|
128
338
|
instrumentation.custom({
|
|
129
339
|
name: "notification.send.started",
|
|
130
340
|
label: "Notification started",
|
|
@@ -142,58 +352,57 @@ export function createInlineNotificationDispatcher(options = {}) {
|
|
|
142
352
|
});
|
|
143
353
|
for (const channel of channels) {
|
|
144
354
|
const handler = notification.channels[channel];
|
|
355
|
+
const args = {
|
|
356
|
+
notification,
|
|
357
|
+
payload: parsed,
|
|
358
|
+
ctx,
|
|
359
|
+
channel,
|
|
360
|
+
};
|
|
145
361
|
try {
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
ctx,
|
|
150
|
-
channel,
|
|
151
|
-
});
|
|
152
|
-
results.push(result ?? {
|
|
153
|
-
channel,
|
|
154
|
-
status: "sent",
|
|
362
|
+
const preference = await options.preferences?.evaluate({
|
|
363
|
+
...args,
|
|
364
|
+
metadata: sendOptions.metadata,
|
|
155
365
|
});
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
366
|
+
if (preference && !preference.deliver) {
|
|
367
|
+
const result = {
|
|
368
|
+
channel,
|
|
369
|
+
status: "skipped",
|
|
370
|
+
reason: preference.reason ?? "Disabled by notification preferences.",
|
|
371
|
+
details: {
|
|
372
|
+
source: "preferences",
|
|
373
|
+
},
|
|
374
|
+
};
|
|
375
|
+
results.push(result);
|
|
376
|
+
recordChannelResult(instrumentation, notification.name, result, sendOptions);
|
|
167
377
|
continue;
|
|
168
378
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
requestId: sendOptions.requestId,
|
|
174
|
-
traceId: sendOptions.traceId,
|
|
175
|
-
spanId: sendOptions.spanId,
|
|
176
|
-
parentSpanId: sendOptions.parentSpanId,
|
|
177
|
-
traceparent: sendOptions.traceparent,
|
|
178
|
-
details: {
|
|
179
|
-
notificationName: notification.name,
|
|
379
|
+
const handled = await handler(args);
|
|
380
|
+
const result = handled
|
|
381
|
+
? { ...handled, channel }
|
|
382
|
+
: {
|
|
180
383
|
channel,
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
384
|
+
status: "sent",
|
|
385
|
+
};
|
|
386
|
+
results.push(result);
|
|
387
|
+
recordChannelResult(instrumentation, notification.name, result, sendOptions);
|
|
388
|
+
}
|
|
389
|
+
catch (error) {
|
|
390
|
+
errors.push({ channel, error });
|
|
391
|
+
const result = await failedChannelResult(error, args, options.onError);
|
|
392
|
+
results.push(result);
|
|
393
|
+
recordChannelResult(instrumentation, notification.name, result, sendOptions);
|
|
190
394
|
}
|
|
191
395
|
}
|
|
192
|
-
const
|
|
396
|
+
const result = {
|
|
397
|
+
notificationName: notification.name,
|
|
398
|
+
payload: parsed,
|
|
399
|
+
channels,
|
|
400
|
+
results,
|
|
401
|
+
};
|
|
193
402
|
instrumentation.custom({
|
|
194
403
|
name: "notification.send.completed",
|
|
195
|
-
label: "Notification
|
|
196
|
-
summary: `${notification.name} (${
|
|
404
|
+
label: "Notification completed",
|
|
405
|
+
summary: `${notification.name} (${resultSummary(results)})`,
|
|
197
406
|
requestId: sendOptions.requestId,
|
|
198
407
|
traceId: sendOptions.traceId,
|
|
199
408
|
spanId: sendOptions.spanId,
|
|
@@ -206,12 +415,11 @@ export function createInlineNotificationDispatcher(options = {}) {
|
|
|
206
415
|
metadata: sendOptions.metadata,
|
|
207
416
|
},
|
|
208
417
|
});
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
};
|
|
418
|
+
if (options.failureMode === "throw" &&
|
|
419
|
+
results.some((channelResult) => channelResult.status === "failed")) {
|
|
420
|
+
throw new NotificationDeliveryError({ result, errors });
|
|
421
|
+
}
|
|
422
|
+
return result;
|
|
215
423
|
},
|
|
216
424
|
};
|
|
217
425
|
}
|
|
@@ -243,6 +451,136 @@ export function createInlineNotificationsProvider(options = {}) {
|
|
|
243
451
|
},
|
|
244
452
|
});
|
|
245
453
|
}
|
|
454
|
+
function queuedSendOptions(options) {
|
|
455
|
+
const queued = {};
|
|
456
|
+
if (isRecord(options.metadata))
|
|
457
|
+
queued.metadata = options.metadata;
|
|
458
|
+
if (typeof options.requestId === "string")
|
|
459
|
+
queued.requestId = options.requestId;
|
|
460
|
+
if (typeof options.traceId === "string")
|
|
461
|
+
queued.traceId = options.traceId;
|
|
462
|
+
if (typeof options.spanId === "string")
|
|
463
|
+
queued.spanId = options.spanId;
|
|
464
|
+
if (typeof options.parentSpanId === "string") {
|
|
465
|
+
queued.parentSpanId = options.parentSpanId;
|
|
466
|
+
}
|
|
467
|
+
if (typeof options.traceparent === "string")
|
|
468
|
+
queued.traceparent = options.traceparent;
|
|
469
|
+
return queued;
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* Create a notification dispatcher that enqueues one delivery job per channel.
|
|
473
|
+
* Separate jobs keep provider retries from resending channels that already
|
|
474
|
+
* completed successfully.
|
|
475
|
+
*/
|
|
476
|
+
export function createQueuedNotificationDispatcher(options) {
|
|
477
|
+
const instrumentation = createProviderInstrumentation(options.instrumentation, {
|
|
478
|
+
providerName: "queued-notifications",
|
|
479
|
+
watcher: "notifications",
|
|
480
|
+
});
|
|
481
|
+
return {
|
|
482
|
+
async send(notification, payload, sendOptions = {}) {
|
|
483
|
+
const registered = options.deliveryJob.registry.get(notification.name);
|
|
484
|
+
if (!registered) {
|
|
485
|
+
throw new NotificationRegistryError(`Notification "${notification.name}" is not registered for queued delivery.`);
|
|
486
|
+
}
|
|
487
|
+
const parsed = await parseNotificationPayload(registered, payload);
|
|
488
|
+
const channels = resolveChannelNames(registered, sendOptions);
|
|
489
|
+
const results = [];
|
|
490
|
+
instrumentation.custom({
|
|
491
|
+
name: "notification.enqueue.started",
|
|
492
|
+
label: "Notification enqueue started",
|
|
493
|
+
summary: notification.name,
|
|
494
|
+
requestId: sendOptions.requestId,
|
|
495
|
+
traceId: sendOptions.traceId,
|
|
496
|
+
spanId: sendOptions.spanId,
|
|
497
|
+
parentSpanId: sendOptions.parentSpanId,
|
|
498
|
+
traceparent: sendOptions.traceparent,
|
|
499
|
+
details: {
|
|
500
|
+
notificationName: notification.name,
|
|
501
|
+
channels,
|
|
502
|
+
metadata: sendOptions.metadata,
|
|
503
|
+
jobName: options.deliveryJob.name,
|
|
504
|
+
},
|
|
505
|
+
});
|
|
506
|
+
for (const channel of channels) {
|
|
507
|
+
let result;
|
|
508
|
+
try {
|
|
509
|
+
await options.jobs.dispatch(options.deliveryJob, {
|
|
510
|
+
notificationName: notification.name,
|
|
511
|
+
channel,
|
|
512
|
+
payload: parsed,
|
|
513
|
+
options: queuedSendOptions(sendOptions),
|
|
514
|
+
});
|
|
515
|
+
result = {
|
|
516
|
+
channel,
|
|
517
|
+
status: "queued",
|
|
518
|
+
provider: "jobs",
|
|
519
|
+
details: {
|
|
520
|
+
jobName: options.deliveryJob.name,
|
|
521
|
+
},
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
catch (error) {
|
|
525
|
+
result = {
|
|
526
|
+
channel,
|
|
527
|
+
status: "failed",
|
|
528
|
+
reason: error instanceof Error ? error.message : String(error),
|
|
529
|
+
details: {
|
|
530
|
+
phase: "enqueue",
|
|
531
|
+
jobName: options.deliveryJob.name,
|
|
532
|
+
},
|
|
533
|
+
};
|
|
534
|
+
}
|
|
535
|
+
results.push(result);
|
|
536
|
+
recordChannelResult(instrumentation, notification.name, result, sendOptions);
|
|
537
|
+
}
|
|
538
|
+
const result = {
|
|
539
|
+
notificationName: notification.name,
|
|
540
|
+
payload: parsed,
|
|
541
|
+
channels,
|
|
542
|
+
results,
|
|
543
|
+
};
|
|
544
|
+
instrumentation.custom({
|
|
545
|
+
name: "notification.enqueue.completed",
|
|
546
|
+
label: "Notification enqueue completed",
|
|
547
|
+
summary: `${notification.name} (${resultSummary(results)})`,
|
|
548
|
+
requestId: sendOptions.requestId,
|
|
549
|
+
traceId: sendOptions.traceId,
|
|
550
|
+
spanId: sendOptions.spanId,
|
|
551
|
+
parentSpanId: sendOptions.parentSpanId,
|
|
552
|
+
traceparent: sendOptions.traceparent,
|
|
553
|
+
details: {
|
|
554
|
+
notificationName: notification.name,
|
|
555
|
+
channels,
|
|
556
|
+
results,
|
|
557
|
+
metadata: sendOptions.metadata,
|
|
558
|
+
jobName: options.deliveryJob.name,
|
|
559
|
+
},
|
|
560
|
+
});
|
|
561
|
+
return result;
|
|
562
|
+
},
|
|
563
|
+
};
|
|
564
|
+
}
|
|
565
|
+
/**
|
|
566
|
+
* Create a provider that contributes a job-backed notification dispatcher.
|
|
567
|
+
*/
|
|
568
|
+
export function createQueuedNotificationsProvider(options) {
|
|
569
|
+
return createProvider()({
|
|
570
|
+
name: options.name ?? "queued-notifications",
|
|
571
|
+
setup({ ports }) {
|
|
572
|
+
return {
|
|
573
|
+
ports: {
|
|
574
|
+
notifications: createQueuedNotificationDispatcher({
|
|
575
|
+
jobs: ports.jobs,
|
|
576
|
+
deliveryJob: options.deliveryJob,
|
|
577
|
+
instrumentation: ports,
|
|
578
|
+
}),
|
|
579
|
+
},
|
|
580
|
+
};
|
|
581
|
+
},
|
|
582
|
+
});
|
|
583
|
+
}
|
|
246
584
|
/**
|
|
247
585
|
* Define a mail-backed notification channel.
|
|
248
586
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"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"}
|
package/dist/openapi/index.js
CHANGED
|
@@ -145,8 +145,13 @@ function addPathParams(contract, operation, state) {
|
|
|
145
145
|
}
|
|
146
146
|
const shape = state.introspector.getShape(contract.pathParams);
|
|
147
147
|
if (!shape) {
|
|
148
|
-
|
|
149
|
-
|
|
148
|
+
for (const key of pathKeys) {
|
|
149
|
+
addParameter(operation, {
|
|
150
|
+
name: key,
|
|
151
|
+
in: "path",
|
|
152
|
+
required: true,
|
|
153
|
+
schema: { type: "string" },
|
|
154
|
+
});
|
|
150
155
|
}
|
|
151
156
|
return;
|
|
152
157
|
}
|
|
@@ -184,12 +189,8 @@ function addQueryParams(contract, operation, state) {
|
|
|
184
189
|
for (const key of Object.keys(shape)) {
|
|
185
190
|
const originalField = shape[key];
|
|
186
191
|
const optional = state.introspector.isOptional(originalField);
|
|
187
|
-
let description = state.introspector.getDescription(originalField);
|
|
188
192
|
const field = originalField;
|
|
189
|
-
|
|
190
|
-
if (!description && optional) {
|
|
191
|
-
description = state.introspector.getDescription(field);
|
|
192
|
-
}
|
|
193
|
+
const description = parameterDescription(field, optional, state);
|
|
193
194
|
const paramSchemaRef = schemaToConvertedSchemaRef(field, `${contract.name}_query_${key}`, state, "input");
|
|
194
195
|
const param = {
|
|
195
196
|
name: key,
|
|
@@ -213,7 +214,7 @@ function addHeaderParams(contract, operation, state) {
|
|
|
213
214
|
for (const key of Object.keys(shape)) {
|
|
214
215
|
const originalField = shape[key];
|
|
215
216
|
const optional = state.introspector.isOptional(originalField);
|
|
216
|
-
const description =
|
|
217
|
+
const description = parameterDescription(originalField, optional, state);
|
|
217
218
|
const paramSchemaRef = schemaToConvertedSchemaRef(originalField, `${contract.name}_header_${key}`, state, "input");
|
|
218
219
|
addParameter(operation, {
|
|
219
220
|
name: key,
|
|
@@ -225,6 +226,12 @@ function addHeaderParams(contract, operation, state) {
|
|
|
225
226
|
}
|
|
226
227
|
}
|
|
227
228
|
}
|
|
229
|
+
function parameterDescription(field, optional, state) {
|
|
230
|
+
return (state.introspector.getDescription(field) ??
|
|
231
|
+
(optional
|
|
232
|
+
? state.introspector.getDescription(state.introspector.unwrapOptional(field))
|
|
233
|
+
: undefined));
|
|
234
|
+
}
|
|
228
235
|
/**
|
|
229
236
|
* Add request body from contract to operation
|
|
230
237
|
*/
|