@beignet/core 0.0.1 → 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 +27 -0
- package/README.md +202 -8
- package/dist/application/index.d.ts +93 -9
- package/dist/application/index.d.ts.map +1 -1
- package/dist/application/index.js +11 -11
- package/dist/application/index.js.map +1 -1
- package/dist/client/client.d.ts +73 -12
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +37 -12
- package/dist/client/client.js.map +1 -1
- package/dist/client/index.d.ts +12 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +6 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/types.d.ts +69 -8
- package/dist/client/types.d.ts.map +1 -1
- package/dist/config/index.d.ts +84 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +36 -0
- package/dist/config/index.js.map +1 -1
- package/dist/contracts/contract-builder.d.ts +49 -22
- package/dist/contracts/contract-builder.d.ts.map +1 -1
- package/dist/contracts/contract-builder.js +48 -21
- package/dist/contracts/contract-builder.js.map +1 -1
- package/dist/contracts/contract-group.d.ts +35 -19
- package/dist/contracts/contract-group.d.ts.map +1 -1
- package/dist/contracts/contract-group.js +35 -19
- package/dist/contracts/contract-group.js.map +1 -1
- package/dist/contracts/contract-like.d.ts +4 -4
- package/dist/contracts/contract-like.d.ts.map +1 -1
- package/dist/contracts/contract-like.js +2 -1
- package/dist/contracts/contract-like.js.map +1 -1
- package/dist/contracts/index.d.ts +28 -0
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +12 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/openapi-meta.d.ts +8 -8
- package/dist/contracts/openapi-meta.d.ts.map +1 -1
- package/dist/contracts/path-template.d.ts +27 -0
- package/dist/contracts/path-template.d.ts.map +1 -1
- package/dist/contracts/path-template.js +6 -0
- package/dist/contracts/path-template.js.map +1 -1
- package/dist/contracts/types.d.ts +104 -10
- package/dist/contracts/types.d.ts.map +1 -1
- package/dist/contracts/types.js +15 -0
- package/dist/contracts/types.js.map +1 -1
- package/dist/contracts/utils.d.ts +6 -0
- package/dist/contracts/utils.d.ts.map +1 -1
- package/dist/contracts/utils.js +6 -0
- package/dist/contracts/utils.js.map +1 -1
- package/dist/domain/entity.d.ts +22 -11
- package/dist/domain/entity.d.ts.map +1 -1
- package/dist/domain/entity.js +5 -1
- package/dist/domain/entity.js.map +1 -1
- package/dist/domain/events.d.ts +5 -2
- package/dist/domain/events.d.ts.map +1 -1
- package/dist/domain/events.js +4 -1
- package/dist/domain/events.js.map +1 -1
- package/dist/domain/value-object.d.ts +19 -9
- package/dist/domain/value-object.d.ts.map +1 -1
- package/dist/domain/value-object.js +5 -1
- package/dist/domain/value-object.js.map +1 -1
- package/dist/errors/catalog.d.ts +40 -16
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/catalog.js +18 -7
- package/dist/errors/catalog.js.map +1 -1
- package/dist/errors/response.d.ts +16 -4
- package/dist/errors/response.d.ts.map +1 -1
- package/dist/errors/response.js +3 -3
- package/dist/errors/response.js.map +1 -1
- package/dist/errors/validation.d.ts +10 -1
- package/dist/errors/validation.d.ts.map +1 -1
- package/dist/errors/validation.js +3 -0
- package/dist/errors/validation.js.map +1 -1
- package/dist/events/index.d.ts +133 -0
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +30 -0
- package/dist/events/index.js.map +1 -1
- package/dist/idempotency/index.d.ts +355 -0
- package/dist/idempotency/index.d.ts.map +1 -0
- package/dist/idempotency/index.js +360 -0
- package/dist/idempotency/index.js.map +1 -0
- package/dist/jobs/index.d.ts +248 -4
- package/dist/jobs/index.d.ts.map +1 -1
- package/dist/jobs/index.js +183 -1
- package/dist/jobs/index.js.map +1 -1
- package/dist/mail/index.d.ts +149 -0
- package/dist/mail/index.d.ts.map +1 -1
- package/dist/mail/index.js +30 -0
- package/dist/mail/index.js.map +1 -1
- package/dist/notifications/index.d.ts +369 -0
- package/dist/notifications/index.d.ts.map +1 -0
- package/dist/notifications/index.js +310 -0
- package/dist/notifications/index.js.map +1 -0
- package/dist/openapi/index.d.ts +132 -16
- package/dist/openapi/index.d.ts.map +1 -1
- package/dist/openapi/index.js +1 -1
- package/dist/openapi/index.js.map +1 -1
- package/dist/outbox/index.d.ts +474 -0
- package/dist/outbox/index.d.ts.map +1 -0
- package/dist/outbox/index.js +538 -0
- package/dist/outbox/index.js.map +1 -0
- package/dist/pagination/index.d.ts +166 -0
- package/dist/pagination/index.d.ts.map +1 -0
- package/dist/pagination/index.js +96 -0
- package/dist/pagination/index.js.map +1 -0
- package/dist/ports/audit.d.ts +271 -0
- package/dist/ports/audit.d.ts.map +1 -1
- package/dist/ports/audit.js +128 -0
- package/dist/ports/audit.js.map +1 -1
- package/dist/ports/auth.d.ts +70 -0
- package/dist/ports/auth.d.ts.map +1 -1
- package/dist/ports/auth.js +30 -0
- package/dist/ports/auth.js.map +1 -1
- package/dist/ports/cache.d.ts +41 -0
- package/dist/ports/cache.d.ts.map +1 -1
- package/dist/ports/cache.js +10 -0
- package/dist/ports/cache.js.map +1 -1
- package/dist/ports/clock.d.ts +38 -0
- package/dist/ports/clock.d.ts.map +1 -1
- package/dist/ports/clock.js +20 -0
- package/dist/ports/clock.js.map +1 -1
- package/dist/ports/id-generator.d.ts +37 -0
- package/dist/ports/id-generator.d.ts.map +1 -1
- package/dist/ports/id-generator.js +22 -0
- package/dist/ports/id-generator.js.map +1 -1
- package/dist/ports/index.d.ts +83 -0
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js +41 -5
- package/dist/ports/index.js.map +1 -1
- package/dist/ports/logger.d.ts +56 -0
- package/dist/ports/logger.d.ts.map +1 -1
- package/dist/ports/logger.js +17 -0
- package/dist/ports/logger.js.map +1 -1
- package/dist/ports/policy.d.ts +132 -0
- package/dist/ports/policy.d.ts.map +1 -1
- package/dist/ports/policy.js +45 -0
- package/dist/ports/policy.js.map +1 -1
- package/dist/ports/rate-limit.d.ts +25 -0
- package/dist/ports/rate-limit.d.ts.map +1 -1
- package/dist/ports/rate-limit.js +10 -0
- package/dist/ports/rate-limit.js.map +1 -1
- package/dist/ports/redaction.d.ts +101 -0
- package/dist/ports/redaction.d.ts.map +1 -1
- package/dist/ports/redaction.js +59 -0
- package/dist/ports/redaction.js.map +1 -1
- package/dist/ports/storage.d.ts +100 -0
- package/dist/ports/storage.d.ts.map +1 -1
- package/dist/ports/storage.js +10 -0
- package/dist/ports/storage.js.map +1 -1
- package/dist/ports/testing.d.ts +47 -0
- package/dist/ports/testing.d.ts.map +1 -1
- package/dist/ports/testing.js +23 -0
- package/dist/ports/testing.js.map +1 -1
- package/dist/ports/unit-of-work.d.ts +60 -3
- package/dist/ports/unit-of-work.d.ts.map +1 -1
- package/dist/ports/unit-of-work.js +11 -2
- package/dist/ports/unit-of-work.js.map +1 -1
- package/dist/providers/instrumentation.d.ts +205 -1
- package/dist/providers/instrumentation.d.ts.map +1 -1
- package/dist/providers/instrumentation.js +14 -0
- package/dist/providers/instrumentation.js.map +1 -1
- package/dist/providers/provider.d.ts +14 -1
- package/dist/providers/provider.d.ts.map +1 -1
- package/dist/providers/provider.js.map +1 -1
- package/dist/schedules/index.d.ts +246 -0
- package/dist/schedules/index.d.ts.map +1 -1
- package/dist/schedules/index.js +27 -0
- package/dist/schedules/index.js.map +1 -1
- package/dist/server/health.d.ts +14 -5
- package/dist/server/health.d.ts.map +1 -1
- package/dist/server/health.js +5 -2
- package/dist/server/health.js.map +1 -1
- package/dist/server/hooks/auth.d.ts +68 -26
- 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/cors.d.ts +27 -0
- package/dist/server/hooks/cors.d.ts.map +1 -1
- package/dist/server/hooks/cors.js +12 -0
- package/dist/server/hooks/cors.js.map +1 -1
- package/dist/server/hooks/errors.d.ts +15 -6
- package/dist/server/hooks/errors.d.ts.map +1 -1
- package/dist/server/hooks/errors.js.map +1 -1
- package/dist/server/hooks/index.d.ts +4 -1
- package/dist/server/hooks/index.d.ts.map +1 -1
- package/dist/server/hooks/index.js +3 -0
- package/dist/server/hooks/index.js.map +1 -1
- package/dist/server/hooks/logging.d.ts +36 -0
- package/dist/server/hooks/logging.d.ts.map +1 -1
- package/dist/server/hooks/logging.js +6 -0
- package/dist/server/hooks/logging.js.map +1 -1
- package/dist/server/hooks/rate-limit.d.ts +33 -0
- package/dist/server/hooks/rate-limit.d.ts.map +1 -1
- package/dist/server/hooks/rate-limit.js +11 -0
- package/dist/server/hooks/rate-limit.js.map +1 -1
- package/dist/server/http.d.ts +222 -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 +19 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +7 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/openapi.d.ts +5 -3
- package/dist/server/openapi.d.ts.map +1 -1
- package/dist/server/openapi.js +4 -2
- package/dist/server/openapi.js.map +1 -1
- package/dist/server/providers/loadProviderConfig.d.ts +9 -0
- package/dist/server/providers/loadProviderConfig.d.ts.map +1 -1
- package/dist/server/providers/loadProviderConfig.js +9 -0
- package/dist/server/providers/loadProviderConfig.js.map +1 -1
- package/dist/server/server.d.ts +159 -19
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +72 -31
- package/dist/server/server.js.map +1 -1
- package/dist/testing/index.d.ts +171 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +127 -0
- package/dist/testing/index.js.map +1 -0
- 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 +31 -2
- package/src/application/index.ts +85 -22
- package/src/client/client.ts +73 -12
- package/src/client/index.ts +12 -0
- package/src/client/types.ts +70 -9
- package/src/config/index.ts +86 -0
- package/src/contracts/contract-builder.ts +49 -22
- package/src/contracts/contract-group.ts +35 -19
- package/src/contracts/contract-like.ts +4 -4
- package/src/contracts/index.ts +28 -1
- package/src/contracts/openapi-meta.ts +8 -8
- package/src/contracts/path-template.ts +27 -0
- package/src/contracts/types.ts +111 -10
- package/src/contracts/utils.ts +6 -0
- package/src/domain/entity.ts +22 -11
- package/src/domain/events.ts +5 -2
- package/src/domain/value-object.ts +19 -9
- package/src/errors/catalog.ts +40 -16
- package/src/errors/response.ts +16 -4
- package/src/errors/validation.ts +10 -1
- package/src/events/index.ts +134 -0
- package/src/idempotency/index.ts +767 -0
- package/src/jobs/index.ts +437 -5
- package/src/mail/index.ts +149 -0
- package/src/notifications/index.ts +771 -0
- package/src/openapi/index.ts +133 -16
- package/src/outbox/index.ts +1104 -0
- package/src/pagination/index.ts +278 -0
- package/src/ports/audit.ts +271 -0
- package/src/ports/auth.ts +70 -0
- package/src/ports/cache.ts +41 -0
- package/src/ports/clock.ts +38 -0
- package/src/ports/id-generator.ts +37 -0
- package/src/ports/index.ts +106 -11
- package/src/ports/logger.ts +56 -0
- package/src/ports/policy.ts +133 -0
- package/src/ports/rate-limit.ts +25 -0
- package/src/ports/redaction.ts +101 -0
- package/src/ports/storage.ts +100 -0
- package/src/ports/testing.ts +47 -0
- package/src/ports/unit-of-work.ts +60 -3
- package/src/providers/instrumentation.ts +211 -1
- package/src/providers/provider.ts +14 -1
- package/src/schedules/index.ts +247 -0
- package/src/server/health.ts +14 -5
- package/src/server/hooks/auth.ts +105 -120
- package/src/server/hooks/cors.ts +27 -0
- package/src/server/hooks/errors.ts +15 -6
- package/src/server/hooks/index.ts +4 -5
- package/src/server/hooks/logging.ts +36 -0
- package/src/server/hooks/rate-limit.ts +33 -0
- package/src/server/http.ts +249 -1
- package/src/server/index.ts +19 -1
- package/src/server/openapi.ts +5 -3
- package/src/server/providers/loadProviderConfig.ts +9 -0
- package/src/server/server.ts +296 -30
- package/src/testing/index.ts +348 -0
- package/src/uploads/client.ts +861 -0
- package/src/uploads/index.ts +1067 -0
|
@@ -1,105 +1,351 @@
|
|
|
1
1
|
import type { StandardSchemaV1 } from "@standard-schema/spec";
|
|
2
|
+
/**
|
|
3
|
+
* Any Standard Schema compatible validator.
|
|
4
|
+
*/
|
|
2
5
|
export type StandardSchema = StandardSchemaV1<unknown, unknown>;
|
|
6
|
+
/**
|
|
7
|
+
* Value or promise of that value.
|
|
8
|
+
*/
|
|
3
9
|
export type MaybePromise<T> = T | Promise<T>;
|
|
10
|
+
/**
|
|
11
|
+
* Infer the parsed output type from a Standard Schema.
|
|
12
|
+
*/
|
|
4
13
|
export type InferSchemaOutput<T extends StandardSchemaV1> = StandardSchemaV1.InferOutput<T>;
|
|
14
|
+
/**
|
|
15
|
+
* Date input accepted by schedule runners.
|
|
16
|
+
*/
|
|
5
17
|
export type ScheduleDateInput = Date | string | number;
|
|
18
|
+
/**
|
|
19
|
+
* Metadata for one schedule run.
|
|
20
|
+
*/
|
|
6
21
|
export interface ScheduleRunContext {
|
|
22
|
+
/**
|
|
23
|
+
* Optional provider run ID.
|
|
24
|
+
*/
|
|
7
25
|
readonly id?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Time the provider planned the run.
|
|
28
|
+
*/
|
|
8
29
|
readonly scheduledAt?: Date;
|
|
30
|
+
/**
|
|
31
|
+
* Time the runner triggered this execution.
|
|
32
|
+
*/
|
|
9
33
|
readonly triggeredAt: Date;
|
|
34
|
+
/**
|
|
35
|
+
* Optional provider or app source label.
|
|
36
|
+
*/
|
|
10
37
|
readonly source?: string;
|
|
11
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Minimal schedule definition shape accepted by schedule helpers.
|
|
41
|
+
*/
|
|
12
42
|
export interface SchedulePayloadDef<Name extends string = string, Payload extends StandardSchema = StandardSchema> {
|
|
43
|
+
/**
|
|
44
|
+
* Stable schedule name.
|
|
45
|
+
*/
|
|
13
46
|
readonly name: Name;
|
|
47
|
+
/**
|
|
48
|
+
* Standard Schema payload validator.
|
|
49
|
+
*/
|
|
14
50
|
readonly payload: Payload;
|
|
15
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Schedule definition created by `defineSchedule(...)`.
|
|
54
|
+
*/
|
|
16
55
|
export interface ScheduleDef<Name extends string = string, Payload extends StandardSchema = StandardSchema, Ctx = unknown> extends SchedulePayloadDef<Name, Payload> {
|
|
56
|
+
/**
|
|
57
|
+
* Discriminator for schedule definitions.
|
|
58
|
+
*/
|
|
17
59
|
readonly kind: "schedule";
|
|
60
|
+
/**
|
|
61
|
+
* Cron expression consumed by schedule providers.
|
|
62
|
+
*/
|
|
18
63
|
readonly cron: string;
|
|
64
|
+
/**
|
|
65
|
+
* Optional IANA timezone consumed by schedule providers.
|
|
66
|
+
*/
|
|
19
67
|
readonly timezone?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Optional human-readable description for docs and tooling.
|
|
70
|
+
*/
|
|
20
71
|
readonly description?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Build a payload when the provider does not supply one.
|
|
74
|
+
*/
|
|
21
75
|
createPayload?(args: ScheduleCreatePayloadArgs<ScheduleDef<Name, Payload, Ctx>>): MaybePromise<InferSchemaOutput<Payload>>;
|
|
76
|
+
/**
|
|
77
|
+
* Handle a parsed schedule payload.
|
|
78
|
+
*/
|
|
22
79
|
handle(args: ScheduleHandleArgs<ScheduleDef<Name, Payload, Ctx>, Ctx>): MaybePromise<void>;
|
|
23
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Infer the parsed payload type for a schedule definition.
|
|
83
|
+
*/
|
|
24
84
|
export type InferSchedulePayload<S extends SchedulePayloadDef> = S["payload"] extends StandardSchemaV1<unknown, infer Output> ? Output : never;
|
|
85
|
+
/**
|
|
86
|
+
* Arguments passed to a schedule `createPayload` callback.
|
|
87
|
+
*/
|
|
25
88
|
export interface ScheduleCreatePayloadArgs<S extends SchedulePayloadDef> {
|
|
89
|
+
/**
|
|
90
|
+
* Schedule definition being run.
|
|
91
|
+
*/
|
|
26
92
|
schedule: S;
|
|
93
|
+
/**
|
|
94
|
+
* Run metadata.
|
|
95
|
+
*/
|
|
27
96
|
run: ScheduleRunContext;
|
|
28
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Arguments passed to a schedule handler.
|
|
100
|
+
*/
|
|
29
101
|
export interface ScheduleHandleArgs<S extends ScheduleDef, Ctx> {
|
|
102
|
+
/**
|
|
103
|
+
* Schedule definition being handled.
|
|
104
|
+
*/
|
|
30
105
|
schedule: S;
|
|
106
|
+
/**
|
|
107
|
+
* Parsed schedule payload.
|
|
108
|
+
*/
|
|
31
109
|
payload: InferSchedulePayload<S>;
|
|
110
|
+
/**
|
|
111
|
+
* Handler context.
|
|
112
|
+
*/
|
|
32
113
|
ctx: Ctx;
|
|
114
|
+
/**
|
|
115
|
+
* Run metadata.
|
|
116
|
+
*/
|
|
33
117
|
run: ScheduleRunContext;
|
|
34
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Options for `defineSchedule(...)`.
|
|
121
|
+
*/
|
|
35
122
|
export interface DefineScheduleOptions<Name extends string, Payload extends StandardSchema, Ctx> {
|
|
123
|
+
/**
|
|
124
|
+
* Cron expression consumed by schedule providers.
|
|
125
|
+
*/
|
|
36
126
|
cron: string;
|
|
127
|
+
/**
|
|
128
|
+
* Optional IANA timezone consumed by schedule providers.
|
|
129
|
+
*/
|
|
37
130
|
timezone?: string;
|
|
131
|
+
/**
|
|
132
|
+
* Standard Schema payload validator.
|
|
133
|
+
*/
|
|
38
134
|
payload: Payload;
|
|
135
|
+
/**
|
|
136
|
+
* Optional human-readable description for docs and tooling.
|
|
137
|
+
*/
|
|
39
138
|
description?: string;
|
|
139
|
+
/**
|
|
140
|
+
* Build a payload when the provider does not supply one.
|
|
141
|
+
*/
|
|
40
142
|
createPayload?(args: ScheduleCreatePayloadArgs<ScheduleDef<Name, Payload, Ctx>>): MaybePromise<InferSchemaOutput<Payload>>;
|
|
143
|
+
/**
|
|
144
|
+
* Handle a parsed schedule payload.
|
|
145
|
+
*/
|
|
41
146
|
handle(args: ScheduleHandleArgs<ScheduleDef<Name, Payload, Ctx>, Ctx>): MaybePromise<void>;
|
|
42
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Options for one manual schedule run.
|
|
150
|
+
*/
|
|
43
151
|
export interface ScheduleRunOptions<Payload = unknown> {
|
|
152
|
+
/**
|
|
153
|
+
* Payload supplied by the provider or manual runner.
|
|
154
|
+
*/
|
|
44
155
|
payload?: Payload;
|
|
156
|
+
/**
|
|
157
|
+
* Optional provider run ID.
|
|
158
|
+
*/
|
|
45
159
|
id?: string;
|
|
160
|
+
/**
|
|
161
|
+
* Time the provider planned the run.
|
|
162
|
+
*/
|
|
46
163
|
scheduledAt?: ScheduleDateInput;
|
|
164
|
+
/**
|
|
165
|
+
* Time the runner triggered the execution.
|
|
166
|
+
*/
|
|
47
167
|
triggeredAt?: ScheduleDateInput;
|
|
168
|
+
/**
|
|
169
|
+
* Optional provider or app source label.
|
|
170
|
+
*/
|
|
48
171
|
source?: string;
|
|
49
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Arguments for `runSchedule(...)`.
|
|
175
|
+
*/
|
|
50
176
|
export type ScheduleRunArgs<Ctx, Payload = unknown> = ScheduleRunOptions<Payload> & {
|
|
177
|
+
/**
|
|
178
|
+
* Handler context.
|
|
179
|
+
*/
|
|
51
180
|
ctx: Ctx;
|
|
52
181
|
};
|
|
182
|
+
/**
|
|
183
|
+
* Arguments passed to schedule lifecycle hooks.
|
|
184
|
+
*/
|
|
53
185
|
export interface ScheduleLifecycleArgs<S extends ScheduleDef = ScheduleDef> {
|
|
186
|
+
/**
|
|
187
|
+
* Schedule definition being run.
|
|
188
|
+
*/
|
|
54
189
|
schedule: S;
|
|
190
|
+
/**
|
|
191
|
+
* Parsed schedule payload.
|
|
192
|
+
*/
|
|
55
193
|
payload: InferSchedulePayload<S>;
|
|
194
|
+
/**
|
|
195
|
+
* Run metadata.
|
|
196
|
+
*/
|
|
56
197
|
run: ScheduleRunContext;
|
|
57
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Arguments passed to a schedule error hook.
|
|
201
|
+
*/
|
|
58
202
|
export interface ScheduleErrorArgs<S extends ScheduleDef = ScheduleDef> {
|
|
203
|
+
/**
|
|
204
|
+
* Schedule definition being run.
|
|
205
|
+
*/
|
|
59
206
|
schedule: S;
|
|
207
|
+
/**
|
|
208
|
+
* Parsed payload when validation or payload creation completed.
|
|
209
|
+
*/
|
|
60
210
|
payload?: InferSchedulePayload<S>;
|
|
211
|
+
/**
|
|
212
|
+
* Run metadata.
|
|
213
|
+
*/
|
|
61
214
|
run: ScheduleRunContext;
|
|
215
|
+
/**
|
|
216
|
+
* Error thrown by payload creation, validation, or the handler.
|
|
217
|
+
*/
|
|
62
218
|
error: unknown;
|
|
63
219
|
}
|
|
220
|
+
/**
|
|
221
|
+
* Schedule lifecycle hook names.
|
|
222
|
+
*/
|
|
64
223
|
export type ScheduleHookName = "start" | "success" | "error";
|
|
224
|
+
/**
|
|
225
|
+
* Arguments passed when a schedule lifecycle hook itself fails.
|
|
226
|
+
*/
|
|
65
227
|
export interface ScheduleHookErrorArgs<S extends ScheduleDef = ScheduleDef> {
|
|
228
|
+
/**
|
|
229
|
+
* Schedule definition being run.
|
|
230
|
+
*/
|
|
66
231
|
schedule: S;
|
|
232
|
+
/**
|
|
233
|
+
* Parsed payload when available.
|
|
234
|
+
*/
|
|
67
235
|
payload?: InferSchedulePayload<S>;
|
|
236
|
+
/**
|
|
237
|
+
* Run metadata.
|
|
238
|
+
*/
|
|
68
239
|
run: ScheduleRunContext;
|
|
240
|
+
/**
|
|
241
|
+
* Lifecycle hook that failed.
|
|
242
|
+
*/
|
|
69
243
|
hook: ScheduleHookName;
|
|
244
|
+
/**
|
|
245
|
+
* Hook error.
|
|
246
|
+
*/
|
|
70
247
|
error: unknown;
|
|
248
|
+
/**
|
|
249
|
+
* Original schedule error when the failing hook is `onError`.
|
|
250
|
+
*/
|
|
71
251
|
scheduleError?: unknown;
|
|
72
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* Options for the inline schedule runner.
|
|
255
|
+
*/
|
|
73
256
|
export interface InlineScheduleRunnerOptions<Ctx> {
|
|
257
|
+
/**
|
|
258
|
+
* Static schedule context or factory evaluated for each run.
|
|
259
|
+
*/
|
|
74
260
|
ctx?: Ctx | (() => MaybePromise<Ctx>);
|
|
261
|
+
/**
|
|
262
|
+
* Clock used when run timestamps are not provided.
|
|
263
|
+
*/
|
|
75
264
|
now?: () => Date;
|
|
265
|
+
/**
|
|
266
|
+
* Called after payload validation and before the schedule handler.
|
|
267
|
+
*/
|
|
76
268
|
onStart?<S extends ScheduleDef<string, StandardSchema, Ctx>>(args: ScheduleLifecycleArgs<S>): MaybePromise<void>;
|
|
269
|
+
/**
|
|
270
|
+
* Called after the schedule handler completes.
|
|
271
|
+
*/
|
|
77
272
|
onSuccess?<S extends ScheduleDef<string, StandardSchema, Ctx>>(args: ScheduleLifecycleArgs<S>): MaybePromise<void>;
|
|
273
|
+
/**
|
|
274
|
+
* Called when payload creation, validation, or the handler fails.
|
|
275
|
+
*/
|
|
78
276
|
onError?<S extends ScheduleDef<string, StandardSchema, Ctx>>(args: ScheduleErrorArgs<S>): MaybePromise<void>;
|
|
277
|
+
/**
|
|
278
|
+
* Called when a lifecycle hook throws.
|
|
279
|
+
*/
|
|
79
280
|
onHookError?<S extends ScheduleDef<string, StandardSchema, Ctx>>(args: ScheduleHookErrorArgs<S>): MaybePromise<void>;
|
|
80
281
|
}
|
|
282
|
+
/**
|
|
283
|
+
* Port shape for running schedules.
|
|
284
|
+
*/
|
|
81
285
|
export interface ScheduleRunnerPort<Ctx = unknown> {
|
|
286
|
+
/**
|
|
287
|
+
* Run a schedule with optional provider metadata and payload.
|
|
288
|
+
*/
|
|
82
289
|
run<S extends ScheduleDef<string, StandardSchema, Ctx>>(schedule: S, options?: ScheduleRunOptions<InferSchedulePayload<S>>): Promise<void>;
|
|
83
290
|
}
|
|
291
|
+
/**
|
|
292
|
+
* Local/test schedule runner that executes handlers inline.
|
|
293
|
+
*/
|
|
84
294
|
export interface InlineScheduleRunner<Ctx = unknown> extends ScheduleRunnerPort<Ctx> {
|
|
85
295
|
}
|
|
296
|
+
/**
|
|
297
|
+
* Context-bound schedule helper factory.
|
|
298
|
+
*/
|
|
86
299
|
export interface ScheduleHandlers<Ctx> {
|
|
300
|
+
/**
|
|
301
|
+
* Define a schedule with the bound context type.
|
|
302
|
+
*/
|
|
87
303
|
defineSchedule<Name extends string, Payload extends StandardSchema>(name: Name, options: DefineScheduleOptions<Name, Payload, Ctx>): ScheduleDef<Name, Payload, Ctx>;
|
|
304
|
+
/**
|
|
305
|
+
* Create an inline schedule runner with the bound context type.
|
|
306
|
+
*/
|
|
88
307
|
createInlineScheduleRunner(options?: InlineScheduleRunnerOptions<Ctx>): InlineScheduleRunner<Ctx>;
|
|
89
308
|
}
|
|
309
|
+
/**
|
|
310
|
+
* Error thrown when schedule payload validation fails.
|
|
311
|
+
*/
|
|
90
312
|
export declare class ScheduleValidationError extends Error {
|
|
313
|
+
/**
|
|
314
|
+
* Raw Standard Schema validation issues.
|
|
315
|
+
*/
|
|
91
316
|
readonly issues: readonly StandardSchemaV1.Issue[];
|
|
92
317
|
constructor(args: {
|
|
93
318
|
name: string;
|
|
94
319
|
issues: readonly StandardSchemaV1.Issue[];
|
|
95
320
|
});
|
|
96
321
|
}
|
|
322
|
+
/**
|
|
323
|
+
* Error thrown when schedule run metadata cannot be normalized.
|
|
324
|
+
*/
|
|
97
325
|
export declare class ScheduleRunContextError extends Error {
|
|
98
326
|
constructor(message: string);
|
|
99
327
|
}
|
|
328
|
+
/**
|
|
329
|
+
* Define a typed schedule.
|
|
330
|
+
*
|
|
331
|
+
* Cron and timezone are metadata for schedule providers. The inline runner only
|
|
332
|
+
* runs schedules when its `run(...)` method is called.
|
|
333
|
+
*/
|
|
100
334
|
export declare function defineSchedule<Name extends string, Payload extends StandardSchema, Ctx = unknown>(name: Name, options: DefineScheduleOptions<Name, Payload, Ctx>): ScheduleDef<Name, Payload, Ctx>;
|
|
335
|
+
/**
|
|
336
|
+
* Validate and parse a schedule payload with the schedule's Standard Schema.
|
|
337
|
+
*/
|
|
101
338
|
export declare function parseSchedulePayload<S extends SchedulePayloadDef>(schedule: S, payload: unknown): Promise<InferSchedulePayload<S>>;
|
|
339
|
+
/**
|
|
340
|
+
* Run one schedule directly with an explicit context.
|
|
341
|
+
*/
|
|
102
342
|
export declare function runSchedule<Ctx, S extends ScheduleDef<string, StandardSchema, Ctx>>(schedule: S, args: ScheduleRunArgs<Ctx, InferSchedulePayload<S>>): Promise<void>;
|
|
343
|
+
/**
|
|
344
|
+
* Create a local/test schedule runner that executes handlers inline.
|
|
345
|
+
*/
|
|
103
346
|
export declare function createInlineScheduleRunner<Ctx>(options?: InlineScheduleRunnerOptions<Ctx>): InlineScheduleRunner<Ctx>;
|
|
347
|
+
/**
|
|
348
|
+
* Create schedule helper methods bound to an application context type.
|
|
349
|
+
*/
|
|
104
350
|
export declare function createScheduleHandlers<Ctx>(): ScheduleHandlers<Ctx>;
|
|
105
351
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schedules/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schedules/index.ts"],"names":[],"mappings":"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"}
|
package/dist/schedules/index.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when schedule payload validation fails.
|
|
3
|
+
*/
|
|
1
4
|
export class ScheduleValidationError extends Error {
|
|
5
|
+
/**
|
|
6
|
+
* Raw Standard Schema validation issues.
|
|
7
|
+
*/
|
|
2
8
|
issues;
|
|
3
9
|
constructor(args) {
|
|
4
10
|
super(`Schedule "${args.name}" payload validation failed: ${formatIssues(args.issues)}`);
|
|
@@ -6,6 +12,9 @@ export class ScheduleValidationError extends Error {
|
|
|
6
12
|
this.issues = args.issues;
|
|
7
13
|
}
|
|
8
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Error thrown when schedule run metadata cannot be normalized.
|
|
17
|
+
*/
|
|
9
18
|
export class ScheduleRunContextError extends Error {
|
|
10
19
|
constructor(message) {
|
|
11
20
|
super(message);
|
|
@@ -108,6 +117,12 @@ async function runErrorHook(handler, onHookError, args) {
|
|
|
108
117
|
});
|
|
109
118
|
}
|
|
110
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Define a typed schedule.
|
|
122
|
+
*
|
|
123
|
+
* Cron and timezone are metadata for schedule providers. The inline runner only
|
|
124
|
+
* runs schedules when its `run(...)` method is called.
|
|
125
|
+
*/
|
|
111
126
|
export function defineSchedule(name, options) {
|
|
112
127
|
return {
|
|
113
128
|
kind: "schedule",
|
|
@@ -120,11 +135,17 @@ export function defineSchedule(name, options) {
|
|
|
120
135
|
handle: options.handle,
|
|
121
136
|
};
|
|
122
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Validate and parse a schedule payload with the schedule's Standard Schema.
|
|
140
|
+
*/
|
|
123
141
|
export async function parseSchedulePayload(schedule, payload) {
|
|
124
142
|
return (await parsePayload(schedule.payload, payload, {
|
|
125
143
|
name: schedule.name,
|
|
126
144
|
}));
|
|
127
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Run one schedule directly with an explicit context.
|
|
148
|
+
*/
|
|
128
149
|
export async function runSchedule(schedule, args) {
|
|
129
150
|
const run = createRunContext(args, () => new Date());
|
|
130
151
|
const payload = await resolveSchedulePayload(schedule, args, run);
|
|
@@ -135,6 +156,9 @@ export async function runSchedule(schedule, args) {
|
|
|
135
156
|
run,
|
|
136
157
|
});
|
|
137
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Create a local/test schedule runner that executes handlers inline.
|
|
161
|
+
*/
|
|
138
162
|
export function createInlineScheduleRunner(options = {}) {
|
|
139
163
|
const now = options.now ?? (() => new Date());
|
|
140
164
|
return {
|
|
@@ -165,6 +189,9 @@ export function createInlineScheduleRunner(options = {}) {
|
|
|
165
189
|
},
|
|
166
190
|
};
|
|
167
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* Create schedule helper methods bound to an application context type.
|
|
194
|
+
*/
|
|
168
195
|
export function createScheduleHandlers() {
|
|
169
196
|
return {
|
|
170
197
|
defineSchedule(name, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schedules/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schedules/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server/health.d.ts
CHANGED
|
@@ -5,17 +5,23 @@
|
|
|
5
5
|
import type { AnyPorts } from "../ports";
|
|
6
6
|
import type { HttpRequestLike, HttpResponseLike } from "./types";
|
|
7
7
|
/**
|
|
8
|
-
* Health check result
|
|
8
|
+
* Health check result returned by health handlers.
|
|
9
9
|
*/
|
|
10
10
|
export interface HealthCheckResult {
|
|
11
|
+
/**
|
|
12
|
+
* Whether the app is healthy.
|
|
13
|
+
*/
|
|
11
14
|
ok: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Optional per-dependency health details.
|
|
17
|
+
*/
|
|
12
18
|
details?: Record<string, {
|
|
13
19
|
ok: boolean;
|
|
14
20
|
message?: string;
|
|
15
21
|
}>;
|
|
16
22
|
}
|
|
17
23
|
/**
|
|
18
|
-
* Health check configuration
|
|
24
|
+
* Health check configuration.
|
|
19
25
|
*/
|
|
20
26
|
export interface HealthConfig<Ports> {
|
|
21
27
|
/** Enable health endpoint (default: false) */
|
|
@@ -30,12 +36,15 @@ export interface HealthConfig<Ports> {
|
|
|
30
36
|
check?: (ports: Ports) => Promise<HealthCheckResult>;
|
|
31
37
|
}
|
|
32
38
|
/**
|
|
33
|
-
* Application environment
|
|
39
|
+
* Application environment.
|
|
34
40
|
*/
|
|
35
41
|
export type AppEnvironment = "development" | "production" | "test";
|
|
36
42
|
/**
|
|
37
|
-
* Create a health check handler
|
|
38
|
-
*
|
|
43
|
+
* Create a framework-neutral health check handler.
|
|
44
|
+
*
|
|
45
|
+
* The returned handler reports 200 when healthy and 503 when unhealthy. Thrown
|
|
46
|
+
* health check errors include details in development/test and use a generic
|
|
47
|
+
* message in production.
|
|
39
48
|
*/
|
|
40
49
|
export declare function createHealthHandler<Ports extends AnyPorts>(ports: Ports, healthConfig: HealthConfig<Ports> | undefined, env: AppEnvironment): (req: HttpRequestLike) => Promise<HttpResponseLike>;
|
|
41
50
|
//# sourceMappingURL=health.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/server/health.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,KAAK;IACjC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;AAEnE
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/server/health.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,EAAE,EAAE,OAAO,CAAC;IACZ;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,KAAK;IACjC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;AAEnE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,SAAS,QAAQ,EACxD,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,EAC7C,GAAG,EAAE,cAAc,GAClB,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAoCrD"}
|
package/dist/server/health.js
CHANGED
|
@@ -3,8 +3,11 @@
|
|
|
3
3
|
* Health check handler for Beignet server adapters.
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
|
-
* Create a health check handler
|
|
7
|
-
*
|
|
6
|
+
* Create a framework-neutral health check handler.
|
|
7
|
+
*
|
|
8
|
+
* The returned handler reports 200 when healthy and 503 when unhealthy. Thrown
|
|
9
|
+
* health check errors include details in development/test and use a generic
|
|
10
|
+
* message in production.
|
|
8
11
|
*/
|
|
9
12
|
export function createHealthHandler(ports, healthConfig, env) {
|
|
10
13
|
return async (_req) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/server/health.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/server/health.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwCH;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAY,EACZ,YAA6C,EAC7C,GAAmB;IAEnB,OAAO,KAAK,EAAE,IAAqB,EAA6B,EAAE;QAChE,IAAI,MAAyB,CAAC;QAC9B,IAAI,YAAY,EAAE,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,mDAAmD;gBACnD,iFAAiF;gBACjF,MAAM,mBAAmB,GAAG,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,MAAM,CAAC;gBACpE,MAAM,GAAG;oBACP,EAAE,EAAE,KAAK;oBACT,OAAO,EAAE;wBACP,KAAK,EAAE;4BACL,EAAE,EAAE,KAAK;4BACT,OAAO,EAAE,mBAAmB;gCAC1B,CAAC,CAAC,KAAK,YAAY,KAAK;oCACtB,CAAC,CAAC,KAAK,CAAC,OAAO;oCACf,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gCACjB,CAAC,CAAC,qBAAqB;yBAC1B;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAErC,OAAO;YACL,MAAM;YACN,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,42 +1,84 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { HttpRequestLike, HttpResponse, ServerHook } from "../types";
|
|
1
|
+
import type { HttpRequestLike, RouteHook } from "../types";
|
|
3
2
|
type MaybePromise<T> = T | Promise<T>;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
ports: {
|
|
8
|
-
auth: AuthPort;
|
|
9
|
-
};
|
|
10
|
-
};
|
|
3
|
+
/**
|
|
4
|
+
* Arguments passed to auth route-hook callbacks.
|
|
5
|
+
*/
|
|
11
6
|
export type AuthHookArgs<Ctx> = {
|
|
7
|
+
/**
|
|
8
|
+
* Framework-neutral request.
|
|
9
|
+
*/
|
|
12
10
|
req: HttpRequestLike;
|
|
11
|
+
/**
|
|
12
|
+
* Current route handler context.
|
|
13
|
+
*/
|
|
13
14
|
ctx: Ctx;
|
|
15
|
+
/**
|
|
16
|
+
* Matched contract metadata and schemas.
|
|
17
|
+
*/
|
|
14
18
|
contract: {
|
|
15
19
|
metadata?: Record<string, unknown>;
|
|
16
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* Parsed path parameters.
|
|
23
|
+
*/
|
|
17
24
|
path: unknown;
|
|
25
|
+
/**
|
|
26
|
+
* Parsed query parameters.
|
|
27
|
+
*/
|
|
18
28
|
query: unknown;
|
|
29
|
+
/**
|
|
30
|
+
* Parsed request headers.
|
|
31
|
+
*/
|
|
19
32
|
headers: unknown;
|
|
33
|
+
/**
|
|
34
|
+
* Parsed request body.
|
|
35
|
+
*/
|
|
20
36
|
body: unknown;
|
|
21
37
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
export type
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Options for route-scoped auth hooks.
|
|
40
|
+
*/
|
|
41
|
+
export type AuthHooksOptions<Ctx, AddedCtx extends object> = {
|
|
42
|
+
/**
|
|
43
|
+
* Hook name prefix used in diagnostics.
|
|
44
|
+
*/
|
|
29
45
|
name?: string;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Resolve authenticated context additions for the current request.
|
|
48
|
+
*
|
|
49
|
+
* Return `null` when the request is unauthenticated. Required hooks will
|
|
50
|
+
* reject that request; optional hooks will add no auth context.
|
|
51
|
+
*/
|
|
52
|
+
resolve: (args: AuthHookArgs<Ctx>) => MaybePromise<AddedCtx | null>;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Route-scoped auth hook set.
|
|
56
|
+
*/
|
|
57
|
+
export type AuthRouteHooks<Ctx, AddedCtx extends object> = {
|
|
58
|
+
/**
|
|
59
|
+
* Mark a route as intentionally public.
|
|
60
|
+
*/
|
|
61
|
+
public: () => RouteHook<Ctx, Record<string, never>>;
|
|
62
|
+
/**
|
|
63
|
+
* Resolve auth when present and add optional auth fields to the handler ctx.
|
|
64
|
+
*/
|
|
65
|
+
optional: () => RouteHook<Ctx, Partial<AddedCtx>>;
|
|
66
|
+
/**
|
|
67
|
+
* Require auth and add authenticated fields to the handler ctx.
|
|
68
|
+
*/
|
|
69
|
+
required: () => RouteHook<Ctx, AddedCtx>;
|
|
35
70
|
};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Create route-scoped authentication hooks.
|
|
73
|
+
*
|
|
74
|
+
* Use `auth.required()` on routes that require an authenticated actor and
|
|
75
|
+
* `auth.optional()` where handlers can use auth when present. The returned
|
|
76
|
+
* route hooks enrich handler `ctx`; business authorization still belongs in
|
|
77
|
+
* feature policies or use cases.
|
|
78
|
+
*
|
|
79
|
+
* @param options - Auth resolution callback and optional diagnostic name.
|
|
80
|
+
* @returns Public, optional, and required route-hook factories.
|
|
81
|
+
*/
|
|
82
|
+
export declare function createAuthHooks<Ctx, AddedCtx extends object>(options: AuthHooksOptions<Ctx, AddedCtx>): AuthRouteHooks<Ctx, AddedCtx>;
|
|
41
83
|
export {};
|
|
42
84
|
//# sourceMappingURL=auth.d.ts.map
|