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
@@ -5,6 +5,9 @@
5
5
  * Some runtimes may not have Symbol.metadata yet; TypeScript's emit still uses it,
6
6
  * so we polyfill Symbol.metadata to a stable symbol if missing.
7
7
  */
8
+ import type { ResponsesSpec } from '../contracts/responses.js';
9
+ import type { RouteOptions } from '../contracts/route-options.js';
10
+ import type { SecurityRequirementObject, SecuritySchemeObject } from '../contracts/openapi-v3.js';
8
11
  export declare const SYMBOL_METADATA: symbol;
9
12
  /**
10
13
  * All adorn-api metadata keys live here.
@@ -20,20 +23,118 @@ export declare const META: {
20
23
  readonly bindings: symbol;
21
24
  };
22
25
  /**
23
- * Minimal shapes for group-1.
26
+ * Metadata shape for controller-level configuration.
27
+ *
28
+ * Stores base path information for controllers that can be used
29
+ * to prefix all routes defined within the controller.
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * // Controller with base path metadata
34
+ * const controllerMeta: ControllerMeta = {
35
+ * basePath: '/api/v1'
36
+ * };
37
+ *
38
+ * // This would make all routes in the controller start with /api/v1
39
+ * ```
24
40
  */
25
41
  export type ControllerMeta = {
42
+ /** Base path for all routes in this controller */
26
43
  basePath: string;
27
44
  };
45
+ /**
46
+ * Metadata shape for individual route definitions.
47
+ *
48
+ * Stores information about HTTP methods, paths, route names,
49
+ * and additional route-specific configuration.
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * // Route metadata for a GET endpoint
54
+ * const routeMeta: RouteMeta = {
55
+ * method: 'GET',
56
+ * path: '/users/:id',
57
+ * name: 'getUser',
58
+ * options: {
59
+ * summary: 'Get user by ID',
60
+ * responses: {
61
+ * 200: { description: 'User found' },
62
+ * 404: { description: 'User not found' }
63
+ * }
64
+ * }
65
+ * };
66
+ * ```
67
+ */
28
68
  export type RouteMeta = {
69
+ /** HTTP method for this route */
29
70
  method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
71
+ /** Route path template */
30
72
  path: string;
73
+ /** Method name on the controller */
31
74
  name: string;
75
+ /** Additional route configuration options */
32
76
  options?: unknown;
33
77
  };
78
+ /**
79
+ * Metadata shape for database transaction configuration.
80
+ *
81
+ * Controls transactional behavior for database operations
82
+ * associated with routes or controllers.
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * // Automatic transaction (default)
87
+ * const autoTransaction: DbMeta = {
88
+ * transactional: 'auto'
89
+ * };
90
+ *
91
+ * // Required transaction
92
+ * const requiredTransaction: DbMeta = {
93
+ * transactional: 'required'
94
+ * };
95
+ *
96
+ * // No transaction
97
+ * const noTransaction: DbMeta = {
98
+ * transactional: 'none'
99
+ * };
100
+ * ```
101
+ */
34
102
  export type DbMeta = {
103
+ /**
104
+ * Transactional behavior:
105
+ * - 'auto': Automatic transaction management (default)
106
+ * - 'required': Requires existing transaction
107
+ * - 'none': No transaction
108
+ */
35
109
  transactional: 'auto' | 'required' | 'none';
36
110
  };
111
+ /**
112
+ * Binding hint for parameter binding configuration.
113
+ *
114
+ * Specifies how parameters should be bound from different
115
+ * sources (path, query, body) with optional type hints.
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * // Path parameter with type hint
120
+ * const pathHint: BindingHint = {
121
+ * kind: 'path',
122
+ * name: 'id',
123
+ * type: 'uuid'
124
+ * };
125
+ *
126
+ * // Query parameter
127
+ * const queryHint: BindingHint = {
128
+ * kind: 'query',
129
+ * name: 'limit'
130
+ * };
131
+ *
132
+ * // Body binding
133
+ * const bodyHint: BindingHint = {
134
+ * kind: 'body'
135
+ * };
136
+ * ```
137
+ */
37
138
  export type BindingHint = {
38
139
  kind: 'path';
39
140
  name: string;
@@ -44,9 +145,110 @@ export type BindingHint = {
44
145
  } | {
45
146
  kind: 'body';
46
147
  };
148
+ /**
149
+ * Metadata shape for parameter binding configuration.
150
+ *
151
+ * Stores binding hints organized by method name for
152
+ * fine-grained control over parameter binding behavior.
153
+ *
154
+ * @example
155
+ * ```typescript
156
+ * // Binding metadata for a controller
157
+ * const bindingsMeta: BindingsMeta = {
158
+ * byMethod: {
159
+ * 'getUser': {
160
+ * path: {
161
+ * id: 'uuid', // Bind id parameter as UUID
162
+ * status: 'string' // Bind status parameter as string
163
+ * }
164
+ * },
165
+ * 'createUser': {
166
+ * path: {
167
+ * teamId: 'int' // Bind teamId parameter as integer
168
+ * }
169
+ * }
170
+ * }
171
+ * };
172
+ * ```
173
+ */
47
174
  export type BindingsMeta = {
175
+ /**
176
+ * Binding configuration by method name
177
+ * @template MethodName - Name of the controller method
178
+ */
48
179
  byMethod?: Record<string, {
180
+ /** Type hints for path parameters */
49
181
  path?: Record<string, 'string' | 'int' | 'number' | 'boolean' | 'uuid'>;
50
182
  }>;
51
183
  };
184
+ /**
185
+ * Metadata shape for OpenAPI documentation configuration.
186
+ *
187
+ * Stores documentation-related information including tags,
188
+ * security requirements, responses, and method-specific docs.
189
+ *
190
+ * @example
191
+ * ```typescript
192
+ * // Comprehensive documentation metadata
193
+ * const docsMeta: DocsMeta = {
194
+ * tags: ['Users', 'API'],
195
+ * deprecated: false,
196
+ * operationId: 'getUserById',
197
+ * security: [{ bearerAuth: [] }],
198
+ * responses: {
199
+ * 200: { description: 'User found' },
200
+ * 404: { description: 'User not found' }
201
+ * },
202
+ * byMethod: {
203
+ * 'getUser': {
204
+ * summary: 'Get user by ID',
205
+ * description: 'Retrieves a user by their unique identifier'
206
+ * }
207
+ * }
208
+ * };
209
+ * ```
210
+ */
211
+ export type DocsMeta = {
212
+ /** Tags for API documentation grouping */
213
+ tags?: string[];
214
+ /** Whether this endpoint is deprecated */
215
+ deprecated?: boolean;
216
+ /** Unique operation identifier */
217
+ operationId?: string;
218
+ /** Security requirements for this endpoint */
219
+ security?: SecurityRequirementObject[];
220
+ /** Response specifications */
221
+ responses?: ResponsesSpec;
222
+ /** Method-specific documentation overrides */
223
+ byMethod?: Record<string, Partial<RouteOptions<string>>>;
224
+ };
225
+ /**
226
+ * Metadata shape for security scheme definitions.
227
+ *
228
+ * Stores security schemes that can be referenced by
229
+ * routes and controllers for authentication/authorization.
230
+ *
231
+ * @example
232
+ * ```typescript
233
+ * // Security metadata with multiple schemes
234
+ * const securityMeta: SecurityMeta = {
235
+ * schemes: {
236
+ * bearerAuth: {
237
+ * type: 'http',
238
+ * scheme: 'bearer',
239
+ * bearerFormat: 'JWT'
240
+ * },
241
+ * apiKey: {
242
+ * type: 'apiKey',
243
+ * name: 'X-API-Key',
244
+ * in: 'header'
245
+ * }
246
+ * }
247
+ * };
248
+ * ```
249
+ */
250
+ export type SecurityMeta = {
251
+ /** Security schemes available for this API */
252
+ schemes?: Record<string, SecuritySchemeObject>;
253
+ };
52
254
  //# sourceMappingURL=keys.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/metadata/keys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,MAO1B,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;;CAQP,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,aAAa,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;CAAE,GACvF;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,MAAM,CACf,MAAM,EACN;QACE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC;KACzE,CACF,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/metadata/keys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElG,eAAO,MAAM,eAAe,EAAE,MAS1B,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;;CAQP,CAAC;AAEX;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,iCAAiC;IACjC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB;;;;;OAKG;IACH,aAAa,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;CAC7C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;CAAE,GACvF;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CACf,MAAM,EACN;QACE,qCAAqC;QACrC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC;KACzE,CACF,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACvC,8BAA8B;IAC9B,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAChD,CAAC"}
@@ -1,16 +1,10 @@
1
- /**
2
- * Stage-3 decorators store metadata in a "metadata bag" accessible at runtime via:
3
- * MyClass[Symbol.metadata]
4
- *
5
- * Some runtimes may not have Symbol.metadata yet; TypeScript's emit still uses it,
6
- * so we polyfill Symbol.metadata to a stable symbol if missing.
7
- */
8
1
  export const SYMBOL_METADATA = (() => {
9
- const existing = Symbol.metadata;
2
+ const symbolWithMeta = Symbol;
3
+ const existing = symbolWithMeta.metadata;
10
4
  if (typeof existing === 'symbol')
11
5
  return existing;
12
6
  const created = Symbol('Symbol.metadata');
13
- Symbol.metadata = created;
7
+ symbolWithMeta.metadata = created;
14
8
  return created;
15
9
  })();
16
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/metadata/keys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAW,CAAC,GAAG,EAAE;IAC3C,MAAM,QAAQ,GAAI,MAAc,CAAC,QAAQ,CAAC;IAC1C,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAElD,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACzC,MAAc,CAAC,QAAQ,GAAG,OAAO,CAAC;IACnC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC,EAAE,CAAC;AAEL;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC9C,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;CAClC,CAAC"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/metadata/keys.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,eAAe,GAAW,CAAC,GAAG,EAAE;IAE3C,MAAM,cAAc,GAAG,MAAwB,CAAC;IAChD,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;IACzC,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAElD,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC1C,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAC;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC,EAAE,CAAC;AAEL;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC9C,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;CAClC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/metadata/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAqBhE"}
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/metadata/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAwBhE"}
@@ -14,7 +14,10 @@ export function mergeBags(base, child) {
14
14
  continue;
15
15
  }
16
16
  if (isPlainObject(baseValue) && isPlainObject(childValue)) {
17
- out[key] = { ...baseValue, ...childValue };
17
+ out[key] = {
18
+ ...baseValue,
19
+ ...childValue,
20
+ };
18
21
  continue;
19
22
  }
20
23
  out[key] = childValue;
@@ -1 +1 @@
1
- {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/metadata/merge.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,IAAa,EAAE,KAAc;IACrD,MAAM,GAAG,GAAY,EAAE,GAAG,IAAI,EAAE,CAAC;IAEjC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC;YACzC,SAAS;QACX,CAAC;QAED,IAAI,aAAa,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAI,SAAoB,EAAE,GAAI,UAAqB,EAAS,CAAC;YAC1E,SAAS;QACX,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;IACxB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/metadata/merge.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,IAAa,EAAE,KAAc;IACrD,MAAM,GAAG,GAAY,EAAE,GAAG,IAAI,EAAE,CAAC;IAEjC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC;YACzC,SAAS;QACX,CAAC;QAED,IAAI,aAAa,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,GAAG,CAAC,GAAG;gBACT,GAAI,SAA0C;gBAC9C,GAAI,UAA2C;aAChD,CAAC;YACF,SAAS;QACX,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;IACxB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC"}
@@ -6,11 +6,11 @@ export type Schema<T> = {
6
6
  readonly name?: string;
7
7
  parse(value: unknown, path?: Array<string | number>): ValidationResult<T>;
8
8
  };
9
- export type Infer<S extends Schema<any>> = S extends Schema<infer T> ? T : never;
9
+ export type Infer<S extends Schema<unknown>> = S extends Schema<infer T> ? T : never;
10
10
  export declare function optional<T>(inner: Schema<T>): Schema<T | undefined>;
11
11
  declare function literalBase<T extends string | number | boolean | null>(lit: T): Schema<T>;
12
12
  declare function enumBase<T extends readonly string[]>(values: T): Schema<T[number]>;
13
- type ObjectShape = Record<string, Schema<any>>;
13
+ type ObjectShape = Record<string, Schema<unknown>>;
14
14
  type StringBuilder = Schema<string> & {
15
15
  min(n: number): StringBuilder;
16
16
  max(n: number): StringBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/validation/native/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/validation/native/schema.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { Validator, ValidationResult } from '../../contracts/validator.js';
2
2
  import type { Schema } from './schema.js';
3
- type SchemaMap = Record<string, Schema<any>>;
3
+ type SchemaMap = Record<string, Schema<unknown>>;
4
4
  export declare class NativeValidator implements Validator {
5
5
  private readonly bodies;
6
6
  private readonly queries;
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/validation/native/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAE7C,qBAAa,eAAgB,YAAW,SAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;gBAEvB,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAC;QAAC,MAAM,CAAC,EAAE,SAAS,CAAA;KAAE;IAM9E,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAM/E,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAMjF,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAMnF,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC;IAM3D,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC;IAM7D,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC;CAKhE"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/validation/native/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAEjD,qBAAa,eAAgB,YAAW,SAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;gBAEvB,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAC;QAAC,MAAM,CAAC,EAAE,SAAS,CAAA;KAAE;IAM9E,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAM/E,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAMjF,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAMnF,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC;IAM3D,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC;IAM7D,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC;CAKhE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adorn-api",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Stage-3 decorator router + OpenAPI, with optional MetalORM integration",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -35,6 +35,9 @@
35
35
  "@types/express": "^5.0.6",
36
36
  "@types/node": "^25.0.3",
37
37
  "@types/supertest": "^6.0.3",
38
+ "@typescript-eslint/eslint-plugin": "^8.50.1",
39
+ "@typescript-eslint/parser": "^8.50.1",
40
+ "eslint": "^9.39.2",
38
41
  "sqlite3": "^5.1.7",
39
42
  "supertest": "^7.1.4",
40
43
  "typescript": "^5.9.3",
@@ -43,7 +46,8 @@
43
46
  "scripts": {
44
47
  "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
45
48
  "build": "npm run clean && tsc -p tsconfig.build.json",
46
- "check": "npm run typecheck && npm run check:decorated-returns && npm run test",
49
+ "check": "npm run lint && npm run typecheck && npm run check:decorated-returns && npm run test",
50
+ "lint": "eslint src test --ext .ts",
47
51
  "check:decorated-returns": "node scripts/check-decorated-returns.js",
48
52
  "typecheck": "tsc -p tsconfig.json --noEmit",
49
53
  "test": "vitest run",