@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.
Files changed (274) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +149 -4
  3. package/dist/application/index.d.ts +93 -9
  4. package/dist/application/index.d.ts.map +1 -1
  5. package/dist/application/index.js +11 -11
  6. package/dist/application/index.js.map +1 -1
  7. package/dist/client/client.d.ts +73 -12
  8. package/dist/client/client.d.ts.map +1 -1
  9. package/dist/client/client.js +37 -12
  10. package/dist/client/client.js.map +1 -1
  11. package/dist/client/index.d.ts +12 -0
  12. package/dist/client/index.d.ts.map +1 -1
  13. package/dist/client/index.js +6 -0
  14. package/dist/client/index.js.map +1 -1
  15. package/dist/client/types.d.ts +69 -8
  16. package/dist/client/types.d.ts.map +1 -1
  17. package/dist/config/index.d.ts +84 -0
  18. package/dist/config/index.d.ts.map +1 -1
  19. package/dist/config/index.js +36 -0
  20. package/dist/config/index.js.map +1 -1
  21. package/dist/contracts/contract-builder.d.ts +49 -22
  22. package/dist/contracts/contract-builder.d.ts.map +1 -1
  23. package/dist/contracts/contract-builder.js +48 -21
  24. package/dist/contracts/contract-builder.js.map +1 -1
  25. package/dist/contracts/contract-group.d.ts +35 -19
  26. package/dist/contracts/contract-group.d.ts.map +1 -1
  27. package/dist/contracts/contract-group.js +35 -19
  28. package/dist/contracts/contract-group.js.map +1 -1
  29. package/dist/contracts/contract-like.d.ts +4 -4
  30. package/dist/contracts/contract-like.d.ts.map +1 -1
  31. package/dist/contracts/contract-like.js +2 -1
  32. package/dist/contracts/contract-like.js.map +1 -1
  33. package/dist/contracts/index.d.ts +28 -0
  34. package/dist/contracts/index.d.ts.map +1 -1
  35. package/dist/contracts/index.js +12 -0
  36. package/dist/contracts/index.js.map +1 -1
  37. package/dist/contracts/openapi-meta.d.ts +8 -8
  38. package/dist/contracts/openapi-meta.d.ts.map +1 -1
  39. package/dist/contracts/path-template.d.ts +27 -0
  40. package/dist/contracts/path-template.d.ts.map +1 -1
  41. package/dist/contracts/path-template.js +6 -0
  42. package/dist/contracts/path-template.js.map +1 -1
  43. package/dist/contracts/types.d.ts +104 -10
  44. package/dist/contracts/types.d.ts.map +1 -1
  45. package/dist/contracts/types.js +15 -0
  46. package/dist/contracts/types.js.map +1 -1
  47. package/dist/contracts/utils.d.ts +6 -0
  48. package/dist/contracts/utils.d.ts.map +1 -1
  49. package/dist/contracts/utils.js +6 -0
  50. package/dist/contracts/utils.js.map +1 -1
  51. package/dist/domain/entity.d.ts +22 -11
  52. package/dist/domain/entity.d.ts.map +1 -1
  53. package/dist/domain/entity.js +5 -1
  54. package/dist/domain/entity.js.map +1 -1
  55. package/dist/domain/events.d.ts +5 -2
  56. package/dist/domain/events.d.ts.map +1 -1
  57. package/dist/domain/events.js +4 -1
  58. package/dist/domain/events.js.map +1 -1
  59. package/dist/domain/value-object.d.ts +19 -9
  60. package/dist/domain/value-object.d.ts.map +1 -1
  61. package/dist/domain/value-object.js +5 -1
  62. package/dist/domain/value-object.js.map +1 -1
  63. package/dist/errors/catalog.d.ts +40 -16
  64. package/dist/errors/catalog.d.ts.map +1 -1
  65. package/dist/errors/catalog.js +18 -7
  66. package/dist/errors/catalog.js.map +1 -1
  67. package/dist/errors/response.d.ts +16 -4
  68. package/dist/errors/response.d.ts.map +1 -1
  69. package/dist/errors/response.js +3 -3
  70. package/dist/errors/response.js.map +1 -1
  71. package/dist/errors/validation.d.ts +10 -1
  72. package/dist/errors/validation.d.ts.map +1 -1
  73. package/dist/errors/validation.js +3 -0
  74. package/dist/errors/validation.js.map +1 -1
  75. package/dist/events/index.d.ts +133 -0
  76. package/dist/events/index.d.ts.map +1 -1
  77. package/dist/events/index.js +30 -0
  78. package/dist/events/index.js.map +1 -1
  79. package/dist/idempotency/index.d.ts +355 -0
  80. package/dist/idempotency/index.d.ts.map +1 -0
  81. package/dist/idempotency/index.js +360 -0
  82. package/dist/idempotency/index.js.map +1 -0
  83. package/dist/jobs/index.d.ts +110 -0
  84. package/dist/jobs/index.d.ts.map +1 -1
  85. package/dist/jobs/index.js +22 -0
  86. package/dist/jobs/index.js.map +1 -1
  87. package/dist/mail/index.d.ts +149 -0
  88. package/dist/mail/index.d.ts.map +1 -1
  89. package/dist/mail/index.js +30 -0
  90. package/dist/mail/index.js.map +1 -1
  91. package/dist/notifications/index.d.ts +369 -0
  92. package/dist/notifications/index.d.ts.map +1 -0
  93. package/dist/notifications/index.js +310 -0
  94. package/dist/notifications/index.js.map +1 -0
  95. package/dist/openapi/index.d.ts +132 -16
  96. package/dist/openapi/index.d.ts.map +1 -1
  97. package/dist/openapi/index.js +1 -1
  98. package/dist/openapi/index.js.map +1 -1
  99. package/dist/outbox/index.d.ts +469 -0
  100. package/dist/outbox/index.d.ts.map +1 -0
  101. package/dist/outbox/index.js +482 -0
  102. package/dist/outbox/index.js.map +1 -0
  103. package/dist/pagination/index.d.ts +166 -0
  104. package/dist/pagination/index.d.ts.map +1 -0
  105. package/dist/pagination/index.js +96 -0
  106. package/dist/pagination/index.js.map +1 -0
  107. package/dist/ports/audit.d.ts +271 -0
  108. package/dist/ports/audit.d.ts.map +1 -1
  109. package/dist/ports/audit.js +128 -0
  110. package/dist/ports/audit.js.map +1 -1
  111. package/dist/ports/auth.d.ts +70 -0
  112. package/dist/ports/auth.d.ts.map +1 -1
  113. package/dist/ports/auth.js +30 -0
  114. package/dist/ports/auth.js.map +1 -1
  115. package/dist/ports/cache.d.ts +41 -0
  116. package/dist/ports/cache.d.ts.map +1 -1
  117. package/dist/ports/cache.js +10 -0
  118. package/dist/ports/cache.js.map +1 -1
  119. package/dist/ports/clock.d.ts +38 -0
  120. package/dist/ports/clock.d.ts.map +1 -1
  121. package/dist/ports/clock.js +20 -0
  122. package/dist/ports/clock.js.map +1 -1
  123. package/dist/ports/id-generator.d.ts +37 -0
  124. package/dist/ports/id-generator.d.ts.map +1 -1
  125. package/dist/ports/id-generator.js +22 -0
  126. package/dist/ports/id-generator.js.map +1 -1
  127. package/dist/ports/index.d.ts +83 -0
  128. package/dist/ports/index.d.ts.map +1 -1
  129. package/dist/ports/index.js +41 -5
  130. package/dist/ports/index.js.map +1 -1
  131. package/dist/ports/logger.d.ts +56 -0
  132. package/dist/ports/logger.d.ts.map +1 -1
  133. package/dist/ports/logger.js +17 -0
  134. package/dist/ports/logger.js.map +1 -1
  135. package/dist/ports/policy.d.ts +132 -0
  136. package/dist/ports/policy.d.ts.map +1 -1
  137. package/dist/ports/policy.js +45 -0
  138. package/dist/ports/policy.js.map +1 -1
  139. package/dist/ports/rate-limit.d.ts +25 -0
  140. package/dist/ports/rate-limit.d.ts.map +1 -1
  141. package/dist/ports/rate-limit.js +10 -0
  142. package/dist/ports/rate-limit.js.map +1 -1
  143. package/dist/ports/redaction.d.ts +101 -0
  144. package/dist/ports/redaction.d.ts.map +1 -1
  145. package/dist/ports/redaction.js +59 -0
  146. package/dist/ports/redaction.js.map +1 -1
  147. package/dist/ports/storage.d.ts +100 -0
  148. package/dist/ports/storage.d.ts.map +1 -1
  149. package/dist/ports/storage.js +10 -0
  150. package/dist/ports/storage.js.map +1 -1
  151. package/dist/ports/testing.d.ts +47 -0
  152. package/dist/ports/testing.d.ts.map +1 -1
  153. package/dist/ports/testing.js +23 -0
  154. package/dist/ports/testing.js.map +1 -1
  155. package/dist/ports/unit-of-work.d.ts +60 -3
  156. package/dist/ports/unit-of-work.d.ts.map +1 -1
  157. package/dist/ports/unit-of-work.js +11 -2
  158. package/dist/ports/unit-of-work.js.map +1 -1
  159. package/dist/providers/instrumentation.d.ts +204 -0
  160. package/dist/providers/instrumentation.d.ts.map +1 -1
  161. package/dist/providers/instrumentation.js +14 -0
  162. package/dist/providers/instrumentation.js.map +1 -1
  163. package/dist/providers/provider.d.ts +14 -1
  164. package/dist/providers/provider.d.ts.map +1 -1
  165. package/dist/providers/provider.js.map +1 -1
  166. package/dist/schedules/index.d.ts +246 -0
  167. package/dist/schedules/index.d.ts.map +1 -1
  168. package/dist/schedules/index.js +27 -0
  169. package/dist/schedules/index.js.map +1 -1
  170. package/dist/server/health.d.ts +14 -5
  171. package/dist/server/health.d.ts.map +1 -1
  172. package/dist/server/health.js +5 -2
  173. package/dist/server/health.js.map +1 -1
  174. package/dist/server/hooks/auth.d.ts +57 -0
  175. package/dist/server/hooks/auth.d.ts.map +1 -1
  176. package/dist/server/hooks/auth.js.map +1 -1
  177. package/dist/server/hooks/cors.d.ts +27 -0
  178. package/dist/server/hooks/cors.d.ts.map +1 -1
  179. package/dist/server/hooks/cors.js +12 -0
  180. package/dist/server/hooks/cors.js.map +1 -1
  181. package/dist/server/hooks/errors.d.ts +15 -6
  182. package/dist/server/hooks/errors.d.ts.map +1 -1
  183. package/dist/server/hooks/errors.js.map +1 -1
  184. package/dist/server/hooks/index.d.ts +3 -0
  185. package/dist/server/hooks/index.d.ts.map +1 -1
  186. package/dist/server/hooks/index.js +3 -0
  187. package/dist/server/hooks/index.js.map +1 -1
  188. package/dist/server/hooks/logging.d.ts +36 -0
  189. package/dist/server/hooks/logging.d.ts.map +1 -1
  190. package/dist/server/hooks/logging.js +6 -0
  191. package/dist/server/hooks/logging.js.map +1 -1
  192. package/dist/server/hooks/rate-limit.d.ts +33 -0
  193. package/dist/server/hooks/rate-limit.d.ts.map +1 -1
  194. package/dist/server/hooks/rate-limit.js +11 -0
  195. package/dist/server/hooks/rate-limit.js.map +1 -1
  196. package/dist/server/http.d.ts +170 -0
  197. package/dist/server/http.d.ts.map +1 -1
  198. package/dist/server/index.d.ts +18 -0
  199. package/dist/server/index.d.ts.map +1 -1
  200. package/dist/server/index.js +6 -0
  201. package/dist/server/index.js.map +1 -1
  202. package/dist/server/openapi.d.ts +5 -3
  203. package/dist/server/openapi.d.ts.map +1 -1
  204. package/dist/server/openapi.js +4 -2
  205. package/dist/server/openapi.js.map +1 -1
  206. package/dist/server/providers/loadProviderConfig.d.ts +9 -0
  207. package/dist/server/providers/loadProviderConfig.d.ts.map +1 -1
  208. package/dist/server/providers/loadProviderConfig.js +9 -0
  209. package/dist/server/providers/loadProviderConfig.js.map +1 -1
  210. package/dist/server/server.d.ts +107 -8
  211. package/dist/server/server.d.ts.map +1 -1
  212. package/dist/server/server.js +27 -7
  213. package/dist/server/server.js.map +1 -1
  214. package/dist/testing/index.d.ts +167 -0
  215. package/dist/testing/index.d.ts.map +1 -0
  216. package/dist/testing/index.js +119 -0
  217. package/dist/testing/index.js.map +1 -0
  218. package/package.json +21 -1
  219. package/src/application/index.ts +85 -22
  220. package/src/client/client.ts +73 -12
  221. package/src/client/index.ts +12 -0
  222. package/src/client/types.ts +70 -9
  223. package/src/config/index.ts +86 -0
  224. package/src/contracts/contract-builder.ts +49 -22
  225. package/src/contracts/contract-group.ts +35 -19
  226. package/src/contracts/contract-like.ts +4 -4
  227. package/src/contracts/index.ts +28 -1
  228. package/src/contracts/openapi-meta.ts +8 -8
  229. package/src/contracts/path-template.ts +27 -0
  230. package/src/contracts/types.ts +111 -10
  231. package/src/contracts/utils.ts +6 -0
  232. package/src/domain/entity.ts +22 -11
  233. package/src/domain/events.ts +5 -2
  234. package/src/domain/value-object.ts +19 -9
  235. package/src/errors/catalog.ts +40 -16
  236. package/src/errors/response.ts +16 -4
  237. package/src/errors/validation.ts +10 -1
  238. package/src/events/index.ts +134 -0
  239. package/src/idempotency/index.ts +767 -0
  240. package/src/jobs/index.ts +111 -0
  241. package/src/mail/index.ts +149 -0
  242. package/src/notifications/index.ts +771 -0
  243. package/src/openapi/index.ts +133 -16
  244. package/src/outbox/index.ts +1024 -0
  245. package/src/pagination/index.ts +278 -0
  246. package/src/ports/audit.ts +271 -0
  247. package/src/ports/auth.ts +70 -0
  248. package/src/ports/cache.ts +41 -0
  249. package/src/ports/clock.ts +38 -0
  250. package/src/ports/id-generator.ts +37 -0
  251. package/src/ports/index.ts +106 -11
  252. package/src/ports/logger.ts +56 -0
  253. package/src/ports/policy.ts +133 -0
  254. package/src/ports/rate-limit.ts +25 -0
  255. package/src/ports/redaction.ts +101 -0
  256. package/src/ports/storage.ts +100 -0
  257. package/src/ports/testing.ts +47 -0
  258. package/src/ports/unit-of-work.ts +60 -3
  259. package/src/providers/instrumentation.ts +204 -0
  260. package/src/providers/provider.ts +14 -1
  261. package/src/schedules/index.ts +247 -0
  262. package/src/server/health.ts +14 -5
  263. package/src/server/hooks/auth.ts +58 -0
  264. package/src/server/hooks/cors.ts +27 -0
  265. package/src/server/hooks/errors.ts +15 -6
  266. package/src/server/hooks/index.ts +3 -0
  267. package/src/server/hooks/logging.ts +36 -0
  268. package/src/server/hooks/rate-limit.ts +33 -0
  269. package/src/server/http.ts +170 -1
  270. package/src/server/index.ts +18 -1
  271. package/src/server/openapi.ts +5 -3
  272. package/src/server/providers/loadProviderConfig.ts +9 -0
  273. package/src/server/server.ts +107 -9
  274. package/src/testing/index.ts +337 -0
@@ -26,18 +26,36 @@ export {
26
26
  } from "./schema-introspector";
27
27
 
28
28
  /**
29
- * OpenAPI 3.1 Info Object
29
+ * OpenAPI 3.1 info object.
30
30
  */
31
31
  export interface OpenAPIInfo {
32
+ /**
33
+ * API title.
34
+ */
32
35
  title: string;
36
+ /**
37
+ * API version.
38
+ */
33
39
  version: string;
40
+ /**
41
+ * API description.
42
+ */
34
43
  description?: string;
44
+ /**
45
+ * Terms of service URL.
46
+ */
35
47
  termsOfService?: string;
48
+ /**
49
+ * API contact information.
50
+ */
36
51
  contact?: {
37
52
  name?: string;
38
53
  url?: string;
39
54
  email?: string;
40
55
  };
56
+ /**
57
+ * API license information.
58
+ */
41
59
  license?: {
42
60
  name: string;
43
61
  url?: string;
@@ -45,11 +63,20 @@ export interface OpenAPIInfo {
45
63
  }
46
64
 
47
65
  /**
48
- * OpenAPI 3.1 Server Object
66
+ * OpenAPI 3.1 server object.
49
67
  */
50
68
  export interface OpenAPIServer {
69
+ /**
70
+ * Server URL.
71
+ */
51
72
  url: string;
73
+ /**
74
+ * Server description.
75
+ */
52
76
  description?: string;
77
+ /**
78
+ * Server URL variables.
79
+ */
53
80
  variables?: Record<
54
81
  string,
55
82
  {
@@ -61,7 +88,7 @@ export interface OpenAPIServer {
61
88
  }
62
89
 
63
90
  /**
64
- * OpenAPI 3.1 Security Scheme Object
91
+ * OpenAPI 3.1 security scheme object.
65
92
  */
66
93
  export type OpenAPISecurityScheme =
67
94
  | {
@@ -88,29 +115,60 @@ export type OpenAPISecurityScheme =
88
115
  };
89
116
 
90
117
  /**
91
- * Schema or Reference object for OpenAPI
118
+ * OpenAPI schema object.
92
119
  */
93
120
  export type SchemaObject = Record<string, unknown>;
121
+
122
+ /**
123
+ * OpenAPI reference object.
124
+ */
94
125
  export type ReferenceObject = { $ref: string };
95
126
 
96
127
  /**
97
- * OpenAPI Parameter Object
128
+ * OpenAPI parameter object.
98
129
  */
99
130
  export interface ParameterObject {
131
+ /**
132
+ * Parameter name.
133
+ */
100
134
  name: string;
135
+ /**
136
+ * Parameter location.
137
+ */
101
138
  in: "path" | "query" | "header" | "cookie";
139
+ /**
140
+ * Whether the parameter is required.
141
+ */
102
142
  required?: boolean;
143
+ /**
144
+ * Parameter schema.
145
+ */
103
146
  schema?: SchemaObject | ReferenceObject;
147
+ /**
148
+ * Parameter description.
149
+ */
104
150
  description?: string;
151
+ /**
152
+ * Whether the parameter is deprecated.
153
+ */
105
154
  deprecated?: boolean;
106
155
  }
107
156
 
108
157
  /**
109
- * OpenAPI Request Body Object
158
+ * OpenAPI request body object.
110
159
  */
111
160
  export interface RequestBodyObject {
161
+ /**
162
+ * Whether the request body is required.
163
+ */
112
164
  required?: boolean;
165
+ /**
166
+ * Request body description.
167
+ */
113
168
  description?: string;
169
+ /**
170
+ * Request body content keyed by media type.
171
+ */
114
172
  content: Record<
115
173
  string,
116
174
  {
@@ -120,10 +178,16 @@ export interface RequestBodyObject {
120
178
  }
121
179
 
122
180
  /**
123
- * OpenAPI Response Object
181
+ * OpenAPI response object.
124
182
  */
125
183
  export interface ResponseObject {
184
+ /**
185
+ * Response description.
186
+ */
126
187
  description: string;
188
+ /**
189
+ * Response content keyed by media type.
190
+ */
127
191
  content?: Record<
128
192
  string,
129
193
  {
@@ -140,26 +204,56 @@ export interface ResponseObject {
140
204
  }
141
205
 
142
206
  /**
143
- * OpenAPI Operation Object
207
+ * OpenAPI operation object.
144
208
  */
145
209
  export interface OperationObject {
210
+ /**
211
+ * Operation ID.
212
+ */
146
213
  operationId?: string;
214
+ /**
215
+ * Operation summary.
216
+ */
147
217
  summary?: string;
218
+ /**
219
+ * Operation description.
220
+ */
148
221
  description?: string;
222
+ /**
223
+ * Operation tags.
224
+ */
149
225
  tags?: string[];
226
+ /**
227
+ * Whether the operation is deprecated.
228
+ */
150
229
  deprecated?: boolean;
230
+ /**
231
+ * External documentation.
232
+ */
151
233
  externalDocs?: {
152
234
  description?: string;
153
235
  url: string;
154
236
  };
237
+ /**
238
+ * Operation-specific security requirements.
239
+ */
155
240
  security?: Array<Record<string, string[]>>;
241
+ /**
242
+ * Operation parameters.
243
+ */
156
244
  parameters?: ParameterObject[];
245
+ /**
246
+ * Operation request body.
247
+ */
157
248
  requestBody?: RequestBodyObject;
249
+ /**
250
+ * Operation responses keyed by status code.
251
+ */
158
252
  responses: Record<string, ResponseObject>;
159
253
  }
160
254
 
161
255
  /**
162
- * OpenAPI Path Item Object
256
+ * OpenAPI path item object.
163
257
  */
164
258
  export interface PathItemObject {
165
259
  get?: OperationObject;
@@ -172,32 +266,56 @@ export interface PathItemObject {
172
266
  }
173
267
 
174
268
  /**
175
- * OpenAPI Paths Object
269
+ * OpenAPI paths object.
176
270
  */
177
271
  export type PathsObject = Record<string, PathItemObject>;
178
272
 
179
273
  /**
180
- * OpenAPI Components Object
274
+ * OpenAPI components object.
181
275
  */
182
276
  export interface ComponentsObject {
277
+ /**
278
+ * Reusable schemas keyed by component name.
279
+ */
183
280
  schemas?: Record<string, SchemaObject>;
281
+ /**
282
+ * Reusable security schemes keyed by scheme name.
283
+ */
184
284
  securitySchemes?: Record<string, OpenAPISecurityScheme>;
185
285
  }
186
286
 
187
287
  /**
188
- * OpenAPI 3.1 Document
288
+ * OpenAPI 3.1 document.
189
289
  */
190
290
  export interface OpenAPIObject {
291
+ /**
292
+ * OpenAPI version.
293
+ */
191
294
  openapi: "3.1.0";
295
+ /**
296
+ * API info.
297
+ */
192
298
  info: OpenAPIInfo;
299
+ /**
300
+ * Server list.
301
+ */
193
302
  servers?: OpenAPIServer[];
303
+ /**
304
+ * API paths.
305
+ */
194
306
  paths: PathsObject;
307
+ /**
308
+ * Reusable components.
309
+ */
195
310
  components?: ComponentsObject;
311
+ /**
312
+ * Global security requirements.
313
+ */
196
314
  security?: Array<Record<string, string[]>>;
197
315
  }
198
316
 
199
317
  /**
200
- * Options for generating OpenAPI spec
318
+ * Options for generating an OpenAPI document.
201
319
  */
202
320
  export interface OpenAPIGeneratorOptions {
203
321
  /** API title */
@@ -234,13 +352,12 @@ type GeneratorState = {
234
352
  type SchemaIO = "input" | "output";
235
353
 
236
354
  /**
237
- * Type for contracts that can be passed to the generator.
238
- * Accepts both ContractBuilder instances and plain HttpContractConfig objects.
355
+ * Contract input accepted by the OpenAPI generator.
239
356
  */
240
357
  export type ContractInput = ContractLike;
241
358
 
242
359
  /**
243
- * Convert an array of contracts to an OpenAPI 3.1 document
360
+ * Convert contracts to an OpenAPI 3.1 document.
244
361
  *
245
362
  * @param contracts - Array of HTTP contracts (ContractBuilder instances or configs)
246
363
  * @param options - OpenAPI generation options