@beignet/core 0.0.2 → 0.0.3
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 +16 -0
- package/README.md +55 -6
- package/dist/jobs/index.d.ts +138 -4
- package/dist/jobs/index.d.ts.map +1 -1
- package/dist/jobs/index.js +161 -1
- package/dist/jobs/index.js.map +1 -1
- package/dist/outbox/index.d.ts +5 -0
- package/dist/outbox/index.d.ts.map +1 -1
- package/dist/outbox/index.js +59 -3
- package/dist/outbox/index.js.map +1 -1
- package/dist/providers/instrumentation.d.ts +1 -1
- package/dist/providers/instrumentation.d.ts.map +1 -1
- package/dist/providers/instrumentation.js.map +1 -1
- package/dist/server/hooks/auth.d.ts +50 -65
- package/dist/server/hooks/auth.d.ts.map +1 -1
- package/dist/server/hooks/auth.js +44 -55
- package/dist/server/hooks/auth.js.map +1 -1
- package/dist/server/hooks/index.d.ts +1 -1
- package/dist/server/hooks/index.d.ts.map +1 -1
- package/dist/server/hooks/index.js.map +1 -1
- package/dist/server/http.d.ts +52 -0
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +20 -1
- package/dist/server/http.js.map +1 -1
- package/dist/server/index.d.ts +1 -1
- 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/server.d.ts +54 -13
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +56 -35
- package/dist/server/server.js.map +1 -1
- package/dist/testing/index.d.ts +4 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +8 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/uploads/client.d.ts +278 -0
- package/dist/uploads/client.d.ts.map +1 -0
- package/dist/uploads/client.js +428 -0
- package/dist/uploads/client.js.map +1 -0
- package/dist/uploads/index.d.ts +361 -0
- package/dist/uploads/index.d.ts.map +1 -0
- package/dist/uploads/index.js +543 -0
- package/dist/uploads/index.js.map +1 -0
- package/package.json +11 -2
- package/src/jobs/index.ts +326 -5
- package/src/outbox/index.ts +83 -3
- package/src/providers/instrumentation.ts +7 -1
- package/src/server/hooks/auth.ts +89 -162
- package/src/server/hooks/index.ts +1 -5
- package/src/server/http.ts +79 -0
- package/src/server/index.ts +1 -0
- package/src/server/server.ts +191 -23
- package/src/testing/index.ts +11 -0
- package/src/uploads/client.ts +861 -0
- package/src/uploads/index.ts +1067 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @beignet/core
|
|
2
2
|
|
|
3
|
+
## 0.0.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 3160184: Add `beignet db generate|migrate|seed|reset`, scaffold standard seed/reset database entrypoints, and expose a factory reset helper for test data workflows.
|
|
8
|
+
- 254ef6d: Add scoped route hooks for route and route-group policy, update auth hooks to expose public/optional/required route-hook factories, and teach CLI route inspection about curried route groups.
|
|
9
|
+
- 4cb1784: Add first-class upload router primitives, a typed browser upload client, a
|
|
10
|
+
React upload adapter, Next.js upload route helper, S3-compatible direct upload
|
|
11
|
+
signing, devtools upload watcher support, an upload generator, and a
|
|
12
|
+
first-class `beignet make feature` command with optional policy, event, job,
|
|
13
|
+
and upload artifacts for the standard vertical slice. Add first-class job retry
|
|
14
|
+
helpers, outbox retry policy integration, and job retry/dead-letter devtools
|
|
15
|
+
events. Add a Next.js outbox drain route helper and doctor warnings for
|
|
16
|
+
serverless background-work footguns.
|
|
17
|
+
- 8bd9085: Add `@beignet/web` as a framework-neutral Web Fetch adapter, include a `@beignet/web/testing` route test harness, and have `@beignet/next` reuse the Web adapter for standard Request/Response handling.
|
|
18
|
+
|
|
3
19
|
## 0.0.2
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
This package provides Beignet's framework primitives: contracts, server runtime,
|
|
6
6
|
typed client, use cases, ports, domain helpers, app errors, config, events,
|
|
7
|
-
idempotency, outbox, mail, notifications, schedules, pagination helpers,
|
|
7
|
+
idempotency, outbox, mail, notifications, schedules, uploads, pagination helpers,
|
|
8
8
|
testing helpers, and OpenAPI generation.
|
|
9
9
|
|
|
10
10
|
## Installation
|
|
@@ -41,7 +41,7 @@ name the framework area they depend on.
|
|
|
41
41
|
| `@beignet/core/errors` | Error catalogs and response helpers |
|
|
42
42
|
| `@beignet/core/events` | Events and listeners |
|
|
43
43
|
| `@beignet/core/idempotency` | Retry-safe command, webhook, and job primitives |
|
|
44
|
-
| `@beignet/core/jobs` | Job definitions and inline job dispatch |
|
|
44
|
+
| `@beignet/core/jobs` | Job definitions, retry policies, and inline job dispatch |
|
|
45
45
|
| `@beignet/core/mail` | Mail port and memory mailer |
|
|
46
46
|
| `@beignet/core/notifications` | Notification definitions, dispatchers, mail channels, and test adapters |
|
|
47
47
|
| `@beignet/core/openapi` | OpenAPI generation |
|
|
@@ -53,6 +53,8 @@ name the framework area they depend on.
|
|
|
53
53
|
| `@beignet/core/schedules` | Scheduled task primitives |
|
|
54
54
|
| `@beignet/core/server` | Framework-agnostic server runtime and hook helpers |
|
|
55
55
|
| `@beignet/core/testing` | Test factories, seed definitions, and seed runners |
|
|
56
|
+
| `@beignet/core/uploads` | Upload definitions, router, signer port, and test signer |
|
|
57
|
+
| `@beignet/core/uploads/client` | Browser upload client for server and direct uploads |
|
|
56
58
|
|
|
57
59
|
## Key concepts
|
|
58
60
|
|
|
@@ -67,7 +69,7 @@ A **contract** is the single source of truth for an API endpoint. It describes:
|
|
|
67
69
|
|
|
68
70
|
### Contract group
|
|
69
71
|
|
|
70
|
-
A **contract group** allows you to share configuration across related endpoints, such as a common namespace,
|
|
72
|
+
A **contract group** allows you to share configuration across related endpoints, such as a common namespace, route metadata, headers, and shared response schemas.
|
|
71
73
|
|
|
72
74
|
## Usage
|
|
73
75
|
|
|
@@ -175,7 +177,12 @@ port-based. Factories build app-owned records, and optional `persist` functions
|
|
|
175
177
|
write through the context you pass in:
|
|
176
178
|
|
|
177
179
|
```ts
|
|
178
|
-
import {
|
|
180
|
+
import {
|
|
181
|
+
defineFactory,
|
|
182
|
+
defineSeed,
|
|
183
|
+
resetFactories,
|
|
184
|
+
runSeeds,
|
|
185
|
+
} from "@beignet/core/testing";
|
|
179
186
|
|
|
180
187
|
const postFactory = defineFactory("post", {
|
|
181
188
|
defaults: ({ sequence }) => ({
|
|
@@ -194,6 +201,10 @@ const demoPostsSeed = defineSeed("demo-posts", {
|
|
|
194
201
|
export async function seedDemoPosts(ctx: AppContext) {
|
|
195
202
|
await runSeeds({ ctx, seeds: [demoPostsSeed] });
|
|
196
203
|
}
|
|
204
|
+
|
|
205
|
+
export function resetPostFactories() {
|
|
206
|
+
resetFactories(postFactory);
|
|
207
|
+
}
|
|
197
208
|
```
|
|
198
209
|
|
|
199
210
|
Keep factories and seeds app-owned. They should not import database clients,
|
|
@@ -306,9 +317,10 @@ await drainOutbox({
|
|
|
306
317
|
The outbox is at-least-once delivery. Use idempotent listeners or jobs when a
|
|
307
318
|
duplicate delivery would be harmful.
|
|
308
319
|
|
|
309
|
-
### Contract metadata
|
|
320
|
+
### Contract metadata and route hooks
|
|
310
321
|
|
|
311
|
-
Use metadata to
|
|
322
|
+
Use metadata to describe cross-cutting concerns for OpenAPI, clients, docs, and
|
|
323
|
+
app conventions:
|
|
312
324
|
|
|
313
325
|
```ts
|
|
314
326
|
const sendMessage = messages
|
|
@@ -331,6 +343,41 @@ const sendMessage = messages
|
|
|
331
343
|
});
|
|
332
344
|
```
|
|
333
345
|
|
|
346
|
+
Use route hooks for runtime enforcement where the route is wired:
|
|
347
|
+
|
|
348
|
+
```ts
|
|
349
|
+
import {
|
|
350
|
+
createAuthHooks,
|
|
351
|
+
defineRoute,
|
|
352
|
+
defineRouteGroup,
|
|
353
|
+
} from "@beignet/core/server";
|
|
354
|
+
|
|
355
|
+
const auth = createAuthHooks<AppContext, { user: CurrentUser }>({
|
|
356
|
+
resolve: async ({ ctx, req }) => {
|
|
357
|
+
const session = await ctx.ports.auth.getSession(req);
|
|
358
|
+
|
|
359
|
+
return session ? { user: session.user } : null;
|
|
360
|
+
},
|
|
361
|
+
});
|
|
362
|
+
|
|
363
|
+
const route = defineRoute<AppContext>();
|
|
364
|
+
|
|
365
|
+
export const messageRoutes = defineRouteGroup<AppContext>()({
|
|
366
|
+
name: "messages",
|
|
367
|
+
routes: [
|
|
368
|
+
route({
|
|
369
|
+
contract: sendMessage,
|
|
370
|
+
hooks: [auth.required()],
|
|
371
|
+
handle: async ({ ctx, body }) => {
|
|
372
|
+
ctx.user.id;
|
|
373
|
+
|
|
374
|
+
return sendMessageUseCase.run({ ctx, input: body });
|
|
375
|
+
},
|
|
376
|
+
}),
|
|
377
|
+
],
|
|
378
|
+
});
|
|
379
|
+
```
|
|
380
|
+
|
|
334
381
|
### OpenAPI metadata
|
|
335
382
|
|
|
336
383
|
Add OpenAPI-specific metadata for documentation using the `.openapi()` method:
|
|
@@ -422,9 +469,11 @@ OpenAPI generation currently requires Zod schemas, even though core contracts ca
|
|
|
422
469
|
|
|
423
470
|
## Related packages
|
|
424
471
|
|
|
472
|
+
- [`@beignet/web`](https://beignet.dev/server) - Web Fetch server adapter
|
|
425
473
|
- [`@beignet/next`](https://beignet.dev/server) - Next.js server adapter
|
|
426
474
|
- [`@beignet/react-query`](https://beignet.dev/react-query) - TanStack Query integration
|
|
427
475
|
- [`@beignet/react-hook-form`](https://beignet.dev/react-hook-form) - React Hook Form integration
|
|
476
|
+
- [`@beignet/react-uploads`](https://beignet.dev/react-uploads) - React upload state and progress hooks
|
|
428
477
|
- [`@beignet/nuqs`](https://beignet.dev/nuqs) - URL query state integration with nuqs
|
|
429
478
|
- [`@beignet/devtools`](https://beignet.dev/devtools) - Local request, provider, and audit timeline
|
|
430
479
|
|
package/dist/jobs/index.d.ts
CHANGED
|
@@ -11,6 +11,39 @@ export type MaybePromise<T> = T | Promise<T>;
|
|
|
11
11
|
* Infer the parsed output type from a Standard Schema.
|
|
12
12
|
*/
|
|
13
13
|
export type InferSchemaOutput<T extends StandardSchemaV1> = StandardSchemaV1.InferOutput<T>;
|
|
14
|
+
/**
|
|
15
|
+
* Duration accepted by retry helpers. Numbers are milliseconds.
|
|
16
|
+
*/
|
|
17
|
+
export type JobRetryDuration = number | `${number}ms` | `${number}s` | `${number}m` | `${number}h`;
|
|
18
|
+
/**
|
|
19
|
+
* Retry strategy understood by Beignet job adapters.
|
|
20
|
+
*/
|
|
21
|
+
export type JobRetryStrategy = "none" | "fixed" | "exponential";
|
|
22
|
+
/**
|
|
23
|
+
* Arguments passed to a retry predicate.
|
|
24
|
+
*/
|
|
25
|
+
export interface JobRetryPredicateArgs {
|
|
26
|
+
/**
|
|
27
|
+
* Error thrown by the previous attempt.
|
|
28
|
+
*/
|
|
29
|
+
error: unknown;
|
|
30
|
+
/**
|
|
31
|
+
* One-based attempt number that just failed.
|
|
32
|
+
*/
|
|
33
|
+
attempt: number;
|
|
34
|
+
/**
|
|
35
|
+
* Maximum attempts allowed for this delivery.
|
|
36
|
+
*/
|
|
37
|
+
maxAttempts: number;
|
|
38
|
+
/**
|
|
39
|
+
* Job name when the retry decision is for a job.
|
|
40
|
+
*/
|
|
41
|
+
jobName?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Return whether a failed attempt should be retried.
|
|
45
|
+
*/
|
|
46
|
+
export type JobRetryPredicate = (args: JobRetryPredicateArgs) => boolean;
|
|
14
47
|
/**
|
|
15
48
|
* Job definition created by `defineJob(...)`.
|
|
16
49
|
*/
|
|
@@ -66,12 +99,38 @@ export interface JobHandleArgs<J extends JobDef, Ctx> {
|
|
|
66
99
|
*/
|
|
67
100
|
export interface JobRetryOptions {
|
|
68
101
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
|
|
72
|
-
|
|
102
|
+
* Retry strategy. Raw objects without a strategy default to exponential
|
|
103
|
+
* backoff so existing `{ attempts }` style definitions stay meaningful.
|
|
104
|
+
*/
|
|
105
|
+
strategy?: JobRetryStrategy;
|
|
106
|
+
/**
|
|
107
|
+
* Maximum total attempts, including the first attempt.
|
|
73
108
|
*/
|
|
74
109
|
attempts?: number;
|
|
110
|
+
/**
|
|
111
|
+
* Delay between attempts for fixed retry policies.
|
|
112
|
+
*/
|
|
113
|
+
delay?: JobRetryDuration;
|
|
114
|
+
/**
|
|
115
|
+
* Initial delay for exponential retry policies.
|
|
116
|
+
*/
|
|
117
|
+
initialDelay?: JobRetryDuration;
|
|
118
|
+
/**
|
|
119
|
+
* Maximum delay for exponential retry policies.
|
|
120
|
+
*/
|
|
121
|
+
maxDelay?: JobRetryDuration;
|
|
122
|
+
/**
|
|
123
|
+
* Exponential multiplier. Defaults to `2`.
|
|
124
|
+
*/
|
|
125
|
+
factor?: number;
|
|
126
|
+
/**
|
|
127
|
+
* Whether adapters that compute delays should add jitter.
|
|
128
|
+
*/
|
|
129
|
+
jitter?: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Optional app-owned retry classifier.
|
|
132
|
+
*/
|
|
133
|
+
retryIf?: JobRetryPredicate;
|
|
75
134
|
}
|
|
76
135
|
/**
|
|
77
136
|
* Options for declaring a typed job.
|
|
@@ -94,6 +153,69 @@ export interface DefineJobOptions<Name extends string, Payload extends StandardS
|
|
|
94
153
|
*/
|
|
95
154
|
handle(args: JobHandleArgs<JobDef<Name, Payload, Ctx>, Ctx>): MaybePromise<void>;
|
|
96
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Options for a fixed job retry policy.
|
|
158
|
+
*/
|
|
159
|
+
export interface FixedJobRetryOptions {
|
|
160
|
+
/**
|
|
161
|
+
* Maximum total attempts, including the first attempt.
|
|
162
|
+
*/
|
|
163
|
+
attempts: number;
|
|
164
|
+
/**
|
|
165
|
+
* Delay between attempts.
|
|
166
|
+
*/
|
|
167
|
+
delay: JobRetryDuration;
|
|
168
|
+
/**
|
|
169
|
+
* Optional app-owned retry classifier.
|
|
170
|
+
*/
|
|
171
|
+
retryIf?: JobRetryPredicate;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Options for an exponential job retry policy.
|
|
175
|
+
*/
|
|
176
|
+
export interface ExponentialJobRetryOptions {
|
|
177
|
+
/**
|
|
178
|
+
* Maximum total attempts, including the first attempt.
|
|
179
|
+
*/
|
|
180
|
+
attempts: number;
|
|
181
|
+
/**
|
|
182
|
+
* Initial delay. Defaults to `1s`.
|
|
183
|
+
*/
|
|
184
|
+
initialDelay?: JobRetryDuration;
|
|
185
|
+
/**
|
|
186
|
+
* Maximum delay. Defaults to `1m`.
|
|
187
|
+
*/
|
|
188
|
+
maxDelay?: JobRetryDuration;
|
|
189
|
+
/**
|
|
190
|
+
* Exponential multiplier. Defaults to `2`.
|
|
191
|
+
*/
|
|
192
|
+
factor?: number;
|
|
193
|
+
/**
|
|
194
|
+
* Whether computed delays should include jitter.
|
|
195
|
+
*/
|
|
196
|
+
jitter?: boolean;
|
|
197
|
+
/**
|
|
198
|
+
* Optional app-owned retry classifier.
|
|
199
|
+
*/
|
|
200
|
+
retryIf?: JobRetryPredicate;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Retry helper namespace for job definitions.
|
|
204
|
+
*/
|
|
205
|
+
export declare const retry: {
|
|
206
|
+
/**
|
|
207
|
+
* Disable retries. The first failure is terminal.
|
|
208
|
+
*/
|
|
209
|
+
readonly none: () => JobRetryOptions;
|
|
210
|
+
/**
|
|
211
|
+
* Retry with the same delay between attempts.
|
|
212
|
+
*/
|
|
213
|
+
readonly fixed: (options: FixedJobRetryOptions) => JobRetryOptions;
|
|
214
|
+
/**
|
|
215
|
+
* Retry with exponential backoff.
|
|
216
|
+
*/
|
|
217
|
+
readonly exponential: (options: ExponentialJobRetryOptions) => JobRetryOptions;
|
|
218
|
+
};
|
|
97
219
|
/**
|
|
98
220
|
* Options for the inline job dispatcher.
|
|
99
221
|
*/
|
|
@@ -143,6 +265,18 @@ export declare class JobValidationError extends Error {
|
|
|
143
265
|
issues: readonly StandardSchemaV1.Issue[];
|
|
144
266
|
});
|
|
145
267
|
}
|
|
268
|
+
/**
|
|
269
|
+
* Return the maximum total attempts configured by a retry policy.
|
|
270
|
+
*/
|
|
271
|
+
export declare function getJobRetryMaxAttempts(options: JobRetryOptions | undefined): number | undefined;
|
|
272
|
+
/**
|
|
273
|
+
* Return whether a failed job attempt should be retried.
|
|
274
|
+
*/
|
|
275
|
+
export declare function shouldRetryJob(options: JobRetryOptions | undefined, args: JobRetryPredicateArgs): boolean;
|
|
276
|
+
/**
|
|
277
|
+
* Compute the next retry delay in milliseconds for a failed job attempt.
|
|
278
|
+
*/
|
|
279
|
+
export declare function getJobRetryDelayMs(options: JobRetryOptions | undefined, args: Pick<JobRetryPredicateArgs, "attempt" | "error" | "jobName">): number;
|
|
146
280
|
/**
|
|
147
281
|
* Define a typed job.
|
|
148
282
|
*
|
package/dist/jobs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jobs/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,gBAAgB,IACtD,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAElC;;GAEG;AACH,MAAM,WAAW,MAAM,CACrB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,GAAG,GAAG,OAAO;IAEb;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC;;OAEG;IACH,MAAM,CACJ,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,GACnD,YAAY,CAAC,IAAI,CAAC,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,IAC1C,CAAC,CAAC,SAAS,CAAC,SAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG;IAClD;;OAEG;IACH,GAAG,EAAE,CAAC,CAAC;IACP;;OAEG;IACH,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC5B;;OAEG;IACH,GAAG,EAAE,GAAG,CAAC;CACV;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jobs/index.ts"],"names":[],"mappings":"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"}
|
package/dist/jobs/index.js
CHANGED
|
@@ -1,3 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retry helper namespace for job definitions.
|
|
3
|
+
*/
|
|
4
|
+
export const retry = {
|
|
5
|
+
/**
|
|
6
|
+
* Disable retries. The first failure is terminal.
|
|
7
|
+
*/
|
|
8
|
+
none() {
|
|
9
|
+
return {
|
|
10
|
+
strategy: "none",
|
|
11
|
+
attempts: 1,
|
|
12
|
+
};
|
|
13
|
+
},
|
|
14
|
+
/**
|
|
15
|
+
* Retry with the same delay between attempts.
|
|
16
|
+
*/
|
|
17
|
+
fixed(options) {
|
|
18
|
+
return validateJobRetryOptions({
|
|
19
|
+
strategy: "fixed",
|
|
20
|
+
attempts: options.attempts,
|
|
21
|
+
delay: options.delay,
|
|
22
|
+
retryIf: options.retryIf,
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
/**
|
|
26
|
+
* Retry with exponential backoff.
|
|
27
|
+
*/
|
|
28
|
+
exponential(options) {
|
|
29
|
+
return validateJobRetryOptions({
|
|
30
|
+
strategy: "exponential",
|
|
31
|
+
attempts: options.attempts,
|
|
32
|
+
initialDelay: options.initialDelay,
|
|
33
|
+
maxDelay: options.maxDelay,
|
|
34
|
+
factor: options.factor,
|
|
35
|
+
jitter: options.jitter,
|
|
36
|
+
retryIf: options.retryIf,
|
|
37
|
+
});
|
|
38
|
+
},
|
|
39
|
+
};
|
|
1
40
|
/**
|
|
2
41
|
* Error thrown when job payload validation fails.
|
|
3
42
|
*/
|
|
@@ -29,6 +68,124 @@ function formatIssues(issues) {
|
|
|
29
68
|
})
|
|
30
69
|
.join("; ");
|
|
31
70
|
}
|
|
71
|
+
function assertPositiveInteger(name, value) {
|
|
72
|
+
if (!Number.isInteger(value) || value <= 0) {
|
|
73
|
+
throw new Error(`${name} must be a positive integer`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function assertPositiveNumber(name, value) {
|
|
77
|
+
if (!Number.isFinite(value) || value <= 0) {
|
|
78
|
+
throw new Error(`${name} must be a positive number`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function durationToMs(name, value) {
|
|
82
|
+
if (typeof value === "number") {
|
|
83
|
+
assertPositiveInteger(name, value);
|
|
84
|
+
return value;
|
|
85
|
+
}
|
|
86
|
+
const match = /^(\d+)(ms|s|m|h)$/.exec(value);
|
|
87
|
+
if (!match) {
|
|
88
|
+
throw new Error(`${name} must be a positive millisecond value or duration string like "500ms", "30s", "5m", or "1h".`);
|
|
89
|
+
}
|
|
90
|
+
const amount = Number(match[1]);
|
|
91
|
+
assertPositiveInteger(name, amount);
|
|
92
|
+
switch (match[2]) {
|
|
93
|
+
case "ms":
|
|
94
|
+
return amount;
|
|
95
|
+
case "s":
|
|
96
|
+
return amount * 1000;
|
|
97
|
+
case "m":
|
|
98
|
+
return amount * 60_000;
|
|
99
|
+
case "h":
|
|
100
|
+
return amount * 3_600_000;
|
|
101
|
+
default:
|
|
102
|
+
throw new Error(`${name} has an unsupported duration unit.`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function validateJobRetryOptions(options) {
|
|
106
|
+
const strategy = options.strategy ?? "exponential";
|
|
107
|
+
if (!["none", "fixed", "exponential"].includes(strategy)) {
|
|
108
|
+
throw new Error("retry.strategy must be none, fixed, or exponential");
|
|
109
|
+
}
|
|
110
|
+
const attempts = options.attempts ?? (strategy === "none" ? 1 : undefined);
|
|
111
|
+
if (attempts === undefined) {
|
|
112
|
+
throw new Error("retry.attempts is required");
|
|
113
|
+
}
|
|
114
|
+
assertPositiveInteger("retry.attempts", attempts);
|
|
115
|
+
if (strategy === "none" && attempts !== 1) {
|
|
116
|
+
throw new Error("retry.none() must use exactly one attempt");
|
|
117
|
+
}
|
|
118
|
+
if (strategy === "fixed") {
|
|
119
|
+
if (options.delay === undefined) {
|
|
120
|
+
throw new Error("retry.delay is required for fixed retry policies");
|
|
121
|
+
}
|
|
122
|
+
durationToMs("retry.delay", options.delay);
|
|
123
|
+
}
|
|
124
|
+
if (strategy === "exponential") {
|
|
125
|
+
if (options.initialDelay !== undefined) {
|
|
126
|
+
durationToMs("retry.initialDelay", options.initialDelay);
|
|
127
|
+
}
|
|
128
|
+
if (options.maxDelay !== undefined) {
|
|
129
|
+
durationToMs("retry.maxDelay", options.maxDelay);
|
|
130
|
+
}
|
|
131
|
+
if (options.factor !== undefined) {
|
|
132
|
+
assertPositiveNumber("retry.factor", options.factor);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
...options,
|
|
137
|
+
strategy,
|
|
138
|
+
attempts,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Return the maximum total attempts configured by a retry policy.
|
|
143
|
+
*/
|
|
144
|
+
export function getJobRetryMaxAttempts(options) {
|
|
145
|
+
return options ? validateJobRetryOptions(options).attempts : undefined;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Return whether a failed job attempt should be retried.
|
|
149
|
+
*/
|
|
150
|
+
export function shouldRetryJob(options, args) {
|
|
151
|
+
if (!options)
|
|
152
|
+
return args.attempt < args.maxAttempts;
|
|
153
|
+
const retryOptions = validateJobRetryOptions(options);
|
|
154
|
+
const maxAttempts = Math.min(args.maxAttempts, retryOptions.attempts ?? args.maxAttempts);
|
|
155
|
+
if (retryOptions.strategy === "none")
|
|
156
|
+
return false;
|
|
157
|
+
if (args.attempt >= maxAttempts)
|
|
158
|
+
return false;
|
|
159
|
+
return retryOptions.retryIf?.({ ...args, maxAttempts }) ?? true;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Compute the next retry delay in milliseconds for a failed job attempt.
|
|
163
|
+
*/
|
|
164
|
+
export function getJobRetryDelayMs(options, args) {
|
|
165
|
+
const retryOptions = options
|
|
166
|
+
? validateJobRetryOptions(options)
|
|
167
|
+
: retry.exponential({ attempts: 3 });
|
|
168
|
+
let delayMs;
|
|
169
|
+
if (retryOptions.strategy === "fixed") {
|
|
170
|
+
delayMs = durationToMs("retry.delay", retryOptions.delay ?? "1s");
|
|
171
|
+
}
|
|
172
|
+
else if (retryOptions.strategy === "none") {
|
|
173
|
+
delayMs = 0;
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
const initialDelayMs = durationToMs("retry.initialDelay", retryOptions.initialDelay ?? "1s");
|
|
177
|
+
const maxDelayMs = durationToMs("retry.maxDelay", retryOptions.maxDelay ?? "1m");
|
|
178
|
+
const factor = retryOptions.factor ?? 2;
|
|
179
|
+
delayMs = Math.min(maxDelayMs, initialDelayMs * factor ** Math.max(0, args.attempt - 1));
|
|
180
|
+
}
|
|
181
|
+
if (retryOptions.jitter && delayMs > 0) {
|
|
182
|
+
delayMs = Math.ceil(delayMs * (0.5 + Math.random()));
|
|
183
|
+
if (retryOptions.strategy === "exponential") {
|
|
184
|
+
delayMs = Math.min(delayMs, durationToMs("retry.maxDelay", retryOptions.maxDelay ?? "1m"));
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return delayMs;
|
|
188
|
+
}
|
|
32
189
|
async function parsePayload(schema, input, args) {
|
|
33
190
|
const result = await schema["~standard"].validate(input);
|
|
34
191
|
if (result.issues?.length) {
|
|
@@ -56,12 +213,15 @@ async function resolveCtx(ctx) {
|
|
|
56
213
|
* job according to their own runtime.
|
|
57
214
|
*/
|
|
58
215
|
export function defineJob(name, options) {
|
|
216
|
+
const retryOptions = options.retry
|
|
217
|
+
? validateJobRetryOptions(options.retry)
|
|
218
|
+
: undefined;
|
|
59
219
|
return {
|
|
60
220
|
kind: "job",
|
|
61
221
|
name,
|
|
62
222
|
payload: options.payload,
|
|
63
223
|
description: options.description,
|
|
64
|
-
retry:
|
|
224
|
+
retry: retryOptions,
|
|
65
225
|
handle: options.handle,
|
|
66
226
|
};
|
|
67
227
|
}
|
package/dist/jobs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jobs/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jobs/index.ts"],"names":[],"mappings":"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"}
|
package/dist/outbox/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { type EventPayloadDef, type InferEventPayload } from "../events";
|
|
|
8
8
|
import { type InferJobPayload, type JobDef } from "../jobs";
|
|
9
9
|
import type { JobDispatcherPort } from "../ports/events";
|
|
10
10
|
import type { BufferedDomainEventRecorder, DomainEventRecorderPort } from "../ports/unit-of-work";
|
|
11
|
+
import { type ProviderInstrumentationTarget } from "../providers";
|
|
11
12
|
/**
|
|
12
13
|
* Value or promise of that value.
|
|
13
14
|
*/
|
|
@@ -358,6 +359,10 @@ export interface DrainOutboxOptions {
|
|
|
358
359
|
error: unknown;
|
|
359
360
|
now: Date;
|
|
360
361
|
}) => number);
|
|
362
|
+
/**
|
|
363
|
+
* Optional instrumentation target for retry and dead-letter visibility.
|
|
364
|
+
*/
|
|
365
|
+
instrumentation?: ProviderInstrumentationTarget;
|
|
361
366
|
/**
|
|
362
367
|
* Observer called when delivery fails. Observer failures are ignored so the
|
|
363
368
|
* original delivery failure still controls retry/dead-letter behavior.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/outbox/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAEvB,MAAM,WAAW,CAAC;AACnB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/outbox/index.ts"],"names":[],"mappings":"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"}
|