@beignet/core 0.0.1 → 0.0.2
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 +11 -0
- package/README.md +149 -4
- 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 +110 -0
- package/dist/jobs/index.d.ts.map +1 -1
- package/dist/jobs/index.js +22 -0
- 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 +469 -0
- package/dist/outbox/index.d.ts.map +1 -0
- package/dist/outbox/index.js +482 -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 +204 -0
- 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 +57 -0
- package/dist/server/hooks/auth.d.ts.map +1 -1
- 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 +3 -0
- 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 +170 -0
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/index.d.ts +18 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +6 -0
- 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 +107 -8
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +27 -7
- package/dist/server/server.js.map +1 -1
- package/dist/testing/index.d.ts +167 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +119 -0
- package/dist/testing/index.js.map +1 -0
- package/package.json +21 -1
- 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 +111 -0
- 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 +1024 -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 +204 -0
- 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 +58 -0
- package/src/server/hooks/cors.ts +27 -0
- package/src/server/hooks/errors.ts +15 -6
- package/src/server/hooks/index.ts +3 -0
- package/src/server/hooks/logging.ts +36 -0
- package/src/server/hooks/rate-limit.ts +33 -0
- package/src/server/http.ts +170 -1
- package/src/server/index.ts +18 -1
- package/src/server/openapi.ts +5 -3
- package/src/server/providers/loadProviderConfig.ts +9 -0
- package/src/server/server.ts +107 -9
- package/src/testing/index.ts +337 -0
|
@@ -32,8 +32,12 @@ function assertNoCatalogErrorStatusConflicts(metadata, next) {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
35
|
+
* Fluent builder for one HTTP contract.
|
|
36
|
+
*
|
|
37
|
+
* A contract describes the transport boundary for one endpoint: method, path,
|
|
38
|
+
* request schemas, response schemas, metadata, and route-owned catalog errors.
|
|
39
|
+
* Builder methods are immutable; each call returns a new builder with narrower
|
|
40
|
+
* types.
|
|
37
41
|
*/
|
|
38
42
|
export class ContractBuilder {
|
|
39
43
|
kind;
|
|
@@ -66,7 +70,10 @@ export class ContractBuilder {
|
|
|
66
70
|
this._meta = config.metadata;
|
|
67
71
|
}
|
|
68
72
|
/**
|
|
69
|
-
*
|
|
73
|
+
* Request and response schemas attached to this contract.
|
|
74
|
+
*
|
|
75
|
+
* Server adapters use these for validation. Client and frontend integrations
|
|
76
|
+
* use them for local validation and type inference.
|
|
70
77
|
*/
|
|
71
78
|
get schema() {
|
|
72
79
|
return {
|
|
@@ -78,32 +85,31 @@ export class ContractBuilder {
|
|
|
78
85
|
};
|
|
79
86
|
}
|
|
80
87
|
/**
|
|
81
|
-
*
|
|
88
|
+
* Response schemas keyed by HTTP status code.
|
|
82
89
|
*/
|
|
83
90
|
get responseSchemas() {
|
|
84
91
|
return this._responses;
|
|
85
92
|
}
|
|
86
93
|
/**
|
|
87
|
-
*
|
|
94
|
+
* URL path template for this contract.
|
|
88
95
|
*/
|
|
89
96
|
get pathTemplate() {
|
|
90
97
|
return this._path;
|
|
91
98
|
}
|
|
92
99
|
/**
|
|
93
|
-
*
|
|
100
|
+
* URL path template alias.
|
|
94
101
|
*/
|
|
95
102
|
get path() {
|
|
96
103
|
return this._path;
|
|
97
104
|
}
|
|
98
105
|
/**
|
|
99
|
-
*
|
|
106
|
+
* Metadata consumed by hooks, OpenAPI generation, and app conventions.
|
|
100
107
|
*/
|
|
101
108
|
get metadata() {
|
|
102
109
|
return this._meta;
|
|
103
110
|
}
|
|
104
111
|
/**
|
|
105
|
-
*
|
|
106
|
-
* Use this when passing to adapters that expect the plain config type
|
|
112
|
+
* Plain contract config consumed by framework internals and integrations.
|
|
107
113
|
*/
|
|
108
114
|
get config() {
|
|
109
115
|
return {
|
|
@@ -122,7 +128,10 @@ export class ContractBuilder {
|
|
|
122
128
|
};
|
|
123
129
|
}
|
|
124
130
|
/**
|
|
125
|
-
*
|
|
131
|
+
* Attach a schema for dynamic path parameters.
|
|
132
|
+
*
|
|
133
|
+
* The schema validates parameters parsed from path templates such as
|
|
134
|
+
* `/posts/:id` or `/posts/[id]`.
|
|
126
135
|
*/
|
|
127
136
|
pathParams(schema) {
|
|
128
137
|
return new ContractBuilder({
|
|
@@ -141,7 +150,7 @@ export class ContractBuilder {
|
|
|
141
150
|
});
|
|
142
151
|
}
|
|
143
152
|
/**
|
|
144
|
-
*
|
|
153
|
+
* Attach a schema for query parameters.
|
|
145
154
|
*/
|
|
146
155
|
query(schema) {
|
|
147
156
|
return new ContractBuilder({
|
|
@@ -160,8 +169,9 @@ export class ContractBuilder {
|
|
|
160
169
|
});
|
|
161
170
|
}
|
|
162
171
|
/**
|
|
163
|
-
*
|
|
164
|
-
*
|
|
172
|
+
* Attach a schema for a JSON request body.
|
|
173
|
+
*
|
|
174
|
+
* This method is only available on POST, PUT, and PATCH contracts.
|
|
165
175
|
*/
|
|
166
176
|
body(schema) {
|
|
167
177
|
const self = this;
|
|
@@ -181,10 +191,11 @@ export class ContractBuilder {
|
|
|
181
191
|
});
|
|
182
192
|
}
|
|
183
193
|
/**
|
|
184
|
-
*
|
|
194
|
+
* Attach a request header schema.
|
|
185
195
|
*
|
|
186
196
|
* Multiple schemas are evaluated in declaration order and their parsed
|
|
187
|
-
* outputs are merged. This
|
|
197
|
+
* outputs are merged. This lets a contract inherit shared group headers and
|
|
198
|
+
* still declare route-specific headers.
|
|
188
199
|
*/
|
|
189
200
|
headers(schema) {
|
|
190
201
|
const existingHeaders = this._headers
|
|
@@ -211,7 +222,12 @@ export class ContractBuilder {
|
|
|
211
222
|
});
|
|
212
223
|
}
|
|
213
224
|
/**
|
|
214
|
-
* Add or replace response schemas by status code
|
|
225
|
+
* Add or replace route-owned response schemas by status code.
|
|
226
|
+
*
|
|
227
|
+
* These schemas describe business responses returned by route handlers.
|
|
228
|
+
* Framework-owned errors such as request validation failures do not need to be
|
|
229
|
+
* declared here.
|
|
230
|
+
*
|
|
215
231
|
* Use `null` for void/empty responses such as 204 No Content.
|
|
216
232
|
*/
|
|
217
233
|
responses(responseSchemas) {
|
|
@@ -237,8 +253,9 @@ export class ContractBuilder {
|
|
|
237
253
|
/**
|
|
238
254
|
* Declare route-owned application errors from an error catalog.
|
|
239
255
|
*
|
|
240
|
-
* Catalog errors use Beignet's standard error response envelope
|
|
241
|
-
* `.responses()` when a
|
|
256
|
+
* Catalog errors use Beignet's standard error response envelope and remain
|
|
257
|
+
* distinguishable from framework-owned errors. Use `.responses()` when a
|
|
258
|
+
* route needs a custom error response body instead of catalog semantics.
|
|
242
259
|
*/
|
|
243
260
|
errors(errorDefs) {
|
|
244
261
|
const errorResponses = responsesFromErrors(errorDefs);
|
|
@@ -265,7 +282,10 @@ export class ContractBuilder {
|
|
|
265
282
|
});
|
|
266
283
|
}
|
|
267
284
|
/**
|
|
268
|
-
*
|
|
285
|
+
* Merge metadata into this contract.
|
|
286
|
+
*
|
|
287
|
+
* Hooks and tooling can read metadata for concerns such as auth, rate limits,
|
|
288
|
+
* idempotency, OpenAPI, or app-specific conventions.
|
|
269
289
|
*/
|
|
270
290
|
meta(newMeta) {
|
|
271
291
|
return new ContractBuilder({
|
|
@@ -287,7 +307,7 @@ export class ContractBuilder {
|
|
|
287
307
|
});
|
|
288
308
|
}
|
|
289
309
|
/**
|
|
290
|
-
*
|
|
310
|
+
* Merge OpenAPI operation metadata into this contract.
|
|
291
311
|
*/
|
|
292
312
|
openapi(patch) {
|
|
293
313
|
const existingOpenApi = this._meta.openapi ?? {};
|
|
@@ -314,7 +334,11 @@ export class ContractBuilder {
|
|
|
314
334
|
}
|
|
315
335
|
}
|
|
316
336
|
/**
|
|
317
|
-
* Create a new HTTP contract
|
|
337
|
+
* Create a new HTTP contract builder.
|
|
338
|
+
*
|
|
339
|
+
* Most apps prefer `createContractGroup().namespace(...).prefix(...)` for
|
|
340
|
+
* related feature contracts. Use this lower-level factory when a standalone
|
|
341
|
+
* contract is clearer.
|
|
318
342
|
*
|
|
319
343
|
* @example
|
|
320
344
|
* ```ts
|
|
@@ -325,6 +349,9 @@ export class ContractBuilder {
|
|
|
325
349
|
* .pathParams(z.object({ id: z.string() }))
|
|
326
350
|
* .responses({ 200: TodoSchema });
|
|
327
351
|
* ```
|
|
352
|
+
*
|
|
353
|
+
* @param options - HTTP method, path template, and optional contract name.
|
|
354
|
+
* @returns A fluent contract builder.
|
|
328
355
|
*/
|
|
329
356
|
export function createContract(options) {
|
|
330
357
|
parsePathTemplate(options.path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-builder.js","sourceRoot":"","sources":["../../src/contracts/contract-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAYpD,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,SAAS,mBAAmB,CAC1B,MAA8B;IAE9B,MAAM,SAAS,GAAsB,EAAE,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,8BAA8B,CAAC;IAC3D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,+BAA+B,CACtC,OAA0B,EAC1B,IAAuB;IAEvB,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACpD,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAC5B,CAAC;IACF,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,mCAAmC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,2IAA2I,CACnM,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,mCAAmC,CAC1C,QAAsB,EACtB,IAAuB;IAEvB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO;IAE1D,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;SAClB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAA8B,CAAC,MAAM,KAAK,QAAQ;QACxD,CAAC,CAAC,MAAM,CAAE,KAA4B,CAAC,MAAM,CAAC;QAC9C,CAAC,CAAC,SAAS,CACd;SACA,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAC9D,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACpD,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAC1B,CAAC;IACF,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,sCAAsC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,uIAAuI,CAClM,CAAC;IACJ,CAAC;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"contract-builder.js","sourceRoot":"","sources":["../../src/contracts/contract-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAYpD,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,SAAS,mBAAmB,CAC1B,MAA8B;IAE9B,MAAM,SAAS,GAAsB,EAAE,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,8BAA8B,CAAC;IAC3D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,+BAA+B,CACtC,OAA0B,EAC1B,IAAuB;IAEvB,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACpD,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAC5B,CAAC;IACF,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,mCAAmC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,2IAA2I,CACnM,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,mCAAmC,CAC1C,QAAsB,EACtB,IAAuB;IAEvB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO;IAE1D,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;SAClB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAA8B,CAAC,MAAM,KAAK,QAAQ;QACxD,CAAC,CAAC,MAAM,CAAE,KAA4B,CAAC,MAAM,CAAC;QAC9C,CAAC,CAAC,SAAS,CACd;SACA,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAC9D,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACpD,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAC1B,CAAC;IACF,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,sCAAsC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,uIAAuI,CAClM,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,eAAe;IAUjB,IAAI,CAAS;IACb,IAAI,CAAS;IACb,SAAS,CAAU;IACnB,SAAS,CAAS;IAClB,MAAM,CAAU;IACR,KAAK,CAAQ;IACb,WAAW,CAAc;IACzB,MAAM,CAAS;IACf,KAAK,CAAQ;IACb,QAAQ,CAAW;IACnB,UAAU,CAAa;IACvB,KAAK,CAAQ;IAE9B,YACE,MASC;QAED,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CACb,wCAAwC,MAAM,CAAC,MAAM,kEAAkE,CACxH,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,IAAK,IAAiB,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACH,IAAI,MAAM;QACR,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,SAAS,EAAE,IAAI,CAAC,UAAU;SAC3B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QAUR,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,QAAQ,EAAE,IAAI,CAAC,KAAK;SACrB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,UAAU,CACR,MAAsB;QAWtB,OAAO,IAAI,eAAe,CAAC;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,UAAU,EAAE,MAAmC;YAC/C,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,QAAQ,EAAE,IAAI,CAAC,KAAK;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CACH,MAAiB;QAWjB,OAAO,IAAI,eAAe,CAAC;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,KAAK,EAAE,MAA8B;YACrC,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,QAAQ,EAAE,IAAI,CAAC,KAAK;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,IAAI,CAWF,MAAgB;QAWhB,MAAM,IAAI,GAAG,IASZ,CAAC;QACF,OAAO,IAAI,eAAe,CAAC;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,IAAI,EAAE,MAA6B;YACnC,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,QAAQ,EAAE,IAAI,CAAC,KAAK;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CACL,MAAmB;QAenB,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ;YACnC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC5B,CAAC,CAAC,IAAI,CAAC,QAAQ;gBACf,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnB,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO,IAAI,eAAe,CAAC;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,OAAO,EAAE;gBACP,GAAG,eAAe;gBAClB,MAAM;aAKoB;YAC5B,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,QAAQ,EAAE,IAAI,CAAC,KAAK;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS,CACP,eAA8B;QAW9B,mCAAmC,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACjE,OAAO,IAAI,eAAe,CAAC;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,SAAS,EAAE;gBACT,GAAG,IAAI,CAAC,UAAU;gBAClB,GAAG,eAAe;aACiD;YACrE,QAAQ,EAAE,IAAI,CAAC,KAAK;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CACJ,SAAqB;QAYrB,MAAM,cAAc,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACtD,+BAA+B,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACjE,OAAO,IAAI,eAAe,CAAC;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,SAAS,EAAE;gBACT,GAAG,IAAI,CAAC,UAAU;gBAClB,GAAG,cAAc;aAKwB;YAC3C,QAAQ,EAAE;gBACR,GAAG,IAAI,CAAC,KAAK;gBACb,MAAM,EAAE,SAAS;aACgC;SACpD,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,IAAI,CACF,OAAiB;QAWjB,OAAO,IAAI,eAAe,CAAC;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,QAAQ,EAAE;gBACR,GAAG,IAAI,CAAC,KAAK;gBACb,GAAG,OAAO;aAC0C;SACvD,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,OAAO,CACL,KAAoC;QAWpC,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;QACjD,OAAO,IAAI,eAAe,CAAC;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,QAAQ,EAAE;gBACR,GAAG,IAAI,CAAC,KAAK;gBACb,OAAO,EAAE;oBACP,GAAG,eAAe;oBAClB,GAAG,KAAK;iBACT;aACO;SACX,CAAC,CAAC;IACL,CAAC;CACF;AAiBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,cAAc,CAI5B,OAA8C;IAW9C,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,IAAI,GACR,OAAO,CAAC,IAAI,IAAI,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,OAAO,IAAI,eAAe,CAAC;QACzB,IAAI,EAAE,MAAM;QACZ,IAAI;QACJ,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,EAAE;KACb,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -6,8 +6,11 @@ type NormalizedPrefix<T extends string> = T extends "" | "/" ? "" : TrimTrailing
|
|
|
6
6
|
type NormalizedChildPath<T extends string> = TrimTrailingSlash<TrimLeadingSlash<T>>;
|
|
7
7
|
type JoinPaths<TPrefix extends string, TPath extends string> = string extends TPrefix | TPath ? string : NormalizedPrefix<TPrefix> extends "" ? TPath : NormalizedChildPath<TPath> extends "" ? NormalizedPrefix<TPrefix> : `${NormalizedPrefix<TPrefix>}/${NormalizedChildPath<TPath>}`;
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* Feature-scoped factory for related HTTP contracts.
|
|
10
|
+
*
|
|
11
|
+
* Contract groups let a feature share a namespace, path prefix, headers,
|
|
12
|
+
* responses, errors, and metadata across multiple endpoint contracts. The group
|
|
13
|
+
* is immutable: every configuration method returns a new group.
|
|
11
14
|
*/
|
|
12
15
|
export declare class ContractGroup<TSharedResponses extends ContractResponses = Record<never, never>, TSharedMeta extends ContractMeta = ContractMeta, TSharedHeaders extends ContractHeaderSchemas = null, TPathPrefix extends string = ""> {
|
|
13
16
|
private readonly _namespace;
|
|
@@ -23,61 +26,69 @@ export declare class ContractGroup<TSharedResponses extends ContractResponses =
|
|
|
23
26
|
pathPrefix?: TPathPrefix;
|
|
24
27
|
});
|
|
25
28
|
/**
|
|
26
|
-
* Set the namespace for
|
|
29
|
+
* Set the namespace for contracts created from this group.
|
|
30
|
+
*
|
|
31
|
+
* The namespace prefixes contract names, not paths. Use `prefix(...)` for
|
|
32
|
+
* path composition.
|
|
27
33
|
*/
|
|
28
34
|
namespace(ns: string): ContractGroup<TSharedResponses, TSharedMeta, TSharedHeaders, TPathPrefix>;
|
|
29
35
|
/**
|
|
30
|
-
* Add a path prefix to
|
|
36
|
+
* Add a path prefix to contracts created from this group.
|
|
31
37
|
*
|
|
32
|
-
* Prefixes compose immutably, so `prefix("/api").prefix("/v1")`
|
|
33
|
-
*
|
|
38
|
+
* Prefixes compose immutably, so `prefix("/api").prefix("/v1")` produces
|
|
39
|
+
* paths under `/api/v1`.
|
|
34
40
|
*/
|
|
35
41
|
prefix<const TNewPrefix extends string>(pathPrefix: TNewPrefix): ContractGroup<TSharedResponses, TSharedMeta, TSharedHeaders, JoinPaths<TPathPrefix, TNewPrefix>>;
|
|
36
42
|
/**
|
|
37
|
-
*
|
|
43
|
+
* Merge shared metadata into contracts created from this group.
|
|
38
44
|
*/
|
|
39
45
|
meta<TNewMeta extends ContractMeta>(meta: TNewMeta): ContractGroup<TSharedResponses, Omit<TSharedMeta, keyof TNewMeta> & TNewMeta, TSharedHeaders, TPathPrefix>;
|
|
40
46
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
47
|
+
* Add shared route-owned response schemas to contracts created from this group.
|
|
48
|
+
*
|
|
49
|
+
* Framework-owned responses, such as validation or auth hook failures, do not
|
|
50
|
+
* need to be declared here.
|
|
43
51
|
*/
|
|
44
52
|
responses<TNewResponses extends ContractResponses>(responseSchemas: TNewResponses): ContractGroup<Omit<TSharedResponses, keyof TNewResponses> & TNewResponses, TSharedMeta, TSharedHeaders, TPathPrefix>;
|
|
45
53
|
/**
|
|
46
|
-
*
|
|
54
|
+
* Declare shared route-owned application errors for contracts in this group.
|
|
55
|
+
*
|
|
56
|
+
* Catalog errors use Beignet's standard error envelope and remain separate
|
|
57
|
+
* from framework-owned errors.
|
|
47
58
|
*/
|
|
48
59
|
errors<TErrorDefs extends ContractErrorResponses>(errorDefs: TErrorDefs): ContractGroup<Omit<TSharedResponses, keyof ResponsesFromErrorDefinitions<TErrorDefs>> & ResponsesFromErrorDefinitions<TErrorDefs>, Omit<TSharedMeta, "errors"> & {
|
|
49
60
|
errors: TErrorDefs;
|
|
50
61
|
}, TSharedHeaders, TPathPrefix>;
|
|
51
62
|
/**
|
|
52
|
-
* Add shared request header schema
|
|
63
|
+
* Add a shared request header schema to contracts created from this group.
|
|
53
64
|
*/
|
|
54
65
|
headers<TNewHeaders extends StandardSchema>(schema: TNewHeaders): ContractGroup<TSharedResponses, TSharedMeta, TSharedHeaders extends readonly StandardSchema[] ? readonly [...TSharedHeaders, TNewHeaders] : TSharedHeaders extends StandardSchema ? readonly [TSharedHeaders, TNewHeaders] : readonly [TNewHeaders], TPathPrefix>;
|
|
55
66
|
/**
|
|
56
|
-
* Create a GET contract
|
|
67
|
+
* Create a GET contract under this group.
|
|
57
68
|
*/
|
|
58
69
|
get<const TPath extends string>(path: TPath, name?: string): ContractBuilder<"GET", null, null, null, TSharedHeaders, TSharedResponses, TSharedMeta, JoinPaths<TPathPrefix, TPath>>;
|
|
59
70
|
/**
|
|
60
|
-
* Create a POST contract
|
|
71
|
+
* Create a POST contract under this group.
|
|
61
72
|
*/
|
|
62
73
|
post<const TPath extends string>(path: TPath, name?: string): ContractBuilder<"POST", null, null, null, TSharedHeaders, TSharedResponses, TSharedMeta, JoinPaths<TPathPrefix, TPath>>;
|
|
63
74
|
/**
|
|
64
|
-
* Create a PUT contract
|
|
75
|
+
* Create a PUT contract under this group.
|
|
65
76
|
*/
|
|
66
77
|
put<const TPath extends string>(path: TPath, name?: string): ContractBuilder<"PUT", null, null, null, TSharedHeaders, TSharedResponses, TSharedMeta, JoinPaths<TPathPrefix, TPath>>;
|
|
67
78
|
/**
|
|
68
|
-
* Create a PATCH contract
|
|
79
|
+
* Create a PATCH contract under this group.
|
|
69
80
|
*/
|
|
70
81
|
patch<const TPath extends string>(path: TPath, name?: string): ContractBuilder<"PATCH", null, null, null, TSharedHeaders, TSharedResponses, TSharedMeta, JoinPaths<TPathPrefix, TPath>>;
|
|
71
82
|
/**
|
|
72
|
-
* Create a DELETE contract
|
|
83
|
+
* Create a DELETE contract under this group.
|
|
73
84
|
*/
|
|
74
85
|
delete<const TPath extends string>(path: TPath, name?: string): ContractBuilder<"DELETE", null, null, null, TSharedHeaders, TSharedResponses, TSharedMeta, JoinPaths<TPathPrefix, TPath>>;
|
|
75
86
|
/**
|
|
76
|
-
* Create a HEAD contract
|
|
87
|
+
* Create a HEAD contract under this group.
|
|
77
88
|
*/
|
|
78
89
|
head<const TPath extends string>(path: TPath, name?: string): ContractBuilder<"HEAD", null, null, null, TSharedHeaders, TSharedResponses, TSharedMeta, JoinPaths<TPathPrefix, TPath>>;
|
|
79
90
|
/**
|
|
80
|
-
* Create
|
|
91
|
+
* Create an OPTIONS contract under this group.
|
|
81
92
|
*/
|
|
82
93
|
options<const TPath extends string>(path: TPath, name?: string): ContractBuilder<"OPTIONS", null, null, null, TSharedHeaders, TSharedResponses, TSharedMeta, JoinPaths<TPathPrefix, TPath>>;
|
|
83
94
|
/**
|
|
@@ -86,7 +97,10 @@ export declare class ContractGroup<TSharedResponses extends ContractResponses =
|
|
|
86
97
|
private createBuilder;
|
|
87
98
|
}
|
|
88
99
|
/**
|
|
89
|
-
* Create a new
|
|
100
|
+
* Create a new feature contract group.
|
|
101
|
+
*
|
|
102
|
+
* Start here for most feature HTTP surfaces, then add a namespace and path
|
|
103
|
+
* prefix before defining individual contracts.
|
|
90
104
|
*
|
|
91
105
|
* @example
|
|
92
106
|
* ```ts
|
|
@@ -100,6 +114,8 @@ export declare class ContractGroup<TSharedResponses extends ContractResponses =
|
|
|
100
114
|
*
|
|
101
115
|
* const getTodo = todos.get("/:id")...
|
|
102
116
|
* ```
|
|
117
|
+
*
|
|
118
|
+
* @returns An empty immutable contract group.
|
|
103
119
|
*/
|
|
104
120
|
export declare function createContractGroup(): ContractGroup<Record<never, never>, ContractMeta, null, "">;
|
|
105
121
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-group.d.ts","sourceRoot":"","sources":["../../src/contracts/contract-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EAEjB,6BAA6B,EAC7B,cAAc,EACf,MAAM,SAAS,CAAC;AAIjB,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,IAAI,MAAM,IAAI,EAAE,GAChE,gBAAgB,CAAC,IAAI,CAAC,GACtB,CAAC,CAAC;AAEN,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,GACpD,EAAE,GACF,CAAC,SAAS,GAAG,MAAM,IAAI,GAAG,GACxB,iBAAiB,CAAC,IAAI,CAAC,GACvB,CAAC,CAAC;AAER,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,EAAE,GAAG,GAAG,GACxD,EAAE,GACF,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAEzB,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAAI,iBAAiB,CAC5D,gBAAgB,CAAC,CAAC,CAAC,CACpB,CAAC;AAEF,KAAK,SAAS,CAAC,OAAO,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,IAAI,MAAM,SACjE,OAAO,GACP,KAAK,GACL,MAAM,GACN,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,GAClC,KAAK,GACL,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,GACnC,gBAAgB,CAAC,OAAO,CAAC,GACzB,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;AAgErE
|
|
1
|
+
{"version":3,"file":"contract-group.d.ts","sourceRoot":"","sources":["../../src/contracts/contract-group.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,8 +40,11 @@ function assertNoCatalogErrorStatusConflicts(metadata, next) {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
43
|
+
* Feature-scoped factory for related HTTP contracts.
|
|
44
|
+
*
|
|
45
|
+
* Contract groups let a feature share a namespace, path prefix, headers,
|
|
46
|
+
* responses, errors, and metadata across multiple endpoint contracts. The group
|
|
47
|
+
* is immutable: every configuration method returns a new group.
|
|
45
48
|
*/
|
|
46
49
|
export class ContractGroup {
|
|
47
50
|
_namespace;
|
|
@@ -57,7 +60,10 @@ export class ContractGroup {
|
|
|
57
60
|
this._pathPrefix = state.pathPrefix ?? "";
|
|
58
61
|
}
|
|
59
62
|
/**
|
|
60
|
-
* Set the namespace for
|
|
63
|
+
* Set the namespace for contracts created from this group.
|
|
64
|
+
*
|
|
65
|
+
* The namespace prefixes contract names, not paths. Use `prefix(...)` for
|
|
66
|
+
* path composition.
|
|
61
67
|
*/
|
|
62
68
|
namespace(ns) {
|
|
63
69
|
return new ContractGroup({
|
|
@@ -69,10 +75,10 @@ export class ContractGroup {
|
|
|
69
75
|
});
|
|
70
76
|
}
|
|
71
77
|
/**
|
|
72
|
-
* Add a path prefix to
|
|
78
|
+
* Add a path prefix to contracts created from this group.
|
|
73
79
|
*
|
|
74
|
-
* Prefixes compose immutably, so `prefix("/api").prefix("/v1")`
|
|
75
|
-
*
|
|
80
|
+
* Prefixes compose immutably, so `prefix("/api").prefix("/v1")` produces
|
|
81
|
+
* paths under `/api/v1`.
|
|
76
82
|
*/
|
|
77
83
|
prefix(pathPrefix) {
|
|
78
84
|
parsePathTemplate(pathPrefix);
|
|
@@ -87,7 +93,7 @@ export class ContractGroup {
|
|
|
87
93
|
});
|
|
88
94
|
}
|
|
89
95
|
/**
|
|
90
|
-
*
|
|
96
|
+
* Merge shared metadata into contracts created from this group.
|
|
91
97
|
*/
|
|
92
98
|
meta(meta) {
|
|
93
99
|
return new ContractGroup({
|
|
@@ -99,8 +105,10 @@ export class ContractGroup {
|
|
|
99
105
|
});
|
|
100
106
|
}
|
|
101
107
|
/**
|
|
102
|
-
*
|
|
103
|
-
*
|
|
108
|
+
* Add shared route-owned response schemas to contracts created from this group.
|
|
109
|
+
*
|
|
110
|
+
* Framework-owned responses, such as validation or auth hook failures, do not
|
|
111
|
+
* need to be declared here.
|
|
104
112
|
*/
|
|
105
113
|
responses(responseSchemas) {
|
|
106
114
|
assertNoCatalogErrorStatusConflicts(this._meta, responseSchemas);
|
|
@@ -113,7 +121,10 @@ export class ContractGroup {
|
|
|
113
121
|
});
|
|
114
122
|
}
|
|
115
123
|
/**
|
|
116
|
-
*
|
|
124
|
+
* Declare shared route-owned application errors for contracts in this group.
|
|
125
|
+
*
|
|
126
|
+
* Catalog errors use Beignet's standard error envelope and remain separate
|
|
127
|
+
* from framework-owned errors.
|
|
117
128
|
*/
|
|
118
129
|
errors(errorDefs) {
|
|
119
130
|
const errorResponses = responsesFromErrors(errorDefs);
|
|
@@ -130,7 +141,7 @@ export class ContractGroup {
|
|
|
130
141
|
});
|
|
131
142
|
}
|
|
132
143
|
/**
|
|
133
|
-
* Add shared request header schema
|
|
144
|
+
* Add a shared request header schema to contracts created from this group.
|
|
134
145
|
*/
|
|
135
146
|
headers(schema) {
|
|
136
147
|
const existingHeaders = this._headers
|
|
@@ -150,43 +161,43 @@ export class ContractGroup {
|
|
|
150
161
|
});
|
|
151
162
|
}
|
|
152
163
|
/**
|
|
153
|
-
* Create a GET contract
|
|
164
|
+
* Create a GET contract under this group.
|
|
154
165
|
*/
|
|
155
166
|
get(path, name) {
|
|
156
167
|
return this.createBuilder("GET", path, name);
|
|
157
168
|
}
|
|
158
169
|
/**
|
|
159
|
-
* Create a POST contract
|
|
170
|
+
* Create a POST contract under this group.
|
|
160
171
|
*/
|
|
161
172
|
post(path, name) {
|
|
162
173
|
return this.createBuilder("POST", path, name);
|
|
163
174
|
}
|
|
164
175
|
/**
|
|
165
|
-
* Create a PUT contract
|
|
176
|
+
* Create a PUT contract under this group.
|
|
166
177
|
*/
|
|
167
178
|
put(path, name) {
|
|
168
179
|
return this.createBuilder("PUT", path, name);
|
|
169
180
|
}
|
|
170
181
|
/**
|
|
171
|
-
* Create a PATCH contract
|
|
182
|
+
* Create a PATCH contract under this group.
|
|
172
183
|
*/
|
|
173
184
|
patch(path, name) {
|
|
174
185
|
return this.createBuilder("PATCH", path, name);
|
|
175
186
|
}
|
|
176
187
|
/**
|
|
177
|
-
* Create a DELETE contract
|
|
188
|
+
* Create a DELETE contract under this group.
|
|
178
189
|
*/
|
|
179
190
|
delete(path, name) {
|
|
180
191
|
return this.createBuilder("DELETE", path, name);
|
|
181
192
|
}
|
|
182
193
|
/**
|
|
183
|
-
* Create a HEAD contract
|
|
194
|
+
* Create a HEAD contract under this group.
|
|
184
195
|
*/
|
|
185
196
|
head(path, name) {
|
|
186
197
|
return this.createBuilder("HEAD", path, name);
|
|
187
198
|
}
|
|
188
199
|
/**
|
|
189
|
-
* Create
|
|
200
|
+
* Create an OPTIONS contract under this group.
|
|
190
201
|
*/
|
|
191
202
|
options(path, name) {
|
|
192
203
|
return this.createBuilder("OPTIONS", path, name);
|
|
@@ -219,7 +230,10 @@ export class ContractGroup {
|
|
|
219
230
|
}
|
|
220
231
|
}
|
|
221
232
|
/**
|
|
222
|
-
* Create a new
|
|
233
|
+
* Create a new feature contract group.
|
|
234
|
+
*
|
|
235
|
+
* Start here for most feature HTTP surfaces, then add a namespace and path
|
|
236
|
+
* prefix before defining individual contracts.
|
|
223
237
|
*
|
|
224
238
|
* @example
|
|
225
239
|
* ```ts
|
|
@@ -233,6 +247,8 @@ export class ContractGroup {
|
|
|
233
247
|
*
|
|
234
248
|
* const getTodo = todos.get("/:id")...
|
|
235
249
|
* ```
|
|
250
|
+
*
|
|
251
|
+
* @returns An empty immutable contract group.
|
|
236
252
|
*/
|
|
237
253
|
export function createContractGroup() {
|
|
238
254
|
return new ContractGroup();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-group.js","sourceRoot":"","sources":["../../src/contracts/contract-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAUpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AA8B/C,SAAS,cAAc,CAAC,MAAc,EAAE,IAAY;IAClD,MAAM,QAAQ,GAAG;QACf,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACpC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;KACnC,CAAC;IAEF,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAA8B;IAE9B,MAAM,SAAS,GAAsB,EAAE,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,8BAA8B,CAAC;IAC3D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,+BAA+B,CACtC,OAA0B,EAC1B,IAAuB;IAEvB,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACpD,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAC5B,CAAC;IACF,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,mCAAmC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,2IAA2I,CACnM,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,mCAAmC,CAC1C,QAAsB,EACtB,IAAuB;IAEvB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO;IAE1D,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;SAClB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAA8B,CAAC,MAAM,KAAK,QAAQ;QACxD,CAAC,CAAC,MAAM,CAAE,KAA4B,CAAC,MAAM,CAAC;QAC9C,CAAC,CAAC,SAAS,CACd;SACA,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAC9D,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACpD,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAC1B,CAAC;IACF,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,sCAAsC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,uIAAuI,CAClM,CAAC;IACJ,CAAC;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"contract-group.js","sourceRoot":"","sources":["../../src/contracts/contract-group.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import type { HttpContractConfig } from "./types";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* or a contract-like object with a .config property (e.g., ContractBuilder)
|
|
3
|
+
* Contract input accepted by APIs that can unwrap builders.
|
|
5
4
|
*/
|
|
6
5
|
export type ContractLike = HttpContractConfig | {
|
|
7
6
|
config: HttpContractConfig;
|
|
8
7
|
};
|
|
9
8
|
/**
|
|
10
|
-
*
|
|
9
|
+
* Resolve a contract-like type to its plain `HttpContractConfig`.
|
|
11
10
|
*/
|
|
12
11
|
export type ResolveContract<T> = T extends {
|
|
13
12
|
config: infer C;
|
|
14
13
|
} ? C extends HttpContractConfig ? C : never : T extends HttpContractConfig ? T : never;
|
|
15
14
|
/**
|
|
16
|
-
*
|
|
15
|
+
* Resolve a contract builder or plain config to the underlying contract config.
|
|
16
|
+
*
|
|
17
17
|
* @param c - The contract-like object to resolve
|
|
18
18
|
* @returns The underlying HttpContractConfig
|
|
19
19
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-like.d.ts","sourceRoot":"","sources":["../../src/contracts/contract-like.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD
|
|
1
|
+
{"version":3,"file":"contract-like.d.ts","sourceRoot":"","sources":["../../src/contracts/contract-like.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG;IAAE,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAE/E;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC1D,CAAC,SAAS,kBAAkB,GAC1B,CAAC,GACD,KAAK,GACP,CAAC,SAAS,kBAAkB,GAC1B,CAAC,GACD,KAAK,CAAC;AAEZ;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,YAAY,EACpD,CAAC,EAAE,CAAC,GACH,eAAe,CAAC,CAAC,CAAC,CAEpB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Resolve a contract builder or plain config to the underlying contract config.
|
|
3
|
+
*
|
|
3
4
|
* @param c - The contract-like object to resolve
|
|
4
5
|
* @returns The underlying HttpContractConfig
|
|
5
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-like.js","sourceRoot":"","sources":["../../src/contracts/contract-like.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contract-like.js","sourceRoot":"","sources":["../../src/contracts/contract-like.ts"],"names":[],"mappings":"AAkBA;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,CAAI;IAEJ,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAuB,CAAC;AAC9D,CAAC"}
|
|
@@ -3,13 +3,41 @@
|
|
|
3
3
|
*
|
|
4
4
|
* HTTP contract definitions and builders for Beignet.
|
|
5
5
|
*/
|
|
6
|
+
/**
|
|
7
|
+
* Standard Schema type re-exported for contract authors.
|
|
8
|
+
*/
|
|
6
9
|
export type { StandardSchemaV1 } from "@standard-schema/spec";
|
|
10
|
+
/**
|
|
11
|
+
* Idempotency metadata types for contracts.
|
|
12
|
+
*/
|
|
13
|
+
export type { IdempotencyMeta, IdempotencyScopeMode } from "../idempotency";
|
|
14
|
+
/**
|
|
15
|
+
* Contract builder exports.
|
|
16
|
+
*/
|
|
7
17
|
export { ContractBuilder, type CreateContractOptions, createContract, } from "./contract-builder";
|
|
18
|
+
/**
|
|
19
|
+
* Contract group exports.
|
|
20
|
+
*/
|
|
8
21
|
export { ContractGroup, createContractGroup } from "./contract-group";
|
|
22
|
+
/**
|
|
23
|
+
* Contract-like helper exports.
|
|
24
|
+
*/
|
|
9
25
|
export { type ContractLike, type ResolveContract, resolveContract, } from "./contract-like";
|
|
26
|
+
/**
|
|
27
|
+
* OpenAPI operation metadata type.
|
|
28
|
+
*/
|
|
10
29
|
export type { OpenAPIOperationMeta } from "./openapi-meta";
|
|
30
|
+
/**
|
|
31
|
+
* Path template parsing exports.
|
|
32
|
+
*/
|
|
11
33
|
export { type ParsedPathTemplate, type PathTemplateSegment, parsePathTemplate, } from "./path-template";
|
|
34
|
+
/**
|
|
35
|
+
* Rate limit metadata types for contracts.
|
|
36
|
+
*/
|
|
12
37
|
export type { RateLimitMeta, RateLimitScope } from "./rate-limit";
|
|
38
|
+
/**
|
|
39
|
+
* Contract config and inference types.
|
|
40
|
+
*/
|
|
13
41
|
export type { AnyContract, BodyHttpMethod, ContractErrorDefinition, ContractErrorResponses, ContractHeaderSchemas, ContractMeta, ContractResponseSchema, ContractResponses, HttpContractConfig, HttpMethod, InferHeaderSchemaInput, InferHeaderSchemaOutput, InferInput, InferOutput, ResponsesFromErrorDefinitions, StandardErrorResponseBody, StandardErrorResponseSchema, StandardSchema, } from "./types";
|
|
14
42
|
export { BEIGNET_ERROR_OWNER_HEADER, BODY_HTTP_METHODS, getContractHeaderSchemas, methodSupportsRequestBody, STANDARD_ERROR_RESPONSE_SCHEMA, } from "./types";
|
|
15
43
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D;;GAEG;AACH,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC5E;;GAEG;AACH,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACtE;;GAEG;AACH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB;;GAEG;AACH,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D;;GAEG;AACH,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB;;GAEG;AACH,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAClE;;GAEG;AACH,YAAY,EACV,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,EACV,WAAW,EACX,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,EAC3B,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,SAAS,CAAC"}
|