@syncular/server 0.0.6-96 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (597) hide show
  1. package/README.md +1 -2
  2. package/dist/auth-leases.d.ts +85 -0
  3. package/dist/auth-leases.d.ts.map +1 -0
  4. package/dist/auth-leases.js +368 -0
  5. package/dist/auth-leases.js.map +1 -0
  6. package/dist/better-sqlite3.d.ts +22 -0
  7. package/dist/better-sqlite3.d.ts.map +1 -0
  8. package/dist/better-sqlite3.js +16 -0
  9. package/dist/better-sqlite3.js.map +1 -0
  10. package/dist/blobs/access.d.ts +35 -0
  11. package/dist/blobs/access.d.ts.map +1 -0
  12. package/dist/blobs/access.js +149 -0
  13. package/dist/blobs/access.js.map +1 -0
  14. package/dist/blobs/adapters/database.d.ts +26 -9
  15. package/dist/blobs/adapters/database.d.ts.map +1 -1
  16. package/dist/blobs/adapters/database.js +68 -23
  17. package/dist/blobs/adapters/database.js.map +1 -1
  18. package/dist/blobs/index.d.ts +1 -0
  19. package/dist/blobs/index.d.ts.map +1 -1
  20. package/dist/blobs/index.js +1 -0
  21. package/dist/blobs/index.js.map +1 -1
  22. package/dist/blobs/manager.d.ts +69 -44
  23. package/dist/blobs/manager.d.ts.map +1 -1
  24. package/dist/blobs/manager.js +250 -65
  25. package/dist/blobs/manager.js.map +1 -1
  26. package/dist/blobs/migrate.d.ts.map +1 -1
  27. package/dist/blobs/migrate.js +16 -8
  28. package/dist/blobs/migrate.js.map +1 -1
  29. package/dist/blobs/types.d.ts +4 -0
  30. package/dist/blobs/types.d.ts.map +1 -1
  31. package/dist/bun-sqlite.d.ts +19 -0
  32. package/dist/bun-sqlite.d.ts.map +1 -0
  33. package/dist/bun-sqlite.js +19 -0
  34. package/dist/bun-sqlite.js.map +1 -0
  35. package/dist/clients.d.ts +1 -0
  36. package/dist/clients.d.ts.map +1 -1
  37. package/dist/clients.js.map +1 -1
  38. package/dist/cloudflare/durable-object.d.ts +93 -0
  39. package/dist/cloudflare/durable-object.d.ts.map +1 -0
  40. package/dist/cloudflare/durable-object.js +210 -0
  41. package/dist/cloudflare/durable-object.js.map +1 -0
  42. package/dist/cloudflare/index.d.ts +22 -0
  43. package/dist/cloudflare/index.d.ts.map +1 -0
  44. package/dist/cloudflare/index.js +22 -0
  45. package/dist/cloudflare/index.js.map +1 -0
  46. package/dist/cloudflare/r2.d.ts +180 -0
  47. package/dist/cloudflare/r2.d.ts.map +1 -0
  48. package/dist/cloudflare/r2.js +258 -0
  49. package/dist/cloudflare/r2.js.map +1 -0
  50. package/dist/cloudflare/scope-cache.d.ts +54 -0
  51. package/dist/cloudflare/scope-cache.d.ts.map +1 -0
  52. package/dist/cloudflare/scope-cache.js +223 -0
  53. package/dist/cloudflare/scope-cache.js.map +1 -0
  54. package/dist/cloudflare/sentry.d.ts +47 -0
  55. package/dist/cloudflare/sentry.d.ts.map +1 -0
  56. package/dist/cloudflare/sentry.js +163 -0
  57. package/dist/cloudflare/sentry.js.map +1 -0
  58. package/dist/cloudflare/worker.d.ts +46 -0
  59. package/dist/cloudflare/worker.d.ts.map +1 -0
  60. package/dist/cloudflare/worker.js +63 -0
  61. package/dist/cloudflare/worker.js.map +1 -0
  62. package/dist/commit-integrity.d.ts +38 -0
  63. package/dist/commit-integrity.d.ts.map +1 -0
  64. package/dist/commit-integrity.js +260 -0
  65. package/dist/commit-integrity.js.map +1 -0
  66. package/dist/compaction.js.map +1 -1
  67. package/dist/crdt-yjs/index.d.ts +99 -0
  68. package/dist/crdt-yjs/index.d.ts.map +1 -0
  69. package/dist/crdt-yjs/index.js +629 -0
  70. package/dist/crdt-yjs/index.js.map +1 -0
  71. package/dist/d1.d.ts +13 -0
  72. package/dist/d1.d.ts.map +1 -0
  73. package/dist/d1.js +14 -0
  74. package/dist/d1.js.map +1 -0
  75. package/dist/dialect/base.d.ts +11 -1
  76. package/dist/dialect/base.d.ts.map +1 -1
  77. package/dist/dialect/base.js +42 -5
  78. package/dist/dialect/base.js.map +1 -1
  79. package/dist/dialect/helpers.d.ts +6 -0
  80. package/dist/dialect/helpers.d.ts.map +1 -1
  81. package/dist/dialect/helpers.js +24 -0
  82. package/dist/dialect/helpers.js.map +1 -1
  83. package/dist/dialect/types.d.ts +40 -0
  84. package/dist/dialect/types.d.ts.map +1 -1
  85. package/dist/encrypted-crdt.d.ts +67 -0
  86. package/dist/encrypted-crdt.d.ts.map +1 -0
  87. package/dist/encrypted-crdt.js +426 -0
  88. package/dist/encrypted-crdt.js.map +1 -0
  89. package/dist/errors.d.ts +10 -0
  90. package/dist/errors.d.ts.map +1 -0
  91. package/dist/errors.js +13 -0
  92. package/dist/errors.js.map +1 -0
  93. package/dist/filesystem/index.d.ts +44 -0
  94. package/dist/filesystem/index.d.ts.map +1 -0
  95. package/dist/filesystem/index.js +164 -0
  96. package/dist/filesystem/index.js.map +1 -0
  97. package/dist/handlers/collection.d.ts +11 -3
  98. package/dist/handlers/collection.d.ts.map +1 -1
  99. package/dist/handlers/collection.js +34 -56
  100. package/dist/handlers/collection.js.map +1 -1
  101. package/dist/handlers/create-handler.d.ts +31 -7
  102. package/dist/handlers/create-handler.d.ts.map +1 -1
  103. package/dist/handlers/create-handler.js +332 -115
  104. package/dist/handlers/create-handler.js.map +1 -1
  105. package/dist/handlers/types.d.ts +86 -1
  106. package/dist/handlers/types.d.ts.map +1 -1
  107. package/dist/helpers/conflict.js.map +1 -1
  108. package/dist/helpers/emitted-change.js.map +1 -1
  109. package/dist/helpers/index.d.ts +2 -0
  110. package/dist/helpers/index.d.ts.map +1 -1
  111. package/dist/helpers/index.js +2 -0
  112. package/dist/helpers/index.js.map +1 -1
  113. package/dist/helpers/paginate.js.map +1 -1
  114. package/dist/helpers/scope-authorization.d.ts +7 -0
  115. package/dist/helpers/scope-authorization.d.ts.map +1 -0
  116. package/dist/helpers/scope-authorization.js +19 -0
  117. package/dist/helpers/scope-authorization.js.map +1 -0
  118. package/dist/helpers/scope-commit-index.d.ts +12 -0
  119. package/dist/helpers/scope-commit-index.d.ts.map +1 -0
  120. package/dist/helpers/scope-commit-index.js +35 -0
  121. package/dist/helpers/scope-commit-index.js.map +1 -0
  122. package/dist/helpers/scope-strings.js.map +1 -1
  123. package/dist/hono/api-key-auth.d.ts +49 -0
  124. package/dist/hono/api-key-auth.d.ts.map +1 -0
  125. package/dist/hono/api-key-auth.js +108 -0
  126. package/dist/hono/api-key-auth.js.map +1 -0
  127. package/dist/hono/audit-redaction.d.ts +20 -0
  128. package/dist/hono/audit-redaction.d.ts.map +1 -0
  129. package/dist/hono/audit-redaction.js +85 -0
  130. package/dist/hono/audit-redaction.js.map +1 -0
  131. package/dist/hono/blobs.d.ts +75 -0
  132. package/dist/hono/blobs.d.ts.map +1 -0
  133. package/dist/hono/blobs.js +586 -0
  134. package/dist/hono/blobs.js.map +1 -0
  135. package/dist/hono/console/gateway.d.ts +42 -0
  136. package/dist/hono/console/gateway.d.ts.map +1 -0
  137. package/dist/hono/console/gateway.js +2158 -0
  138. package/dist/hono/console/gateway.js.map +1 -0
  139. package/dist/hono/console/live-auth.d.ts +7 -0
  140. package/dist/hono/console/live-auth.d.ts.map +1 -0
  141. package/dist/hono/console/live-auth.js +39 -0
  142. package/dist/hono/console/live-auth.js.map +1 -0
  143. package/dist/hono/console/route-descriptor.d.ts +6 -0
  144. package/dist/hono/console/route-descriptor.d.ts.map +1 -0
  145. package/dist/hono/console/route-descriptor.js +16 -0
  146. package/dist/hono/console/route-descriptor.js.map +1 -0
  147. package/dist/hono/console/routes/api-keys.d.ts +8 -0
  148. package/dist/hono/console/routes/api-keys.d.ts.map +1 -0
  149. package/dist/hono/console/routes/api-keys.js +575 -0
  150. package/dist/hono/console/routes/api-keys.js.map +1 -0
  151. package/dist/hono/console/routes/clients.d.ts +8 -0
  152. package/dist/hono/console/routes/clients.d.ts.map +1 -0
  153. package/dist/hono/console/routes/clients.js +322 -0
  154. package/dist/hono/console/routes/clients.js.map +1 -0
  155. package/dist/hono/console/routes/commits.d.ts +8 -0
  156. package/dist/hono/console/routes/commits.d.ts.map +1 -0
  157. package/dist/hono/console/routes/commits.js +882 -0
  158. package/dist/hono/console/routes/commits.js.map +1 -0
  159. package/dist/hono/console/routes/context.d.ts +188 -0
  160. package/dist/hono/console/routes/context.d.ts.map +1 -0
  161. package/dist/hono/console/routes/context.js +633 -0
  162. package/dist/hono/console/routes/context.js.map +1 -0
  163. package/dist/hono/console/routes/events.d.ts +8 -0
  164. package/dist/hono/console/routes/events.d.ts.map +1 -0
  165. package/dist/hono/console/routes/events.js +501 -0
  166. package/dist/hono/console/routes/events.js.map +1 -0
  167. package/dist/hono/console/routes/maintenance.d.ts +8 -0
  168. package/dist/hono/console/routes/maintenance.d.ts.map +1 -0
  169. package/dist/hono/console/routes/maintenance.js +341 -0
  170. package/dist/hono/console/routes/maintenance.js.map +1 -0
  171. package/dist/hono/console/routes/shared.d.ts +174 -0
  172. package/dist/hono/console/routes/shared.d.ts.map +1 -0
  173. package/dist/hono/console/routes/shared.js +583 -0
  174. package/dist/hono/console/routes/shared.js.map +1 -0
  175. package/dist/hono/console/routes/stats.d.ts +8 -0
  176. package/dist/hono/console/routes/stats.d.ts.map +1 -0
  177. package/dist/hono/console/routes/stats.js +295 -0
  178. package/dist/hono/console/routes/stats.js.map +1 -0
  179. package/dist/hono/console/routes/storage.d.ts +8 -0
  180. package/dist/hono/console/routes/storage.d.ts.map +1 -0
  181. package/dist/hono/console/routes/storage.js +121 -0
  182. package/dist/hono/console/routes/storage.js.map +1 -0
  183. package/dist/hono/console/routes.d.ts +36 -0
  184. package/dist/hono/console/routes.d.ts.map +1 -0
  185. package/dist/hono/console/routes.js +112 -0
  186. package/dist/hono/console/routes.js.map +1 -0
  187. package/dist/hono/console/schema-errors.d.ts +2 -0
  188. package/dist/hono/console/schema-errors.d.ts.map +1 -0
  189. package/dist/hono/console/schema-errors.js +17 -0
  190. package/dist/hono/console/schema-errors.js.map +1 -0
  191. package/dist/hono/console/schemas.d.ts +1515 -0
  192. package/dist/hono/console/schemas.d.ts.map +1 -0
  193. package/dist/hono/console/schemas.js +661 -0
  194. package/dist/hono/console/schemas.js.map +1 -0
  195. package/dist/hono/console/types.d.ts +213 -0
  196. package/dist/hono/console/types.d.ts.map +1 -0
  197. package/dist/hono/console/types.js +2 -0
  198. package/dist/hono/console/types.js.map +1 -0
  199. package/dist/hono/console/ui.d.ts +38 -0
  200. package/dist/hono/console/ui.d.ts.map +1 -0
  201. package/dist/hono/console/ui.js +43 -0
  202. package/dist/hono/console/ui.js.map +1 -0
  203. package/dist/hono/create-server.d.ts +71 -0
  204. package/dist/hono/create-server.d.ts.map +1 -0
  205. package/dist/hono/create-server.js +121 -0
  206. package/dist/hono/create-server.js.map +1 -0
  207. package/dist/hono/errors.d.ts +13 -0
  208. package/dist/hono/errors.d.ts.map +1 -0
  209. package/dist/hono/errors.js +21 -0
  210. package/dist/hono/errors.js.map +1 -0
  211. package/dist/hono/index.d.ts +20 -0
  212. package/dist/hono/index.d.ts.map +1 -0
  213. package/dist/hono/index.js +31 -0
  214. package/dist/hono/index.js.map +1 -0
  215. package/dist/hono/openapi.d.ts +72 -0
  216. package/dist/hono/openapi.d.ts.map +1 -0
  217. package/dist/hono/openapi.js +99 -0
  218. package/dist/hono/openapi.js.map +1 -0
  219. package/dist/hono/proxy/connection-manager.d.ts +78 -0
  220. package/dist/hono/proxy/connection-manager.d.ts.map +1 -0
  221. package/dist/hono/proxy/connection-manager.js +251 -0
  222. package/dist/hono/proxy/connection-manager.js.map +1 -0
  223. package/dist/hono/proxy/index.d.ts +8 -0
  224. package/dist/hono/proxy/index.d.ts.map +1 -0
  225. package/dist/hono/proxy/index.js +8 -0
  226. package/dist/hono/proxy/index.js.map +1 -0
  227. package/dist/hono/proxy/routes.d.ts +86 -0
  228. package/dist/hono/proxy/routes.d.ts.map +1 -0
  229. package/dist/hono/proxy/routes.js +183 -0
  230. package/dist/hono/proxy/routes.js.map +1 -0
  231. package/dist/hono/rate-limit.d.ts +101 -0
  232. package/dist/hono/rate-limit.d.ts.map +1 -0
  233. package/dist/hono/rate-limit.js +184 -0
  234. package/dist/hono/rate-limit.js.map +1 -0
  235. package/dist/hono/realtime-sync-packs.d.ts +43 -0
  236. package/dist/hono/realtime-sync-packs.d.ts.map +1 -0
  237. package/dist/hono/realtime-sync-packs.js +219 -0
  238. package/dist/hono/realtime-sync-packs.js.map +1 -0
  239. package/dist/hono/routes/audit.d.ts +12 -0
  240. package/dist/hono/routes/audit.d.ts.map +1 -0
  241. package/dist/hono/routes/audit.js +385 -0
  242. package/dist/hono/routes/audit.js.map +1 -0
  243. package/dist/hono/routes/auth-leases.d.ts +8 -0
  244. package/dist/hono/routes/auth-leases.d.ts.map +1 -0
  245. package/dist/hono/routes/auth-leases.js +88 -0
  246. package/dist/hono/routes/auth-leases.js.map +1 -0
  247. package/dist/hono/routes/combined.d.ts +8 -0
  248. package/dist/hono/routes/combined.d.ts.map +1 -0
  249. package/dist/hono/routes/combined.js +392 -0
  250. package/dist/hono/routes/combined.js.map +1 -0
  251. package/dist/hono/routes/context.d.ts +314 -0
  252. package/dist/hono/routes/context.d.ts.map +1 -0
  253. package/dist/hono/routes/context.js +1147 -0
  254. package/dist/hono/routes/context.js.map +1 -0
  255. package/dist/hono/routes/health.d.ts +8 -0
  256. package/dist/hono/routes/health.d.ts.map +1 -0
  257. package/dist/hono/routes/health.js +16 -0
  258. package/dist/hono/routes/health.js.map +1 -0
  259. package/dist/hono/routes/realtime.d.ts +9 -0
  260. package/dist/hono/routes/realtime.d.ts.map +1 -0
  261. package/dist/hono/routes/realtime.js +626 -0
  262. package/dist/hono/routes/realtime.js.map +1 -0
  263. package/dist/hono/routes/shared.d.ts +689 -0
  264. package/dist/hono/routes/shared.d.ts.map +1 -0
  265. package/dist/hono/routes/shared.js +972 -0
  266. package/dist/hono/routes/shared.js.map +1 -0
  267. package/dist/hono/routes/snapshots.d.ts +10 -0
  268. package/dist/hono/routes/snapshots.d.ts.map +1 -0
  269. package/dist/hono/routes/snapshots.js +281 -0
  270. package/dist/hono/routes/snapshots.js.map +1 -0
  271. package/dist/hono/routes.d.ts +19 -0
  272. package/dist/hono/routes.d.ts.map +1 -0
  273. package/dist/hono/routes.js +37 -0
  274. package/dist/hono/routes.js.map +1 -0
  275. package/dist/hono/validation.d.ts +5 -0
  276. package/dist/hono/validation.d.ts.map +1 -0
  277. package/dist/hono/validation.js +47 -0
  278. package/dist/hono/validation.js.map +1 -0
  279. package/dist/hono/websocket-origin.d.ts +9 -0
  280. package/dist/hono/websocket-origin.d.ts.map +1 -0
  281. package/dist/hono/websocket-origin.js +96 -0
  282. package/dist/hono/websocket-origin.js.map +1 -0
  283. package/dist/hono/ws.d.ts +341 -0
  284. package/dist/hono/ws.d.ts.map +1 -0
  285. package/dist/hono/ws.js +711 -0
  286. package/dist/hono/ws.js.map +1 -0
  287. package/dist/index.d.ts +6 -0
  288. package/dist/index.d.ts.map +1 -1
  289. package/dist/index.js +6 -0
  290. package/dist/index.js.map +1 -1
  291. package/dist/libsql.d.ts +29 -0
  292. package/dist/libsql.d.ts.map +1 -0
  293. package/dist/libsql.js +25 -0
  294. package/dist/libsql.js.map +1 -0
  295. package/dist/migrate.js.map +1 -1
  296. package/dist/neon.d.ts +21 -0
  297. package/dist/neon.d.ts.map +1 -0
  298. package/dist/neon.js +22 -0
  299. package/dist/neon.js.map +1 -0
  300. package/dist/notify.d.ts +30 -0
  301. package/dist/notify.d.ts.map +1 -1
  302. package/dist/notify.js +160 -41
  303. package/dist/notify.js.map +1 -1
  304. package/dist/pglite.d.ts +37 -0
  305. package/dist/pglite.d.ts.map +1 -0
  306. package/dist/pglite.js +37 -0
  307. package/dist/pglite.js.map +1 -0
  308. package/dist/plugins/index.d.ts +2 -0
  309. package/dist/plugins/index.d.ts.map +1 -0
  310. package/dist/plugins/index.js +2 -0
  311. package/dist/plugins/index.js.map +1 -0
  312. package/dist/plugins/types.d.ts +73 -0
  313. package/dist/plugins/types.d.ts.map +1 -0
  314. package/dist/plugins/types.js +30 -0
  315. package/dist/plugins/types.js.map +1 -0
  316. package/dist/postgres/index.d.ts +68 -0
  317. package/dist/postgres/index.d.ts.map +1 -0
  318. package/dist/postgres/index.js +924 -0
  319. package/dist/postgres/index.js.map +1 -0
  320. package/dist/proxy/collection.d.ts +0 -2
  321. package/dist/proxy/collection.d.ts.map +1 -1
  322. package/dist/proxy/collection.js +2 -17
  323. package/dist/proxy/collection.js.map +1 -1
  324. package/dist/proxy/handler.d.ts +1 -1
  325. package/dist/proxy/handler.d.ts.map +1 -1
  326. package/dist/proxy/handler.js +1 -2
  327. package/dist/proxy/handler.js.map +1 -1
  328. package/dist/proxy/index.d.ts +1 -1
  329. package/dist/proxy/index.d.ts.map +1 -1
  330. package/dist/proxy/index.js +1 -1
  331. package/dist/proxy/index.js.map +1 -1
  332. package/dist/proxy/mutation-detector.js.map +1 -1
  333. package/dist/proxy/oplog.d.ts.map +1 -1
  334. package/dist/proxy/oplog.js +32 -8
  335. package/dist/proxy/oplog.js.map +1 -1
  336. package/dist/prune.d.ts +8 -1
  337. package/dist/prune.d.ts.map +1 -1
  338. package/dist/prune.js +68 -28
  339. package/dist/prune.js.map +1 -1
  340. package/dist/pull.d.ts +31 -0
  341. package/dist/pull.d.ts.map +1 -1
  342. package/dist/pull.js +1011 -471
  343. package/dist/pull.js.map +1 -1
  344. package/dist/push.d.ts +36 -2
  345. package/dist/push.d.ts.map +1 -1
  346. package/dist/push.js +603 -358
  347. package/dist/push.js.map +1 -1
  348. package/dist/realtime/in-memory.js.map +1 -1
  349. package/dist/realtime/index.d.ts +2 -1
  350. package/dist/realtime/index.d.ts.map +1 -1
  351. package/dist/realtime/index.js +1 -0
  352. package/dist/realtime/index.js.map +1 -1
  353. package/dist/realtime/types.d.ts +12 -0
  354. package/dist/realtime/types.d.ts.map +1 -1
  355. package/dist/realtime/types.js +13 -1
  356. package/dist/realtime/types.js.map +1 -1
  357. package/dist/relay/client-role/forward-engine.d.ts +63 -0
  358. package/dist/relay/client-role/forward-engine.d.ts.map +1 -0
  359. package/dist/relay/client-role/forward-engine.js +267 -0
  360. package/dist/relay/client-role/forward-engine.js.map +1 -0
  361. package/dist/relay/client-role/index.d.ts +9 -0
  362. package/dist/relay/client-role/index.d.ts.map +1 -0
  363. package/dist/relay/client-role/index.js +9 -0
  364. package/dist/relay/client-role/index.js.map +1 -0
  365. package/dist/relay/client-role/pull-engine.d.ts +72 -0
  366. package/dist/relay/client-role/pull-engine.d.ts.map +1 -0
  367. package/dist/relay/client-role/pull-engine.js +249 -0
  368. package/dist/relay/client-role/pull-engine.js.map +1 -0
  369. package/dist/relay/client-role/sequence-mapper.d.ts +65 -0
  370. package/dist/relay/client-role/sequence-mapper.d.ts.map +1 -0
  371. package/dist/relay/client-role/sequence-mapper.js +161 -0
  372. package/dist/relay/client-role/sequence-mapper.js.map +1 -0
  373. package/dist/relay/evaluation/relay-paths.d.ts +41 -0
  374. package/dist/relay/evaluation/relay-paths.d.ts.map +1 -0
  375. package/dist/relay/evaluation/relay-paths.js +504 -0
  376. package/dist/relay/evaluation/relay-paths.js.map +1 -0
  377. package/dist/relay/evaluation/rust-boundary.d.ts +47 -0
  378. package/dist/relay/evaluation/rust-boundary.d.ts.map +1 -0
  379. package/dist/relay/evaluation/rust-boundary.js +220 -0
  380. package/dist/relay/evaluation/rust-boundary.js.map +1 -0
  381. package/dist/relay/index.d.ts +37 -0
  382. package/dist/relay/index.d.ts.map +1 -0
  383. package/dist/relay/index.js +44 -0
  384. package/dist/relay/index.js.map +1 -0
  385. package/dist/relay/migrate.d.ts +18 -0
  386. package/dist/relay/migrate.d.ts.map +1 -0
  387. package/dist/relay/migrate.js +99 -0
  388. package/dist/relay/migrate.js.map +1 -0
  389. package/dist/relay/mode-manager.d.ts +60 -0
  390. package/dist/relay/mode-manager.d.ts.map +1 -0
  391. package/dist/relay/mode-manager.js +114 -0
  392. package/dist/relay/mode-manager.js.map +1 -0
  393. package/dist/relay/realtime.d.ts +90 -0
  394. package/dist/relay/realtime.d.ts.map +1 -0
  395. package/dist/relay/realtime.js +147 -0
  396. package/dist/relay/realtime.js.map +1 -0
  397. package/dist/relay/relay.d.ts +190 -0
  398. package/dist/relay/relay.d.ts.map +1 -0
  399. package/dist/relay/relay.js +320 -0
  400. package/dist/relay/relay.js.map +1 -0
  401. package/dist/relay/schema.d.ts +158 -0
  402. package/dist/relay/schema.d.ts.map +1 -0
  403. package/dist/relay/schema.js +7 -0
  404. package/dist/relay/schema.js.map +1 -0
  405. package/dist/relay/server-role/index.d.ts +56 -0
  406. package/dist/relay/server-role/index.d.ts.map +1 -0
  407. package/dist/relay/server-role/index.js +193 -0
  408. package/dist/relay/server-role/index.js.map +1 -0
  409. package/dist/relay/server-role/pull.d.ts +27 -0
  410. package/dist/relay/server-role/pull.d.ts.map +1 -0
  411. package/dist/relay/server-role/pull.js +24 -0
  412. package/dist/relay/server-role/pull.js.map +1 -0
  413. package/dist/relay/server-role/push.d.ts +29 -0
  414. package/dist/relay/server-role/push.d.ts.map +1 -0
  415. package/dist/relay/server-role/push.js +122 -0
  416. package/dist/relay/server-role/push.js.map +1 -0
  417. package/dist/s3/index.d.ts +83 -0
  418. package/dist/s3/index.d.ts.map +1 -0
  419. package/dist/s3/index.js +223 -0
  420. package/dist/s3/index.js.map +1 -0
  421. package/dist/schema.d.ts +137 -1
  422. package/dist/schema.d.ts.map +1 -1
  423. package/dist/schema.js +1 -0
  424. package/dist/schema.js.map +1 -1
  425. package/dist/service-worker/index.d.ts +114 -0
  426. package/dist/service-worker/index.d.ts.map +1 -0
  427. package/dist/service-worker/index.js +487 -0
  428. package/dist/service-worker/index.js.map +1 -0
  429. package/dist/snapshot-artifacts/sqlite-bun.d.ts +15 -0
  430. package/dist/snapshot-artifacts/sqlite-bun.d.ts.map +1 -0
  431. package/dist/snapshot-artifacts/sqlite-bun.js +128 -0
  432. package/dist/snapshot-artifacts/sqlite-bun.js.map +1 -0
  433. package/dist/snapshot-artifacts.d.ts +206 -0
  434. package/dist/snapshot-artifacts.d.ts.map +1 -0
  435. package/dist/snapshot-artifacts.js +545 -0
  436. package/dist/snapshot-artifacts.js.map +1 -0
  437. package/dist/snapshot-chunks/db-metadata.d.ts +18 -0
  438. package/dist/snapshot-chunks/db-metadata.d.ts.map +1 -1
  439. package/dist/snapshot-chunks/db-metadata.js +91 -63
  440. package/dist/snapshot-chunks/db-metadata.js.map +1 -1
  441. package/dist/snapshot-chunks/types.d.ts +2 -0
  442. package/dist/snapshot-chunks/types.d.ts.map +1 -1
  443. package/dist/snapshot-chunks.d.ts +33 -3
  444. package/dist/snapshot-chunks.d.ts.map +1 -1
  445. package/dist/snapshot-chunks.js +136 -55
  446. package/dist/snapshot-chunks.js.map +1 -1
  447. package/dist/sqlite/index.d.ts +53 -0
  448. package/dist/sqlite/index.d.ts.map +1 -0
  449. package/dist/sqlite/index.js +795 -0
  450. package/dist/sqlite/index.js.map +1 -0
  451. package/dist/sqlite3.d.ts +22 -0
  452. package/dist/sqlite3.d.ts.map +1 -0
  453. package/dist/sqlite3.js +99 -0
  454. package/dist/sqlite3.js.map +1 -0
  455. package/dist/stats.d.ts +8 -0
  456. package/dist/stats.d.ts.map +1 -1
  457. package/dist/stats.js +45 -13
  458. package/dist/stats.js.map +1 -1
  459. package/dist/subscriptions/cache.d.ts +3 -0
  460. package/dist/subscriptions/cache.d.ts.map +1 -1
  461. package/dist/subscriptions/cache.js +44 -0
  462. package/dist/subscriptions/cache.js.map +1 -1
  463. package/dist/subscriptions/resolve.d.ts +3 -1
  464. package/dist/subscriptions/resolve.d.ts.map +1 -1
  465. package/dist/subscriptions/resolve.js +90 -51
  466. package/dist/subscriptions/resolve.js.map +1 -1
  467. package/dist/sync.d.ts +3 -0
  468. package/dist/sync.d.ts.map +1 -1
  469. package/dist/sync.js +8 -4
  470. package/dist/sync.js.map +1 -1
  471. package/package.json +296 -7
  472. package/src/auth-leases.ts +649 -0
  473. package/src/better-sqlite3.ts +35 -0
  474. package/src/blobs/access.ts +244 -0
  475. package/src/blobs/adapters/database.ts +125 -43
  476. package/src/blobs/index.ts +1 -0
  477. package/src/blobs/manager.ts +366 -65
  478. package/src/blobs/migrate.ts +16 -8
  479. package/src/blobs/types.ts +4 -0
  480. package/src/bun-sqlite-ambient.d.ts +19 -0
  481. package/src/bun-sqlite.ts +27 -0
  482. package/src/clients.ts +1 -0
  483. package/src/cloudflare/durable-object.ts +289 -0
  484. package/src/cloudflare/index.ts +22 -0
  485. package/src/cloudflare/r2.ts +526 -0
  486. package/src/cloudflare/scope-cache.ts +341 -0
  487. package/src/cloudflare/sentry.ts +230 -0
  488. package/src/cloudflare/worker.ts +77 -0
  489. package/src/commit-integrity.ts +371 -0
  490. package/src/crdt-yjs/index.ts +931 -0
  491. package/src/d1.ts +16 -0
  492. package/src/dialect/base.ts +71 -5
  493. package/src/dialect/helpers.ts +31 -0
  494. package/src/dialect/types.ts +47 -0
  495. package/src/encrypted-crdt.ts +786 -0
  496. package/src/errors.ts +22 -0
  497. package/src/filesystem/index.ts +262 -0
  498. package/src/handlers/collection.ts +78 -78
  499. package/src/handlers/create-handler.ts +540 -147
  500. package/src/handlers/types.ts +116 -0
  501. package/src/helpers/index.ts +2 -0
  502. package/src/helpers/scope-authorization.ts +27 -0
  503. package/src/helpers/scope-commit-index.ts +52 -0
  504. package/src/hono/api-key-auth.ts +177 -0
  505. package/src/hono/audit-redaction.ts +135 -0
  506. package/src/hono/blobs.ts +851 -0
  507. package/src/hono/console/gateway.ts +3046 -0
  508. package/src/hono/console/live-auth.ts +46 -0
  509. package/src/hono/console/route-descriptor.ts +22 -0
  510. package/src/hono/console/routes/api-keys.ts +721 -0
  511. package/src/hono/console/routes/clients.ts +447 -0
  512. package/src/hono/console/routes/commits.ts +1137 -0
  513. package/src/hono/console/routes/context.ts +956 -0
  514. package/src/hono/console/routes/events.ts +669 -0
  515. package/src/hono/console/routes/maintenance.ts +461 -0
  516. package/src/hono/console/routes/shared.ts +816 -0
  517. package/src/hono/console/routes/stats.ts +392 -0
  518. package/src/hono/console/routes/storage.ts +159 -0
  519. package/src/hono/console/routes.ts +146 -0
  520. package/src/hono/console/schema-errors.ts +23 -0
  521. package/src/hono/console/schemas.ts +914 -0
  522. package/src/hono/console/types.ts +223 -0
  523. package/src/hono/console/ui.ts +100 -0
  524. package/src/hono/create-server.ts +230 -0
  525. package/src/hono/errors.ts +50 -0
  526. package/src/hono/index.ts +54 -0
  527. package/src/hono/openapi.ts +139 -0
  528. package/src/hono/proxy/connection-manager.ts +340 -0
  529. package/src/hono/proxy/index.ts +8 -0
  530. package/src/hono/proxy/routes.ts +272 -0
  531. package/src/hono/rate-limit.ts +319 -0
  532. package/src/hono/realtime-sync-packs.ts +354 -0
  533. package/src/hono/routes/audit.ts +499 -0
  534. package/src/hono/routes/auth-leases.ts +119 -0
  535. package/src/hono/routes/combined.ts +583 -0
  536. package/src/hono/routes/context.ts +1629 -0
  537. package/src/hono/routes/health.ts +26 -0
  538. package/src/hono/routes/realtime.ts +808 -0
  539. package/src/hono/routes/shared.ts +1626 -0
  540. package/src/hono/routes/snapshots.ts +345 -0
  541. package/src/hono/routes.ts +68 -0
  542. package/src/hono/validation.ts +81 -0
  543. package/src/hono/websocket-origin.ts +131 -0
  544. package/src/hono/ws.ts +1134 -0
  545. package/src/index.ts +6 -0
  546. package/src/libsql.ts +51 -0
  547. package/src/neon.ts +28 -0
  548. package/src/notify.ts +224 -44
  549. package/src/pglite.ts +68 -0
  550. package/src/plugins/index.ts +1 -0
  551. package/src/plugins/types.ts +144 -0
  552. package/src/postgres/index.ts +1291 -0
  553. package/src/proxy/collection.ts +5 -27
  554. package/src/proxy/handler.ts +2 -2
  555. package/src/proxy/index.ts +0 -2
  556. package/src/proxy/oplog.ts +41 -10
  557. package/src/prune.ts +137 -36
  558. package/src/pull.ts +1504 -591
  559. package/src/push.ts +881 -443
  560. package/src/realtime/index.ts +2 -0
  561. package/src/realtime/types.ts +35 -0
  562. package/src/relay/bun-types.d.ts +50 -0
  563. package/src/relay/client-role/forward-engine.ts +355 -0
  564. package/src/relay/client-role/index.ts +9 -0
  565. package/src/relay/client-role/pull-engine.ts +329 -0
  566. package/src/relay/client-role/sequence-mapper.ts +201 -0
  567. package/src/relay/evaluation/relay-paths.ts +699 -0
  568. package/src/relay/evaluation/rust-boundary.ts +464 -0
  569. package/src/relay/index.ts +50 -0
  570. package/src/relay/migrate.ts +113 -0
  571. package/src/relay/mode-manager.ts +142 -0
  572. package/src/relay/realtime.ts +207 -0
  573. package/src/relay/relay.ts +431 -0
  574. package/src/relay/schema.ts +171 -0
  575. package/src/relay/server-role/index.ts +338 -0
  576. package/src/relay/server-role/pull.ts +43 -0
  577. package/src/relay/server-role/push.ts +164 -0
  578. package/src/s3/index.ts +346 -0
  579. package/src/schema.ts +141 -1
  580. package/src/service-worker/index.ts +773 -0
  581. package/src/snapshot-artifacts/sqlite-bun.ts +168 -0
  582. package/src/snapshot-artifacts.ts +896 -0
  583. package/src/snapshot-chunks/db-metadata.ts +131 -72
  584. package/src/snapshot-chunks/types.ts +2 -0
  585. package/src/snapshot-chunks.ts +194 -70
  586. package/src/sqlite/index.ts +1064 -0
  587. package/src/sqlite3.ts +137 -0
  588. package/src/stats.ts +76 -13
  589. package/src/subscriptions/cache.ts +58 -0
  590. package/src/subscriptions/resolve.ts +99 -58
  591. package/src/sync.ts +16 -6
  592. package/src/blobs/adapters/database.test.ts +0 -67
  593. package/src/notify.test.ts +0 -520
  594. package/src/proxy/handler.test.ts +0 -126
  595. package/src/proxy/mutation-detector.test.ts +0 -71
  596. package/src/snapshot-chunks/db-metadata.test.ts +0 -172
  597. package/src/subscriptions/resolve.test.ts +0 -180
@@ -0,0 +1,426 @@
1
+ import { BinarySnapshotTableWriter, collectScopeVars } from '@syncular/core';
2
+ import { sql } from 'kysely';
3
+ import { parseScopes } from './dialect/helpers.js';
4
+ import { rowScopesAllowed } from './helpers/scope-authorization.js';
5
+ export const SYNC_CRDT_UPDATES_TABLE = 'sync_crdt_updates';
6
+ export const SYNC_CRDT_CHECKPOINTS_TABLE = 'sync_crdt_checkpoints';
7
+ const CRDT_UPDATE_BINARY_COLUMNS = [
8
+ { name: 'seq', type: 'integer' },
9
+ { name: 'partition_id', type: 'string' },
10
+ { name: 'stream_id', type: 'string' },
11
+ { name: 'app_table', type: 'string' },
12
+ { name: 'row_id', type: 'string' },
13
+ { name: 'field_name', type: 'string' },
14
+ { name: 'update_id', type: 'string' },
15
+ { name: 'actor_id', type: 'string', nullable: true },
16
+ { name: 'client_id', type: 'string', nullable: true },
17
+ { name: 'key_id', type: 'string' },
18
+ { name: 'ciphertext', type: 'string' },
19
+ { name: 'scopes', type: 'json' },
20
+ ];
21
+ const CRDT_CHECKPOINT_BINARY_COLUMNS = [
22
+ { name: 'seq', type: 'integer' },
23
+ { name: 'partition_id', type: 'string' },
24
+ { name: 'stream_id', type: 'string' },
25
+ { name: 'app_table', type: 'string' },
26
+ { name: 'row_id', type: 'string' },
27
+ { name: 'field_name', type: 'string' },
28
+ { name: 'checkpoint_id', type: 'string' },
29
+ { name: 'covers_seq', type: 'integer' },
30
+ { name: 'actor_id', type: 'string', nullable: true },
31
+ { name: 'client_id', type: 'string', nullable: true },
32
+ { name: 'key_id', type: 'string' },
33
+ { name: 'ciphertext', type: 'string' },
34
+ { name: 'scopes', type: 'json' },
35
+ ];
36
+ const CRDT_UPDATE_BINARY_ENCODER = (rows) => encodeEncryptedCrdtUpdateRows(rows);
37
+ const CRDT_CHECKPOINT_BINARY_ENCODER = (rows) => encodeEncryptedCrdtCheckpointRows(rows);
38
+ function createSystemRowScopeAuthorizer(options) {
39
+ const requiredScopeKeys = Array.from(collectScopeVars(options.scopePatterns ?? []));
40
+ return async (ctx, rowScopes) => {
41
+ if (requiredScopeKeys.length === 0)
42
+ return true;
43
+ let allowedScopes;
44
+ try {
45
+ allowedScopes = await options.resolveScopes({
46
+ db: ctx.db,
47
+ actorId: ctx.actorId,
48
+ auth: ctx.auth,
49
+ });
50
+ }
51
+ catch {
52
+ return false;
53
+ }
54
+ return rowScopesAllowed({
55
+ rowScopes,
56
+ allowedScopes,
57
+ requiredScopeKeys,
58
+ });
59
+ };
60
+ }
61
+ export function encryptedCrdtStreamId(args) {
62
+ return `${escapeStreamPart(args.table)}:${escapeStreamPart(args.rowId)}:${escapeStreamPart(args.field)}`;
63
+ }
64
+ export function createEncryptedCrdtSystemHandlers(options) {
65
+ return [
66
+ createEncryptedCrdtUpdateHandler(options),
67
+ createEncryptedCrdtCheckpointHandler(options),
68
+ ];
69
+ }
70
+ export async function pruneEncryptedCrdtSystemRows(db, options = {}) {
71
+ const partitionId = options.partitionId ?? 'default';
72
+ const streamFilter = options.streamId
73
+ ? sql `and stream_id = ${options.streamId}`
74
+ : sql ``;
75
+ const updateStreamFilter = options.streamId
76
+ ? sql `and sync_crdt_updates.stream_id = ${options.streamId}`
77
+ : sql ``;
78
+ const checkpointStreamFilter = options.streamId
79
+ ? sql `and sync_crdt_checkpoints.stream_id = ${options.streamId}`
80
+ : sql ``;
81
+ let updatesDeleted = 0;
82
+ if (options.pruneCoveredUpdates !== false) {
83
+ const deleted = await sql `
84
+ delete from sync_crdt_updates
85
+ where partition_id = ${partitionId}
86
+ ${updateStreamFilter}
87
+ and exists (
88
+ select 1
89
+ from sync_crdt_checkpoints
90
+ where sync_crdt_checkpoints.partition_id = sync_crdt_updates.partition_id
91
+ and sync_crdt_checkpoints.stream_id = sync_crdt_updates.stream_id
92
+ and sync_crdt_checkpoints.key_id = sync_crdt_updates.key_id
93
+ and sync_crdt_checkpoints.covers_seq >= sync_crdt_updates.seq
94
+ )
95
+ `.execute(db);
96
+ updatesDeleted = affectedRows(deleted);
97
+ }
98
+ let checkpointsDeleted = 0;
99
+ if (options.maxCheckpointsPerStream != null) {
100
+ if (!Number.isInteger(options.maxCheckpointsPerStream) ||
101
+ options.maxCheckpointsPerStream < 1) {
102
+ throw new Error('maxCheckpointsPerStream must be an integer >= 1');
103
+ }
104
+ const deleted = await sql `
105
+ delete from sync_crdt_checkpoints
106
+ where checkpoint_id in (
107
+ select checkpoint_id
108
+ from (
109
+ select
110
+ checkpoint_id,
111
+ row_number() over (
112
+ partition by partition_id, stream_id, key_id
113
+ order by covers_seq desc, seq desc
114
+ ) as checkpoint_rank
115
+ from sync_crdt_checkpoints
116
+ where partition_id = ${partitionId}
117
+ ${streamFilter}
118
+ ) ranked
119
+ where checkpoint_rank > ${options.maxCheckpointsPerStream}
120
+ )
121
+ and partition_id = ${partitionId}
122
+ ${checkpointStreamFilter}
123
+ `.execute(db);
124
+ checkpointsDeleted = affectedRows(deleted);
125
+ }
126
+ return { updatesDeleted, checkpointsDeleted };
127
+ }
128
+ function createEncryptedCrdtUpdateHandler(options) {
129
+ const authorizeRowScopes = createSystemRowScopeAuthorizer(options);
130
+ return {
131
+ table: SYNC_CRDT_UPDATES_TABLE,
132
+ primaryKeyColumn: 'update_id',
133
+ snapshotBinaryColumns: CRDT_UPDATE_BINARY_COLUMNS,
134
+ snapshotBinaryEncoder: CRDT_UPDATE_BINARY_ENCODER,
135
+ scopePatterns: options.scopePatterns ?? [],
136
+ resolveScopes: async (ctx) => options.resolveScopes(ctx),
137
+ extractScopes: (row) => parseScopes(row.scopes),
138
+ snapshot: (ctx, _params) => snapshotSystemTable(ctx, SYNC_CRDT_UPDATES_TABLE, 'update_id'),
139
+ async applyOperation(ctx, op, opIndex) {
140
+ if (op.table !== SYNC_CRDT_UPDATES_TABLE) {
141
+ return errorResult(opIndex, `Unknown table: ${op.table}`, 'sync.unknown_table');
142
+ }
143
+ if (op.op !== 'upsert') {
144
+ return errorResult(opIndex, 'Encrypted CRDT updates are append-only', 'sync.unsupported_operation');
145
+ }
146
+ const payload = payloadRecord(op);
147
+ const row = updateRowFromPayload(ctx, op, payload);
148
+ if (!(await authorizeRowScopes(ctx, row.scopes))) {
149
+ return errorResult(opIndex, 'Forbidden', 'sync.forbidden');
150
+ }
151
+ if (options.authorizeUpdate) {
152
+ const allowed = await options.authorizeUpdate({ ctx, row });
153
+ if (!allowed) {
154
+ return errorResult(opIndex, 'Forbidden', 'sync.forbidden');
155
+ }
156
+ }
157
+ const inserted = await insertSystemRow(ctx.trx, SYNC_CRDT_UPDATES_TABLE, 'update_id', row.update_id, { ...row });
158
+ if (!inserted) {
159
+ return { result: { opIndex, status: 'applied' }, emittedChanges: [] };
160
+ }
161
+ return appliedResult(opIndex, SYNC_CRDT_UPDATES_TABLE, row.update_id, {
162
+ ...row,
163
+ seq: inserted.seq,
164
+ });
165
+ },
166
+ };
167
+ }
168
+ function createEncryptedCrdtCheckpointHandler(options) {
169
+ const authorizeRowScopes = createSystemRowScopeAuthorizer(options);
170
+ return {
171
+ table: SYNC_CRDT_CHECKPOINTS_TABLE,
172
+ primaryKeyColumn: 'checkpoint_id',
173
+ snapshotBinaryColumns: CRDT_CHECKPOINT_BINARY_COLUMNS,
174
+ snapshotBinaryEncoder: CRDT_CHECKPOINT_BINARY_ENCODER,
175
+ scopePatterns: options.scopePatterns ?? [],
176
+ resolveScopes: async (ctx) => options.resolveScopes(ctx),
177
+ extractScopes: (row) => parseScopes(row.scopes),
178
+ snapshot: (ctx, _params) => snapshotSystemTable(ctx, SYNC_CRDT_CHECKPOINTS_TABLE, 'checkpoint_id'),
179
+ async applyOperation(ctx, op, opIndex) {
180
+ if (op.table !== SYNC_CRDT_CHECKPOINTS_TABLE) {
181
+ return errorResult(opIndex, `Unknown table: ${op.table}`, 'sync.unknown_table');
182
+ }
183
+ if (op.op !== 'upsert') {
184
+ return errorResult(opIndex, 'Encrypted CRDT checkpoints are append-only', 'sync.unsupported_operation');
185
+ }
186
+ const payload = payloadRecord(op);
187
+ const row = checkpointRowFromPayload(ctx, op, payload);
188
+ if (!(await authorizeRowScopes(ctx, row.scopes))) {
189
+ return errorResult(opIndex, 'Forbidden', 'sync.forbidden');
190
+ }
191
+ if (options.authorizeCheckpoint) {
192
+ const allowed = await options.authorizeCheckpoint({ ctx, row });
193
+ if (!allowed) {
194
+ return errorResult(opIndex, 'Forbidden', 'sync.forbidden');
195
+ }
196
+ }
197
+ const inserted = await insertSystemRow(ctx.trx, SYNC_CRDT_CHECKPOINTS_TABLE, 'checkpoint_id', row.checkpoint_id, { ...row });
198
+ if (!inserted) {
199
+ return { result: { opIndex, status: 'applied' }, emittedChanges: [] };
200
+ }
201
+ return appliedResult(opIndex, SYNC_CRDT_CHECKPOINTS_TABLE, row.checkpoint_id, { ...row, seq: inserted.seq });
202
+ },
203
+ };
204
+ }
205
+ async function snapshotSystemTable(ctx, table, cursorColumn) {
206
+ const partitionId = ctx.auth.partitionId ?? 'default';
207
+ const cursor = ctx.cursor;
208
+ const rows = await sql `
209
+ select *
210
+ from ${sql.table(table)}
211
+ where partition_id = ${partitionId}
212
+ and (${cursor} is null or ${sql.ref(cursorColumn)} > ${cursor})
213
+ order by ${sql.ref(cursorColumn)} asc
214
+ limit ${ctx.limit + 1}
215
+ `.execute(ctx.db);
216
+ const matched = rows.rows
217
+ .filter((row) => scopesMatch(parseScopes(row.scopes), ctx.scopeValues))
218
+ .slice(0, ctx.limit);
219
+ return {
220
+ rows: matched.map(normalizeSystemRowForProtocol),
221
+ nextCursor: matched.length === ctx.limit
222
+ ? String(matched[matched.length - 1]?.[cursorColumn] ?? '')
223
+ : null,
224
+ };
225
+ }
226
+ async function insertSystemRow(trx, table, identityColumn, identity, row) {
227
+ const insertable = {
228
+ ...row,
229
+ scopes: JSON.stringify(scopesField(row.scopes)),
230
+ };
231
+ const result = await trx.insertInto(table)
232
+ .values(insertable)
233
+ .onConflict((oc) => oc.columns(['partition_id', identityColumn]).doNothing())
234
+ .returning(['seq', identityColumn])
235
+ .executeTakeFirst();
236
+ if (result)
237
+ return { seq: Number(result.seq) };
238
+ const existing = await sql `
239
+ select ${sql.ref(identityColumn)} as identity
240
+ from ${sql.table(table)}
241
+ where partition_id = ${String(row.partition_id)}
242
+ and ${sql.ref(identityColumn)} = ${identity}
243
+ limit 1
244
+ `.execute(trx);
245
+ if (existing.rows.length > 0)
246
+ return null;
247
+ throw new Error(`Encrypted CRDT insert did not return ${identityColumn}`);
248
+ }
249
+ function updateRowFromPayload(ctx, op, payload) {
250
+ return {
251
+ partition_id: ctx.auth.partitionId ?? 'default',
252
+ stream_id: stringField(payload, 'stream_id'),
253
+ app_table: stringField(payload, 'app_table'),
254
+ row_id: stringField(payload, 'row_id'),
255
+ field_name: stringField(payload, 'field_name'),
256
+ update_id: stringField(payload, 'update_id', op.row_id),
257
+ actor_id: ctx.actorId,
258
+ client_id: ctx.clientId,
259
+ key_id: stringField(payload, 'key_id'),
260
+ ciphertext: stringField(payload, 'ciphertext'),
261
+ scopes: scopesField(payload.scopes),
262
+ };
263
+ }
264
+ function checkpointRowFromPayload(ctx, op, payload) {
265
+ const coversSeq = Number(payload.covers_seq);
266
+ if (!Number.isInteger(coversSeq) || coversSeq < 0) {
267
+ throw new Error('Encrypted CRDT checkpoint covers_seq must be a non-negative integer');
268
+ }
269
+ return {
270
+ partition_id: ctx.auth.partitionId ?? 'default',
271
+ stream_id: stringField(payload, 'stream_id'),
272
+ app_table: stringField(payload, 'app_table'),
273
+ row_id: stringField(payload, 'row_id'),
274
+ field_name: stringField(payload, 'field_name'),
275
+ checkpoint_id: stringField(payload, 'checkpoint_id', op.row_id),
276
+ covers_seq: coversSeq,
277
+ actor_id: ctx.actorId,
278
+ client_id: ctx.clientId,
279
+ key_id: stringField(payload, 'key_id'),
280
+ ciphertext: stringField(payload, 'ciphertext'),
281
+ scopes: scopesField(payload.scopes),
282
+ };
283
+ }
284
+ function appliedResult(opIndex, table, rowId, row) {
285
+ const emitted = {
286
+ table,
287
+ row_id: rowId,
288
+ op: 'upsert',
289
+ row_json: normalizeSystemRowForProtocol(row),
290
+ row_version: numberOrNull(row.seq),
291
+ scopes: scopesField(row.scopes),
292
+ };
293
+ return {
294
+ result: { opIndex, status: 'applied' },
295
+ emittedChanges: [emitted],
296
+ };
297
+ }
298
+ function errorResult(opIndex, error, code) {
299
+ return {
300
+ result: { opIndex, status: 'error', error, code, retriable: false },
301
+ emittedChanges: [],
302
+ };
303
+ }
304
+ function payloadRecord(op) {
305
+ if (!op.payload ||
306
+ typeof op.payload !== 'object' ||
307
+ Array.isArray(op.payload)) {
308
+ throw new Error('Encrypted CRDT operation payload must be an object');
309
+ }
310
+ return op.payload;
311
+ }
312
+ function stringField(payload, field, fallback) {
313
+ const value = payload[field] ?? fallback;
314
+ if (typeof value !== 'string' || value.length === 0) {
315
+ throw new Error(`Encrypted CRDT payload field ${field} must be a non-empty string`);
316
+ }
317
+ return value;
318
+ }
319
+ function scopesField(value) {
320
+ const parsed = parseScopes(value);
321
+ return parsed;
322
+ }
323
+ function scopesMatch(stored, requested) {
324
+ for (const [key, value] of Object.entries(requested)) {
325
+ if (Array.isArray(value)) {
326
+ if (value.length === 0 || !value.includes(stored[key]))
327
+ return false;
328
+ continue;
329
+ }
330
+ if (stored[key] !== value)
331
+ return false;
332
+ }
333
+ return true;
334
+ }
335
+ function normalizeSystemRowForProtocol(row) {
336
+ return {
337
+ ...row,
338
+ scopes: scopesField(row.scopes),
339
+ seq: numberOrNull(row.seq),
340
+ };
341
+ }
342
+ function numberOrNull(value) {
343
+ const number = Number(value);
344
+ return Number.isFinite(number) ? number : null;
345
+ }
346
+ function affectedRows(result) {
347
+ return Number(result.numAffectedRows ?? 0);
348
+ }
349
+ function encodeEncryptedCrdtUpdateRows(rows) {
350
+ const writer = new BinarySnapshotTableWriter(SYNC_CRDT_UPDATES_TABLE, CRDT_UPDATE_BINARY_COLUMNS, rows.length);
351
+ for (const value of rows) {
352
+ const row = recordRow(value);
353
+ writer.beginRow();
354
+ writer.writeInteger(rowInteger(row, 'seq'), 'binary snapshot sync_crdt_updates.seq');
355
+ writer.writeString(rowString(row, 'partition_id'), 'binary snapshot sync_crdt_updates.partition_id');
356
+ writer.writeString(rowString(row, 'stream_id'), 'binary snapshot sync_crdt_updates.stream_id');
357
+ writer.writeString(rowString(row, 'app_table'), 'binary snapshot sync_crdt_updates.app_table');
358
+ writer.writeString(rowString(row, 'row_id'), 'binary snapshot sync_crdt_updates.row_id');
359
+ writer.writeString(rowString(row, 'field_name'), 'binary snapshot sync_crdt_updates.field_name');
360
+ writer.writeString(rowString(row, 'update_id'), 'binary snapshot sync_crdt_updates.update_id');
361
+ writeNullableString(writer, 7, row.actor_id, 'binary snapshot sync_crdt_updates.actor_id');
362
+ writeNullableString(writer, 8, row.client_id, 'binary snapshot sync_crdt_updates.client_id');
363
+ writer.writeString(rowString(row, 'key_id'), 'binary snapshot sync_crdt_updates.key_id');
364
+ writer.writeString(rowString(row, 'ciphertext'), 'binary snapshot sync_crdt_updates.ciphertext');
365
+ writer.writeJson(scopesField(row.scopes), 'binary snapshot sync_crdt_updates.scopes');
366
+ }
367
+ return writer.finish();
368
+ }
369
+ function encodeEncryptedCrdtCheckpointRows(rows) {
370
+ const writer = new BinarySnapshotTableWriter(SYNC_CRDT_CHECKPOINTS_TABLE, CRDT_CHECKPOINT_BINARY_COLUMNS, rows.length);
371
+ for (const value of rows) {
372
+ const row = recordRow(value);
373
+ writer.beginRow();
374
+ writer.writeInteger(rowInteger(row, 'seq'), 'binary snapshot sync_crdt_checkpoints.seq');
375
+ writer.writeString(rowString(row, 'partition_id'), 'binary snapshot sync_crdt_checkpoints.partition_id');
376
+ writer.writeString(rowString(row, 'stream_id'), 'binary snapshot sync_crdt_checkpoints.stream_id');
377
+ writer.writeString(rowString(row, 'app_table'), 'binary snapshot sync_crdt_checkpoints.app_table');
378
+ writer.writeString(rowString(row, 'row_id'), 'binary snapshot sync_crdt_checkpoints.row_id');
379
+ writer.writeString(rowString(row, 'field_name'), 'binary snapshot sync_crdt_checkpoints.field_name');
380
+ writer.writeString(rowString(row, 'checkpoint_id'), 'binary snapshot sync_crdt_checkpoints.checkpoint_id');
381
+ writer.writeInteger(rowInteger(row, 'covers_seq'), 'binary snapshot sync_crdt_checkpoints.covers_seq');
382
+ writeNullableString(writer, 8, row.actor_id, 'binary snapshot sync_crdt_checkpoints.actor_id');
383
+ writeNullableString(writer, 9, row.client_id, 'binary snapshot sync_crdt_checkpoints.client_id');
384
+ writer.writeString(rowString(row, 'key_id'), 'binary snapshot sync_crdt_checkpoints.key_id');
385
+ writer.writeString(rowString(row, 'ciphertext'), 'binary snapshot sync_crdt_checkpoints.ciphertext');
386
+ writer.writeJson(scopesField(row.scopes), 'binary snapshot sync_crdt_checkpoints.scopes');
387
+ }
388
+ return writer.finish();
389
+ }
390
+ function recordRow(value) {
391
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
392
+ throw new Error('Encrypted CRDT binary rows must be objects');
393
+ }
394
+ return value;
395
+ }
396
+ function rowString(row, field) {
397
+ const value = row[field];
398
+ if (typeof value !== 'string' || value.length === 0) {
399
+ throw new Error(`Encrypted CRDT binary row field ${field} must be a non-empty string`);
400
+ }
401
+ return value;
402
+ }
403
+ function rowInteger(row, field) {
404
+ const value = row[field];
405
+ if (typeof value === 'bigint')
406
+ return value;
407
+ if (typeof value === 'number' && Number.isSafeInteger(value))
408
+ return value;
409
+ if (typeof value === 'string' && /^-?\d+$/.test(value))
410
+ return BigInt(value);
411
+ throw new Error(`Encrypted CRDT binary row field ${field} must be an integer`);
412
+ }
413
+ function writeNullableString(writer, columnIndex, value, label) {
414
+ if (value == null) {
415
+ writer.writeNull(columnIndex);
416
+ return;
417
+ }
418
+ if (typeof value !== 'string') {
419
+ throw new Error(`${label} expected string`);
420
+ }
421
+ writer.writeString(value, label);
422
+ }
423
+ function escapeStreamPart(value) {
424
+ return encodeURIComponent(value);
425
+ }
426
+ //# sourceMappingURL=encrypted-crdt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encrypted-crdt.js","sourceRoot":"","sources":["../src/encrypted-crdt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare class SyncClientSchemaUnsupportedError extends Error {
2
+ readonly code: 'sync.client_schema_unsupported';
3
+ readonly schemaVersion: number | null;
4
+ readonly supportedSchemaVersions: readonly number[];
5
+ constructor(options: {
6
+ schemaVersion: number | null | undefined;
7
+ supportedSchemaVersions: readonly number[];
8
+ });
9
+ }
10
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,gCAAiC,SAAQ,KAAK;IACzD,QAAQ,CAAC,IAAI,EAAG,gCAAgC,CAAU;IAC1D,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,uBAAuB,EAAE,SAAS,MAAM,EAAE,CAAC;IAEpD,YAAY,OAAO,EAAE;QACnB,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QACzC,uBAAuB,EAAE,SAAS,MAAM,EAAE,CAAC;KAC5C,EAYA;CACF"}
package/dist/errors.js ADDED
@@ -0,0 +1,13 @@
1
+ export class SyncClientSchemaUnsupportedError extends Error {
2
+ code = 'sync.client_schema_unsupported';
3
+ schemaVersion;
4
+ supportedSchemaVersions;
5
+ constructor(options) {
6
+ const schemaVersion = options.schemaVersion ?? null;
7
+ super(`Client schema version ${schemaVersion ?? 'unknown'} is not supported. Supported client schema versions: ${options.supportedSchemaVersions.join(', ')}.`);
8
+ this.name = 'SyncClientSchemaUnsupportedError';
9
+ this.schemaVersion = schemaVersion;
10
+ this.supportedSchemaVersions = options.supportedSchemaVersions;
11
+ }
12
+ }
13
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gCAAiC,SAAQ,KAAK;IAChD,IAAI,GAAG,gCAAyC,CAAC;IACjD,aAAa,CAAgB;IAC7B,uBAAuB,CAAoB;IAEpD,YAAY,OAGX;QACC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;QACpD,KAAK,CACH,yBACE,aAAa,IAAI,SACnB,wDAAwD,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAC1F,IAAI,CACL,GAAG,CACL,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IACjE,CAAC;CACF"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Filesystem blob storage adapter.
3
+ *
4
+ * Stores blobs as files on disk with 2-level hash-based subdirectories.
5
+ * Uploads/downloads go through the server's blob routes using signed tokens
6
+ * (same pattern as the database adapter).
7
+ */
8
+ import type { BlobStorageAdapter } from '@syncular/core';
9
+ export interface BlobTokenSigner {
10
+ sign(payload: {
11
+ hash: string;
12
+ partitionId: string;
13
+ action: 'upload';
14
+ size: number;
15
+ expiresAt: number;
16
+ } | {
17
+ hash: string;
18
+ partitionId: string;
19
+ action: 'download';
20
+ expiresAt: number;
21
+ }, expiresInSeconds: number): Promise<string>;
22
+ }
23
+ export interface FilesystemBlobStorageAdapterOptions {
24
+ /** Directory root for blob files */
25
+ basePath: string;
26
+ /** Server base URL for upload/download routes (e.g. "/api/sync") */
27
+ baseUrl: string;
28
+ /** Token signer for authorization */
29
+ tokenSigner: BlobTokenSigner;
30
+ }
31
+ /**
32
+ * Create a filesystem blob storage adapter.
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * const adapter = createFilesystemBlobStorageAdapter({
37
+ * basePath: '/data/blobs',
38
+ * baseUrl: 'https://api.example.com/api/sync',
39
+ * tokenSigner: createHmacTokenSigner(process.env.BLOB_SECRET!),
40
+ * });
41
+ * ```
42
+ */
43
+ export declare function createFilesystemBlobStorageAdapter(options: FilesystemBlobStorageAdapterOptions): BlobStorageAdapter;
44
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filesystem/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,OAAO,KAAK,EAIV,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,eAAe;IAC9B,IAAI,CACF,OAAO,EACH;QACE,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,QAAQ,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,GACD;QACE,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,UAAU,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,EACL,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAOD,MAAM,WAAW,mCAAmC;IAClD,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,WAAW,EAAE,eAAe,CAAC;CAC9B;AA8BD;;;;;;;;;;;GAWG;AACH,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,mCAAmC,GAC3C,kBAAkB,CAgKpB"}