@syncular/client 0.0.6-95 → 0.1.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 (356) hide show
  1. package/README.md +713 -11
  2. package/dist/auth-leases.d.ts +11 -0
  3. package/dist/auth-leases.d.ts.map +1 -0
  4. package/dist/auth-leases.js +140 -0
  5. package/dist/auth-leases.js.map +1 -0
  6. package/dist/blob-limits.d.ts +15 -0
  7. package/dist/blob-limits.d.ts.map +1 -0
  8. package/dist/blob-limits.js +66 -0
  9. package/dist/blob-limits.js.map +1 -0
  10. package/dist/bridge-client.d.ts +69 -0
  11. package/dist/bridge-client.d.ts.map +1 -0
  12. package/dist/bridge-client.js +282 -0
  13. package/dist/bridge-client.js.map +1 -0
  14. package/dist/client-config.d.ts +6 -0
  15. package/dist/client-config.d.ts.map +1 -0
  16. package/dist/client-config.js +18 -0
  17. package/dist/client-config.js.map +1 -0
  18. package/dist/client.d.ts +65 -397
  19. package/dist/client.d.ts.map +1 -1
  20. package/dist/client.js +150 -960
  21. package/dist/client.js.map +1 -1
  22. package/dist/command-history.d.ts +35 -0
  23. package/dist/command-history.d.ts.map +1 -0
  24. package/dist/command-history.js +378 -0
  25. package/dist/command-history.js.map +1 -0
  26. package/dist/console-diagnostics.d.ts +33 -0
  27. package/dist/console-diagnostics.d.ts.map +1 -0
  28. package/dist/console-diagnostics.js +496 -0
  29. package/dist/console-diagnostics.js.map +1 -0
  30. package/dist/crdt-yjs/index.d.ts +4 -0
  31. package/dist/crdt-yjs/index.d.ts.map +1 -0
  32. package/dist/crdt-yjs/index.js +4 -0
  33. package/dist/crdt-yjs/index.js.map +1 -0
  34. package/dist/crdt-yjs/webview-host-facade.d.ts +126 -0
  35. package/dist/crdt-yjs/webview-host-facade.d.ts.map +1 -0
  36. package/dist/crdt-yjs/webview-host-facade.js +284 -0
  37. package/dist/crdt-yjs/webview-host-facade.js.map +1 -0
  38. package/dist/crdt-yjs/yjs-document-field-adapter.d.ts +153 -0
  39. package/dist/crdt-yjs/yjs-document-field-adapter.d.ts.map +1 -0
  40. package/dist/crdt-yjs/yjs-document-field-adapter.js +406 -0
  41. package/dist/crdt-yjs/yjs-document-field-adapter.js.map +1 -0
  42. package/dist/crdt-yjs/yjs-prosemirror-bridge.d.ts +73 -0
  43. package/dist/crdt-yjs/yjs-prosemirror-bridge.d.ts.map +1 -0
  44. package/dist/crdt-yjs/yjs-prosemirror-bridge.js +169 -0
  45. package/dist/crdt-yjs/yjs-prosemirror-bridge.js.map +1 -0
  46. package/dist/database.d.ts +83 -0
  47. package/dist/database.d.ts.map +1 -0
  48. package/dist/database.js +916 -0
  49. package/dist/database.js.map +1 -0
  50. package/dist/diagnostics.d.ts +10 -0
  51. package/dist/diagnostics.d.ts.map +1 -0
  52. package/dist/diagnostics.js +83 -0
  53. package/dist/diagnostics.js.map +1 -0
  54. package/dist/errors.d.ts +24 -0
  55. package/dist/errors.d.ts.map +1 -0
  56. package/dist/errors.js +211 -0
  57. package/dist/errors.js.map +1 -0
  58. package/dist/generated-bridge.d.ts +365 -0
  59. package/dist/generated-bridge.d.ts.map +1 -0
  60. package/dist/generated-bridge.js +250 -0
  61. package/dist/generated-bridge.js.map +1 -0
  62. package/dist/index.d.ts +13 -23
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +14 -25
  65. package/dist/index.js.map +1 -1
  66. package/dist/mutations.d.ts +4 -72
  67. package/dist/mutations.d.ts.map +1 -1
  68. package/dist/mutations.js +2 -568
  69. package/dist/mutations.js.map +1 -1
  70. package/dist/network.d.ts +3 -0
  71. package/dist/network.d.ts.map +1 -0
  72. package/dist/network.js +17 -0
  73. package/dist/network.js.map +1 -0
  74. package/dist/react/index.d.ts +169 -0
  75. package/dist/react/index.d.ts.map +1 -0
  76. package/dist/react/index.js +628 -0
  77. package/dist/react/index.js.map +1 -0
  78. package/dist/react-native/index.d.ts +35 -0
  79. package/dist/react-native/index.d.ts.map +1 -0
  80. package/dist/react-native/index.js +49 -0
  81. package/dist/react-native/index.js.map +1 -0
  82. package/dist/runtime-contract.d.ts +13 -0
  83. package/dist/runtime-contract.d.ts.map +1 -0
  84. package/dist/runtime-contract.js +24 -0
  85. package/dist/runtime-contract.js.map +1 -0
  86. package/dist/rust-client.d.ts +106 -0
  87. package/dist/rust-client.d.ts.map +1 -0
  88. package/dist/rust-client.js +936 -0
  89. package/dist/rust-client.js.map +1 -0
  90. package/dist/sentry.d.ts +35 -0
  91. package/dist/sentry.d.ts.map +1 -0
  92. package/dist/sentry.js +155 -0
  93. package/dist/sentry.js.map +1 -0
  94. package/dist/sql-safety.d.ts +3 -0
  95. package/dist/sql-safety.d.ts.map +1 -0
  96. package/dist/sql-safety.js +62 -0
  97. package/dist/sql-safety.js.map +1 -0
  98. package/dist/syncular-runtime-artifacts.json +61 -0
  99. package/dist/tauri/index.d.ts +35 -0
  100. package/dist/tauri/index.d.ts.map +1 -0
  101. package/dist/tauri/index.js +114 -0
  102. package/dist/tauri/index.js.map +1 -0
  103. package/dist/types.d.ts +1059 -0
  104. package/dist/types.d.ts.map +1 -0
  105. package/dist/types.js +2 -0
  106. package/dist/types.js.map +1 -0
  107. package/dist/wasm/.syncular-wasm-profile +1 -0
  108. package/dist/wasm/syncular-runtime-artifact.json +21 -0
  109. package/dist/wasm/syncular.d.ts +207 -0
  110. package/dist/wasm/syncular.js +2341 -0
  111. package/dist/wasm/syncular_bg.wasm +0 -0
  112. package/dist/wasm/syncular_bg.wasm.d.ts +97 -0
  113. package/dist/wasm-bindings/runtime-contract.d.ts +22 -0
  114. package/dist/wasm-bindings/runtime-contract.d.ts.map +1 -0
  115. package/dist/wasm-bindings/runtime-contract.js +112 -0
  116. package/dist/wasm-bindings/runtime-contract.js.map +1 -0
  117. package/dist/wasm-core/.syncular-wasm-profile +1 -0
  118. package/dist/wasm-core/syncular-runtime-artifact.json +17 -0
  119. package/dist/wasm-core/syncular.d.ts +162 -0
  120. package/dist/wasm-core/syncular.js +1847 -0
  121. package/dist/wasm-core/syncular_bg.wasm +0 -0
  122. package/dist/wasm-core/syncular_bg.wasm.d.ts +77 -0
  123. package/dist/wasm-perf/.syncular-wasm-profile +1 -0
  124. package/dist/wasm-perf/syncular-runtime-artifact.json +21 -0
  125. package/dist/wasm-perf/syncular.d.ts +207 -0
  126. package/dist/wasm-perf/syncular.js +2341 -0
  127. package/dist/wasm-perf/syncular_bg.wasm +0 -0
  128. package/dist/wasm-perf/syncular_bg.wasm.d.ts +97 -0
  129. package/dist/wasm-runtime.d.ts +18 -0
  130. package/dist/wasm-runtime.d.ts.map +1 -0
  131. package/dist/wasm-runtime.js +28 -0
  132. package/dist/wasm-runtime.js.map +1 -0
  133. package/dist/worker-client.d.ts +123 -0
  134. package/dist/worker-client.d.ts.map +1 -0
  135. package/dist/worker-client.js +1686 -0
  136. package/dist/worker-client.js.map +1 -0
  137. package/dist/worker-entry.d.ts +2 -0
  138. package/dist/worker-entry.d.ts.map +1 -0
  139. package/dist/worker-entry.js +479 -0
  140. package/dist/worker-entry.js.map +1 -0
  141. package/dist/worker-protocol.d.ts +64 -0
  142. package/dist/worker-protocol.d.ts.map +1 -0
  143. package/dist/worker-protocol.js +16 -0
  144. package/dist/worker-protocol.js.map +1 -0
  145. package/dist/worker-realtime.d.ts +39 -0
  146. package/dist/worker-realtime.d.ts.map +1 -0
  147. package/dist/worker-realtime.js +677 -0
  148. package/dist/worker-realtime.js.map +1 -0
  149. package/package.json +124 -17
  150. package/src/auth-leases.ts +251 -0
  151. package/src/blob-limits.ts +98 -0
  152. package/src/bridge-client.ts +512 -0
  153. package/src/client-config.ts +29 -0
  154. package/src/client.ts +256 -1414
  155. package/src/command-history.ts +623 -0
  156. package/src/console-diagnostics.ts +617 -0
  157. package/src/crdt-yjs/index.ts +3 -0
  158. package/src/crdt-yjs/webview-host-facade.ts +477 -0
  159. package/src/crdt-yjs/yjs-document-field-adapter.ts +733 -0
  160. package/src/crdt-yjs/yjs-prosemirror-bridge.ts +272 -0
  161. package/src/database.ts +1342 -0
  162. package/src/diagnostics.ts +116 -0
  163. package/src/errors.ts +269 -0
  164. package/src/generated-bridge.ts +741 -0
  165. package/src/index.ts +21 -25
  166. package/src/mutations.ts +12 -821
  167. package/src/network.ts +32 -0
  168. package/src/react/index.ts +1036 -0
  169. package/src/react-native/index.ts +152 -0
  170. package/src/runtime-contract.ts +48 -0
  171. package/src/rust-client.ts +1488 -0
  172. package/src/sentry.ts +215 -0
  173. package/src/sql-safety.ts +61 -0
  174. package/src/tauri/index.ts +211 -0
  175. package/src/types.ts +1356 -0
  176. package/src/wasm-bindings/generated-wasm-bindings.d.ts +70 -0
  177. package/src/wasm-bindings/runtime-contract.ts +158 -0
  178. package/src/wasm-runtime.ts +76 -0
  179. package/src/worker-client.ts +2215 -0
  180. package/src/worker-entry.ts +584 -0
  181. package/src/worker-protocol.ts +109 -0
  182. package/src/worker-realtime.ts +843 -0
  183. package/dist/blobs/index.d.ts +0 -7
  184. package/dist/blobs/index.d.ts.map +0 -1
  185. package/dist/blobs/index.js +0 -7
  186. package/dist/blobs/index.js.map +0 -1
  187. package/dist/blobs/manager.d.ts +0 -345
  188. package/dist/blobs/manager.d.ts.map +0 -1
  189. package/dist/blobs/manager.js +0 -749
  190. package/dist/blobs/manager.js.map +0 -1
  191. package/dist/blobs/migrate.d.ts +0 -14
  192. package/dist/blobs/migrate.d.ts.map +0 -1
  193. package/dist/blobs/migrate.js +0 -59
  194. package/dist/blobs/migrate.js.map +0 -1
  195. package/dist/blobs/types.d.ts +0 -62
  196. package/dist/blobs/types.d.ts.map +0 -1
  197. package/dist/blobs/types.js +0 -5
  198. package/dist/blobs/types.js.map +0 -1
  199. package/dist/conflicts.d.ts +0 -31
  200. package/dist/conflicts.d.ts.map +0 -1
  201. package/dist/conflicts.js +0 -112
  202. package/dist/conflicts.js.map +0 -1
  203. package/dist/create-client.d.ts +0 -118
  204. package/dist/create-client.d.ts.map +0 -1
  205. package/dist/create-client.js +0 -178
  206. package/dist/create-client.js.map +0 -1
  207. package/dist/engine/SyncEngine.d.ts +0 -272
  208. package/dist/engine/SyncEngine.d.ts.map +0 -1
  209. package/dist/engine/SyncEngine.js +0 -1860
  210. package/dist/engine/SyncEngine.js.map +0 -1
  211. package/dist/engine/index.d.ts +0 -6
  212. package/dist/engine/index.d.ts.map +0 -1
  213. package/dist/engine/index.js +0 -6
  214. package/dist/engine/index.js.map +0 -1
  215. package/dist/engine/types.d.ts +0 -345
  216. package/dist/engine/types.d.ts.map +0 -1
  217. package/dist/engine/types.js +0 -7
  218. package/dist/engine/types.js.map +0 -1
  219. package/dist/handlers/collection.d.ts +0 -6
  220. package/dist/handlers/collection.d.ts.map +0 -1
  221. package/dist/handlers/collection.js +0 -21
  222. package/dist/handlers/collection.js.map +0 -1
  223. package/dist/handlers/create-handler.d.ts +0 -120
  224. package/dist/handlers/create-handler.d.ts.map +0 -1
  225. package/dist/handlers/create-handler.js +0 -145
  226. package/dist/handlers/create-handler.js.map +0 -1
  227. package/dist/handlers/types.d.ts +0 -83
  228. package/dist/handlers/types.d.ts.map +0 -1
  229. package/dist/handlers/types.js +0 -5
  230. package/dist/handlers/types.js.map +0 -1
  231. package/dist/migrate.d.ts +0 -19
  232. package/dist/migrate.d.ts.map +0 -1
  233. package/dist/migrate.js +0 -238
  234. package/dist/migrate.js.map +0 -1
  235. package/dist/outbox.d.ts +0 -112
  236. package/dist/outbox.d.ts.map +0 -1
  237. package/dist/outbox.js +0 -294
  238. package/dist/outbox.js.map +0 -1
  239. package/dist/plugins/incrementing-version.d.ts +0 -34
  240. package/dist/plugins/incrementing-version.d.ts.map +0 -1
  241. package/dist/plugins/incrementing-version.js +0 -83
  242. package/dist/plugins/incrementing-version.js.map +0 -1
  243. package/dist/plugins/index.d.ts +0 -3
  244. package/dist/plugins/index.d.ts.map +0 -1
  245. package/dist/plugins/index.js +0 -3
  246. package/dist/plugins/index.js.map +0 -1
  247. package/dist/plugins/types.d.ts +0 -49
  248. package/dist/plugins/types.d.ts.map +0 -1
  249. package/dist/plugins/types.js +0 -15
  250. package/dist/plugins/types.js.map +0 -1
  251. package/dist/proxy/connection.d.ts +0 -33
  252. package/dist/proxy/connection.d.ts.map +0 -1
  253. package/dist/proxy/connection.js +0 -153
  254. package/dist/proxy/connection.js.map +0 -1
  255. package/dist/proxy/dialect.d.ts +0 -46
  256. package/dist/proxy/dialect.d.ts.map +0 -1
  257. package/dist/proxy/dialect.js +0 -58
  258. package/dist/proxy/dialect.js.map +0 -1
  259. package/dist/proxy/driver.d.ts +0 -42
  260. package/dist/proxy/driver.d.ts.map +0 -1
  261. package/dist/proxy/driver.js +0 -78
  262. package/dist/proxy/driver.js.map +0 -1
  263. package/dist/proxy/index.d.ts +0 -10
  264. package/dist/proxy/index.d.ts.map +0 -1
  265. package/dist/proxy/index.js +0 -10
  266. package/dist/proxy/index.js.map +0 -1
  267. package/dist/proxy/mutations.d.ts +0 -9
  268. package/dist/proxy/mutations.d.ts.map +0 -1
  269. package/dist/proxy/mutations.js +0 -11
  270. package/dist/proxy/mutations.js.map +0 -1
  271. package/dist/pull-engine.d.ts +0 -48
  272. package/dist/pull-engine.d.ts.map +0 -1
  273. package/dist/pull-engine.js +0 -648
  274. package/dist/pull-engine.js.map +0 -1
  275. package/dist/push-engine.d.ts +0 -18
  276. package/dist/push-engine.d.ts.map +0 -1
  277. package/dist/push-engine.js +0 -167
  278. package/dist/push-engine.js.map +0 -1
  279. package/dist/query/FingerprintCollector.d.ts +0 -18
  280. package/dist/query/FingerprintCollector.d.ts.map +0 -1
  281. package/dist/query/FingerprintCollector.js +0 -28
  282. package/dist/query/FingerprintCollector.js.map +0 -1
  283. package/dist/query/QueryContext.d.ts +0 -33
  284. package/dist/query/QueryContext.d.ts.map +0 -1
  285. package/dist/query/QueryContext.js +0 -16
  286. package/dist/query/QueryContext.js.map +0 -1
  287. package/dist/query/fingerprint.d.ts +0 -61
  288. package/dist/query/fingerprint.d.ts.map +0 -1
  289. package/dist/query/fingerprint.js +0 -91
  290. package/dist/query/fingerprint.js.map +0 -1
  291. package/dist/query/index.d.ts +0 -7
  292. package/dist/query/index.d.ts.map +0 -1
  293. package/dist/query/index.js +0 -7
  294. package/dist/query/index.js.map +0 -1
  295. package/dist/query/tracked-select.d.ts +0 -18
  296. package/dist/query/tracked-select.d.ts.map +0 -1
  297. package/dist/query/tracked-select.js +0 -90
  298. package/dist/query/tracked-select.js.map +0 -1
  299. package/dist/schema.d.ts +0 -83
  300. package/dist/schema.d.ts.map +0 -1
  301. package/dist/schema.js +0 -7
  302. package/dist/schema.js.map +0 -1
  303. package/dist/subscription-state.d.ts +0 -46
  304. package/dist/subscription-state.d.ts.map +0 -1
  305. package/dist/subscription-state.js +0 -185
  306. package/dist/subscription-state.js.map +0 -1
  307. package/dist/sync-loop.d.ts +0 -34
  308. package/dist/sync-loop.d.ts.map +0 -1
  309. package/dist/sync-loop.js +0 -253
  310. package/dist/sync-loop.js.map +0 -1
  311. package/dist/sync.d.ts +0 -32
  312. package/dist/sync.d.ts.map +0 -1
  313. package/dist/sync.js +0 -55
  314. package/dist/sync.js.map +0 -1
  315. package/dist/utils/id.d.ts +0 -17
  316. package/dist/utils/id.d.ts.map +0 -1
  317. package/dist/utils/id.js +0 -46
  318. package/dist/utils/id.js.map +0 -1
  319. package/src/blobs/index.ts +0 -7
  320. package/src/blobs/manager.ts +0 -1027
  321. package/src/blobs/migrate.ts +0 -67
  322. package/src/blobs/types.ts +0 -84
  323. package/src/client.test.ts +0 -417
  324. package/src/conflicts.ts +0 -171
  325. package/src/create-client.test.ts +0 -83
  326. package/src/create-client.ts +0 -330
  327. package/src/engine/SyncEngine.test.ts +0 -254
  328. package/src/engine/SyncEngine.ts +0 -2375
  329. package/src/engine/index.ts +0 -6
  330. package/src/engine/types.ts +0 -419
  331. package/src/handlers/collection.ts +0 -36
  332. package/src/handlers/create-handler.ts +0 -330
  333. package/src/handlers/types.ts +0 -108
  334. package/src/migrate.ts +0 -318
  335. package/src/outbox.ts +0 -383
  336. package/src/plugins/incrementing-version.ts +0 -133
  337. package/src/plugins/index.ts +0 -2
  338. package/src/plugins/types.ts +0 -63
  339. package/src/proxy/connection.ts +0 -191
  340. package/src/proxy/dialect.ts +0 -76
  341. package/src/proxy/driver.ts +0 -126
  342. package/src/proxy/index.ts +0 -10
  343. package/src/proxy/mutations.ts +0 -18
  344. package/src/pull-engine.test.ts +0 -151
  345. package/src/pull-engine.ts +0 -855
  346. package/src/push-engine.ts +0 -216
  347. package/src/query/FingerprintCollector.ts +0 -29
  348. package/src/query/QueryContext.ts +0 -54
  349. package/src/query/fingerprint.ts +0 -109
  350. package/src/query/index.ts +0 -10
  351. package/src/query/tracked-select.ts +0 -139
  352. package/src/schema.ts +0 -94
  353. package/src/subscription-state.ts +0 -259
  354. package/src/sync-loop.ts +0 -379
  355. package/src/sync.ts +0 -170
  356. package/src/utils/id.ts +0 -55
package/dist/mutations.js CHANGED
@@ -1,148 +1,3 @@
1
- /**
2
- * @syncular/client - Mutations API (Proxy-based, typed)
3
- *
4
- * Provides a dynamic `Proxy` mutation interface with Kysely typings:
5
- * - `mutations.tasks.insert({ ... })` (auto-generates id)
6
- * - `mutations.tasks.update(id, { ... })`
7
- * - `mutations.tasks.delete(id)`
8
- * - `mutations.$commit(async (tx) => { ... })` for batching
9
- *
10
- * Under the hood this compiles to sync `upsert/delete` operations.
11
- *
12
- * This module is framework-agnostic. `@syncular/client-react` wraps it to add
13
- * React state and automatic sync triggering.
14
- */
15
- import { applyCodecsToDbRow, isRecord, randomId, toTableColumnCodecs, } from '@syncular/core';
16
- import { sql } from 'kysely';
17
- import { enqueueOutboxCommit } from './outbox.js';
18
- function sanitizePayload(payload, args) {
19
- if (args.omit.length === 0)
20
- return payload;
21
- const omitSet = new Set(args.omit);
22
- let changed = false;
23
- const out = {};
24
- for (const [k, v] of Object.entries(payload)) {
25
- if (omitSet.has(k)) {
26
- changed = true;
27
- continue;
28
- }
29
- out[k] = v;
30
- }
31
- return changed ? out : payload;
32
- }
33
- function coerceBaseVersion(value) {
34
- if (value === null || value === undefined)
35
- return null;
36
- const n = typeof value === 'number' ? value : Number(value);
37
- if (!Number.isFinite(n))
38
- return null;
39
- if (n <= 0)
40
- return null;
41
- return n;
42
- }
43
- function hasOwn(obj, key) {
44
- return Object.hasOwn(obj, key);
45
- }
46
- /**
47
- * Valid SQL identifier regex.
48
- * Allows: alphanumeric, underscore, cannot start with digit
49
- */
50
- const VALID_IDENTIFIER_REGEX = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
51
- /**
52
- * Validate table name to prevent SQL injection.
53
- * Table names are inserted directly into SQL, so they must be validated.
54
- */
55
- function validateTableName(table) {
56
- if (!VALID_IDENTIFIER_REGEX.test(table)) {
57
- throw new Error(`Invalid table name "${table}". Table names must match /^[a-zA-Z_][a-zA-Z0-9_]*$/`);
58
- }
59
- }
60
- /**
61
- * Internal helpers for dynamic table operations.
62
- *
63
- * Kysely's query builder is typed around compile-time table names. For the
64
- * Proxy-based mutations API, we need runtime table/column names. We use
65
- * Kysely's `sql` builder with strict identifier validation to avoid unsafe
66
- * `any`/`unknown` casts while keeping the public API typed.
67
- */
68
- function validateColumnName(column) {
69
- if (!VALID_IDENTIFIER_REGEX.test(column)) {
70
- throw new Error(`Invalid column name "${column}". Column names must match /^[a-zA-Z_][a-zA-Z0-9_]*$/`);
71
- }
72
- }
73
- async function readBaseVersion(args) {
74
- validateTableName(args.table);
75
- validateColumnName(args.idColumn);
76
- validateColumnName(args.versionColumn);
77
- const res = await sql `
78
- select ${sql.ref(args.versionColumn)} as v
79
- from ${sql.table(args.table)}
80
- where ${sql.ref(args.idColumn)} = ${sql.val(args.rowId)}
81
- limit 1
82
- `.execute(args.trx);
83
- return coerceBaseVersion(res.rows[0]?.v);
84
- }
85
- async function dynamicInsert(trx, table, values) {
86
- validateTableName(table);
87
- const rows = Array.isArray(values) ? values : [values];
88
- if (rows.length === 0)
89
- return;
90
- const columnsSet = new Set();
91
- for (const row of rows) {
92
- for (const col of Object.keys(row)) {
93
- validateColumnName(col);
94
- columnsSet.add(col);
95
- }
96
- }
97
- const columns = Array.from(columnsSet);
98
- if (columns.length === 0)
99
- return;
100
- await sql `
101
- insert into ${sql.table(table)} (${sql.join(columns.map((c) => sql.ref(c)))})
102
- values ${sql.join(rows.map((row) => sql `(${sql.join(columns.map((c) => sql.val(row[c] ?? null)))})`))}
103
- `.execute(trx);
104
- }
105
- async function dynamicUpsert(trx, table, idColumn, id, values) {
106
- validateTableName(table);
107
- validateColumnName(idColumn);
108
- // Check if the row already exists
109
- const existing = await sql `
110
- select 1 from ${sql.table(table)}
111
- where ${sql.ref(idColumn)} = ${sql.val(id)}
112
- limit 1
113
- `.execute(trx);
114
- if (existing.rows.length > 0) {
115
- // Row exists: just update the provided columns
116
- await dynamicUpdate(trx, table, idColumn, id, values);
117
- }
118
- else {
119
- // Row doesn't exist: insert with all provided columns + id
120
- await dynamicInsert(trx, table, { ...values, [idColumn]: id });
121
- }
122
- }
123
- async function dynamicUpdate(trx, table, idColumn, id, values) {
124
- validateTableName(table);
125
- validateColumnName(idColumn);
126
- const setParts = Object.entries(values).map(([col, value]) => {
127
- validateColumnName(col);
128
- return sql `${sql.ref(col)} = ${sql.val(value)}`;
129
- });
130
- if (setParts.length === 0)
131
- return;
132
- await sql `
133
- update ${sql.table(table)}
134
- set ${sql.join(setParts)}
135
- where ${sql.ref(idColumn)} = ${sql.val(id)}
136
- `.execute(trx);
137
- }
138
- async function dynamicDelete(trx, table, idColumn, id) {
139
- validateTableName(table);
140
- validateColumnName(idColumn);
141
- await sql `
142
- delete from ${sql.table(table)}
143
- where ${sql.ref(idColumn)} = ${sql.val(id)}
144
- `.execute(trx);
145
- }
146
1
  export function createMutationsApi(commit) {
147
2
  const rootTableCache = new Map();
148
3
  const apiBase = {
@@ -202,428 +57,7 @@ export function createMutationsApi(commit) {
202
57
  },
203
58
  });
204
59
  }
205
- export function createOutboxCommit(config) {
206
- const idColumn = config.idColumn ?? 'id';
207
- const versionColumn = config.versionColumn ?? 'server_version';
208
- const omitColumns = config.omitColumns ?? [];
209
- const codecDialect = config.codecDialect ?? 'sqlite';
210
- return async (fn) => {
211
- const operations = [];
212
- const localMutations = [];
213
- const { result, receipt } = await config.db
214
- .transaction()
215
- .execute(async (trx) => {
216
- const txTableCache = new Map();
217
- const tableCodecCache = new Map();
218
- const resolveTableCodecs = (table, row) => {
219
- const codecs = config.codecs;
220
- if (!codecs)
221
- return {};
222
- const columns = Object.keys(row);
223
- if (columns.length === 0)
224
- return {};
225
- let tableCache = tableCodecCache.get(table);
226
- if (!tableCache) {
227
- tableCache = new Map();
228
- tableCodecCache.set(table, tableCache);
229
- }
230
- const cacheKey = columns.slice().sort().join('\u0000');
231
- const cached = tableCache.get(cacheKey);
232
- if (cached)
233
- return cached;
234
- const resolved = toTableColumnCodecs(table, codecs, columns, {
235
- dialect: codecDialect,
236
- });
237
- tableCache.set(cacheKey, resolved);
238
- return resolved;
239
- };
240
- const makeTxTable = (table) => {
241
- const cached = txTableCache.get(table);
242
- if (cached)
243
- return cached;
244
- const tableApi = {
245
- async insert(values) {
246
- const raw = isRecord(values) ? values : {};
247
- const rawId = raw[idColumn];
248
- const id = typeof rawId === 'string' && rawId ? rawId : randomId();
249
- const row = { ...raw, [idColumn]: id };
250
- const dbRow = applyCodecsToDbRow(row, resolveTableCodecs(table, row), codecDialect);
251
- await dynamicInsert(trx, table, dbRow);
252
- const payload = sanitizePayload(row, {
253
- omit: [
254
- idColumn,
255
- ...(versionColumn ? [versionColumn] : []),
256
- ...omitColumns,
257
- ],
258
- });
259
- operations.push({
260
- table: table,
261
- row_id: id,
262
- op: 'upsert',
263
- payload,
264
- base_version: null,
265
- });
266
- localMutations.push({ table, rowId: id, op: 'upsert' });
267
- return id;
268
- },
269
- async insertMany(rows) {
270
- const ids = [];
271
- const toInsert = [];
272
- for (const values of rows) {
273
- const raw = isRecord(values) ? values : {};
274
- const rawId = raw[idColumn];
275
- const id = typeof rawId === 'string' && rawId ? rawId : randomId();
276
- ids.push(id);
277
- toInsert.push({ ...raw, [idColumn]: id });
278
- }
279
- const dbRows = toInsert.map((row) => applyCodecsToDbRow(row, resolveTableCodecs(table, row), codecDialect));
280
- if (dbRows.length > 0) {
281
- await dynamicInsert(trx, table, dbRows);
282
- }
283
- for (let i = 0; i < toInsert.length; i++) {
284
- const row = toInsert[i];
285
- const id = ids[i];
286
- const payload = sanitizePayload(row, {
287
- omit: [
288
- idColumn,
289
- ...(versionColumn ? [versionColumn] : []),
290
- ...omitColumns,
291
- ],
292
- });
293
- operations.push({
294
- table: table,
295
- row_id: id,
296
- op: 'upsert',
297
- payload,
298
- base_version: null,
299
- });
300
- localMutations.push({ table, rowId: id, op: 'upsert' });
301
- }
302
- return ids;
303
- },
304
- async update(id, patch, opts) {
305
- const rawPatch = isRecord(patch) ? patch : {};
306
- const sanitized = sanitizePayload(rawPatch, {
307
- omit: [
308
- idColumn,
309
- ...(versionColumn ? [versionColumn] : []),
310
- ...omitColumns,
311
- ],
312
- });
313
- const hasExplicitBaseVersion = !!opts && hasOwn(opts, 'baseVersion');
314
- const dbPatch = applyCodecsToDbRow(sanitized, resolveTableCodecs(table, sanitized), codecDialect);
315
- await dynamicUpdate(trx, table, idColumn, id, dbPatch);
316
- const baseVersion = hasExplicitBaseVersion
317
- ? (opts.baseVersion ?? null)
318
- : versionColumn
319
- ? await readBaseVersion({
320
- trx: trx,
321
- table,
322
- rowId: id,
323
- idColumn,
324
- versionColumn,
325
- })
326
- : null;
327
- operations.push({
328
- table: table,
329
- row_id: id,
330
- op: 'upsert',
331
- payload: sanitized,
332
- base_version: coerceBaseVersion(baseVersion),
333
- });
334
- localMutations.push({ table, rowId: id, op: 'upsert' });
335
- },
336
- async delete(id, opts) {
337
- const hasExplicitBaseVersion = !!opts && hasOwn(opts, 'baseVersion');
338
- const baseVersion = hasExplicitBaseVersion
339
- ? (opts.baseVersion ?? null)
340
- : versionColumn
341
- ? await readBaseVersion({
342
- trx: trx,
343
- table,
344
- rowId: id,
345
- idColumn,
346
- versionColumn,
347
- })
348
- : null;
349
- await dynamicDelete(trx, table, idColumn, id);
350
- operations.push({
351
- table: table,
352
- row_id: id,
353
- op: 'delete',
354
- payload: null,
355
- base_version: coerceBaseVersion(baseVersion),
356
- });
357
- localMutations.push({ table, rowId: id, op: 'delete' });
358
- },
359
- async upsert(id, patch, opts) {
360
- const rawPatch = isRecord(patch) ? patch : {};
361
- const sanitized = sanitizePayload(rawPatch, {
362
- omit: [
363
- idColumn,
364
- ...(versionColumn ? [versionColumn] : []),
365
- ...omitColumns,
366
- ],
367
- });
368
- const hasExplicitBaseVersion = !!opts && hasOwn(opts, 'baseVersion');
369
- const dbPatch = applyCodecsToDbRow(sanitized, resolveTableCodecs(table, sanitized), codecDialect);
370
- await dynamicUpsert(trx, table, idColumn, id, dbPatch);
371
- const baseVersion = hasExplicitBaseVersion
372
- ? (opts.baseVersion ?? null)
373
- : versionColumn
374
- ? await readBaseVersion({
375
- trx: trx,
376
- table,
377
- rowId: id,
378
- idColumn,
379
- versionColumn,
380
- })
381
- : null;
382
- operations.push({
383
- table: table,
384
- row_id: id,
385
- op: 'upsert',
386
- payload: sanitized,
387
- base_version: coerceBaseVersion(baseVersion),
388
- });
389
- localMutations.push({ table, rowId: id, op: 'upsert' });
390
- },
391
- };
392
- txTableCache.set(table, tableApi);
393
- return tableApi;
394
- };
395
- const txProxy = new Proxy({}, {
396
- get(_target, prop) {
397
- if (prop === 'then')
398
- return undefined;
399
- if (typeof prop !== 'string')
400
- return undefined;
401
- return makeTxTable(prop);
402
- },
403
- });
404
- const result = await fn(txProxy);
405
- if (operations.length === 0) {
406
- throw new Error('No mutations were enqueued');
407
- }
408
- // Enqueue outbox commit within this transaction
409
- const receipt = await enqueueOutboxCommit(trx, { operations });
410
- return {
411
- result,
412
- receipt: { id: receipt.id, clientCommitId: receipt.clientCommitId },
413
- };
414
- });
415
- return {
416
- result,
417
- receipt: { commitId: receipt.id, clientCommitId: receipt.clientCommitId },
418
- meta: { operations, localMutations },
419
- };
420
- };
421
- }
422
- export function createOutboxMutations(config) {
423
- return createMutationsApi(createOutboxCommit(config));
424
- }
425
- function clonePushRequest(request) {
426
- if (typeof structuredClone === 'function')
427
- return structuredClone(request);
428
- return JSON.parse(JSON.stringify(request));
429
- }
430
- export function createPushCommit(config) {
431
- const idColumn = config.idColumn ?? 'id';
432
- const versionColumn = config.versionColumn ?? 'server_version';
433
- const omitColumns = config.omitColumns ?? [];
434
- return async (fn) => {
435
- const operations = [];
436
- const localMutations = [];
437
- const txTableCache = new Map();
438
- const makeTxTable = (table) => {
439
- const cached = txTableCache.get(table);
440
- if (cached)
441
- return cached;
442
- const tableApi = {
443
- async insert(values) {
444
- const raw = isRecord(values) ? values : {};
445
- const rawId = raw[idColumn];
446
- const id = typeof rawId === 'string' && rawId ? rawId : randomId();
447
- const row = { ...raw, [idColumn]: id };
448
- const payload = sanitizePayload(row, {
449
- omit: [
450
- idColumn,
451
- ...(versionColumn ? [versionColumn] : []),
452
- ...omitColumns,
453
- ],
454
- });
455
- operations.push({
456
- table: table,
457
- row_id: id,
458
- op: 'upsert',
459
- payload,
460
- base_version: null,
461
- });
462
- localMutations.push({ table, rowId: id, op: 'upsert' });
463
- return id;
464
- },
465
- async insertMany(rows) {
466
- const ids = [];
467
- const toUpsert = [];
468
- for (const values of rows) {
469
- const raw = isRecord(values) ? values : {};
470
- const rawId = raw[idColumn];
471
- const id = typeof rawId === 'string' && rawId ? rawId : randomId();
472
- ids.push(id);
473
- toUpsert.push({ ...raw, [idColumn]: id });
474
- }
475
- for (let i = 0; i < toUpsert.length; i++) {
476
- const row = toUpsert[i];
477
- const id = ids[i];
478
- const payload = sanitizePayload(row, {
479
- omit: [
480
- idColumn,
481
- ...(versionColumn ? [versionColumn] : []),
482
- ...omitColumns,
483
- ],
484
- });
485
- operations.push({
486
- table: table,
487
- row_id: id,
488
- op: 'upsert',
489
- payload,
490
- base_version: null,
491
- });
492
- localMutations.push({ table, rowId: id, op: 'upsert' });
493
- }
494
- return ids;
495
- },
496
- async update(id, patch, opts) {
497
- const rawPatch = isRecord(patch) ? patch : {};
498
- const sanitized = sanitizePayload(rawPatch, {
499
- omit: [
500
- idColumn,
501
- ...(versionColumn ? [versionColumn] : []),
502
- ...omitColumns,
503
- ],
504
- });
505
- const hasExplicitBaseVersion = !!opts && hasOwn(opts, 'baseVersion');
506
- const baseVersion = hasExplicitBaseVersion
507
- ? (opts.baseVersion ?? null)
508
- : versionColumn && config.readBaseVersion
509
- ? await config.readBaseVersion({
510
- table,
511
- rowId: id,
512
- idColumn,
513
- versionColumn,
514
- })
515
- : null;
516
- operations.push({
517
- table: table,
518
- row_id: id,
519
- op: 'upsert',
520
- payload: sanitized,
521
- base_version: coerceBaseVersion(baseVersion),
522
- });
523
- localMutations.push({ table, rowId: id, op: 'upsert' });
524
- },
525
- async delete(id, opts) {
526
- const hasExplicitBaseVersion = !!opts && hasOwn(opts, 'baseVersion');
527
- const baseVersion = hasExplicitBaseVersion
528
- ? (opts.baseVersion ?? null)
529
- : versionColumn && config.readBaseVersion
530
- ? await config.readBaseVersion({
531
- table,
532
- rowId: id,
533
- idColumn,
534
- versionColumn,
535
- })
536
- : null;
537
- operations.push({
538
- table: table,
539
- row_id: id,
540
- op: 'delete',
541
- payload: null,
542
- base_version: coerceBaseVersion(baseVersion),
543
- });
544
- localMutations.push({ table, rowId: id, op: 'delete' });
545
- },
546
- async upsert(id, patch, opts) {
547
- await tableApi.update(id, patch, opts);
548
- },
549
- };
550
- txTableCache.set(table, tableApi);
551
- return tableApi;
552
- };
553
- const txProxy = new Proxy({}, {
554
- get(_target, prop) {
555
- if (prop === 'then')
556
- return undefined;
557
- if (typeof prop !== 'string')
558
- return undefined;
559
- return makeTxTable(prop);
560
- },
561
- });
562
- const result = await fn(txProxy);
563
- if (operations.length === 0) {
564
- throw new Error('No mutations were enqueued');
565
- }
566
- const commitId = randomId();
567
- const clientCommitId = randomId();
568
- const request = {
569
- clientId: config.clientId,
570
- clientCommitId,
571
- operations,
572
- schemaVersion: config.schemaVersion ?? 1,
573
- };
574
- const plugins = config.plugins ?? [];
575
- // Sort plugins by priority (lower numbers first, default 50)
576
- const sortedPlugins = [...plugins].sort((a, b) => (a.priority ?? 50) - (b.priority ?? 50));
577
- const ctx = {
578
- actorId: config.actorId ?? 'unknown',
579
- clientId: config.clientId,
580
- };
581
- let requestToSend = request;
582
- if (sortedPlugins.length > 0) {
583
- requestToSend = clonePushRequest(request);
584
- for (const plugin of sortedPlugins) {
585
- if (!plugin.beforePush)
586
- continue;
587
- requestToSend = await plugin.beforePush(ctx, requestToSend);
588
- }
589
- }
590
- const combined = await config.transport.sync({
591
- clientId: requestToSend.clientId,
592
- push: {
593
- clientCommitId: requestToSend.clientCommitId,
594
- operations: requestToSend.operations,
595
- schemaVersion: requestToSend.schemaVersion,
596
- },
597
- });
598
- if (!combined.push) {
599
- throw new Error('Server returned no push response');
600
- }
601
- const rawResponse = combined.push;
602
- let response = rawResponse;
603
- if (sortedPlugins.length > 0) {
604
- // Run afterPush in reverse priority order (higher numbers first)
605
- for (const plugin of [...sortedPlugins].reverse()) {
606
- if (!plugin.afterPush)
607
- continue;
608
- response = await plugin.afterPush(ctx, {
609
- request: requestToSend,
610
- response,
611
- });
612
- }
613
- }
614
- if (response.status !== 'applied' && response.status !== 'cached') {
615
- const conflictCount = response.results.filter((r) => r.status === 'conflict').length;
616
- const errorCount = response.results.filter((r) => r.status === 'error').length;
617
- throw new Error(`Push rejected (${conflictCount} conflicts, ${errorCount} errors)`);
618
- }
619
- return {
620
- result,
621
- receipt: { commitId, clientCommitId },
622
- meta: { operations, localMutations, response },
623
- };
624
- };
625
- }
626
- export function createPushMutations(config) {
627
- return createMutationsApi(createPushCommit(config));
60
+ function hasOwn(obj, key) {
61
+ return Object.hasOwn(obj, key);
628
62
  }
629
63
  //# sourceMappingURL=mutations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutations.js","sourceRoot":"","sources":["../src/mutations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutations.js","sourceRoot":"","sources":["../src/mutations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { SyncularNetworkStatusSource } from './types';
2
+ export declare function browserSyncularNetworkStatusSource(): SyncularNetworkStatusSource | undefined;
3
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAE3D,wBAAgB,kCAAkC,IAC9C,2BAA2B,GAC3B,SAAS,CA2BZ"}
@@ -0,0 +1,17 @@
1
+ export function browserSyncularNetworkStatusSource() {
2
+ const target = globalThis;
3
+ if (typeof target.navigator?.onLine !== 'boolean' &&
4
+ (!target.addEventListener || !target.removeEventListener)) {
5
+ return undefined;
6
+ }
7
+ return {
8
+ isOnline: () => target.navigator?.onLine,
9
+ addEventListener: target.addEventListener
10
+ ? (type, listener) => target.addEventListener?.(type, listener)
11
+ : undefined,
12
+ removeEventListener: target.removeEventListener
13
+ ? (type, listener) => target.removeEventListener?.(type, listener)
14
+ : undefined,
15
+ };
16
+ }
17
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kCAAkC;IAGhD,MAAM,MAAM,GAAG,UAUd,CAAC;IACF,IACE,OAAO,MAAM,CAAC,SAAS,EAAE,MAAM,KAAK,SAAS;QAC7C,CAAC,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,EACzD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM;QACxC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACvC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC/D,CAAC,CAAC,SAAS;QACb,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC7C,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;YAClE,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC"}