@powerhousedao/reactor 6.0.0-dev.69 → 6.0.0-dev.77

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