hexok 1.0.1 → 2.1.0

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 (262) hide show
  1. package/README.md +9 -22
  2. package/dist/adapter.d.ts +18 -0
  3. package/dist/adapter.d.ts.map +1 -0
  4. package/dist/adapter.js +21 -0
  5. package/dist/adapter.js.map +1 -0
  6. package/dist/catalog.d.ts +88 -0
  7. package/dist/catalog.d.ts.map +1 -0
  8. package/dist/catalog.js +79 -0
  9. package/dist/catalog.js.map +1 -0
  10. package/dist/{core/coded-error.d.ts → coded-error.d.ts} +9 -4
  11. package/dist/coded-error.d.ts.map +1 -0
  12. package/dist/{core/coded-error.js → coded-error.js} +9 -4
  13. package/dist/coded-error.js.map +1 -0
  14. package/dist/cow-draft.d.ts.map +1 -0
  15. package/dist/cow-draft.js.map +1 -0
  16. package/dist/entity.d.ts +63 -0
  17. package/dist/entity.d.ts.map +1 -0
  18. package/dist/{domain/entity.js → entity.js} +52 -80
  19. package/dist/entity.js.map +1 -0
  20. package/dist/error-map.d.ts +22 -0
  21. package/dist/error-map.d.ts.map +1 -0
  22. package/dist/error-map.js +2 -0
  23. package/dist/error-map.js.map +1 -0
  24. package/dist/errors.d.ts +85 -0
  25. package/dist/errors.d.ts.map +1 -0
  26. package/dist/errors.js +85 -0
  27. package/dist/errors.js.map +1 -0
  28. package/dist/event-handler.d.ts +31 -0
  29. package/dist/event-handler.d.ts.map +1 -0
  30. package/dist/event-handler.js +28 -0
  31. package/dist/event-handler.js.map +1 -0
  32. package/dist/event.d.ts +37 -0
  33. package/dist/event.d.ts.map +1 -0
  34. package/dist/event.js +44 -0
  35. package/dist/event.js.map +1 -0
  36. package/dist/index.d.ts +16 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +14 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/mapper.d.ts +100 -0
  41. package/dist/mapper.d.ts.map +1 -0
  42. package/dist/mapper.js +167 -0
  43. package/dist/mapper.js.map +1 -0
  44. package/dist/port.d.ts +20 -0
  45. package/dist/port.d.ts.map +1 -0
  46. package/dist/port.js +25 -0
  47. package/dist/port.js.map +1 -0
  48. package/dist/result.d.ts.map +1 -0
  49. package/dist/result.js.map +1 -0
  50. package/dist/schema.d.ts +37 -0
  51. package/dist/schema.d.ts.map +1 -0
  52. package/dist/schema.js +50 -0
  53. package/dist/schema.js.map +1 -0
  54. package/dist/{core/standard-schema.d.ts → standard-schema.d.ts} +1 -1
  55. package/dist/standard-schema.d.ts.map +1 -0
  56. package/dist/standard-schema.js.map +1 -0
  57. package/dist/use-case.d.ts +183 -0
  58. package/dist/use-case.d.ts.map +1 -0
  59. package/dist/use-case.js +221 -0
  60. package/dist/use-case.js.map +1 -0
  61. package/dist/{core/schema.d.ts → validate.d.ts} +1 -1
  62. package/dist/validate.d.ts.map +1 -0
  63. package/dist/{core/schema.js → validate.js} +1 -1
  64. package/dist/validate.js.map +1 -0
  65. package/package.json +7 -26
  66. package/skills/hexok/SKILL.md +127 -0
  67. package/skills/hexok/references/adapter.md +66 -0
  68. package/skills/hexok/references/entity.md +74 -0
  69. package/skills/hexok/references/error.md +140 -0
  70. package/skills/hexok/references/event-catalog.md +57 -0
  71. package/skills/hexok/references/event-handler.md +56 -0
  72. package/skills/hexok/references/event.md +53 -0
  73. package/skills/hexok/references/mapper.md +77 -0
  74. package/skills/hexok/references/port.md +58 -0
  75. package/skills/hexok/references/schema.md +47 -0
  76. package/skills/hexok/references/use-case.md +164 -0
  77. package/dist/app/callable-use-case.d.ts +0 -34
  78. package/dist/app/callable-use-case.d.ts.map +0 -1
  79. package/dist/app/callable-use-case.js +0 -41
  80. package/dist/app/callable-use-case.js.map +0 -1
  81. package/dist/app/contract.d.ts +0 -46
  82. package/dist/app/contract.d.ts.map +0 -1
  83. package/dist/app/contract.js +0 -28
  84. package/dist/app/contract.js.map +0 -1
  85. package/dist/app/error-factory.d.ts +0 -9
  86. package/dist/app/error-factory.d.ts.map +0 -1
  87. package/dist/app/error-factory.js +0 -30
  88. package/dist/app/error-factory.js.map +0 -1
  89. package/dist/app/event-channel.d.ts +0 -133
  90. package/dist/app/event-channel.d.ts.map +0 -1
  91. package/dist/app/event-channel.js +0 -49
  92. package/dist/app/event-channel.js.map +0 -1
  93. package/dist/app/event-use-case.d.ts +0 -47
  94. package/dist/app/event-use-case.d.ts.map +0 -1
  95. package/dist/app/event-use-case.js +0 -54
  96. package/dist/app/event-use-case.js.map +0 -1
  97. package/dist/app/execute-ctx.d.ts +0 -92
  98. package/dist/app/execute-ctx.d.ts.map +0 -1
  99. package/dist/app/execute-ctx.js +0 -2
  100. package/dist/app/execute-ctx.js.map +0 -1
  101. package/dist/app/external-use-case.d.ts +0 -25
  102. package/dist/app/external-use-case.d.ts.map +0 -1
  103. package/dist/app/external-use-case.js +0 -25
  104. package/dist/app/external-use-case.js.map +0 -1
  105. package/dist/app/index.d.ts +0 -9
  106. package/dist/app/index.d.ts.map +0 -1
  107. package/dist/app/index.js +0 -8
  108. package/dist/app/index.js.map +0 -1
  109. package/dist/app/internal-use-case.d.ts +0 -26
  110. package/dist/app/internal-use-case.d.ts.map +0 -1
  111. package/dist/app/internal-use-case.js +0 -26
  112. package/dist/app/internal-use-case.js.map +0 -1
  113. package/dist/app/nest.d.ts +0 -9
  114. package/dist/app/nest.d.ts.map +0 -1
  115. package/dist/app/nest.js +0 -28
  116. package/dist/app/nest.js.map +0 -1
  117. package/dist/app/types.d.ts +0 -153
  118. package/dist/app/types.d.ts.map +0 -1
  119. package/dist/app/types.js +0 -17
  120. package/dist/app/types.js.map +0 -1
  121. package/dist/core/coded-error.d.ts.map +0 -1
  122. package/dist/core/coded-error.js.map +0 -1
  123. package/dist/core/error-map.d.ts +0 -21
  124. package/dist/core/error-map.d.ts.map +0 -1
  125. package/dist/core/error-map.js +0 -5
  126. package/dist/core/error-map.js.map +0 -1
  127. package/dist/core/index.d.ts +0 -6
  128. package/dist/core/index.d.ts.map +0 -1
  129. package/dist/core/index.js +0 -5
  130. package/dist/core/index.js.map +0 -1
  131. package/dist/core/result.d.ts.map +0 -1
  132. package/dist/core/result.js.map +0 -1
  133. package/dist/core/schema.d.ts.map +0 -1
  134. package/dist/core/schema.js.map +0 -1
  135. package/dist/core/standard-schema.d.ts.map +0 -1
  136. package/dist/core/standard-schema.js.map +0 -1
  137. package/dist/domain/capabilities.d.ts +0 -42
  138. package/dist/domain/capabilities.d.ts.map +0 -1
  139. package/dist/domain/capabilities.js +0 -2
  140. package/dist/domain/capabilities.js.map +0 -1
  141. package/dist/domain/catalog.d.ts +0 -46
  142. package/dist/domain/catalog.d.ts.map +0 -1
  143. package/dist/domain/catalog.js +0 -114
  144. package/dist/domain/catalog.js.map +0 -1
  145. package/dist/domain/channel.d.ts +0 -36
  146. package/dist/domain/channel.d.ts.map +0 -1
  147. package/dist/domain/channel.js +0 -2
  148. package/dist/domain/channel.js.map +0 -1
  149. package/dist/domain/cow-draft.d.ts.map +0 -1
  150. package/dist/domain/cow-draft.js.map +0 -1
  151. package/dist/domain/entity.d.ts +0 -120
  152. package/dist/domain/entity.d.ts.map +0 -1
  153. package/dist/domain/entity.js.map +0 -1
  154. package/dist/domain/envelope.d.ts +0 -59
  155. package/dist/domain/envelope.d.ts.map +0 -1
  156. package/dist/domain/envelope.js +0 -2
  157. package/dist/domain/envelope.js.map +0 -1
  158. package/dist/domain/event.d.ts +0 -44
  159. package/dist/domain/event.d.ts.map +0 -1
  160. package/dist/domain/event.js +0 -21
  161. package/dist/domain/event.js.map +0 -1
  162. package/dist/domain/index.d.ts +0 -8
  163. package/dist/domain/index.d.ts.map +0 -1
  164. package/dist/domain/index.js +0 -5
  165. package/dist/domain/index.js.map +0 -1
  166. package/dist/domain/port.d.ts +0 -45
  167. package/dist/domain/port.d.ts.map +0 -1
  168. package/dist/domain/port.js +0 -41
  169. package/dist/domain/port.js.map +0 -1
  170. package/dist/infra/adapter.d.ts +0 -22
  171. package/dist/infra/adapter.d.ts.map +0 -1
  172. package/dist/infra/adapter.js +0 -18
  173. package/dist/infra/adapter.js.map +0 -1
  174. package/dist/infra/index.d.ts +0 -3
  175. package/dist/infra/index.d.ts.map +0 -1
  176. package/dist/infra/index.js +0 -3
  177. package/dist/infra/index.js.map +0 -1
  178. package/dist/infra/mapper.d.ts +0 -48
  179. package/dist/infra/mapper.d.ts.map +0 -1
  180. package/dist/infra/mapper.js +0 -77
  181. package/dist/infra/mapper.js.map +0 -1
  182. package/dist/runtime/app.d.ts +0 -100
  183. package/dist/runtime/app.d.ts.map +0 -1
  184. package/dist/runtime/app.js +0 -292
  185. package/dist/runtime/app.js.map +0 -1
  186. package/dist/runtime/channel.d.ts +0 -34
  187. package/dist/runtime/channel.d.ts.map +0 -1
  188. package/dist/runtime/channel.js +0 -110
  189. package/dist/runtime/channel.js.map +0 -1
  190. package/dist/runtime/client.d.ts +0 -21
  191. package/dist/runtime/client.d.ts.map +0 -1
  192. package/dist/runtime/client.js +0 -2
  193. package/dist/runtime/client.js.map +0 -1
  194. package/dist/runtime/completeness.d.ts +0 -89
  195. package/dist/runtime/completeness.d.ts.map +0 -1
  196. package/dist/runtime/completeness.js +0 -2
  197. package/dist/runtime/completeness.js.map +0 -1
  198. package/dist/runtime/envelope.d.ts +0 -7
  199. package/dist/runtime/envelope.d.ts.map +0 -1
  200. package/dist/runtime/envelope.js +0 -69
  201. package/dist/runtime/envelope.js.map +0 -1
  202. package/dist/runtime/events.d.ts +0 -6
  203. package/dist/runtime/events.d.ts.map +0 -1
  204. package/dist/runtime/events.js +0 -48
  205. package/dist/runtime/events.js.map +0 -1
  206. package/dist/runtime/http-status.d.ts +0 -3
  207. package/dist/runtime/http-status.d.ts.map +0 -1
  208. package/dist/runtime/http-status.js +0 -11
  209. package/dist/runtime/http-status.js.map +0 -1
  210. package/dist/runtime/http.d.ts +0 -4
  211. package/dist/runtime/http.d.ts.map +0 -1
  212. package/dist/runtime/http.js +0 -58
  213. package/dist/runtime/http.js.map +0 -1
  214. package/dist/runtime/index.d.ts +0 -10
  215. package/dist/runtime/index.d.ts.map +0 -1
  216. package/dist/runtime/index.js +0 -6
  217. package/dist/runtime/index.js.map +0 -1
  218. package/dist/runtime/interceptor.d.ts +0 -61
  219. package/dist/runtime/interceptor.d.ts.map +0 -1
  220. package/dist/runtime/interceptor.js +0 -7
  221. package/dist/runtime/interceptor.js.map +0 -1
  222. package/dist/runtime/invoke.d.ts +0 -34
  223. package/dist/runtime/invoke.d.ts.map +0 -1
  224. package/dist/runtime/invoke.js +0 -235
  225. package/dist/runtime/invoke.js.map +0 -1
  226. package/dist/runtime/middleware.d.ts +0 -20
  227. package/dist/runtime/middleware.d.ts.map +0 -1
  228. package/dist/runtime/middleware.js +0 -2
  229. package/dist/runtime/middleware.js.map +0 -1
  230. package/dist/runtime/rpc.d.ts +0 -24
  231. package/dist/runtime/rpc.d.ts.map +0 -1
  232. package/dist/runtime/rpc.js +0 -16
  233. package/dist/runtime/rpc.js.map +0 -1
  234. package/dist/testing/app-test.d.ts +0 -77
  235. package/dist/testing/app-test.d.ts.map +0 -1
  236. package/dist/testing/app-test.js +0 -109
  237. package/dist/testing/app-test.js.map +0 -1
  238. package/dist/testing/in-memory-bus.d.ts +0 -19
  239. package/dist/testing/in-memory-bus.d.ts.map +0 -1
  240. package/dist/testing/in-memory-bus.js +0 -31
  241. package/dist/testing/in-memory-bus.js.map +0 -1
  242. package/dist/testing/in-memory-channel.d.ts +0 -32
  243. package/dist/testing/in-memory-channel.d.ts.map +0 -1
  244. package/dist/testing/in-memory-channel.js +0 -65
  245. package/dist/testing/in-memory-channel.js.map +0 -1
  246. package/dist/testing/in-memory-queue.d.ts +0 -24
  247. package/dist/testing/in-memory-queue.d.ts.map +0 -1
  248. package/dist/testing/in-memory-queue.js +0 -66
  249. package/dist/testing/in-memory-queue.js.map +0 -1
  250. package/dist/testing/in-memory-repository.d.ts +0 -44
  251. package/dist/testing/in-memory-repository.d.ts.map +0 -1
  252. package/dist/testing/in-memory-repository.js +0 -60
  253. package/dist/testing/in-memory-repository.js.map +0 -1
  254. package/dist/testing/index.d.ts +0 -6
  255. package/dist/testing/index.d.ts.map +0 -1
  256. package/dist/testing/index.js +0 -6
  257. package/dist/testing/index.js.map +0 -1
  258. /package/dist/{domain/cow-draft.d.ts → cow-draft.d.ts} +0 -0
  259. /package/dist/{domain/cow-draft.js → cow-draft.js} +0 -0
  260. /package/dist/{core/result.d.ts → result.d.ts} +0 -0
  261. /package/dist/{core/result.js → result.js} +0 -0
  262. /package/dist/{core/standard-schema.js → standard-schema.js} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAC3C;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACtB;IACE,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,CAAC,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,CAAC;CAC5C,CAAC;AAEN,2FAA2F;AAC3F,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAEhD;AAED,sGAAsG;AACtG,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EACnC,IAAI,EAAE,CAAC,EACP,MAAM,CAAC,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,GACzC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAIlB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":"AAmBA,2FAA2F;AAC3F,MAAM,UAAU,EAAE,CAAI,KAAQ;IAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,IAAI,CAClB,IAAO,EACP,MAA0C;IAE1C,OAAO,MAAM,KAAK,SAAS;QACzB,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;QAC7B,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,kDAAkD;AAClD,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,gBAAgB,IAAI,WAAW,CACzD,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CACxB,CAAC,QAAQ,CAAC,CAAC;AAEZ;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,gBAAgB,EACjD,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,OAAO,GACb,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAShC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,EAAE,EAAe,MAAM,aAAa,CAAC;AAQpD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAS,EACT,KAAc;IAEd,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,CAAC,MAAM,CAAC,KAAiB,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,SAAS,CAChB,KAE6C;IAE7C,OAAO,OAAQ,KAA0B,CAAC,IAAI,KAAK,UAAU,CAAC;AAChE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"standard-schema.d.ts","sourceRoot":"","sources":["../../src/core/standard-schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IAC/D,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC7D;AAED,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC;IACxC,oEAAoE;IACpE,UAAiB,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QACpD,gCAAgC;QAChC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACpB,yCAAyC;QACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,wEAAwE;QACxE,QAAQ,CAAC,QAAQ,EAAE,CACjB,KAAK,EAAE,OAAO,KACX,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9C,gDAAgD;QAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;KACnD;IAED,wEAAwE;IACxE,KAAY,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC;IAEnE,6CAA6C;IAC7C,UAAiB,aAAa,CAAC,MAAM;QACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;KAC7B;IAED,qDAAqD;IACrD,UAAiB,aAAa;QAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;KACvC;IAED,+EAA+E;IAC/E,UAAiB,KAAK;QACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;KACtE;IAED,0DAA0D;IAC1D,UAAiB,WAAW;QAC1B,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;KAC3B;IAED,oEAAoE;IACpE,UAAiB,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QACpD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB;IAED,wEAAwE;IACxE,KAAY,UAAU,CAAC,MAAM,SAAS,gBAAgB,IAAI,WAAW,CACnE,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAC7B,CAAC,OAAO,CAAC,CAAC;IAEX,+DAA+D;IAC/D,KAAY,WAAW,CAAC,MAAM,SAAS,gBAAgB,IAAI,WAAW,CACpE,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAC7B,CAAC,QAAQ,CAAC,CAAC;CACb"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"standard-schema.js","sourceRoot":"","sources":["../../src/core/standard-schema.ts"],"names":[],"mappings":""}
@@ -1,42 +0,0 @@
1
- /**
2
- * Optional adapter capabilities. Intersect these with a port interface.
3
- * Pass `{ transactional: true }` / `{ requestScoped: true }` to `Port.token`
4
- * so `provide()` throws if the impl is missing `bindTo` / `fork`.
5
- *
6
- * ```ts
7
- * class PgIncidentRepo implements IncidentRepository, Transactional<IncidentRepository> {
8
- * bindTo(uow: UnitOfWork): IncidentRepository { return this }
9
- * }
10
- * ```
11
- */
12
- export interface UnitOfWork {
13
- /** Register work to run after a successful commit. */
14
- onCommit(fn: () => void | Promise<void>): void;
15
- /** Register work to run after a rollback. */
16
- onRollback(fn: () => void | Promise<void>): void;
17
- }
18
- /** Port capability: the adapter can bind itself to a unit of work. */
19
- export interface Transactional<T = unknown> {
20
- /** Return this port bound to `uow` (often `return this`). */
21
- bindTo(uow: UnitOfWork): T;
22
- }
23
- /** Port capability: the adapter can fork a request-scoped instance. */
24
- export interface RequestScoped<T = unknown> {
25
- /** Return a new instance scoped to the current request. */
26
- fork(): T;
27
- }
28
- /**
29
- * Standard repository shape. Authors write their own port interface;
30
- * this is the contract `InMemoryRepository` can fake.
31
- */
32
- export interface CrudRepository<E> {
33
- /** Load one entity by id, or `null` if missing. */
34
- get(id: string): Promise<E | null>;
35
- /** Persist an entity. Adapters call `entity.commit()` after a successful write. */
36
- save(entity: E): Promise<void>;
37
- /** List all entities. Optional on the port. */
38
- list?(): Promise<E[]>;
39
- /** Delete by id. Optional on the port. */
40
- delete?(id: string): Promise<void>;
41
- }
42
- //# sourceMappingURL=capabilities.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/domain/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU;IACzB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/C,6CAA6C;IAC7C,UAAU,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAClD;AAED,sEAAsE;AACtE,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,6DAA6D;IAC7D,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC;CAC5B;AAED,uEAAuE;AACvE,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,2DAA2D;IAC3D,IAAI,IAAI,CAAC,CAAC;CACX;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,mDAAmD;IACnD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACnC,mFAAmF;IACnF,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,+CAA+C;IAC/C,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACtB,0CAA0C;IAC1C,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=capabilities.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/domain/capabilities.ts"],"names":[],"mappings":""}
@@ -1,46 +0,0 @@
1
- import type { CatalogKind } from './envelope.js';
2
- import type { EventClass, EventWithCtx } from './event.js';
3
- /**
4
- * Registry of event classes. `kind` is `'bus'` (fan-out, fire-and-forget, no
5
- * persistence) or `'queue'` (work queue: one consumer in a group, ack/nack).
6
- * `.event()` accumulates each class on the covariant `Events` generic (empty is `never`).
7
- * Use-case convention: `static publishes = [DomainEvents] as const`.
8
- *
9
- * ```ts
10
- * const DomainEvents = new EventCatalog('domain', { kind: 'bus' })
11
- * .event(IncidentClosed)
12
- * DomainEvents.get(IncidentClosed)
13
- * DomainEvents.incident.closed // when every segment is a JS identifier
14
- * ```
15
- */
16
- export declare class EventCatalog<Key extends string = string, Kind extends CatalogKind = CatalogKind, out Events extends EventClass = never, out Ctx = undefined> {
17
- #private;
18
- /** Catalog name, copied onto envelopes and used in error messages. */
19
- readonly key: Key;
20
- /** `'bus'` (fan-out) or `'queue'` (work queue). Copied onto every envelope. */
21
- readonly kind: Kind;
22
- /** Create a named `'bus'` or `'queue'` catalog. Chain `.event(...)` then `.freeze()`. */
23
- constructor(key: Key, options: {
24
- kind: Kind;
25
- });
26
- /** Require `ctx: C` on every event in this catalog. Call before `.event()`. */
27
- ctx<C>(): EventCatalog<Key, Kind, Events, C>;
28
- /** True after `.ctx()` — every registered event must expose `ctx`. */
29
- get hasCtx(): boolean;
30
- /** Registered event classes, in registration order. */
31
- list(): EventClass[];
32
- /** Register an event class. Dotted keys become nested properties when each segment is a JS identifier. */
33
- event<E extends EventClass>(eventClass: [Ctx] extends [undefined] ? E : EventWithCtx<E, Ctx>): EventCatalog<Key, Kind, Events | E, Ctx>;
34
- /** Look up a registered class. Throws if it is not in this catalog. */
35
- get<E extends EventClass>(eventClass: E): E;
36
- /** Seal the catalog. Further `.event()` / `.ctx()` throw. */
37
- freeze(): EventCatalog<Key, Kind, Events, Ctx>;
38
- /** True after `.freeze()`. */
39
- get frozen(): boolean;
40
- private assertWritable;
41
- }
42
- /** Safe annotation / Map key. Bare `EventCatalog` is Events=never and rejects populated catalogs. */
43
- export type AnyEventCatalog = EventCatalog<string, CatalogKind, EventClass, unknown>;
44
- /** Event classes registered on `Cat`, or `never` when the catalog is empty. */
45
- export type CatalogEvents<Cat> = Cat extends EventCatalog<infer _Key, infer _Kind, infer E extends EventClass, infer _Ctx> ? E : never;
46
- //# sourceMappingURL=catalog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/domain/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI3D;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY,CACvB,GAAG,SAAS,MAAM,GAAG,MAAM,EAC3B,IAAI,SAAS,WAAW,GAAG,WAAW,EACtC,GAAG,CAAC,MAAM,SAAS,UAAU,GAAG,KAAK,EACrC,GAAG,CAAC,GAAG,GAAG,SAAS;;IAEnB,sEAAsE;IACtE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAKpB,yFAAyF;gBAC7E,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE;IAK7C,+EAA+E;IAC/E,GAAG,CAAC,CAAC,KAAK,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAc5C,sEAAsE;IACtE,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,uDAAuD;IACvD,IAAI,IAAI,UAAU,EAAE;IAIpB,0GAA0G;IAC1G,KAAK,CAAC,CAAC,SAAS,UAAU,EACxB,UAAU,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,GAC/D,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC;IAkB3C,uEAAuE;IACvE,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC;IAU3C,6DAA6D;IAC7D,MAAM,IAAI,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC;IAO9C,8BAA8B;IAC9B,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,OAAO,CAAC,cAAc;CAKvB;AAED,qGAAqG;AACrG,MAAM,MAAM,eAAe,GAAG,YAAY,CACxC,MAAM,EACN,WAAW,EACX,UAAU,EACV,OAAO,CACR,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,aAAa,CAAC,GAAG,IAC3B,GAAG,SAAS,YAAY,CACtB,MAAM,IAAI,EACV,MAAM,KAAK,EACX,MAAM,CAAC,SAAS,UAAU,EAC1B,MAAM,IAAI,CACX,GACG,CAAC,GACD,KAAK,CAAC"}
@@ -1,114 +0,0 @@
1
- const IDENT = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
2
- /**
3
- * Registry of event classes. `kind` is `'bus'` (fan-out, fire-and-forget, no
4
- * persistence) or `'queue'` (work queue: one consumer in a group, ack/nack).
5
- * `.event()` accumulates each class on the covariant `Events` generic (empty is `never`).
6
- * Use-case convention: `static publishes = [DomainEvents] as const`.
7
- *
8
- * ```ts
9
- * const DomainEvents = new EventCatalog('domain', { kind: 'bus' })
10
- * .event(IncidentClosed)
11
- * DomainEvents.get(IncidentClosed)
12
- * DomainEvents.incident.closed // when every segment is a JS identifier
13
- * ```
14
- */
15
- export class EventCatalog {
16
- /** Catalog name, copied onto envelopes and used in error messages. */
17
- key;
18
- /** `'bus'` (fan-out) or `'queue'` (work queue). Copied onto every envelope. */
19
- kind;
20
- #events = new Map();
21
- #frozen = false;
22
- #hasCtx = false;
23
- /** Create a named `'bus'` or `'queue'` catalog. Chain `.event(...)` then `.freeze()`. */
24
- constructor(key, options) {
25
- this.key = key;
26
- this.kind = options.kind;
27
- }
28
- /** Require `ctx: C` on every event in this catalog. Call before `.event()`. */
29
- ctx() {
30
- this.assertWritable();
31
- if (this.#hasCtx) {
32
- throw new Error(`hexok: catalog "${this.key}" already has ctx`);
33
- }
34
- if (this.#events.size > 0) {
35
- throw new Error(`hexok: catalog "${this.key}" ctx() must be called before .event()`);
36
- }
37
- this.#hasCtx = true;
38
- return this;
39
- }
40
- /** True after `.ctx()` — every registered event must expose `ctx`. */
41
- get hasCtx() {
42
- return this.#hasCtx;
43
- }
44
- /** Registered event classes, in registration order. */
45
- list() {
46
- return [...this.#events.values()];
47
- }
48
- /** Register an event class. Dotted keys become nested properties when each segment is a JS identifier. */
49
- event(eventClass) {
50
- this.assertWritable();
51
- const ctor = eventClass;
52
- const eventKey = ctor.key;
53
- if (this.#events.has(eventKey)) {
54
- throw new Error(`hexok: duplicate event "${eventKey}" in catalog "${this.key}"`);
55
- }
56
- this.#events.set(eventKey, ctor);
57
- nestIdentifierPath(this, eventKey, ctor);
58
- return this;
59
- }
60
- /** Look up a registered class. Throws if it is not in this catalog. */
61
- get(eventClass) {
62
- const found = this.#events.get(eventClass.key);
63
- if (!found) {
64
- throw new Error(`hexok: event "${eventClass.key}" is not in catalog "${this.key}"`);
65
- }
66
- return found;
67
- }
68
- /** Seal the catalog. Further `.event()` / `.ctx()` throw. */
69
- freeze() {
70
- if (this.#frozen)
71
- return this;
72
- this.#frozen = true;
73
- Object.freeze(this);
74
- return this;
75
- }
76
- /** True after `.freeze()`. */
77
- get frozen() {
78
- return this.#frozen;
79
- }
80
- assertWritable() {
81
- if (this.#frozen) {
82
- throw new Error(`hexok: catalog "${this.key}" is frozen`);
83
- }
84
- }
85
- }
86
- function nestIdentifierPath(root, dotted, value) {
87
- const parts = dotted.split('.');
88
- if (parts.length === 0 || parts.some((part) => !IDENT.test(part))) {
89
- return;
90
- }
91
- let cursor = root;
92
- for (let i = 0; i < parts.length - 1; i++) {
93
- const key = parts[i];
94
- if (key === undefined)
95
- return;
96
- const existing = cursor[key];
97
- if (existing === undefined) {
98
- const next = Object.create(null);
99
- cursor[key] = next;
100
- cursor = next;
101
- continue;
102
- }
103
- if (typeof existing === 'object' && existing !== null) {
104
- cursor = existing;
105
- continue;
106
- }
107
- return;
108
- }
109
- const last = parts[parts.length - 1];
110
- if (last === undefined)
111
- return;
112
- cursor[last] = value;
113
- }
114
- //# sourceMappingURL=catalog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/domain/catalog.ts"],"names":[],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- /**
2
- * Byte sink for one connected client. WebSocket and SSE adapters wrap their
3
- * native connection as this shape.
4
- */
5
- export type ChannelConnection = {
6
- /** Write one frame to this client. */
7
- send(data: string): void;
8
- /** Disconnect this client. */
9
- close(): void;
10
- /** Subscribe to the native close. */
11
- addEventListener(type: 'close', listener: () => void): void;
12
- };
13
- /**
14
- * Local presence + send. Bound with `.route(Channel, adapter)`.
15
- * Does not interpret routing hints or session claims.
16
- */
17
- export interface ChannelAdapter<Session = unknown> {
18
- /** Bind a connected client into local presence. */
19
- join(id: string, session: Session, connection: ChannelConnection): void;
20
- /** Remove a client that left. */
21
- leave(id: string): void;
22
- /** Force-disconnect a client. */
23
- eject(id: string): void;
24
- /** Replace the session attached to a connected id. */
25
- update(id: string, session: Session): void;
26
- /** Snapshot of who is present. */
27
- list(): ReadonlyArray<{
28
- id: string;
29
- session: Session;
30
- }>;
31
- /** Send a payload to one connected id. */
32
- send(id: string, payload: string): void;
33
- /** Tear down the adapter. Optional. */
34
- stop?(): Promise<void>;
35
- }
36
- //# sourceMappingURL=channel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/domain/channel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,sCAAsC;IACtC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,8BAA8B;IAC9B,KAAK,IAAI,IAAI,CAAC;IACd,qCAAqC;IACrC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CAC7D,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,OAAO,GAAG,OAAO;IAC/C,mDAAmD;IACnD,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxE,iCAAiC;IACjC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iCAAiC;IACjC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3C,kCAAkC;IAClC,IAAI,IAAI,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACxD,0CAA0C;IAC1C,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,uCAAuC;IACvC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=channel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/domain/channel.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cow-draft.d.ts","sourceRoot":"","sources":["../../src/domain/cow-draft.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKlC;AAMD,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAC5C,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,EAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAC3B;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CA+FjE;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAE7C;AAED,gEAAgE;AAChE,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAEzC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cow-draft.js","sourceRoot":"","sources":["../../src/domain/cow-draft.ts"],"names":[],"mappings":"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"}
@@ -1,120 +0,0 @@
1
- import { type ErrorMap, type Infer, type StandardSchemaV1 } from '../core/index.js';
2
- /** Recursively readonly view of entity props. `Date` values stay `Date`. */
3
- export type DeepReadonly<T> = T extends Date ? T : T extends readonly (infer U)[] ? ReadonlyArray<DeepReadonly<U>> : T extends object ? {
4
- readonly [K in keyof T]: DeepReadonly<T[K]>;
5
- } : T;
6
- /**
7
- * Aggregates mutate **this** via `set` and return `this`.
8
- * They never I/O, never publish, never hold ports.
9
- *
10
- * Validation, invariants, and declared refusals **throw**.
11
- * `create` / `parse` run the schema. `restore` does not — it rehydrates
12
- * mapper output as-is. `set` re-runs the schema after a write.
13
- * `validate()` is the optional fail-fast for a restored instance.
14
- *
15
- * ```ts
16
- * class Incident extends Entity<IncidentProps> {
17
- * static readonly key = 'Incident'
18
- * static readonly schema = z.object({ id: z.string(), status: z.enum(['open', 'closed']) })
19
- * static readonly errors = { ALREADY_CLOSED: { message: 'Incident already closed' } } as const
20
- * close(now: Date): this {
21
- * if (this.props.status === 'closed') Incident.error('ALREADY_CLOSED')
22
- * return this.set((draft) => {
23
- * draft.status = 'closed'
24
- * draft.closedAt = now
25
- * })
26
- * }
27
- * }
28
- * ```
29
- */
30
- export declare abstract class Entity<P extends object> {
31
- #private;
32
- /** Entity name used in validation and undeclared-error messages. Declare on each subclass. */
33
- static readonly key: string;
34
- /** Standard Schema for `create` / `parse` / `set` / `validate()`. Declare on each subclass. */
35
- static readonly schema: StandardSchemaV1;
36
- /** Declared refusal codes. Keys are the `error()` union. Declare on each subclass. */
37
- static readonly errors: ErrorMap;
38
- protected _props: P;
39
- /** Live props. Read-only; write through `set`. */
40
- get props(): DeepReadonly<P>;
41
- /** True after `create` until `commit`. `restore` / `parse` start false. */
42
- get isNew(): boolean;
43
- /**
44
- * True after `create`, `parse`, a writing `set`, or `validate()`.
45
- * `restore` starts false — the schema has not run.
46
- */
47
- get isValidated(): boolean;
48
- /**
49
- * Pre-mutation props after the first `set` on a restored entity.
50
- * `undefined` when same-ref (clean) or `create`d and never `commit`ted.
51
- */
52
- get original(): DeepReadonly<P> | undefined;
53
- protected constructor(props: P);
54
- /** Copy-on-write mutate. Edit `draft` and return `this`. Re-validates the schema after a write. */
55
- set(producer: (draft: P) => void): this;
56
- /**
57
- * Run the schema if it has not already passed on this instance.
58
- * No-op when `isValidated`. Does not rewrite props (no strip/defaults).
59
- * Throws `CodedError` `VALIDATION` if the schema rejects current props.
60
- */
61
- validate(): this;
62
- /** Shallow keys that differ from `original`. `{ deep: true }` returns dotted leaf paths. */
63
- getChangedKeys(): Array<ChangedKey<P>>;
64
- getChangedKeys(opts: {
65
- deep: true;
66
- }): string[];
67
- getChangedKeys(opts?: {
68
- deep?: boolean;
69
- }): string[];
70
- /** True when `create`d and not yet `commit`ted, or any shallow key changed. */
71
- isDirty(): boolean;
72
- /** Accept current props as original; `isNew` becomes false. Adapters after persist; not use-cases. */
73
- commit(): this;
74
- /** Deep frozen snapshot for persistence and use-case output. Reused until the next `set`. */
75
- toProps(): DeepReadonly<P>;
76
- /** JSON serialization is the plain props snapshot. */
77
- toJSON(): DeepReadonly<P>;
78
- /**
79
- * Throw a declared entity error. Codes are the keys of the subclass
80
- * `static errors` when called as `Incident.error('ALREADY_CLOSED')`.
81
- * An undeclared code is a type error on that call, and a programming
82
- * error at runtime.
83
- */
84
- static error<E extends object, K extends keyof E & string>(this: {
85
- errors: E;
86
- key: string;
87
- }, code: K, data?: unknown): never;
88
- /**
89
- * Validate typed props and construct a new instance (`isNew: true`).
90
- * Throws `CodedError` `VALIDATION` if the schema rejects the props.
91
- */
92
- static create<T extends EntityConstructor>(this: T, props: SchemaOutput<T> | DeepReadonly<SchemaOutput<T>>): T['prototype'];
93
- /**
94
- * Reconstruct an existing instance (`isNew: false`) without running the
95
- * schema. Props are stored as given (no strip/defaults). `isValidated`
96
- * starts false until `set` writes or `validate()` runs.
97
- */
98
- static restore<T extends EntityConstructor>(this: T, props: SchemaOutput<T> | DeepReadonly<SchemaOutput<T>>): T['prototype'];
99
- /**
100
- * Trust boundary for untyped input. Validates like `create`;
101
- * tracking matches `restore` (`isNew: false`).
102
- * Throws `CodedError` `VALIDATION` if the schema rejects the value.
103
- */
104
- static parse<T extends EntityConstructor>(this: T, value: unknown): T['prototype'];
105
- }
106
- /** Subclass constructor shape for `create` / `restore` / `parse`. */
107
- export type EntityConstructor = {
108
- /** Entity name used in validation and error messages. */
109
- readonly key: string;
110
- /** Standard Schema for `create` / `parse` / `set` / `validate()`. Declare on each subclass. */
111
- readonly schema: StandardSchemaV1;
112
- /** Declared refusal codes. Keys are the `error()` union. Declare on each subclass. */
113
- readonly errors: ErrorMap;
114
- readonly prototype: Entity<any>;
115
- };
116
- type SchemaOutput<T extends EntityConstructor> = Infer<T['schema']>;
117
- /** `keyof object` is `never`; widen so `Entity<P>` stays assignable to `Entity<object>`. */
118
- type ChangedKey<P extends object> = keyof P extends never ? string : keyof P & string;
119
- export {};
120
- //# sourceMappingURL=entity.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/domain/entity.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/domain/entity.ts"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- /** `'bus'` is fan-out; `'queue'` is competing consumers with ack/nack. */
2
- export type CatalogKind = 'bus' | 'queue';
3
- /**
4
- * Runtime value on the wire. `kind` is copied from the catalog.
5
- */
6
- export type Envelope<K extends string = string, P = unknown, Cat extends string = string, Kind extends CatalogKind = CatalogKind, Ctx = unknown> = {
7
- /** Event class key, e.g. `'incident.closed'`. */
8
- key: K;
9
- /** Event payload. */
10
- payload: P;
11
- /** Catalog name this event was published through. */
12
- catalog: Cat;
13
- /** Copied from the catalog: `'bus'` or `'queue'`. */
14
- kind: Kind;
15
- /** When the event was wrapped for the wire. */
16
- occurredAt: Date;
17
- /** Catalog ctx when `.ctx()` was declared; omitted otherwise. */
18
- ctx?: Ctx;
19
- /** Copied from request ctx when that field is a string. */
20
- correlationId?: string;
21
- /** Copied from request ctx when that field is a string. */
22
- causationId?: string;
23
- /** Adapter/interceptor scratch. Hexok writes `{}`; domain code should not. */
24
- meta: Record<string, unknown>;
25
- };
26
- /** Fire-and-forget pub/sub. No ack, no consumer group, no persistence in the contract. */
27
- export interface BusAdapter {
28
- /** Discriminant. Must be `'bus'`. */
29
- kind: 'bus';
30
- /** Put one envelope on the bus. */
31
- publish(envelope: Envelope): Promise<void>;
32
- /** Register a handler for one event key. */
33
- subscribe(key: string, handler: (envelope: Envelope) => Promise<void>): void;
34
- /** Tear down the adapter. Optional. */
35
- stop?(): Promise<void>;
36
- }
37
- /** Ack/nack and delivery attempt for one queue message. */
38
- export interface QueueConsumeCtx {
39
- /** 1-based delivery attempt. */
40
- attempt: number;
41
- /** Mark this delivery succeeded. */
42
- ack: () => Promise<void>;
43
- /** Reject this delivery so it can retry. */
44
- nack: () => Promise<void>;
45
- }
46
- /** Work queue. One consumer in a group; ack/nack; `attempt`. */
47
- export interface QueueAdapter {
48
- /** Discriminant. Must be `'queue'`. */
49
- kind: 'queue';
50
- /** Put one envelope on the queue. */
51
- publish(envelope: Envelope): Promise<void>;
52
- /** Register a competing consumer for one event key in `group`. */
53
- consume(key: string, group: string, handler: (envelope: Envelope, ctx: QueueConsumeCtx) => Promise<void>): void;
54
- /** Tear down the adapter. Optional. */
55
- stop?(): Promise<void>;
56
- }
57
- /** Bound event transport: a bus or a queue. */
58
- export type EventAdapter = BusAdapter | QueueAdapter;
59
- //# sourceMappingURL=envelope.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/domain/envelope.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,QAAQ,CAClB,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,CAAC,GAAG,OAAO,EACX,GAAG,SAAS,MAAM,GAAG,MAAM,EAC3B,IAAI,SAAS,WAAW,GAAG,WAAW,EACtC,GAAG,GAAG,OAAO,IACX;IACF,iDAAiD;IACjD,GAAG,EAAE,CAAC,CAAC;IACP,qBAAqB;IACrB,OAAO,EAAE,CAAC,CAAC;IACX,qDAAqD;IACrD,OAAO,EAAE,GAAG,CAAC;IACb,qDAAqD;IACrD,IAAI,EAAE,IAAI,CAAC;IACX,+CAA+C;IAC/C,UAAU,EAAE,IAAI,CAAC;IACjB,iEAAiE;IACjE,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF,0FAA0F;AAC1F,MAAM,WAAW,UAAU;IACzB,qCAAqC;IACrC,IAAI,EAAE,KAAK,CAAC;IACZ,mCAAmC;IACnC,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,4CAA4C;IAC5C,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7E,uCAAuC;IACvC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,gEAAgE;AAChE,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,qCAAqC;IACrC,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,kEAAkE;IAClE,OAAO,CACL,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GACnE,IAAI,CAAC;IACR,uCAAuC;IACvC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,+CAA+C;AAC/C,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,YAAY,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=envelope.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/domain/envelope.ts"],"names":[],"mappings":""}
@@ -1,44 +0,0 @@
1
- import type { Infer, StandardSchemaV1 } from '../core/index.js';
2
- /**
3
- * Domain events are classes. Construction types the payload;
4
- * validation happens at the use-case edge, not in the constructor.
5
- *
6
- * ```ts
7
- * class IncidentClosed extends DomainEvent {
8
- * static readonly key = 'incident.closed'
9
- * static readonly schema = z.object({ id: z.string(), closedAt: z.date() })
10
- * constructor(public readonly payload: Infer<typeof IncidentClosed.schema>) {
11
- * super()
12
- * }
13
- * }
14
- * ```
15
- */
16
- export declare abstract class DomainEvent<P = unknown> {
17
- /** Dotted event name, e.g. `'incident.closed'`. Declare on each subclass. */
18
- static readonly key: string;
19
- /** Standard Schema for the payload, applied at the use-case edge. */
20
- static readonly schema: StandardSchemaV1;
21
- /** Event body. Typed by the subclass constructor; not validated here. */
22
- abstract readonly payload: P;
23
- }
24
- /** Event subclass constructor: `key`, `schema`, and `new (payload)`. */
25
- export type EventClass<P = never> = {
26
- /** Dotted event name, e.g. `'incident.closed'`. */
27
- readonly key: string;
28
- /** Standard Schema for the payload, applied at the use-case edge. */
29
- readonly schema: StandardSchemaV1;
30
- new (payload: P, ...args: never[]): DomainEvent<unknown>;
31
- };
32
- /** Payload type inferred from an event class's `schema`. */
33
- export type EventPayload<E extends EventClass> = Infer<E['schema']>;
34
- type EventKeyOf<E> = E extends {
35
- readonly key: infer K extends string;
36
- } ? K : string;
37
- /** `catalog.event()` argument when the catalog declared `.ctx<T>()`. */
38
- export type EventWithCtx<E extends EventClass, Ctx> = [
39
- InstanceType<E>
40
- ] extends [{
41
- ctx: Ctx;
42
- }] ? E : `hexok: event "${EventKeyOf<E>}" is missing ctx for this catalog`;
43
- export {};
44
- //# sourceMappingURL=event.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/domain/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEhE;;;;;;;;;;;;;GAaG;AACH,8BAAsB,WAAW,CAAC,CAAC,GAAG,OAAO;IAC3C,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAC5B,qEAAqE;IACrE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IACzC,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;CAC9B;AAED,wEAAwE;AACxE,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,KAAK,IAAI;IAClC,mDAAmD;IACnD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,KAAK,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;CAC1D,CAAC;AAEF,4DAA4D;AAC5D,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEpE,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,MAAM,CAAA;CAAE,GACnE,CAAC,GACD,MAAM,CAAC;AAEX,wEAAwE;AACxE,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,IAAI;IACpD,YAAY,CAAC,CAAC,CAAC;CAChB,SAAS,CAAC;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE,CAAC,GACpB,CAAC,GACD,iBAAiB,UAAU,CAAC,CAAC,CAAC,mCAAmC,CAAC"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Domain events are classes. Construction types the payload;
3
- * validation happens at the use-case edge, not in the constructor.
4
- *
5
- * ```ts
6
- * class IncidentClosed extends DomainEvent {
7
- * static readonly key = 'incident.closed'
8
- * static readonly schema = z.object({ id: z.string(), closedAt: z.date() })
9
- * constructor(public readonly payload: Infer<typeof IncidentClosed.schema>) {
10
- * super()
11
- * }
12
- * }
13
- * ```
14
- */
15
- export class DomainEvent {
16
- /** Dotted event name, e.g. `'incident.closed'`. Declare on each subclass. */
17
- static key;
18
- /** Standard Schema for the payload, applied at the use-case edge. */
19
- static schema;
20
- }
21
- //# sourceMappingURL=event.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/domain/event.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAgB,WAAW;IAC/B,6EAA6E;IAC7E,MAAM,CAAU,GAAG,CAAS;IAC5B,qEAAqE;IACrE,MAAM,CAAU,MAAM,CAAmB;CAG1C"}
@@ -1,8 +0,0 @@
1
- export type { CrudRepository, RequestScoped, Transactional, UnitOfWork, } from './capabilities.js';
2
- export { type AnyEventCatalog, type CatalogEvents, EventCatalog, } from './catalog.js';
3
- export type { ChannelAdapter, ChannelConnection, } from './channel.js';
4
- export { type DeepReadonly, Entity, type EntityConstructor, } from './entity.js';
5
- export type { BusAdapter, CatalogKind, Envelope, EventAdapter, QueueAdapter, QueueConsumeCtx, } from './envelope.js';
6
- export { DomainEvent, type EventClass, type EventPayload, type EventWithCtx, } from './event.js';
7
- export { Port, type PortCapabilities, PortToken, type PortType, } from './port.js';
8
- //# sourceMappingURL=index.d.ts.map