@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
@@ -1,25 +1,31 @@
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
  /**
11
- * Represents a defined Value Object with validation and type information.
11
+ * Value object definition returned by `defineValueObject(...).build()`.
12
12
  */
13
13
  export interface ValueObjectDef<Name extends string, Schema extends StandardSchema> {
14
- /** The name of this value object (for debugging/introspection) */
14
+ /** Name used for debugging and introspection. */
15
15
  name: Name;
16
- /** The schema used for validation (any Standard Schema compatible) */
16
+ /** Standard Schema used to validate values. */
17
17
  schema: Schema;
18
- /** Create a validated value object from unknown input (async due to Standard Schema) */
18
+ /**
19
+ * Create a validated value from unknown input.
20
+ *
21
+ * This is async because Standard Schema validators may be async.
22
+ */
19
23
  create(input: unknown): Promise<InferOutput<Schema>>;
20
- /** Type guard to check if an input is valid for this value object (async due to Standard Schema) */
24
+ /**
25
+ * Check whether an input is valid for this value object.
26
+ */
21
27
  isValid(input: unknown): Promise<boolean>;
22
- /** Type alias for the inferred TypeScript type */
28
+ /** Type-only alias for the inferred TypeScript type. Undefined at runtime. */
23
29
  Type: InferOutput<Schema>;
24
30
  }
25
31
  /**
@@ -41,7 +47,11 @@ declare class ValueObjectBuilder<Name extends string, Schema extends StandardSch
41
47
  build(): ValueObjectDef<Name, Schema>;
42
48
  }
43
49
  /**
44
- * Create a new Value Object builder.
50
+ * Create a new value object builder.
51
+ *
52
+ * Value objects are schema-backed primitives for domain concepts such as email
53
+ * addresses or money values. Beignet does not add a runtime brand; the schema
54
+ * output controls the runtime value.
45
55
  *
46
56
  * @example
47
57
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"value-object.d.ts","sourceRoot":"","sources":["../../src/domain/value-object.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;AAyClC;;GAEG;AACH,MAAM,WAAW,cAAc,CAC7B,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,cAAc;IAE7B,kEAAkE;IAClE,IAAI,EAAE,IAAI,CAAC;IACX,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,oGAAoG;IACpG,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,kDAAkD;IAClD,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,cAAM,kBAAkB,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,cAAc;IAEvE,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE;QACpB,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAGH;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,cAAc,EAAE,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC;IAInE;;OAEG;IACH,KAAK,IAAI,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;CAsBtC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,mCAGhE"}
1
+ {"version":3,"file":"value-object.d.ts","sourceRoot":"","sources":["../../src/domain/value-object.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;AAyClC;;GAEG;AACH,MAAM,WAAW,cAAc,CAC7B,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,cAAc;IAE7B,iDAAiD;IACjD,IAAI,EAAE,IAAI,CAAC;IACX,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,8EAA8E;IAC9E,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,cAAM,kBAAkB,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,cAAc;IAEvE,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE;QACpB,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAGH;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,cAAc,EAAE,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC;IAInE;;OAEG;IACH,KAAK,IAAI,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;CAsBtC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,mCAGhE"}
@@ -66,7 +66,11 @@ class ValueObjectBuilder {
66
66
  }
67
67
  }
68
68
  /**
69
- * Create a new Value Object builder.
69
+ * Create a new value object builder.
70
+ *
71
+ * Value objects are schema-backed primitives for domain concepts such as email
72
+ * addresses or money values. Beignet does not add a runtime brand; the schema
73
+ * output controls the runtime value.
70
74
  *
71
75
  * @example
72
76
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"value-object.js","sourceRoot":"","sources":["../../src/domain/value-object.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,MAAoC,EACpC,IAAa;IAEb,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM;aAC1B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,MAAM,IAAI,GACR,KAAK,CAAC,IAAI,KAAK,SAAS;gBACtB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;oBACzB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;oBACtB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;gBACtB,CAAC,CAAC,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAC5D,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,OAAO,CACpB,MAAoC,EACpC,IAAa;IAEb,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;AACrD,CAAC;AAqBD;;GAEG;AACH,MAAM,kBAAkB;IAEH;IADnB,YACmB,GAGhB;QAHgB,QAAG,GAAH,GAAG,CAGnB;IACA,CAAC;IAEJ;;OAEG;IACH,MAAM,CAA2B,CAAI;QACnC,OAAO,IAAI,kBAAkB,CAAU,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,GAAG,CAAC,IAAI,uBAAuB,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAEpC,MAAM,GAAG,GAAiC;YACxC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;YACnB,MAAM,EAAE,WAAW;YACnB,KAAK,CAAC,MAAM,CAAC,KAAc;gBACzB,OAAO,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,KAAc;gBAC1B,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC;YACD,uGAAuG;YACvG,IAAI,EAAE,SAA2C;SAClD,CAAC;QAEF,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAsB,IAAU;IAC/D,sGAAsG;IACtG,OAAO,IAAI,kBAAkB,CAAc,EAAE,IAAI,EAAS,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"value-object.js","sourceRoot":"","sources":["../../src/domain/value-object.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,MAAoC,EACpC,IAAa;IAEb,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM;aAC1B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,MAAM,IAAI,GACR,KAAK,CAAC,IAAI,KAAK,SAAS;gBACtB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;oBACzB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;oBACtB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;gBACtB,CAAC,CAAC,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAC5D,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,OAAO,CACpB,MAAoC,EACpC,IAAa;IAEb,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC;AACrD,CAAC;AA2BD;;GAEG;AACH,MAAM,kBAAkB;IAEH;IADnB,YACmB,GAGhB;QAHgB,QAAG,GAAH,GAAG,CAGnB;IACA,CAAC;IAEJ;;OAEG;IACH,MAAM,CAA2B,CAAI;QACnC,OAAO,IAAI,kBAAkB,CAAU,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,GAAG,CAAC,IAAI,uBAAuB,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAEpC,MAAM,GAAG,GAAiC;YACxC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;YACnB,MAAM,EAAE,WAAW;YACnB,KAAK,CAAC,MAAM,CAAC,KAAc;gBACzB,OAAO,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,KAAc;gBAC1B,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC;YACD,uGAAuG;YACvG,IAAI,EAAE,SAA2C;SAClD,CAAC;QAEF,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAAsB,IAAU;IAC/D,sGAAsG;IACtG,OAAO,IAAI,kBAAkB,CAAc,EAAE,IAAI,EAAS,CAAC,CAAC;AAC9D,CAAC"}
@@ -5,53 +5,74 @@ import type { StandardSchemaV1 } from "@standard-schema/spec";
5
5
  type ErrorDetailsSchema = StandardSchemaV1<unknown, unknown>;
6
6
  declare const APP_ERROR_BRAND: unique symbol;
7
7
  /**
8
- * Definition of a single error in the catalog
8
+ * Definition for one application error catalog entry.
9
9
  */
10
10
  export interface ErrorDef<TDetails extends ErrorDetailsSchema | undefined = ErrorDetailsSchema | undefined> {
11
- /** Unique, stable code used across layers (e.g. "TODO_NOT_FOUND") */
11
+ /** Unique, stable code used across layers, such as `"POST_NOT_FOUND"`. */
12
12
  code: string;
13
- /** HTTP status code (e.g. 404, 401, 409, 422, 500, etc.) */
13
+ /** HTTP status code returned when this error crosses the HTTP boundary. */
14
14
  status: number;
15
- /** Default human-readable message */
15
+ /** Default human-readable message. */
16
16
  message: string;
17
- /** Optional schema for the structured details value */
17
+ /**
18
+ * Optional schema for the structured details value.
19
+ *
20
+ * Beignet uses this for TypeScript inference. Details are not runtime
21
+ * validated by `AppError`; validate before constructing errors when needed.
22
+ */
18
23
  details?: TDetails;
19
24
  }
20
25
  /**
21
- * A mapping of keys to error definitions.
22
- * Keys can be friendly identifiers, e.g. "TodoNotFound".
26
+ * App error catalog keyed by developer-friendly names.
27
+ *
28
+ * Keys are local identifiers used by `createAppError(...)`; the public stable
29
+ * error code lives on each `ErrorDef.code`.
23
30
  */
24
31
  export type ErrorCatalog = Record<string, ErrorDef>;
32
+ /**
33
+ * Infer the details input type for an error definition.
34
+ */
25
35
  export type InferErrorDetails<TDef extends ErrorDef> = TDef extends {
26
36
  details: ErrorDetailsSchema;
27
37
  } ? StandardSchemaV1.InferInput<TDef["details"]> : unknown;
28
38
  /**
29
- * Type-preserving helper to define an error catalog.
39
+ * Define an application error catalog without losing literal key and code types.
30
40
  */
31
41
  export declare function defineErrors<const T extends ErrorCatalog>(defs: T): T;
32
42
  /**
33
- * Application error class that domain & application code can throw.
34
- * Contains the error definition from the catalog and optional structured details.
43
+ * Application error thrown from use cases, policies, and route handlers.
44
+ *
45
+ * The server maps `AppError` instances to Beignet's standard error envelope and
46
+ * marks them as route-owned errors when the contract declares the catalog entry.
35
47
  */
36
48
  export declare class AppError<TDef extends ErrorDef = ErrorDef> extends Error {
37
49
  readonly [APP_ERROR_BRAND] = true;
38
- /** The error definition from the catalog */
50
+ /** Error definition from the catalog. */
39
51
  readonly def: TDef;
40
- /** Optional structured details (for debugging, UI, etc.) */
52
+ /** Optional structured details for clients, logs, or UI. */
41
53
  readonly details?: InferErrorDetails<TDef>;
42
54
  constructor(def: TDef, details?: InferErrorDetails<TDef>, overrideMessage?: string, options?: {
43
55
  cause?: unknown;
44
56
  });
57
+ /**
58
+ * Stable public error code.
59
+ */
45
60
  get code(): string;
61
+ /**
62
+ * HTTP status code associated with this error.
63
+ */
46
64
  get status(): number;
47
65
  }
48
66
  /**
49
- * Callable helper for creating AppErrors from a catalog.
67
+ * Callable helper for creating `AppError` instances from a catalog.
50
68
  */
51
69
  export type AppErrorCreator<TCatalog extends ErrorCatalog> = {
70
+ /**
71
+ * Original catalog bound to this creator.
72
+ */
52
73
  catalog: TCatalog;
53
74
  /**
54
- * Create an AppError from a catalog key.
75
+ * Create an `AppError` from a catalog key.
55
76
  */
56
77
  <Key extends keyof TCatalog>(key: Key, options?: {
57
78
  cause?: unknown;
@@ -60,11 +81,14 @@ export type AppErrorCreator<TCatalog extends ErrorCatalog> = {
60
81
  }): AppError<TCatalog[Key]>;
61
82
  };
62
83
  /**
63
- * Create a callable AppError helper bound to a specific catalog.
84
+ * Create a callable `AppError` helper bound to a specific catalog.
85
+ *
86
+ * The returned function validates the catalog key and preserves each entry's
87
+ * details type for `options.details`.
64
88
  */
65
89
  export declare function createAppError<const T extends ErrorCatalog>(catalog: T): AppErrorCreator<T>;
66
90
  /**
67
- * Type guard to check if an unknown error is an AppError
91
+ * Check whether an unknown value is a Beignet `AppError`.
68
92
  */
69
93
  export declare function isAppError(err: unknown): err is AppError<ErrorDef>;
70
94
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/errors/catalog.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,KAAK,kBAAkB,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7D,QAAA,MAAM,eAAe,eAAiC,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,QAAQ,CACvB,QAAQ,SAAS,kBAAkB,GAAG,SAAS,GAC3C,kBAAkB,GAClB,SAAS;IAEb,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEpD,MAAM,MAAM,iBAAiB,CAAC,IAAI,SAAS,QAAQ,IAAI,IAAI,SAAS;IAClE,OAAO,EAAE,kBAAkB,CAAC;CAC7B,GACG,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAC5C,OAAO,CAAC;AAEZ;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAErE;AAED;;;GAGG;AACH,qBAAa,QAAQ,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,KAAK;IACnE,QAAQ,CAAC,CAAC,eAAe,CAAC,QAAQ;IAClC,4CAA4C;IAC5C,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAGzC,GAAG,EAAE,IAAI,EACT,OAAO,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,EACjC,eAAe,CAAC,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;IAQ/B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;CACF;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,YAAY,IAAI;IAC3D,OAAO,EAAE,QAAQ,CAAC;IAClB;;OAEG;IACH,CAAC,GAAG,SAAS,MAAM,QAAQ,EACzB,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GACA,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EACzD,OAAO,EAAE,CAAC,GACT,eAAe,CAAC,CAAC,CAAC,CAyBpB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAiBlE"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/errors/catalog.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,KAAK,kBAAkB,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7D,QAAA,MAAM,eAAe,eAAiC,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,QAAQ,CACvB,QAAQ,SAAS,kBAAkB,GAAG,SAAS,GAC3C,kBAAkB,GAClB,SAAS;IAEb,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,IAAI,SAAS,QAAQ,IAAI,IAAI,SAAS;IAClE,OAAO,EAAE,kBAAkB,CAAC;CAC7B,GACG,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAC5C,OAAO,CAAC;AAEZ;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAErE;AAED;;;;;GAKG;AACH,qBAAa,QAAQ,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,KAAK;IACnE,QAAQ,CAAC,CAAC,eAAe,CAAC,QAAQ;IAClC,yCAAyC;IACzC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAGzC,GAAG,EAAE,IAAI,EACT,OAAO,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,EACjC,eAAe,CAAC,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;IAQ/B;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;CACF;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,YAAY,IAAI;IAC3D;;OAEG;IACH,OAAO,EAAE,QAAQ,CAAC;IAClB;;OAEG;IACH,CAAC,GAAG,SAAS,MAAM,QAAQ,EACzB,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GACA,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EACzD,OAAO,EAAE,CAAC,GACT,eAAe,CAAC,CAAC,CAAC,CAyBpB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAiBlE"}
@@ -3,20 +3,22 @@
3
3
  */
4
4
  const APP_ERROR_BRAND = Symbol.for("beignet.AppError");
5
5
  /**
6
- * Type-preserving helper to define an error catalog.
6
+ * Define an application error catalog without losing literal key and code types.
7
7
  */
8
8
  export function defineErrors(defs) {
9
9
  return defs;
10
10
  }
11
11
  /**
12
- * Application error class that domain & application code can throw.
13
- * Contains the error definition from the catalog and optional structured details.
12
+ * Application error thrown from use cases, policies, and route handlers.
13
+ *
14
+ * The server maps `AppError` instances to Beignet's standard error envelope and
15
+ * marks them as route-owned errors when the contract declares the catalog entry.
14
16
  */
15
17
  export class AppError extends Error {
16
18
  [APP_ERROR_BRAND] = true;
17
- /** The error definition from the catalog */
19
+ /** Error definition from the catalog. */
18
20
  def;
19
- /** Optional structured details (for debugging, UI, etc.) */
21
+ /** Optional structured details for clients, logs, or UI. */
20
22
  details;
21
23
  constructor(def, details, overrideMessage, options) {
22
24
  super(overrideMessage ?? def.message, { cause: options?.cause });
@@ -24,15 +26,24 @@ export class AppError extends Error {
24
26
  this.def = def;
25
27
  this.details = details;
26
28
  }
29
+ /**
30
+ * Stable public error code.
31
+ */
27
32
  get code() {
28
33
  return this.def.code;
29
34
  }
35
+ /**
36
+ * HTTP status code associated with this error.
37
+ */
30
38
  get status() {
31
39
  return this.def.status;
32
40
  }
33
41
  }
34
42
  /**
35
- * Create a callable AppError helper bound to a specific catalog.
43
+ * Create a callable `AppError` helper bound to a specific catalog.
44
+ *
45
+ * The returned function validates the catalog key and preserves each entry's
46
+ * details type for `options.details`.
36
47
  */
37
48
  export function createAppError(catalog) {
38
49
  const appError = ((key, options) => {
@@ -48,7 +59,7 @@ export function createAppError(catalog) {
48
59
  return appError;
49
60
  }
50
61
  /**
51
- * Type guard to check if an unknown error is an AppError
62
+ * Check whether an unknown value is a Beignet `AppError`.
52
63
  */
53
64
  export function isAppError(err) {
54
65
  if (err instanceof AppError)
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/errors/catalog.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAgCvD;;GAEG;AACH,MAAM,UAAU,YAAY,CAA+B,IAAO;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,QAA2C,SAAQ,KAAK;IAC1D,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;IAClC,4CAA4C;IACnC,GAAG,CAAO;IACnB,4DAA4D;IACnD,OAAO,CAA2B;IAE3C,YACE,GAAS,EACT,OAAiC,EACjC,eAAwB,EACxB,OAA6B;QAE7B,KAAK,CAAC,eAAe,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IACzB,CAAC;CACF;AAoBD;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAU;IAEV,MAAM,QAAQ,GAAG,CAAC,CAChB,GAAQ,EACR,OAIC,EACiB,EAAE;QACpB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAc,CAA8B,CAAC;QACjE,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,QAAQ,CACjB,GAAG,EACH,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB;YACE,KAAK,EAAE,OAAO,EAAE,KAAK;SACtB,CACF,CAAC;IACJ,CAAC,CAAuB,CAAC;IAEzB,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,IAAI,GAAG,YAAY,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE1D,MAAM,KAAK,GAAG,GAAmC,CAAC;IAClD,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACtB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE1D,MAAM,QAAQ,GAAG,GAA8B,CAAC;IAChD,OAAO,CACL,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;QACjC,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ;QACnC,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,CACrC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/errors/catalog.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AA0CvD;;GAEG;AACH,MAAM,UAAU,YAAY,CAA+B,IAAO;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,QAA2C,SAAQ,KAAK;IAC1D,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;IAClC,yCAAyC;IAChC,GAAG,CAAO;IACnB,4DAA4D;IACnD,OAAO,CAA2B;IAE3C,YACE,GAAS,EACT,OAAiC,EACjC,eAAwB,EACxB,OAA6B;QAE7B,KAAK,CAAC,eAAe,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IACzB,CAAC;CACF;AAuBD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAU;IAEV,MAAM,QAAQ,GAAG,CAAC,CAChB,GAAQ,EACR,OAIC,EACiB,EAAE;QACpB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAc,CAA8B,CAAC;QACjE,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,QAAQ,CACjB,GAAG,EACH,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB;YACE,KAAK,EAAE,OAAO,EAAE,KAAK;SACtB,CACF,CAAC;IACJ,CAAC,CAAuB,CAAC;IAEzB,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,IAAI,GAAG,YAAY,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE1D,MAAM,KAAK,GAAG,GAAmC,CAAC;IAClD,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACtB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE1D,MAAM,QAAQ,GAAG,GAA8B,CAAC;IAChD,OAAO,CACL,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;QACjC,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ;QACnC,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,CACrC,CAAC;AACJ,CAAC"}
@@ -3,24 +3,36 @@
3
3
  */
4
4
  import type { AppError, ErrorDef } from "./catalog";
5
5
  /**
6
- * Standard error response body structure
6
+ * Standard Beignet error response body.
7
7
  */
8
8
  export interface ErrorResponseBody {
9
+ /**
10
+ * Stable machine-readable error code.
11
+ */
9
12
  code: string;
13
+ /**
14
+ * Human-readable error message.
15
+ */
10
16
  message: string;
17
+ /**
18
+ * Optional structured details.
19
+ */
11
20
  details?: unknown;
21
+ /**
22
+ * Optional request ID for support and log correlation.
23
+ */
12
24
  requestId?: string;
13
25
  }
14
26
  /**
15
- * Create a standard error response body.
27
+ * Create a standard error response body and omit undefined optional fields.
16
28
  */
17
29
  export declare function createErrorResponseBody(args: ErrorResponseBody): ErrorResponseBody;
18
30
  /**
19
- * Check whether a value is a standard error response body.
31
+ * Check whether a value looks like a standard Beignet error response body.
20
32
  */
21
33
  export declare function isErrorResponseBody(value: unknown): value is ErrorResponseBody;
22
34
  /**
23
- * Convert an AppError to a standard error response body
35
+ * Convert an `AppError` to a standard error response body.
24
36
  */
25
37
  export declare function toErrorResponseBody(err: AppError<ErrorDef>): ErrorResponseBody;
26
38
  //# sourceMappingURL=response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/errors/response.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,iBAAiB,GACtB,iBAAiB,CAOnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,iBAAiB,CAK5B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,GACtB,iBAAiB,CAMnB"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/errors/response.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,iBAAiB,GACtB,iBAAiB,CAOnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,iBAAiB,CAK5B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,GACtB,iBAAiB,CAMnB"}
@@ -2,7 +2,7 @@
2
2
  * Standard error response schema and utilities for Beignet
3
3
  */
4
4
  /**
5
- * Create a standard error response body.
5
+ * Create a standard error response body and omit undefined optional fields.
6
6
  */
7
7
  export function createErrorResponseBody(args) {
8
8
  return {
@@ -13,7 +13,7 @@ export function createErrorResponseBody(args) {
13
13
  };
14
14
  }
15
15
  /**
16
- * Check whether a value is a standard error response body.
16
+ * Check whether a value looks like a standard Beignet error response body.
17
17
  */
18
18
  export function isErrorResponseBody(value) {
19
19
  if (typeof value !== "object" || value === null)
@@ -22,7 +22,7 @@ export function isErrorResponseBody(value) {
22
22
  return typeof body.code === "string" && typeof body.message === "string";
23
23
  }
24
24
  /**
25
- * Convert an AppError to a standard error response body
25
+ * Convert an `AppError` to a standard error response body.
26
26
  */
27
27
  export function toErrorResponseBody(err) {
28
28
  return createErrorResponseBody({
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/errors/response.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAuB;IAEvB,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAc;IAEd,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE9D,MAAM,IAAI,GAAG,KAAgC,CAAC;IAC9C,OAAO,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAuB;IAEvB,OAAO,uBAAuB,CAAC;QAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/errors/response.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0BH;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAuB;IAEvB,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAc;IAEd,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE9D,MAAM,IAAI,GAAG,KAAgC,CAAC;IAC9C,OAAO,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAuB;IAEvB,OAAO,uBAAuB,CAAC;QAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC,CAAC;AACL,CAAC"}
@@ -1,9 +1,15 @@
1
1
  import type { StandardSchemaV1 } from "@standard-schema/spec";
2
2
  /**
3
- * Normalized validation issue with simplified path
3
+ * Normalized validation issue with a simplified path.
4
4
  */
5
5
  export interface ValidationIssue {
6
+ /**
7
+ * Path to the invalid value.
8
+ */
6
9
  path?: (string | number)[];
10
+ /**
11
+ * Human-readable validation message.
12
+ */
7
13
  message: string;
8
14
  }
9
15
  /**
@@ -12,6 +18,9 @@ export interface ValidationIssue {
12
18
  * regardless of which package threw the error.
13
19
  */
14
20
  export declare class SchemaValidationError extends Error {
21
+ /**
22
+ * Normalized validation issues.
23
+ */
15
24
  readonly issues: ReadonlyArray<ValidationIssue>;
16
25
  constructor(rawIssues: ReadonlyArray<StandardSchemaV1.Issue>);
17
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/errors/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;gBAEpC,SAAS,EAAE,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC;CAgB7D"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/errors/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC3B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;gBAEpC,SAAS,EAAE,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC;CAgB7D"}
@@ -4,6 +4,9 @@
4
4
  * regardless of which package threw the error.
5
5
  */
6
6
  export class SchemaValidationError extends Error {
7
+ /**
8
+ * Normalized validation issues.
9
+ */
7
10
  issues;
8
11
  constructor(rawIssues) {
9
12
  const issues = rawIssues.map((i) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/errors/validation.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,MAAM,CAAiC;IAEhD,YAAY,SAAgD;QAC1D,MAAM,MAAM,GAAsB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAE/C;YACb,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM;aACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CACjE;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/errors/validation.ts"],"names":[],"mappings":"AAgBA;;;;GAIG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C;;OAEG;IACM,MAAM,CAAiC;IAEhD,YAAY,SAAgD;QAC1D,MAAM,MAAM,GAAsB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAE/C;YACb,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM;aACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CACjE;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
@@ -1,58 +1,191 @@
1
1
  import type { StandardSchemaV1 } from "@standard-schema/spec";
2
+ /**
3
+ * Any Standard Schema compatible validator.
4
+ */
2
5
  export type StandardSchema = StandardSchemaV1<unknown, unknown>;
6
+ /**
7
+ * Value or promise of that value.
8
+ */
3
9
  export type MaybePromise<T> = T | Promise<T>;
10
+ /**
11
+ * Infer the parsed output type from a Standard Schema.
12
+ */
4
13
  export type InferSchemaOutput<T extends StandardSchemaV1> = StandardSchemaV1.InferOutput<T>;
14
+ /**
15
+ * Minimal event definition shape accepted by event bus helpers.
16
+ */
5
17
  export interface EventPayloadDef<Name extends string = string, Payload extends StandardSchema = StandardSchema> {
18
+ /**
19
+ * Stable event name.
20
+ */
6
21
  readonly name: Name;
22
+ /**
23
+ * Standard Schema payload validator.
24
+ */
7
25
  readonly payload: Payload;
26
+ /**
27
+ * Optional human-readable description for docs and tooling.
28
+ */
8
29
  readonly description?: string;
9
30
  }
31
+ /**
32
+ * Event definition created by `defineEvent(...)`.
33
+ */
10
34
  export interface EventDef<Name extends string = string, Payload extends StandardSchema = StandardSchema> extends EventPayloadDef<Name, Payload> {
35
+ /**
36
+ * Discriminator for event definitions.
37
+ */
11
38
  readonly kind: "event";
12
39
  }
40
+ /**
41
+ * Infer the parsed payload type for an event definition.
42
+ */
13
43
  export type InferEventPayload<E extends EventPayloadDef> = E["payload"] extends StandardSchemaV1<unknown, infer Output> ? Output : never;
44
+ /**
45
+ * Options for `defineEvent(...)`.
46
+ */
14
47
  export interface DefineEventOptions<Payload extends StandardSchema> {
48
+ /**
49
+ * Standard Schema payload validator.
50
+ */
15
51
  payload: Payload;
52
+ /**
53
+ * Optional human-readable description for docs and tooling.
54
+ */
16
55
  description?: string;
17
56
  }
57
+ /**
58
+ * Arguments passed to a listener handler.
59
+ */
18
60
  export interface ListenerHandleArgs<E extends EventDef, Ctx> {
61
+ /**
62
+ * Event definition being handled.
63
+ */
19
64
  event: E;
65
+ /**
66
+ * Parsed event payload.
67
+ */
20
68
  payload: InferEventPayload<E>;
69
+ /**
70
+ * Listener context.
71
+ */
21
72
  ctx: Ctx;
22
73
  }
74
+ /**
75
+ * Listener definition created by `defineListener(...)`.
76
+ */
23
77
  export interface ListenerDef<E extends EventDef = EventDef, Ctx = unknown, Name extends string = string> {
78
+ /**
79
+ * Discriminator for listener definitions.
80
+ */
24
81
  readonly kind: "listener";
82
+ /**
83
+ * Stable listener name.
84
+ */
25
85
  readonly name: Name;
86
+ /**
87
+ * Event this listener handles.
88
+ */
26
89
  readonly event: E;
90
+ /**
91
+ * Handle a parsed event payload.
92
+ */
27
93
  handle(args: ListenerHandleArgs<E, Ctx>): MaybePromise<void>;
28
94
  }
95
+ /**
96
+ * Options for `defineListener(...)`.
97
+ */
29
98
  export interface DefineListenerOptions<E extends EventDef, Ctx, Name extends string> {
99
+ /**
100
+ * Stable listener name.
101
+ */
30
102
  name: Name;
103
+ /**
104
+ * Handle a parsed event payload.
105
+ */
31
106
  handle(args: ListenerHandleArgs<E, Ctx>): MaybePromise<void>;
32
107
  }
108
+ /**
109
+ * Event bus shape required by Beignet listener registration helpers.
110
+ */
33
111
  export interface EventBusLike {
112
+ /**
113
+ * Publish an event payload.
114
+ */
34
115
  publish<E extends EventPayloadDef>(event: E, payload: InferEventPayload<E>): MaybePromise<void>;
116
+ /**
117
+ * Subscribe to an event and return an unsubscribe function.
118
+ */
35
119
  subscribe<E extends EventPayloadDef>(event: E, handler: (payload: InferEventPayload<E>) => MaybePromise<void>): () => void;
36
120
  }
121
+ /**
122
+ * Options for `registerListeners(...)`.
123
+ */
37
124
  export interface RegisterListenersOptions<Ctx> {
125
+ /**
126
+ * Static listener context or factory evaluated for each delivered event.
127
+ */
38
128
  ctx?: Ctx | (() => MaybePromise<Ctx>);
129
+ /**
130
+ * Called when a listener fails. When omitted, listener errors are rethrown to
131
+ * the event bus subscription callback.
132
+ */
39
133
  onError?: (error: unknown, listener: ListenerDef<EventDef, Ctx>) => void;
40
134
  }
135
+ /**
136
+ * Context-bound event helper factory.
137
+ */
41
138
  export interface EventHandlers<Ctx> {
139
+ /**
140
+ * Define a listener with the bound context type.
141
+ */
42
142
  defineListener<E extends EventDef, Name extends string = string>(event: E, options: DefineListenerOptions<E, Ctx, Name>): ListenerDef<E, Ctx, Name>;
143
+ /**
144
+ * Register listeners with an event bus.
145
+ */
43
146
  registerListeners(eventBus: EventBusLike, listeners: readonly ListenerDef<EventDef, Ctx>[], options?: RegisterListenersOptions<Ctx>): () => void;
44
147
  }
148
+ /**
149
+ * Error thrown when event payload validation fails.
150
+ */
45
151
  export declare class EventValidationError extends Error {
152
+ /**
153
+ * Raw Standard Schema validation issues.
154
+ */
46
155
  readonly issues: readonly StandardSchemaV1.Issue[];
47
156
  constructor(args: {
48
157
  name: string;
49
158
  issues: readonly StandardSchemaV1.Issue[];
50
159
  });
51
160
  }
161
+ /**
162
+ * Define a typed event.
163
+ *
164
+ * Event payloads are validated before publishing through `publishEvent(...)`
165
+ * and before registered listeners run.
166
+ */
52
167
  export declare function defineEvent<Name extends string, Payload extends StandardSchema>(name: Name, options: DefineEventOptions<Payload>): EventDef<Name, Payload>;
168
+ /**
169
+ * Define a listener for one event.
170
+ */
53
171
  export declare function defineListener<E extends EventDef, Ctx = unknown, Name extends string = string>(event: E, options: DefineListenerOptions<E, Ctx, Name>): ListenerDef<E, Ctx, Name>;
172
+ /**
173
+ * Validate and parse an event payload with the event's Standard Schema.
174
+ */
54
175
  export declare function parseEventPayload<E extends EventPayloadDef>(event: E, payload: unknown): Promise<InferEventPayload<E>>;
176
+ /**
177
+ * Validate an event payload and publish it through an event bus.
178
+ */
55
179
  export declare function publishEvent<E extends EventPayloadDef>(eventBus: EventBusLike, event: E, payload: InferEventPayload<E>): Promise<void>;
180
+ /**
181
+ * Register listeners against an event bus and return an unsubscribe function.
182
+ *
183
+ * Payloads are validated before listener handlers run. Listener context is
184
+ * resolved per delivery when `options.ctx` is a factory.
185
+ */
56
186
  export declare function registerListeners<Ctx>(eventBus: EventBusLike, listeners: readonly ListenerDef<EventDef, Ctx>[], options?: RegisterListenersOptions<Ctx>): () => void;
187
+ /**
188
+ * Create event helper methods bound to an application context type.
189
+ */
57
190
  export declare function createEventHandlers<Ctx>(): EventHandlers<Ctx>;
58
191
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAChE,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,gBAAgB,IACtD,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAElC,MAAM,WAAW,eAAe,CAC9B,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,SAAS,cAAc,GAAG,cAAc;IAE/C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,QAAQ,CACvB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,SAAS,cAAc,GAAG,cAAc,CAC/C,SAAQ,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,eAAe,IACrD,CAAC,CAAC,SAAS,CAAC,SAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;AAEhF,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,cAAc;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,GAAG;IACzD,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC9B,GAAG,EAAE,GAAG,CAAC;CACV;AAED,MAAM,WAAW,WAAW,CAC1B,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,GAAG,GAAG,OAAO,EACb,IAAI,SAAS,MAAM,GAAG,MAAM;IAE5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,qBAAqB,CACpC,CAAC,SAAS,QAAQ,EAClB,GAAG,EACH,IAAI,SAAS,MAAM;IAEnB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,CAAC,SAAS,eAAe,EAC/B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC5B,YAAY,CAAC,IAAI,CAAC,CAAC;IACtB,SAAS,CAAC,CAAC,SAAS,eAAe,EACjC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,GAC7D,MAAM,IAAI,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB,CAAC,GAAG;IAC3C,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;CAC1E;AAED,MAAM,WAAW,aAAa,CAAC,GAAG;IAChC,cAAc,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,SAAS,MAAM,GAAG,MAAM,EAC7D,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAC3C,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAE7B,iBAAiB,CACf,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,SAAS,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,EAChD,OAAO,CAAC,EAAE,wBAAwB,CAAC,GAAG,CAAC,GACtC,MAAM,IAAI,CAAC;CACf;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAEvC,IAAI,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,CAAC;KAC3C;CAOF;AAsDD,wBAAgB,WAAW,CACzB,IAAI,SAAS,MAAM,EACnB,OAAO,SAAS,cAAc,EAC9B,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAO3E;AAED,wBAAgB,cAAc,CAC5B,CAAC,SAAS,QAAQ,EAClB,GAAG,GAAG,OAAO,EACb,IAAI,SAAS,MAAM,GAAG,MAAM,EAE5B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAC3C,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAO3B;AAED,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,eAAe,EAC/D,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAI/B;AAED,wBAAsB,YAAY,CAAC,CAAC,SAAS,eAAe,EAC1D,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EACnC,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,SAAS,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,EAChD,OAAO,GAAE,wBAAwB,CAAC,GAAG,CAAM,GAC1C,MAAM,IAAI,CAsBZ;AAED,wBAAgB,mBAAmB,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,CAAC,CAiB7D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"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"}