adorn-api 1.0.1 → 1.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.
Files changed (139) hide show
  1. package/README.md +4 -1
  2. package/dist/adapters/express/createApp.d.ts +149 -11
  3. package/dist/adapters/express/createApp.d.ts.map +1 -1
  4. package/dist/adapters/express/createApp.js +112 -6
  5. package/dist/adapters/express/createApp.js.map +1 -1
  6. package/dist/adapters/express/middleware/errorHandler.d.ts +193 -2
  7. package/dist/adapters/express/middleware/errorHandler.d.ts.map +1 -1
  8. package/dist/adapters/express/middleware/errorHandler.js +164 -3
  9. package/dist/adapters/express/middleware/errorHandler.js.map +1 -1
  10. package/dist/adapters/express/router.d.ts +1 -1
  11. package/dist/adapters/express/router.d.ts.map +1 -1
  12. package/dist/adapters/express/router.js +6 -4
  13. package/dist/adapters/express/router.js.map +1 -1
  14. package/dist/adapters/express/transport/request.js.map +1 -1
  15. package/dist/adapters/express/transport/response.d.ts +1 -1
  16. package/dist/adapters/express/transport/response.d.ts.map +1 -1
  17. package/dist/adapters/express/transport/response.js.map +1 -1
  18. package/dist/contracts/openapi-v3.d.ts +461 -0
  19. package/dist/contracts/openapi-v3.d.ts.map +1 -1
  20. package/dist/contracts/reply.d.ts +109 -1
  21. package/dist/contracts/reply.d.ts.map +1 -1
  22. package/dist/contracts/reply.js +40 -1
  23. package/dist/contracts/reply.js.map +1 -1
  24. package/dist/contracts/response-types.d.ts +5 -5
  25. package/dist/contracts/response-types.d.ts.map +1 -1
  26. package/dist/contracts/responses.d.ts +84 -4
  27. package/dist/contracts/responses.d.ts.map +1 -1
  28. package/dist/contracts/route-options.d.ts +134 -3
  29. package/dist/contracts/route-options.d.ts.map +1 -1
  30. package/dist/contracts/validator.d.ts +121 -0
  31. package/dist/contracts/validator.d.ts.map +1 -1
  32. package/dist/core/binding/binder.d.ts +56 -1
  33. package/dist/core/binding/binder.d.ts.map +1 -1
  34. package/dist/core/binding/binder.js +33 -0
  35. package/dist/core/binding/binder.js.map +1 -1
  36. package/dist/core/binding/coerce/primitives.d.ts +68 -1
  37. package/dist/core/binding/coerce/primitives.d.ts.map +1 -1
  38. package/dist/core/binding/coerce/primitives.js +82 -12
  39. package/dist/core/binding/coerce/primitives.js.map +1 -1
  40. package/dist/core/errors/http-error.d.ts +54 -0
  41. package/dist/core/errors/http-error.d.ts.map +1 -1
  42. package/dist/core/errors/http-error.js +54 -0
  43. package/dist/core/errors/http-error.js.map +1 -1
  44. package/dist/core/errors/validation-error.d.ts +65 -0
  45. package/dist/core/errors/validation-error.d.ts.map +1 -1
  46. package/dist/core/errors/validation-error.js +65 -0
  47. package/dist/core/errors/validation-error.js.map +1 -1
  48. package/dist/core/openapi/buildOpenApi.d.ts +65 -0
  49. package/dist/core/openapi/buildOpenApi.d.ts.map +1 -1
  50. package/dist/core/openapi/buildOpenApi.js +66 -4
  51. package/dist/core/openapi/buildOpenApi.js.map +1 -1
  52. package/dist/core/openapi/schema/registry.d.ts +1 -1
  53. package/dist/core/openapi/schema/registry.d.ts.map +1 -1
  54. package/dist/core/openapi/schema/registry.js.map +1 -1
  55. package/dist/core/registry/buildRegistry.d.ts.map +1 -1
  56. package/dist/core/registry/buildRegistry.js +49 -5
  57. package/dist/core/registry/buildRegistry.js.map +1 -1
  58. package/dist/core/registry/types.d.ts +194 -1
  59. package/dist/core/registry/types.d.ts.map +1 -1
  60. package/dist/core/reply/reply.d.ts +94 -0
  61. package/dist/core/reply/reply.d.ts.map +1 -1
  62. package/dist/core/reply/reply.js +87 -0
  63. package/dist/core/reply/reply.js.map +1 -1
  64. package/dist/core/reply/typed.d.ts +137 -3
  65. package/dist/core/reply/typed.d.ts.map +1 -1
  66. package/dist/core/reply/typed.js +137 -2
  67. package/dist/core/reply/typed.js.map +1 -1
  68. package/dist/core/responses/helpers.d.ts +1 -1
  69. package/dist/core/responses/helpers.d.ts.map +1 -1
  70. package/dist/core/responses/normalize.d.ts.map +1 -1
  71. package/dist/core/responses/normalize.js +2 -1
  72. package/dist/core/responses/normalize.js.map +1 -1
  73. package/dist/core/route/defineRoute.d.ts +48 -1
  74. package/dist/core/route/defineRoute.d.ts.map +1 -1
  75. package/dist/core/route/defineRoute.js +42 -1
  76. package/dist/core/route/defineRoute.js.map +1 -1
  77. package/dist/decorators/binding.d.ts +1 -1
  78. package/dist/decorators/binding.d.ts.map +1 -1
  79. package/dist/decorators/binding.js.map +1 -1
  80. package/dist/decorators/controller.d.ts +1 -1
  81. package/dist/decorators/controller.d.ts.map +1 -1
  82. package/dist/decorators/controller.js.map +1 -1
  83. package/dist/decorators/docs.d.ts +6 -0
  84. package/dist/decorators/docs.d.ts.map +1 -1
  85. package/dist/decorators/docs.js +45 -2
  86. package/dist/decorators/docs.js.map +1 -1
  87. package/dist/decorators/index.d.ts +3 -0
  88. package/dist/decorators/index.d.ts.map +1 -1
  89. package/dist/decorators/index.js +3 -0
  90. package/dist/decorators/index.js.map +1 -1
  91. package/dist/decorators/methods.d.ts +128 -6
  92. package/dist/decorators/methods.d.ts.map +1 -1
  93. package/dist/decorators/methods.js +124 -0
  94. package/dist/decorators/methods.js.map +1 -1
  95. package/dist/decorators/responses.d.ts +5 -0
  96. package/dist/decorators/responses.d.ts.map +1 -1
  97. package/dist/decorators/responses.js +43 -2
  98. package/dist/decorators/responses.js.map +1 -1
  99. package/dist/decorators/security.d.ts +6 -0
  100. package/dist/decorators/security.d.ts.map +1 -1
  101. package/dist/decorators/security.js +38 -2
  102. package/dist/decorators/security.js.map +1 -1
  103. package/dist/index.d.ts +1 -0
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +1 -0
  106. package/dist/index.js.map +1 -1
  107. package/dist/integrations/metal-orm/schema/column-map.d.ts +91 -0
  108. package/dist/integrations/metal-orm/schema/column-map.d.ts.map +1 -1
  109. package/dist/integrations/metal-orm/schema/column-map.js +129 -2
  110. package/dist/integrations/metal-orm/schema/column-map.js.map +1 -1
  111. package/dist/integrations/metal-orm/schema/dto.d.ts +2 -2
  112. package/dist/integrations/metal-orm/schema/dto.d.ts.map +1 -1
  113. package/dist/integrations/metal-orm/schema/dto.js.map +1 -1
  114. package/dist/integrations/metal-orm/schema/entity.d.ts +90 -8
  115. package/dist/integrations/metal-orm/schema/entity.d.ts.map +1 -1
  116. package/dist/integrations/metal-orm/schema/entity.js +78 -6
  117. package/dist/integrations/metal-orm/schema/entity.js.map +1 -1
  118. package/dist/integrations/metal-orm/schema/filters.d.ts +1 -1
  119. package/dist/integrations/metal-orm/schema/filters.d.ts.map +1 -1
  120. package/dist/integrations/metal-orm/schema/filters.js +2 -1
  121. package/dist/integrations/metal-orm/schema/filters.js.map +1 -1
  122. package/dist/integrations/metal-orm/schema/tabledef.d.ts +1 -1
  123. package/dist/integrations/metal-orm/schema/tabledef.d.ts.map +1 -1
  124. package/dist/metadata/bag.d.ts +2 -1
  125. package/dist/metadata/bag.d.ts.map +1 -1
  126. package/dist/metadata/bag.js +2 -1
  127. package/dist/metadata/bag.js.map +1 -1
  128. package/dist/metadata/keys.d.ts +203 -1
  129. package/dist/metadata/keys.d.ts.map +1 -1
  130. package/dist/metadata/keys.js +3 -9
  131. package/dist/metadata/keys.js.map +1 -1
  132. package/dist/metadata/merge.d.ts.map +1 -1
  133. package/dist/metadata/merge.js +4 -1
  134. package/dist/metadata/merge.js.map +1 -1
  135. package/dist/validation/native/schema.d.ts +2 -2
  136. package/dist/validation/native/schema.d.ts.map +1 -1
  137. package/dist/validation/native/validator.d.ts +1 -1
  138. package/dist/validation/native/validator.d.ts.map +1 -1
  139. package/package.json +6 -2
@@ -1,77 +1,538 @@
1
+ /**
2
+ * Complete OpenAPI 3.0.3 document structure.
3
+ *
4
+ * This type represents the root OpenAPI document that contains
5
+ * all API metadata, paths, operations, and components.
6
+ *
7
+ * @see https://spec.openapis.org/oas/v3.0.3
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const openApiDoc: OpenApiDocument = {
12
+ * openapi: '3.0.3',
13
+ * info: {
14
+ * title: 'My API',
15
+ * version: '1.0.0',
16
+ * description: 'API for user management'
17
+ * },
18
+ * servers: [
19
+ * { url: 'https://api.example.com/v1', description: 'Production server' }
20
+ * ],
21
+ * paths: {
22
+ * '/users': {
23
+ * get: {
24
+ * summary: 'List users',
25
+ * responses: {
26
+ * '200': { description: 'List of users' }
27
+ * }
28
+ * }
29
+ * }
30
+ * },
31
+ * components: {
32
+ * schemas: {
33
+ * User: {
34
+ * type: 'object',
35
+ * properties: {
36
+ * id: { type: 'string', format: 'uuid' },
37
+ * name: { type: 'string' }
38
+ * }
39
+ * }
40
+ * }
41
+ * }
42
+ * };
43
+ * ```
44
+ */
1
45
  export type OpenApiDocument = {
46
+ /** OpenAPI specification version */
2
47
  openapi: '3.0.3' | (string & {});
48
+ /** API metadata including title, version, and description */
3
49
  info: {
4
50
  title: string;
5
51
  version: string;
6
52
  description?: string;
7
53
  };
54
+ /** Array of server objects */
8
55
  servers?: Array<{
9
56
  url: string;
10
57
  description?: string;
11
58
  }>;
59
+ /** Paths and operations */
12
60
  paths: Record<string, PathItemObject>;
61
+ /** Reusable components */
13
62
  components?: ComponentsObject;
14
63
  };
64
+ /**
65
+ * Reusable components for OpenAPI specification.
66
+ *
67
+ * Contains schemas, security schemes, and other reusable
68
+ * components that can be referenced throughout the document.
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * const components: ComponentsObject = {
73
+ * schemas: {
74
+ * User: {
75
+ * type: 'object',
76
+ * properties: {
77
+ * id: { type: 'string', format: 'uuid' },
78
+ * name: { type: 'string' }
79
+ * }
80
+ * }
81
+ * },
82
+ * securitySchemes: {
83
+ * bearerAuth: {
84
+ * type: 'http',
85
+ * scheme: 'bearer',
86
+ * bearerFormat: 'JWT'
87
+ * }
88
+ * }
89
+ * };
90
+ * ```
91
+ */
15
92
  export type ComponentsObject = {
93
+ /** Reusable schema definitions */
16
94
  schemas?: Record<string, SchemaObject>;
95
+ /** Security scheme definitions */
96
+ securitySchemes?: Record<string, SecuritySchemeObject>;
17
97
  };
98
+ /**
99
+ * Path item containing HTTP method operations.
100
+ *
101
+ * Maps HTTP methods to their corresponding operation objects
102
+ * for a specific path.
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const pathItem: PathItemObject = {
107
+ * get: {
108
+ * summary: 'Get user',
109
+ * responses: { '200': { description: 'User found' } }
110
+ * },
111
+ * post: {
112
+ * summary: 'Create user',
113
+ * responses: { '201': { description: 'User created' } }
114
+ * }
115
+ * };
116
+ * ```
117
+ */
18
118
  export type PathItemObject = Partial<Record<HttpMethod, OperationObject>>;
119
+ /**
120
+ * HTTP methods supported by OpenAPI.
121
+ *
122
+ * Standard HTTP methods that can be used in path items.
123
+ */
19
124
  export type HttpMethod = 'get' | 'put' | 'post' | 'delete' | 'patch' | 'options' | 'head';
125
+ /**
126
+ * Operation object describing an API endpoint.
127
+ *
128
+ * Contains all information about a single API operation
129
+ * including parameters, request body, responses, and security.
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * const operation: OperationObject = {
134
+ * operationId: 'getUserById',
135
+ * summary: 'Get user by ID',
136
+ * description: 'Retrieves a user by their unique identifier',
137
+ * tags: ['Users'],
138
+ * deprecated: false,
139
+ * security: [{ bearerAuth: [] }],
140
+ * parameters: [
141
+ * {
142
+ * name: 'id',
143
+ * in: 'path',
144
+ * required: true,
145
+ * schema: { type: 'string', format: 'uuid' }
146
+ * }
147
+ * ],
148
+ * responses: {
149
+ * '200': {
150
+ * description: 'User found',
151
+ * content: {
152
+ * 'application/json': {
153
+ * schema: { $ref: '#/components/schemas/User' }
154
+ * }
155
+ * }
156
+ * },
157
+ * '404': { description: 'User not found' }
158
+ * }
159
+ * };
160
+ * ```
161
+ */
20
162
  export type OperationObject = {
163
+ /** Unique identifier for the operation */
21
164
  operationId?: string;
165
+ /** Short summary of the operation */
22
166
  summary?: string;
167
+ /** Detailed description of the operation */
23
168
  description?: string;
169
+ /** Tags for grouping operations */
24
170
  tags?: string[];
171
+ /** Whether the operation is deprecated */
25
172
  deprecated?: boolean;
173
+ /** Security requirements */
174
+ security?: SecurityRequirementObject[];
175
+ /** Parameters for the operation */
26
176
  parameters?: ParameterObject[];
177
+ /** Request body specification */
27
178
  requestBody?: RequestBodyObject;
179
+ /** Responses by status code */
28
180
  responses: Record<string, ResponseObject>;
29
181
  };
182
+ /**
183
+ * Parameter object for operation parameters.
184
+ *
185
+ * Describes a single parameter that can be passed
186
+ * in path, query, header, or cookie.
187
+ *
188
+ * @example
189
+ * ```typescript
190
+ * // Path parameter
191
+ * const pathParam: ParameterObject = {
192
+ * name: 'id',
193
+ * in: 'path',
194
+ * required: true,
195
+ * schema: { type: 'string', format: 'uuid' }
196
+ * };
197
+ *
198
+ * // Query parameter
199
+ * const queryParam: ParameterObject = {
200
+ * name: 'limit',
201
+ * in: 'query',
202
+ * required: false,
203
+ * schema: { type: 'integer', minimum: 1, maximum: 100 }
204
+ * };
205
+ *
206
+ * // Header parameter
207
+ * const headerParam: ParameterObject = {
208
+ * name: 'X-Request-ID',
209
+ * in: 'header',
210
+ * required: false,
211
+ * schema: { type: 'string' }
212
+ * };
213
+ * ```
214
+ */
30
215
  export type ParameterObject = {
216
+ /** Parameter name */
31
217
  name: string;
218
+ /** Parameter location */
32
219
  in: 'path' | 'query' | 'header' | 'cookie';
220
+ /** Whether parameter is required */
33
221
  required?: boolean;
222
+ /** Parameter schema or reference */
34
223
  schema?: SchemaObject | ReferenceObject;
35
224
  };
225
+ /**
226
+ * Request body object for operation input.
227
+ *
228
+ * Describes the request body including content types
229
+ * and schemas for different media types.
230
+ *
231
+ * @example
232
+ * ```typescript
233
+ * const requestBody: RequestBodyObject = {
234
+ * required: true,
235
+ * content: {
236
+ * 'application/json': {
237
+ * schema: {
238
+ * type: 'object',
239
+ * properties: {
240
+ * name: { type: 'string' },
241
+ * email: { type: 'string', format: 'email' }
242
+ * },
243
+ * required: ['name', 'email']
244
+ * }
245
+ * },
246
+ * 'application/xml': {
247
+ * schema: { type: 'string' }
248
+ * }
249
+ * }
250
+ * };
251
+ * ```
252
+ */
36
253
  export type RequestBodyObject = {
254
+ /** Whether request body is required */
37
255
  required?: boolean;
256
+ /** Content by media type */
38
257
  content: Record<string, MediaTypeObject>;
39
258
  };
259
+ /**
260
+ * Response object for operation outputs.
261
+ *
262
+ * Describes a single response including status code,
263
+ * headers, and content for different media types.
264
+ *
265
+ * @example
266
+ * ```typescript
267
+ * const response: ResponseObject = {
268
+ * description: 'User created successfully',
269
+ * headers: {
270
+ * 'Location': {
271
+ * description: 'URL of the created user',
272
+ * schema: { type: 'string', format: 'uri' }
273
+ * }
274
+ * },
275
+ * content: {
276
+ * 'application/json': {
277
+ * schema: { $ref: '#/components/schemas/User' },
278
+ * example: {
279
+ * id: '550e8400-e29b-41d4-a716-446655440000',
280
+ * name: 'John Doe',
281
+ * email: 'john@example.com'
282
+ * }
283
+ * }
284
+ * }
285
+ * };
286
+ * ```
287
+ */
40
288
  export type ResponseObject = {
289
+ /** Response description */
41
290
  description: string;
291
+ /** Response headers */
42
292
  headers?: Record<string, HeaderObject>;
293
+ /** Response content by media type */
43
294
  content?: Record<string, MediaTypeObject>;
44
295
  };
296
+ /**
297
+ * Header object for response headers.
298
+ *
299
+ * Describes a single response header including
300
+ * its schema and whether it's required.
301
+ *
302
+ * @example
303
+ * ```typescript
304
+ * const header: HeaderObject = {
305
+ * required: true,
306
+ * description: 'Unique request identifier',
307
+ * schema: { type: 'string', format: 'uuid' }
308
+ * };
309
+ * ```
310
+ */
45
311
  export type HeaderObject = {
312
+ /** Whether header is required */
46
313
  required?: boolean;
314
+ /** Header description */
47
315
  description?: string;
316
+ /** Header schema or reference */
48
317
  schema?: SchemaObject | ReferenceObject;
49
318
  };
319
+ /**
320
+ * Media type object for request/response content.
321
+ *
322
+ * Describes the structure and examples for
323
+ * a specific media type.
324
+ *
325
+ * @example
326
+ * ```typescript
327
+ * const mediaType: MediaTypeObject = {
328
+ * schema: {
329
+ * type: 'object',
330
+ * properties: {
331
+ * id: { type: 'string', format: 'uuid' },
332
+ * name: { type: 'string' }
333
+ * }
334
+ * },
335
+ * example: {
336
+ * id: '550e8400-e29b-41d4-a716-446655440000',
337
+ * name: 'John Doe'
338
+ * }
339
+ * };
340
+ * ```
341
+ */
50
342
  export type MediaTypeObject = {
343
+ /** Media type schema or reference */
51
344
  schema?: SchemaObject | ReferenceObject;
345
+ /** Example value */
52
346
  example?: unknown;
53
347
  };
348
+ /**
349
+ * Reference object for reusable components.
350
+ *
351
+ * Allows referencing other parts of the OpenAPI
352
+ * document using JSON references.
353
+ *
354
+ * @example
355
+ * ```typescript
356
+ * // Reference to a schema component
357
+ * const schemaRef: ReferenceObject = {
358
+ * $ref: '#/components/schemas/User'
359
+ * };
360
+ *
361
+ * // Reference to a security scheme
362
+ * const securityRef: ReferenceObject = {
363
+ * $ref: '#/components/securitySchemes/bearerAuth'
364
+ * };
365
+ * ```
366
+ */
54
367
  export type ReferenceObject = {
368
+ /** JSON reference to another component */
55
369
  $ref: string;
56
370
  };
371
+ /**
372
+ * Security requirement object.
373
+ *
374
+ * Specifies which security schemes are required
375
+ * for an operation.
376
+ *
377
+ * @example
378
+ * ```typescript
379
+ * // Bearer token security requirement
380
+ * const securityReq: SecurityRequirementObject = {
381
+ * bearerAuth: []
382
+ * };
383
+ *
384
+ * // Multiple security schemes (OR relationship)
385
+ * const multiSecurityReq: SecurityRequirementObject = {
386
+ * bearerAuth: [],
387
+ * apiKey: []
388
+ * };
389
+ *
390
+ * // Security scheme with scopes (OAuth2)
391
+ * const oauthSecurityReq: SecurityRequirementObject = {
392
+ * oauth2: ['read', 'write']
393
+ * };
394
+ * ```
395
+ */
396
+ export type SecurityRequirementObject = Record<string, string[]>;
397
+ /**
398
+ * Security scheme object.
399
+ *
400
+ * Defines authentication/authorization schemes
401
+ * that can be used by operations.
402
+ *
403
+ * @example
404
+ * ```typescript
405
+ * // Bearer token security scheme
406
+ * const bearerScheme: SecuritySchemeObject = {
407
+ * type: 'http',
408
+ * scheme: 'bearer',
409
+ * bearerFormat: 'JWT',
410
+ * description: 'Bearer token authentication'
411
+ * };
412
+ *
413
+ * // API key security scheme
414
+ * const apiKeyScheme: SecuritySchemeObject = {
415
+ * type: 'apiKey',
416
+ * name: 'X-API-Key',
417
+ * in: 'header',
418
+ * description: 'API key authentication'
419
+ * };
420
+ *
421
+ * // OAuth2 security scheme
422
+ * const oauthScheme: SecuritySchemeObject = {
423
+ * type: 'oauth2',
424
+ * flows: {
425
+ * authorizationCode: {
426
+ * authorizationUrl: 'https://auth.example.com/authorize',
427
+ * tokenUrl: 'https://auth.example.com/token',
428
+ * scopes: {
429
+ * read: 'Read access',
430
+ * write: 'Write access'
431
+ * }
432
+ * }
433
+ * }
434
+ * };
435
+ * ```
436
+ */
437
+ export type SecuritySchemeObject = {
438
+ /** Type of security scheme */
439
+ type: 'apiKey' | 'http' | 'oauth2' | 'openIdConnect';
440
+ /** Description of the security scheme */
441
+ description?: string;
442
+ /** Name of the header, query, or cookie parameter */
443
+ name?: string;
444
+ /** Location of the API key */
445
+ in?: 'query' | 'header' | 'cookie';
446
+ /** HTTP scheme (for type: http) */
447
+ scheme?: string;
448
+ /** Bearer format (for type: http with bearer scheme) */
449
+ bearerFormat?: string;
450
+ /** OAuth2 flows */
451
+ flows?: Record<string, unknown>;
452
+ /** OpenID Connect URL */
453
+ openIdConnectUrl?: string;
454
+ };
455
+ /**
456
+ * Schema object for data structure definition.
457
+ *
458
+ * Defines the structure, validation, and constraints
459
+ * for data used in parameters, request bodies, and responses.
460
+ *
461
+ * @example
462
+ * ```typescript
463
+ * // Simple object schema
464
+ * const userSchema: SchemaObject = {
465
+ * type: 'object',
466
+ * properties: {
467
+ * id: { type: 'string', format: 'uuid' },
468
+ * name: { type: 'string', minLength: 3 },
469
+ * email: { type: 'string', format: 'email' },
470
+ * age: { type: 'integer', minimum: 18 }
471
+ * },
472
+ * required: ['name', 'email']
473
+ * };
474
+ *
475
+ * // Array schema
476
+ * const usersArraySchema: SchemaObject = {
477
+ * type: 'array',
478
+ * items: { $ref: '#/components/schemas/User' },
479
+ * minItems: 1,
480
+ * maxItems: 100
481
+ * };
482
+ *
483
+ * // String with validation
484
+ * const usernameSchema: SchemaObject = {
485
+ * type: 'string',
486
+ * minLength: 3,
487
+ * maxLength: 32,
488
+ * pattern: '^[a-zA-Z0-9_]+$'
489
+ * };
490
+ *
491
+ * // Union schema
492
+ * const resultSchema: SchemaObject = {
493
+ * anyOf: [
494
+ * { $ref: '#/components/schemas/User' },
495
+ * { $ref: '#/components/schemas/Error' }
496
+ * ]
497
+ * };
498
+ * ```
499
+ */
57
500
  export type SchemaObject = {
501
+ /** Data type */
58
502
  type?: 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object';
503
+ /** Format for primitive types */
59
504
  format?: string;
505
+ /** Whether value can be null */
60
506
  nullable?: boolean;
507
+ /** Minimum length for strings */
61
508
  minLength?: number;
509
+ /** Maximum length for strings */
62
510
  maxLength?: number;
511
+ /** Regular expression pattern for strings */
63
512
  pattern?: string;
513
+ /** Minimum value for numbers */
64
514
  minimum?: number;
515
+ /** Maximum value for numbers */
65
516
  maximum?: number;
517
+ /** Minimum number of items for arrays */
66
518
  minItems?: number;
519
+ /** Maximum number of items for arrays */
67
520
  maxItems?: number;
521
+ /** Object properties */
68
522
  properties?: Record<string, SchemaObject | ReferenceObject>;
523
+ /** Required properties */
69
524
  required?: string[];
525
+ /** Additional properties policy */
70
526
  additionalProperties?: boolean | SchemaObject | ReferenceObject;
527
+ /** Array items schema */
71
528
  items?: SchemaObject | ReferenceObject;
529
+ /** Enum values */
72
530
  enum?: Array<string | number | boolean | null>;
531
+ /** Any of the schemas (logical OR) */
73
532
  anyOf?: Array<SchemaObject | ReferenceObject>;
533
+ /** One of the schemas (exclusive OR) */
74
534
  oneOf?: Array<SchemaObject | ReferenceObject>;
535
+ /** All of the schemas (logical AND) */
75
536
  allOf?: Array<SchemaObject | ReferenceObject>;
76
537
  };
77
538
  //# sourceMappingURL=openapi-v3.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-v3.d.ts","sourceRoot":"","sources":["../../src/contracts/openapi-v3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openapi-v3.d.ts","sourceRoot":"","sources":["../../src/contracts/openapi-v3.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,119 @@
1
+ /**
2
+ * Valid types for HTTP response headers.
3
+ */
1
4
  export type ReplyHeaderValue = string | number | boolean;
5
+ /**
6
+ * Collection of HTTP response headers.
7
+ *
8
+ * Key-value pairs where keys are header names and values are
9
+ * header values of valid types.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const headers: ReplyHeaders = {
14
+ * 'Content-Type': 'application/json',
15
+ * 'Cache-Control': 'no-cache',
16
+ * 'X-Request-ID': 'abc-123-def'
17
+ * };
18
+ * ```
19
+ */
2
20
  export type ReplyHeaders = Record<string, ReplyHeaderValue>;
21
+ /**
22
+ * Typed HTTP response object used by Adorn API.
23
+ *
24
+ * This type represents a complete HTTP response with status code,
25
+ * body, headers, and content type. It's used throughout the framework
26
+ * to return responses from controllers and handlers.
27
+ *
28
+ * @template TBody - Type of the response body
29
+ * @template TStatus - HTTP status code (must be a number literal)
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * // Simple JSON response
34
+ * const successResponse: Reply<User, 200> = {
35
+ * __adornReply: true,
36
+ * status: 200,
37
+ * body: { id: '123', name: 'John Doe' },
38
+ * headers: { 'Content-Type': 'application/json' }
39
+ * };
40
+ * ```
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * // Error response
45
+ * const errorResponse: Reply<ErrorDetails, 404> = {
46
+ * __adornReply: true,
47
+ * status: 404,
48
+ * body: { error: 'Not Found', code: 'USER_NOT_FOUND' },
49
+ * headers: { 'Content-Type': 'application/json' }
50
+ * };
51
+ * ```
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * // Response with custom headers
56
+ * const responseWithHeaders: Reply<string, 201> = {
57
+ * __adornReply: true,
58
+ * status: 201,
59
+ * body: 'Resource created',
60
+ * headers: {
61
+ * 'Location': '/resources/123',
62
+ * 'X-Resource-ID': '123'
63
+ * },
64
+ * contentType: 'text/plain'
65
+ * };
66
+ * ```
67
+ *
68
+ * @see isReply for type guard function
69
+ */
3
70
  export type Reply<TBody = unknown, TStatus extends number = number> = {
71
+ /** Brand property to identify Adorn reply objects */
4
72
  readonly __adornReply: true;
73
+ /** HTTP status code */
5
74
  readonly status: TStatus;
75
+ /** Response body */
6
76
  readonly body?: TBody;
77
+ /** Response headers */
7
78
  readonly headers?: ReplyHeaders;
79
+ /** Content type header (convenience property) */
8
80
  readonly contentType?: string;
9
81
  };
10
- export declare function isReply(x: unknown): x is Reply<any, any>;
82
+ /**
83
+ * Type guard function to check if an object is an Adorn Reply.
84
+ *
85
+ * This function is used to safely check if an object conforms to
86
+ * the Reply type structure.
87
+ *
88
+ * @param x - Object to check
89
+ * @returns true if the object is a Reply, false otherwise
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * function handleResponse(response: unknown) {
94
+ * if (isReply(response)) {
95
+ * // TypeScript now knows response is a Reply
96
+ * console.log('Status:', response.status);
97
+ * console.log('Body:', response.body);
98
+ * } else {
99
+ * console.log('Not a reply object');
100
+ * }
101
+ * }
102
+ * ```
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * // In middleware or error handling
107
+ * if (isReply(error)) {
108
+ * // It's a reply object, can be sent directly to client
109
+ * res.status(error.status).json(error.body);
110
+ * } else {
111
+ * // Handle non-reply errors
112
+ * res.status(500).json({ error: 'Internal Server Error' });
113
+ * }
114
+ * ```
115
+ *
116
+ * @see Reply for the reply object type
117
+ */
118
+ export declare function isReply(x: unknown): x is Reply<unknown, number>;
11
119
  //# sourceMappingURL=reply.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reply.d.ts","sourceRoot":"","sources":["../../src/contracts/reply.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACzD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE5D,MAAM,MAAM,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI;IACpE,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAExD"}
1
+ {"version":3,"file":"reply.d.ts","sourceRoot":"","sources":["../../src/contracts/reply.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,MAAM,MAAM,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI;IACpE,qDAAqD;IACrD,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IAC5B,uBAAuB;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,oBAAoB;IACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;IACtB,uBAAuB;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,iDAAiD;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAI/D"}