@powerhousedao/reactor 4.1.0-dev.10 → 4.1.0-dev.100

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 (234) hide show
  1. package/dist/src/cache/buffer/ring-buffer.d.ts +37 -0
  2. package/dist/src/cache/buffer/ring-buffer.d.ts.map +1 -0
  3. package/dist/src/cache/buffer/ring-buffer.js +69 -0
  4. package/dist/src/cache/buffer/ring-buffer.js.map +1 -0
  5. package/dist/src/cache/kysely-write-cache.d.ts +133 -0
  6. package/dist/src/cache/kysely-write-cache.d.ts.map +1 -0
  7. package/dist/src/cache/kysely-write-cache.js +375 -0
  8. package/dist/src/cache/kysely-write-cache.js.map +1 -0
  9. package/dist/src/cache/lru/lru-tracker.d.ts +15 -0
  10. package/dist/src/cache/lru/lru-tracker.d.ts.map +1 -0
  11. package/dist/src/cache/lru/lru-tracker.js +96 -0
  12. package/dist/src/cache/lru/lru-tracker.js.map +1 -0
  13. package/dist/src/cache/types.d.ts +42 -0
  14. package/dist/src/cache/types.d.ts.map +1 -0
  15. package/dist/src/cache/types.js +2 -0
  16. package/dist/src/cache/types.js.map +1 -0
  17. package/dist/src/cache/write/interfaces.d.ts +83 -0
  18. package/dist/src/cache/write/interfaces.d.ts.map +1 -0
  19. package/dist/src/cache/write/interfaces.js +2 -0
  20. package/dist/src/cache/write/interfaces.js.map +1 -0
  21. package/dist/src/client/reactor-client.d.ts +103 -0
  22. package/dist/src/client/reactor-client.d.ts.map +1 -0
  23. package/dist/src/client/reactor-client.js +184 -0
  24. package/dist/src/client/reactor-client.js.map +1 -0
  25. package/dist/src/client/types.d.ts +213 -0
  26. package/dist/src/client/types.d.ts.map +1 -0
  27. package/dist/src/client/types.js +14 -0
  28. package/dist/src/client/types.js.map +1 -0
  29. package/dist/src/core/builder.d.ts +20 -0
  30. package/dist/src/core/builder.d.ts.map +1 -0
  31. package/dist/src/core/builder.js +47 -0
  32. package/dist/src/core/builder.js.map +1 -0
  33. package/dist/src/core/reactor-builder.d.ts +24 -0
  34. package/dist/src/core/reactor-builder.d.ts.map +1 -0
  35. package/dist/src/core/reactor-builder.js +152 -0
  36. package/dist/src/core/reactor-builder.js.map +1 -0
  37. package/dist/src/core/reactor.d.ts +96 -0
  38. package/dist/src/core/reactor.d.ts.map +1 -0
  39. package/dist/src/core/reactor.js +666 -0
  40. package/dist/src/core/reactor.js.map +1 -0
  41. package/dist/src/core/types.d.ts +168 -0
  42. package/dist/src/core/types.d.ts.map +1 -0
  43. package/dist/src/core/types.js +2 -0
  44. package/dist/src/core/types.js.map +1 -0
  45. package/dist/src/core/utils.d.ts +50 -0
  46. package/dist/src/core/utils.d.ts.map +1 -0
  47. package/dist/src/core/utils.js +133 -0
  48. package/dist/src/core/utils.js.map +1 -0
  49. package/dist/src/events/event-bus.d.ts +3 -3
  50. package/dist/src/events/event-bus.d.ts.map +1 -1
  51. package/dist/src/events/event-bus.js.map +1 -1
  52. package/dist/src/events/interfaces.d.ts +1 -1
  53. package/dist/src/events/interfaces.d.ts.map +1 -1
  54. package/dist/src/events/types.d.ts +15 -1
  55. package/dist/src/events/types.d.ts.map +1 -1
  56. package/dist/src/events/types.js +6 -0
  57. package/dist/src/events/types.js.map +1 -1
  58. package/dist/src/executor/interfaces.d.ts +31 -54
  59. package/dist/src/executor/interfaces.d.ts.map +1 -1
  60. package/dist/src/executor/simple-job-executor-manager.d.ts +32 -0
  61. package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -0
  62. package/dist/src/executor/simple-job-executor-manager.js +212 -0
  63. package/dist/src/executor/simple-job-executor-manager.js.map +1 -0
  64. package/dist/src/executor/simple-job-executor.d.ts +58 -0
  65. package/dist/src/executor/simple-job-executor.d.ts.map +1 -0
  66. package/dist/src/executor/simple-job-executor.js +516 -0
  67. package/dist/src/executor/simple-job-executor.js.map +1 -0
  68. package/dist/src/executor/types.d.ts +32 -8
  69. package/dist/src/executor/types.d.ts.map +1 -1
  70. package/dist/src/executor/types.js.map +1 -1
  71. package/dist/src/executor/util.d.ts +47 -0
  72. package/dist/src/executor/util.d.ts.map +1 -0
  73. package/dist/src/executor/util.js +113 -0
  74. package/dist/src/executor/util.js.map +1 -0
  75. package/dist/src/index.d.ts +32 -3
  76. package/dist/src/index.d.ts.map +1 -1
  77. package/dist/src/index.js +38 -2
  78. package/dist/src/index.js.map +1 -1
  79. package/dist/src/job-tracker/in-memory-job-tracker.d.ts +16 -0
  80. package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -0
  81. package/dist/src/job-tracker/in-memory-job-tracker.js +78 -0
  82. package/dist/src/job-tracker/in-memory-job-tracker.js.map +1 -0
  83. package/dist/src/job-tracker/index.d.ts +3 -0
  84. package/dist/src/job-tracker/index.d.ts.map +1 -0
  85. package/dist/src/job-tracker/index.js +2 -0
  86. package/dist/src/job-tracker/index.js.map +1 -0
  87. package/dist/src/job-tracker/interfaces.d.ts +41 -0
  88. package/dist/src/job-tracker/interfaces.d.ts.map +1 -0
  89. package/dist/src/job-tracker/interfaces.js +2 -0
  90. package/dist/src/job-tracker/interfaces.js.map +1 -0
  91. package/dist/src/queue/interfaces.d.ts +46 -5
  92. package/dist/src/queue/interfaces.d.ts.map +1 -1
  93. package/dist/src/queue/job-execution-handle.d.ts +25 -0
  94. package/dist/src/queue/job-execution-handle.d.ts.map +1 -0
  95. package/dist/src/queue/job-execution-handle.js +62 -0
  96. package/dist/src/queue/job-execution-handle.js.map +1 -0
  97. package/dist/src/queue/queue.d.ts +56 -5
  98. package/dist/src/queue/queue.d.ts.map +1 -1
  99. package/dist/src/queue/queue.js +284 -36
  100. package/dist/src/queue/queue.js.map +1 -1
  101. package/dist/src/queue/types.d.ts +33 -5
  102. package/dist/src/queue/types.d.ts.map +1 -1
  103. package/dist/src/queue/types.js +12 -0
  104. package/dist/src/queue/types.js.map +1 -1
  105. package/dist/src/read-models/coordinator.d.ts +38 -0
  106. package/dist/src/read-models/coordinator.d.ts.map +1 -0
  107. package/dist/src/read-models/coordinator.js +62 -0
  108. package/dist/src/read-models/coordinator.js.map +1 -0
  109. package/dist/src/read-models/document-view.d.ts +20 -0
  110. package/dist/src/read-models/document-view.d.ts.map +1 -0
  111. package/dist/src/read-models/document-view.js +365 -0
  112. package/dist/src/read-models/document-view.js.map +1 -0
  113. package/dist/src/read-models/interfaces.d.ts +29 -0
  114. package/dist/src/read-models/interfaces.d.ts.map +1 -0
  115. package/dist/src/read-models/interfaces.js +2 -0
  116. package/dist/src/read-models/interfaces.js.map +1 -0
  117. package/dist/src/read-models/types.d.ts +46 -0
  118. package/dist/src/read-models/types.d.ts.map +1 -0
  119. package/dist/src/read-models/types.js +2 -0
  120. package/dist/src/read-models/types.js.map +1 -0
  121. package/dist/src/registry/implementation.d.ts +62 -0
  122. package/dist/src/registry/implementation.d.ts.map +1 -0
  123. package/dist/src/registry/implementation.js +96 -0
  124. package/dist/src/registry/implementation.js.map +1 -0
  125. package/dist/src/registry/index.d.ts +3 -0
  126. package/dist/src/registry/index.d.ts.map +1 -0
  127. package/dist/src/registry/index.js +2 -0
  128. package/dist/src/registry/index.js.map +1 -0
  129. package/dist/src/registry/interfaces.d.ts +39 -0
  130. package/dist/src/registry/interfaces.d.ts.map +1 -0
  131. package/dist/src/registry/interfaces.js +2 -0
  132. package/dist/src/registry/interfaces.js.map +1 -0
  133. package/dist/src/shared/awaiter.d.ts +32 -0
  134. package/dist/src/shared/awaiter.d.ts.map +1 -0
  135. package/dist/src/shared/awaiter.js +132 -0
  136. package/dist/src/shared/awaiter.js.map +1 -0
  137. package/dist/src/shared/errors.d.ts +17 -0
  138. package/dist/src/shared/errors.d.ts.map +1 -0
  139. package/dist/src/shared/errors.js +33 -0
  140. package/dist/src/shared/errors.js.map +1 -0
  141. package/dist/src/shared/factories.d.ts +16 -0
  142. package/dist/src/shared/factories.d.ts.map +1 -0
  143. package/dist/src/shared/factories.js +33 -0
  144. package/dist/src/shared/factories.js.map +1 -0
  145. package/dist/src/shared/types.d.ts +100 -20
  146. package/dist/src/shared/types.d.ts.map +1 -1
  147. package/dist/src/shared/types.js +35 -1
  148. package/dist/src/shared/types.js.map +1 -1
  149. package/dist/src/shared/utils.d.ts +3 -0
  150. package/dist/src/shared/utils.d.ts.map +1 -0
  151. package/dist/src/shared/utils.js +8 -0
  152. package/dist/src/shared/utils.js.map +1 -0
  153. package/dist/src/signer/passthrough-signer.d.ts +6 -0
  154. package/dist/src/signer/passthrough-signer.d.ts.map +1 -0
  155. package/dist/src/signer/passthrough-signer.js +6 -0
  156. package/dist/src/signer/passthrough-signer.js.map +1 -0
  157. package/dist/src/signer/types.d.ts +15 -0
  158. package/dist/src/signer/types.d.ts.map +1 -0
  159. package/dist/src/signer/types.js +2 -0
  160. package/dist/src/signer/types.js.map +1 -0
  161. package/dist/src/storage/interfaces.d.ts +209 -0
  162. package/dist/src/storage/interfaces.d.ts.map +1 -0
  163. package/dist/src/storage/interfaces.js +19 -0
  164. package/dist/src/storage/interfaces.js.map +1 -0
  165. package/dist/src/storage/kysely/document-indexer.d.ts +25 -0
  166. package/dist/src/storage/kysely/document-indexer.d.ts.map +1 -0
  167. package/dist/src/storage/kysely/document-indexer.js +345 -0
  168. package/dist/src/storage/kysely/document-indexer.js.map +1 -0
  169. package/dist/src/storage/kysely/keyframe-store.d.ts +15 -0
  170. package/dist/src/storage/kysely/keyframe-store.d.ts.map +1 -0
  171. package/dist/src/storage/kysely/keyframe-store.js +71 -0
  172. package/dist/src/storage/kysely/keyframe-store.js.map +1 -0
  173. package/dist/src/storage/kysely/store.d.ts +15 -0
  174. package/dist/src/storage/kysely/store.d.ts.map +1 -0
  175. package/dist/src/storage/kysely/store.js +196 -0
  176. package/dist/src/storage/kysely/store.js.map +1 -0
  177. package/dist/src/storage/kysely/types.d.ts +72 -0
  178. package/dist/src/storage/kysely/types.d.ts.map +1 -0
  179. package/dist/src/storage/kysely/types.js +2 -0
  180. package/dist/src/storage/kysely/types.js.map +1 -0
  181. package/dist/src/storage/txn.d.ts +15 -0
  182. package/dist/src/storage/txn.d.ts.map +1 -0
  183. package/dist/src/storage/txn.js +43 -0
  184. package/dist/src/storage/txn.js.map +1 -0
  185. package/dist/src/subs/default-error-handler.d.ts +13 -0
  186. package/dist/src/subs/default-error-handler.d.ts.map +1 -0
  187. package/dist/src/subs/default-error-handler.js +27 -0
  188. package/dist/src/subs/default-error-handler.js.map +1 -0
  189. package/dist/src/subs/react-subscription-manager.d.ts +45 -0
  190. package/dist/src/subs/react-subscription-manager.d.ts.map +1 -0
  191. package/dist/src/subs/react-subscription-manager.js +185 -0
  192. package/dist/src/subs/react-subscription-manager.js.map +1 -0
  193. package/dist/src/subs/types.d.ts +64 -0
  194. package/dist/src/subs/types.d.ts.map +1 -0
  195. package/dist/src/subs/types.js +2 -0
  196. package/dist/src/subs/types.js.map +1 -0
  197. package/dist/src/utils/reshuffle.d.ts +30 -0
  198. package/dist/src/utils/reshuffle.d.ts.map +1 -0
  199. package/dist/src/utils/reshuffle.js +47 -0
  200. package/dist/src/utils/reshuffle.js.map +1 -0
  201. package/package.json +18 -7
  202. package/dist/bench/end-to-end-flow.bench.d.ts +0 -2
  203. package/dist/bench/end-to-end-flow.bench.d.ts.map +0 -1
  204. package/dist/bench/end-to-end-flow.bench.js +0 -256
  205. package/dist/bench/end-to-end-flow.bench.js.map +0 -1
  206. package/dist/bench/event-bus.bench.d.ts +0 -2
  207. package/dist/bench/event-bus.bench.d.ts.map +0 -1
  208. package/dist/bench/event-bus.bench.js +0 -238
  209. package/dist/bench/event-bus.bench.js.map +0 -1
  210. package/dist/bench/queue-only.bench.d.ts +0 -2
  211. package/dist/bench/queue-only.bench.d.ts.map +0 -1
  212. package/dist/bench/queue-only.bench.js +0 -40
  213. package/dist/bench/queue-only.bench.js.map +0 -1
  214. package/dist/bench/reactor-throughput.bench.d.ts +0 -2
  215. package/dist/bench/reactor-throughput.bench.d.ts.map +0 -1
  216. package/dist/bench/reactor-throughput.bench.js +0 -137
  217. package/dist/bench/reactor-throughput.bench.js.map +0 -1
  218. package/dist/src/executor/job-executor.d.ts +0 -62
  219. package/dist/src/executor/job-executor.d.ts.map +0 -1
  220. package/dist/src/executor/job-executor.js +0 -325
  221. package/dist/src/executor/job-executor.js.map +0 -1
  222. package/dist/test/event-bus.test.d.ts +0 -2
  223. package/dist/test/event-bus.test.d.ts.map +0 -1
  224. package/dist/test/event-bus.test.js +0 -532
  225. package/dist/test/event-bus.test.js.map +0 -1
  226. package/dist/test/job-executor.test.d.ts +0 -2
  227. package/dist/test/job-executor.test.d.ts.map +0 -1
  228. package/dist/test/job-executor.test.js +0 -581
  229. package/dist/test/job-executor.test.js.map +0 -1
  230. package/dist/test/queue.test.d.ts +0 -2
  231. package/dist/test/queue.test.d.ts.map +0 -1
  232. package/dist/test/queue.test.js +0 -396
  233. package/dist/test/queue.test.js.map +0 -1
  234. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../../src/core/reactor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAW5C,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAKpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAWrE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMlD,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,OAAO,OAAO;IACV,WAAW,CAA0B;IACrC,eAAe,CAAmB;IAClC,cAAc,CAAiB;IAC/B,WAAW,CAA2B;IACtC,KAAK,CAAS;IACd,UAAU,CAAc;IACxB,oBAAoB,CAAwB;IAEpD,YACE,WAAoC,EACpC,eAAiC,EACjC,KAAa,EACb,UAAuB,EACvB,oBAA2C;QAE3C,8BAA8B;QAC9B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAEjD,mCAAmC;QACnC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAElC,sDAAsD;QACtD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,+BAA+B;QAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEvB,kCAAkC;QAClC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QAEjC,0EAA0E;QAC1E,sDAAsD;QAEtD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,iBAAiB,CACf,SAAkB,EAClB,MAAsB,EACtB,MAAoB;QAEpB,4DAA4D;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC;QAC3D,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CACnC,CAAC,MAAM,EAAE,EAAE,CACT,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CACvE,CAAC;QAEF,eAAe;QACf,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,cAAc,CAAC,MAAM,CAAC;QACrD,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC,CAAC;QAEzE,uBAAuB;QACvB,MAAM,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;QAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,kGAAkG;QAClG,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,EAAE;YAChE,UAAU;YACV,IAAI,EAAE,OAAO;gBACX,CAAC,CAAC,GAAG,EAAE,CACH,IAAI,CAAC,iBAAiB,CACpB,SAAS,EACT,EAAE,MAAM,EAAE,UAAW,EAAE,KAAK,EAAE,EAC9B,MAAM,CACP;gBACL,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CACP,EAAU,EACV,IAAiB,EACjB,MAAoB;QAKpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAY,EAAE,CAAC,CAAC;QAE/D,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAE5D,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QAED,6EAA6E;QAC7E,8DAA8D;QAC9D,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,QAAQ,CAAC,KAAK,CAAC,KAA0B,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,OAAO;YACL,QAAQ;YACR,QAAQ;SACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,IAAY,EACZ,IAAiB,EACjB,MAAoB;QAKpB,8CAA8C;QAC9C,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iFAAiF;YACjF,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClE,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,0CAA0C;QAC1C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAY,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,UAAkB,EAClB,IAAiB,EACjB,MAAsB,EACtB,MAAoB;QAEpB,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE5D,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QACvC,MAAM,MAAM,GAA4C,EAAE,CAAC;QAE3D,yFAAyF;QACzF,8DAA8D;QAC9D,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;gBAE1C,mBAAmB;gBACnB,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7D,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,eAAe,CAAC,MAAM,CAAC;gBACtD,MAAM,eAAe,GAAG,eAAe,CAAC,KAAK,CAC3C,UAAU,EACV,UAAU,GAAG,KAAK,CACnB,CAAC;gBAEF,MAAM,CAAC,KAAK,CAAC,GAAG;oBACd,OAAO,EAAE,eAAe;oBACxB,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE;iBACvD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,MAAoB,EACpB,IAAiB,EACjB,MAAsB,EACtB,MAAoB;QAEpB,IAAI,OAAiC,CAAC;QACtC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACtE,CAAC;YAED,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAEjE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAErE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3B,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CACjC,MAAM,CAAC,QAAQ,EACf,IAAI,EACJ,MAAM,EACN,MAAM,CACP,CAAC;YAEF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACvB,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,QAAoB,EAAE,MAAoB;QACrD,MAAM,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAEjD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QAED,wEAAwE;QACxE,MAAM,KAAK,GAA8B;YACvC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY;YACnC,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;SAC/B,CAAC;QAEF,mBAAmB;QACnB,KAAK,CAAC,OAAO,GAAG;YACd,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC7B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS;YACxC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;YAChC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe;YAChD,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY;SAC3C,CAAC;QAEF,8EAA8E;QAC9E,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAClC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAClC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACtC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAElC,MAAM,YAAY,GAAW;YAC3B,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS;YAClC,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,UAAU;YACjB,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxC,KAAK;SACN,CAAC;QAEF,6DAA6D;QAC7D,MAAM,YAAY,GAA+B;YAC/C,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY;YACnC,WAAW,EAAE,OAAO;YACpB,SAAS,EAAE,OAAO,EAAE,sDAAsD;YAC1E,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC9B,YAAY,EAAE,QAAQ,CAAC,KAAK;SAC7B,CAAC;QAEF,MAAM,aAAa,GAAW;YAC5B,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU;YACnC,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,UAAU;YACjB,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxC,KAAK,EAAE,YAAY;SACpB,CAAC;QAEF,6EAA6E;QAC7E,MAAM,GAAG,GAAQ;YACf,EAAE,EAAE,MAAM,EAAE;YACZ,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC9B,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;YACtC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,EAAE;SACjB,CAAC;QAEF,4CAA4C;QAC5C,MAAM,OAAO,GAAY;YACvB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,MAAM,EAAE,SAAS,CAAC,OAAO;YACzB,eAAe;SAChB,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAErC,kBAAkB;QAClB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE9B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,EAAU,EACV,SAA2B,EAC3B,MAAoB;QAEpB,MAAM,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAEjD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,WAAW,GAA8B;YAC7C,UAAU,EAAE,EAAE;YACd,SAAS;SACV,CAAC;QAEF,MAAM,MAAM,GAAW;YACrB,EAAE,EAAE,GAAG,EAAE,SAAS;YAClB,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,UAAU;YACjB,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxC,KAAK,EAAE,WAAW;SACnB,CAAC;QAEF,MAAM,GAAG,GAAQ;YACf,EAAE,EAAE,MAAM,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,EAAE;SACjB,CAAC;QAEF,MAAM,OAAO,GAAY;YACvB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,MAAM,EAAE,SAAS,CAAC,OAAO;YACzB,eAAe;SAChB,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAErC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE9B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,OAAiB;QACxC,MAAM,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAEjD,6EAA6E;QAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE3E,uCAAuC;QACvC,MAAM,GAAG,GAAQ;YACf,EAAE,EAAE,MAAM,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,MAAM,EAAE,yBAAyB;YACzC,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,EAAE;SACjB,CAAC;QAEF,4CAA4C;QAC5C,MAAM,OAAO,GAAY;YACvB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,MAAM,EAAE,SAAS,CAAC,OAAO;YACzB,eAAe;SAChB,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAErC,kBAAkB;QAClB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE9B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,OAA6B,EAC7B,MAAoB;QAEpB,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QACD,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACnC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;QACjD,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACnC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;QAC5C,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAE,CAAC;YAC/C,MAAM,OAAO,GAAY;gBACvB,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,SAAS,CAAC,OAAO;gBACzB,eAAe;aAChB,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACrC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBACpB,MAAM,IAAI,UAAU,EAAE,CAAC;gBACzB,CAAC;gBACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAE,CAAC;gBACzD,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;gBACvC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CACrC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAE,CACxC,CAAC;gBACF,MAAM,GAAG,GAAQ;oBACf,EAAE,EAAE,KAAK;oBACT,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,SAAS,EAAE,eAAe;oBAC1B,SAAS;oBACT,UAAU,EAAE,CAAC;oBACb,YAAY,EAAE,EAAE;iBACjB,CAAC;gBACF,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC9B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC;gBAAC,OAAO,WAAW,EAAE,CAAC;oBACrB,uCAAuC;gBACzC,CAAC;YACH,CAAC;YACD,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxC,IAAI,CAAC,UAAU,CAAC,UAAU,CACxB,OAAO,CAAC,EAAE,EACV,WAAW,CAAC,sBAAsB,CAAC,CACpC,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAwB;YAClC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;SACnC,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,QAAgB,EAChB,WAAqB,EACrB,IAAiB,EACjB,MAAoB;QAEpB,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,OAAO,GAAa,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACtD,EAAE,EAAE,MAAM,EAAE;YACZ,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,UAAU;YACjB,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxC,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,OAAO;gBACjB,gBAAgB,EAAE,OAAO;aAC1B;SACF,CAAC,CAAC,CAAC;QAEJ,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,WAAqB,EACrB,IAAiB,EACjB,MAAoB;QAEpB,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,OAAO,GAAa,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACtD,EAAE,EAAE,MAAM,EAAE;YACZ,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,UAAU;YACjB,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxC,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,OAAO;gBACjB,gBAAgB,EAAE,OAAO;aAC1B;SACF,CAAC,CAAC,CAAC;QAEJ,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,KAAa,EAAE,MAAoB;QAC9C,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAEpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,8DAA8D;YAC9D,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,eAAe,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACzC,iBAAiB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC3C,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC;aACpC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,SAAS,CACrB,GAAa,EACb,IAAiB,EACjB,MAAsB,EACtB,MAAoB;QAEpB,MAAM,SAAS,GAAiB,EAAE,CAAC;QAEnC,mDAAmD;QACnD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,UAAU,EAAE,CAAC;YACzB,CAAC;YAED,IAAI,QAAoB,CAAC;YACzB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAa,EAAE,CAAC,CAAC;YAC5D,CAAC;YAAC,MAAM,CAAC;gBACP,uDAAuD;gBACvD,6DAA6D;gBAC7D,SAAS;YACX,CAAC;YAED,6EAA6E;YAC7E,8DAA8D;YAC9D,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC/B,OAAO,QAAQ,CAAC,KAAK,CAAC,KAA0B,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QAED,eAAe;QACf,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC;QAChD,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC,CAAC;QAEvE,uBAAuB;QACvB,MAAM,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;QACtD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,OAAO;YACL,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE;YAC3D,UAAU;YACV,IAAI,EAAE,OAAO;gBACX,CAAC,CAAC,GAAG,EAAE,CACH,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,UAAW,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC;gBACrE,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CACvB,KAAe,EACf,IAAiB,EACjB,MAAsB,EACtB,MAAoB;QAEpB,MAAM,SAAS,GAAiB,EAAE,CAAC;QAEnC,sCAAsC;QACtC,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;YACjD,6DAA6D;YAC7D,GAAG,GAAG,EAAE,CAAC;QACX,CAAC;QAED,qCAAqC;QACrC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,UAAU,EAAE,CAAC;YACzB,CAAC;YAED,IAAI,QAAoB,CAAC;YACzB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAa,EAAE,CAAC,CAAC;YAC5D,CAAC;YAAC,MAAM,CAAC;gBACP,uDAAuD;gBACvD,SAAS;YACX,CAAC;YAED,6EAA6E;YAC7E,8DAA8D;YAC9D,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC/B,OAAO,QAAQ,CAAC,KAAK,CAAC,KAA0B,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QAED,oEAAoE;QACpE,8DAA8D;QAC9D,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC;QAChD,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC,CAAC;QAEvE,uBAAuB;QACvB,MAAM,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;QACtD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,OAAO;YACL,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE;YAC3D,UAAU;YACV,IAAI,EAAE,OAAO;gBACX,CAAC,CAAC,GAAG,EAAE,CACH,IAAI,CAAC,WAAW,CACd,KAAK,EACL,IAAI,EACJ,EAAE,MAAM,EAAE,UAAW,EAAE,KAAK,EAAE,EAC9B,MAAM,CACP;gBACL,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAC1B,QAAgB,EAChB,IAAiB,EACjB,MAAsB,EACtB,MAAoB;QAEpB,sCAAsC;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAElE,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,SAAS,GAAiB,EAAE,CAAC;QAEnC,4BAA4B;QAC5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,UAAU,EAAE,CAAC;YACzB,CAAC;YAED,IAAI,QAAoB,CAAC;YACzB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAa,OAAO,CAAC,CAAC;YACjE,CAAC;YAAC,MAAM,CAAC;gBACP,uDAAuD;gBACvD,6DAA6D;gBAC7D,SAAS;YACX,CAAC;YAED,6EAA6E;YAC7E,8DAA8D;YAC9D,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC/B,OAAO,QAAQ,CAAC,KAAK,CAAC,KAA0B,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QAED,eAAe;QACf,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC;QAChD,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC,CAAC;QAEvE,uBAAuB;QACvB,MAAM,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;QACtD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,OAAO;YACL,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE;YAC3D,UAAU;YACV,IAAI,EAAE,OAAO;gBACX,CAAC,CAAC,GAAG,EAAE,CACH,IAAI,CAAC,cAAc,CACjB,QAAQ,EACR,IAAI,EACJ,EAAE,MAAM,EAAE,UAAW,EAAE,KAAK,EAAE,EAC9B,MAAM,CACP;gBACL,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU,CACtB,IAAY,EACZ,IAAiB,EACjB,MAAsB,EACtB,MAAoB;QAEpB,MAAM,SAAS,GAAiB,EAAE,CAAC;QAEnC,2CAA2C;QAC3C,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,GAAG,CAAC;QAEnC,yCAAyC;QACzC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,GAC1C,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAE7D,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QAED,gCAAgC;QAChC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,UAAU,EAAE,CAAC;YACzB,CAAC;YAED,IAAI,QAAoB,CAAC;YACzB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAa,UAAU,CAAC,CAAC;YACpE,CAAC;YAAC,MAAM,CAAC;gBACP,yCAAyC;gBACzC,SAAS;YACX,CAAC;YAED,oBAAoB;YACpB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC/B,OAAO,QAAQ,CAAC,KAAK,CAAC,KAA0B,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,CAAC;QAED,mDAAmD;QACnD,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE;YACnD,UAAU;YACV,IAAI,EAAE,UAAU;gBACd,CAAC,CAAC,KAAK,IAAI,EAAE,CACT,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC;gBACtE,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,168 @@
1
+ import type { Action, DocumentModelModule, Operation, PHDocument } from "document-model";
2
+ import type { JobInfo, PagedResults, PagingOptions, PropagationMode, SearchFilter, ShutdownStatus, ViewFilter } from "../shared/types.js";
3
+ import type { DocumentViewDatabase } from "../read-models/types.js";
4
+ import type { DocumentIndexerDatabase, Database as StorageDatabase } from "../storage/kysely/types.js";
5
+ /**
6
+ * A single mutation job within a batch request.
7
+ */
8
+ export type MutationJobPlan = {
9
+ key: string;
10
+ documentId: string;
11
+ scope: string;
12
+ branch: string;
13
+ actions: Action[];
14
+ dependsOn: string[];
15
+ };
16
+ /**
17
+ * Request for batch mutation operation.
18
+ */
19
+ export type BatchMutationRequest = {
20
+ jobs: MutationJobPlan[];
21
+ };
22
+ /**
23
+ * Result from batch mutation operation.
24
+ */
25
+ export type BatchMutationResult = {
26
+ jobs: Record<string, JobInfo>;
27
+ };
28
+ /**
29
+ * The main Reactor interface that serves as a facade for document operations.
30
+ * This interface provides a unified API for document management, including
31
+ * creation, retrieval, mutation, and deletion operations.
32
+ *
33
+ * Phase 2 of the refactoring plan: IReactor Facade (Strangler Fig Pattern)
34
+ */
35
+ export interface IReactor {
36
+ /**
37
+ * Signals that the reactor should shutdown.
38
+ */
39
+ kill(): ShutdownStatus;
40
+ /**
41
+ * Retrieves a list of document model modules.
42
+ *
43
+ * @param namespace - Optional namespace like "powerhouse" or "sky", defaults to ""
44
+ * @param paging - Optional options for paging data in large queries.
45
+ * @param signal - Optional abort signal to cancel the request
46
+ * @returns List of document model modules
47
+ */
48
+ getDocumentModels(namespace?: string, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<DocumentModelModule>>;
49
+ /**
50
+ * Retrieves a specific PHDocument by id
51
+ *
52
+ * @param id - Required, this is the document id
53
+ * @param view - Optional filter containing branch and scopes information
54
+ * @param signal - Optional abort signal to cancel the request
55
+ * @returns The up-to-date PHDocument with scopes and list of child document ids
56
+ */
57
+ get<TDocument extends PHDocument>(id: string, view?: ViewFilter, signal?: AbortSignal): Promise<{
58
+ document: TDocument;
59
+ childIds: string[];
60
+ }>;
61
+ /**
62
+ * Retrieves a specific PHDocument by slug
63
+ *
64
+ * @param slug - Required, this is the document slug
65
+ * @param view - Optional filter containing branch and scopes information
66
+ * @param signal - Optional abort signal to cancel the request
67
+ * @returns The up-to-date PHDocument with scopes and list of child document ids
68
+ */
69
+ getBySlug<TDocument extends PHDocument>(slug: string, view?: ViewFilter, signal?: AbortSignal): Promise<{
70
+ document: TDocument;
71
+ childIds: string[];
72
+ }>;
73
+ /**
74
+ * Retrieves the operations for a document
75
+ *
76
+ * @param documentId - The document id
77
+ * @param view - Optional filter containing branch and scopes information
78
+ * @param paging - Optional pagination options
79
+ * @param signal - Optional abort signal to cancel the request
80
+ * @returns The list of operations
81
+ */
82
+ getOperations(documentId: string, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<Record<string, PagedResults<Operation>>>;
83
+ /**
84
+ * Filters documents by criteria and returns a list of them
85
+ *
86
+ * @param search - Search filter options (type, parentId, identifiers)
87
+ * @param view - Optional filter containing branch and scopes information
88
+ * @param paging - Optional pagination options
89
+ * @param signal - Optional abort signal to cancel the request
90
+ * @returns List of documents matching criteria and pagination cursor
91
+ */
92
+ find(search: SearchFilter, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<PHDocument>>;
93
+ /**
94
+ * Creates a document
95
+ *
96
+ * @param document - Document with optional id, slug, parent, model type, and initial state
97
+ * @param signal - Optional abort signal to cancel the request
98
+ * @returns The job status
99
+ */
100
+ create(document: PHDocument, signal?: AbortSignal): Promise<JobInfo>;
101
+ /**
102
+ * Deletes a document
103
+ *
104
+ * @param id - Document id
105
+ * @param propagate - Optional mode for handling children, CASCADE deletes child documents
106
+ * @param signal - Optional abort signal to cancel the request
107
+ * @returns The job id and status
108
+ */
109
+ deleteDocument(id: string, propagate?: PropagationMode, signal?: AbortSignal): Promise<JobInfo>;
110
+ /**
111
+ * Applies a list of actions to a document.
112
+ *
113
+ * @param id - Document id
114
+ * @param actions - List of actions to apply
115
+ * @returns The job id and status
116
+ */
117
+ mutate(id: string, actions: Action[]): Promise<JobInfo>;
118
+ /**
119
+ * Applies multiple mutations across documents with dependency management.
120
+ *
121
+ * @param request - Batch mutation request containing jobs with dependencies
122
+ * @param signal - Optional abort signal to cancel the request
123
+ * @returns Map of job keys to job information
124
+ */
125
+ mutateBatch(request: BatchMutationRequest, signal?: AbortSignal): Promise<BatchMutationResult>;
126
+ /**
127
+ * Adds multiple documents as children to another
128
+ *
129
+ * @param parentId - Parent document id
130
+ * @param documentIds - List of document ids to add as children
131
+ * @param view - Optional filter containing branch and scopes information
132
+ * @param signal - Optional abort signal to cancel the request
133
+ * @returns The job id and status
134
+ */
135
+ addChildren(parentId: string, documentIds: string[], view?: ViewFilter, signal?: AbortSignal): Promise<JobInfo>;
136
+ /**
137
+ * Removes multiple documents as children from another
138
+ *
139
+ * @param parentId - Parent document id
140
+ * @param documentIds - List of document ids to remove as children
141
+ * @param view - Optional filter containing branch and scopes information
142
+ * @param signal - Optional abort signal to cancel the request
143
+ * @returns The job id and status
144
+ */
145
+ removeChildren(parentId: string, documentIds: string[], view?: ViewFilter, signal?: AbortSignal): Promise<JobInfo>;
146
+ /**
147
+ * Retrieves the status of a job
148
+ *
149
+ * @param jobId - The job id
150
+ * @returns The job status
151
+ */
152
+ getJobStatus(jobId: string, signal?: AbortSignal): Promise<JobInfo>;
153
+ }
154
+ /**
155
+ * Feature flags for reactor configuration
156
+ */
157
+ export type ReactorFeatures = {
158
+ /** Enable or disable legacy storage reads and writes. Default: true for backward compatibility */
159
+ legacyStorageEnabled?: boolean;
160
+ };
161
+ export type ExecutorConfig = {
162
+ count: number;
163
+ };
164
+ /**
165
+ * Combined database type that includes all schemas
166
+ */
167
+ export type Database = StorageDatabase & DocumentViewDatabase & DocumentIndexerDatabase;
168
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ import type { Action, PHDocument } from "document-model";
2
+ import type { ErrorInfo, PagedResults } from "../shared/types.js";
3
+ /**
4
+ * Represents a minimal job plan for validation purposes
5
+ */
6
+ export type JobPlanForValidation = {
7
+ key: string;
8
+ actions: Action[];
9
+ dependsOn: string[];
10
+ };
11
+ /**
12
+ * Represents a job plan with scope information for action validation
13
+ */
14
+ export type JobPlanWithScope = {
15
+ key: string;
16
+ scope: string;
17
+ actions: Action[];
18
+ };
19
+ /**
20
+ * Represents a job plan with dependencies for topological sorting
21
+ */
22
+ export type JobPlanForSorting = {
23
+ key: string;
24
+ dependsOn: string[];
25
+ };
26
+ /**
27
+ * Validates a batch mutation request for common errors
28
+ */
29
+ export declare function validateBatchRequest(jobs: JobPlanForValidation[]): void;
30
+ /**
31
+ * Validates that all actions in a job match the declared scope
32
+ */
33
+ export declare function validateActionScopes(job: JobPlanWithScope): void;
34
+ /**
35
+ * Performs topological sort on jobs based on dependencies
36
+ */
37
+ export declare function topologicalSort(jobs: JobPlanForSorting[]): string[];
38
+ /**
39
+ * Converts an Error or string to ErrorInfo
40
+ */
41
+ export declare function toErrorInfo(error: Error | string): ErrorInfo;
42
+ /**
43
+ * Filters paged results by parent ID
44
+ */
45
+ export declare function filterByParentId(results: PagedResults<PHDocument>, parentId: string): PagedResults<PHDocument>;
46
+ /**
47
+ * Filters paged results by document type
48
+ */
49
+ export declare function filterByType(results: PagedResults<PHDocument>, type: string): PagedResults<PHDocument>;
50
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/core/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAiDvE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAShE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAoBnE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAW5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,EAEjC,QAAQ,EAAE,MAAM,GACf,YAAY,CAAC,UAAU,CAAC,CAG1B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,EACjC,IAAI,EAAE,MAAM,GACX,YAAY,CAAC,UAAU,CAAC,CAoB1B"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Validates a batch mutation request for common errors
3
+ */
4
+ export function validateBatchRequest(jobs) {
5
+ const keys = new Set();
6
+ for (const job of jobs) {
7
+ if (keys.has(job.key)) {
8
+ throw new Error(`Duplicate plan key: ${job.key}`);
9
+ }
10
+ keys.add(job.key);
11
+ }
12
+ for (const job of jobs) {
13
+ for (const depKey of job.dependsOn) {
14
+ if (!keys.has(depKey)) {
15
+ throw new Error(`Job '${job.key}' depends on non-existent key: ${depKey}`);
16
+ }
17
+ }
18
+ }
19
+ const visited = new Set();
20
+ const recStack = new Set();
21
+ const detectCycle = (key) => {
22
+ visited.add(key);
23
+ recStack.add(key);
24
+ const job = jobs.find((j) => j.key === key);
25
+ if (job) {
26
+ for (const depKey of job.dependsOn) {
27
+ if (!visited.has(depKey)) {
28
+ if (detectCycle(depKey)) {
29
+ return true;
30
+ }
31
+ }
32
+ else if (recStack.has(depKey)) {
33
+ return true;
34
+ }
35
+ }
36
+ }
37
+ recStack.delete(key);
38
+ return false;
39
+ };
40
+ for (const job of jobs) {
41
+ if (!visited.has(job.key)) {
42
+ if (detectCycle(job.key)) {
43
+ throw new Error(`Dependency cycle detected involving key: ${job.key}`);
44
+ }
45
+ }
46
+ }
47
+ for (const job of jobs) {
48
+ if (job.actions.length === 0) {
49
+ throw new Error(`Job '${job.key}' has empty actions array`);
50
+ }
51
+ }
52
+ }
53
+ /**
54
+ * Validates that all actions in a job match the declared scope
55
+ */
56
+ export function validateActionScopes(job) {
57
+ for (const action of job.actions) {
58
+ const actionScope = action.scope || "global";
59
+ if (actionScope !== job.scope) {
60
+ throw new Error(`Job '${job.key}' declares scope '${job.scope}' but action has scope '${actionScope}'`);
61
+ }
62
+ }
63
+ }
64
+ /**
65
+ * Performs topological sort on jobs based on dependencies
66
+ */
67
+ export function topologicalSort(jobs) {
68
+ const result = [];
69
+ const visited = new Set();
70
+ const visit = (key) => {
71
+ if (visited.has(key)) {
72
+ return;
73
+ }
74
+ visited.add(key);
75
+ const job = jobs.find((j) => j.key === key);
76
+ if (job) {
77
+ for (const depKey of job.dependsOn) {
78
+ visit(depKey);
79
+ }
80
+ }
81
+ result.push(key);
82
+ };
83
+ for (const job of jobs) {
84
+ visit(job.key);
85
+ }
86
+ return result;
87
+ }
88
+ /**
89
+ * Converts an Error or string to ErrorInfo
90
+ */
91
+ export function toErrorInfo(error) {
92
+ if (error instanceof Error) {
93
+ return {
94
+ message: error.message,
95
+ stack: error.stack || new Error().stack || "",
96
+ };
97
+ }
98
+ return {
99
+ message: error,
100
+ stack: new Error().stack || "",
101
+ };
102
+ }
103
+ /**
104
+ * Filters paged results by parent ID
105
+ */
106
+ export function filterByParentId(results,
107
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
108
+ parentId) {
109
+ // TODO: Implement filterByParentId
110
+ return results;
111
+ }
112
+ /**
113
+ * Filters paged results by document type
114
+ */
115
+ export function filterByType(results, type) {
116
+ // Filter documents by their document type from the header
117
+ const filteredDocuments = results.results.filter((document) => document.header.documentType === type);
118
+ // Create new paged results with filtered documents
119
+ // Note: This maintains the same paging structure but with filtered results
120
+ return {
121
+ results: filteredDocuments,
122
+ options: results.options,
123
+ nextCursor: results.nextCursor,
124
+ next: results.next
125
+ ? async () => {
126
+ // If there's a next function, apply the same filter to the next page
127
+ const nextResults = await results.next();
128
+ return filterByType(nextResults, type);
129
+ }
130
+ : undefined,
131
+ };
132
+ }
133
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/utils.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { IEventBus } from "./interfaces.js";
2
- import { Unsubscribe } from "./types.js";
1
+ import type { IEventBus } from "./interfaces.js";
2
+ import type { Subscriber, Unsubscribe } from "./types.js";
3
3
  export declare class EventBus implements IEventBus {
4
- private eventTypeToSubscribers;
4
+ readonly eventTypeToSubscribers: Map<number, Subscriber[]>;
5
5
  subscribe<K>(type: number, subscriber: (type: number, event: K) => void | Promise<void>): Unsubscribe;
6
6
  emit(type: number, data: any): Promise<void>;
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../../src/events/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAsC,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7E,qBAAa,QAAS,YAAW,SAAS;IACxC,OAAO,CAAC,sBAAsB,CAAwC;IAEtE,SAAS,CAAC,CAAC,EACT,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC3D,WAAW;IA8BR,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAwBnD"}
1
+ {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../../src/events/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG1D,qBAAa,QAAS,YAAW,SAAS;IACxC,SAAgB,sBAAsB,4BAAmC;IAEzE,SAAS,CAAC,CAAC,EACT,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC3D,WAAW;IA8BR,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAwBnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../../src/events/event-bus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAA2B,MAAM,YAAY,CAAC;AAE7E,MAAM,OAAO,QAAQ;IACX,sBAAsB,GAA8B,IAAI,GAAG,EAAE,CAAC;IAEtE,SAAS,CACP,IAAY,EACZ,UAA4D;QAE5D,IAAI,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,EAAE,CAAC;YACV,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAwB,CAAC,CAAC;QAEpC,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,OAAO,GAAG,EAAE;YACV,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,IAAI,GAAG,IAAI,CAAC;YAEZ,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YAED,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAwB,CAAC,CAAC;YAClD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,IAAS;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,kFAAkF;QAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE9B,2DAA2D;QAC3D,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../../src/events/event-bus.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,OAAO,QAAQ;IACH,sBAAsB,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEzE,SAAS,CACP,IAAY,EACZ,UAA4D;QAE5D,IAAI,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,EAAE,CAAC;YACV,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAwB,CAAC,CAAC;QAEpC,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,OAAO,GAAG,EAAE;YACV,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,IAAI,GAAG,IAAI,CAAC;YAEZ,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YAED,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAwB,CAAC,CAAC;YAClD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,IAAS;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,kFAAkF;QAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE9B,2DAA2D;QAC3D,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { Unsubscribe } from "./types.js";
1
+ import type { Unsubscribe } from "./types.js";
2
2
  /**
3
3
  * Describes an object that manages event subscriptions and emissions.
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/events/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;;;OAQG;IACH,SAAS,CAAC,CAAC,EACT,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC3D,WAAW,CAAC;IAEf;;;;;;;;OAQG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/events/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;;;OAQG;IACH,SAAS,CAAC,CAAC,EACT,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC3D,WAAW,CAAC;IAEf;;;;;;;;OAQG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C"}
@@ -1,3 +1,4 @@
1
+ import type { OperationWithContext } from "#storage/interfaces.js";
1
2
  /**
2
3
  * Describes a function to unsubscribe from an event.
3
4
  */
@@ -19,6 +20,19 @@ export type Subscriber = (type: number, data: any) => void | Promise<void>;
19
20
  */
20
21
  export declare class EventBusAggregateError extends Error {
21
22
  readonly errors: any[];
22
- constructor(errors: any[]);
23
+ constructor(errors: unknown[]);
23
24
  }
25
+ /**
26
+ * Event types for operation-related events.
27
+ */
28
+ export declare const OperationEventTypes: {
29
+ readonly OPERATION_WRITTEN: 10001;
30
+ };
31
+ /**
32
+ * Event emitted when operations are written to IOperationStore.
33
+ * Contains the operations directly to avoid round-trip queries.
34
+ */
35
+ export type OperationWrittenEvent = {
36
+ operations: OperationWithContext[];
37
+ };
24
38
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/events/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3E;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAgB,MAAM,EAAE,GAAG,EAAE,CAAC;gBAElB,MAAM,EAAE,GAAG,EAAE;CAc1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/events/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3E;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAgB,MAAM,EAAE,GAAG,EAAE,CAAC;gBAElB,MAAM,EAAE,OAAO,EAAE;CAc9B;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;;CAEtB,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,oBAAoB,EAAE,CAAC;CACpC,CAAC"}
@@ -17,4 +17,10 @@ export class EventBusAggregateError extends Error {
17
17
  this.errors = errors;
18
18
  }
19
19
  }
20
+ /**
21
+ * Event types for operation-related events.
22
+ */
23
+ export const OperationEventTypes = {
24
+ OPERATION_WRITTEN: 10001,
25
+ };
20
26
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/events/types.ts"],"names":[],"mappings":"AAkBA;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/B,MAAM,CAAQ;IAE9B,YAAY,MAAa;QACvB,MAAM,OAAO,GAAG,6BAA6B,MAAM,CAAC,MAAM,cAAc,MAAM;aAC3E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACjD,OAAO,CAAC,CAAC,OAAO,CAAC;YACnB,CAAC;YACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChB,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/events/types.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/B,MAAM,CAAQ;IAE9B,YAAY,MAAiB;QAC3B,MAAM,OAAO,GAAG,6BAA6B,MAAM,CAAC,MAAM,cAAc,MAAM;aAC3E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACjD,OAAQ,CAAW,CAAC,OAAO,CAAC;YAC9B,CAAC;YACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChB,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,iBAAiB,EAAE,KAAK;CAChB,CAAC"}
@@ -1,72 +1,49 @@
1
- import { Job } from "../queue/types.js";
2
- import { JobExecutorConfig, JobResult } from "./types.js";
1
+ import type { Job } from "../queue/types.js";
2
+ import type { ExecutorManagerStatus, JobResult } from "./types.js";
3
3
  /**
4
- * Interface for executing jobs from the queue.
5
- * Listens for 'jobAvailable' events from the event bus and pulls jobs from IQueue when capacity allows.
4
+ * Simple interface for executing a job.
5
+ * A JobExecutor simply takes a job and executes it - nothing more.
6
6
  */
7
7
  export interface IJobExecutor {
8
8
  /**
9
- * Start the job executor.
10
- * Begins listening for 'jobAvailable' events from the event bus and executing jobs when capacity allows.
11
- *
12
- * @param config - Configuration options for the executor
13
- * @returns Promise that resolves when the executor is started
14
- */
15
- start(config?: JobExecutorConfig): Promise<void>;
16
- /**
17
- * Stop the job executor.
18
- * Gracefully stops listening for events and waits for current jobs to complete.
19
- * @param graceful - Whether to wait for current jobs to complete
20
- * @returns Promise that resolves when the executor is stopped
21
- */
22
- stop(graceful?: boolean): Promise<void>;
23
- /**
24
- * Execute a single job immediately.
9
+ * Execute a single job.
25
10
  * @param job - The job to execute
26
11
  * @returns Promise that resolves to the job result
27
12
  */
28
13
  executeJob(job: Job): Promise<JobResult>;
14
+ }
15
+ /**
16
+ * Interface for managing multiple job executors.
17
+ * Listens for 'jobAvailable' events from the event bus, pulls jobs from the queue,
18
+ * and coordinates the distribution of jobs across multiple executor instances.
19
+ */
20
+ export interface IJobExecutorManager {
29
21
  /**
30
- * Get the current status of the job executor.
31
- * @returns Promise that resolves to the executor status
32
- */
33
- getStatus(): Promise<{
34
- isRunning: boolean;
35
- activeJobs: number;
36
- totalJobsProcessed: number;
37
- totalJobsSucceeded: number;
38
- totalJobsFailed: number;
39
- lastJobCompletedAt?: string;
40
- uptime?: number;
41
- }>;
42
- /**
43
- * Get statistics about job execution performance.
44
- * @returns Promise that resolves to execution statistics
22
+ * Start the executor manager.
23
+ * Begins listening for 'jobAvailable' events and dispatching to executors.
24
+ *
25
+ * @param numExecutors - Number of executor instances to create
26
+ * @returns Promise that resolves when the manager is started
45
27
  */
46
- getStats(): Promise<{
47
- averageExecutionTime: number;
48
- successRate: number;
49
- jobsPerSecond: number;
50
- queueBacklog: number;
51
- }>;
28
+ start(numExecutors: number): Promise<void>;
52
29
  /**
53
- * Pause job execution.
54
- * Stops processing new jobs but keeps the executor running.
55
- * @returns Promise that resolves when execution is paused
30
+ * Stop the executor manager.
31
+ *
32
+ * @param graceful - Whether to wait for current jobs to complete
33
+ * @returns Promise that resolves when the manager is stopped
56
34
  */
57
- pause(): Promise<void>;
35
+ stop(graceful?: boolean): Promise<void>;
58
36
  /**
59
- * Resume job execution.
60
- * Resumes processing jobs from the queue.
61
- * @returns Promise that resolves when execution is resumed
37
+ * Get all managed executor instances.
38
+ *
39
+ * @returns Array of executor instances
62
40
  */
63
- resume(): Promise<void>;
41
+ getExecutors(): IJobExecutor[];
64
42
  /**
65
- * Subscribe to job execution events.
66
- * @param event - The event type to subscribe to
67
- * @param handler - The event handler function
68
- * @returns Function to unsubscribe from the event
43
+ * Get the current status of the manager.
44
+ *
45
+ * @returns The current manager status
69
46
  */
70
- on(event: "jobStarted" | "jobCompleted" | "jobFailed" | "executorStarted" | "executorStopped", handler: (data: any) => void): () => void;
47
+ getStatus(): ExecutorManagerStatus;
71
48
  }
72
49
  //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/executor/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjD;;;;;OAKG;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAEzC;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,eAAe,EAAE,MAAM,CAAC;QACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IAEH;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC;QAClB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IAEH;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;;;;OAKG;IACH,EAAE,CACA,KAAK,EACD,YAAY,GACZ,cAAc,GACd,WAAW,GACX,iBAAiB,GACjB,iBAAiB,EACrB,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAC3B,MAAM,IAAI,CAAC;CACf"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/executor/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CAC1C;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;;;;OAKG;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;;OAIG;IACH,YAAY,IAAI,YAAY,EAAE,CAAC;IAE/B;;;;OAIG;IACH,SAAS,IAAI,qBAAqB,CAAC;CACpC"}