@syncular/server 0.1.3 → 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 (758) hide show
  1. package/README.md +773 -13
  2. package/dist/admin.d.ts +136 -0
  3. package/dist/admin.js +168 -0
  4. package/dist/blob-handlers.d.ts +69 -0
  5. package/dist/blob-handlers.js +245 -0
  6. package/dist/blob-store.d.ts +111 -0
  7. package/dist/blob-store.js +0 -0
  8. package/dist/content-encoding.d.ts +27 -0
  9. package/dist/content-encoding.js +69 -0
  10. package/dist/context.d.ts +151 -0
  11. package/dist/context.js +21 -0
  12. package/dist/crdt-merger.d.ts +28 -0
  13. package/dist/crdt-merger.js +11 -0
  14. package/dist/d1-storage.d.ts +50 -0
  15. package/dist/d1-storage.js +0 -0
  16. package/dist/errors.d.ts +35 -9
  17. package/dist/errors.js +220 -11
  18. package/dist/events-ring.d.ts +55 -0
  19. package/dist/events-ring.js +96 -0
  20. package/dist/events.d.ts +231 -0
  21. package/dist/events.js +22 -0
  22. package/dist/frame-bytes.d.ts +20 -0
  23. package/dist/frame-bytes.js +75 -0
  24. package/dist/handler.d.ts +9 -0
  25. package/dist/handler.js +490 -0
  26. package/dist/index.d.ts +42 -33
  27. package/dist/index.js +45 -27
  28. package/dist/lease-store.d.ts +50 -0
  29. package/dist/lease-store.js +0 -0
  30. package/dist/pg-executor-pglite.d.ts +27 -0
  31. package/dist/pg-executor-pglite.js +33 -0
  32. package/dist/pg-executor.d.ts +67 -0
  33. package/dist/pg-executor.js +56 -0
  34. package/dist/postgres-fanout.d.ts +83 -0
  35. package/dist/postgres-fanout.js +71 -0
  36. package/dist/postgres-storage.d.ts +69 -0
  37. package/dist/postgres-storage.js +766 -0
  38. package/dist/prune.d.ts +24 -39
  39. package/dist/prune.js +44 -146
  40. package/dist/pull.d.ts +42 -67
  41. package/dist/pull.js +387 -1187
  42. package/dist/push.d.ts +31 -66
  43. package/dist/push.js +406 -655
  44. package/dist/realtime.d.ts +197 -0
  45. package/dist/realtime.js +848 -0
  46. package/dist/relational-rows.d.ts +229 -0
  47. package/dist/relational-rows.js +514 -0
  48. package/dist/s3-blob-store.d.ts +142 -0
  49. package/dist/s3-blob-store.js +458 -0
  50. package/dist/s3-segment-store.d.ts +95 -0
  51. package/dist/s3-segment-store.js +380 -0
  52. package/dist/schema.d.ts +82 -286
  53. package/dist/schema.js +133 -9
  54. package/dist/scopes.d.ts +48 -0
  55. package/dist/scopes.js +98 -0
  56. package/dist/segment-download.d.ts +14 -0
  57. package/dist/segment-download.js +125 -0
  58. package/dist/segment-store.d.ts +81 -0
  59. package/dist/segment-store.js +63 -0
  60. package/dist/signed-url.d.ts +139 -0
  61. package/dist/signed-url.js +143 -0
  62. package/dist/sigv4.d.ts +97 -0
  63. package/dist/sigv4.js +161 -0
  64. package/dist/sqlite-blob-store.d.ts +22 -0
  65. package/dist/sqlite-blob-store.js +86 -0
  66. package/dist/sqlite-dialect.d.ts +101 -0
  67. package/dist/sqlite-dialect.js +250 -0
  68. package/dist/sqlite-image.d.ts +27 -0
  69. package/dist/sqlite-image.js +83 -0
  70. package/dist/sqlite-lease-store.d.ts +21 -0
  71. package/dist/sqlite-lease-store.js +94 -0
  72. package/dist/sqlite-segment-store.d.ts +25 -0
  73. package/dist/sqlite-segment-store.js +115 -0
  74. package/dist/sqlite-storage.d.ts +47 -0
  75. package/dist/sqlite-storage.js +477 -0
  76. package/dist/storage.d.ts +252 -0
  77. package/dist/storage.js +1 -0
  78. package/dist/validate.d.ts +83 -0
  79. package/dist/validate.js +44 -0
  80. package/package.json +17 -325
  81. package/src/admin.ts +312 -0
  82. package/src/blob-handlers.ts +340 -0
  83. package/src/blob-store.ts +0 -0
  84. package/src/content-encoding.ts +94 -0
  85. package/src/context.ts +176 -0
  86. package/src/crdt-merger.ts +33 -0
  87. package/src/d1-storage.ts +0 -0
  88. package/src/errors.ts +241 -19
  89. package/src/events-ring.ts +116 -0
  90. package/src/events.ts +291 -0
  91. package/src/frame-bytes.ts +94 -0
  92. package/src/handler.ts +678 -0
  93. package/src/index.ts +44 -27
  94. package/src/lease-store.ts +0 -0
  95. package/src/pg-executor-pglite.ts +63 -0
  96. package/src/pg-executor.ts +87 -0
  97. package/src/postgres-fanout.ts +143 -0
  98. package/src/postgres-storage.ts +1182 -0
  99. package/src/prune.ts +63 -289
  100. package/src/pull.ts +505 -1805
  101. package/src/push.ts +623 -1006
  102. package/src/realtime.ts +1082 -0
  103. package/src/relational-rows.ts +633 -0
  104. package/src/s3-blob-store.ts +616 -0
  105. package/src/s3-segment-store.ts +519 -0
  106. package/src/schema.ts +242 -281
  107. package/src/scopes.ts +127 -0
  108. package/src/segment-download.ts +169 -0
  109. package/src/segment-store.ts +154 -0
  110. package/src/signed-url.ts +308 -0
  111. package/src/sigv4.ts +267 -0
  112. package/src/sqlite-blob-store.ts +125 -0
  113. package/src/sqlite-dialect.ts +337 -0
  114. package/src/sqlite-image.ts +124 -0
  115. package/src/sqlite-lease-store.ts +144 -0
  116. package/src/sqlite-segment-store.ts +204 -0
  117. package/src/sqlite-storage.ts +792 -0
  118. package/src/storage.ts +316 -0
  119. package/src/validate.ts +123 -0
  120. package/dist/auth-leases.d.ts +0 -85
  121. package/dist/auth-leases.d.ts.map +0 -1
  122. package/dist/auth-leases.js +0 -368
  123. package/dist/auth-leases.js.map +0 -1
  124. package/dist/better-sqlite3.d.ts +0 -22
  125. package/dist/better-sqlite3.d.ts.map +0 -1
  126. package/dist/better-sqlite3.js +0 -16
  127. package/dist/better-sqlite3.js.map +0 -1
  128. package/dist/blobs/access.d.ts +0 -35
  129. package/dist/blobs/access.d.ts.map +0 -1
  130. package/dist/blobs/access.js +0 -149
  131. package/dist/blobs/access.js.map +0 -1
  132. package/dist/blobs/adapters/database.d.ts +0 -100
  133. package/dist/blobs/adapters/database.d.ts.map +0 -1
  134. package/dist/blobs/adapters/database.js +0 -247
  135. package/dist/blobs/adapters/database.js.map +0 -1
  136. package/dist/blobs/index.d.ts +0 -9
  137. package/dist/blobs/index.d.ts.map +0 -1
  138. package/dist/blobs/index.js +0 -9
  139. package/dist/blobs/index.js.map +0 -1
  140. package/dist/blobs/manager.d.ts +0 -220
  141. package/dist/blobs/manager.d.ts.map +0 -1
  142. package/dist/blobs/manager.js +0 -625
  143. package/dist/blobs/manager.js.map +0 -1
  144. package/dist/blobs/migrate.d.ts +0 -27
  145. package/dist/blobs/migrate.d.ts.map +0 -1
  146. package/dist/blobs/migrate.js +0 -127
  147. package/dist/blobs/migrate.js.map +0 -1
  148. package/dist/blobs/types.d.ts +0 -58
  149. package/dist/blobs/types.d.ts.map +0 -1
  150. package/dist/blobs/types.js +0 -5
  151. package/dist/blobs/types.js.map +0 -1
  152. package/dist/bun-sqlite.d.ts +0 -19
  153. package/dist/bun-sqlite.d.ts.map +0 -1
  154. package/dist/bun-sqlite.js +0 -19
  155. package/dist/bun-sqlite.js.map +0 -1
  156. package/dist/clients.d.ts +0 -15
  157. package/dist/clients.d.ts.map +0 -1
  158. package/dist/clients.js +0 -7
  159. package/dist/clients.js.map +0 -1
  160. package/dist/cloudflare/durable-object.d.ts +0 -93
  161. package/dist/cloudflare/durable-object.d.ts.map +0 -1
  162. package/dist/cloudflare/durable-object.js +0 -210
  163. package/dist/cloudflare/durable-object.js.map +0 -1
  164. package/dist/cloudflare/index.d.ts +0 -22
  165. package/dist/cloudflare/index.d.ts.map +0 -1
  166. package/dist/cloudflare/index.js +0 -22
  167. package/dist/cloudflare/index.js.map +0 -1
  168. package/dist/cloudflare/r2.d.ts +0 -180
  169. package/dist/cloudflare/r2.d.ts.map +0 -1
  170. package/dist/cloudflare/r2.js +0 -258
  171. package/dist/cloudflare/r2.js.map +0 -1
  172. package/dist/cloudflare/scope-cache.d.ts +0 -54
  173. package/dist/cloudflare/scope-cache.d.ts.map +0 -1
  174. package/dist/cloudflare/scope-cache.js +0 -223
  175. package/dist/cloudflare/scope-cache.js.map +0 -1
  176. package/dist/cloudflare/sentry.d.ts +0 -47
  177. package/dist/cloudflare/sentry.d.ts.map +0 -1
  178. package/dist/cloudflare/sentry.js +0 -163
  179. package/dist/cloudflare/sentry.js.map +0 -1
  180. package/dist/cloudflare/worker.d.ts +0 -46
  181. package/dist/cloudflare/worker.d.ts.map +0 -1
  182. package/dist/cloudflare/worker.js +0 -63
  183. package/dist/cloudflare/worker.js.map +0 -1
  184. package/dist/commit-integrity.d.ts +0 -38
  185. package/dist/commit-integrity.d.ts.map +0 -1
  186. package/dist/commit-integrity.js +0 -260
  187. package/dist/commit-integrity.js.map +0 -1
  188. package/dist/compaction.d.ts +0 -27
  189. package/dist/compaction.d.ts.map +0 -1
  190. package/dist/compaction.js +0 -49
  191. package/dist/compaction.js.map +0 -1
  192. package/dist/crdt-yjs/index.d.ts +0 -99
  193. package/dist/crdt-yjs/index.d.ts.map +0 -1
  194. package/dist/crdt-yjs/index.js +0 -629
  195. package/dist/crdt-yjs/index.js.map +0 -1
  196. package/dist/d1.d.ts +0 -13
  197. package/dist/d1.d.ts.map +0 -1
  198. package/dist/d1.js +0 -14
  199. package/dist/d1.js.map +0 -1
  200. package/dist/dialect/base.d.ts +0 -93
  201. package/dist/dialect/base.d.ts.map +0 -1
  202. package/dist/dialect/base.js +0 -181
  203. package/dist/dialect/base.js.map +0 -1
  204. package/dist/dialect/helpers.d.ts +0 -16
  205. package/dist/dialect/helpers.d.ts.map +0 -1
  206. package/dist/dialect/helpers.js +0 -83
  207. package/dist/dialect/helpers.js.map +0 -1
  208. package/dist/dialect/index.d.ts +0 -7
  209. package/dist/dialect/index.d.ts.map +0 -1
  210. package/dist/dialect/index.js +0 -7
  211. package/dist/dialect/index.js.map +0 -1
  212. package/dist/dialect/types.d.ts +0 -187
  213. package/dist/dialect/types.d.ts.map +0 -1
  214. package/dist/dialect/types.js +0 -8
  215. package/dist/dialect/types.js.map +0 -1
  216. package/dist/encrypted-crdt.d.ts +0 -67
  217. package/dist/encrypted-crdt.d.ts.map +0 -1
  218. package/dist/encrypted-crdt.js +0 -426
  219. package/dist/encrypted-crdt.js.map +0 -1
  220. package/dist/errors.d.ts.map +0 -1
  221. package/dist/errors.js.map +0 -1
  222. package/dist/filesystem/index.d.ts +0 -44
  223. package/dist/filesystem/index.d.ts.map +0 -1
  224. package/dist/filesystem/index.js +0 -164
  225. package/dist/filesystem/index.js.map +0 -1
  226. package/dist/handlers/collection.d.ts +0 -20
  227. package/dist/handlers/collection.d.ts.map +0 -1
  228. package/dist/handlers/collection.js +0 -42
  229. package/dist/handlers/collection.js.map +0 -1
  230. package/dist/handlers/create-handler.d.ts +0 -156
  231. package/dist/handlers/create-handler.d.ts.map +0 -1
  232. package/dist/handlers/create-handler.js +0 -626
  233. package/dist/handlers/create-handler.js.map +0 -1
  234. package/dist/handlers/index.d.ts +0 -4
  235. package/dist/handlers/index.d.ts.map +0 -1
  236. package/dist/handlers/index.js +0 -4
  237. package/dist/handlers/index.js.map +0 -1
  238. package/dist/handlers/types.d.ts +0 -295
  239. package/dist/handlers/types.d.ts.map +0 -1
  240. package/dist/handlers/types.js +0 -2
  241. package/dist/handlers/types.js.map +0 -1
  242. package/dist/helpers/conflict.d.ts +0 -52
  243. package/dist/helpers/conflict.d.ts.map +0 -1
  244. package/dist/helpers/conflict.js +0 -49
  245. package/dist/helpers/conflict.js.map +0 -1
  246. package/dist/helpers/emitted-change.d.ts +0 -56
  247. package/dist/helpers/emitted-change.d.ts.map +0 -1
  248. package/dist/helpers/emitted-change.js +0 -46
  249. package/dist/helpers/emitted-change.js.map +0 -1
  250. package/dist/helpers/index.d.ts +0 -12
  251. package/dist/helpers/index.d.ts.map +0 -1
  252. package/dist/helpers/index.js +0 -12
  253. package/dist/helpers/index.js.map +0 -1
  254. package/dist/helpers/paginate.d.ts +0 -49
  255. package/dist/helpers/paginate.d.ts.map +0 -1
  256. package/dist/helpers/paginate.js +0 -54
  257. package/dist/helpers/paginate.js.map +0 -1
  258. package/dist/helpers/scope-authorization.d.ts +0 -7
  259. package/dist/helpers/scope-authorization.d.ts.map +0 -1
  260. package/dist/helpers/scope-authorization.js +0 -19
  261. package/dist/helpers/scope-authorization.js.map +0 -1
  262. package/dist/helpers/scope-commit-index.d.ts +0 -12
  263. package/dist/helpers/scope-commit-index.d.ts.map +0 -1
  264. package/dist/helpers/scope-commit-index.js +0 -35
  265. package/dist/helpers/scope-commit-index.js.map +0 -1
  266. package/dist/helpers/scope-strings.d.ts +0 -74
  267. package/dist/helpers/scope-strings.d.ts.map +0 -1
  268. package/dist/helpers/scope-strings.js +0 -82
  269. package/dist/helpers/scope-strings.js.map +0 -1
  270. package/dist/hono/api-key-auth.d.ts +0 -49
  271. package/dist/hono/api-key-auth.d.ts.map +0 -1
  272. package/dist/hono/api-key-auth.js +0 -108
  273. package/dist/hono/api-key-auth.js.map +0 -1
  274. package/dist/hono/audit-redaction.d.ts +0 -20
  275. package/dist/hono/audit-redaction.d.ts.map +0 -1
  276. package/dist/hono/audit-redaction.js +0 -85
  277. package/dist/hono/audit-redaction.js.map +0 -1
  278. package/dist/hono/blobs.d.ts +0 -75
  279. package/dist/hono/blobs.d.ts.map +0 -1
  280. package/dist/hono/blobs.js +0 -586
  281. package/dist/hono/blobs.js.map +0 -1
  282. package/dist/hono/console/gateway.d.ts +0 -42
  283. package/dist/hono/console/gateway.d.ts.map +0 -1
  284. package/dist/hono/console/gateway.js +0 -2158
  285. package/dist/hono/console/gateway.js.map +0 -1
  286. package/dist/hono/console/live-auth.d.ts +0 -7
  287. package/dist/hono/console/live-auth.d.ts.map +0 -1
  288. package/dist/hono/console/live-auth.js +0 -39
  289. package/dist/hono/console/live-auth.js.map +0 -1
  290. package/dist/hono/console/route-descriptor.d.ts +0 -6
  291. package/dist/hono/console/route-descriptor.d.ts.map +0 -1
  292. package/dist/hono/console/route-descriptor.js +0 -16
  293. package/dist/hono/console/route-descriptor.js.map +0 -1
  294. package/dist/hono/console/routes/api-keys.d.ts +0 -8
  295. package/dist/hono/console/routes/api-keys.d.ts.map +0 -1
  296. package/dist/hono/console/routes/api-keys.js +0 -575
  297. package/dist/hono/console/routes/api-keys.js.map +0 -1
  298. package/dist/hono/console/routes/clients.d.ts +0 -8
  299. package/dist/hono/console/routes/clients.d.ts.map +0 -1
  300. package/dist/hono/console/routes/clients.js +0 -322
  301. package/dist/hono/console/routes/clients.js.map +0 -1
  302. package/dist/hono/console/routes/commits.d.ts +0 -8
  303. package/dist/hono/console/routes/commits.d.ts.map +0 -1
  304. package/dist/hono/console/routes/commits.js +0 -882
  305. package/dist/hono/console/routes/commits.js.map +0 -1
  306. package/dist/hono/console/routes/context.d.ts +0 -188
  307. package/dist/hono/console/routes/context.d.ts.map +0 -1
  308. package/dist/hono/console/routes/context.js +0 -633
  309. package/dist/hono/console/routes/context.js.map +0 -1
  310. package/dist/hono/console/routes/events.d.ts +0 -8
  311. package/dist/hono/console/routes/events.d.ts.map +0 -1
  312. package/dist/hono/console/routes/events.js +0 -501
  313. package/dist/hono/console/routes/events.js.map +0 -1
  314. package/dist/hono/console/routes/maintenance.d.ts +0 -8
  315. package/dist/hono/console/routes/maintenance.d.ts.map +0 -1
  316. package/dist/hono/console/routes/maintenance.js +0 -341
  317. package/dist/hono/console/routes/maintenance.js.map +0 -1
  318. package/dist/hono/console/routes/shared.d.ts +0 -174
  319. package/dist/hono/console/routes/shared.d.ts.map +0 -1
  320. package/dist/hono/console/routes/shared.js +0 -583
  321. package/dist/hono/console/routes/shared.js.map +0 -1
  322. package/dist/hono/console/routes/stats.d.ts +0 -8
  323. package/dist/hono/console/routes/stats.d.ts.map +0 -1
  324. package/dist/hono/console/routes/stats.js +0 -295
  325. package/dist/hono/console/routes/stats.js.map +0 -1
  326. package/dist/hono/console/routes/storage.d.ts +0 -8
  327. package/dist/hono/console/routes/storage.d.ts.map +0 -1
  328. package/dist/hono/console/routes/storage.js +0 -121
  329. package/dist/hono/console/routes/storage.js.map +0 -1
  330. package/dist/hono/console/routes.d.ts +0 -36
  331. package/dist/hono/console/routes.d.ts.map +0 -1
  332. package/dist/hono/console/routes.js +0 -112
  333. package/dist/hono/console/routes.js.map +0 -1
  334. package/dist/hono/console/schema-errors.d.ts +0 -2
  335. package/dist/hono/console/schema-errors.d.ts.map +0 -1
  336. package/dist/hono/console/schema-errors.js +0 -17
  337. package/dist/hono/console/schema-errors.js.map +0 -1
  338. package/dist/hono/console/schemas.d.ts +0 -1515
  339. package/dist/hono/console/schemas.d.ts.map +0 -1
  340. package/dist/hono/console/schemas.js +0 -661
  341. package/dist/hono/console/schemas.js.map +0 -1
  342. package/dist/hono/console/types.d.ts +0 -213
  343. package/dist/hono/console/types.d.ts.map +0 -1
  344. package/dist/hono/console/types.js +0 -2
  345. package/dist/hono/console/types.js.map +0 -1
  346. package/dist/hono/console/ui.d.ts +0 -38
  347. package/dist/hono/console/ui.d.ts.map +0 -1
  348. package/dist/hono/console/ui.js +0 -43
  349. package/dist/hono/console/ui.js.map +0 -1
  350. package/dist/hono/create-server.d.ts +0 -71
  351. package/dist/hono/create-server.d.ts.map +0 -1
  352. package/dist/hono/create-server.js +0 -121
  353. package/dist/hono/create-server.js.map +0 -1
  354. package/dist/hono/errors.d.ts +0 -13
  355. package/dist/hono/errors.d.ts.map +0 -1
  356. package/dist/hono/errors.js +0 -21
  357. package/dist/hono/errors.js.map +0 -1
  358. package/dist/hono/index.d.ts +0 -20
  359. package/dist/hono/index.d.ts.map +0 -1
  360. package/dist/hono/index.js +0 -31
  361. package/dist/hono/index.js.map +0 -1
  362. package/dist/hono/openapi.d.ts +0 -72
  363. package/dist/hono/openapi.d.ts.map +0 -1
  364. package/dist/hono/openapi.js +0 -99
  365. package/dist/hono/openapi.js.map +0 -1
  366. package/dist/hono/proxy/connection-manager.d.ts +0 -78
  367. package/dist/hono/proxy/connection-manager.d.ts.map +0 -1
  368. package/dist/hono/proxy/connection-manager.js +0 -251
  369. package/dist/hono/proxy/connection-manager.js.map +0 -1
  370. package/dist/hono/proxy/index.d.ts +0 -8
  371. package/dist/hono/proxy/index.d.ts.map +0 -1
  372. package/dist/hono/proxy/index.js +0 -8
  373. package/dist/hono/proxy/index.js.map +0 -1
  374. package/dist/hono/proxy/routes.d.ts +0 -86
  375. package/dist/hono/proxy/routes.d.ts.map +0 -1
  376. package/dist/hono/proxy/routes.js +0 -183
  377. package/dist/hono/proxy/routes.js.map +0 -1
  378. package/dist/hono/rate-limit.d.ts +0 -101
  379. package/dist/hono/rate-limit.d.ts.map +0 -1
  380. package/dist/hono/rate-limit.js +0 -184
  381. package/dist/hono/rate-limit.js.map +0 -1
  382. package/dist/hono/realtime-sync-packs.d.ts +0 -43
  383. package/dist/hono/realtime-sync-packs.d.ts.map +0 -1
  384. package/dist/hono/realtime-sync-packs.js +0 -219
  385. package/dist/hono/realtime-sync-packs.js.map +0 -1
  386. package/dist/hono/routes/audit.d.ts +0 -12
  387. package/dist/hono/routes/audit.d.ts.map +0 -1
  388. package/dist/hono/routes/audit.js +0 -385
  389. package/dist/hono/routes/audit.js.map +0 -1
  390. package/dist/hono/routes/auth-leases.d.ts +0 -8
  391. package/dist/hono/routes/auth-leases.d.ts.map +0 -1
  392. package/dist/hono/routes/auth-leases.js +0 -88
  393. package/dist/hono/routes/auth-leases.js.map +0 -1
  394. package/dist/hono/routes/combined.d.ts +0 -8
  395. package/dist/hono/routes/combined.d.ts.map +0 -1
  396. package/dist/hono/routes/combined.js +0 -392
  397. package/dist/hono/routes/combined.js.map +0 -1
  398. package/dist/hono/routes/context.d.ts +0 -314
  399. package/dist/hono/routes/context.d.ts.map +0 -1
  400. package/dist/hono/routes/context.js +0 -1147
  401. package/dist/hono/routes/context.js.map +0 -1
  402. package/dist/hono/routes/health.d.ts +0 -8
  403. package/dist/hono/routes/health.d.ts.map +0 -1
  404. package/dist/hono/routes/health.js +0 -16
  405. package/dist/hono/routes/health.js.map +0 -1
  406. package/dist/hono/routes/realtime.d.ts +0 -9
  407. package/dist/hono/routes/realtime.d.ts.map +0 -1
  408. package/dist/hono/routes/realtime.js +0 -626
  409. package/dist/hono/routes/realtime.js.map +0 -1
  410. package/dist/hono/routes/shared.d.ts +0 -689
  411. package/dist/hono/routes/shared.d.ts.map +0 -1
  412. package/dist/hono/routes/shared.js +0 -972
  413. package/dist/hono/routes/shared.js.map +0 -1
  414. package/dist/hono/routes/snapshots.d.ts +0 -10
  415. package/dist/hono/routes/snapshots.d.ts.map +0 -1
  416. package/dist/hono/routes/snapshots.js +0 -281
  417. package/dist/hono/routes/snapshots.js.map +0 -1
  418. package/dist/hono/routes.d.ts +0 -19
  419. package/dist/hono/routes.d.ts.map +0 -1
  420. package/dist/hono/routes.js +0 -37
  421. package/dist/hono/routes.js.map +0 -1
  422. package/dist/hono/validation.d.ts +0 -5
  423. package/dist/hono/validation.d.ts.map +0 -1
  424. package/dist/hono/validation.js +0 -47
  425. package/dist/hono/validation.js.map +0 -1
  426. package/dist/hono/websocket-origin.d.ts +0 -9
  427. package/dist/hono/websocket-origin.d.ts.map +0 -1
  428. package/dist/hono/websocket-origin.js +0 -96
  429. package/dist/hono/websocket-origin.js.map +0 -1
  430. package/dist/hono/ws.d.ts +0 -341
  431. package/dist/hono/ws.d.ts.map +0 -1
  432. package/dist/hono/ws.js +0 -711
  433. package/dist/hono/ws.js.map +0 -1
  434. package/dist/index.d.ts.map +0 -1
  435. package/dist/index.js.map +0 -1
  436. package/dist/libsql.d.ts +0 -29
  437. package/dist/libsql.d.ts.map +0 -1
  438. package/dist/libsql.js +0 -25
  439. package/dist/libsql.js.map +0 -1
  440. package/dist/migrate.d.ts +0 -14
  441. package/dist/migrate.d.ts.map +0 -1
  442. package/dist/migrate.js +0 -13
  443. package/dist/migrate.js.map +0 -1
  444. package/dist/neon.d.ts +0 -21
  445. package/dist/neon.d.ts.map +0 -1
  446. package/dist/neon.js +0 -22
  447. package/dist/neon.js.map +0 -1
  448. package/dist/notify.d.ts +0 -77
  449. package/dist/notify.d.ts.map +0 -1
  450. package/dist/notify.js +0 -233
  451. package/dist/notify.js.map +0 -1
  452. package/dist/pglite.d.ts +0 -37
  453. package/dist/pglite.d.ts.map +0 -1
  454. package/dist/pglite.js +0 -37
  455. package/dist/pglite.js.map +0 -1
  456. package/dist/plugins/index.d.ts +0 -2
  457. package/dist/plugins/index.d.ts.map +0 -1
  458. package/dist/plugins/index.js +0 -2
  459. package/dist/plugins/index.js.map +0 -1
  460. package/dist/plugins/types.d.ts +0 -73
  461. package/dist/plugins/types.d.ts.map +0 -1
  462. package/dist/plugins/types.js +0 -30
  463. package/dist/plugins/types.js.map +0 -1
  464. package/dist/postgres/index.d.ts +0 -68
  465. package/dist/postgres/index.d.ts.map +0 -1
  466. package/dist/postgres/index.js +0 -924
  467. package/dist/postgres/index.js.map +0 -1
  468. package/dist/proxy/collection.d.ts +0 -7
  469. package/dist/proxy/collection.d.ts.map +0 -1
  470. package/dist/proxy/collection.js +0 -6
  471. package/dist/proxy/collection.js.map +0 -1
  472. package/dist/proxy/handler.d.ts +0 -42
  473. package/dist/proxy/handler.d.ts.map +0 -1
  474. package/dist/proxy/handler.js +0 -102
  475. package/dist/proxy/handler.js.map +0 -1
  476. package/dist/proxy/index.d.ts +0 -9
  477. package/dist/proxy/index.d.ts.map +0 -1
  478. package/dist/proxy/index.js +0 -14
  479. package/dist/proxy/index.js.map +0 -1
  480. package/dist/proxy/mutation-detector.d.ts +0 -35
  481. package/dist/proxy/mutation-detector.d.ts.map +0 -1
  482. package/dist/proxy/mutation-detector.js +0 -246
  483. package/dist/proxy/mutation-detector.js.map +0 -1
  484. package/dist/proxy/oplog.d.ts +0 -30
  485. package/dist/proxy/oplog.d.ts.map +0 -1
  486. package/dist/proxy/oplog.js +0 -137
  487. package/dist/proxy/oplog.js.map +0 -1
  488. package/dist/proxy/types.d.ts +0 -44
  489. package/dist/proxy/types.d.ts.map +0 -1
  490. package/dist/proxy/types.js +0 -7
  491. package/dist/proxy/types.js.map +0 -1
  492. package/dist/prune.d.ts.map +0 -1
  493. package/dist/prune.js.map +0 -1
  494. package/dist/pull.d.ts.map +0 -1
  495. package/dist/pull.js.map +0 -1
  496. package/dist/push.d.ts.map +0 -1
  497. package/dist/push.js.map +0 -1
  498. package/dist/realtime/in-memory.d.ts +0 -13
  499. package/dist/realtime/in-memory.d.ts.map +0 -1
  500. package/dist/realtime/in-memory.js +0 -28
  501. package/dist/realtime/in-memory.js.map +0 -1
  502. package/dist/realtime/index.d.ts +0 -4
  503. package/dist/realtime/index.d.ts.map +0 -1
  504. package/dist/realtime/index.js +0 -3
  505. package/dist/realtime/index.js.map +0 -1
  506. package/dist/realtime/types.d.ts +0 -62
  507. package/dist/realtime/types.d.ts.map +0 -1
  508. package/dist/realtime/types.js +0 -19
  509. package/dist/realtime/types.js.map +0 -1
  510. package/dist/relay/client-role/forward-engine.d.ts +0 -63
  511. package/dist/relay/client-role/forward-engine.d.ts.map +0 -1
  512. package/dist/relay/client-role/forward-engine.js +0 -267
  513. package/dist/relay/client-role/forward-engine.js.map +0 -1
  514. package/dist/relay/client-role/index.d.ts +0 -9
  515. package/dist/relay/client-role/index.d.ts.map +0 -1
  516. package/dist/relay/client-role/index.js +0 -9
  517. package/dist/relay/client-role/index.js.map +0 -1
  518. package/dist/relay/client-role/pull-engine.d.ts +0 -72
  519. package/dist/relay/client-role/pull-engine.d.ts.map +0 -1
  520. package/dist/relay/client-role/pull-engine.js +0 -249
  521. package/dist/relay/client-role/pull-engine.js.map +0 -1
  522. package/dist/relay/client-role/sequence-mapper.d.ts +0 -65
  523. package/dist/relay/client-role/sequence-mapper.d.ts.map +0 -1
  524. package/dist/relay/client-role/sequence-mapper.js +0 -161
  525. package/dist/relay/client-role/sequence-mapper.js.map +0 -1
  526. package/dist/relay/evaluation/relay-paths.d.ts +0 -41
  527. package/dist/relay/evaluation/relay-paths.d.ts.map +0 -1
  528. package/dist/relay/evaluation/relay-paths.js +0 -504
  529. package/dist/relay/evaluation/relay-paths.js.map +0 -1
  530. package/dist/relay/evaluation/rust-boundary.d.ts +0 -47
  531. package/dist/relay/evaluation/rust-boundary.d.ts.map +0 -1
  532. package/dist/relay/evaluation/rust-boundary.js +0 -220
  533. package/dist/relay/evaluation/rust-boundary.js.map +0 -1
  534. package/dist/relay/index.d.ts +0 -37
  535. package/dist/relay/index.d.ts.map +0 -1
  536. package/dist/relay/index.js +0 -44
  537. package/dist/relay/index.js.map +0 -1
  538. package/dist/relay/migrate.d.ts +0 -18
  539. package/dist/relay/migrate.d.ts.map +0 -1
  540. package/dist/relay/migrate.js +0 -99
  541. package/dist/relay/migrate.js.map +0 -1
  542. package/dist/relay/mode-manager.d.ts +0 -60
  543. package/dist/relay/mode-manager.d.ts.map +0 -1
  544. package/dist/relay/mode-manager.js +0 -114
  545. package/dist/relay/mode-manager.js.map +0 -1
  546. package/dist/relay/realtime.d.ts +0 -90
  547. package/dist/relay/realtime.d.ts.map +0 -1
  548. package/dist/relay/realtime.js +0 -147
  549. package/dist/relay/realtime.js.map +0 -1
  550. package/dist/relay/relay.d.ts +0 -190
  551. package/dist/relay/relay.d.ts.map +0 -1
  552. package/dist/relay/relay.js +0 -320
  553. package/dist/relay/relay.js.map +0 -1
  554. package/dist/relay/schema.d.ts +0 -158
  555. package/dist/relay/schema.d.ts.map +0 -1
  556. package/dist/relay/schema.js +0 -7
  557. package/dist/relay/schema.js.map +0 -1
  558. package/dist/relay/server-role/index.d.ts +0 -56
  559. package/dist/relay/server-role/index.d.ts.map +0 -1
  560. package/dist/relay/server-role/index.js +0 -193
  561. package/dist/relay/server-role/index.js.map +0 -1
  562. package/dist/relay/server-role/pull.d.ts +0 -27
  563. package/dist/relay/server-role/pull.d.ts.map +0 -1
  564. package/dist/relay/server-role/pull.js +0 -24
  565. package/dist/relay/server-role/pull.js.map +0 -1
  566. package/dist/relay/server-role/push.d.ts +0 -29
  567. package/dist/relay/server-role/push.d.ts.map +0 -1
  568. package/dist/relay/server-role/push.js +0 -122
  569. package/dist/relay/server-role/push.js.map +0 -1
  570. package/dist/s3/index.d.ts +0 -83
  571. package/dist/s3/index.d.ts.map +0 -1
  572. package/dist/s3/index.js +0 -223
  573. package/dist/s3/index.js.map +0 -1
  574. package/dist/schema.d.ts.map +0 -1
  575. package/dist/schema.js.map +0 -1
  576. package/dist/service-worker/index.d.ts +0 -114
  577. package/dist/service-worker/index.d.ts.map +0 -1
  578. package/dist/service-worker/index.js +0 -487
  579. package/dist/service-worker/index.js.map +0 -1
  580. package/dist/snapshot-artifacts/sqlite-bun.d.ts +0 -15
  581. package/dist/snapshot-artifacts/sqlite-bun.d.ts.map +0 -1
  582. package/dist/snapshot-artifacts/sqlite-bun.js +0 -128
  583. package/dist/snapshot-artifacts/sqlite-bun.js.map +0 -1
  584. package/dist/snapshot-artifacts.d.ts +0 -206
  585. package/dist/snapshot-artifacts.d.ts.map +0 -1
  586. package/dist/snapshot-artifacts.js +0 -545
  587. package/dist/snapshot-artifacts.js.map +0 -1
  588. package/dist/snapshot-chunks/db-metadata.d.ts +0 -56
  589. package/dist/snapshot-chunks/db-metadata.d.ts.map +0 -1
  590. package/dist/snapshot-chunks/db-metadata.js +0 -360
  591. package/dist/snapshot-chunks/db-metadata.js.map +0 -1
  592. package/dist/snapshot-chunks/index.d.ts +0 -8
  593. package/dist/snapshot-chunks/index.d.ts.map +0 -1
  594. package/dist/snapshot-chunks/index.js +0 -8
  595. package/dist/snapshot-chunks/index.js.map +0 -1
  596. package/dist/snapshot-chunks/types.d.ts +0 -80
  597. package/dist/snapshot-chunks/types.d.ts.map +0 -1
  598. package/dist/snapshot-chunks/types.js +0 -8
  599. package/dist/snapshot-chunks/types.js.map +0 -1
  600. package/dist/snapshot-chunks.d.ts +0 -90
  601. package/dist/snapshot-chunks.d.ts.map +0 -1
  602. package/dist/snapshot-chunks.js +0 -304
  603. package/dist/snapshot-chunks.js.map +0 -1
  604. package/dist/sqlite/index.d.ts +0 -53
  605. package/dist/sqlite/index.d.ts.map +0 -1
  606. package/dist/sqlite/index.js +0 -795
  607. package/dist/sqlite/index.js.map +0 -1
  608. package/dist/sqlite3.d.ts +0 -22
  609. package/dist/sqlite3.d.ts.map +0 -1
  610. package/dist/sqlite3.js +0 -99
  611. package/dist/sqlite3.js.map +0 -1
  612. package/dist/stats.d.ts +0 -28
  613. package/dist/stats.d.ts.map +0 -1
  614. package/dist/stats.js +0 -93
  615. package/dist/stats.js.map +0 -1
  616. package/dist/subscriptions/cache.d.ts +0 -58
  617. package/dist/subscriptions/cache.d.ts.map +0 -1
  618. package/dist/subscriptions/cache.js +0 -250
  619. package/dist/subscriptions/cache.js.map +0 -1
  620. package/dist/subscriptions/index.d.ts +0 -3
  621. package/dist/subscriptions/index.d.ts.map +0 -1
  622. package/dist/subscriptions/index.js +0 -3
  623. package/dist/subscriptions/index.js.map +0 -1
  624. package/dist/subscriptions/resolve.d.ts +0 -40
  625. package/dist/subscriptions/resolve.d.ts.map +0 -1
  626. package/dist/subscriptions/resolve.js +0 -275
  627. package/dist/subscriptions/resolve.js.map +0 -1
  628. package/dist/sync.d.ts +0 -24
  629. package/dist/sync.d.ts.map +0 -1
  630. package/dist/sync.js +0 -27
  631. package/dist/sync.js.map +0 -1
  632. package/src/auth-leases.ts +0 -649
  633. package/src/better-sqlite3.ts +0 -35
  634. package/src/blobs/access.ts +0 -244
  635. package/src/blobs/adapters/database.ts +0 -397
  636. package/src/blobs/index.ts +0 -9
  637. package/src/blobs/manager.ts +0 -901
  638. package/src/blobs/migrate.ts +0 -158
  639. package/src/blobs/types.ts +0 -74
  640. package/src/bun-sqlite-ambient.d.ts +0 -19
  641. package/src/bun-sqlite.ts +0 -27
  642. package/src/clients.ts +0 -22
  643. package/src/cloudflare/durable-object.ts +0 -289
  644. package/src/cloudflare/index.ts +0 -22
  645. package/src/cloudflare/r2.ts +0 -526
  646. package/src/cloudflare/scope-cache.ts +0 -341
  647. package/src/cloudflare/sentry.ts +0 -230
  648. package/src/cloudflare/worker.ts +0 -77
  649. package/src/commit-integrity.ts +0 -371
  650. package/src/compaction.ts +0 -77
  651. package/src/crdt-yjs/index.ts +0 -931
  652. package/src/d1.ts +0 -16
  653. package/src/dialect/base.ts +0 -360
  654. package/src/dialect/helpers.ts +0 -92
  655. package/src/dialect/index.ts +0 -7
  656. package/src/dialect/types.ts +0 -247
  657. package/src/encrypted-crdt.ts +0 -786
  658. package/src/filesystem/index.ts +0 -262
  659. package/src/handlers/collection.ts +0 -121
  660. package/src/handlers/create-handler.ts +0 -1134
  661. package/src/handlers/index.ts +0 -3
  662. package/src/handlers/types.ts +0 -403
  663. package/src/helpers/conflict.ts +0 -64
  664. package/src/helpers/emitted-change.ts +0 -69
  665. package/src/helpers/index.ts +0 -12
  666. package/src/helpers/paginate.ts +0 -82
  667. package/src/helpers/scope-authorization.ts +0 -27
  668. package/src/helpers/scope-commit-index.ts +0 -52
  669. package/src/helpers/scope-strings.ts +0 -101
  670. package/src/hono/api-key-auth.ts +0 -177
  671. package/src/hono/audit-redaction.ts +0 -135
  672. package/src/hono/blobs.ts +0 -851
  673. package/src/hono/console/gateway.ts +0 -3046
  674. package/src/hono/console/live-auth.ts +0 -46
  675. package/src/hono/console/route-descriptor.ts +0 -22
  676. package/src/hono/console/routes/api-keys.ts +0 -721
  677. package/src/hono/console/routes/clients.ts +0 -447
  678. package/src/hono/console/routes/commits.ts +0 -1137
  679. package/src/hono/console/routes/context.ts +0 -956
  680. package/src/hono/console/routes/events.ts +0 -669
  681. package/src/hono/console/routes/maintenance.ts +0 -461
  682. package/src/hono/console/routes/shared.ts +0 -816
  683. package/src/hono/console/routes/stats.ts +0 -392
  684. package/src/hono/console/routes/storage.ts +0 -159
  685. package/src/hono/console/routes.ts +0 -146
  686. package/src/hono/console/schema-errors.ts +0 -23
  687. package/src/hono/console/schemas.ts +0 -914
  688. package/src/hono/console/types.ts +0 -223
  689. package/src/hono/console/ui.ts +0 -100
  690. package/src/hono/create-server.ts +0 -230
  691. package/src/hono/errors.ts +0 -50
  692. package/src/hono/index.ts +0 -54
  693. package/src/hono/openapi.ts +0 -139
  694. package/src/hono/proxy/connection-manager.ts +0 -340
  695. package/src/hono/proxy/index.ts +0 -8
  696. package/src/hono/proxy/routes.ts +0 -272
  697. package/src/hono/rate-limit.ts +0 -319
  698. package/src/hono/realtime-sync-packs.ts +0 -354
  699. package/src/hono/routes/audit.ts +0 -499
  700. package/src/hono/routes/auth-leases.ts +0 -119
  701. package/src/hono/routes/combined.ts +0 -583
  702. package/src/hono/routes/context.ts +0 -1629
  703. package/src/hono/routes/health.ts +0 -26
  704. package/src/hono/routes/realtime.ts +0 -808
  705. package/src/hono/routes/shared.ts +0 -1626
  706. package/src/hono/routes/snapshots.ts +0 -345
  707. package/src/hono/routes.ts +0 -68
  708. package/src/hono/validation.ts +0 -81
  709. package/src/hono/websocket-origin.ts +0 -131
  710. package/src/hono/ws.ts +0 -1134
  711. package/src/libsql.ts +0 -51
  712. package/src/migrate.ts +0 -20
  713. package/src/neon.ts +0 -28
  714. package/src/notify.ts +0 -341
  715. package/src/pglite.ts +0 -68
  716. package/src/plugins/index.ts +0 -1
  717. package/src/plugins/types.ts +0 -144
  718. package/src/postgres/index.ts +0 -1291
  719. package/src/proxy/collection.ts +0 -17
  720. package/src/proxy/handler.ts +0 -159
  721. package/src/proxy/index.ts +0 -21
  722. package/src/proxy/mutation-detector.ts +0 -281
  723. package/src/proxy/oplog.ts +0 -181
  724. package/src/proxy/types.ts +0 -46
  725. package/src/realtime/in-memory.ts +0 -33
  726. package/src/realtime/index.ts +0 -7
  727. package/src/realtime/types.ts +0 -90
  728. package/src/relay/bun-types.d.ts +0 -50
  729. package/src/relay/client-role/forward-engine.ts +0 -355
  730. package/src/relay/client-role/index.ts +0 -9
  731. package/src/relay/client-role/pull-engine.ts +0 -329
  732. package/src/relay/client-role/sequence-mapper.ts +0 -201
  733. package/src/relay/evaluation/relay-paths.ts +0 -699
  734. package/src/relay/evaluation/rust-boundary.ts +0 -464
  735. package/src/relay/index.ts +0 -50
  736. package/src/relay/migrate.ts +0 -113
  737. package/src/relay/mode-manager.ts +0 -142
  738. package/src/relay/realtime.ts +0 -207
  739. package/src/relay/relay.ts +0 -431
  740. package/src/relay/schema.ts +0 -171
  741. package/src/relay/server-role/index.ts +0 -338
  742. package/src/relay/server-role/pull.ts +0 -43
  743. package/src/relay/server-role/push.ts +0 -164
  744. package/src/s3/index.ts +0 -346
  745. package/src/service-worker/index.ts +0 -773
  746. package/src/snapshot-artifacts/sqlite-bun.ts +0 -168
  747. package/src/snapshot-artifacts.ts +0 -896
  748. package/src/snapshot-chunks/db-metadata.ts +0 -537
  749. package/src/snapshot-chunks/index.ts +0 -8
  750. package/src/snapshot-chunks/types.ts +0 -105
  751. package/src/snapshot-chunks.ts +0 -453
  752. package/src/sqlite/index.ts +0 -1064
  753. package/src/sqlite3.ts +0 -137
  754. package/src/stats.ts +0 -180
  755. package/src/subscriptions/cache.ts +0 -376
  756. package/src/subscriptions/index.ts +0 -2
  757. package/src/subscriptions/resolve.ts +0 -357
  758. package/src/sync.ts +0 -111
@@ -1,626 +0,0 @@
1
- /**
2
- * @syncular/server - Declarative server handler helper
3
- */
4
- import { applyCodecsFromDbRow, applyCodecsToDbRow, createSingleVariableScopeMetadata, createTableColumnCodecsResolver, toTableColumnCodecs, } from '@syncular/core';
5
- import { sql } from 'kysely';
6
- import { coerceNumber } from '../dialect/helpers.js';
7
- import { rowScopesAllowed } from '../helpers/scope-authorization.js';
8
- function classifyConstraintViolationCode(_message) {
9
- return 'sync.constraint_violation';
10
- }
11
- function isConstraintViolationError(message) {
12
- const normalized = message.toLowerCase();
13
- return (normalized.includes('constraint') ||
14
- normalized.includes('not null') ||
15
- normalized.includes('foreign key') ||
16
- normalized.includes('unique'));
17
- }
18
- function isMissingColumnReferenceError(message) {
19
- const normalized = message.toLowerCase();
20
- return (normalized.includes('no such column') ||
21
- (normalized.includes('column') && normalized.includes('does not exist')));
22
- }
23
- function readSafeVersionColumn(row, versionColumn, defaultValue) {
24
- const value = row[versionColumn];
25
- if (value === null || value === undefined)
26
- return defaultValue;
27
- const version = coerceNumber(value);
28
- if (version === null || !Number.isSafeInteger(version)) {
29
- throw new Error(`Version column "${versionColumn}" must be a safe integer`);
30
- }
31
- return version;
32
- }
33
- function normalizeOutboundVersionColumn(row, versionColumn, version) {
34
- if (row === null || typeof row !== 'object' || Array.isArray(row)) {
35
- return row;
36
- }
37
- if (!Object.hasOwn(row, versionColumn)) {
38
- return row;
39
- }
40
- return {
41
- ...row,
42
- [versionColumn]: version,
43
- };
44
- }
45
- /**
46
- * Create a declarative server table handler with sensible defaults.
47
- *
48
- * @example
49
- * ```typescript
50
- * import { createServerHandler } from '@syncular/server';
51
- * import type { ServerDb } from '../db';
52
- * import type { ClientDb } from '../../shared/client-db.generated';
53
- *
54
- * export const tasksHandler = createServerHandler<ServerDb, ClientDb, 'tasks'>({
55
- * table: 'tasks',
56
- * scopes: ['user:{user_id}'], // column auto-derived from placeholder
57
- * resolveScopes: async (ctx) => ({
58
- * user_id: [ctx.actorId],
59
- * }),
60
- * });
61
- *
62
- * // With custom column mapping:
63
- * export const tasksHandler = createServerHandler<ServerDb, ClientDb, 'tasks'>({
64
- * table: 'tasks',
65
- * scopes: [{ pattern: 'user:{user_id}', column: 'owner_id' }],
66
- * resolveScopes: async (ctx) => ({
67
- * user_id: [ctx.actorId],
68
- * }),
69
- * });
70
- * ```
71
- */
72
- export function createServerHandler(options) {
73
- const { table, scopes: scopeDefs, primaryKey = 'id', versionColumn = 'server_version', dependsOn, snapshotChunkTtlMs, snapshotBinaryColumns, snapshotBinaryColumnsForVersion, snapshotBinaryEncoder, snapshotBinaryEncoderForVersion, resolveScopes, transformInbound, transformOutbound, codecs, codecDialect = 'sqlite', authorize, extractScopes: customExtractScopes, } = options;
74
- const resolveRowCodecs = createTableColumnCodecsResolver(codecs, {
75
- dialect: codecDialect,
76
- });
77
- const primaryKeyColumn = primaryKey;
78
- const qualifiedVersionRef = `${table}.${versionColumn}`;
79
- const resolveTableCodecs = (row) => resolveRowCodecs(table, row);
80
- const usePassthroughInbound = !transformInbound && codecs == null;
81
- const { scopePatterns, scopeColumnsByVariable: scopeColumns } = createSingleVariableScopeMetadata(scopeDefs);
82
- const scopeColumnEntries = Object.entries(scopeColumns);
83
- const requiredScopeKeys = Object.keys(scopeColumns);
84
- // Default extractScopes from scope columns
85
- const defaultExtractScopes = (row) => {
86
- const scopes = {};
87
- for (const [varName, columnName] of Object.entries(scopeColumns)) {
88
- const raw = row[columnName];
89
- if (raw === null || raw === undefined)
90
- continue;
91
- const value = String(raw);
92
- if (value.length > 0) {
93
- scopes[varName] = value;
94
- }
95
- }
96
- return scopes;
97
- };
98
- const extractScopesImpl = customExtractScopes ?? defaultExtractScopes;
99
- const resolveScopesImpl = async (ctx) => {
100
- const resolved = await resolveScopes(ctx);
101
- const normalized = {};
102
- for (const [scopeKey, scopeValue] of Object.entries(resolved)) {
103
- // null/undefined means "no access for this scope" and is skipped.
104
- if (scopeValue === null || scopeValue === undefined)
105
- continue;
106
- if (typeof scopeValue === 'string') {
107
- normalized[scopeKey] = scopeValue;
108
- continue;
109
- }
110
- if (Array.isArray(scopeValue)) {
111
- const invalidIndex = scopeValue.findIndex((entry) => typeof entry !== 'string');
112
- if (invalidIndex !== -1) {
113
- throw new Error(`resolveScopes() for table "${table}" returned a non-string entry ` +
114
- `(${typeof scopeValue[invalidIndex]}) at index ${invalidIndex} of scope "${scopeKey}". ` +
115
- 'Scope values must be strings or string arrays.');
116
- }
117
- normalized[scopeKey] = scopeValue;
118
- continue;
119
- }
120
- throw new Error(`resolveScopes() for table "${table}" returned an invalid value ` +
121
- `(${typeof scopeValue}) for scope "${scopeKey}". ` +
122
- 'Scope values must be strings or string arrays.');
123
- }
124
- return normalized;
125
- };
126
- const writeScopeCache = new WeakMap();
127
- const resolveWriteScopes = (ctx) => {
128
- const cached = writeScopeCache.get(ctx);
129
- if (cached)
130
- return cached;
131
- const loaded = resolveScopesImpl(ctx);
132
- writeScopeCache.set(ctx, loaded);
133
- return loaded;
134
- };
135
- const authorizeRowScopes = async (ctx, row) => {
136
- if (requiredScopeKeys.length === 0)
137
- return true;
138
- let allowedScopes;
139
- try {
140
- allowedScopes = await resolveWriteScopes(ctx);
141
- }
142
- catch (resolveErr) {
143
- console.error(`[resolveScopes] Failed for table ${table} during write authorization:`, resolveErr);
144
- return {
145
- error: 'Forbidden',
146
- code: 'sync.forbidden',
147
- retriable: false,
148
- };
149
- }
150
- const rowScopes = extractScopesImpl(row);
151
- if (rowScopesAllowed({
152
- rowScopes,
153
- allowedScopes,
154
- requiredScopeKeys,
155
- })) {
156
- return true;
157
- }
158
- return {
159
- error: 'Forbidden',
160
- code: 'sync.forbidden',
161
- retriable: false,
162
- };
163
- };
164
- const rejectionResult = (opIndex, rejection) => ({
165
- result: {
166
- opIndex,
167
- status: 'error',
168
- error: rejection.error,
169
- code: rejection.code,
170
- retriable: rejection.retriable ?? false,
171
- },
172
- emittedChanges: [],
173
- });
174
- const applyOutboundTransform = (row) => {
175
- if (transformOutbound) {
176
- return transformOutbound(row);
177
- }
178
- const recordRow = row;
179
- const transformed = applyCodecsFromDbRow(recordRow, resolveTableCodecs(recordRow), codecDialect);
180
- return transformed;
181
- };
182
- const applyInboundTransform = (row, schemaVersion) => {
183
- if (usePassthroughInbound) {
184
- return row;
185
- }
186
- if (transformInbound) {
187
- return transformInbound(row, {
188
- schemaVersion,
189
- });
190
- }
191
- const transformed = applyCodecsToDbRow(row, resolveTableCodecs(row), codecDialect);
192
- return transformed;
193
- };
194
- // Default snapshot implementation
195
- const defaultSnapshot = async (ctx, _params) => {
196
- const trx = ctx.db;
197
- const { ref } = trx.dynamic;
198
- const scopeValues = ctx.scopeValues;
199
- const pageSize = Math.max(1, ctx.limit);
200
- let q = trx.selectFrom(table);
201
- q = q.selectAll();
202
- for (const [varName, columnName] of scopeColumnEntries) {
203
- const values = scopeValues[varName];
204
- if (values === undefined)
205
- continue;
206
- const normalized = Array.isArray(values) ? values : [values];
207
- if (normalized.length === 0)
208
- continue;
209
- if (normalized.length === 1) {
210
- q = q.where(ref(columnName), '=', normalized[0]);
211
- }
212
- else {
213
- q = q.where(ref(columnName), 'in', normalized);
214
- }
215
- }
216
- if (ctx.cursor !== null) {
217
- q = q.where(ref(primaryKey), '>', ctx.cursor);
218
- }
219
- const rows = await q
220
- .orderBy(ref(primaryKey), 'asc')
221
- .limit(pageSize + 1)
222
- .execute();
223
- const hasMore = rows.length > pageSize;
224
- const pageRows = hasMore ? rows.slice(0, pageSize) : rows;
225
- const lastRow = pageRows[pageRows.length - 1];
226
- const nextCursor = hasMore
227
- ? lastRow?.[primaryKey]
228
- : null;
229
- let outputRows;
230
- if (transformOutbound) {
231
- outputRows = pageRows.map((r) => applyOutboundTransform(r));
232
- }
233
- else {
234
- const firstRow = pageRows[0];
235
- const tableCodecs = firstRow
236
- ? toTableColumnCodecs(table, codecs, Object.keys(firstRow), {
237
- dialect: codecDialect,
238
- })
239
- : {};
240
- if (Object.keys(tableCodecs).length === 0) {
241
- outputRows = pageRows;
242
- }
243
- else {
244
- outputRows = pageRows.map((r) => applyCodecsFromDbRow(r, tableCodecs, codecDialect));
245
- }
246
- }
247
- return {
248
- rows: outputRows,
249
- nextCursor: typeof nextCursor === 'string' && nextCursor.length > 0
250
- ? nextCursor
251
- : null,
252
- };
253
- };
254
- // Default applyOperation implementation
255
- const defaultApplyOperation = async (ctx, op, opIndex) => {
256
- const trx = ctx.trx;
257
- const { ref } = trx.dynamic;
258
- if (op.table !== table) {
259
- return {
260
- result: {
261
- opIndex,
262
- status: 'error',
263
- error: `Unknown table: ${op.table}`,
264
- code: 'sync.unknown_table',
265
- retriable: false,
266
- },
267
- emittedChanges: [],
268
- };
269
- }
270
- // Run authorization if provided
271
- if (authorize) {
272
- const authResult = await authorize(ctx, op);
273
- if (authResult !== true) {
274
- return {
275
- result: {
276
- opIndex,
277
- status: 'error',
278
- error: authResult.error,
279
- code: authResult.code,
280
- retriable: authResult.retriable ?? false,
281
- },
282
- emittedChanges: [],
283
- };
284
- }
285
- }
286
- // Handle delete
287
- if (op.op === 'delete') {
288
- const existingRow = (await trx.selectFrom(table).selectAll()
289
- .where(ref(primaryKey), '=', op.row_id)
290
- .executeTakeFirst());
291
- if (!existingRow) {
292
- return { result: { opIndex, status: 'applied' }, emittedChanges: [] };
293
- }
294
- const scopeAuth = await authorizeRowScopes(ctx, existingRow);
295
- if (scopeAuth !== true) {
296
- return rejectionResult(opIndex, scopeAuth);
297
- }
298
- const deleted = await trx.deleteFrom(table)
299
- .where(ref(primaryKey), '=', op.row_id)
300
- .returningAll()
301
- .executeTakeFirst();
302
- const deletedRow = deleted;
303
- if (!deletedRow)
304
- return { result: { opIndex, status: 'applied' }, emittedChanges: [] };
305
- // Extract scopes from existing row for the delete emission
306
- const scopes = extractScopesImpl(deletedRow);
307
- const emitted = {
308
- table,
309
- row_id: op.row_id,
310
- op: 'delete',
311
- row_json: null,
312
- row_version: null,
313
- scopes,
314
- };
315
- return {
316
- result: { opIndex, status: 'applied' },
317
- emittedChanges: [emitted],
318
- };
319
- }
320
- // Handle upsert
321
- const rawPayload = op.payload ?? {};
322
- const payloadRecord = rawPayload !== null && typeof rawPayload === 'object'
323
- ? rawPayload
324
- : {};
325
- const payload = applyInboundTransform(payloadRecord, ctx.schemaVersion);
326
- const rowForInsertScopeCheck = {
327
- ...payload,
328
- [primaryKey]: op.row_id,
329
- [versionColumn]: 1,
330
- };
331
- const existingRowBeforeWrite = (await trx.selectFrom(table).selectAll()
332
- .where(ref(primaryKey), '=', op.row_id)
333
- .executeTakeFirst());
334
- const rowScopeAuth = await authorizeRowScopes(ctx, existingRowBeforeWrite ?? rowForInsertScopeCheck);
335
- if (rowScopeAuth !== true) {
336
- return rejectionResult(opIndex, rowScopeAuth);
337
- }
338
- let updated;
339
- let constraintError = null;
340
- try {
341
- if (op.base_version != null) {
342
- const expectedVersion = op.base_version;
343
- const conditionalUpdateSet = {
344
- ...payload,
345
- [versionColumn]: expectedVersion + 1,
346
- };
347
- delete conditionalUpdateSet[primaryKey];
348
- for (const col of Object.values(scopeColumns)) {
349
- delete conditionalUpdateSet[col];
350
- }
351
- updated = (await trx.updateTable(table)
352
- .set(conditionalUpdateSet)
353
- .where(ref(primaryKey), '=', op.row_id)
354
- .where(ref(versionColumn), '=', expectedVersion)
355
- .returningAll()
356
- .executeTakeFirst());
357
- if (!updated) {
358
- let conflictRow = await trx.selectFrom(table).selectAll()
359
- .where(ref(primaryKey), '=', op.row_id)
360
- .executeTakeFirst();
361
- if (!conflictRow && expectedVersion === 0) {
362
- const insertValues = {
363
- ...payload,
364
- [primaryKey]: op.row_id,
365
- [versionColumn]: 1,
366
- };
367
- try {
368
- updated = (await trx.insertInto(table)
369
- .values(insertValues)
370
- .returningAll()
371
- .executeTakeFirst());
372
- }
373
- catch (err) {
374
- const message = err instanceof Error ? err.message : String(err);
375
- if (!isConstraintViolationError(message)) {
376
- throw err;
377
- }
378
- conflictRow = await trx.selectFrom(table).selectAll()
379
- .where(ref(primaryKey), '=', op.row_id)
380
- .executeTakeFirst();
381
- }
382
- }
383
- if (!updated && !conflictRow) {
384
- return {
385
- result: {
386
- opIndex,
387
- status: 'error',
388
- error: 'Row not found for base version',
389
- code: 'sync.row_missing',
390
- retriable: false,
391
- },
392
- emittedChanges: [],
393
- };
394
- }
395
- if (!updated && conflictRow) {
396
- const conflictScopeAuth = await authorizeRowScopes(ctx, conflictRow);
397
- if (conflictScopeAuth !== true) {
398
- return rejectionResult(opIndex, conflictScopeAuth);
399
- }
400
- const existingVersion = readSafeVersionColumn(conflictRow, versionColumn, 0);
401
- return {
402
- result: {
403
- opIndex,
404
- status: 'conflict',
405
- message: `Version conflict: server=${existingVersion}, base=${expectedVersion}`,
406
- code: 'sync.version_conflict',
407
- server_version: existingVersion,
408
- server_row: normalizeOutboundVersionColumn(applyOutboundTransform(conflictRow), versionColumn, existingVersion),
409
- },
410
- emittedChanges: [],
411
- };
412
- }
413
- }
414
- }
415
- else {
416
- const updateSet = {
417
- ...payload,
418
- [versionColumn]: sql `${sql.ref(qualifiedVersionRef)} + 1`,
419
- };
420
- delete updateSet[primaryKey];
421
- for (const col of Object.values(scopeColumns)) {
422
- delete updateSet[col];
423
- }
424
- const insertValues = {
425
- ...payload,
426
- [primaryKey]: op.row_id,
427
- [versionColumn]: 1,
428
- };
429
- updated = (await trx.insertInto(table)
430
- .values(insertValues)
431
- .onConflict((oc) => oc
432
- .column(primaryKeyColumn)
433
- .doUpdateSet(updateSet))
434
- .returningAll()
435
- .executeTakeFirst());
436
- }
437
- }
438
- catch (err) {
439
- const message = err instanceof Error ? err.message : String(err);
440
- if (op.base_version != null && isMissingColumnReferenceError(message)) {
441
- const row = await trx.selectFrom(table).selectAll()
442
- .where(ref(primaryKey), '=', op.row_id)
443
- .executeTakeFirst();
444
- if (!row) {
445
- return {
446
- result: {
447
- opIndex,
448
- status: 'error',
449
- error: 'Row not found for base version',
450
- code: 'sync.row_missing',
451
- retriable: false,
452
- },
453
- emittedChanges: [],
454
- };
455
- }
456
- }
457
- if (!isConstraintViolationError(message)) {
458
- throw err;
459
- }
460
- constraintError = {
461
- message,
462
- code: classifyConstraintViolationCode(message),
463
- };
464
- }
465
- if (constraintError) {
466
- return {
467
- result: {
468
- opIndex,
469
- status: 'error',
470
- error: constraintError.message,
471
- code: constraintError.code,
472
- retriable: false,
473
- },
474
- emittedChanges: [],
475
- };
476
- }
477
- if (!updated) {
478
- throw new Error('Updated row is missing after applyOperation');
479
- }
480
- const updatedRow = updated;
481
- const rowVersion = readSafeVersionColumn(updatedRow, versionColumn, 1);
482
- // Extract scopes from updated row
483
- const scopes = extractScopesImpl(updatedRow);
484
- // Transform outbound for emitted change
485
- const rowJson = normalizeOutboundVersionColumn(applyOutboundTransform(updated), versionColumn, rowVersion);
486
- const emitted = {
487
- table,
488
- row_id: op.row_id,
489
- op: 'upsert',
490
- row_json: rowJson,
491
- row_version: rowVersion,
492
- scopes,
493
- };
494
- return {
495
- result: { opIndex, status: 'applied' },
496
- emittedChanges: [emitted],
497
- };
498
- };
499
- const defaultApplyOperationBatch = async (ctx, operations) => {
500
- if (operations.length === 0)
501
- return [];
502
- const runSequentialFallback = async () => {
503
- const sequential = [];
504
- for (const entry of operations) {
505
- const applied = await defaultApplyOperation(ctx, entry.op, entry.opIndex);
506
- sequential.push(applied);
507
- if (applied.result.status !== 'applied') {
508
- break;
509
- }
510
- }
511
- return sequential;
512
- };
513
- if (operations.length === 1 || authorize || requiredScopeKeys.length > 0) {
514
- return runSequentialFallback();
515
- }
516
- const trx = ctx.trx;
517
- const prepared = [];
518
- const seenRowIds = new Set();
519
- const payloadKeySignatures = new Set();
520
- for (const entry of operations) {
521
- const op = entry.op;
522
- if (op.table !== table || op.op !== 'upsert' || op.base_version != null) {
523
- return runSequentialFallback();
524
- }
525
- if (seenRowIds.has(op.row_id)) {
526
- return runSequentialFallback();
527
- }
528
- seenRowIds.add(op.row_id);
529
- const rawPayload = op.payload ?? {};
530
- const payloadRecord = rawPayload !== null && typeof rawPayload === 'object'
531
- ? rawPayload
532
- : {};
533
- const payload = applyInboundTransform(payloadRecord, ctx.schemaVersion);
534
- payloadKeySignatures.add(Object.keys(payload).sort().join('\u0000'));
535
- const insertValues = {
536
- ...payload,
537
- [primaryKey]: op.row_id,
538
- [versionColumn]: 1,
539
- };
540
- prepared.push({
541
- entry,
542
- payload,
543
- insertValues,
544
- });
545
- }
546
- if (prepared.length <= 1 || payloadKeySignatures.size !== 1) {
547
- return runSequentialFallback();
548
- }
549
- const basePayload = prepared[0].payload;
550
- const updateSet = {
551
- ...basePayload,
552
- [versionColumn]: sql `${sql.ref(qualifiedVersionRef)} + 1`,
553
- };
554
- delete updateSet[primaryKey];
555
- for (const col of Object.values(scopeColumns)) {
556
- delete updateSet[col];
557
- }
558
- try {
559
- const updatedRows = (await trx.insertInto(table)
560
- .values(prepared.map((item) => item.insertValues))
561
- .onConflict((oc) => oc.column(primaryKeyColumn).doUpdateSet(updateSet))
562
- .returningAll()
563
- .execute());
564
- const updatedById = new Map();
565
- for (const row of updatedRows) {
566
- const rowIdValue = row[primaryKey];
567
- if (rowIdValue === null || rowIdValue === undefined)
568
- continue;
569
- updatedById.set(String(rowIdValue), row);
570
- }
571
- const results = [];
572
- for (const item of prepared) {
573
- const rowId = item.entry.op.row_id;
574
- const updated = updatedById.get(rowId);
575
- if (!updated) {
576
- return runSequentialFallback();
577
- }
578
- const rowVersion = readSafeVersionColumn(updated, versionColumn, 1);
579
- const scopes = extractScopesImpl(updated);
580
- const rowJson = normalizeOutboundVersionColumn(applyOutboundTransform(updated), versionColumn, rowVersion);
581
- results.push({
582
- result: { opIndex: item.entry.opIndex, status: 'applied' },
583
- emittedChanges: [
584
- {
585
- table,
586
- row_id: rowId,
587
- op: 'upsert',
588
- row_json: rowJson,
589
- row_version: rowVersion,
590
- scopes,
591
- },
592
- ],
593
- });
594
- }
595
- return results;
596
- }
597
- catch (err) {
598
- const message = err instanceof Error ? err.message : String(err);
599
- if (isConstraintViolationError(message)) {
600
- return runSequentialFallback();
601
- }
602
- throw err;
603
- }
604
- };
605
- return {
606
- table,
607
- primaryKeyColumn,
608
- scopePatterns,
609
- dependsOn,
610
- snapshotChunkTtlMs,
611
- snapshotBinaryColumns,
612
- snapshotBinaryColumnsForVersion,
613
- snapshotBinaryEncoder: snapshotBinaryEncoder,
614
- snapshotBinaryEncoderForVersion: snapshotBinaryEncoderForVersion,
615
- canRejectSingleOperationWithoutSavepoint: options.canRejectSingleOperationWithoutSavepoint ??
616
- options.applyOperation === undefined,
617
- resolveScopes: resolveScopesImpl,
618
- extractScopes: extractScopesImpl,
619
- snapshot: options.snapshot ?? defaultSnapshot,
620
- applyOperation: options.applyOperation ?? defaultApplyOperation,
621
- applyOperationBatch: options.applyOperation === undefined
622
- ? defaultApplyOperationBatch
623
- : undefined,
624
- };
625
- }
626
- //# sourceMappingURL=create-handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-handler.js","sourceRoot":"","sources":["../../src/handlers/create-handler.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export * from './collection';
2
- export * from './create-handler';
3
- export * from './types';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC"}
@@ -1,4 +0,0 @@
1
- export * from './collection.js';
2
- export * from './create-handler.js';
3
- export * from './types.js';
4
- //# sourceMappingURL=index.js.map