@syncular/client 0.1.2 → 0.2.0

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 (233) hide show
  1. package/README.md +227 -709
  2. package/dist/apply.d.ts +80 -0
  3. package/dist/apply.js +301 -0
  4. package/dist/blob.d.ts +127 -0
  5. package/dist/blob.js +201 -0
  6. package/dist/bun-database.d.ts +22 -0
  7. package/dist/bun-database.js +61 -0
  8. package/dist/client.d.ts +320 -69
  9. package/dist/client.js +1627 -163
  10. package/dist/content-type.d.ts +2 -0
  11. package/dist/content-type.js +2 -0
  12. package/dist/database.d.ts +35 -80
  13. package/dist/database.js +32 -947
  14. package/dist/encryption.d.ts +47 -0
  15. package/dist/encryption.js +75 -0
  16. package/dist/errors.d.ts +8 -22
  17. package/dist/errors.js +10 -207
  18. package/dist/http.d.ts +32 -0
  19. package/dist/http.js +196 -0
  20. package/dist/index.d.ts +28 -16
  21. package/dist/index.js +25 -12
  22. package/dist/invalidation.d.ts +69 -0
  23. package/dist/invalidation.js +84 -0
  24. package/dist/leader-lock.d.ts +28 -0
  25. package/dist/leader-lock.js +38 -0
  26. package/dist/multi-tab.d.ts +134 -0
  27. package/dist/multi-tab.js +399 -0
  28. package/dist/node-database.d.ts +41 -0
  29. package/dist/node-database.js +133 -0
  30. package/dist/outbox.d.ts +56 -0
  31. package/dist/outbox.js +140 -0
  32. package/dist/schema.d.ts +107 -0
  33. package/dist/schema.js +267 -0
  34. package/dist/state.d.ts +40 -0
  35. package/dist/state.js +77 -0
  36. package/dist/transport.d.ts +44 -0
  37. package/dist/transport.js +7 -0
  38. package/dist/wasm-database.d.ts +30 -0
  39. package/dist/wasm-database.js +170 -0
  40. package/dist/window.d.ts +64 -0
  41. package/dist/window.js +0 -0
  42. package/dist/worker-entry.d.ts +16 -2
  43. package/dist/worker-entry.js +300 -456
  44. package/dist/worker-host.d.ts +174 -0
  45. package/dist/worker-host.js +536 -0
  46. package/dist/worker-protocol.d.ts +173 -61
  47. package/dist/worker-protocol.js +7 -16
  48. package/package.json +45 -112
  49. package/src/apply.ts +435 -0
  50. package/src/blob.ts +333 -0
  51. package/src/bun-database.ts +75 -0
  52. package/src/client.ts +2247 -277
  53. package/src/content-type.ts +2 -0
  54. package/src/database.ts +63 -1389
  55. package/src/encryption.ts +123 -0
  56. package/src/errors.ts +11 -265
  57. package/src/http.ts +254 -0
  58. package/src/index.ts +25 -20
  59. package/src/invalidation.ts +128 -0
  60. package/src/leader-lock.ts +68 -0
  61. package/src/multi-tab.ts +550 -0
  62. package/src/node-database.ts +180 -0
  63. package/src/outbox.ts +206 -0
  64. package/src/schema.ts +397 -0
  65. package/src/state.ts +126 -0
  66. package/src/transport.ts +52 -0
  67. package/src/wasm-database.ts +279 -0
  68. package/src/window.ts +0 -0
  69. package/src/worker-entry.ts +391 -545
  70. package/src/worker-host.ts +800 -0
  71. package/src/worker-protocol.ts +204 -99
  72. package/dist/auth-leases.d.ts +0 -11
  73. package/dist/auth-leases.d.ts.map +0 -1
  74. package/dist/auth-leases.js +0 -140
  75. package/dist/auth-leases.js.map +0 -1
  76. package/dist/blob-limits.d.ts +0 -15
  77. package/dist/blob-limits.d.ts.map +0 -1
  78. package/dist/blob-limits.js +0 -66
  79. package/dist/blob-limits.js.map +0 -1
  80. package/dist/bridge-client.d.ts +0 -69
  81. package/dist/bridge-client.d.ts.map +0 -1
  82. package/dist/bridge-client.js +0 -282
  83. package/dist/bridge-client.js.map +0 -1
  84. package/dist/client-config.d.ts +0 -6
  85. package/dist/client-config.d.ts.map +0 -1
  86. package/dist/client-config.js +0 -18
  87. package/dist/client-config.js.map +0 -1
  88. package/dist/client.d.ts.map +0 -1
  89. package/dist/client.js.map +0 -1
  90. package/dist/command-history.d.ts +0 -35
  91. package/dist/command-history.d.ts.map +0 -1
  92. package/dist/command-history.js +0 -378
  93. package/dist/command-history.js.map +0 -1
  94. package/dist/console-diagnostics.d.ts +0 -33
  95. package/dist/console-diagnostics.d.ts.map +0 -1
  96. package/dist/console-diagnostics.js +0 -496
  97. package/dist/console-diagnostics.js.map +0 -1
  98. package/dist/crdt-yjs/index.d.ts +0 -4
  99. package/dist/crdt-yjs/index.d.ts.map +0 -1
  100. package/dist/crdt-yjs/index.js +0 -4
  101. package/dist/crdt-yjs/index.js.map +0 -1
  102. package/dist/crdt-yjs/webview-host-facade.d.ts +0 -126
  103. package/dist/crdt-yjs/webview-host-facade.d.ts.map +0 -1
  104. package/dist/crdt-yjs/webview-host-facade.js +0 -284
  105. package/dist/crdt-yjs/webview-host-facade.js.map +0 -1
  106. package/dist/crdt-yjs/yjs-document-field-adapter.d.ts +0 -153
  107. package/dist/crdt-yjs/yjs-document-field-adapter.d.ts.map +0 -1
  108. package/dist/crdt-yjs/yjs-document-field-adapter.js +0 -406
  109. package/dist/crdt-yjs/yjs-document-field-adapter.js.map +0 -1
  110. package/dist/crdt-yjs/yjs-prosemirror-bridge.d.ts +0 -73
  111. package/dist/crdt-yjs/yjs-prosemirror-bridge.d.ts.map +0 -1
  112. package/dist/crdt-yjs/yjs-prosemirror-bridge.js +0 -169
  113. package/dist/crdt-yjs/yjs-prosemirror-bridge.js.map +0 -1
  114. package/dist/database.d.ts.map +0 -1
  115. package/dist/database.js.map +0 -1
  116. package/dist/diagnostics.d.ts +0 -10
  117. package/dist/diagnostics.d.ts.map +0 -1
  118. package/dist/diagnostics.js +0 -83
  119. package/dist/diagnostics.js.map +0 -1
  120. package/dist/errors.d.ts.map +0 -1
  121. package/dist/errors.js.map +0 -1
  122. package/dist/generated-bridge.d.ts +0 -365
  123. package/dist/generated-bridge.d.ts.map +0 -1
  124. package/dist/generated-bridge.js +0 -250
  125. package/dist/generated-bridge.js.map +0 -1
  126. package/dist/index.d.ts.map +0 -1
  127. package/dist/index.js.map +0 -1
  128. package/dist/mutations.d.ts +0 -72
  129. package/dist/mutations.d.ts.map +0 -1
  130. package/dist/mutations.js +0 -63
  131. package/dist/mutations.js.map +0 -1
  132. package/dist/network.d.ts +0 -3
  133. package/dist/network.d.ts.map +0 -1
  134. package/dist/network.js +0 -17
  135. package/dist/network.js.map +0 -1
  136. package/dist/react/index.d.ts +0 -169
  137. package/dist/react/index.d.ts.map +0 -1
  138. package/dist/react/index.js +0 -628
  139. package/dist/react/index.js.map +0 -1
  140. package/dist/react-native/index.d.ts +0 -35
  141. package/dist/react-native/index.d.ts.map +0 -1
  142. package/dist/react-native/index.js +0 -49
  143. package/dist/react-native/index.js.map +0 -1
  144. package/dist/runtime-contract.d.ts +0 -13
  145. package/dist/runtime-contract.d.ts.map +0 -1
  146. package/dist/runtime-contract.js +0 -24
  147. package/dist/runtime-contract.js.map +0 -1
  148. package/dist/rust-client.d.ts +0 -106
  149. package/dist/rust-client.d.ts.map +0 -1
  150. package/dist/rust-client.js +0 -938
  151. package/dist/rust-client.js.map +0 -1
  152. package/dist/sentry.d.ts +0 -35
  153. package/dist/sentry.d.ts.map +0 -1
  154. package/dist/sentry.js +0 -155
  155. package/dist/sentry.js.map +0 -1
  156. package/dist/sql-safety.d.ts +0 -3
  157. package/dist/sql-safety.d.ts.map +0 -1
  158. package/dist/sql-safety.js +0 -62
  159. package/dist/sql-safety.js.map +0 -1
  160. package/dist/syncular-runtime-artifacts.json +0 -61
  161. package/dist/tauri/index.d.ts +0 -35
  162. package/dist/tauri/index.d.ts.map +0 -1
  163. package/dist/tauri/index.js +0 -114
  164. package/dist/tauri/index.js.map +0 -1
  165. package/dist/types.d.ts +0 -1096
  166. package/dist/types.d.ts.map +0 -1
  167. package/dist/types.js +0 -2
  168. package/dist/types.js.map +0 -1
  169. package/dist/wasm/.syncular-wasm-profile +0 -1
  170. package/dist/wasm/syncular-runtime-artifact.json +0 -21
  171. package/dist/wasm/syncular.d.ts +0 -207
  172. package/dist/wasm/syncular.js +0 -2341
  173. package/dist/wasm/syncular_bg.wasm +0 -0
  174. package/dist/wasm/syncular_bg.wasm.d.ts +0 -97
  175. package/dist/wasm-bindings/runtime-contract.d.ts +0 -22
  176. package/dist/wasm-bindings/runtime-contract.d.ts.map +0 -1
  177. package/dist/wasm-bindings/runtime-contract.js +0 -112
  178. package/dist/wasm-bindings/runtime-contract.js.map +0 -1
  179. package/dist/wasm-core/.syncular-wasm-profile +0 -1
  180. package/dist/wasm-core/syncular-runtime-artifact.json +0 -17
  181. package/dist/wasm-core/syncular.d.ts +0 -162
  182. package/dist/wasm-core/syncular.js +0 -1847
  183. package/dist/wasm-core/syncular_bg.wasm +0 -0
  184. package/dist/wasm-core/syncular_bg.wasm.d.ts +0 -77
  185. package/dist/wasm-perf/.syncular-wasm-profile +0 -1
  186. package/dist/wasm-perf/syncular-runtime-artifact.json +0 -21
  187. package/dist/wasm-perf/syncular.d.ts +0 -207
  188. package/dist/wasm-perf/syncular.js +0 -2341
  189. package/dist/wasm-perf/syncular_bg.wasm +0 -0
  190. package/dist/wasm-perf/syncular_bg.wasm.d.ts +0 -97
  191. package/dist/wasm-runtime.d.ts +0 -23
  192. package/dist/wasm-runtime.d.ts.map +0 -1
  193. package/dist/wasm-runtime.js +0 -69
  194. package/dist/wasm-runtime.js.map +0 -1
  195. package/dist/worker-client.d.ts +0 -123
  196. package/dist/worker-client.d.ts.map +0 -1
  197. package/dist/worker-client.js +0 -1735
  198. package/dist/worker-client.js.map +0 -1
  199. package/dist/worker-entry.d.ts.map +0 -1
  200. package/dist/worker-entry.js.map +0 -1
  201. package/dist/worker-protocol.d.ts.map +0 -1
  202. package/dist/worker-protocol.js.map +0 -1
  203. package/dist/worker-realtime.d.ts +0 -39
  204. package/dist/worker-realtime.d.ts.map +0 -1
  205. package/dist/worker-realtime.js +0 -677
  206. package/dist/worker-realtime.js.map +0 -1
  207. package/src/auth-leases.ts +0 -251
  208. package/src/blob-limits.ts +0 -98
  209. package/src/bridge-client.ts +0 -512
  210. package/src/client-config.ts +0 -29
  211. package/src/command-history.ts +0 -623
  212. package/src/console-diagnostics.ts +0 -617
  213. package/src/crdt-yjs/index.ts +0 -3
  214. package/src/crdt-yjs/webview-host-facade.ts +0 -477
  215. package/src/crdt-yjs/yjs-document-field-adapter.ts +0 -733
  216. package/src/crdt-yjs/yjs-prosemirror-bridge.ts +0 -272
  217. package/src/diagnostics.ts +0 -116
  218. package/src/generated-bridge.ts +0 -741
  219. package/src/mutations.ts +0 -168
  220. package/src/network.ts +0 -32
  221. package/src/react/index.ts +0 -1036
  222. package/src/react-native/index.ts +0 -152
  223. package/src/runtime-contract.ts +0 -48
  224. package/src/rust-client.ts +0 -1491
  225. package/src/sentry.ts +0 -215
  226. package/src/sql-safety.ts +0 -61
  227. package/src/tauri/index.ts +0 -211
  228. package/src/types.ts +0 -1397
  229. package/src/wasm-bindings/generated-wasm-bindings.d.ts +0 -70
  230. package/src/wasm-bindings/runtime-contract.ts +0 -158
  231. package/src/wasm-runtime.ts +0 -145
  232. package/src/worker-client.ts +0 -2289
  233. package/src/worker-realtime.ts +0 -843
@@ -1,378 +0,0 @@
1
- import { randomId } from '@syncular/core';
2
- import { createMutationsApi, } from './mutations.js';
3
- export class SyncularCommandHistoryError extends Error {
4
- code;
5
- commandId;
6
- constructor(code, message, options = {}) {
7
- super(message);
8
- this.name = 'SyncularCommandHistoryError';
9
- this.code = code;
10
- this.commandId = options.commandId;
11
- }
12
- }
13
- export function createSyncularCommandHistory(options) {
14
- const store = new CommandHistoryStore(options);
15
- const history = new CommandHistory(options, store);
16
- return {
17
- history,
18
- wrapMutations(mutations, scope) {
19
- return createMutationsApi(createTrackedCommit(mutations, scope, history));
20
- },
21
- };
22
- }
23
- function createTrackedCommit(mutations, scope, history) {
24
- return async (fn) => {
25
- await history.ensureReady();
26
- const recorder = new PendingCommandRecorder(history);
27
- const { result, commit } = await mutations.$commit(async (tx) => fn(createTrackedTx(tx, recorder)));
28
- await recorder.recordCommitted(scope, commit);
29
- return { result, receipt: commit, meta: undefined };
30
- };
31
- }
32
- function createTrackedTx(tx, recorder) {
33
- const tableCache = new Map();
34
- return new Proxy({}, {
35
- get(_target, prop) {
36
- if (prop === 'then')
37
- return undefined;
38
- if (typeof prop !== 'string')
39
- return undefined;
40
- const cached = tableCache.get(prop);
41
- if (cached)
42
- return cached;
43
- const tableTx = tx[prop];
44
- if (!tableTx)
45
- return undefined;
46
- const tracked = createTrackedTableTx(prop, tableTx, recorder);
47
- tableCache.set(prop, tracked);
48
- return tracked;
49
- },
50
- });
51
- }
52
- function createTrackedTableTx(table, tableTx, recorder) {
53
- return {
54
- async insert(values) {
55
- const id = await tableTx.insert(values);
56
- await recorder.track(table, id);
57
- return id;
58
- },
59
- async insertMany(rows) {
60
- const ids = await tableTx.insertMany(rows);
61
- for (const id of ids)
62
- await recorder.track(table, id);
63
- return ids;
64
- },
65
- async update(id, patch, options) {
66
- await recorder.track(table, id);
67
- await tableTx.update(id, patch, options);
68
- },
69
- async delete(id, options) {
70
- await recorder.track(table, id);
71
- await tableTx.delete(id, options);
72
- },
73
- async upsert(id, patch, options) {
74
- await recorder.track(table, id);
75
- await tableTx.upsert(id, patch, options);
76
- },
77
- };
78
- }
79
- class PendingCommandRecorder {
80
- history;
81
- #entries = new Map();
82
- constructor(history) {
83
- this.history = history;
84
- }
85
- async track(table, rowId) {
86
- const key = `${table}\0${rowId}`;
87
- if (this.#entries.has(key))
88
- return;
89
- this.#entries.set(key, {
90
- table,
91
- rowId,
92
- before: await this.history.readRow(table, rowId),
93
- });
94
- }
95
- async recordCommitted(scope, receipt) {
96
- if (this.#entries.size === 0)
97
- return;
98
- const entries = [];
99
- for (const entry of this.#entries.values()) {
100
- const after = await this.history.readRow(entry.table, entry.rowId);
101
- if (sameSnapshot(entry.before, after))
102
- continue;
103
- entries.push({ ...entry, after });
104
- }
105
- if (entries.length === 0)
106
- return;
107
- await this.history.record(scope, entries, receipt);
108
- }
109
- }
110
- class CommandHistory {
111
- options;
112
- store;
113
- constructor(options, store) {
114
- this.options = options;
115
- this.store = store;
116
- }
117
- ensureReady() {
118
- return this.store.ensureReady();
119
- }
120
- readRow(table, rowId) {
121
- const config = this.options.tableConfig[table];
122
- if (!config) {
123
- throw new SyncularCommandHistoryError('sync.command_history_table_unsupported', `Cannot record undo history for unsupported table ${table}`);
124
- }
125
- return readCurrentRow(this.options.client, table, config.primaryKeyColumn ?? 'id', rowId);
126
- }
127
- record(scope, entries, receipt) {
128
- return this.store.insert(scope, entries, receipt);
129
- }
130
- async canUndo() {
131
- await this.ensureReady();
132
- return (await this.store.latest('done')) !== null;
133
- }
134
- async canRedo() {
135
- await this.ensureReady();
136
- return (await this.store.latest('undone')) !== null;
137
- }
138
- async undoLast() {
139
- await this.ensureReady();
140
- const command = await this.store.latest('done');
141
- if (!command) {
142
- throw new SyncularCommandHistoryError('sync.command_history_empty', 'There is no Syncular command to undo');
143
- }
144
- const entries = decodeEntries(command);
145
- this.assertSafeReplay(command.id, entries);
146
- await this.assertCurrentRows(command.id, entries, 'after');
147
- const commit = await this.applySnapshots(command.mutation_scope, [...entries].reverse().map((entry) => ({
148
- table: entry.table,
149
- rowId: entry.rowId,
150
- snapshot: entry.before,
151
- })));
152
- await this.store.mark(command.id, 'undone', commit);
153
- return { ...commit, commandId: command.id };
154
- }
155
- async redoLast() {
156
- await this.ensureReady();
157
- const command = await this.store.latest('undone');
158
- if (!command) {
159
- throw new SyncularCommandHistoryError('sync.command_history_empty', 'There is no Syncular command to redo');
160
- }
161
- const entries = decodeEntries(command);
162
- this.assertSafeReplay(command.id, entries);
163
- await this.assertCurrentRows(command.id, entries, 'before');
164
- const commit = await this.applySnapshots(command.mutation_scope, entries.map((entry) => ({
165
- table: entry.table,
166
- rowId: entry.rowId,
167
- snapshot: entry.after,
168
- })));
169
- await this.store.mark(command.id, 'done', commit);
170
- return { ...commit, commandId: command.id };
171
- }
172
- async assertCurrentRows(commandId, entries, expected) {
173
- for (const entry of entries) {
174
- const config = this.options.tableConfig[entry.table];
175
- if (!config) {
176
- throw new SyncularCommandHistoryError('sync.command_history_table_unsupported', `Cannot replay undo history for unsupported table ${entry.table}`, { commandId });
177
- }
178
- const current = await this.readRow(entry.table, entry.rowId);
179
- if (!sameReplaySnapshot(config, current, entry[expected])) {
180
- throw new SyncularCommandHistoryError('sync.command_history_conflict', `Cannot ${expected === 'after' ? 'undo' : 'redo'} Syncular command ${commandId}; ${entry.table}.${entry.rowId} changed since the command was recorded`, { commandId });
181
- }
182
- }
183
- }
184
- assertSafeReplay(commandId, entries) {
185
- for (const entry of entries) {
186
- const config = this.options.tableConfig[entry.table];
187
- if (!config) {
188
- throw new SyncularCommandHistoryError('sync.command_history_table_unsupported', `Cannot replay undo history for unsupported table ${entry.table}`, { commandId });
189
- }
190
- const unsafeFields = unsafeChangedFields(config, entry);
191
- if (unsafeFields.length > 0) {
192
- throw new SyncularCommandHistoryError('sync.command_history_unsafe_field', `Cannot replay Syncular command ${commandId}; ${entry.table}.${entry.rowId} changed unsafe fields: ${unsafeFields.join(', ')}`, { commandId });
193
- }
194
- }
195
- }
196
- async applySnapshots(scope, snapshots) {
197
- const mutations = scope === 'leasedMutations'
198
- ? this.options.leasedMutations
199
- : this.options.mutations;
200
- const { commit } = await mutations.$commit(async (tx) => {
201
- for (const snapshot of snapshots) {
202
- const table = tx[snapshot.table];
203
- if (!table) {
204
- throw new SyncularCommandHistoryError('sync.command_history_table_unsupported', `Cannot apply undo history for unsupported table ${snapshot.table}`);
205
- }
206
- if (snapshot.snapshot === null) {
207
- await table.delete(snapshot.rowId);
208
- }
209
- else {
210
- await table.upsert(snapshot.rowId, this.mutationPayloadForSnapshot(snapshot.table, snapshot.snapshot));
211
- }
212
- }
213
- });
214
- return commit;
215
- }
216
- mutationPayloadForSnapshot(table, snapshot) {
217
- const config = this.options.tableConfig[table];
218
- if (!config) {
219
- throw new SyncularCommandHistoryError('sync.command_history_table_unsupported', `Cannot apply undo history for unsupported table ${table}`);
220
- }
221
- const payload = { ...snapshot };
222
- delete payload[config.primaryKeyColumn ?? 'id'];
223
- if (config.serverVersionColumn)
224
- delete payload[config.serverVersionColumn];
225
- for (const field of config.crdtYjsFields ?? []) {
226
- delete payload[field.stateColumn];
227
- }
228
- return payload;
229
- }
230
- }
231
- class CommandHistoryStore {
232
- options;
233
- #ready;
234
- constructor(options) {
235
- this.options = options;
236
- }
237
- ensureReady() {
238
- this.#ready ??= this.#ensureReady();
239
- return this.#ready;
240
- }
241
- async insert(scope, entries, receipt) {
242
- await this.ensureReady();
243
- const now = this.now();
244
- const id = this.options.idFactory?.() ?? `cmd_${randomId()}`;
245
- const client = this.unsafeClient();
246
- await client.executeUnsafeSql("delete from sync_command_history where state = 'undone'");
247
- await client.executeUnsafeSql(`insert into sync_command_history (
248
- id,
249
- mutation_scope,
250
- state,
251
- entries_json,
252
- client_commit_id,
253
- created_at,
254
- updated_at
255
- ) values (?, ?, 'done', ?, ?, ?, ?)`, [id, scope, JSON.stringify(entries), receipt.clientCommitId, now, now]);
256
- }
257
- async latest(state) {
258
- await this.ensureReady();
259
- const result = await this.options.client.executeSql(`select id, mutation_scope, state, entries_json, client_commit_id,
260
- undo_client_commit_id, redo_client_commit_id, created_at, updated_at
261
- from sync_command_history
262
- where state = ?
263
- order by updated_at desc, created_at desc, id desc
264
- limit 1`, [state]);
265
- return result.rows[0] ?? null;
266
- }
267
- async mark(id, state, receipt) {
268
- await this.ensureReady();
269
- const replayColumn = state === 'undone' ? 'undo_client_commit_id' : 'redo_client_commit_id';
270
- await this.unsafeClient().executeUnsafeSql(`update sync_command_history
271
- set state = ?, updated_at = ?, ${replayColumn} = ?
272
- where id = ?`, [state, this.now(), receipt.clientCommitId, id]);
273
- }
274
- async #ensureReady() {
275
- const client = this.unsafeClient();
276
- await client.executeUnsafeSql(`create table if not exists sync_command_history (
277
- id text primary key,
278
- mutation_scope text not null,
279
- state text not null check (state in ('done', 'undone')),
280
- entries_json text not null,
281
- client_commit_id text not null,
282
- undo_client_commit_id text null,
283
- redo_client_commit_id text null,
284
- created_at integer not null,
285
- updated_at integer not null
286
- )`);
287
- await client.executeUnsafeSql(`create index if not exists idx_sync_command_history_state_updated
288
- on sync_command_history (state, updated_at, created_at)`);
289
- }
290
- unsafeClient() {
291
- const client = this.options.client;
292
- if (typeof client.executeUnsafeSql === 'function') {
293
- return client;
294
- }
295
- throw new SyncularCommandHistoryError('sync.command_history_storage_unavailable', 'Syncular command history requires internal SQLite write access');
296
- }
297
- now() {
298
- return Math.trunc(this.options.nowMs?.() ?? Date.now());
299
- }
300
- }
301
- async function readCurrentRow(client, table, idColumn, rowId) {
302
- const result = await client.executeSql(`select * from ${quoteIdentifier(table)} where ${quoteIdentifier(idColumn)} = ? limit 1`, [rowId]);
303
- const row = result.rows[0];
304
- return row ? normalizeSnapshot(row) : null;
305
- }
306
- function decodeEntries(row) {
307
- const entries = JSON.parse(row.entries_json);
308
- if (!Array.isArray(entries)) {
309
- throw new SyncularCommandHistoryError('sync.command_history_conflict', `Syncular command history row ${row.id} is malformed`, { commandId: row.id });
310
- }
311
- return entries;
312
- }
313
- function normalizeSnapshot(row) {
314
- return Object.fromEntries(Object.entries(row).sort(([a], [b]) => a.localeCompare(b)));
315
- }
316
- function sameSnapshot(left, right) {
317
- return stableJson(left) === stableJson(right);
318
- }
319
- function sameReplaySnapshot(config, left, right) {
320
- return (stableJson(replayComparableSnapshot(config, left)) ===
321
- stableJson(replayComparableSnapshot(config, right)));
322
- }
323
- function replayComparableSnapshot(config, snapshot) {
324
- if (snapshot === null)
325
- return null;
326
- const comparable = { ...snapshot };
327
- if (config.serverVersionColumn)
328
- delete comparable[config.serverVersionColumn];
329
- for (const field of config.crdtYjsFields ?? []) {
330
- delete comparable[field.stateColumn];
331
- }
332
- return comparable;
333
- }
334
- function unsafeChangedFields(config, entry) {
335
- const rowLifecycleReplay = entry.before === null || entry.after === null;
336
- const unsafeFields = new Set();
337
- for (const column of config.blobColumns ?? [])
338
- unsafeFields.add(column);
339
- for (const field of config.encryptedFields ?? [])
340
- unsafeFields.add(field.field);
341
- if (!rowLifecycleReplay) {
342
- for (const field of config.crdtYjsFields ?? []) {
343
- unsafeFields.add(field.field);
344
- unsafeFields.add(field.stateColumn);
345
- }
346
- }
347
- const changed = [];
348
- for (const field of unsafeFields) {
349
- const before = entry.before?.[field];
350
- const after = entry.after?.[field];
351
- if (stableJson(nullishToNull(before)) === stableJson(nullishToNull(after))) {
352
- continue;
353
- }
354
- if (rowLifecycleReplay && before == null && after == null)
355
- continue;
356
- changed.push(field);
357
- }
358
- return changed;
359
- }
360
- function nullishToNull(value) {
361
- return value == null ? null : value;
362
- }
363
- function stableJson(value) {
364
- return JSON.stringify(sortValue(value));
365
- }
366
- function sortValue(value) {
367
- if (Array.isArray(value))
368
- return value.map(sortValue);
369
- if (!value || typeof value !== 'object')
370
- return value;
371
- return Object.fromEntries(Object.entries(value)
372
- .sort(([a], [b]) => a.localeCompare(b))
373
- .map(([key, nested]) => [key, sortValue(nested)]));
374
- }
375
- function quoteIdentifier(identifier) {
376
- return `"${identifier.replaceAll('"', '""')}"`;
377
- }
378
- //# sourceMappingURL=command-history.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-history.js","sourceRoot":"","sources":["../src/command-history.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import type { SyncularClientConfig, SyncularConsoleDiagnosticsOptions, SyncularDiagnosticSnapshot, SyncularLifecycleState, SyncularRuntimeClient } from './types';
2
- type ConsoleDiagnosticsClient = Pick<SyncularRuntimeClient, 'addDiagnosticListener' | 'addEventListener' | 'diagnosticSnapshot' | 'lifecycleState'>;
3
- export interface SyncularConsoleDiagnosticsPayload {
4
- clientId: string;
5
- actorId?: string;
6
- partitionId: string;
7
- lifecycle?: Record<string, unknown>;
8
- snapshot: Record<string, unknown>;
9
- }
10
- export interface SyncularConsoleDiagnosticsPayloadResult {
11
- payload: SyncularConsoleDiagnosticsPayload;
12
- body: string;
13
- byteLength: number;
14
- compacted: boolean;
15
- }
16
- interface CreateSyncularConsoleDiagnosticsPublisherOptions extends SyncularConsoleDiagnosticsOptions {
17
- config: SyncularClientConfig;
18
- isClosed: () => boolean;
19
- }
20
- export declare function createSyncularConsoleDiagnosticsPublisher(client: ConsoleDiagnosticsClient, options: CreateSyncularConsoleDiagnosticsPublisherOptions): {
21
- schedule(): void;
22
- destroy(): void;
23
- };
24
- export declare function buildSyncularConsoleDiagnosticsPayload(args: {
25
- clientId: string;
26
- actorId?: string;
27
- partitionId?: string;
28
- lifecycle?: SyncularLifecycleState;
29
- snapshot: SyncularDiagnosticSnapshot;
30
- maxPayloadBytes?: number;
31
- }): SyncularConsoleDiagnosticsPayloadResult;
32
- export {};
33
- //# sourceMappingURL=console-diagnostics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"console-diagnostics.d.ts","sourceRoot":"","sources":["../src/console-diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,oBAAoB,EACpB,iCAAiC,EAEjC,0BAA0B,EAC1B,sBAAsB,EAEtB,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AASjB,KAAK,wBAAwB,GAAG,IAAI,CAClC,qBAAqB,EACnB,uBAAuB,GACvB,kBAAkB,GAClB,oBAAoB,GACpB,gBAAgB,CACnB,CAAC;AAEF,MAAM,WAAW,iCAAiC;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,uCAAuC;IACtD,OAAO,EAAE,iCAAiC,CAAC;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,gDACR,SAAQ,iCAAiC;IACzC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,EAAE,MAAM,OAAO,CAAC;CACzB;AAwHD,wBAAgB,yCAAyC,CACvD,MAAM,EAAE,wBAAwB,EAChC,OAAO,EAAE,gDAAgD,GACxD;IAAE,QAAQ,IAAI,IAAI,CAAC;IAAC,OAAO,IAAI,IAAI,CAAA;CAAE,CA+GvC;AAED,wBAAgB,sCAAsC,CAAC,IAAI,EAAE;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,uCAAuC,CAmB1C"}