@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
@@ -3,9 +3,21 @@
3
3
  *
4
4
  * HTTP contract definitions and builders for Beignet.
5
5
  */
6
+ /**
7
+ * Contract builder exports.
8
+ */
6
9
  export { ContractBuilder, createContract, } from "./contract-builder";
10
+ /**
11
+ * Contract group exports.
12
+ */
7
13
  export { ContractGroup, createContractGroup } from "./contract-group";
14
+ /**
15
+ * Contract-like helper exports.
16
+ */
8
17
  export { resolveContract, } from "./contract-like";
18
+ /**
19
+ * Path template parsing exports.
20
+ */
9
21
  export { parsePathTemplate, } from "./path-template";
10
22
  export { BEIGNET_ERROR_OWNER_HEADER, BODY_HTTP_METHODS, getContractHeaderSchemas, methodSupportsRequestBody, STANDARD_ERROR_RESPONSE_SCHEMA, } from "./types";
11
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,eAAe,EAEf,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAGL,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAGL,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAsBzB,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH;;GAEG;AACH,OAAO,EACL,eAAe,EAEf,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACtE;;GAEG;AACH,OAAO,EAGL,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAKzB;;GAEG;AACH,OAAO,EAGL,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AA4BzB,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,SAAS,CAAC"}
@@ -1,23 +1,23 @@
1
1
  /**
2
- * OpenAPI operation-level metadata for HTTP contracts
2
+ * OpenAPI operation-level metadata for HTTP contracts.
3
3
  */
4
4
  export type OpenAPIOperationMeta = {
5
- /** A brief summary of the operation */
5
+ /** Brief operation summary. */
6
6
  summary?: string;
7
- /** A detailed description of the operation */
7
+ /** Detailed operation description. */
8
8
  description?: string;
9
- /** Tags for grouping operations */
9
+ /** Tags used to group operations. */
10
10
  tags?: string[];
11
- /** Marks the operation as deprecated */
11
+ /** Whether the operation is deprecated. */
12
12
  deprecated?: boolean;
13
- /** External documentation reference */
13
+ /** External documentation reference. */
14
14
  externalDocs?: {
15
15
  description?: string;
16
16
  url: string;
17
17
  };
18
- /** Override for operationId (default is contract.name) */
18
+ /** Operation ID override. Defaults to `contract.name`. */
19
19
  operationId?: string;
20
- /** Per-operation security requirements */
20
+ /** Per-operation security requirements. */
21
21
  security?: Array<Record<string, string[]>>;
22
22
  };
23
23
  //# sourceMappingURL=openapi-meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-meta.d.ts","sourceRoot":"","sources":["../../src/contracts/openapi-meta.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uCAAuC;IACvC,YAAY,CAAC,EAAE;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;CAC5C,CAAC"}
1
+ {"version":3,"file":"openapi-meta.d.ts","sourceRoot":"","sources":["../../src/contracts/openapi-meta.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wCAAwC;IACxC,YAAY,CAAC,EAAE;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;CAC5C,CAAC"}
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Parsed path segment from a Beignet route template.
3
+ */
1
4
  export type PathTemplateSegment = {
2
5
  kind: "static";
3
6
  value: string;
@@ -6,12 +9,36 @@ export type PathTemplateSegment = {
6
9
  name: string;
7
10
  raw: string;
8
11
  };
12
+ /**
13
+ * Parsed representation of a Beignet route path template.
14
+ */
9
15
  export interface ParsedPathTemplate {
16
+ /**
17
+ * Dynamic parameter names in declaration order.
18
+ */
10
19
  keys: string[];
20
+ /**
21
+ * Static and dynamic path segments.
22
+ */
11
23
  segments: PathTemplateSegment[];
24
+ /**
25
+ * Normalized Beignet path using `:param` dynamic syntax.
26
+ */
12
27
  normalizedPath: string;
28
+ /**
29
+ * Route shape used for ambiguity detection, ignoring dynamic parameter names.
30
+ */
13
31
  shapeKey: string;
32
+ /**
33
+ * OpenAPI-compatible path using `{param}` syntax.
34
+ */
14
35
  openApiPath: string;
15
36
  }
37
+ /**
38
+ * Parse a Beignet route path template.
39
+ *
40
+ * Paths must start with `/`. Dynamic segments may use `:id` or `[id]`.
41
+ * Catch-all segments and partial dynamic segments are intentionally rejected.
42
+ */
16
43
  export declare function parsePathTemplate(path: string): ParsedPathTemplate;
17
44
  //# sourceMappingURL=path-template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"path-template.d.ts","sourceRoot":"","sources":["../../src/contracts/path-template.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAmCD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CA6ClE"}
1
+ {"version":3,"file":"path-template.d.ts","sourceRoot":"","sources":["../../src/contracts/path-template.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;OAEG;IACH,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAmCD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CA6ClE"}
@@ -21,6 +21,12 @@ function parsePathSegment(path, segment) {
21
21
  }
22
22
  return { kind: "static", value: segment };
23
23
  }
24
+ /**
25
+ * Parse a Beignet route path template.
26
+ *
27
+ * Paths must start with `/`. Dynamic segments may use `:id` or `[id]`.
28
+ * Catch-all segments and partial dynamic segments are intentionally rejected.
29
+ */
24
30
  export function parsePathTemplate(path) {
25
31
  if (!path.startsWith("/")) {
26
32
  throw new Error(`Invalid path template "${path}". Paths must start with "/".`);
@@ -1 +1 @@
1
- {"version":3,"file":"path-template.js","sourceRoot":"","sources":["../../src/contracts/path-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"path-template.js","sourceRoot":"","sources":["../../src/contracts/path-template.ts"],"names":[],"mappings":"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"}
@@ -1,57 +1,117 @@
1
1
  import type { StandardSchemaV1 } from "@standard-schema/spec";
2
+ import type { IdempotencyMeta } from "../idempotency";
2
3
  import type { OpenAPIOperationMeta } from "./openapi-meta";
3
4
  import type { RateLimitMeta } from "./rate-limit";
4
5
  /**
5
- * Any Standard Schema validator type
6
- * Replaces ZodTypeAny to support all Standard Schema compatible libraries
6
+ * Any Standard Schema compatible validator.
7
7
  */
8
8
  export type StandardSchema = StandardSchemaV1<unknown, unknown>;
9
+ /**
10
+ * Response schema for one HTTP status.
11
+ *
12
+ * Use `null` for empty responses such as 204.
13
+ */
9
14
  export type ContractResponseSchema = StandardSchema | null;
15
+ /**
16
+ * Response schemas keyed by HTTP status code.
17
+ */
10
18
  export type ContractResponses = Partial<Record<number, ContractResponseSchema>>;
19
+ /**
20
+ * Standard Beignet error response body.
21
+ */
11
22
  export type StandardErrorResponseBody = {
12
23
  code: string;
13
24
  message: string;
14
25
  details?: unknown;
15
26
  requestId?: string;
16
27
  };
28
+ /**
29
+ * Standard Schema for Beignet's error envelope.
30
+ */
17
31
  export type StandardErrorResponseSchema = StandardSchemaV1<unknown, StandardErrorResponseBody>;
32
+ /**
33
+ * Route-owned error definition stored in contract metadata.
34
+ */
18
35
  export type ContractErrorDefinition = {
36
+ /**
37
+ * Stable public error code.
38
+ */
19
39
  code: string;
40
+ /**
41
+ * HTTP status code.
42
+ */
20
43
  status: number;
44
+ /**
45
+ * Default human-readable message.
46
+ */
21
47
  message: string;
48
+ /**
49
+ * Optional details schema for TypeScript inference.
50
+ */
22
51
  details?: StandardSchema;
23
52
  };
53
+ /**
54
+ * Route-owned error definitions keyed by catalog key.
55
+ */
24
56
  export type ContractErrorResponses = Record<string, ContractErrorDefinition>;
57
+ /**
58
+ * Convert route-owned error definitions into standard envelope response schemas.
59
+ */
25
60
  export type ResponsesFromErrorDefinitions<T extends ContractErrorResponses> = {
26
61
  [K in keyof T as T[K]["status"]]: StandardErrorResponseSchema;
27
62
  };
63
+ /**
64
+ * Header schema declaration for a contract.
65
+ */
28
66
  export type ContractHeaderSchemas = StandardSchema | readonly StandardSchema[] | null;
67
+ /**
68
+ * Header used to distinguish framework-owned and route-owned error responses.
69
+ */
29
70
  export declare const BEIGNET_ERROR_OWNER_HEADER = "x-beignet-error-owner";
71
+ /**
72
+ * Infer merged header input from one or more Standard Schema header validators.
73
+ */
30
74
  export type InferHeaderSchemaInput<T extends ContractHeaderSchemas | undefined> = T extends readonly StandardSchemaV1[] ? UnionToIntersection<InferInput<T[number]>> : T extends StandardSchemaV1 ? InferInput<T> : undefined;
75
+ /**
76
+ * Infer merged header output from one or more Standard Schema header validators.
77
+ */
31
78
  export type InferHeaderSchemaOutput<T extends ContractHeaderSchemas | undefined> = T extends readonly StandardSchemaV1[] ? UnionToIntersection<InferOutput<T[number]>> : T extends StandardSchemaV1 ? InferOutput<T> : undefined;
32
79
  type UnionToIntersection<T> = (T extends unknown ? (value: T) => void : never) extends (value: infer I) => void ? I : never;
33
80
  /**
34
- * Infer the output type from a Standard Schema
81
+ * Infer the parsed output type from a Standard Schema.
35
82
  */
36
83
  export type InferOutput<T extends StandardSchemaV1> = StandardSchemaV1.InferOutput<T>;
37
84
  /**
38
- * Infer the input type from a Standard Schema
85
+ * Infer the input type accepted by a Standard Schema.
39
86
  */
40
87
  export type InferInput<T extends StandardSchemaV1> = StandardSchemaV1.InferInput<T>;
41
88
  /**
42
- * HTTP methods supported by contracts
89
+ * HTTP methods supported by contracts.
43
90
  */
44
91
  export type HttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS";
92
+ /**
93
+ * HTTP methods that may carry a JSON request body.
94
+ */
45
95
  export type BodyHttpMethod = Extract<HttpMethod, "POST" | "PUT" | "PATCH">;
96
+ /**
97
+ * Runtime list of HTTP methods that support request bodies.
98
+ */
46
99
  export declare const BODY_HTTP_METHODS: readonly ["POST", "PUT", "PATCH"];
100
+ /**
101
+ * Check whether a method supports a contract request body.
102
+ */
47
103
  export declare function methodSupportsRequestBody(method: HttpMethod): method is BodyHttpMethod;
104
+ /**
105
+ * Runtime Standard Schema for Beignet's standard error envelope.
106
+ */
48
107
  export declare const STANDARD_ERROR_RESPONSE_SCHEMA: StandardErrorResponseSchema;
49
108
  /**
50
- * Contract metadata - freeform object for policies, auth, etc.
51
- * May include an optional openapi namespace for OpenAPI-specific metadata,
52
- * and an optional rateLimit namespace for rate limiting configuration.
109
+ * Contract metadata consumed by hooks, OpenAPI, and app conventions.
53
110
  */
54
111
  export type ContractMeta = {
112
+ /**
113
+ * OpenAPI operation metadata.
114
+ */
55
115
  openapi?: OpenAPIOperationMeta;
56
116
  /**
57
117
  * Optional rate limit configuration for this contract.
@@ -59,10 +119,17 @@ export type ContractMeta = {
59
119
  * If absent, no rate limiting is applied.
60
120
  */
61
121
  rateLimit?: RateLimitMeta;
122
+ /**
123
+ * Optional idempotency configuration for this contract.
124
+ *
125
+ * This metadata is intended for hooks, docs, and OpenAPI. Use cases should
126
+ * still call `runIdempotently(...)` for workflows that must be retry-safe.
127
+ */
128
+ idempotency?: IdempotencyMeta;
62
129
  [namespace: string]: unknown;
63
130
  };
64
131
  /**
65
- * HTTP contract configuration
132
+ * Plain HTTP contract configuration consumed by server, client, and tooling.
66
133
  */
67
134
  export type HttpContractConfig<TMethod extends HttpMethod = HttpMethod, TPathParams extends StandardSchema | null = StandardSchema | null, TQuery extends StandardSchema | null = StandardSchema | null, TBody extends StandardSchema | null = StandardSchema | null, TResponses extends ContractResponses = ContractResponses, TMeta extends ContractMeta = ContractMeta, TPath extends string = string, THeaders extends ContractHeaderSchemas = ContractHeaderSchemas> = {
68
135
  kind: "http";
@@ -79,19 +146,46 @@ export type HttpContractConfig<TMethod extends HttpMethod = HttpMethod, TPathPar
79
146
  * Contract name without the resource namespace.
80
147
  */
81
148
  localName?: string;
149
+ /**
150
+ * HTTP method.
151
+ */
82
152
  method: TMethod;
153
+ /**
154
+ * Path template.
155
+ */
83
156
  path: TPath;
157
+ /**
158
+ * Path parameter schema.
159
+ */
84
160
  pathParams: TPathParams;
161
+ /**
162
+ * Query parameter schema.
163
+ */
85
164
  query: TQuery;
165
+ /**
166
+ * Request header schema or schemas.
167
+ */
86
168
  headers?: THeaders;
169
+ /**
170
+ * Request body schema.
171
+ */
87
172
  body: TBody;
173
+ /**
174
+ * Response schemas keyed by HTTP status code.
175
+ */
88
176
  responses: TResponses;
177
+ /**
178
+ * Contract metadata.
179
+ */
89
180
  metadata: TMeta;
90
181
  };
91
182
  /**
92
- * Any contract type
183
+ * Any HTTP contract config.
93
184
  */
94
185
  export type AnyContract = HttpContractConfig;
186
+ /**
187
+ * Normalize a contract header declaration into a schema list.
188
+ */
95
189
  export declare function getContractHeaderSchemas(headers: ContractHeaderSchemas | undefined): readonly StandardSchema[];
96
190
  export {};
97
191
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/contracts/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/contracts/types.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,24 @@
1
+ /**
2
+ * Header used to distinguish framework-owned and route-owned error responses.
3
+ */
1
4
  export const BEIGNET_ERROR_OWNER_HEADER = "x-beignet-error-owner";
5
+ /**
6
+ * Runtime list of HTTP methods that support request bodies.
7
+ */
2
8
  export const BODY_HTTP_METHODS = [
3
9
  "POST",
4
10
  "PUT",
5
11
  "PATCH",
6
12
  ];
13
+ /**
14
+ * Check whether a method supports a contract request body.
15
+ */
7
16
  export function methodSupportsRequestBody(method) {
8
17
  return BODY_HTTP_METHODS.includes(method);
9
18
  }
19
+ /**
20
+ * Runtime Standard Schema for Beignet's standard error envelope.
21
+ */
10
22
  export const STANDARD_ERROR_RESPONSE_SCHEMA = {
11
23
  "~standard": {
12
24
  version: 1,
@@ -44,6 +56,9 @@ export const STANDARD_ERROR_RESPONSE_SCHEMA = {
44
56
  },
45
57
  },
46
58
  };
59
+ /**
60
+ * Normalize a contract header declaration into a schema list.
61
+ */
47
62
  export function getContractHeaderSchemas(headers) {
48
63
  if (!headers)
49
64
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/contracts/types.ts"],"names":[],"mappings":"AAqCA,MAAM,CAAC,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAoDlE,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM;IACN,KAAK;IACL,OAAO;CACqC,CAAC;AAE/C,MAAM,UAAU,yBAAyB,CACvC,MAAkB;IAElB,OAAQ,iBAA2C,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAgC;IACzE,WAAW,EAAE;QACX,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,SAAS;QACjB,QAAQ,CAAC,KAAK;YACZ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAChD,OAAO;oBACL,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;iBAC9D,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,KAAgC,CAAC;YAC9C,MAAM,MAAM,GAA6B,EAAE,CAAC;YAC5C,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACvE,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,CAAC;YAED,OAAO;gBACL,KAAK,EAAE;oBACL,IAAI,EAAE,IAAI,CAAC,IAAc;oBACzB,OAAO,EAAE,IAAI,CAAC,OAAiB;oBAC/B,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS;wBAC9B,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAmB,EAAE;wBACzC,CAAC,CAAC,EAAE,CAAC;iBACR;aACF,CAAC;QACJ,CAAC;KACF;CACF,CAAC;AA4DF,MAAM,UAAU,wBAAwB,CACtC,OAA0C;IAE1C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3B,CAAC,CAAE,OAAqC;QACxC,CAAC,CAAC,CAAC,OAAyB,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/contracts/types.ts"],"names":[],"mappings":"AAkFA;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AA6DlE;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM;IACN,KAAK;IACL,OAAO;CACqC,CAAC;AAE/C;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAkB;IAElB,OAAQ,iBAA2C,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAgC;IACzE,WAAW,EAAE;QACX,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,SAAS;QACjB,QAAQ,CAAC,KAAK;YACZ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAChD,OAAO;oBACL,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;iBAC9D,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,KAAgC,CAAC;YAC9C,MAAM,MAAM,GAA6B,EAAE,CAAC;YAC5C,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACvE,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,CAAC;YAED,OAAO;gBACL,KAAK,EAAE;oBACL,IAAI,EAAE,IAAI,CAAC,IAAc;oBACzB,OAAO,EAAE,IAAI,CAAC,OAAiB;oBAC/B,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS;wBAC9B,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAmB,EAAE;wBACzC,CAAC,CAAC,EAAE,CAAC;iBACR;aACF,CAAC;QACJ,CAAC;KACF;CACF,CAAC;AA4FF;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAA0C;IAE1C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3B,CAAC,CAAE,OAAqC;QACxC,CAAC,CAAC,CAAC,OAAyB,CAAC,CAAC;AAClC,CAAC"}
@@ -1,3 +1,9 @@
1
1
  import type { HttpMethod } from "./types";
2
+ /**
3
+ * Generate a stable contract name from an HTTP method and path.
4
+ *
5
+ * `/api` is ignored as a leading path segment so generated names focus on the
6
+ * resource shape.
7
+ */
2
8
  export declare function generateContractName(method: HttpMethod, path: string): string;
3
9
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/contracts/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAkC1C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAoB7E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/contracts/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAkC1C;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAoB7E"}
@@ -24,6 +24,12 @@ function getMeaningfulPathSegments(path) {
24
24
  }
25
25
  return segments;
26
26
  }
27
+ /**
28
+ * Generate a stable contract name from an HTTP method and path.
29
+ *
30
+ * `/api` is ignored as a leading path segment so generated names focus on the
31
+ * resource shape.
32
+ */
27
33
  export function generateContractName(method, path) {
28
34
  const methodPrefix = methodNameMap[method];
29
35
  const segments = getMeaningfulPathSegments(path);
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/contracts/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAG9E,MAAM,aAAa,GAA+B;IAChD,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,QAAQ;IACd,GAAG,EAAE,QAAQ;IACb,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK;SACT,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,KAAK,CAAC,eAAe,CAAC;SACtB,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAY;IAC7C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;IAElD,IACE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ;QAC9B,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,EACzC,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAkB,EAAE,IAAY;IACnE,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAEjD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,YAAY,MAAM,CAAC;IAC/B,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ;SACxB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7C,OAAO,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC;QACrC,CAAC;QAED,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC;IACnD,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,OAAO,GAAG,YAAY,GAAG,UAAU,EAAE,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/contracts/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAG9E,MAAM,aAAa,GAA+B;IAChD,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,QAAQ;IACd,GAAG,EAAE,QAAQ;IACb,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK;SACT,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,KAAK,CAAC,eAAe,CAAC;SACtB,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAY;IAC7C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;IAElD,IACE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ;QAC9B,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,EACzC,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAkB,EAAE,IAAY;IACnE,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAEjD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,YAAY,MAAM,CAAC;IAC/B,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ;SACxB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7C,OAAO,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC;QACrC,CAAC;QAED,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC;IACnD,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,OAAO,GAAG,YAAY,GAAG,UAAU,EAAE,CAAC;AACxC,CAAC"}
@@ -1,19 +1,20 @@
1
1
  import type { StandardSchemaV1 } from "@standard-schema/spec";
2
2
  /**
3
- * Any Standard Schema validator type
3
+ * Any Standard Schema compatible validator.
4
4
  */
5
5
  export type StandardSchema = StandardSchemaV1<unknown, unknown>;
6
6
  /**
7
- * Infer the output type from a Standard Schema
7
+ * Infer the parsed output type from a Standard Schema.
8
8
  */
9
9
  export type InferOutput<T extends StandardSchemaV1> = StandardSchemaV1.InferOutput<T>;
10
10
  type AnyMethods = Record<string, any>;
11
11
  /**
12
- * Represents an instance of an entity with props, methods, and immutable update capability.
12
+ * Entity instance with validated props, attached methods, and immutable update
13
+ * helpers.
13
14
  */
14
15
  export type EntityInstance<Name extends string, Schema extends StandardSchema, Methods extends AnyMethods> = InferOutput<Schema> & {
15
16
  /**
16
- * Create a new entity instance with updated properties (immutable update).
17
+ * Create a new validated entity instance with patched properties.
17
18
  */
18
19
  with(patch: Partial<InferOutput<Schema>>): EntityInstance<Name, Schema, Methods> | Promise<EntityInstance<Name, Schema, Methods>>;
19
20
  /**
@@ -22,18 +23,24 @@ export type EntityInstance<Name extends string, Schema extends StandardSchema, M
22
23
  toJSON(): InferOutput<Schema>;
23
24
  } & Methods;
24
25
  /**
25
- * Represents a defined Entity with schema and factory methods.
26
+ * Entity definition returned by `defineEntity(...).build()`.
26
27
  */
27
28
  export interface EntityDef<Name extends string, Schema extends StandardSchema, Methods extends AnyMethods> {
28
- /** The name of this entity (for debugging/introspection) */
29
+ /** Name used for debugging and introspection. */
29
30
  name: Name;
30
- /** The Standard Schema for validating entity props */
31
+ /** Standard Schema used to validate entity props. */
31
32
  schema: Schema;
32
- /** Create a new entity instance from props */
33
+ /**
34
+ * Create a new frozen entity instance from props.
35
+ *
36
+ * Returns a promise when the underlying Standard Schema validates async.
37
+ */
33
38
  create(props: InferOutput<Schema>): EntityInstance<Name, Schema, Methods> | Promise<EntityInstance<Name, Schema, Methods>>;
34
- /** Reconstruct an entity instance from JSON (e.g., from persistence) */
39
+ /**
40
+ * Reconstruct an entity instance from JSON, usually from persistence.
41
+ */
35
42
  fromJSON(json: InferOutput<Schema>): EntityInstance<Name, Schema, Methods> | Promise<EntityInstance<Name, Schema, Methods>>;
36
- /** Type alias for the entity instance type */
43
+ /** Type-only alias for the entity instance type. Undefined at runtime. */
37
44
  Type: EntityInstance<Name, Schema, Methods>;
38
45
  }
39
46
  /**
@@ -61,7 +68,11 @@ declare class EntityBuilder<Name extends string, Schema extends StandardSchema,
61
68
  build(): EntityDef<Name, Schema, Methods>;
62
69
  }
63
70
  /**
64
- * Create a new Entity builder.
71
+ * Create a new entity builder.
72
+ *
73
+ * Entities validate props, attach domain methods, and return frozen immutable
74
+ * instances. `with(...)` revalidates the merged props. `.Type` is type-only and
75
+ * should be used with `typeof Entity.Type`.
65
76
  *
66
77
  * @example
67
78
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/domain/entity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,gBAAgB,IAChD,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAuDlC,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtC;;GAEG;AACH,MAAM,MAAM,cAAc,CACxB,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,cAAc,EAC7B,OAAO,SAAS,UAAU,IACxB,WAAW,CAAC,MAAM,CAAC,GAAG;IACxB;;OAEG;IACH,IAAI,CACF,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAEjC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD;;OAEG;IACH,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/B,GAAG,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,SAAS,CACxB,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,cAAc,EAC7B,OAAO,SAAS,UAAU;IAE1B,4DAA4D;IAC5D,IAAI,EAAE,IAAI,CAAC;IACX,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,MAAM,CACJ,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GAExB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,wEAAwE;IACxE,QAAQ,CACN,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAEvB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,8CAA8C;IAC9C,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,cAAM,aAAa,CACjB,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,cAAc,EAC7B,OAAO,SAAS,UAAU;IAGxB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE;QACpB,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;KAClC;IAGH;;OAEG;IACH,KAAK,CAAC,CAAC,SAAS,cAAc,EAAE,MAAM,EAAE,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC;IAQ3E;;;OAGG;IACH,OAAO,CAAC,CAAC,SAAS,UAAU,EAE1B,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GACtB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAQjC;;OAEG;IACH,KAAK,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;CAgE1C;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,mDAG3D"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/domain/entity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,gBAAgB,IAChD,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAuDlC,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtC;;;GAGG;AACH,MAAM,MAAM,cAAc,CACxB,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,cAAc,EAC7B,OAAO,SAAS,UAAU,IACxB,WAAW,CAAC,MAAM,CAAC,GAAG;IACxB;;OAEG;IACH,IAAI,CACF,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAEjC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD;;OAEG;IACH,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/B,GAAG,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,SAAS,CACxB,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,cAAc,EAC7B,OAAO,SAAS,UAAU;IAE1B,iDAAiD;IACjD,IAAI,EAAE,IAAI,CAAC;IACX,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,MAAM,CACJ,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GAExB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD;;OAEG;IACH,QAAQ,CACN,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAEvB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,0EAA0E;IAC1E,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,cAAM,aAAa,CACjB,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,cAAc,EAC7B,OAAO,SAAS,UAAU;IAGxB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE;QACpB,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;KAClC;IAGH;;OAEG;IACH,KAAK,CAAC,CAAC,SAAS,cAAc,EAAE,MAAM,EAAE,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC;IAQ3E;;;OAGG;IACH,OAAO,CAAC,CAAC,SAAS,UAAU,EAE1B,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GACtB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAQjC;;OAEG;IACH,KAAK,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;CAgE1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,mDAG3D"}
@@ -127,7 +127,11 @@ class EntityBuilder {
127
127
  }
128
128
  }
129
129
  /**
130
- * Create a new Entity builder.
130
+ * Create a new entity builder.
131
+ *
132
+ * Entities validate props, attach domain methods, and return frozen immutable
133
+ * instances. `with(...)` revalidates the merged props. `.Type` is type-only and
134
+ * should be used with `typeof Entity.Type`.
131
135
  *
132
136
  * @example
133
137
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/domain/entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/domain/entity.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { EventDef, InferEventPayload, StandardSchema } from "../events";
2
2
  /**
3
- * Represents a defined Domain Event with name and payload schema.
3
+ * Domain event definition with a stable name and payload schema.
4
4
  */
5
5
  export type DomainEventDef<Name extends string = string, Payload extends StandardSchema = StandardSchema> = EventDef<Name, Payload>;
6
6
  /**
@@ -22,7 +22,10 @@ export type DomainEventDef<Name extends string = string, Payload extends Standar
22
22
  */
23
23
  export type { InferEventPayload };
24
24
  /**
25
- * Create a new Domain Event definition.
25
+ * Create a new domain event definition.
26
+ *
27
+ * This is a domain-focused alias around `defineEvent(...)` for applications
28
+ * that separate domain events from integration events.
26
29
  *
27
30
  * @example
28
31
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/domain/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG7E;;GAEG;AACH,MAAM,MAAM,cAAc,CACxB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,SAAS,cAAc,GAAG,cAAc,IAC7C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAE5B;;;;;;;;;;;;;;;;GAgBG;AACH,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,SAAS,MAAM,EACnB,OAAO,SAAS,cAAc,EAC9B,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAE7D"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/domain/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG7E;;GAEG;AACH,MAAM,MAAM,cAAc,CACxB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,SAAS,cAAc,GAAG,cAAc,IAC7C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAE5B;;;;;;;;;;;;;;;;GAgBG;AACH,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,SAAS,MAAM,EACnB,OAAO,SAAS,cAAc,EAC9B,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAE7D"}
@@ -1,6 +1,9 @@
1
1
  import { defineEvent } from "../events";
2
2
  /**
3
- * Create a new Domain Event definition.
3
+ * Create a new domain event definition.
4
+ *
5
+ * This is a domain-focused alias around `defineEvent(...)` for applications
6
+ * that separate domain events from integration events.
4
7
  *
5
8
  * @example
6
9
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/domain/events.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AA6BxC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB,CAG/B,IAAU,EAAE,OAAgB;IAC5B,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/domain/events.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AA6BxC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAG/B,IAAU,EAAE,OAAgB;IAC5B,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AACxC,CAAC"}