@spine-event-engine/server 2.0.0-snapshot.2 → 2.0.0-snapshot.21

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 (227) hide show
  1. package/README.md +225 -518
  2. package/REFERENCE.md +498 -49
  3. package/dist/browser/browser-server.d.ts +95 -0
  4. package/dist/browser/browser-server.d.ts.map +1 -0
  5. package/dist/{server → browser}/browser-server.js +93 -7
  6. package/dist/browser/browser-server.js.map +1 -0
  7. package/dist/browser/durable-subscription-bindings.d.ts.map +1 -0
  8. package/dist/browser/durable-subscription-bindings.js.map +1 -0
  9. package/dist/browser/index.d.ts +12 -0
  10. package/dist/browser/index.d.ts.map +1 -0
  11. package/dist/browser/index.js +24 -0
  12. package/dist/browser/index.js.map +1 -0
  13. package/dist/browser/options.d.ts +183 -0
  14. package/dist/browser/options.d.ts.map +1 -0
  15. package/dist/browser/options.js +15 -0
  16. package/dist/browser/options.js.map +1 -0
  17. package/dist/bus/command-bus.d.ts +2 -0
  18. package/dist/bus/command-bus.d.ts.map +1 -1
  19. package/dist/bus/command-bus.js +36 -1
  20. package/dist/bus/command-bus.js.map +1 -1
  21. package/dist/bus/event-dispatcher-registry.d.ts +2 -2
  22. package/dist/bus/event-dispatcher-registry.js +3 -3
  23. package/dist/bus/event-dispatcher-registry.js.map +1 -1
  24. package/dist/context/bounded-context.d.ts +238 -83
  25. package/dist/context/bounded-context.d.ts.map +1 -1
  26. package/dist/context/bounded-context.js +1083 -286
  27. package/dist/context/bounded-context.js.map +1 -1
  28. package/dist/context/effective-tenant.d.ts +9 -0
  29. package/dist/context/effective-tenant.d.ts.map +1 -0
  30. package/dist/context/effective-tenant.js +58 -0
  31. package/dist/context/effective-tenant.js.map +1 -0
  32. package/dist/context/entity-inbox.d.ts.map +1 -1
  33. package/dist/context/entity-inbox.js +24 -17
  34. package/dist/context/entity-inbox.js.map +1 -1
  35. package/dist/context/local-inbox-handoff.d.ts +7 -3
  36. package/dist/context/local-inbox-handoff.d.ts.map +1 -1
  37. package/dist/context/local-inbox-handoff.js +32 -26
  38. package/dist/context/local-inbox-handoff.js.map +1 -1
  39. package/dist/context/projection-handoff.d.ts.map +1 -1
  40. package/dist/context/projection-handoff.js +36 -31
  41. package/dist/context/projection-handoff.js.map +1 -1
  42. package/dist/context/tenant-index.d.ts.map +1 -1
  43. package/dist/context/tenant-index.js +72 -2
  44. package/dist/context/tenant-index.js.map +1 -1
  45. package/dist/delivery/delivery-ports.d.ts +14 -4
  46. package/dist/delivery/delivery-ports.d.ts.map +1 -1
  47. package/dist/delivery/delivery.d.ts +19 -21
  48. package/dist/delivery/delivery.d.ts.map +1 -1
  49. package/dist/delivery/delivery.js +541 -158
  50. package/dist/delivery/delivery.js.map +1 -1
  51. package/dist/delivery/inbox-storage.d.ts +12 -3
  52. package/dist/delivery/inbox-storage.d.ts.map +1 -1
  53. package/dist/delivery/inbox-storage.js +160 -67
  54. package/dist/delivery/inbox-storage.js.map +1 -1
  55. package/dist/delivery/inbox.d.ts +9 -0
  56. package/dist/delivery/inbox.d.ts.map +1 -1
  57. package/dist/delivery/inbox.js +11 -0
  58. package/dist/delivery/inbox.js.map +1 -1
  59. package/dist/delivery/sharded-work-registry.d.ts.map +1 -1
  60. package/dist/delivery/sharded-work-registry.js +2 -1
  61. package/dist/delivery/sharded-work-registry.js.map +1 -1
  62. package/dist/entity/entity-metadata.d.ts +14 -5
  63. package/dist/entity/entity-metadata.d.ts.map +1 -1
  64. package/dist/entity/entity-metadata.js +38 -2
  65. package/dist/entity/entity-metadata.js.map +1 -1
  66. package/dist/entity/entity-storage-descriptor.d.ts +25 -5
  67. package/dist/entity/entity-storage-descriptor.d.ts.map +1 -1
  68. package/dist/entity/entity-storage-descriptor.js +69 -23
  69. package/dist/entity/entity-storage-descriptor.js.map +1 -1
  70. package/dist/entity/entity-transaction.d.ts +46 -42
  71. package/dist/entity/entity-transaction.d.ts.map +1 -1
  72. package/dist/entity/entity-transaction.js +130 -35
  73. package/dist/entity/entity-transaction.js.map +1 -1
  74. package/dist/entity/entity.d.ts +243 -98
  75. package/dist/entity/entity.d.ts.map +1 -1
  76. package/dist/entity/entity.js +405 -226
  77. package/dist/entity/entity.js.map +1 -1
  78. package/dist/entity/spec-scanner.d.ts +13 -1
  79. package/dist/entity/spec-scanner.d.ts.map +1 -1
  80. package/dist/entity/spec-scanner.js +20 -3
  81. package/dist/entity/spec-scanner.js.map +1 -1
  82. package/dist/handler/command-registration-readiness.d.ts +6 -6
  83. package/dist/handler/command-registration-readiness.d.ts.map +1 -1
  84. package/dist/handler/command-registration-readiness.js +4 -2
  85. package/dist/handler/command-registration-readiness.js.map +1 -1
  86. package/dist/handler/declared-rejections.d.ts +11 -0
  87. package/dist/handler/declared-rejections.d.ts.map +1 -0
  88. package/dist/handler/declared-rejections.js +34 -0
  89. package/dist/handler/declared-rejections.js.map +1 -0
  90. package/dist/handler/event-registration-readiness.d.ts +13 -56
  91. package/dist/handler/event-registration-readiness.d.ts.map +1 -1
  92. package/dist/handler/event-registration-readiness.js +23 -43
  93. package/dist/handler/event-registration-readiness.js.map +1 -1
  94. package/dist/handler/generated-handler-registry.d.ts +72 -33
  95. package/dist/handler/generated-handler-registry.d.ts.map +1 -1
  96. package/dist/handler/generated-handler-registry.js +421 -43
  97. package/dist/handler/generated-handler-registry.js.map +1 -1
  98. package/dist/handler/generated-registry-discovery.d.ts.map +1 -1
  99. package/dist/handler/generated-registry-discovery.js +2 -4
  100. package/dist/handler/generated-registry-discovery.js.map +1 -1
  101. package/dist/handler/handler-decorators.d.ts +91 -37
  102. package/dist/handler/handler-decorators.d.ts.map +1 -1
  103. package/dist/handler/handler-decorators.js +124 -31
  104. package/dist/handler/handler-decorators.js.map +1 -1
  105. package/dist/handler/handler-metadata.d.ts +105 -60
  106. package/dist/handler/handler-metadata.d.ts.map +1 -1
  107. package/dist/handler/handler-metadata.js +275 -57
  108. package/dist/handler/handler-metadata.js.map +1 -1
  109. package/dist/handler/registration-readiness-metadata.d.ts +4 -0
  110. package/dist/handler/registration-readiness-metadata.d.ts.map +1 -1
  111. package/dist/handler/registration-readiness-metadata.js +84 -2
  112. package/dist/handler/registration-readiness-metadata.js.map +1 -1
  113. package/dist/handler/standalone.d.ts +25 -0
  114. package/dist/handler/standalone.d.ts.map +1 -0
  115. package/dist/handler/standalone.js +38 -0
  116. package/dist/handler/standalone.js.map +1 -0
  117. package/dist/index.d.ts +9 -9
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.js +3 -3
  120. package/dist/index.js.map +1 -1
  121. package/dist/repository/command-routing.d.ts +63 -10
  122. package/dist/repository/command-routing.d.ts.map +1 -1
  123. package/dist/repository/command-routing.js +41 -8
  124. package/dist/repository/command-routing.js.map +1 -1
  125. package/dist/repository/event-routing.d.ts +64 -9
  126. package/dist/repository/event-routing.d.ts.map +1 -1
  127. package/dist/repository/event-routing.js +42 -7
  128. package/dist/repository/event-routing.js.map +1 -1
  129. package/dist/repository/primitive-id.d.ts +12 -23
  130. package/dist/repository/primitive-id.d.ts.map +1 -1
  131. package/dist/repository/primitive-id.js +2 -27
  132. package/dist/repository/primitive-id.js.map +1 -1
  133. package/dist/repository/repository.d.ts +317 -87
  134. package/dist/repository/repository.d.ts.map +1 -1
  135. package/dist/repository/repository.js +3746 -856
  136. package/dist/repository/repository.js.map +1 -1
  137. package/dist/repository/state-update-routing.d.ts +67 -8
  138. package/dist/repository/state-update-routing.d.ts.map +1 -1
  139. package/dist/repository/state-update-routing.js +45 -6
  140. package/dist/repository/state-update-routing.js.map +1 -1
  141. package/dist/runtime/runtime.js +1 -1
  142. package/dist/runtime/runtime.js.map +1 -1
  143. package/dist/runtime/signal-metadata.d.ts +22 -47
  144. package/dist/runtime/signal-metadata.d.ts.map +1 -1
  145. package/dist/runtime/signal-metadata.js +34 -69
  146. package/dist/runtime/signal-metadata.js.map +1 -1
  147. package/dist/runtime/signal-publisher.d.ts +144 -0
  148. package/dist/runtime/signal-publisher.d.ts.map +1 -0
  149. package/dist/runtime/signal-publisher.js +248 -0
  150. package/dist/runtime/signal-publisher.js.map +1 -0
  151. package/dist/runtime/standalone-handler-runtime.d.ts +130 -0
  152. package/dist/runtime/standalone-handler-runtime.d.ts.map +1 -0
  153. package/dist/runtime/standalone-handler-runtime.js +382 -0
  154. package/dist/runtime/standalone-handler-runtime.js.map +1 -0
  155. package/dist/server/environment-attachment.d.ts.map +1 -1
  156. package/dist/server/environment-attachment.js +2 -1
  157. package/dist/server/environment-attachment.js.map +1 -1
  158. package/dist/server/environment-delivery-worker.d.ts.map +1 -1
  159. package/dist/server/environment-delivery-worker.js +21 -12
  160. package/dist/server/environment-delivery-worker.js.map +1 -1
  161. package/dist/server/managed-server-application.d.ts +4 -1
  162. package/dist/server/managed-server-application.d.ts.map +1 -1
  163. package/dist/server/managed-server-application.js +2 -2
  164. package/dist/server/managed-server-application.js.map +1 -1
  165. package/dist/server/node-coordinator.js +2 -2
  166. package/dist/server/node-coordinator.js.map +1 -1
  167. package/dist/server/server-log.d.ts.map +1 -1
  168. package/dist/server/server-log.js +4 -0
  169. package/dist/server/server-log.js.map +1 -1
  170. package/dist/server/server.d.ts +9 -177
  171. package/dist/server/server.d.ts.map +1 -1
  172. package/dist/server/server.js +428 -178
  173. package/dist/server/server.js.map +1 -1
  174. package/dist/services/query-reader.d.ts +19 -0
  175. package/dist/services/query-reader.d.ts.map +1 -0
  176. package/dist/services/query-reader.js +43 -0
  177. package/dist/services/query-reader.js.map +1 -0
  178. package/dist/services/registered-targets.d.ts +73 -0
  179. package/dist/services/registered-targets.d.ts.map +1 -0
  180. package/dist/services/registered-targets.js +127 -0
  181. package/dist/services/registered-targets.js.map +1 -0
  182. package/dist/services/spine-services.d.ts +26 -12
  183. package/dist/services/spine-services.d.ts.map +1 -1
  184. package/dist/services/spine-services.js +1047 -969
  185. package/dist/services/spine-services.js.map +1 -1
  186. package/dist/spi/delivery.d.ts +5 -0
  187. package/dist/spi/delivery.d.ts.map +1 -0
  188. package/dist/spi/delivery.js +18 -0
  189. package/dist/spi/delivery.js.map +1 -0
  190. package/dist/spi/handler-registry.d.ts +8 -0
  191. package/dist/spi/handler-registry.d.ts.map +1 -0
  192. package/dist/spi/handler-registry.js +15 -0
  193. package/dist/spi/handler-registry.js.map +1 -0
  194. package/dist/stand/stand.d.ts +73 -1
  195. package/dist/stand/stand.d.ts.map +1 -1
  196. package/dist/stand/stand.js +221 -48
  197. package/dist/stand/stand.js.map +1 -1
  198. package/dist/stand/subscription-observer.d.ts.map +1 -1
  199. package/dist/stand/subscription-observer.js +5 -12
  200. package/dist/stand/subscription-observer.js.map +1 -1
  201. package/dist/stand/subscription-registry.js +1 -1
  202. package/dist/stand/subscription-registry.js.map +1 -1
  203. package/dist/testing/index.d.ts +25 -3
  204. package/dist/testing/index.d.ts.map +1 -1
  205. package/dist/testing/index.js +23 -3
  206. package/dist/testing/index.js.map +1 -1
  207. package/dist/tsconfig.tsbuildinfo +1 -1
  208. package/package.json +33 -23
  209. package/dist/handler/build-time-handler-analyzer.d.ts +0 -150
  210. package/dist/handler/build-time-handler-analyzer.d.ts.map +0 -1
  211. package/dist/handler/build-time-handler-analyzer.js +0 -1101
  212. package/dist/handler/build-time-handler-analyzer.js.map +0 -1
  213. package/dist/handler/generated-registry-writer.d.ts +0 -58
  214. package/dist/handler/generated-registry-writer.d.ts.map +0 -1
  215. package/dist/handler/generated-registry-writer.js +0 -458
  216. package/dist/handler/generated-registry-writer.js.map +0 -1
  217. package/dist/handler/handler-codegen.d.ts +0 -48
  218. package/dist/handler/handler-codegen.d.ts.map +0 -1
  219. package/dist/handler/handler-codegen.js +0 -214
  220. package/dist/handler/handler-codegen.js.map +0 -1
  221. package/dist/server/browser-server.d.ts +0 -49
  222. package/dist/server/browser-server.d.ts.map +0 -1
  223. package/dist/server/browser-server.js.map +0 -1
  224. package/dist/server/durable-subscription-bindings.d.ts.map +0 -1
  225. package/dist/server/durable-subscription-bindings.js.map +0 -1
  226. /package/dist/{server → browser}/durable-subscription-bindings.d.ts +0 -0
  227. /package/dist/{server → browser}/durable-subscription-bindings.js +0 -0
@@ -18,7 +18,6 @@ import { HandlerMetadataRegistry } from "./handler-metadata.js";
18
18
  const defaultExportName = "generatedHandlerRegistry";
19
19
  const generatedRegistryFile = "generated/handler/generated-handler-registry.js";
20
20
  const moduleSchemeRe = /^[A-Za-z][A-Za-z\d+.-]*:/;
21
- const registryVersion = 3;
22
21
  /**
23
22
  * Error thrown when generated registry discovery or loading fails.
24
23
  */
@@ -177,9 +176,8 @@ const RegistryModules = Object.freeze({
177
176
  if (value === null || typeof value !== "object") {
178
177
  return false;
179
178
  }
180
- const version = value.version;
181
- const entities = value.entities;
182
- return version === registryVersion && Array.isArray(entities);
179
+ const receivers = value.receivers;
180
+ return Array.isArray(receivers);
183
181
  },
184
182
  normalize(moduleRef) {
185
183
  if (moduleRef instanceof URL) {
@@ -1 +1 @@
1
- {"version":3,"file":"generated-registry-discovery.js","sourceRoot":"","sources":["../../src/handler/generated-registry-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generated-registry-discovery.js","sourceRoot":"","sources":["../../src/handler/generated-registry-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,EAEL,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AACrD,MAAM,qBAAqB,GAAG,iDAAiD,CAAC;AAChF,MAAM,cAAc,GAAG,0BAA0B,CAAC;AAoClD;;GAEG;AACH,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IACxD,kBAAkB;IAElB;;OAEG;IACM,IAAI,CAA6B;IAE1C;;OAEG;IACM,QAAQ,CAAS;IAE1B;;OAEG;IACe,KAAK,CAAU;IAEjC;;;;;;;OAOG;IACH,YACE,IAAgC,EAChC,OAAe,EACf,QAAgB,EAChB,KAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,0BAA0B;IAC5B,SAAS,CAA0B;IAE5C;;;;OAIG;IACH,YAAY,WAAoC,IAAI,uBAAuB,EAAE;QAC3E,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,sBAAsB,CAAC,IAAY;QACxC,OAAO,OAAO,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAY;QACvC,OAAO,aAAa,CAAC,0BAA0B,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,OAA0C;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE/C,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ,CACZ,OAA0C,EAC1C,QAAkC;QAElC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,QAAQ,IAAI,IAAI,uBAAuB,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAErD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,+BAA+B,CACvC,2BAA2B,EAC3B,sCAAsC,KAAK,CAAC,QAAQ,0BAA0B,EAC9E,KAAK,CAAC,QAAQ,EACd,KAAK,CACN,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1E,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,OAA0C;QAE1C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAC;QAC3D,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QACtF,MAAM,MAAM,GAA8B,EAAE,CAAC;QAE7C,eAAe,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAExC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YAE3F,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ;gBACR,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;aAClE,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;CACF;AAOD,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,KAAK,CAAC,MAAM,CAAC,QAAgB;QAC3B,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,+BAA+B,CACvC,sBAAsB,EACtB,uDAAuD,QAAQ,IAAI,EACnE,QAAQ,EACR,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,SAAS,CAAC,QAAgB,EAAE,OAA0C;QACpE,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtE,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEpC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,sBAAsB,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACtE,OAAO,SAAS,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,OAAgB,EAAE,QAAgB,EAAE,UAAkB;QAC7D,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE1D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,+BAA+B,CACvC,yBAAyB,EACzB,sCAAsC,QAAQ,sBAAsB,UAAU,IAAI,EAClF,QAAQ,CACT,CAAC;QACJ,CAAC;QAED,IAAI,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,IAAI,+BAA+B,CACvC,yBAAyB,EACzB,sCAAsC,QAAQ,sBAAsB,UAAU,aAAa,EAC3F,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,OAAgB,EAAE,UAAkB;QACzC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACpD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAQ,OAAmC,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED,UAAU,CAAC,KAAc;QACvB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,SAAS,GAAI,KAA0C,CAAC,SAAS,CAAC;QAExE,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,SAAS,CAAC,SAAuB;QAC/B,IAAI,SAAS,YAAY,GAAG,EAAE,CAAC;YAC7B,OAAO,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,OAAO,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,SAAc;QAChB,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACnC,MAAM,IAAI,+BAA+B,CACvC,2BAA2B,EAC3B,sCAAsC,SAAS,CAAC,IAAI,kCAAkC,EACtF,SAAS,CAAC,IAAI,CACf,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,+BAA+B,CACvC,oBAAoB,EACpB,sCAAsC,SAAS,CAAC,IAAI,qCAAqC,EACzF,SAAS,CAAC,IAAI,CACf,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,OAAO,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,+BAA+B,CACvC,oBAAoB,EACpB,sCAAsC,SAAS,CAAC,IAAI,4BAA4B,EAChF,SAAS,CAAC,IAAI,EACd,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAiB;QACrB,OAAO,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,SAAiB;QACrB,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,+BAA+B,CACvC,oBAAoB,EACpB,sCAAsC,SAAS,uBAAuB,EACtE,SAAS,EACT,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,YAAY,CAAC,SAA4B;QACvC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,+BAA+B,CACvC,2BAA2B,EAC3B,sCAAsC,QAAQ,8BAA8B,EAC5E,QAAQ,CACT,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import type { DescriptorMessageSchema } from "../entity/entity-metadata.js";
2
- import { type EntityClass, type EntityHandlersMetadata, type EventApplicationOptions, type WhereOptions } from "./handler-metadata.js";
2
+ import { type EntityClass, type EntityHandlersMetadata, type WhereOptions } from "./handler-metadata.js";
3
3
  export type { WhereOptions } from "./handler-metadata.js";
4
4
  /**
5
5
  * Describes the standard TypeScript method decorator accepted by Spine handler declarations.
6
6
  *
7
- * @typeParam This - Entity instance that owns the decorated method.
7
+ * @typeParam This Receiver instance on which the decorated method runs.
8
8
  * @typeParam Parameters - Parameters accepted by the decorated method.
9
9
  * @typeParam Return - Result returned by the decorated method.
10
10
  * @param value Decorated method implementation.
@@ -14,7 +14,7 @@ export type HandlerMethodDecorator = <This extends object, Parameters extends re
14
14
  /**
15
15
  * Describes an instance method shape accepted by public handler decorators.
16
16
  *
17
- * @typeParam This - Entity instance that owns the method.
17
+ * @typeParam This Receiver instance on which the method runs.
18
18
  * @typeParam Parameters - Parameters accepted by the method.
19
19
  * @typeParam Return - Result returned by the method.
20
20
  * @param this Entity instance that receives the invocation.
@@ -22,6 +22,27 @@ export type HandlerMethodDecorator = <This extends object, Parameters extends re
22
22
  * @returns Handler result.
23
23
  */
24
24
  export type HandlerMethodValue<This extends object = object, Parameters extends readonly unknown[] = readonly unknown[], Return = unknown> = (this: This, ...parameters: Parameters) => Return;
25
+ /**
26
+ * Generated companion declaration for a rejection that a command receptor may throw.
27
+ */
28
+ export interface RejectionDeclaration {
29
+ /**
30
+ * Generated Protobuf schema of the declared rejection.
31
+ */
32
+ readonly schema: DescriptorMessageSchema;
33
+ }
34
+ /**
35
+ * Validates declared domain rejections for build-time handler discovery.
36
+ *
37
+ * Put `@Assign` or `@Command` first and `@Throws` last for readability; either
38
+ * order is accepted. The generated registry registers these rejection types
39
+ * even when no server handler consumes them. Rejections are thrown, not normal
40
+ * return values, and do not belong in the handler's return union or tuple.
41
+ *
42
+ * @param declarations Generated rejection companions.
43
+ * @returns A method decorator that validates the annotated instance method.
44
+ */
45
+ export declare function Throws(...declarations: readonly RejectionDeclaration[]): HandlerMethodDecorator;
25
46
  /**
26
47
  * Creates a command-assignee declaration.
27
48
  *
@@ -31,7 +52,21 @@ export type HandlerMethodValue<This extends object = object, Parameters extends
31
52
  * throwable. The decorator records metadata only; it does not register the
32
53
  * handler, instantiate the entity, or invoke the method.
33
54
  *
34
- * @typeParam This - Entity instance that owns the method.
55
+ * Declare a generated Event type, a union such as `TaskAssigned | TaskReassigned`,
56
+ * a flat Event array (`T[]`, `readonly T[]`, `Array<T>`, or `ReadonlyArray<T>`),
57
+ * or a fixed tuple such as `readonly [TaskCreated, TaskAssigned?]`. Tuples may
58
+ * have named entries and union alternatives. Concrete local/imported aliases
59
+ * and exactly one outer built-in `Promise` are supported. A successful command
60
+ * must produce at least one Event; `void`, whole-result `undefined`, and
61
+ * optional-only tuples are not valid assignment declarations.
62
+ *
63
+ * Return domain messages, not framework envelopes or rejections. Nested
64
+ * collections, rest tuples, nested promises, custom thenables, `any`, and
65
+ * `unknown` are unsupported. TypeScript checks tuple structure; Spine validates
66
+ * each returned message against this handler's declarations and keeps its order.
67
+ * Declare thrown domain rejections separately with {@link Throws}.
68
+ *
69
+ * @typeParam This Receiver instance on which the method runs.
35
70
  * @typeParam Parameters - Parameters accepted by the method.
36
71
  * @typeParam Return - Result returned by the method.
37
72
  * @param value Decorated method implementation or command schema.
@@ -39,15 +74,32 @@ export type HandlerMethodValue<This extends object = object, Parameters extends
39
74
  */
40
75
  export declare function Assign<This extends object, Parameters extends readonly unknown[], Return>(value: HandlerMethodValue<This, Parameters, Return>, context: ClassMethodDecoratorContext<This, HandlerMethodValue<This, Parameters, Return>>): void;
41
76
  /**
42
- * Creates a command-reacting declaration.
43
- *
44
- * Bare `@Command` is the ordinary application form. Generated registries accept
45
- * command inputs; event-to-command handlers also accept event or rejection
46
- * inputs. Normal outputs are commands, while rejections are thrown, not
47
- * returned. Command reactors may fan out in `HandlerMetadataRegistry`; this
48
- * decorator only records the declaration.
49
- *
50
- * @typeParam This - Entity instance that owns the method.
77
+ * Creates a command handler declaration.
78
+ *
79
+ * Bare `@Command` accepts a generated Command, Event, or rejection input.
80
+ * A Command input is the unique command-substitution receptor for its type and
81
+ * substitutes it with one or more Commands. Among Entity repositories, only
82
+ * Process Managers support `@Command`; Aggregates and Projections reject it.
83
+ * Standalone receivers use `AbstractCommander`.
84
+ * Event and rejection inputs are Event Bus reactions that may return Commands.
85
+ * Rejections are thrown, not returned.
86
+ *
87
+ * Declare a generated Command, a union such as
88
+ * `CreateAccessGrant | ExtendAccessGrant`, a flat Command array, or a fixed
89
+ * tuple. Arrays support `T[]`, `readonly T[]`, `Array<T>`, and `ReadonlyArray<T>`;
90
+ * tuples support readonly, named, optional, and union-valued entries. Concrete
91
+ * local/imported aliases and one outer built-in `Promise` are supported.
92
+ * A Command-input handler must declare a guaranteed Command output. An
93
+ * Event/rejection reaction may declare `undefined` alone or in any supported
94
+ * union, and may return an empty typed Command array. `void` is not supported
95
+ * for reactions; optional-only tuples are rejected for Command inputs.
96
+ *
97
+ * Every result must be a declared domain Command, not a framework envelope.
98
+ * Nested collections, rest tuples, nested promises, custom thenables, `any`,
99
+ * and `unknown` are unsupported. TypeScript checks tuple structure; Spine
100
+ * validates returned message types and preserves their order.
101
+ *
102
+ * @typeParam This Receiver instance on which the method runs.
51
103
  * @typeParam Parameters - Parameters accepted by the method.
52
104
  * @typeParam Return - Result returned by the method.
53
105
  * @param value Decorated method implementation or command schema.
@@ -58,12 +110,17 @@ export declare function Command<This extends object, Parameters extends readonly
58
110
  * Creates an Event/rejection or Entity-state subscriber declaration.
59
111
  *
60
112
  * Bare `@Subscribe` accepts generated Event/rejection or descriptor-marked
61
- * Entity-state inputs and returns `void`. Event/rejection inputs produce
113
+ * Entity-state inputs and declares `void` or one built-in `Promise<void>`;
114
+ * aliases and parenthesized forms of `void` are supported, but `undefined`
115
+ * alone is not a subscriber return type.
116
+ * It does not return signals; unions, arrays, and tuples of messages belong in
117
+ * producing handlers such as {@link React}, not subscribers. Nested promises
118
+ * and custom thenables are unsupported. Event/rejection inputs produce
62
119
  * event-subscription metadata; Entity state inputs produce state-subscription
63
120
  * metadata. Subscribers are metadata-only declarations bridged by generated
64
121
  * registry and runtime metadata.
65
122
  *
66
- * @typeParam This - Entity instance that owns the method.
123
+ * @typeParam This Receiver instance on which the method runs.
67
124
  * @typeParam Parameters - Parameters accepted by the method.
68
125
  * @typeParam Return - Result returned by the method.
69
126
  * @param value Decorated method implementation.
@@ -73,12 +130,23 @@ export declare function Subscribe<This extends object, Parameters extends readon
73
130
  /**
74
131
  * Creates an event-reactor declaration.
75
132
  *
76
- * Bare `@React` accepts generated event or rejection inputs and returns normal
77
- * events or explicit `void`; rejections are thrown, not returned. Reactors are
78
- * collected as class-owned metadata and may fan out through the caller-owned
79
- * handler registry.
80
- *
81
- * @typeParam This - Entity instance that owns the method.
133
+ * Bare `@React` accepts generated Event or rejection inputs and returns domain
134
+ * Events, not rejections or framework envelopes. Declare one Event, a union of
135
+ * Event types, a flat array, or a fixed tuple. Arrays support `T[]`, `readonly T[]`,
136
+ * `Array<T>`, and `ReadonlyArray<T>`; tuples support readonly, named, optional,
137
+ * and union-valued entries. Concrete local/imported aliases are supported.
138
+ *
139
+ * Declare explicit `undefined` for no output, or a type such as
140
+ * `TaskRenamed | undefined` when a reaction sometimes emits an Event. Empty
141
+ * arrays and absent optional tuple entries produce no signals. Any supported
142
+ * result may have exactly one outer built-in `Promise`, including `Promise<undefined>`.
143
+ * `void` is not a valid reactor return type.
144
+ * Nested collections, rest tuples, nested promises, custom thenables, `any`,
145
+ * and `unknown` are unsupported. TypeScript checks tuple structure; Spine checks
146
+ * each actual Event against this handler's declarations and preserves order.
147
+ * Generated registry metadata connects the declaration to runtime dispatch.
148
+ *
149
+ * @typeParam This Receiver instance on which the method runs.
82
150
  * @typeParam Parameters - Parameters accepted by the method.
83
151
  * @typeParam Return - Result returned by the method.
84
152
  * @param value Decorated method implementation or event schema.
@@ -96,20 +164,6 @@ export declare function React<This extends object, Parameters extends readonly u
96
164
  * @returns Decorator for a public instance handler method.
97
165
  */
98
166
  export declare function Where(options: WhereOptions): HandlerMethodDecorator;
99
- /**
100
- * Creates legacy framework event-application metadata.
101
- *
102
- * New application aggregates must not use `@Apply`; managed aggregates are no
103
- * longer event-sourced and the framework owns state transactions. This
104
- * decorator is kept only for compatibility code that still needs explicit
105
- * schema-bearing event application metadata. The optional `allowImport` flag
106
- * is preserved only as part of that legacy metadata shape.
107
- *
108
- * @param schema Event schema accepted by the decorated method.
109
- * @param options Legacy event-application metadata options.
110
- * @returns Decorator that records the application metadata.
111
- */
112
- export declare function Apply(schema: DescriptorMessageSchema, options?: EventApplicationOptions): HandlerMethodDecorator;
113
167
  /**
114
168
  * Builds schema-bearing decorator declarations for framework compatibility.
115
169
  *
@@ -117,14 +171,14 @@ export declare function Apply(schema: DescriptorMessageSchema, options?: EventAp
117
171
  * produced by `EntityHandlers.define()` and accepted by
118
172
  * `HandlerMetadataRegistry`. Only own prototype methods of `entityType` are
119
173
  * inspected; inherited decorated methods are intentionally not materialized by
120
- * this class-owned adapter.
174
+ * this per-class adapter.
121
175
  *
122
176
  * Application code must not call this function and must not provide its own
123
177
  * handler discovery/materialization. Generated framework registries own schema
124
178
  * inference for bare decorators; this adapter only supports legacy
125
179
  * schema-bearing decorator metadata.
126
180
  *
127
- * @typeParam Instance - Entity instance that owns the handlers.
181
+ * @typeParam Instance Entity instance on which the handlers run.
128
182
  * @typeParam StateSchema - Schema that describes the entity state.
129
183
  * @param entityType Entity class whose own decorated methods are read.
130
184
  * @param stateSchema Schema that describes the entity state.
@@ -1 +1 @@
1
- {"version":3,"file":"handler-decorators.d.ts","sourceRoot":"","sources":["../../src/handler/handler-decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler-decorators.d.ts","sourceRoot":"","sources":["../../src/handler/handler-decorators.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,41 @@
13
13
  */
14
14
  import { EntityHandlers, } from "./handler-metadata.js";
15
15
  const handlerDecoratorMetadataKey = Symbol("@spine-event-engine/server.handlerDecorators");
16
+ /**
17
+ * Validates declared domain rejections for build-time handler discovery.
18
+ *
19
+ * Put `@Assign` or `@Command` first and `@Throws` last for readability; either
20
+ * order is accepted. The generated registry registers these rejection types
21
+ * even when no server handler consumes them. Rejections are thrown, not normal
22
+ * return values, and do not belong in the handler's return union or tuple.
23
+ *
24
+ * @param declarations Generated rejection companions.
25
+ * @returns A method decorator that validates the annotated instance method.
26
+ */
27
+ export function Throws(...declarations) {
28
+ if (declarations.length === 0) {
29
+ throw new TypeError("@Throws requires at least one generated rejection declaration.");
30
+ }
31
+ const schemas = declarations.map((declaration) => {
32
+ const value = declaration;
33
+ const schema = value !== null && typeof value === "object"
34
+ ? value.schema
35
+ : undefined;
36
+ if (schema === null ||
37
+ typeof schema !== "object" ||
38
+ typeof schema.typeName !== "string") {
39
+ throw new TypeError("@Throws accepts only generated rejection declarations.");
40
+ }
41
+ return schema;
42
+ });
43
+ const typeNames = schemas.map((schema) => schema.typeName);
44
+ if (new Set(typeNames).size !== typeNames.length) {
45
+ throw new TypeError("@Throws cannot declare the same rejection more than once.");
46
+ }
47
+ return (_value, context) => {
48
+ DecoratorMetadata.methodName(context);
49
+ };
50
+ }
16
51
  /**
17
52
  * Creates command-assignment decorator metadata or a schema-bearing decorator.
18
53
  *
@@ -24,9 +59,13 @@ export function Assign(schemaOrValue, context) {
24
59
  return DecoratorMetadata.decorateOrCreate("command-assignment", schemaOrValue, context);
25
60
  }
26
61
  /**
27
- * Creates command-reaction decorator metadata or a schema-bearing decorator.
62
+ * Creates command-handler decorator metadata or a schema-bearing decorator.
63
+ * Command input declares a Process Manager command substitution; Event or rejection
64
+ * input declares an Event Bus command reaction. Schema-bearing metadata cannot
65
+ * provide declared returned schemas and is rejected during materialization.
28
66
  *
29
- * @param schemaOrValue Command schema or decorated method implementation.
67
+ * @param schemaOrValue Generated Command, Event, or rejection schema, or
68
+ * decorated method implementation.
30
69
  * @param context Standard decorator context for bare usage.
31
70
  * @returns A decorator for schema-bearing usage, or `undefined` after bare usage.
32
71
  */
@@ -71,22 +110,6 @@ export function Where(options) {
71
110
  DecoratorMetadata.methodName(context);
72
111
  };
73
112
  }
74
- /**
75
- * Creates legacy framework event-application metadata.
76
- *
77
- * New application aggregates must not use `@Apply`; managed aggregates are no
78
- * longer event-sourced and the framework owns state transactions. This
79
- * decorator is kept only for compatibility code that still needs explicit
80
- * schema-bearing event application metadata. The optional `allowImport` flag
81
- * is preserved only as part of that legacy metadata shape.
82
- *
83
- * @param schema Event schema accepted by the decorated method.
84
- * @param options Legacy event-application metadata options.
85
- * @returns Decorator that records the application metadata.
86
- */
87
- export function Apply(schema, options = {}) {
88
- return DecoratorMetadata.create("event-application", schema, options);
89
- }
90
113
  /**
91
114
  * Builds schema-bearing decorator declarations for framework compatibility.
92
115
  *
@@ -94,14 +117,14 @@ export function Apply(schema, options = {}) {
94
117
  * produced by `EntityHandlers.define()` and accepted by
95
118
  * `HandlerMetadataRegistry`. Only own prototype methods of `entityType` are
96
119
  * inspected; inherited decorated methods are intentionally not materialized by
97
- * this class-owned adapter.
120
+ * this per-class adapter.
98
121
  *
99
122
  * Application code must not call this function and must not provide its own
100
123
  * handler discovery/materialization. Generated framework registries own schema
101
124
  * inference for bare decorators; this adapter only supports legacy
102
125
  * schema-bearing decorator metadata.
103
126
  *
104
- * @typeParam Instance - Entity instance that owns the handlers.
127
+ * @typeParam Instance Entity instance on which the handlers run.
105
128
  * @typeParam StateSchema - Schema that describes the entity state.
106
129
  * @param entityType Entity class whose own decorated methods are read.
107
130
  * @param stateSchema Schema that describes the entity state.
@@ -109,25 +132,38 @@ export function Apply(schema, options = {}) {
109
132
  */
110
133
  export function materializeDecoratedEntityHandlers(entityType, stateSchema) {
111
134
  const decoratedHandlers = DecoratorMetadata.collect(entityType);
112
- return EntityHandlers.define(entityType, stateSchema, (builder) => decoratedHandlers.map((handler) => {
135
+ return EntityHandlers.define(entityType, stateSchema, (builder) => decoratedHandlers.map((handler) => DecoratorMetadata.materializeLegacyHandler(builder, handler)));
136
+ }
137
+ const DecoratorMetadata = Object.freeze({
138
+ /**
139
+ * Builds legacy schema-bearing metadata for one decorated Entity method.
140
+ *
141
+ * @typeParam Instance Entity receiver type.
142
+ * @param builder Entity handler registration builder.
143
+ * @param handler Decorated method record.
144
+ * @returns Canonical handler metadata.
145
+ */
146
+ materializeLegacyHandler(builder, handler) {
113
147
  const methodName = handler.methodName;
114
148
  switch (handler.kind) {
115
149
  case "command-assignment":
116
150
  return builder.assign(DecoratorMetadata.schema(handler), methodName);
151
+ case "command-substitution":
152
+ throw new TypeError("Command substitutions require generated registry metadata with emitted schemas.");
117
153
  case "command-reaction":
118
- return builder.command(DecoratorMetadata.schema(handler), methodName);
154
+ throw new TypeError("@Command handlers require generated registry metadata with emitted schemas.");
119
155
  case "event-subscription":
120
156
  return builder.subscribe(DecoratorMetadata.schema(handler), methodName);
121
157
  case "event-reaction":
122
158
  return builder.react(DecoratorMetadata.schema(handler), methodName);
123
- case "event-application":
124
- return builder.apply(DecoratorMetadata.schema(handler), methodName, {
125
- allowImport: handler.allowImport ?? false,
126
- });
127
159
  }
128
- }));
129
- }
130
- const DecoratorMetadata = Object.freeze({
160
+ },
161
+ /**
162
+ * Validates a public instance method and reads its string name.
163
+ *
164
+ * @param context TypeScript decorator context identifying the method.
165
+ * @returns The method name used in handler metadata.
166
+ */
131
167
  methodName(context) {
132
168
  if (context.static || context.private) {
133
169
  throw new TypeError("Spine handler decorators must be applied to public instance methods.");
@@ -137,6 +173,14 @@ const DecoratorMetadata = Object.freeze({
137
173
  }
138
174
  return context.name;
139
175
  },
176
+ /**
177
+ * Applies a bare decorator or creates the internal schema-bearing form.
178
+ *
179
+ * @param kind Handler role recorded for the method.
180
+ * @param schemaOrValue Decorated method, or schema for the internal form.
181
+ * @param context Present when TypeScript invokes a bare decorator.
182
+ * @returns The internal decorator, or undefined after bare decoration.
183
+ */
140
184
  decorateOrCreate(kind, schemaOrValue, context) {
141
185
  if (context !== undefined) {
142
186
  DecoratorMetadata.create(kind)(schemaOrValue, context);
@@ -144,14 +188,20 @@ const DecoratorMetadata = Object.freeze({
144
188
  }
145
189
  return DecoratorMetadata.create(kind, schemaOrValue);
146
190
  },
147
- create(kind, schema, options = {}) {
191
+ /**
192
+ * Creates a decorator that appends immutable metadata for one method.
193
+ *
194
+ * @param kind Handler role recorded for the method.
195
+ * @param schema Optional schema supplied by internal compatibility tooling.
196
+ * @returns A standard TypeScript method decorator.
197
+ */
198
+ create(kind, schema) {
148
199
  return (_value, context) => {
149
200
  const methodName = DecoratorMetadata.methodName(context);
150
201
  const record = Object.freeze({
151
202
  kind,
152
203
  ...(schema === undefined ? {} : { schema }),
153
204
  methodName,
154
- ...(kind === "event-application" ? { allowImport: options.allowImport ?? false } : {}),
155
205
  });
156
206
  const metadata = DecoratorMetadata.require(context);
157
207
  const previous = DecoratorMetadata.read(metadata);
@@ -163,6 +213,12 @@ const DecoratorMetadata = Object.freeze({
163
213
  });
164
214
  };
165
215
  },
216
+ /**
217
+ * Reads a legacy declaration's schema, rejecting bare declarations.
218
+ *
219
+ * @param handler Decorator record being materialized.
220
+ * @returns Its explicitly supplied message schema.
221
+ */
166
222
  schema(handler) {
167
223
  if (handler.schema === undefined) {
168
224
  throw new TypeError(`Decorated handler "${handler.methodName}" was declared without a schema; ` +
@@ -170,6 +226,13 @@ const DecoratorMetadata = Object.freeze({
170
226
  }
171
227
  return handler.schema;
172
228
  },
229
+ /**
230
+ * Reads handler declarations for methods defined on this class prototype.
231
+ *
232
+ * @typeParam Instance Entity instance represented by the constructor.
233
+ * @param entityType Constructor whose declared handlers are collected.
234
+ * @returns A frozen list of matching decorator records.
235
+ */
173
236
  collect(entityType) {
174
237
  const metadata = DecoratorMetadata.classMetadata(entityType);
175
238
  if (metadata === undefined) {
@@ -181,6 +244,11 @@ const DecoratorMetadata = Object.freeze({
181
244
  });
182
245
  return Object.freeze(records);
183
246
  },
247
+ /**
248
+ * Initializes Symbol.metadata when the runtime does not yet supply it.
249
+ *
250
+ * @returns The existing or newly installed decorator metadata symbol.
251
+ */
184
252
  installSymbol() {
185
253
  const existingMetadata = Reflect.get(Symbol, "metadata");
186
254
  if (typeof existingMetadata === "symbol") {
@@ -195,12 +263,25 @@ const DecoratorMetadata = Object.freeze({
195
263
  });
196
264
  return metadata;
197
265
  },
266
+ /**
267
+ * Reads TypeScript's class metadata object, rejecting missing support.
268
+ *
269
+ * @param context Decorator context with optional runtime metadata support.
270
+ * @returns The writable class metadata object.
271
+ */
198
272
  require(context) {
199
273
  if (context.metadata === undefined) {
200
274
  throw new TypeError("Spine handler decorators require standard decorator metadata support.");
201
275
  }
202
276
  return context.metadata;
203
277
  },
278
+ /**
279
+ * Reads metadata defined directly on the Entity constructor.
280
+ *
281
+ * @typeParam Instance Entity instance represented by the constructor.
282
+ * @param entityType Constructor whose metadata is inspected.
283
+ * @returns Its metadata object, or undefined when none is present.
284
+ */
204
285
  classMetadata(entityType) {
205
286
  const descriptor = Object.getOwnPropertyDescriptor(entityType, decoratorMetadataSymbol);
206
287
  const metadata = descriptor?.value;
@@ -209,6 +290,12 @@ const DecoratorMetadata = Object.freeze({
209
290
  }
210
291
  return metadata;
211
292
  },
293
+ /**
294
+ * Reads Spine handler records without inheriting a parent metadata array.
295
+ *
296
+ * @param metadata Class metadata object to inspect.
297
+ * @returns Stored handler records, or an empty list when absent.
298
+ */
212
299
  read(metadata) {
213
300
  if (!Object.hasOwn(metadata, handlerDecoratorMetadataKey)) {
214
301
  return [];
@@ -218,6 +305,12 @@ const DecoratorMetadata = Object.freeze({
218
305
  },
219
306
  });
220
307
  const WhereValues = Object.freeze({
308
+ /**
309
+ * Validates and copies the supported single-field Event filter.
310
+ *
311
+ * @param options Field name and comparison value supplied to the decorator.
312
+ * @returns A frozen filter independent of the caller's object.
313
+ */
221
314
  snapshot(options) {
222
315
  const value = options;
223
316
  if (value === null || typeof value !== "object" || Array.isArray(value)) {
@@ -1 +1 @@
1
- {"version":3,"file":"handler-decorators.js","sourceRoot":"","sources":["../../src/handler/handler-decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler-decorators.js","sourceRoot":"","sources":["../../src/handler/handler-decorators.ts"],"names":[],"mappings":"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"}