@powerhousedao/reactor 5.0.0-staging.9 → 5.0.1-staging.1

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 (248) 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/{reactor.d.ts → core/reactor.d.ts} +13 -30
  34. package/dist/src/core/reactor.d.ts.map +1 -0
  35. package/dist/src/{reactor.js → core/reactor.js} +147 -111
  36. package/dist/src/core/reactor.js.map +1 -0
  37. package/dist/src/{interfaces/reactor.d.ts → core/types.d.ts} +7 -7
  38. package/dist/src/core/types.d.ts.map +1 -0
  39. package/dist/src/core/types.js +2 -0
  40. package/dist/src/core/types.js.map +1 -0
  41. package/dist/src/{utils.d.ts → core/utils.d.ts} +2 -2
  42. package/dist/src/core/utils.d.ts.map +1 -0
  43. package/dist/src/core/utils.js.map +1 -0
  44. package/dist/src/events/event-bus.d.ts +2 -2
  45. package/dist/src/events/event-bus.d.ts.map +1 -1
  46. package/dist/src/events/event-bus.js +1 -1
  47. package/dist/src/events/event-bus.js.map +1 -1
  48. package/dist/src/events/interfaces.d.ts +1 -1
  49. package/dist/src/events/interfaces.d.ts.map +1 -1
  50. package/dist/src/events/types.d.ts +14 -0
  51. package/dist/src/events/types.d.ts.map +1 -1
  52. package/dist/src/events/types.js +6 -0
  53. package/dist/src/events/types.js.map +1 -1
  54. package/dist/src/executor/interfaces.d.ts +2 -2
  55. package/dist/src/executor/interfaces.d.ts.map +1 -1
  56. package/dist/src/executor/simple-job-executor-manager.d.ts +5 -1
  57. package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -1
  58. package/dist/src/executor/simple-job-executor-manager.js +98 -36
  59. package/dist/src/executor/simple-job-executor-manager.js.map +1 -1
  60. package/dist/src/executor/simple-job-executor.d.ts +32 -3
  61. package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
  62. package/dist/src/executor/simple-job-executor.js +436 -17
  63. package/dist/src/executor/simple-job-executor.js.map +1 -1
  64. package/dist/src/executor/types.d.ts +10 -3
  65. package/dist/src/executor/types.d.ts.map +1 -1
  66. package/dist/src/executor/types.js.map +1 -1
  67. package/dist/src/executor/util.d.ts +47 -0
  68. package/dist/src/executor/util.d.ts.map +1 -0
  69. package/dist/src/executor/util.js +113 -0
  70. package/dist/src/executor/util.js.map +1 -0
  71. package/dist/src/index.d.ts +23 -3
  72. package/dist/src/index.d.ts.map +1 -1
  73. package/dist/src/index.js +30 -2
  74. package/dist/src/index.js.map +1 -1
  75. package/dist/src/job-tracker/in-memory-job-tracker.d.ts +15 -0
  76. package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -0
  77. package/dist/src/job-tracker/in-memory-job-tracker.js +78 -0
  78. package/dist/src/job-tracker/in-memory-job-tracker.js.map +1 -0
  79. package/dist/src/job-tracker/index.d.ts +3 -0
  80. package/dist/src/job-tracker/index.d.ts.map +1 -0
  81. package/dist/src/job-tracker/index.js +2 -0
  82. package/dist/src/job-tracker/index.js.map +1 -0
  83. package/dist/src/job-tracker/interfaces.d.ts +41 -0
  84. package/dist/src/job-tracker/interfaces.d.ts.map +1 -0
  85. package/dist/src/job-tracker/interfaces.js +2 -0
  86. package/dist/src/job-tracker/interfaces.js.map +1 -0
  87. package/dist/src/queue/interfaces.d.ts +1 -1
  88. package/dist/src/queue/interfaces.d.ts.map +1 -1
  89. package/dist/src/queue/job-execution-handle.d.ts +2 -1
  90. package/dist/src/queue/job-execution-handle.d.ts.map +1 -1
  91. package/dist/src/queue/job-execution-handle.js.map +1 -1
  92. package/dist/src/queue/queue.d.ts +3 -3
  93. package/dist/src/queue/queue.d.ts.map +1 -1
  94. package/dist/src/queue/queue.js +47 -25
  95. package/dist/src/queue/queue.js.map +1 -1
  96. package/dist/src/queue/types.d.ts +7 -5
  97. package/dist/src/queue/types.d.ts.map +1 -1
  98. package/dist/src/queue/types.js.map +1 -1
  99. package/dist/src/read-models/coordinator.d.ts +38 -0
  100. package/dist/src/read-models/coordinator.d.ts.map +1 -0
  101. package/dist/src/read-models/coordinator.js +62 -0
  102. package/dist/src/read-models/coordinator.js.map +1 -0
  103. package/dist/src/read-models/document-view.d.ts +20 -0
  104. package/dist/src/read-models/document-view.d.ts.map +1 -0
  105. package/dist/src/read-models/document-view.js +365 -0
  106. package/dist/src/read-models/document-view.js.map +1 -0
  107. package/dist/src/read-models/interfaces.d.ts +29 -0
  108. package/dist/src/read-models/interfaces.d.ts.map +1 -0
  109. package/dist/src/read-models/interfaces.js +2 -0
  110. package/dist/src/read-models/interfaces.js.map +1 -0
  111. package/dist/src/read-models/types.d.ts +46 -0
  112. package/dist/src/read-models/types.d.ts.map +1 -0
  113. package/dist/src/read-models/types.js +2 -0
  114. package/dist/src/read-models/types.js.map +1 -0
  115. package/dist/src/registry/implementation.js +1 -1
  116. package/dist/src/registry/implementation.js.map +1 -1
  117. package/dist/src/shared/awaiter.d.ts +32 -0
  118. package/dist/src/shared/awaiter.d.ts.map +1 -0
  119. package/dist/src/shared/awaiter.js +132 -0
  120. package/dist/src/shared/awaiter.js.map +1 -0
  121. package/dist/src/shared/errors.d.ts +17 -0
  122. package/dist/src/shared/errors.d.ts.map +1 -0
  123. package/dist/src/shared/errors.js +33 -0
  124. package/dist/src/shared/errors.js.map +1 -0
  125. package/dist/src/shared/factories.d.ts +1 -1
  126. package/dist/src/shared/factories.d.ts.map +1 -1
  127. package/dist/src/shared/types.d.ts +8 -0
  128. package/dist/src/shared/types.d.ts.map +1 -1
  129. package/dist/src/shared/types.js +5 -0
  130. package/dist/src/shared/types.js.map +1 -1
  131. package/dist/src/signer/passthrough-signer.d.ts +6 -0
  132. package/dist/src/signer/passthrough-signer.d.ts.map +1 -0
  133. package/dist/src/signer/passthrough-signer.js +6 -0
  134. package/dist/src/signer/passthrough-signer.js.map +1 -0
  135. package/dist/src/signer/types.d.ts +15 -0
  136. package/dist/src/signer/types.d.ts.map +1 -0
  137. package/dist/src/signer/types.js +2 -0
  138. package/dist/src/signer/types.js.map +1 -0
  139. package/dist/src/storage/interfaces.d.ts +121 -0
  140. package/dist/src/storage/interfaces.d.ts.map +1 -0
  141. package/dist/src/storage/interfaces.js +19 -0
  142. package/dist/src/storage/interfaces.js.map +1 -0
  143. package/dist/src/storage/kysely/keyframe-store.d.ts +15 -0
  144. package/dist/src/storage/kysely/keyframe-store.d.ts.map +1 -0
  145. package/dist/src/storage/kysely/keyframe-store.js +71 -0
  146. package/dist/src/storage/kysely/keyframe-store.js.map +1 -0
  147. package/dist/src/storage/kysely/store.d.ts +15 -0
  148. package/dist/src/storage/kysely/store.d.ts.map +1 -0
  149. package/dist/src/storage/kysely/store.js +196 -0
  150. package/dist/src/storage/kysely/store.js.map +1 -0
  151. package/dist/src/storage/kysely/types.d.ts +39 -0
  152. package/dist/src/storage/kysely/types.d.ts.map +1 -0
  153. package/dist/src/storage/kysely/types.js +2 -0
  154. package/dist/src/storage/kysely/types.js.map +1 -0
  155. package/dist/src/storage/txn.d.ts +15 -0
  156. package/dist/src/storage/txn.d.ts.map +1 -0
  157. package/dist/src/storage/txn.js +41 -0
  158. package/dist/src/storage/txn.js.map +1 -0
  159. package/dist/src/subs/default-error-handler.d.ts +13 -0
  160. package/dist/src/subs/default-error-handler.d.ts.map +1 -0
  161. package/dist/src/subs/default-error-handler.js +27 -0
  162. package/dist/src/subs/default-error-handler.js.map +1 -0
  163. package/dist/src/subs/react-subscription-manager.d.ts +45 -0
  164. package/dist/src/subs/react-subscription-manager.d.ts.map +1 -0
  165. package/dist/src/subs/react-subscription-manager.js +185 -0
  166. package/dist/src/subs/react-subscription-manager.js.map +1 -0
  167. package/dist/src/subs/types.d.ts +64 -0
  168. package/dist/src/subs/types.d.ts.map +1 -0
  169. package/dist/src/subs/types.js +2 -0
  170. package/dist/src/subs/types.js.map +1 -0
  171. package/dist/src/utils/reshuffle.d.ts +30 -0
  172. package/dist/src/utils/reshuffle.d.ts.map +1 -0
  173. package/dist/src/utils/reshuffle.js +47 -0
  174. package/dist/src/utils/reshuffle.js.map +1 -0
  175. package/package.json +15 -9
  176. package/dist/bench/event-bus.bench.d.ts +0 -2
  177. package/dist/bench/event-bus.bench.d.ts.map +0 -1
  178. package/dist/bench/event-bus.bench.js +0 -228
  179. package/dist/bench/event-bus.bench.js.map +0 -1
  180. package/dist/bench/queue-only.bench.d.ts +0 -2
  181. package/dist/bench/queue-only.bench.d.ts.map +0 -1
  182. package/dist/bench/queue-only.bench.js +0 -46
  183. package/dist/bench/queue-only.bench.js.map +0 -1
  184. package/dist/bench/reactor-throughput.bench.d.ts +0 -2
  185. package/dist/bench/reactor-throughput.bench.d.ts.map +0 -1
  186. package/dist/bench/reactor-throughput.bench.js +0 -144
  187. package/dist/bench/reactor-throughput.bench.js.map +0 -1
  188. package/dist/src/interfaces/reactor.d.ts.map +0 -1
  189. package/dist/src/interfaces/reactor.js +0 -2
  190. package/dist/src/interfaces/reactor.js.map +0 -1
  191. package/dist/src/reactor.d.ts.map +0 -1
  192. package/dist/src/reactor.js.map +0 -1
  193. package/dist/src/utils.d.ts.map +0 -1
  194. package/dist/src/utils.js.map +0 -1
  195. package/dist/test/event-bus.test.d.ts +0 -2
  196. package/dist/test/event-bus.test.d.ts.map +0 -1
  197. package/dist/test/event-bus.test.js +0 -541
  198. package/dist/test/event-bus.test.js.map +0 -1
  199. package/dist/test/executor/executor-integration.test.d.ts +0 -2
  200. package/dist/test/executor/executor-integration.test.d.ts.map +0 -1
  201. package/dist/test/executor/executor-integration.test.js +0 -287
  202. package/dist/test/executor/executor-integration.test.js.map +0 -1
  203. package/dist/test/executor/job-execution-handle.test.d.ts +0 -2
  204. package/dist/test/executor/job-execution-handle.test.d.ts.map +0 -1
  205. package/dist/test/executor/job-execution-handle.test.js +0 -272
  206. package/dist/test/executor/job-execution-handle.test.js.map +0 -1
  207. package/dist/test/executor/simple-job-executor-manager.test.d.ts +0 -2
  208. package/dist/test/executor/simple-job-executor-manager.test.d.ts.map +0 -1
  209. package/dist/test/executor/simple-job-executor-manager.test.js +0 -132
  210. package/dist/test/executor/simple-job-executor-manager.test.js.map +0 -1
  211. package/dist/test/executor/simple-job-executor.test.d.ts +0 -2
  212. package/dist/test/executor/simple-job-executor.test.d.ts.map +0 -1
  213. package/dist/test/executor/simple-job-executor.test.js +0 -139
  214. package/dist/test/executor/simple-job-executor.test.js.map +0 -1
  215. package/dist/test/factories.d.ts +0 -122
  216. package/dist/test/factories.d.ts.map +0 -1
  217. package/dist/test/factories.js +0 -319
  218. package/dist/test/factories.js.map +0 -1
  219. package/dist/test/integration/document-drive-integration.test.d.ts +0 -2
  220. package/dist/test/integration/document-drive-integration.test.d.ts.map +0 -1
  221. package/dist/test/integration/document-drive-integration.test.js +0 -1102
  222. package/dist/test/integration/document-drive-integration.test.js.map +0 -1
  223. package/dist/test/integration/reactor-read.test.d.ts +0 -2
  224. package/dist/test/integration/reactor-read.test.d.ts.map +0 -1
  225. package/dist/test/integration/reactor-read.test.js +0 -300
  226. package/dist/test/integration/reactor-read.test.js.map +0 -1
  227. package/dist/test/queue/queue-integration.test.d.ts +0 -2
  228. package/dist/test/queue/queue-integration.test.d.ts.map +0 -1
  229. package/dist/test/queue/queue-integration.test.js +0 -322
  230. package/dist/test/queue/queue-integration.test.js.map +0 -1
  231. package/dist/test/queue/queue.test.d.ts +0 -2
  232. package/dist/test/queue/queue.test.d.ts.map +0 -1
  233. package/dist/test/queue/queue.test.js +0 -770
  234. package/dist/test/queue/queue.test.js.map +0 -1
  235. package/dist/test/registry/registry.test.d.ts +0 -2
  236. package/dist/test/registry/registry.test.d.ts.map +0 -1
  237. package/dist/test/registry/registry.test.js +0 -182
  238. package/dist/test/registry/registry.test.js.map +0 -1
  239. package/dist/test/utils.test.d.ts +0 -2
  240. package/dist/test/utils.test.d.ts.map +0 -1
  241. package/dist/test/utils.test.js +0 -66
  242. package/dist/test/utils.test.js.map +0 -1
  243. package/dist/tsconfig.tsbuildinfo +0 -1
  244. package/dist/vitest.config.d.ts +0 -3
  245. package/dist/vitest.config.d.ts.map +0 -1
  246. package/dist/vitest.config.js +0 -11
  247. package/dist/vitest.config.js.map +0 -1
  248. /package/dist/src/{utils.js → core/utils.js} +0 -0
@@ -0,0 +1,96 @@
1
+ class LRUNode {
2
+ key;
3
+ prev;
4
+ next;
5
+ constructor(key) {
6
+ this.key = key;
7
+ this.prev = undefined;
8
+ this.next = undefined;
9
+ }
10
+ }
11
+ export class LRUTracker {
12
+ map;
13
+ head;
14
+ tail;
15
+ constructor() {
16
+ this.map = new Map();
17
+ this.head = undefined;
18
+ this.tail = undefined;
19
+ }
20
+ get size() {
21
+ return this.map.size;
22
+ }
23
+ touch(key) {
24
+ const node = this.map.get(key);
25
+ if (node) {
26
+ this.moveToFront(node);
27
+ }
28
+ else {
29
+ this.addToFront(key);
30
+ }
31
+ }
32
+ evict() {
33
+ if (!this.tail) {
34
+ return undefined;
35
+ }
36
+ const key = this.tail.key;
37
+ this.remove(key);
38
+ return key;
39
+ }
40
+ remove(key) {
41
+ const node = this.map.get(key);
42
+ if (!node) {
43
+ return;
44
+ }
45
+ this.removeNode(node);
46
+ this.map.delete(key);
47
+ }
48
+ clear() {
49
+ this.map.clear();
50
+ this.head = undefined;
51
+ this.tail = undefined;
52
+ }
53
+ addToFront(key) {
54
+ const node = new LRUNode(key);
55
+ this.map.set(key, node);
56
+ if (!this.head) {
57
+ this.head = node;
58
+ this.tail = node;
59
+ }
60
+ else {
61
+ node.next = this.head;
62
+ this.head.prev = node;
63
+ this.head = node;
64
+ }
65
+ }
66
+ moveToFront(node) {
67
+ if (node === this.head) {
68
+ return;
69
+ }
70
+ this.removeNode(node);
71
+ node.prev = undefined;
72
+ node.next = this.head;
73
+ if (this.head) {
74
+ this.head.prev = node;
75
+ }
76
+ this.head = node;
77
+ if (!this.tail) {
78
+ this.tail = node;
79
+ }
80
+ }
81
+ removeNode(node) {
82
+ if (node.prev) {
83
+ node.prev.next = node.next;
84
+ }
85
+ else {
86
+ this.head = node.next;
87
+ }
88
+ if (node.next) {
89
+ node.next.prev = node.prev;
90
+ }
91
+ else {
92
+ this.tail = node.prev;
93
+ }
94
+ }
95
+ }
96
+ //# sourceMappingURL=lru-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lru-tracker.js","sourceRoot":"","sources":["../../../../src/cache/lru/lru-tracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { PHDocument } from "document-model";
2
+ /**
3
+ * Configuration options for the write cache
4
+ */
5
+ export type WriteCacheConfig = {
6
+ /** Maximum number of document streams to cache (LRU eviction). Default: 1000 */
7
+ maxDocuments: number;
8
+ /** Number of snapshots to keep in each document's ring buffer. Default: 10 */
9
+ ringBufferSize: number;
10
+ /** Persist a keyframe snapshot every N revisions. Default: 10 */
11
+ keyframeInterval: number;
12
+ };
13
+ /**
14
+ * Unique identifier for a document stream
15
+ */
16
+ export type DocumentStreamKey = {
17
+ /** Document identifier */
18
+ documentId: string;
19
+ /** Operation scope */
20
+ scope: string;
21
+ /** Branch name */
22
+ branch: string;
23
+ };
24
+ /**
25
+ * A cached document snapshot at a specific revision
26
+ */
27
+ export type CachedSnapshot = {
28
+ /** The revision number of this snapshot */
29
+ revision: number;
30
+ /** The document state at this revision */
31
+ document: PHDocument;
32
+ };
33
+ /**
34
+ * Serialized keyframe snapshot for K/V store persistence
35
+ */
36
+ export type KeyframeSnapshot = {
37
+ /** The revision number of this keyframe */
38
+ revision: number;
39
+ /** Serialized document state */
40
+ document: string;
41
+ };
42
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cache/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,gFAAgF;IAChF,YAAY,EAAE,MAAM,CAAC;IAErB,8EAA8E;IAC9E,cAAc,EAAE,MAAM,CAAC;IAEvB,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IAEnB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IAEd,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IAEjB,0CAA0C;IAC1C,QAAQ,EAAE,UAAU,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IAEjB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cache/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,83 @@
1
+ import type { PHDocument } from "document-model";
2
+ /**
3
+ * IWriteCache is a write-side projection that optimizes document state retrieval
4
+ * for the job executor. This is separate from IDocumentView (read-side projection) which optimizes
5
+ * queries and searches.
6
+ */
7
+ export interface IWriteCache {
8
+ /**
9
+ * Retrieves or builds the document at the specified revision.
10
+ * If targetRevision is not provided, retrieves the latest state.
11
+ *
12
+ * @param documentId - The document identifier
13
+ * @param scope - Operation scope
14
+ * @param branch - Branch name
15
+ * @param targetRevision - The exact revision to retrieve (optional, defaults to latest)
16
+ * @param signal - Optional abort signal to cancel the operation
17
+ * @returns The complete document at the specified revision
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * // Get latest document state
22
+ * const doc = await cache.getState(docId, 'global', 'main');
23
+ *
24
+ * // Get document at specific revision
25
+ * const doc = await cache.getState(docId, 'global', 'main', 42);
26
+ * ```
27
+ */
28
+ getState(documentId: string, scope: string, branch: string, targetRevision?: number, signal?: AbortSignal): Promise<PHDocument>;
29
+ /**
30
+ * Stores a document snapshot in the cache at the specified revision.
31
+ * The document will be deep copied to prevent external mutations.
32
+ *
33
+ * @param documentId - The document identifier
34
+ * @param scope - Operation scope
35
+ * @param branch - Branch name
36
+ * @param revision - The revision this document represents
37
+ * @param document - The complete document to cache
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * cache.putState(docId, 'global', 'main', 42, document);
42
+ * ```
43
+ */
44
+ putState(documentId: string, scope: string, branch: string, revision: number, document: PHDocument): void;
45
+ /**
46
+ * Invalidates (removes) cached entries for a document stream.
47
+ *
48
+ * - If only documentId is provided: invalidates all scopes and branches for that document
49
+ * - If documentId + scope provided: invalidates all branches for that document and scope
50
+ * - If all parameters provided: invalidates the specific stream
51
+ *
52
+ * @param documentId - The document identifier
53
+ * @param scope - Optional scope to narrow invalidation
54
+ * @param branch - Optional branch to narrow invalidation
55
+ * @returns Number of ring buffers evicted
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * // Invalidate all streams for a document
60
+ * cache.invalidate(docId);
61
+ *
62
+ * // Invalidate all branches for a specific scope
63
+ * cache.invalidate(docId, 'global');
64
+ *
65
+ * // Invalidate specific stream
66
+ * cache.invalidate(docId, 'global', 'main');
67
+ * ```
68
+ */
69
+ invalidate(documentId: string, scope?: string, branch?: string): number;
70
+ /**
71
+ * Clears all cached data from the in-memory cache.
72
+ */
73
+ clear(): void;
74
+ /**
75
+ * Performs startup initialization.
76
+ */
77
+ startup(): Promise<void>;
78
+ /**
79
+ * Performs graceful shutdown.
80
+ */
81
+ shutdown(): Promise<void>;
82
+ }
83
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../src/cache/write/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvB;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,UAAU,GACnB,IAAI,CAAC;IAER;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExE;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/cache/write/interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,103 @@
1
+ import type { Action, DocumentModelModule, PHDocument } from "document-model";
2
+ import type { IReactor } from "../core/types.js";
3
+ import { type IJobAwaiter } from "../shared/awaiter.js";
4
+ import { type JobInfo, type PagedResults, type PagingOptions, type PropagationMode, type SearchFilter, type ViewFilter } from "../shared/types.js";
5
+ import type { ISigner } from "../signer/types.js";
6
+ import type { IReactorSubscriptionManager } from "../subs/types.js";
7
+ import type { DocumentChangeEvent, IReactorClient } from "./types.js";
8
+ /**
9
+ * ReactorClient implementation that wraps lower-level APIs to provide
10
+ * a simpler interface for document operations.
11
+ *
12
+ * Features:
13
+ * - Wraps Jobs with Promises for easier async handling
14
+ * - Manages signing of submitted Action objects
15
+ * - Provides quality-of-life functions for common tasks
16
+ * - Wraps subscription interface with ViewFilters
17
+ */
18
+ export declare class ReactorClient implements IReactorClient {
19
+ private reactor;
20
+ private signer;
21
+ private subscriptionManager;
22
+ private jobAwaiter;
23
+ constructor(reactor: IReactor, signer: ISigner, subscriptionManager: IReactorSubscriptionManager, jobAwaiter: IJobAwaiter);
24
+ /**
25
+ * Retrieves a list of document model modules.
26
+ */
27
+ getDocumentModels(namespace?: string, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<DocumentModelModule>>;
28
+ /**
29
+ * Retrieves a specific PHDocument
30
+ */
31
+ get<TDocument extends PHDocument>(identifier: string, view?: ViewFilter, signal?: AbortSignal): Promise<{
32
+ document: TDocument;
33
+ childIds: string[];
34
+ }>;
35
+ /**
36
+ * Retrieves children of a document
37
+ */
38
+ getChildren(parentIdentifier: string, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<PHDocument>>;
39
+ /**
40
+ * Retrieves parents of a document
41
+ */
42
+ getParents(childIdentifier: string, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<PHDocument>>;
43
+ /**
44
+ * Filters documents by criteria and returns a list of them
45
+ */
46
+ find(search: SearchFilter, view?: ViewFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<PHDocument>>;
47
+ /**
48
+ * Creates a document and waits for completion
49
+ */
50
+ create(document: PHDocument, parentIdentifier?: string, signal?: AbortSignal): Promise<PHDocument>;
51
+ /**
52
+ * Creates an empty document and waits for completion
53
+ */
54
+ createEmpty<TDocument extends PHDocument>(documentType: string, parentIdentifier?: string, signal?: AbortSignal): Promise<TDocument>;
55
+ /**
56
+ * Applies a list of actions to a document and waits for completion
57
+ */
58
+ mutate<TDocument extends PHDocument>(documentIdentifier: string, actions: Action[], view?: ViewFilter, signal?: AbortSignal): Promise<TDocument>;
59
+ /**
60
+ * Submits a list of actions to a document
61
+ */
62
+ mutateAsync(documentIdentifier: string, actions: Action[], view?: ViewFilter, signal?: AbortSignal): Promise<JobInfo>;
63
+ /**
64
+ * Renames a document and waits for completion
65
+ */
66
+ rename(documentIdentifier: string, name: string, view?: ViewFilter, signal?: AbortSignal): Promise<PHDocument>;
67
+ /**
68
+ * Adds multiple documents as children to another and waits for completion
69
+ */
70
+ addChildren(parentIdentifier: string, documentIdentifiers: string[], view?: ViewFilter, signal?: AbortSignal): Promise<PHDocument>;
71
+ /**
72
+ * Removes multiple documents as children from another and waits for completion
73
+ */
74
+ removeChildren(parentIdentifier: string, documentIdentifiers: string[], view?: ViewFilter, signal?: AbortSignal): Promise<PHDocument>;
75
+ /**
76
+ * Moves multiple documents from one parent to another and waits for completion
77
+ */
78
+ moveChildren(sourceParentIdentifier: string, targetParentIdentifier: string, documentIdentifiers: string[], view?: ViewFilter, signal?: AbortSignal): Promise<{
79
+ source: PHDocument;
80
+ target: PHDocument;
81
+ }>;
82
+ /**
83
+ * Deletes a document and waits for completion
84
+ */
85
+ deleteDocument(identifier: string, propagate?: PropagationMode, signal?: AbortSignal): Promise<void>;
86
+ /**
87
+ * Deletes documents and waits for completion
88
+ */
89
+ deleteDocuments(identifiers: string[], propagate?: PropagationMode, signal?: AbortSignal): Promise<void>;
90
+ /**
91
+ * Retrieves the status of a job
92
+ */
93
+ getJobStatus(jobId: string, signal?: AbortSignal): Promise<JobInfo>;
94
+ /**
95
+ * Waits for a job to complete
96
+ */
97
+ waitForJob(jobId: string | JobInfo, signal?: AbortSignal): Promise<JobInfo>;
98
+ /**
99
+ * Subscribes to changes for documents matching specified filters
100
+ */
101
+ subscribe(search: SearchFilter, callback: (event: DocumentChangeEvent) => void, view?: ViewFilter): () => void;
102
+ }
103
+ //# sourceMappingURL=reactor-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor-client.d.ts","sourceRoot":"","sources":["../../../src/client/reactor-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ import {} from "../shared/awaiter.js";
2
+ import {} from "../shared/types.js";
3
+ /**
4
+ * ReactorClient implementation that wraps lower-level APIs to provide
5
+ * a simpler interface for document operations.
6
+ *
7
+ * Features:
8
+ * - Wraps Jobs with Promises for easier async handling
9
+ * - Manages signing of submitted Action objects
10
+ * - Provides quality-of-life functions for common tasks
11
+ * - Wraps subscription interface with ViewFilters
12
+ */
13
+ export class ReactorClient {
14
+ reactor;
15
+ signer;
16
+ subscriptionManager;
17
+ jobAwaiter;
18
+ constructor(reactor, signer, subscriptionManager, jobAwaiter) {
19
+ this.reactor = reactor;
20
+ this.signer = signer;
21
+ this.subscriptionManager = subscriptionManager;
22
+ this.jobAwaiter = jobAwaiter;
23
+ }
24
+ /**
25
+ * Retrieves a list of document model modules.
26
+ */
27
+ async getDocumentModels(namespace, paging, signal) {
28
+ return this.reactor.getDocumentModels(namespace, paging, signal);
29
+ }
30
+ /**
31
+ * Retrieves a specific PHDocument
32
+ */
33
+ async get(identifier, view, signal) {
34
+ // First try to get by ID
35
+ try {
36
+ return await this.reactor.get(identifier, view, signal);
37
+ }
38
+ catch (error) {
39
+ // If failed, try to get by slug
40
+ return await this.reactor.getBySlug(identifier, view, signal);
41
+ }
42
+ }
43
+ /**
44
+ * Retrieves children of a document
45
+ */
46
+ async getChildren(parentIdentifier, view, paging, signal) {
47
+ throw new Error("Method not implemented.");
48
+ }
49
+ /**
50
+ * Retrieves parents of a document
51
+ */
52
+ async getParents(childIdentifier, view, paging, signal) {
53
+ throw new Error("Method not implemented.");
54
+ }
55
+ /**
56
+ * Filters documents by criteria and returns a list of them
57
+ */
58
+ async find(search, view, paging, signal) {
59
+ return this.reactor.find(search, view, paging, signal);
60
+ }
61
+ /**
62
+ * Creates a document and waits for completion
63
+ */
64
+ async create(document, parentIdentifier, signal) {
65
+ throw new Error("Method not implemented.");
66
+ }
67
+ /**
68
+ * Creates an empty document and waits for completion
69
+ */
70
+ async createEmpty(documentType, parentIdentifier, signal) {
71
+ throw new Error("Method not implemented.");
72
+ }
73
+ /**
74
+ * Applies a list of actions to a document and waits for completion
75
+ */
76
+ async mutate(documentIdentifier, actions, view, signal) {
77
+ const jobInfo = await this.reactor.mutate(documentIdentifier, actions);
78
+ await this.waitForJob(jobInfo, signal);
79
+ const document = await this.get(documentIdentifier, view, signal);
80
+ return document.document;
81
+ }
82
+ /**
83
+ * Submits a list of actions to a document
84
+ */
85
+ async mutateAsync(documentIdentifier, actions, view, signal) {
86
+ // Sign actions with the required signer
87
+ const signedActions = await Promise.all(actions.map(async (action) => {
88
+ const signature = await this.signer.sign(action, signal);
89
+ return {
90
+ ...action,
91
+ context: {
92
+ ...action.context,
93
+ signer: {
94
+ user: {
95
+ address: signature[0],
96
+ networkId: "",
97
+ chainId: 0,
98
+ },
99
+ app: {
100
+ name: "",
101
+ key: "",
102
+ },
103
+ signatures: [signature],
104
+ },
105
+ },
106
+ };
107
+ }));
108
+ // Note: reactor.mutate doesn't use view or signal currently
109
+ return this.reactor.mutate(documentIdentifier, signedActions);
110
+ }
111
+ /**
112
+ * Renames a document and waits for completion
113
+ */
114
+ async rename(documentIdentifier, name, view, signal) {
115
+ throw new Error("Method not implemented.");
116
+ }
117
+ /**
118
+ * Adds multiple documents as children to another and waits for completion
119
+ */
120
+ async addChildren(parentIdentifier, documentIdentifiers, view, signal) {
121
+ // Call reactor.addChildren to get JobInfo
122
+ const jobInfo = await this.reactor.addChildren(parentIdentifier, documentIdentifiers, view, signal);
123
+ // Wait for job completion
124
+ await this.waitForJob(jobInfo, signal);
125
+ // Fetch and return updated parent document
126
+ const result = await this.get(parentIdentifier, view, signal);
127
+ return result.document;
128
+ }
129
+ /**
130
+ * Removes multiple documents as children from another and waits for completion
131
+ */
132
+ async removeChildren(parentIdentifier, documentIdentifiers, view, signal) {
133
+ // Call reactor.removeChildren to get JobInfo
134
+ const jobInfo = await this.reactor.removeChildren(parentIdentifier, documentIdentifiers, view, signal);
135
+ // Wait for job completion
136
+ await this.waitForJob(jobInfo, signal);
137
+ // Fetch and return updated parent document
138
+ const result = await this.get(parentIdentifier, view, signal);
139
+ return result.document;
140
+ }
141
+ /**
142
+ * Moves multiple documents from one parent to another and waits for completion
143
+ */
144
+ async moveChildren(sourceParentIdentifier, targetParentIdentifier, documentIdentifiers, view, signal) {
145
+ throw new Error("Method not implemented.");
146
+ }
147
+ /**
148
+ * Deletes a document and waits for completion
149
+ */
150
+ async deleteDocument(identifier, propagate, signal) {
151
+ // Call reactor.deleteDocument to get JobInfo
152
+ const jobInfo = await this.reactor.deleteDocument(identifier, propagate, signal);
153
+ // Wait for job completion
154
+ await this.waitForJob(jobInfo, signal);
155
+ // Return void
156
+ return;
157
+ }
158
+ /**
159
+ * Deletes documents and waits for completion
160
+ */
161
+ async deleteDocuments(identifiers, propagate, signal) {
162
+ throw new Error("Method not implemented.");
163
+ }
164
+ /**
165
+ * Retrieves the status of a job
166
+ */
167
+ async getJobStatus(jobId, signal) {
168
+ return this.reactor.getJobStatus(jobId, signal);
169
+ }
170
+ /**
171
+ * Waits for a job to complete
172
+ */
173
+ async waitForJob(jobId, signal) {
174
+ const id = typeof jobId === "string" ? jobId : jobId.id;
175
+ return this.jobAwaiter.waitForJob(id, signal);
176
+ }
177
+ /**
178
+ * Subscribes to changes for documents matching specified filters
179
+ */
180
+ subscribe(search, callback, view) {
181
+ throw new Error("Method not implemented.");
182
+ }
183
+ }
184
+ //# sourceMappingURL=reactor-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor-client.js","sourceRoot":"","sources":["../../../src/client/reactor-client.ts"],"names":[],"mappings":"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"}