@powerhousedao/reactor 6.0.0-dev.22 → 6.0.0-dev.221

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 (409) hide show
  1. package/dist/index.d.ts +4504 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +9927 -0
  4. package/dist/index.js.map +1 -0
  5. package/package.json +20 -18
  6. package/dist/src/actions/index.d.ts +0 -24
  7. package/dist/src/actions/index.d.ts.map +0 -1
  8. package/dist/src/actions/index.js +0 -76
  9. package/dist/src/actions/index.js.map +0 -1
  10. package/dist/src/cache/buffer/ring-buffer.d.ts +0 -37
  11. package/dist/src/cache/buffer/ring-buffer.d.ts.map +0 -1
  12. package/dist/src/cache/buffer/ring-buffer.js +0 -69
  13. package/dist/src/cache/buffer/ring-buffer.js.map +0 -1
  14. package/dist/src/cache/document-meta-cache-types.d.ts +0 -114
  15. package/dist/src/cache/document-meta-cache-types.d.ts.map +0 -1
  16. package/dist/src/cache/document-meta-cache-types.js +0 -2
  17. package/dist/src/cache/document-meta-cache-types.js.map +0 -1
  18. package/dist/src/cache/document-meta-cache.d.ts +0 -30
  19. package/dist/src/cache/document-meta-cache.d.ts.map +0 -1
  20. package/dist/src/cache/document-meta-cache.js +0 -128
  21. package/dist/src/cache/document-meta-cache.js.map +0 -1
  22. package/dist/src/cache/index.d.ts +0 -3
  23. package/dist/src/cache/index.d.ts.map +0 -1
  24. package/dist/src/cache/index.js +0 -2
  25. package/dist/src/cache/index.js.map +0 -1
  26. package/dist/src/cache/kysely-operation-index.d.ts +0 -16
  27. package/dist/src/cache/kysely-operation-index.d.ts.map +0 -1
  28. package/dist/src/cache/kysely-operation-index.js +0 -265
  29. package/dist/src/cache/kysely-operation-index.js.map +0 -1
  30. package/dist/src/cache/kysely-write-cache.d.ts +0 -134
  31. package/dist/src/cache/kysely-write-cache.d.ts.map +0 -1
  32. package/dist/src/cache/kysely-write-cache.js +0 -388
  33. package/dist/src/cache/kysely-write-cache.js.map +0 -1
  34. package/dist/src/cache/lru/lru-tracker.d.ts +0 -15
  35. package/dist/src/cache/lru/lru-tracker.d.ts.map +0 -1
  36. package/dist/src/cache/lru/lru-tracker.js +0 -96
  37. package/dist/src/cache/lru/lru-tracker.js.map +0 -1
  38. package/dist/src/cache/operation-index-types.d.ts +0 -51
  39. package/dist/src/cache/operation-index-types.d.ts.map +0 -1
  40. package/dist/src/cache/operation-index-types.js +0 -4
  41. package/dist/src/cache/operation-index-types.js.map +0 -1
  42. package/dist/src/cache/write/interfaces.d.ts +0 -83
  43. package/dist/src/cache/write/interfaces.d.ts.map +0 -1
  44. package/dist/src/cache/write/interfaces.js +0 -2
  45. package/dist/src/cache/write/interfaces.js.map +0 -1
  46. package/dist/src/cache/write-cache-types.d.ts +0 -42
  47. package/dist/src/cache/write-cache-types.d.ts.map +0 -1
  48. package/dist/src/cache/write-cache-types.js +0 -2
  49. package/dist/src/cache/write-cache-types.js.map +0 -1
  50. package/dist/src/client/reactor-client.d.ts +0 -121
  51. package/dist/src/client/reactor-client.d.ts.map +0 -1
  52. package/dist/src/client/reactor-client.js +0 -425
  53. package/dist/src/client/reactor-client.js.map +0 -1
  54. package/dist/src/client/types.d.ts +0 -253
  55. package/dist/src/client/types.d.ts.map +0 -1
  56. package/dist/src/client/types.js +0 -14
  57. package/dist/src/client/types.js.map +0 -1
  58. package/dist/src/core/reactor-builder.d.ts +0 -47
  59. package/dist/src/core/reactor-builder.d.ts.map +0 -1
  60. package/dist/src/core/reactor-builder.js +0 -231
  61. package/dist/src/core/reactor-builder.js.map +0 -1
  62. package/dist/src/core/reactor-client-builder.d.ts +0 -49
  63. package/dist/src/core/reactor-client-builder.d.ts.map +0 -1
  64. package/dist/src/core/reactor-client-builder.js +0 -123
  65. package/dist/src/core/reactor-client-builder.js.map +0 -1
  66. package/dist/src/core/reactor.d.ts +0 -116
  67. package/dist/src/core/reactor.d.ts.map +0 -1
  68. package/dist/src/core/reactor.js +0 -988
  69. package/dist/src/core/reactor.js.map +0 -1
  70. package/dist/src/core/types.d.ts +0 -277
  71. package/dist/src/core/types.d.ts.map +0 -1
  72. package/dist/src/core/types.js +0 -2
  73. package/dist/src/core/types.js.map +0 -1
  74. package/dist/src/core/utils.d.ts +0 -59
  75. package/dist/src/core/utils.d.ts.map +0 -1
  76. package/dist/src/core/utils.js +0 -171
  77. package/dist/src/core/utils.js.map +0 -1
  78. package/dist/src/events/event-bus.d.ts +0 -8
  79. package/dist/src/events/event-bus.d.ts.map +0 -1
  80. package/dist/src/events/event-bus.js +0 -53
  81. package/dist/src/events/event-bus.js.map +0 -1
  82. package/dist/src/events/interfaces.d.ts +0 -27
  83. package/dist/src/events/interfaces.d.ts.map +0 -1
  84. package/dist/src/events/interfaces.js +0 -2
  85. package/dist/src/events/interfaces.js.map +0 -1
  86. package/dist/src/events/types.d.ts +0 -67
  87. package/dist/src/events/types.d.ts.map +0 -1
  88. package/dist/src/events/types.js +0 -28
  89. package/dist/src/events/types.js.map +0 -1
  90. package/dist/src/executor/interfaces.d.ts +0 -49
  91. package/dist/src/executor/interfaces.d.ts.map +0 -1
  92. package/dist/src/executor/interfaces.js +0 -2
  93. package/dist/src/executor/interfaces.js.map +0 -1
  94. package/dist/src/executor/simple-job-executor-manager.d.ts +0 -34
  95. package/dist/src/executor/simple-job-executor-manager.d.ts.map +0 -1
  96. package/dist/src/executor/simple-job-executor-manager.js +0 -233
  97. package/dist/src/executor/simple-job-executor-manager.js.map +0 -1
  98. package/dist/src/executor/simple-job-executor.d.ts +0 -80
  99. package/dist/src/executor/simple-job-executor.d.ts.map +0 -1
  100. package/dist/src/executor/simple-job-executor.js +0 -898
  101. package/dist/src/executor/simple-job-executor.js.map +0 -1
  102. package/dist/src/executor/types.d.ts +0 -93
  103. package/dist/src/executor/types.d.ts.map +0 -1
  104. package/dist/src/executor/types.js +0 -11
  105. package/dist/src/executor/types.js.map +0 -1
  106. package/dist/src/executor/util.d.ts +0 -74
  107. package/dist/src/executor/util.d.ts.map +0 -1
  108. package/dist/src/executor/util.js +0 -184
  109. package/dist/src/executor/util.js.map +0 -1
  110. package/dist/src/index.d.ts +0 -53
  111. package/dist/src/index.d.ts.map +0 -1
  112. package/dist/src/index.js +0 -62
  113. package/dist/src/index.js.map +0 -1
  114. package/dist/src/job-tracker/in-memory-job-tracker.d.ts +0 -25
  115. package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +0 -1
  116. package/dist/src/job-tracker/in-memory-job-tracker.js +0 -112
  117. package/dist/src/job-tracker/in-memory-job-tracker.js.map +0 -1
  118. package/dist/src/job-tracker/index.d.ts +0 -3
  119. package/dist/src/job-tracker/index.d.ts.map +0 -1
  120. package/dist/src/job-tracker/index.js +0 -2
  121. package/dist/src/job-tracker/index.js.map +0 -1
  122. package/dist/src/job-tracker/interfaces.d.ts +0 -39
  123. package/dist/src/job-tracker/interfaces.d.ts.map +0 -1
  124. package/dist/src/job-tracker/interfaces.js +0 -2
  125. package/dist/src/job-tracker/interfaces.js.map +0 -1
  126. package/dist/src/logging/console.d.ts +0 -23
  127. package/dist/src/logging/console.d.ts.map +0 -1
  128. package/dist/src/logging/console.js +0 -108
  129. package/dist/src/logging/console.js.map +0 -1
  130. package/dist/src/logging/types.d.ts +0 -12
  131. package/dist/src/logging/types.d.ts.map +0 -1
  132. package/dist/src/logging/types.js +0 -2
  133. package/dist/src/logging/types.js.map +0 -1
  134. package/dist/src/processors/index.d.ts +0 -3
  135. package/dist/src/processors/index.d.ts.map +0 -1
  136. package/dist/src/processors/index.js +0 -2
  137. package/dist/src/processors/index.js.map +0 -1
  138. package/dist/src/processors/processor-manager.d.ts +0 -38
  139. package/dist/src/processors/processor-manager.d.ts.map +0 -1
  140. package/dist/src/processors/processor-manager.js +0 -165
  141. package/dist/src/processors/processor-manager.js.map +0 -1
  142. package/dist/src/processors/types.d.ts +0 -63
  143. package/dist/src/processors/types.d.ts.map +0 -1
  144. package/dist/src/processors/types.js +0 -2
  145. package/dist/src/processors/types.js.map +0 -1
  146. package/dist/src/processors/utils.d.ts +0 -10
  147. package/dist/src/processors/utils.d.ts.map +0 -1
  148. package/dist/src/processors/utils.js +0 -59
  149. package/dist/src/processors/utils.js.map +0 -1
  150. package/dist/src/queue/interfaces.d.ts +0 -103
  151. package/dist/src/queue/interfaces.d.ts.map +0 -1
  152. package/dist/src/queue/interfaces.js +0 -2
  153. package/dist/src/queue/interfaces.js.map +0 -1
  154. package/dist/src/queue/job-execution-handle.d.ts +0 -25
  155. package/dist/src/queue/job-execution-handle.d.ts.map +0 -1
  156. package/dist/src/queue/job-execution-handle.js +0 -62
  157. package/dist/src/queue/job-execution-handle.js.map +0 -1
  158. package/dist/src/queue/queue.d.ts +0 -81
  159. package/dist/src/queue/queue.d.ts.map +0 -1
  160. package/dist/src/queue/queue.js +0 -384
  161. package/dist/src/queue/queue.js.map +0 -1
  162. package/dist/src/queue/types.d.ts +0 -73
  163. package/dist/src/queue/types.d.ts.map +0 -1
  164. package/dist/src/queue/types.js +0 -19
  165. package/dist/src/queue/types.js.map +0 -1
  166. package/dist/src/read-models/base-read-model.d.ts +0 -60
  167. package/dist/src/read-models/base-read-model.d.ts.map +0 -1
  168. package/dist/src/read-models/base-read-model.js +0 -143
  169. package/dist/src/read-models/base-read-model.js.map +0 -1
  170. package/dist/src/read-models/coordinator.d.ts +0 -39
  171. package/dist/src/read-models/coordinator.d.ts.map +0 -1
  172. package/dist/src/read-models/coordinator.js +0 -72
  173. package/dist/src/read-models/coordinator.js.map +0 -1
  174. package/dist/src/read-models/document-view.d.ts +0 -24
  175. package/dist/src/read-models/document-view.d.ts.map +0 -1
  176. package/dist/src/read-models/document-view.js +0 -377
  177. package/dist/src/read-models/document-view.js.map +0 -1
  178. package/dist/src/read-models/interfaces.d.ts +0 -29
  179. package/dist/src/read-models/interfaces.d.ts.map +0 -1
  180. package/dist/src/read-models/interfaces.js +0 -2
  181. package/dist/src/read-models/interfaces.js.map +0 -1
  182. package/dist/src/read-models/types.d.ts +0 -47
  183. package/dist/src/read-models/types.d.ts.map +0 -1
  184. package/dist/src/read-models/types.js +0 -2
  185. package/dist/src/read-models/types.js.map +0 -1
  186. package/dist/src/registry/implementation.d.ts +0 -70
  187. package/dist/src/registry/implementation.d.ts.map +0 -1
  188. package/dist/src/registry/implementation.js +0 -216
  189. package/dist/src/registry/implementation.js.map +0 -1
  190. package/dist/src/registry/index.d.ts +0 -3
  191. package/dist/src/registry/index.d.ts.map +0 -1
  192. package/dist/src/registry/index.js +0 -2
  193. package/dist/src/registry/index.js.map +0 -1
  194. package/dist/src/registry/interfaces.d.ts +0 -100
  195. package/dist/src/registry/interfaces.d.ts.map +0 -1
  196. package/dist/src/registry/interfaces.js +0 -2
  197. package/dist/src/registry/interfaces.js.map +0 -1
  198. package/dist/src/shared/awaiter.d.ts +0 -35
  199. package/dist/src/shared/awaiter.d.ts.map +0 -1
  200. package/dist/src/shared/awaiter.js +0 -123
  201. package/dist/src/shared/awaiter.js.map +0 -1
  202. package/dist/src/shared/consistency-tracker.d.ts +0 -48
  203. package/dist/src/shared/consistency-tracker.d.ts.map +0 -1
  204. package/dist/src/shared/consistency-tracker.js +0 -123
  205. package/dist/src/shared/consistency-tracker.js.map +0 -1
  206. package/dist/src/shared/drive-url.d.ts +0 -15
  207. package/dist/src/shared/drive-url.d.ts.map +0 -1
  208. package/dist/src/shared/drive-url.js +0 -17
  209. package/dist/src/shared/drive-url.js.map +0 -1
  210. package/dist/src/shared/errors.d.ts +0 -41
  211. package/dist/src/shared/errors.d.ts.map +0 -1
  212. package/dist/src/shared/errors.js +0 -75
  213. package/dist/src/shared/errors.js.map +0 -1
  214. package/dist/src/shared/factories.d.ts +0 -16
  215. package/dist/src/shared/factories.d.ts.map +0 -1
  216. package/dist/src/shared/factories.js +0 -33
  217. package/dist/src/shared/factories.js.map +0 -1
  218. package/dist/src/shared/types.d.ts +0 -136
  219. package/dist/src/shared/types.d.ts.map +0 -1
  220. package/dist/src/shared/types.js +0 -38
  221. package/dist/src/shared/types.js.map +0 -1
  222. package/dist/src/shared/utils.d.ts +0 -3
  223. package/dist/src/shared/utils.d.ts.map +0 -1
  224. package/dist/src/shared/utils.js +0 -8
  225. package/dist/src/shared/utils.js.map +0 -1
  226. package/dist/src/signer/passthrough-signer.d.ts +0 -12
  227. package/dist/src/signer/passthrough-signer.d.ts.map +0 -1
  228. package/dist/src/signer/passthrough-signer.js +0 -19
  229. package/dist/src/signer/passthrough-signer.js.map +0 -1
  230. package/dist/src/signer/types.d.ts +0 -17
  231. package/dist/src/signer/types.d.ts.map +0 -1
  232. package/dist/src/signer/types.js +0 -2
  233. package/dist/src/signer/types.js.map +0 -1
  234. package/dist/src/storage/consistency-aware-legacy-storage.d.ts +0 -33
  235. package/dist/src/storage/consistency-aware-legacy-storage.d.ts.map +0 -1
  236. package/dist/src/storage/consistency-aware-legacy-storage.js +0 -65
  237. package/dist/src/storage/consistency-aware-legacy-storage.js.map +0 -1
  238. package/dist/src/storage/index.d.ts +0 -4
  239. package/dist/src/storage/index.d.ts.map +0 -1
  240. package/dist/src/storage/index.js +0 -3
  241. package/dist/src/storage/index.js.map +0 -1
  242. package/dist/src/storage/interfaces.d.ts +0 -454
  243. package/dist/src/storage/interfaces.d.ts.map +0 -1
  244. package/dist/src/storage/interfaces.js +0 -19
  245. package/dist/src/storage/interfaces.js.map +0 -1
  246. package/dist/src/storage/kysely/document-indexer.d.ts +0 -28
  247. package/dist/src/storage/kysely/document-indexer.d.ts.map +0 -1
  248. package/dist/src/storage/kysely/document-indexer.js +0 -350
  249. package/dist/src/storage/kysely/document-indexer.js.map +0 -1
  250. package/dist/src/storage/kysely/keyframe-store.d.ts +0 -15
  251. package/dist/src/storage/kysely/keyframe-store.d.ts.map +0 -1
  252. package/dist/src/storage/kysely/keyframe-store.js +0 -64
  253. package/dist/src/storage/kysely/keyframe-store.js.map +0 -1
  254. package/dist/src/storage/kysely/store.d.ts +0 -16
  255. package/dist/src/storage/kysely/store.d.ts.map +0 -1
  256. package/dist/src/storage/kysely/store.js +0 -246
  257. package/dist/src/storage/kysely/store.js.map +0 -1
  258. package/dist/src/storage/kysely/sync-cursor-storage.d.ts +0 -13
  259. package/dist/src/storage/kysely/sync-cursor-storage.d.ts.map +0 -1
  260. package/dist/src/storage/kysely/sync-cursor-storage.js +0 -93
  261. package/dist/src/storage/kysely/sync-cursor-storage.js.map +0 -1
  262. package/dist/src/storage/kysely/sync-remote-storage.d.ts +0 -13
  263. package/dist/src/storage/kysely/sync-remote-storage.d.ts.map +0 -1
  264. package/dist/src/storage/kysely/sync-remote-storage.js +0 -133
  265. package/dist/src/storage/kysely/sync-remote-storage.js.map +0 -1
  266. package/dist/src/storage/kysely/types.d.ts +0 -135
  267. package/dist/src/storage/kysely/types.d.ts.map +0 -1
  268. package/dist/src/storage/kysely/types.js +0 -2
  269. package/dist/src/storage/kysely/types.js.map +0 -1
  270. package/dist/src/storage/migrations/001_create_operation_table.d.ts +0 -3
  271. package/dist/src/storage/migrations/001_create_operation_table.d.ts.map +0 -1
  272. package/dist/src/storage/migrations/001_create_operation_table.js +0 -41
  273. package/dist/src/storage/migrations/001_create_operation_table.js.map +0 -1
  274. package/dist/src/storage/migrations/002_create_keyframe_table.d.ts +0 -3
  275. package/dist/src/storage/migrations/002_create_keyframe_table.d.ts.map +0 -1
  276. package/dist/src/storage/migrations/002_create_keyframe_table.js +0 -27
  277. package/dist/src/storage/migrations/002_create_keyframe_table.js.map +0 -1
  278. package/dist/src/storage/migrations/003_create_document_table.d.ts +0 -3
  279. package/dist/src/storage/migrations/003_create_document_table.d.ts.map +0 -1
  280. package/dist/src/storage/migrations/003_create_document_table.js +0 -10
  281. package/dist/src/storage/migrations/003_create_document_table.js.map +0 -1
  282. package/dist/src/storage/migrations/004_create_document_relationship_table.d.ts +0 -3
  283. package/dist/src/storage/migrations/004_create_document_relationship_table.d.ts.map +0 -1
  284. package/dist/src/storage/migrations/004_create_document_relationship_table.js +0 -35
  285. package/dist/src/storage/migrations/004_create_document_relationship_table.js.map +0 -1
  286. package/dist/src/storage/migrations/005_create_indexer_state_table.d.ts +0 -3
  287. package/dist/src/storage/migrations/005_create_indexer_state_table.d.ts.map +0 -1
  288. package/dist/src/storage/migrations/005_create_indexer_state_table.js +0 -10
  289. package/dist/src/storage/migrations/005_create_indexer_state_table.js.map +0 -1
  290. package/dist/src/storage/migrations/006_create_document_snapshot_table.d.ts +0 -3
  291. package/dist/src/storage/migrations/006_create_document_snapshot_table.d.ts.map +0 -1
  292. package/dist/src/storage/migrations/006_create_document_snapshot_table.js +0 -49
  293. package/dist/src/storage/migrations/006_create_document_snapshot_table.js.map +0 -1
  294. package/dist/src/storage/migrations/007_create_slug_mapping_table.d.ts +0 -3
  295. package/dist/src/storage/migrations/007_create_slug_mapping_table.d.ts.map +0 -1
  296. package/dist/src/storage/migrations/007_create_slug_mapping_table.js +0 -24
  297. package/dist/src/storage/migrations/007_create_slug_mapping_table.js.map +0 -1
  298. package/dist/src/storage/migrations/008_create_view_state_table.d.ts +0 -3
  299. package/dist/src/storage/migrations/008_create_view_state_table.d.ts.map +0 -1
  300. package/dist/src/storage/migrations/008_create_view_state_table.js +0 -10
  301. package/dist/src/storage/migrations/008_create_view_state_table.js.map +0 -1
  302. package/dist/src/storage/migrations/009_create_operation_index_tables.d.ts +0 -3
  303. package/dist/src/storage/migrations/009_create_operation_index_tables.d.ts.map +0 -1
  304. package/dist/src/storage/migrations/009_create_operation_index_tables.js +0 -50
  305. package/dist/src/storage/migrations/009_create_operation_index_tables.js.map +0 -1
  306. package/dist/src/storage/migrations/010_create_sync_tables.d.ts +0 -3
  307. package/dist/src/storage/migrations/010_create_sync_tables.d.ts.map +0 -1
  308. package/dist/src/storage/migrations/010_create_sync_tables.js +0 -43
  309. package/dist/src/storage/migrations/010_create_sync_tables.js.map +0 -1
  310. package/dist/src/storage/migrations/index.d.ts +0 -3
  311. package/dist/src/storage/migrations/index.d.ts.map +0 -1
  312. package/dist/src/storage/migrations/index.js +0 -3
  313. package/dist/src/storage/migrations/index.js.map +0 -1
  314. package/dist/src/storage/migrations/migrator.d.ts +0 -6
  315. package/dist/src/storage/migrations/migrator.d.ts.map +0 -1
  316. package/dist/src/storage/migrations/migrator.js +0 -78
  317. package/dist/src/storage/migrations/migrator.js.map +0 -1
  318. package/dist/src/storage/migrations/run-migrations.d.ts +0 -2
  319. package/dist/src/storage/migrations/run-migrations.d.ts.map +0 -1
  320. package/dist/src/storage/migrations/run-migrations.js +0 -58
  321. package/dist/src/storage/migrations/run-migrations.js.map +0 -1
  322. package/dist/src/storage/migrations/types.d.ts +0 -9
  323. package/dist/src/storage/migrations/types.d.ts.map +0 -1
  324. package/dist/src/storage/migrations/types.js +0 -2
  325. package/dist/src/storage/migrations/types.js.map +0 -1
  326. package/dist/src/storage/txn.d.ts +0 -15
  327. package/dist/src/storage/txn.d.ts.map +0 -1
  328. package/dist/src/storage/txn.js +0 -42
  329. package/dist/src/storage/txn.js.map +0 -1
  330. package/dist/src/subs/default-error-handler.d.ts +0 -13
  331. package/dist/src/subs/default-error-handler.d.ts.map +0 -1
  332. package/dist/src/subs/default-error-handler.js +0 -27
  333. package/dist/src/subs/default-error-handler.js.map +0 -1
  334. package/dist/src/subs/react-subscription-manager.d.ts +0 -45
  335. package/dist/src/subs/react-subscription-manager.d.ts.map +0 -1
  336. package/dist/src/subs/react-subscription-manager.js +0 -185
  337. package/dist/src/subs/react-subscription-manager.js.map +0 -1
  338. package/dist/src/subs/subscription-notification-read-model.d.ts +0 -17
  339. package/dist/src/subs/subscription-notification-read-model.d.ts.map +0 -1
  340. package/dist/src/subs/subscription-notification-read-model.js +0 -62
  341. package/dist/src/subs/subscription-notification-read-model.js.map +0 -1
  342. package/dist/src/subs/types.d.ts +0 -64
  343. package/dist/src/subs/types.d.ts.map +0 -1
  344. package/dist/src/subs/types.js +0 -2
  345. package/dist/src/subs/types.js.map +0 -1
  346. package/dist/src/sync/channels/composite-channel-factory.d.ts +0 -32
  347. package/dist/src/sync/channels/composite-channel-factory.d.ts.map +0 -1
  348. package/dist/src/sync/channels/composite-channel-factory.js +0 -88
  349. package/dist/src/sync/channels/composite-channel-factory.js.map +0 -1
  350. package/dist/src/sync/channels/gql-channel-factory.d.ts +0 -27
  351. package/dist/src/sync/channels/gql-channel-factory.d.ts.map +0 -1
  352. package/dist/src/sync/channels/gql-channel-factory.js +0 -77
  353. package/dist/src/sync/channels/gql-channel-factory.js.map +0 -1
  354. package/dist/src/sync/channels/gql-channel.d.ts +0 -120
  355. package/dist/src/sync/channels/gql-channel.d.ts.map +0 -1
  356. package/dist/src/sync/channels/gql-channel.js +0 -436
  357. package/dist/src/sync/channels/gql-channel.js.map +0 -1
  358. package/dist/src/sync/channels/index.d.ts +0 -6
  359. package/dist/src/sync/channels/index.d.ts.map +0 -1
  360. package/dist/src/sync/channels/index.js +0 -6
  361. package/dist/src/sync/channels/index.js.map +0 -1
  362. package/dist/src/sync/channels/polling-channel.d.ts +0 -39
  363. package/dist/src/sync/channels/polling-channel.d.ts.map +0 -1
  364. package/dist/src/sync/channels/polling-channel.js +0 -72
  365. package/dist/src/sync/channels/polling-channel.js.map +0 -1
  366. package/dist/src/sync/channels/utils.d.ts +0 -30
  367. package/dist/src/sync/channels/utils.d.ts.map +0 -1
  368. package/dist/src/sync/channels/utils.js +0 -96
  369. package/dist/src/sync/channels/utils.js.map +0 -1
  370. package/dist/src/sync/errors.d.ts +0 -10
  371. package/dist/src/sync/errors.d.ts.map +0 -1
  372. package/dist/src/sync/errors.js +0 -17
  373. package/dist/src/sync/errors.js.map +0 -1
  374. package/dist/src/sync/index.d.ts +0 -12
  375. package/dist/src/sync/index.d.ts.map +0 -1
  376. package/dist/src/sync/index.js +0 -9
  377. package/dist/src/sync/index.js.map +0 -1
  378. package/dist/src/sync/interfaces.d.ts +0 -182
  379. package/dist/src/sync/interfaces.d.ts.map +0 -1
  380. package/dist/src/sync/interfaces.js +0 -2
  381. package/dist/src/sync/interfaces.js.map +0 -1
  382. package/dist/src/sync/mailbox.d.ts +0 -21
  383. package/dist/src/sync/mailbox.d.ts.map +0 -1
  384. package/dist/src/sync/mailbox.js +0 -59
  385. package/dist/src/sync/mailbox.js.map +0 -1
  386. package/dist/src/sync/sync-builder.d.ts +0 -19
  387. package/dist/src/sync/sync-builder.d.ts.map +0 -1
  388. package/dist/src/sync/sync-builder.js +0 -39
  389. package/dist/src/sync/sync-builder.js.map +0 -1
  390. package/dist/src/sync/sync-manager.d.ts +0 -37
  391. package/dist/src/sync/sync-manager.d.ts.map +0 -1
  392. package/dist/src/sync/sync-manager.js +0 -267
  393. package/dist/src/sync/sync-manager.js.map +0 -1
  394. package/dist/src/sync/sync-operation.d.ts +0 -28
  395. package/dist/src/sync/sync-operation.d.ts.map +0 -1
  396. package/dist/src/sync/sync-operation.js +0 -63
  397. package/dist/src/sync/sync-operation.js.map +0 -1
  398. package/dist/src/sync/types.d.ts +0 -62
  399. package/dist/src/sync/types.d.ts.map +0 -1
  400. package/dist/src/sync/types.js +0 -16
  401. package/dist/src/sync/types.js.map +0 -1
  402. package/dist/src/sync/utils.d.ts +0 -36
  403. package/dist/src/sync/utils.d.ts.map +0 -1
  404. package/dist/src/sync/utils.js +0 -78
  405. package/dist/src/sync/utils.js.map +0 -1
  406. package/dist/src/utils/reshuffle.d.ts +0 -30
  407. package/dist/src/utils/reshuffle.d.ts.map +0 -1
  408. package/dist/src/utils/reshuffle.js +0 -47
  409. package/dist/src/utils/reshuffle.js.map +0 -1
@@ -1,425 +0,0 @@
1
- import { addFile } from "document-drive";
2
- import { actions } from "document-model";
3
- import { addRelationshipAction, createDocumentAction, upgradeDocumentAction, } from "#actions/index.js";
4
- import { signActions } from "#core/utils.js";
5
- import {} from "../shared/awaiter.js";
6
- import { JobStatus, PropagationMode, RelationshipChangeType, } from "../shared/types.js";
7
- import { DocumentChangeType, } 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 class ReactorClient {
19
- logger;
20
- reactor;
21
- signer;
22
- subscriptionManager;
23
- jobAwaiter;
24
- documentIndexer;
25
- constructor(logger, reactor, signer, subscriptionManager, jobAwaiter, documentIndexer) {
26
- this.logger = logger;
27
- this.reactor = reactor;
28
- this.signer = signer;
29
- this.subscriptionManager = subscriptionManager;
30
- this.jobAwaiter = jobAwaiter;
31
- this.documentIndexer = documentIndexer;
32
- this.logger.verbose("ReactorClient initialized");
33
- }
34
- /**
35
- * Retrieves a list of document model modules.
36
- */
37
- async getDocumentModelModules(namespace, paging, signal) {
38
- this.logger.verbose("getDocumentModels(@namespace, @paging)", namespace, paging);
39
- return this.reactor.getDocumentModels(namespace, paging, signal);
40
- }
41
- /**
42
- * Retrieves a specific document model module by document type.
43
- *
44
- * @param documentType - The document type identifier
45
- * @returns The document model module
46
- */
47
- async getDocumentModelModule(documentType) {
48
- const modules = await this.reactor.getDocumentModels();
49
- const module = modules.results.find((m) => m.documentModel.global.id === documentType);
50
- if (!module) {
51
- throw new Error(`Document model module not found for type: ${documentType}`);
52
- }
53
- return module;
54
- }
55
- /**
56
- * Retrieves a specific PHDocument
57
- */
58
- async get(identifier, view, signal) {
59
- this.logger.verbose("get(@identifier, @view)", identifier, view);
60
- return await this.reactor.getByIdOrSlug(identifier, view, undefined, signal);
61
- }
62
- /**
63
- * Retrieves operations for a document
64
- */
65
- async getOperations(documentIdentifier, view, filter, paging, signal) {
66
- this.logger.verbose("getOperations(@documentIdentifier, @view, @filter, @paging)", documentIdentifier, view, filter, paging);
67
- const doc = await this.reactor.getByIdOrSlug(documentIdentifier, view, undefined, signal);
68
- const documentId = doc.document.header.id;
69
- const operationsByScope = await this.reactor.getOperations(documentId, view, filter, paging, undefined, signal);
70
- const allOperations = [];
71
- for (const scopeResults of Object.values(operationsByScope)) {
72
- allOperations.push(...scopeResults.results);
73
- }
74
- allOperations.sort((a, b) => a.index - b.index);
75
- const effectivePaging = paging || { cursor: "0", limit: 100 };
76
- return {
77
- results: allOperations,
78
- options: effectivePaging,
79
- };
80
- }
81
- /**
82
- * Retrieves children of a document
83
- */
84
- async getChildren(parentIdentifier, view, paging, signal) {
85
- this.logger.verbose("getChildren(@parentIdentifier, @view, @paging)", parentIdentifier, view, paging);
86
- const parentDoc = await this.reactor.getByIdOrSlug(parentIdentifier, view, undefined, signal);
87
- const parentId = parentDoc.document.header.id;
88
- const relationships = await this.documentIndexer.getOutgoing(parentId, undefined, undefined, signal);
89
- const childIds = relationships.map((rel) => rel.targetId);
90
- if (childIds.length === 0) {
91
- return {
92
- results: [],
93
- options: paging || { cursor: "0", limit: 0 },
94
- };
95
- }
96
- return this.reactor.find({ ids: childIds }, view, paging, undefined, signal);
97
- }
98
- /**
99
- * Retrieves parents of a document
100
- */
101
- async getParents(childIdentifier, view, paging, signal) {
102
- this.logger.verbose("getParents(@childIdentifier, @view, @paging)", childIdentifier, view, paging);
103
- const childDoc = await this.reactor.getByIdOrSlug(childIdentifier, view, undefined, signal);
104
- const childId = childDoc.document.header.id;
105
- const relationships = await this.documentIndexer.getIncoming(childId, undefined, undefined, signal);
106
- const parentIds = relationships.map((rel) => rel.sourceId);
107
- if (parentIds.length === 0) {
108
- return {
109
- results: [],
110
- options: paging || { cursor: "0", limit: 0 },
111
- };
112
- }
113
- return this.reactor.find({ ids: parentIds }, view, paging, undefined, signal);
114
- }
115
- /**
116
- * Filters documents by criteria and returns a list of them
117
- */
118
- async find(search, view, paging, signal) {
119
- this.logger.verbose("find(@search, @view, @paging)", search, view, paging);
120
- return this.reactor.find(search, view, paging, undefined, signal);
121
- }
122
- /**
123
- * Creates a document and waits for completion
124
- */
125
- async create(document, parentIdentifier, signal) {
126
- this.logger.verbose("create(@id, @parentIdentifier)", document.header.id, parentIdentifier);
127
- const jobInfo = await this.reactor.create(document, this.signer, signal);
128
- const completedJob = await this.waitForJob(jobInfo, signal);
129
- if (completedJob.status === JobStatus.FAILED) {
130
- throw new Error(completedJob.error?.message);
131
- }
132
- const documentId = document.header.id;
133
- if (parentIdentifier) {
134
- await this.addChildren(parentIdentifier, [documentId], undefined, signal);
135
- }
136
- const result = await this.reactor.get(documentId, undefined, completedJob.consistencyToken, signal);
137
- return result.document;
138
- }
139
- /**
140
- * Creates an empty document and waits for completion
141
- */
142
- async createEmpty(documentModelType, options, signal) {
143
- this.logger.verbose("createEmpty(@documentModelType, @options)", documentModelType, options);
144
- const modulesResult = await this.reactor.getDocumentModels(undefined, undefined, signal);
145
- const matchingModules = modulesResult.results.filter((m) => m.documentModel.global.id === documentModelType);
146
- let module;
147
- if (options?.documentModelVersion !== undefined) {
148
- module = matchingModules.find((m) => m.version === options.documentModelVersion);
149
- if (!module) {
150
- throw new Error(`Document model not found for type: ${documentModelType} with version: ${options.documentModelVersion}`);
151
- }
152
- }
153
- else {
154
- module = matchingModules.reduce((latest, current) => {
155
- if (latest === undefined)
156
- return current;
157
- const currentVersion = current.version ?? 0;
158
- const latestVersion = latest.version ?? 0;
159
- return currentVersion > latestVersion ? current : latest;
160
- }, undefined);
161
- if (!module) {
162
- throw new Error(`Document model not found for type: ${documentModelType}`);
163
- }
164
- }
165
- const document = module.utils.createDocument();
166
- document.state.document.version = module.version ?? 1;
167
- return this.create(document, options?.parentIdentifier, signal);
168
- }
169
- /**
170
- * Creates an empty document in a drive as a single batched operation.
171
- */
172
- async createDocumentInDrive(driveId, document, parentFolder, signal) {
173
- this.logger.verbose("createDocumentInDrive(@driveId, @document, @parentFolder)", driveId, document, parentFolder);
174
- const documentId = document.header.id;
175
- const createInput = {
176
- model: document.header.documentType,
177
- version: 0,
178
- documentId: document.header.id,
179
- signing: {
180
- signature: document.header.id,
181
- publicKey: document.header.sig.publicKey,
182
- nonce: document.header.sig.nonce,
183
- createdAtUtcIso: document.header.createdAtUtcIso,
184
- documentType: document.header.documentType,
185
- },
186
- slug: document.header.slug,
187
- name: document.header.name,
188
- branch: document.header.branch,
189
- meta: document.header.meta,
190
- protocolVersions: document.header.protocolVersions ?? {
191
- "base-reducer": 2,
192
- },
193
- };
194
- const documentActions = await signActions([
195
- createDocumentAction(createInput),
196
- upgradeDocumentAction({
197
- documentId: document.header.id,
198
- model: document.header.documentType,
199
- fromVersion: 0,
200
- toVersion: 1,
201
- initialState: document.state,
202
- }),
203
- addRelationshipAction(driveId, documentId, "child"),
204
- ], this.signer, signal);
205
- const driveActions = await signActions([
206
- addFile({
207
- id: documentId,
208
- name: document.header.name,
209
- documentType: document.header.documentType,
210
- parentFolder,
211
- }),
212
- ], this.signer, signal);
213
- const documentJob = await this.reactor.execute(documentId, "main", documentActions, signal);
214
- const completedDocumentJob = await this.waitForJob(documentJob, signal);
215
- if (completedDocumentJob.status === JobStatus.FAILED) {
216
- throw new Error(completedDocumentJob.error?.message);
217
- }
218
- const driveJob = await this.reactor.execute(driveId, "main", driveActions, signal);
219
- const completedDriveJob = await this.waitForJob(driveJob, signal);
220
- if (completedDriveJob.status === JobStatus.FAILED) {
221
- this.logger.error("Document was created but the drive operation failed for (@driveId, @documentId) with @error", driveId, documentId, completedDriveJob.error?.message);
222
- // TODO: rollback?
223
- throw new Error(completedDriveJob.error?.message);
224
- }
225
- // since we waited for the job to complete we don't need the consistency token
226
- const resultingDocument = await this.reactor.get(documentId);
227
- return resultingDocument.document;
228
- }
229
- /**
230
- * Applies a list of actions to a document and waits for completion
231
- */
232
- async execute(documentIdentifier, branch, actions, signal) {
233
- this.logger.verbose("execute(@documentIdentifier, @branch, @count actions)", documentIdentifier, branch, actions.length);
234
- const signedActions = await signActions(actions, this.signer, signal);
235
- const jobInfo = await this.reactor.execute(documentIdentifier, branch, signedActions, signal);
236
- const completedJob = await this.waitForJob(jobInfo, signal);
237
- if (completedJob.status === JobStatus.FAILED) {
238
- throw new Error(completedJob.error?.message);
239
- }
240
- const view = { branch };
241
- const result = await this.reactor.getByIdOrSlug(documentIdentifier, view, completedJob.consistencyToken, signal);
242
- return result.document;
243
- }
244
- /**
245
- * Submits a list of actions to a document
246
- */
247
- async executeAsync(documentIdentifier, branch, actions, signal) {
248
- this.logger.verbose("executeAsync(@documentIdentifier, @branch, @count actions)", documentIdentifier, branch, actions.length);
249
- const signedActions = await signActions(actions, this.signer, signal);
250
- return this.reactor.execute(documentIdentifier, branch, signedActions, signal);
251
- }
252
- /**
253
- * Renames a document and waits for completion
254
- */
255
- async rename(documentIdentifier, name, branch = "main", signal) {
256
- this.logger.verbose("rename(@documentIdentifier, @name, @branch)", documentIdentifier, name, branch);
257
- return this.execute(documentIdentifier, branch, [actions.setName(name)], signal);
258
- }
259
- /**
260
- * Adds multiple documents as children to another and waits for completion
261
- */
262
- async addChildren(parentIdentifier, documentIdentifiers, branch = "main", signal) {
263
- this.logger.verbose("addChildren(@parentIdentifier, @count children, @branch)", parentIdentifier, documentIdentifiers.length, branch);
264
- const jobInfo = await this.reactor.addChildren(parentIdentifier, documentIdentifiers, branch, this.signer, signal);
265
- const completedJob = await this.waitForJob(jobInfo, signal);
266
- if (completedJob.status === JobStatus.FAILED) {
267
- throw new Error(completedJob.error?.message);
268
- }
269
- const result = await this.reactor.getByIdOrSlug(parentIdentifier, { branch }, completedJob.consistencyToken, signal);
270
- return result.document;
271
- }
272
- /**
273
- * Removes multiple documents as children from another and waits for completion
274
- */
275
- async removeChildren(parentIdentifier, documentIdentifiers, branch = "main", signal) {
276
- this.logger.verbose("removeChildren(@parentIdentifier, @count children, @branch)", parentIdentifier, documentIdentifiers.length, branch);
277
- const jobInfo = await this.reactor.removeChildren(parentIdentifier, documentIdentifiers, branch, this.signer, signal);
278
- const completedJob = await this.waitForJob(jobInfo, signal);
279
- if (completedJob.status === JobStatus.FAILED) {
280
- throw new Error(completedJob.error?.message);
281
- }
282
- const result = await this.reactor.getByIdOrSlug(parentIdentifier, { branch }, completedJob.consistencyToken, signal);
283
- return result.document;
284
- }
285
- /**
286
- * Moves multiple documents from one parent to another and waits for completion
287
- */
288
- async moveChildren(sourceParentIdentifier, targetParentIdentifier, documentIdentifiers, branch = "main", signal) {
289
- this.logger.verbose("moveChildren(@sourceParentIdentifier, @targetParentIdentifier, @count children, @branch)", sourceParentIdentifier, targetParentIdentifier, documentIdentifiers.length, branch);
290
- const removeJobInfo = await this.reactor.removeChildren(sourceParentIdentifier, documentIdentifiers, branch, this.signer, signal);
291
- const removeCompletedJob = await this.waitForJob(removeJobInfo, signal);
292
- if (removeCompletedJob.status === JobStatus.FAILED) {
293
- throw new Error(removeCompletedJob.error?.message);
294
- }
295
- const addJobInfo = await this.reactor.addChildren(targetParentIdentifier, documentIdentifiers, branch, this.signer, signal);
296
- const addCompletedJob = await this.waitForJob(addJobInfo, signal);
297
- if (addCompletedJob.status === JobStatus.FAILED) {
298
- throw new Error(addCompletedJob.error?.message);
299
- }
300
- const sourceResult = await this.reactor.getByIdOrSlug(sourceParentIdentifier, { branch }, removeCompletedJob.consistencyToken, signal);
301
- const targetResult = await this.reactor.getByIdOrSlug(targetParentIdentifier, { branch }, addCompletedJob.consistencyToken, signal);
302
- return {
303
- source: sourceResult.document,
304
- target: targetResult.document,
305
- };
306
- }
307
- /**
308
- * Deletes a document and waits for completion
309
- */
310
- async deleteDocument(identifier, propagate, signal) {
311
- this.logger.verbose("deleteDocument(@identifier, @propagate)", identifier, propagate);
312
- const jobs = [];
313
- if (propagate === PropagationMode.Cascade) {
314
- const descendants = [];
315
- const queue = [identifier];
316
- const visited = new Set();
317
- while (queue.length > 0) {
318
- const currentId = queue.shift();
319
- if (visited.has(currentId)) {
320
- continue;
321
- }
322
- visited.add(currentId);
323
- if (signal?.aborted) {
324
- throw new Error("Operation aborted");
325
- }
326
- const relationships = await this.documentIndexer.getOutgoing(currentId, ["child"], undefined, signal);
327
- for (const rel of relationships) {
328
- if (!visited.has(rel.targetId)) {
329
- descendants.push(rel.targetId);
330
- queue.push(rel.targetId);
331
- }
332
- }
333
- }
334
- for (const descendantId of descendants) {
335
- const jobInfo = await this.reactor.deleteDocument(descendantId, this.signer, signal);
336
- jobs.push(jobInfo);
337
- }
338
- }
339
- const jobInfo = await this.reactor.deleteDocument(identifier, this.signer, signal);
340
- jobs.push(jobInfo);
341
- const completedJobs = await Promise.all(jobs.map((job) => this.waitForJob(job, signal)));
342
- for (const completedJob of completedJobs) {
343
- if (completedJob.status === JobStatus.FAILED) {
344
- throw new Error(completedJob.error?.message);
345
- }
346
- }
347
- }
348
- /**
349
- * Deletes documents and waits for completion
350
- */
351
- async deleteDocuments(identifiers, propagate, signal) {
352
- this.logger.verbose("deleteDocuments(@count identifiers, @propagate)", identifiers.length, propagate);
353
- const deletePromises = identifiers.map((identifier) => this.deleteDocument(identifier, propagate, signal));
354
- await Promise.all(deletePromises);
355
- }
356
- /**
357
- * Retrieves the status of a job
358
- */
359
- async getJobStatus(jobId, signal) {
360
- this.logger.verbose("getJobStatus(@jobId)", jobId);
361
- return this.reactor.getJobStatus(jobId, signal);
362
- }
363
- /**
364
- * Waits for a job to complete
365
- */
366
- async waitForJob(jobId, signal) {
367
- const id = typeof jobId === "string" ? jobId : jobId.id;
368
- this.logger.verbose("waitForJob(@id)", id);
369
- return this.jobAwaiter.waitForJob(id, signal);
370
- }
371
- /**
372
- * Subscribes to changes for documents matching specified filters
373
- */
374
- subscribe(search, callback, view) {
375
- this.logger.verbose("subscribe(@search, @view)", search, view);
376
- const unsubscribeCreated = this.subscriptionManager.onDocumentCreated((result) => {
377
- void (async () => {
378
- try {
379
- const documents = await Promise.all(result.results.map((id) => this.reactor
380
- .get(id, view, undefined, undefined)
381
- .then((res) => res.document)));
382
- callback({
383
- type: DocumentChangeType.Created,
384
- documents,
385
- });
386
- }
387
- catch {
388
- // Silently ignore errors when fetching created documents
389
- }
390
- })();
391
- }, search);
392
- const unsubscribeDeleted = this.subscriptionManager.onDocumentDeleted((documentIds) => {
393
- callback({
394
- type: DocumentChangeType.Deleted,
395
- documents: [],
396
- context: { childId: documentIds[0] },
397
- });
398
- }, search);
399
- const unsubscribeUpdated = this.subscriptionManager.onDocumentStateUpdated((result) => {
400
- callback({
401
- type: DocumentChangeType.Updated,
402
- documents: result.results,
403
- });
404
- }, search, view);
405
- const unsubscribeRelationship = this.subscriptionManager.onRelationshipChanged((parentId, childId, changeType) => {
406
- callback({
407
- type: changeType === RelationshipChangeType.Added
408
- ? DocumentChangeType.ChildAdded
409
- : DocumentChangeType.ChildRemoved,
410
- documents: [],
411
- context: {
412
- parentId,
413
- childId,
414
- },
415
- });
416
- }, search);
417
- return () => {
418
- unsubscribeCreated();
419
- unsubscribeDeleted();
420
- unsubscribeUpdated();
421
- unsubscribeRelationship();
422
- };
423
- }
424
- }
425
- //# sourceMappingURL=reactor-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reactor-client.js","sourceRoot":"","sources":["../../../src/client/reactor-client.ts"],"names":[],"mappings":"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"}