hexok 1.0.1 → 2.0.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 (251) hide show
  1. package/README.md +4 -26
  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 +5 -25
  66. package/dist/app/callable-use-case.d.ts +0 -34
  67. package/dist/app/callable-use-case.d.ts.map +0 -1
  68. package/dist/app/callable-use-case.js +0 -41
  69. package/dist/app/callable-use-case.js.map +0 -1
  70. package/dist/app/contract.d.ts +0 -46
  71. package/dist/app/contract.d.ts.map +0 -1
  72. package/dist/app/contract.js +0 -28
  73. package/dist/app/contract.js.map +0 -1
  74. package/dist/app/error-factory.d.ts +0 -9
  75. package/dist/app/error-factory.d.ts.map +0 -1
  76. package/dist/app/error-factory.js +0 -30
  77. package/dist/app/error-factory.js.map +0 -1
  78. package/dist/app/event-channel.d.ts +0 -133
  79. package/dist/app/event-channel.d.ts.map +0 -1
  80. package/dist/app/event-channel.js +0 -49
  81. package/dist/app/event-channel.js.map +0 -1
  82. package/dist/app/event-use-case.d.ts +0 -47
  83. package/dist/app/event-use-case.d.ts.map +0 -1
  84. package/dist/app/event-use-case.js +0 -54
  85. package/dist/app/event-use-case.js.map +0 -1
  86. package/dist/app/execute-ctx.d.ts +0 -92
  87. package/dist/app/execute-ctx.d.ts.map +0 -1
  88. package/dist/app/execute-ctx.js +0 -2
  89. package/dist/app/execute-ctx.js.map +0 -1
  90. package/dist/app/external-use-case.d.ts +0 -25
  91. package/dist/app/external-use-case.d.ts.map +0 -1
  92. package/dist/app/external-use-case.js +0 -25
  93. package/dist/app/external-use-case.js.map +0 -1
  94. package/dist/app/index.d.ts +0 -9
  95. package/dist/app/index.d.ts.map +0 -1
  96. package/dist/app/index.js +0 -8
  97. package/dist/app/index.js.map +0 -1
  98. package/dist/app/internal-use-case.d.ts +0 -26
  99. package/dist/app/internal-use-case.d.ts.map +0 -1
  100. package/dist/app/internal-use-case.js +0 -26
  101. package/dist/app/internal-use-case.js.map +0 -1
  102. package/dist/app/nest.d.ts +0 -9
  103. package/dist/app/nest.d.ts.map +0 -1
  104. package/dist/app/nest.js +0 -28
  105. package/dist/app/nest.js.map +0 -1
  106. package/dist/app/types.d.ts +0 -153
  107. package/dist/app/types.d.ts.map +0 -1
  108. package/dist/app/types.js +0 -17
  109. package/dist/app/types.js.map +0 -1
  110. package/dist/core/coded-error.d.ts.map +0 -1
  111. package/dist/core/coded-error.js.map +0 -1
  112. package/dist/core/error-map.d.ts +0 -21
  113. package/dist/core/error-map.d.ts.map +0 -1
  114. package/dist/core/error-map.js +0 -5
  115. package/dist/core/error-map.js.map +0 -1
  116. package/dist/core/index.d.ts +0 -6
  117. package/dist/core/index.d.ts.map +0 -1
  118. package/dist/core/index.js +0 -5
  119. package/dist/core/index.js.map +0 -1
  120. package/dist/core/result.d.ts.map +0 -1
  121. package/dist/core/result.js.map +0 -1
  122. package/dist/core/schema.d.ts.map +0 -1
  123. package/dist/core/schema.js.map +0 -1
  124. package/dist/core/standard-schema.d.ts.map +0 -1
  125. package/dist/core/standard-schema.js.map +0 -1
  126. package/dist/domain/capabilities.d.ts +0 -42
  127. package/dist/domain/capabilities.d.ts.map +0 -1
  128. package/dist/domain/capabilities.js +0 -2
  129. package/dist/domain/capabilities.js.map +0 -1
  130. package/dist/domain/catalog.d.ts +0 -46
  131. package/dist/domain/catalog.d.ts.map +0 -1
  132. package/dist/domain/catalog.js +0 -114
  133. package/dist/domain/catalog.js.map +0 -1
  134. package/dist/domain/channel.d.ts +0 -36
  135. package/dist/domain/channel.d.ts.map +0 -1
  136. package/dist/domain/channel.js +0 -2
  137. package/dist/domain/channel.js.map +0 -1
  138. package/dist/domain/cow-draft.d.ts.map +0 -1
  139. package/dist/domain/cow-draft.js.map +0 -1
  140. package/dist/domain/entity.d.ts +0 -120
  141. package/dist/domain/entity.d.ts.map +0 -1
  142. package/dist/domain/entity.js.map +0 -1
  143. package/dist/domain/envelope.d.ts +0 -59
  144. package/dist/domain/envelope.d.ts.map +0 -1
  145. package/dist/domain/envelope.js +0 -2
  146. package/dist/domain/envelope.js.map +0 -1
  147. package/dist/domain/event.d.ts +0 -44
  148. package/dist/domain/event.d.ts.map +0 -1
  149. package/dist/domain/event.js +0 -21
  150. package/dist/domain/event.js.map +0 -1
  151. package/dist/domain/index.d.ts +0 -8
  152. package/dist/domain/index.d.ts.map +0 -1
  153. package/dist/domain/index.js +0 -5
  154. package/dist/domain/index.js.map +0 -1
  155. package/dist/domain/port.d.ts +0 -45
  156. package/dist/domain/port.d.ts.map +0 -1
  157. package/dist/domain/port.js +0 -41
  158. package/dist/domain/port.js.map +0 -1
  159. package/dist/infra/adapter.d.ts +0 -22
  160. package/dist/infra/adapter.d.ts.map +0 -1
  161. package/dist/infra/adapter.js +0 -18
  162. package/dist/infra/adapter.js.map +0 -1
  163. package/dist/infra/index.d.ts +0 -3
  164. package/dist/infra/index.d.ts.map +0 -1
  165. package/dist/infra/index.js +0 -3
  166. package/dist/infra/index.js.map +0 -1
  167. package/dist/infra/mapper.d.ts +0 -48
  168. package/dist/infra/mapper.d.ts.map +0 -1
  169. package/dist/infra/mapper.js +0 -77
  170. package/dist/infra/mapper.js.map +0 -1
  171. package/dist/runtime/app.d.ts +0 -100
  172. package/dist/runtime/app.d.ts.map +0 -1
  173. package/dist/runtime/app.js +0 -292
  174. package/dist/runtime/app.js.map +0 -1
  175. package/dist/runtime/channel.d.ts +0 -34
  176. package/dist/runtime/channel.d.ts.map +0 -1
  177. package/dist/runtime/channel.js +0 -110
  178. package/dist/runtime/channel.js.map +0 -1
  179. package/dist/runtime/client.d.ts +0 -21
  180. package/dist/runtime/client.d.ts.map +0 -1
  181. package/dist/runtime/client.js +0 -2
  182. package/dist/runtime/client.js.map +0 -1
  183. package/dist/runtime/completeness.d.ts +0 -89
  184. package/dist/runtime/completeness.d.ts.map +0 -1
  185. package/dist/runtime/completeness.js +0 -2
  186. package/dist/runtime/completeness.js.map +0 -1
  187. package/dist/runtime/envelope.d.ts +0 -7
  188. package/dist/runtime/envelope.d.ts.map +0 -1
  189. package/dist/runtime/envelope.js +0 -69
  190. package/dist/runtime/envelope.js.map +0 -1
  191. package/dist/runtime/events.d.ts +0 -6
  192. package/dist/runtime/events.d.ts.map +0 -1
  193. package/dist/runtime/events.js +0 -48
  194. package/dist/runtime/events.js.map +0 -1
  195. package/dist/runtime/http-status.d.ts +0 -3
  196. package/dist/runtime/http-status.d.ts.map +0 -1
  197. package/dist/runtime/http-status.js +0 -11
  198. package/dist/runtime/http-status.js.map +0 -1
  199. package/dist/runtime/http.d.ts +0 -4
  200. package/dist/runtime/http.d.ts.map +0 -1
  201. package/dist/runtime/http.js +0 -58
  202. package/dist/runtime/http.js.map +0 -1
  203. package/dist/runtime/index.d.ts +0 -10
  204. package/dist/runtime/index.d.ts.map +0 -1
  205. package/dist/runtime/index.js +0 -6
  206. package/dist/runtime/index.js.map +0 -1
  207. package/dist/runtime/interceptor.d.ts +0 -61
  208. package/dist/runtime/interceptor.d.ts.map +0 -1
  209. package/dist/runtime/interceptor.js +0 -7
  210. package/dist/runtime/interceptor.js.map +0 -1
  211. package/dist/runtime/invoke.d.ts +0 -34
  212. package/dist/runtime/invoke.d.ts.map +0 -1
  213. package/dist/runtime/invoke.js +0 -235
  214. package/dist/runtime/invoke.js.map +0 -1
  215. package/dist/runtime/middleware.d.ts +0 -20
  216. package/dist/runtime/middleware.d.ts.map +0 -1
  217. package/dist/runtime/middleware.js +0 -2
  218. package/dist/runtime/middleware.js.map +0 -1
  219. package/dist/runtime/rpc.d.ts +0 -24
  220. package/dist/runtime/rpc.d.ts.map +0 -1
  221. package/dist/runtime/rpc.js +0 -16
  222. package/dist/runtime/rpc.js.map +0 -1
  223. package/dist/testing/app-test.d.ts +0 -77
  224. package/dist/testing/app-test.d.ts.map +0 -1
  225. package/dist/testing/app-test.js +0 -109
  226. package/dist/testing/app-test.js.map +0 -1
  227. package/dist/testing/in-memory-bus.d.ts +0 -19
  228. package/dist/testing/in-memory-bus.d.ts.map +0 -1
  229. package/dist/testing/in-memory-bus.js +0 -31
  230. package/dist/testing/in-memory-bus.js.map +0 -1
  231. package/dist/testing/in-memory-channel.d.ts +0 -32
  232. package/dist/testing/in-memory-channel.d.ts.map +0 -1
  233. package/dist/testing/in-memory-channel.js +0 -65
  234. package/dist/testing/in-memory-channel.js.map +0 -1
  235. package/dist/testing/in-memory-queue.d.ts +0 -24
  236. package/dist/testing/in-memory-queue.d.ts.map +0 -1
  237. package/dist/testing/in-memory-queue.js +0 -66
  238. package/dist/testing/in-memory-queue.js.map +0 -1
  239. package/dist/testing/in-memory-repository.d.ts +0 -44
  240. package/dist/testing/in-memory-repository.d.ts.map +0 -1
  241. package/dist/testing/in-memory-repository.js +0 -60
  242. package/dist/testing/in-memory-repository.js.map +0 -1
  243. package/dist/testing/index.d.ts +0 -6
  244. package/dist/testing/index.d.ts.map +0 -1
  245. package/dist/testing/index.js +0 -6
  246. package/dist/testing/index.js.map +0 -1
  247. /package/dist/{domain/cow-draft.d.ts → cow-draft.d.ts} +0 -0
  248. /package/dist/{domain/cow-draft.js → cow-draft.js} +0 -0
  249. /package/dist/{core/result.d.ts → result.d.ts} +0 -0
  250. /package/dist/{core/result.js → result.js} +0 -0
  251. /package/dist/{core/standard-schema.js → standard-schema.js} +0 -0
@@ -1,89 +0,0 @@
1
- import type { UseCaseBag } from '../app/index.js';
2
- import type { EventCatalog } from '../domain/index.js';
3
- export type RequiredPorts<Bag extends UseCaseBag, Routed = never> = {
4
- [K in keyof Bag]: Bag[K] extends {
5
- ports: infer P;
6
- } ? P[keyof P] : never;
7
- }[keyof Bag] | ChannelPorts<Routed>;
8
- type ChannelPorts<Routed> = Routed extends {
9
- ports: infer P;
10
- } ? P[keyof P] : never;
11
- export type RequiredCatalogs<Bag extends UseCaseBag, Routed = never> = {
12
- [K in keyof Bag]: (Bag[K] extends {
13
- publishes: readonly (infer C)[];
14
- } ? C : never) | (Bag[K] extends {
15
- catalog: infer C;
16
- } ? C : never);
17
- }[keyof Bag] | ChannelCatalogs<Routed>;
18
- type ChannelCatalogs<Routed> = Routed extends {
19
- catalog: infer C;
20
- } ? C : never;
21
- type RequiredChannels<Bag extends UseCaseBag> = {
22
- [K in keyof Bag]: Bag[K] extends {
23
- channels: readonly (infer Ch)[];
24
- } ? Ch : never;
25
- }[keyof Bag];
26
- type UsedByPort<Bag extends UseCaseBag, Routed, Token> = {
27
- [K in keyof Bag]: Bag[K] extends {
28
- ports: infer P;
29
- key: infer Id extends string;
30
- } ? Token extends P[keyof P] ? Id : never : never;
31
- }[keyof Bag] | ChannelUsedByPort<Routed, Token>;
32
- type ChannelUsedByPort<Routed, Token> = Routed extends {
33
- ports: infer P;
34
- catalog: EventCatalog<infer Key extends string>;
35
- } ? Token extends P[keyof P] ? Key : never : never;
36
- type UsedByCatalog<Bag extends UseCaseBag, Routed, Cat> = {
37
- [K in keyof Bag]: Bag[K] extends {
38
- key: infer Id extends string;
39
- } ? (Bag[K] extends {
40
- publishes: readonly (infer C)[];
41
- } ? Cat extends C ? Id : never : never) | (Bag[K] extends {
42
- catalog: infer C;
43
- } ? Cat extends C ? Id : never : never) : never;
44
- }[keyof Bag] | ChannelUsedByCatalog<Routed, Cat>;
45
- type ChannelUsedByCatalog<Routed, Cat> = Routed extends {
46
- catalog: infer C;
47
- } ? Cat extends C ? 'channel' : never : never;
48
- type UsedByChannel<Bag extends UseCaseBag, Ch> = {
49
- [K in keyof Bag]: Bag[K] extends {
50
- channels: readonly (infer C)[];
51
- key: infer Id extends string;
52
- } ? Ch extends C ? Id : never : never;
53
- }[keyof Bag];
54
- type PortAlias<Bag extends UseCaseBag, Routed, Token> = {
55
- [K in keyof Bag]: Bag[K] extends {
56
- ports: infer P;
57
- } ? {
58
- [A in keyof P]: [P[A]] extends [Token] ? [Token] extends [P[A]] ? A & string : never : never;
59
- }[keyof P] : never;
60
- }[keyof Bag] | ChannelPortAlias<Routed, Token>;
61
- type ChannelPortAlias<Routed, Token> = Routed extends {
62
- ports: infer P;
63
- } ? {
64
- [A in keyof P]: [P[A]] extends [Token] ? [Token] extends [P[A]] ? A & string : never : never;
65
- }[keyof P] : never;
66
- type PortDisplayName<Bag extends UseCaseBag, Routed, Token> = JoinUnion<PortAlias<Bag, Routed, Token>>;
67
- type CatalogKeyOf<T> = T extends EventCatalog<infer Key extends string, infer _Kind, infer _Events, infer _Ctx> ? Key : 'unknown';
68
- type CatalogKeyOfChannel<T> = T extends {
69
- catalog: EventCatalog<infer Key extends string, infer _Kind, infer _Events, infer _Ctx>;
70
- } ? Key : 'unknown';
71
- type UnionToIntersection<U> = (U extends unknown ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
72
- type LastOf<U> = UnionToIntersection<U extends unknown ? (x: U) => void : never> extends (x: infer L) => void ? L : never;
73
- /** Collapse `'a' | 'b'` into `'a, b'` so one missing port is one message. */
74
- type JoinUnion<U extends string> = [U] extends [never] ? never : LastOf<U> extends infer L extends string ? Exclude<U, L> extends infer Rest extends string ? [Rest] extends [never] ? L : `${JoinUnion<Rest>}, ${L}` : L : never;
75
- type MissingPortMessages<Bag extends UseCaseBag, Provided, Routed> = Exclude<RequiredPorts<Bag, Routed>, Provided> extends infer T ? T extends unknown ? `hexok: unprovided port "${PortDisplayName<Bag, Routed, T>}" (used by ${JoinUnion<UsedByPort<Bag, Routed, T>>}). Call .provide(token, impl) before .build()` : never : never;
76
- type MissingCatalogMessages<Bag extends UseCaseBag, Bound, Routed> = Exclude<RequiredCatalogs<Bag, Routed>, Bound> extends infer T ? T extends unknown ? `hexok: unbound catalog "${CatalogKeyOf<T>}" (used by ${JoinUnion<UsedByCatalog<Bag, Routed, T>>}). Call .bind(...) before .build()` : never : never;
77
- type MissingChannelMessages<Bag extends UseCaseBag, Routed> = Exclude<RequiredChannels<Bag>, Routed> extends infer T ? T extends unknown ? `hexok: unrouted channel "${CatalogKeyOfChannel<T>}" (used by ${JoinUnion<UsedByChannel<Bag, T>>}). Call .route(...) before .build()` : never : never;
78
- /** Compile-time type of `build` when a required port, catalog, or channel is still missing. */
79
- export type MissingMessages<Bag extends UseCaseBag, Provided, Bound, Routed = never> = MissingPortMessages<Bag, Provided, Routed> | MissingCatalogMessages<Bag, Bound, Routed> | MissingChannelMessages<Bag, Routed>;
80
- /** Compile-time error when `provide` is called twice for the same token. */
81
- export type DuplicatePortError = `hexok: port already provided`;
82
- /** Compile-time error when `bind` is called twice for the same catalog. */
83
- export type DuplicateCatalogError<N extends string = string> = string extends N ? `hexok: catalog already bound` : `hexok: catalog "${N}" already bound`;
84
- /** Compile-time error when `route` is called twice for the same channel catalog. */
85
- export type DuplicateChannelError<N extends string = string> = string extends N ? `hexok: channel already routed` : `hexok: catalog "${N}" already routed`;
86
- /** Compile-time error when `route` is given a catalog that is not a bus. */
87
- export type ChannelKindError<Key extends string = string, Kind extends string = string> = `hexok: channel catalog "${Key}" is kind "${Kind}". Channels require a bus catalog.`;
88
- export {};
89
- //# sourceMappingURL=completeness.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"completeness.d.ts","sourceRoot":"","sources":["../../src/runtime/completeness.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=completeness.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"completeness.js","sourceRoot":"","sources":["../../src/runtime/completeness.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- import type { AnyEventCatalog, DomainEvent, Envelope } from '../domain/index.js';
2
- export declare function isEnvelope(value: unknown): value is Envelope;
3
- /** Wrap a domain event in an envelope, or pass an envelope through. The event must belong to one of `catalogs`. */
4
- export declare function wrapEvent(event: DomainEvent | Envelope, catalogs: readonly AnyEventCatalog[], requestCtx?: unknown): Envelope;
5
- /** Request ctx plus `correlationId` inherited from an incoming envelope when ctx omits it. */
6
- export declare function tracingCtx(requestCtx: unknown, incoming?: Envelope): unknown;
7
- //# sourceMappingURL=envelope.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/runtime/envelope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,QAAQ,EAET,MAAM,oBAAoB,CAAC;AAE5B,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAU5D;AAED,mHAAmH;AACnH,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,GAAG,QAAQ,EAC7B,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,UAAU,CAAC,EAAE,OAAO,GACnB,QAAQ,CA4BV;AA8BD,8FAA8F;AAC9F,wBAAgB,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAc5E"}
@@ -1,69 +0,0 @@
1
- export function isEnvelope(value) {
2
- return (typeof value === 'object' &&
3
- value !== null &&
4
- 'key' in value &&
5
- 'payload' in value &&
6
- 'catalog' in value &&
7
- 'kind' in value &&
8
- 'occurredAt' in value);
9
- }
10
- /** Wrap a domain event in an envelope, or pass an envelope through. The event must belong to one of `catalogs`. */
11
- export function wrapEvent(event, catalogs, requestCtx) {
12
- if (isEnvelope(event))
13
- return copyTracing(event, requestCtx, false);
14
- const Ctor = event.constructor;
15
- const catalog = catalogs.find((item) => item.list().some((registered) => registered === Ctor));
16
- if (!catalog) {
17
- throw new Error(`hexok: event "${Ctor.key}" is not in a bound catalog declared by publishes`);
18
- }
19
- const envelope = {
20
- key: Ctor.key,
21
- payload: event.payload,
22
- catalog: catalog.key,
23
- kind: catalog.kind,
24
- occurredAt: new Date(),
25
- meta: {},
26
- };
27
- if (catalog.hasCtx) {
28
- if (!('ctx' in event)) {
29
- throw new Error(`hexok: event "${Ctor.key}" is missing ctx for catalog "${catalog.key}"`);
30
- }
31
- envelope.ctx = event.ctx;
32
- }
33
- return copyTracing(envelope, requestCtx, true);
34
- }
35
- function stringField(value, key) {
36
- if (typeof value !== 'object' || value === null)
37
- return undefined;
38
- const field = value[key];
39
- return typeof field === 'string' ? field : undefined;
40
- }
41
- function copyTracing(envelope, requestCtx, overwrite) {
42
- const correlationId = stringField(requestCtx, 'correlationId');
43
- const causationId = stringField(requestCtx, 'causationId');
44
- if (correlationId !== undefined &&
45
- (overwrite || envelope.correlationId === undefined)) {
46
- envelope.correlationId = correlationId;
47
- }
48
- if (causationId !== undefined &&
49
- (overwrite || envelope.causationId === undefined)) {
50
- envelope.causationId = causationId;
51
- }
52
- return envelope;
53
- }
54
- /** Request ctx plus `correlationId` inherited from an incoming envelope when ctx omits it. */
55
- export function tracingCtx(requestCtx, incoming) {
56
- const correlationId = stringField(requestCtx, 'correlationId') ?? incoming?.correlationId;
57
- const causationId = stringField(requestCtx, 'causationId');
58
- if (correlationId === undefined && causationId === undefined) {
59
- return requestCtx;
60
- }
61
- return {
62
- ...(typeof requestCtx === 'object' && requestCtx !== null
63
- ? requestCtx
64
- : {}),
65
- ...(correlationId !== undefined ? { correlationId } : {}),
66
- ...(causationId !== undefined ? { causationId } : {}),
67
- };
68
- }
69
- //# sourceMappingURL=envelope.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/runtime/envelope.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { EventUseCaseCtor } from '../app/index.js';
2
- import type { AnyEventCatalog, EventAdapter } from '../domain/index.js';
3
- import { type InvokeDeps } from './invoke.js';
4
- export declare function startHandlers(bound: Map<AnyEventCatalog, EventAdapter>, handlers: Map<string, EventUseCaseCtor[]>, deps: InvokeDeps): Promise<void>;
5
- export declare function stopAdapters(bound: Map<AnyEventCatalog, EventAdapter>): Promise<void>;
6
- //# sourceMappingURL=events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/runtime/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,aAAa,CAAC;AAE3D,wBAAsB,aAAa,CACjC,KAAK,EAAE,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,EACzC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,EACzC,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,IAAI,CAAC,CA4Cf;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,GACxC,OAAO,CAAC,IAAI,CAAC,CAIf"}
@@ -1,48 +0,0 @@
1
- import { invokeEvent } from './invoke.js';
2
- export async function startHandlers(bound, handlers, deps) {
3
- for (const [catalog, adapter] of bound) {
4
- for (const eventClass of catalog.list()) {
5
- const handlerKey = `${catalog.key}:${eventClass.key}`;
6
- const list = handlers.get(handlerKey) ?? [];
7
- if (list.length === 0)
8
- continue;
9
- if (adapter.kind === 'bus') {
10
- adapter.subscribe(eventClass.key, async (envelope) => {
11
- for (const ctor of list) {
12
- await invokeEvent(ctor, envelope, deps);
13
- }
14
- });
15
- continue;
16
- }
17
- const groups = new Map();
18
- for (const ctor of list) {
19
- if (ctor.group === undefined) {
20
- throw new Error(`hexok: queue handler "${ctor.key}" requires static group`);
21
- }
22
- const group = groups.get(ctor.group) ?? [];
23
- group.push(ctor);
24
- groups.set(ctor.group, group);
25
- }
26
- for (const [group, ctors] of groups) {
27
- adapter.consume(eventClass.key, group, async (envelope, { attempt, ack, nack }) => {
28
- try {
29
- for (const ctor of ctors) {
30
- await invokeEvent(ctor, envelope, deps, { attempt });
31
- }
32
- await ack();
33
- }
34
- catch (error) {
35
- await nack();
36
- throw error;
37
- }
38
- });
39
- }
40
- }
41
- }
42
- }
43
- export async function stopAdapters(bound) {
44
- for (const adapter of bound.values()) {
45
- await adapter.stop?.();
46
- }
47
- }
48
- //# sourceMappingURL=events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/runtime/events.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAyC,EACzC,QAAyC,EACzC,IAAgB;IAEhB,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC;QACvC,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAChC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC3B,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;oBACnD,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;wBACxB,MAAM,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC1C,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC7B,MAAM,IAAI,KAAK,CACb,yBAAyB,IAAI,CAAC,GAAG,yBAAyB,CAC3D,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC3C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAChC,CAAC;YACD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;gBACpC,OAAO,CAAC,OAAO,CACb,UAAU,CAAC,GAAG,EACd,KAAK,EACL,KAAK,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;oBACzC,IAAI,CAAC;wBACH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACzB,MAAM,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;wBACvD,CAAC;wBACD,MAAM,GAAG,EAAE,CAAC;oBACd,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,IAAI,EAAE,CAAC;wBACb,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAyC;IAEzC,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACrC,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;IACzB,CAAC;AACH,CAAC"}
@@ -1,3 +0,0 @@
1
- /** Map a coded error to HTTP status. `NOT_FOUND` 404, `VALIDATION` 400, `FORBIDDEN` 403, `UNAUTHORIZED` 401; others 409. */
2
- export declare function httpStatus(code: string): number;
3
- //# sourceMappingURL=http-status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-status.d.ts","sourceRoot":"","sources":["../../src/runtime/http-status.ts"],"names":[],"mappings":"AAOA,4HAA4H;AAC5H,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C"}
@@ -1,11 +0,0 @@
1
- const BY_CODE = {
2
- NOT_FOUND: 404,
3
- VALIDATION: 400,
4
- FORBIDDEN: 403,
5
- UNAUTHORIZED: 401,
6
- };
7
- /** Map a coded error to HTTP status. `NOT_FOUND` 404, `VALIDATION` 400, `FORBIDDEN` 403, `UNAUTHORIZED` 401; others 409. */
8
- export function httpStatus(code) {
9
- return BY_CODE[code] ?? 409;
10
- }
11
- //# sourceMappingURL=http-status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-status.js","sourceRoot":"","sources":["../../src/runtime/http-status.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAA2B;IACtC,SAAS,EAAE,GAAG;IACd,UAAU,EAAE,GAAG;IACf,SAAS,EAAE,GAAG;IACd,YAAY,EAAE,GAAG;CAClB,CAAC;AAEF,4HAA4H;AAC5H,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AAC9B,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { ExternalUseCaseCtor } from '../app/index.js';
2
- import { type InvokeDeps } from './invoke.js';
3
- export declare function createFetchHandler(externalUseCases: Map<string, ExternalUseCaseCtor>, deps: InvokeDeps): (request: Request) => Promise<Response>;
4
- //# sourceMappingURL=http.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/runtime/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,OAAO,EAAE,KAAK,UAAU,EAAkB,MAAM,aAAa,CAAC;AAE9D,wBAAgB,kBAAkB,CAChC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAClD,IAAI,EAAE,UAAU,GACf,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAyDzC"}
@@ -1,58 +0,0 @@
1
- import { CodedError } from '../core/index.js';
2
- import { httpStatus } from './http-status.js';
3
- import { invokeExternal } from './invoke.js';
4
- export function createFetchHandler(externalUseCases, deps) {
5
- return async (request) => {
6
- const url = new URL(request.url);
7
- if (request.method !== 'POST' || !url.pathname.startsWith('/rpc/')) {
8
- return json({ ok: false, error: { code: 'NOT_FOUND', status: 404 } }, 404);
9
- }
10
- const key = url.pathname.slice('/rpc/'.length).split('/').join('.');
11
- const ctor = externalUseCases.get(key);
12
- if (ctor === undefined) {
13
- return json({ ok: false, error: { code: 'NOT_FOUND', status: 404, message: key } }, 404);
14
- }
15
- let body = {};
16
- try {
17
- body = (await request.json());
18
- }
19
- catch {
20
- return json({
21
- ok: false,
22
- error: { code: 'VALIDATION', status: 400, message: 'Invalid JSON' },
23
- }, 400);
24
- }
25
- try {
26
- const ctx = deps.ctxFrom
27
- ? await deps.ctxFrom({ request, ctx: deps.defaultCtx })
28
- : deps.defaultCtx;
29
- const output = await invokeExternal(ctor, body.input, deps, {
30
- ctx,
31
- request,
32
- });
33
- return json({ ok: true, output });
34
- }
35
- catch (error) {
36
- if (error instanceof CodedError) {
37
- const status = httpStatus(error.code);
38
- return json({
39
- ok: false,
40
- error: {
41
- code: error.code,
42
- status,
43
- message: error.message,
44
- ...(error.data !== undefined ? { data: error.data } : {}),
45
- },
46
- }, status);
47
- }
48
- throw error;
49
- }
50
- };
51
- }
52
- function json(body, status = 200) {
53
- return new Response(JSON.stringify(body), {
54
- status,
55
- headers: { 'content-type': 'application/json' },
56
- });
57
- }
58
- //# sourceMappingURL=http.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/runtime/http.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- export { type AdapterFor, App, AppBuilder, type AppInstance } from './app.js';
2
- export type { ChannelGateway, ChannelGateways, } from './channel.js';
3
- export type { NestedClient } from './client.js';
4
- export type { ChannelKindError, DuplicateCatalogError, DuplicateChannelError, DuplicatePortError, MissingMessages, } from './completeness.js';
5
- export { wrapEvent } from './envelope.js';
6
- export { httpStatus } from './http-status.js';
7
- export { type Handler, type HandlerCtx, type Interceptor, requireCapability, } from './interceptor.js';
8
- export type { ApiMiddleware, RpcMiddleware } from './middleware.js';
9
- export { deriveRpc, type RpcContract, type RpcRoute, rpcPath, } from './rpc.js';
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAC9E,YAAY,EACV,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EACV,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EACL,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,OAAO,GACR,MAAM,UAAU,CAAC"}
@@ -1,6 +0,0 @@
1
- export { App, AppBuilder } from './app.js';
2
- export { wrapEvent } from './envelope.js';
3
- export { httpStatus } from './http-status.js';
4
- export { requireCapability, } from './interceptor.js';
5
- export { deriveRpc, rpcPath, } from './rpc.js';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,GAAG,EAAE,UAAU,EAAoB,MAAM,UAAU,CAAC;AAa9E,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAIL,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EAGT,OAAO,GACR,MAAM,UAAU,CAAC"}
@@ -1,61 +0,0 @@
1
- import type { UseCaseClass } from '../app/index.js';
2
- import type { Envelope, PortToken } from '../domain/index.js';
3
- /** Structural execute/event ctx so interceptors can wrap `next` without `as never`. */
4
- export type HandlerCtx = {
5
- /** Port impls aliased as the use case declared them (`ports.incidents`). */
6
- ports: Record<string, unknown>;
7
- /** Request context from `.ctx()` or a per-call override. */
8
- ctx: unknown;
9
- /** Error factories from the use-case error map. */
10
- errors: Record<string, (data?: unknown) => never>;
11
- /** Abort signal for this invocation. */
12
- signal: AbortSignal;
13
- /** Enqueue an event. Flushed only if `execute` returns. */
14
- publish(event: unknown): void;
15
- /** Invoke an ExternalUseCase or InternalUseCase without re-entering interceptors or App.use middleware. */
16
- run?(useCase: unknown, input: unknown): Promise<unknown>;
17
- /** Parsed API input. Absent on event handlers. */
18
- input?: unknown;
19
- /** Envelope for event handlers. Absent on external and internal use cases. */
20
- event?: unknown;
21
- /** Queue delivery attempt. Set only for queue handlers. */
22
- attempt?: number;
23
- };
24
- /** Interceptor `next` function. Receives the structural execute or event ctx. */
25
- export type Handler = (ctx: HandlerCtx) => Promise<unknown>;
26
- /**
27
- * Extension seam. First registered is **outer**.
28
- * Register authorize before unit of work so a forbidden call never opens a transaction.
29
- *
30
- * ```ts
31
- * class AuthorizeInterceptor implements Interceptor {
32
- * readonly key = 'authorize'
33
- * aroundUseCase(uc, next) {
34
- * return async (ctx) => {
35
- * const policy = (uc as { policy?: string }).policy
36
- * if (policy) check(ctx, policy)
37
- * return next(ctx)
38
- * }
39
- * }
40
- * }
41
- * ```
42
- *
43
- * `aroundPublish`: interceptors that swallow `next()` **drop** the event.
44
- * Publish flushes after the use-case onion, so a successful unit-of-work
45
- * commit naturally yields after-commit publish.
46
- */
47
- export interface Interceptor {
48
- /** Unique registration id. Duplicate keys throw. */
49
- readonly key: string;
50
- /** Wrap external, internal, and event `execute`. Nested `run` does not re-enter this hook. */
51
- aroundUseCase?(uc: UseCaseClass, next: Handler): Handler;
52
- /** Wrap a provided port impl once at `build`. First registered is outer, same as the other hooks. */
53
- aroundAdapter?(port: PortToken<unknown>, impl: unknown): unknown;
54
- /** Wrap catalog publish after execute returns. Swallowing `next()` drops the event. */
55
- aroundPublish?(envelope: Envelope, next: () => Promise<void>): Promise<void>;
56
- /** Wrap one event-handler invocation. External and internal use cases never call this hook. */
57
- aroundDispatch?(envelope: Envelope, uc: UseCaseClass, next: () => Promise<void>): Promise<void>;
58
- }
59
- /** Throw if a port impl is missing `bindTo`/`fork`. `provide()` calls this when the token flags the capability. */
60
- export declare function requireCapability(token: PortToken<unknown>, impl: unknown, method: 'bindTo' | 'fork', label: 'Transactional' | 'RequestScoped'): void;
61
- //# sourceMappingURL=interceptor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../../src/runtime/interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE9D,uFAAuF;AACvF,MAAM,MAAM,UAAU,GAAG;IACvB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,4DAA4D;IAC5D,GAAG,EAAE,OAAO,CAAC;IACb,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC;IAClD,wCAAwC;IACxC,MAAM,EAAE,WAAW,CAAC;IACpB,2DAA2D;IAC3D,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,2GAA2G;IAC3G,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD,kDAAkD;IAClD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,8FAA8F;IAC9F,aAAa,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACzD,qGAAqG;IACrG,aAAa,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACjE,uFAAuF;IACvF,aAAa,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,+FAA+F;IAC/F,cAAc,CAAC,CACb,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACxB,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED,mHAAmH;AACnH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,EACzB,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,QAAQ,GAAG,MAAM,EACzB,KAAK,EAAE,eAAe,GAAG,eAAe,GACvC,IAAI,CAMN"}
@@ -1,7 +0,0 @@
1
- /** Throw if a port impl is missing `bindTo`/`fork`. `provide()` calls this when the token flags the capability. */
2
- export function requireCapability(token, impl, method, label) {
3
- if (typeof impl[method] !== 'function') {
4
- throw new Error(`hexok: ${token.key} is ${label.toLowerCase()} but the adapter does not implement ${label}`);
5
- }
6
- }
7
- //# sourceMappingURL=interceptor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../../src/runtime/interceptor.ts"],"names":[],"mappings":"AAkEA,mHAAmH;AACnH,MAAM,UAAU,iBAAiB,CAC/B,KAAyB,EACzB,IAAa,EACb,MAAyB,EACzB,KAAwC;IAExC,IAAI,OAAQ,IAAiC,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CACb,UAAU,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,WAAW,EAAE,uCAAuC,KAAK,EAAE,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,34 +0,0 @@
1
- import { type EventUseCaseCtor, type ExternalUseCaseCtor } from '../app/index.js';
2
- import type { AnyEventCatalog, Envelope, EventAdapter, PortToken } from '../domain/index.js';
3
- import type { Interceptor } from './interceptor.js';
4
- import type { ApiMiddleware } from './middleware.js';
5
- export type InvokeDeps = {
6
- ports: Map<PortToken<unknown>, unknown>;
7
- catalogs: Map<AnyEventCatalog, EventAdapter>;
8
- interceptors: Interceptor[];
9
- middleware: ApiMiddleware[];
10
- defaultCtx: unknown;
11
- onFlush?: (envelope: Envelope) => void;
12
- channels?: Record<string, unknown>;
13
- ctxFrom?: (args: {
14
- request: Request;
15
- ctx: unknown;
16
- }) => unknown | Promise<unknown>;
17
- started: {
18
- value: boolean;
19
- };
20
- handlerKeys: Set<string>;
21
- };
22
- export declare function invokeExternal(ctor: ExternalUseCaseCtor, input: unknown, deps: InvokeDeps, opts?: {
23
- ctx?: unknown;
24
- signal?: AbortSignal;
25
- request?: Request;
26
- }): Promise<unknown>;
27
- export declare function invokeEvent(ctor: EventUseCaseCtor, envelope: Envelope, deps: InvokeDeps, opts?: {
28
- ctx?: unknown;
29
- signal?: AbortSignal;
30
- attempt?: number;
31
- }): Promise<void>;
32
- export declare function aliasPorts(aliases: Record<string, PortToken<unknown>>, provided: Map<PortToken<unknown>, unknown>): Record<string, unknown>;
33
- export declare function publishNow(envelope: Envelope, deps: InvokeDeps): Promise<void>;
34
- //# sourceMappingURL=invoke.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../src/runtime/invoke.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EAKzB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,SAAS,EACV,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAW,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACxC,QAAQ,EAAE,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAC7C,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,EAAE,OAAO,CAAC;KACd,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAC5B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1B,CAAC;AAyEF,wBAAsB,cAAc,CAClC,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,UAAU,EAChB,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAChE,OAAO,CAAC,OAAO,CAAC,CAiDlB;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,UAAU,EAChB,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/D,OAAO,CAAC,IAAI,CAAC,CAuCf;AAMD,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAC3C,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,GACzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUzB;AA6FD,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,IAAI,CAAC,CAGf"}