anchordb 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 (438) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/LICENSE +21 -0
  3. package/README.md +160 -0
  4. package/dist/cjs/conflict/strategies.d.ts +110 -0
  5. package/dist/cjs/conflict/strategies.d.ts.map +1 -0
  6. package/dist/cjs/conflict/strategies.js +298 -0
  7. package/dist/cjs/conflict/strategies.js.map +1 -0
  8. package/dist/cjs/conflict/types.d.ts +38 -0
  9. package/dist/cjs/conflict/types.d.ts.map +1 -0
  10. package/dist/cjs/conflict/types.js +3 -0
  11. package/dist/cjs/conflict/types.js.map +1 -0
  12. package/dist/cjs/core/anchor-db.d.ts +154 -0
  13. package/dist/cjs/core/anchor-db.d.ts.map +1 -0
  14. package/dist/cjs/core/anchor-db.js +273 -0
  15. package/dist/cjs/core/anchor-db.js.map +1 -0
  16. package/dist/cjs/core/errors.d.ts +125 -0
  17. package/dist/cjs/core/errors.d.ts.map +1 -0
  18. package/dist/cjs/core/errors.js +174 -0
  19. package/dist/cjs/core/errors.js.map +1 -0
  20. package/dist/cjs/core/hex.d.ts +4 -0
  21. package/dist/cjs/core/hex.d.ts.map +1 -0
  22. package/dist/cjs/core/hex.js +41 -0
  23. package/dist/cjs/core/hex.js.map +1 -0
  24. package/dist/cjs/core/hlc.d.ts +96 -0
  25. package/dist/cjs/core/hlc.d.ts.map +1 -0
  26. package/dist/cjs/core/hlc.js +161 -0
  27. package/dist/cjs/core/hlc.js.map +1 -0
  28. package/dist/cjs/core/object-id.d.ts +38 -0
  29. package/dist/cjs/core/object-id.d.ts.map +1 -0
  30. package/dist/cjs/core/object-id.js +167 -0
  31. package/dist/cjs/core/object-id.js.map +1 -0
  32. package/dist/cjs/core/random.d.ts +6 -0
  33. package/dist/cjs/core/random.d.ts.map +1 -0
  34. package/dist/cjs/core/random.js +39 -0
  35. package/dist/cjs/core/random.js.map +1 -0
  36. package/dist/cjs/core/runtime.d.ts +96 -0
  37. package/dist/cjs/core/runtime.d.ts.map +1 -0
  38. package/dist/cjs/core/runtime.js +3 -0
  39. package/dist/cjs/core/runtime.js.map +1 -0
  40. package/dist/cjs/core/uuid.d.ts +16 -0
  41. package/dist/cjs/core/uuid.d.ts.map +1 -0
  42. package/dist/cjs/core/uuid.js +37 -0
  43. package/dist/cjs/core/uuid.js.map +1 -0
  44. package/dist/cjs/decorators/index.d.ts +48 -0
  45. package/dist/cjs/decorators/index.d.ts.map +1 -0
  46. package/dist/cjs/decorators/index.js +295 -0
  47. package/dist/cjs/decorators/index.js.map +1 -0
  48. package/dist/cjs/events/emitter.d.ts +16 -0
  49. package/dist/cjs/events/emitter.d.ts.map +1 -0
  50. package/dist/cjs/events/emitter.js +56 -0
  51. package/dist/cjs/events/emitter.js.map +1 -0
  52. package/dist/cjs/index/keys.d.ts +79 -0
  53. package/dist/cjs/index/keys.d.ts.map +1 -0
  54. package/dist/cjs/index/keys.js +208 -0
  55. package/dist/cjs/index/keys.js.map +1 -0
  56. package/dist/cjs/index.d.ts +81 -0
  57. package/dist/cjs/index.d.ts.map +1 -0
  58. package/dist/cjs/index.js +193 -0
  59. package/dist/cjs/index.js.map +1 -0
  60. package/dist/cjs/inspector/agent.d.ts +75 -0
  61. package/dist/cjs/inspector/agent.d.ts.map +1 -0
  62. package/dist/cjs/inspector/agent.js +520 -0
  63. package/dist/cjs/inspector/agent.js.map +1 -0
  64. package/dist/cjs/inspector/auth.d.ts +49 -0
  65. package/dist/cjs/inspector/auth.d.ts.map +1 -0
  66. package/dist/cjs/inspector/auth.js +234 -0
  67. package/dist/cjs/inspector/auth.js.map +1 -0
  68. package/dist/cjs/inspector/bridge.d.ts +141 -0
  69. package/dist/cjs/inspector/bridge.d.ts.map +1 -0
  70. package/dist/cjs/inspector/bridge.js +190 -0
  71. package/dist/cjs/inspector/bridge.js.map +1 -0
  72. package/dist/cjs/inspector/client.d.ts +111 -0
  73. package/dist/cjs/inspector/client.d.ts.map +1 -0
  74. package/dist/cjs/inspector/client.js +218 -0
  75. package/dist/cjs/inspector/client.js.map +1 -0
  76. package/dist/cjs/inspector/protocol.d.ts +160 -0
  77. package/dist/cjs/inspector/protocol.d.ts.map +1 -0
  78. package/dist/cjs/inspector/protocol.js +53 -0
  79. package/dist/cjs/inspector/protocol.js.map +1 -0
  80. package/dist/cjs/inspector/transports/in-process.d.ts +7 -0
  81. package/dist/cjs/inspector/transports/in-process.d.ts.map +1 -0
  82. package/dist/cjs/inspector/transports/in-process.js +58 -0
  83. package/dist/cjs/inspector/transports/in-process.js.map +1 -0
  84. package/dist/cjs/inspector/transports/websocket.d.ts +39 -0
  85. package/dist/cjs/inspector/transports/websocket.d.ts.map +1 -0
  86. package/dist/cjs/inspector/transports/websocket.js +60 -0
  87. package/dist/cjs/inspector/transports/websocket.js.map +1 -0
  88. package/dist/cjs/interop/csv.d.ts +53 -0
  89. package/dist/cjs/interop/csv.d.ts.map +1 -0
  90. package/dist/cjs/interop/csv.js +230 -0
  91. package/dist/cjs/interop/csv.js.map +1 -0
  92. package/dist/cjs/interop/ejson.d.ts +41 -0
  93. package/dist/cjs/interop/ejson.d.ts.map +1 -0
  94. package/dist/cjs/interop/ejson.js +182 -0
  95. package/dist/cjs/interop/ejson.js.map +1 -0
  96. package/dist/cjs/interop/export-import.d.ts +98 -0
  97. package/dist/cjs/interop/export-import.d.ts.map +1 -0
  98. package/dist/cjs/interop/export-import.js +222 -0
  99. package/dist/cjs/interop/export-import.js.map +1 -0
  100. package/dist/cjs/model/document.d.ts +66 -0
  101. package/dist/cjs/model/document.d.ts.map +1 -0
  102. package/dist/cjs/model/document.js +302 -0
  103. package/dist/cjs/model/document.js.map +1 -0
  104. package/dist/cjs/model/model.d.ts +178 -0
  105. package/dist/cjs/model/model.d.ts.map +1 -0
  106. package/dist/cjs/model/model.js +823 -0
  107. package/dist/cjs/model/model.js.map +1 -0
  108. package/dist/cjs/package.json +3 -0
  109. package/dist/cjs/query/aggregation/expressions.d.ts +34 -0
  110. package/dist/cjs/query/aggregation/expressions.d.ts.map +1 -0
  111. package/dist/cjs/query/aggregation/expressions.js +552 -0
  112. package/dist/cjs/query/aggregation/expressions.js.map +1 -0
  113. package/dist/cjs/query/aggregation/pipeline.d.ts +79 -0
  114. package/dist/cjs/query/aggregation/pipeline.d.ts.map +1 -0
  115. package/dist/cjs/query/aggregation/pipeline.js +597 -0
  116. package/dist/cjs/query/aggregation/pipeline.js.map +1 -0
  117. package/dist/cjs/query/aggregation/source.d.ts +35 -0
  118. package/dist/cjs/query/aggregation/source.d.ts.map +1 -0
  119. package/dist/cjs/query/aggregation/source.js +81 -0
  120. package/dist/cjs/query/aggregation/source.js.map +1 -0
  121. package/dist/cjs/query/builder/query.d.ts +113 -0
  122. package/dist/cjs/query/builder/query.d.ts.map +1 -0
  123. package/dist/cjs/query/builder/query.js +215 -0
  124. package/dist/cjs/query/builder/query.js.map +1 -0
  125. package/dist/cjs/query/filter.d.ts +50 -0
  126. package/dist/cjs/query/filter.d.ts.map +1 -0
  127. package/dist/cjs/query/filter.js +275 -0
  128. package/dist/cjs/query/filter.js.map +1 -0
  129. package/dist/cjs/query/path.d.ts +41 -0
  130. package/dist/cjs/query/path.d.ts.map +1 -0
  131. package/dist/cjs/query/path.js +294 -0
  132. package/dist/cjs/query/path.js.map +1 -0
  133. package/dist/cjs/query/update.d.ts +30 -0
  134. package/dist/cjs/query/update.d.ts.map +1 -0
  135. package/dist/cjs/query/update.js +205 -0
  136. package/dist/cjs/query/update.js.map +1 -0
  137. package/dist/cjs/reactive/live-query.d.ts +41 -0
  138. package/dist/cjs/reactive/live-query.d.ts.map +1 -0
  139. package/dist/cjs/reactive/live-query.js +88 -0
  140. package/dist/cjs/reactive/live-query.js.map +1 -0
  141. package/dist/cjs/schema/cast.d.ts +38 -0
  142. package/dist/cjs/schema/cast.d.ts.map +1 -0
  143. package/dist/cjs/schema/cast.js +280 -0
  144. package/dist/cjs/schema/cast.js.map +1 -0
  145. package/dist/cjs/schema/index.d.ts +5 -0
  146. package/dist/cjs/schema/index.d.ts.map +1 -0
  147. package/dist/cjs/schema/index.js +27 -0
  148. package/dist/cjs/schema/index.js.map +1 -0
  149. package/dist/cjs/schema/schema.d.ts +58 -0
  150. package/dist/cjs/schema/schema.d.ts.map +1 -0
  151. package/dist/cjs/schema/schema.js +363 -0
  152. package/dist/cjs/schema/schema.js.map +1 -0
  153. package/dist/cjs/schema/types.d.ts +144 -0
  154. package/dist/cjs/schema/types.d.ts.map +1 -0
  155. package/dist/cjs/schema/types.js +20 -0
  156. package/dist/cjs/schema/types.js.map +1 -0
  157. package/dist/cjs/schema/validate.d.ts +15 -0
  158. package/dist/cjs/schema/validate.d.ts.map +1 -0
  159. package/dist/cjs/schema/validate.js +101 -0
  160. package/dist/cjs/schema/validate.js.map +1 -0
  161. package/dist/cjs/storage/adapters/capacitor-sqlite.d.ts +67 -0
  162. package/dist/cjs/storage/adapters/capacitor-sqlite.d.ts.map +1 -0
  163. package/dist/cjs/storage/adapters/capacitor-sqlite.js +69 -0
  164. package/dist/cjs/storage/adapters/capacitor-sqlite.js.map +1 -0
  165. package/dist/cjs/storage/adapters/expo-sqlite.d.ts +55 -0
  166. package/dist/cjs/storage/adapters/expo-sqlite.d.ts.map +1 -0
  167. package/dist/cjs/storage/adapters/expo-sqlite.js +53 -0
  168. package/dist/cjs/storage/adapters/expo-sqlite.js.map +1 -0
  169. package/dist/cjs/storage/adapters/indexeddb.d.ts +55 -0
  170. package/dist/cjs/storage/adapters/indexeddb.d.ts.map +1 -0
  171. package/dist/cjs/storage/adapters/indexeddb.js +393 -0
  172. package/dist/cjs/storage/adapters/indexeddb.js.map +1 -0
  173. package/dist/cjs/storage/adapters/memory.d.ts +44 -0
  174. package/dist/cjs/storage/adapters/memory.d.ts.map +1 -0
  175. package/dist/cjs/storage/adapters/memory.js +286 -0
  176. package/dist/cjs/storage/adapters/memory.js.map +1 -0
  177. package/dist/cjs/storage/adapters/node-sqlite.d.ts +59 -0
  178. package/dist/cjs/storage/adapters/node-sqlite.d.ts.map +1 -0
  179. package/dist/cjs/storage/adapters/node-sqlite.js +457 -0
  180. package/dist/cjs/storage/adapters/node-sqlite.js.map +1 -0
  181. package/dist/cjs/storage/adapters/sql-base.d.ts +84 -0
  182. package/dist/cjs/storage/adapters/sql-base.d.ts.map +1 -0
  183. package/dist/cjs/storage/adapters/sql-base.js +393 -0
  184. package/dist/cjs/storage/adapters/sql-base.js.map +1 -0
  185. package/dist/cjs/storage/types.d.ts +131 -0
  186. package/dist/cjs/storage/types.d.ts.map +1 -0
  187. package/dist/cjs/storage/types.js +3 -0
  188. package/dist/cjs/storage/types.js.map +1 -0
  189. package/dist/cjs/sync/adapters/rest.d.ts +31 -0
  190. package/dist/cjs/sync/adapters/rest.d.ts.map +1 -0
  191. package/dist/cjs/sync/adapters/rest.js +75 -0
  192. package/dist/cjs/sync/adapters/rest.js.map +1 -0
  193. package/dist/cjs/sync/attach.d.ts +30 -0
  194. package/dist/cjs/sync/attach.d.ts.map +1 -0
  195. package/dist/cjs/sync/attach.js +104 -0
  196. package/dist/cjs/sync/attach.js.map +1 -0
  197. package/dist/cjs/sync/engine.d.ts +96 -0
  198. package/dist/cjs/sync/engine.d.ts.map +1 -0
  199. package/dist/cjs/sync/engine.js +491 -0
  200. package/dist/cjs/sync/engine.js.map +1 -0
  201. package/dist/cjs/sync/protocol.d.ts +128 -0
  202. package/dist/cjs/sync/protocol.d.ts.map +1 -0
  203. package/dist/cjs/sync/protocol.js +38 -0
  204. package/dist/cjs/sync/protocol.js.map +1 -0
  205. package/dist/cjs/sync/queue.d.ts +77 -0
  206. package/dist/cjs/sync/queue.d.ts.map +1 -0
  207. package/dist/cjs/sync/queue.js +245 -0
  208. package/dist/cjs/sync/queue.js.map +1 -0
  209. package/dist/cjs/sync/server/memory-server.d.ts +65 -0
  210. package/dist/cjs/sync/server/memory-server.d.ts.map +1 -0
  211. package/dist/cjs/sync/server/memory-server.js +193 -0
  212. package/dist/cjs/sync/server/memory-server.js.map +1 -0
  213. package/dist/cjs/timestamps/index.d.ts +47 -0
  214. package/dist/cjs/timestamps/index.d.ts.map +1 -0
  215. package/dist/cjs/timestamps/index.js +88 -0
  216. package/dist/cjs/timestamps/index.js.map +1 -0
  217. package/dist/cjs/timestamps/timezone.d.ts +65 -0
  218. package/dist/cjs/timestamps/timezone.d.ts.map +1 -0
  219. package/dist/cjs/timestamps/timezone.js +208 -0
  220. package/dist/cjs/timestamps/timezone.js.map +1 -0
  221. package/dist/esm/conflict/strategies.d.ts +110 -0
  222. package/dist/esm/conflict/strategies.d.ts.map +1 -0
  223. package/dist/esm/conflict/strategies.js +289 -0
  224. package/dist/esm/conflict/strategies.js.map +1 -0
  225. package/dist/esm/conflict/types.d.ts +38 -0
  226. package/dist/esm/conflict/types.d.ts.map +1 -0
  227. package/dist/esm/conflict/types.js +2 -0
  228. package/dist/esm/conflict/types.js.map +1 -0
  229. package/dist/esm/core/anchor-db.d.ts +154 -0
  230. package/dist/esm/core/anchor-db.d.ts.map +1 -0
  231. package/dist/esm/core/anchor-db.js +269 -0
  232. package/dist/esm/core/anchor-db.js.map +1 -0
  233. package/dist/esm/core/errors.d.ts +125 -0
  234. package/dist/esm/core/errors.d.ts.map +1 -0
  235. package/dist/esm/core/errors.js +161 -0
  236. package/dist/esm/core/errors.js.map +1 -0
  237. package/dist/esm/core/hex.d.ts +4 -0
  238. package/dist/esm/core/hex.d.ts.map +1 -0
  239. package/dist/esm/core/hex.js +37 -0
  240. package/dist/esm/core/hex.js.map +1 -0
  241. package/dist/esm/core/hlc.d.ts +96 -0
  242. package/dist/esm/core/hlc.d.ts.map +1 -0
  243. package/dist/esm/core/hlc.js +153 -0
  244. package/dist/esm/core/hlc.js.map +1 -0
  245. package/dist/esm/core/object-id.d.ts +38 -0
  246. package/dist/esm/core/object-id.d.ts.map +1 -0
  247. package/dist/esm/core/object-id.js +163 -0
  248. package/dist/esm/core/object-id.js.map +1 -0
  249. package/dist/esm/core/random.d.ts +6 -0
  250. package/dist/esm/core/random.d.ts.map +1 -0
  251. package/dist/esm/core/random.js +34 -0
  252. package/dist/esm/core/random.js.map +1 -0
  253. package/dist/esm/core/runtime.d.ts +96 -0
  254. package/dist/esm/core/runtime.d.ts.map +1 -0
  255. package/dist/esm/core/runtime.js +2 -0
  256. package/dist/esm/core/runtime.js.map +1 -0
  257. package/dist/esm/core/uuid.d.ts +16 -0
  258. package/dist/esm/core/uuid.d.ts.map +1 -0
  259. package/dist/esm/core/uuid.js +33 -0
  260. package/dist/esm/core/uuid.js.map +1 -0
  261. package/dist/esm/decorators/index.d.ts +48 -0
  262. package/dist/esm/decorators/index.d.ts.map +1 -0
  263. package/dist/esm/decorators/index.js +286 -0
  264. package/dist/esm/decorators/index.js.map +1 -0
  265. package/dist/esm/events/emitter.d.ts +16 -0
  266. package/dist/esm/events/emitter.d.ts.map +1 -0
  267. package/dist/esm/events/emitter.js +52 -0
  268. package/dist/esm/events/emitter.js.map +1 -0
  269. package/dist/esm/index/keys.d.ts +79 -0
  270. package/dist/esm/index/keys.d.ts.map +1 -0
  271. package/dist/esm/index/keys.js +198 -0
  272. package/dist/esm/index/keys.js.map +1 -0
  273. package/dist/esm/index.d.ts +81 -0
  274. package/dist/esm/index.d.ts.map +1 -0
  275. package/dist/esm/index.js +59 -0
  276. package/dist/esm/index.js.map +1 -0
  277. package/dist/esm/inspector/agent.d.ts +75 -0
  278. package/dist/esm/inspector/agent.d.ts.map +1 -0
  279. package/dist/esm/inspector/agent.js +482 -0
  280. package/dist/esm/inspector/agent.js.map +1 -0
  281. package/dist/esm/inspector/auth.d.ts +49 -0
  282. package/dist/esm/inspector/auth.d.ts.map +1 -0
  283. package/dist/esm/inspector/auth.js +228 -0
  284. package/dist/esm/inspector/auth.js.map +1 -0
  285. package/dist/esm/inspector/bridge.d.ts +141 -0
  286. package/dist/esm/inspector/bridge.d.ts.map +1 -0
  287. package/dist/esm/inspector/bridge.js +182 -0
  288. package/dist/esm/inspector/bridge.js.map +1 -0
  289. package/dist/esm/inspector/client.d.ts +111 -0
  290. package/dist/esm/inspector/client.d.ts.map +1 -0
  291. package/dist/esm/inspector/client.js +213 -0
  292. package/dist/esm/inspector/client.js.map +1 -0
  293. package/dist/esm/inspector/protocol.d.ts +160 -0
  294. package/dist/esm/inspector/protocol.d.ts.map +1 -0
  295. package/dist/esm/inspector/protocol.js +43 -0
  296. package/dist/esm/inspector/protocol.js.map +1 -0
  297. package/dist/esm/inspector/transports/in-process.d.ts +7 -0
  298. package/dist/esm/inspector/transports/in-process.d.ts.map +1 -0
  299. package/dist/esm/inspector/transports/in-process.js +55 -0
  300. package/dist/esm/inspector/transports/in-process.js.map +1 -0
  301. package/dist/esm/inspector/transports/websocket.d.ts +39 -0
  302. package/dist/esm/inspector/transports/websocket.d.ts.map +1 -0
  303. package/dist/esm/inspector/transports/websocket.js +56 -0
  304. package/dist/esm/inspector/transports/websocket.js.map +1 -0
  305. package/dist/esm/interop/csv.d.ts +53 -0
  306. package/dist/esm/interop/csv.d.ts.map +1 -0
  307. package/dist/esm/interop/csv.js +222 -0
  308. package/dist/esm/interop/csv.js.map +1 -0
  309. package/dist/esm/interop/ejson.d.ts +41 -0
  310. package/dist/esm/interop/ejson.d.ts.map +1 -0
  311. package/dist/esm/interop/ejson.js +176 -0
  312. package/dist/esm/interop/ejson.js.map +1 -0
  313. package/dist/esm/interop/export-import.d.ts +98 -0
  314. package/dist/esm/interop/export-import.d.ts.map +1 -0
  315. package/dist/esm/interop/export-import.js +210 -0
  316. package/dist/esm/interop/export-import.js.map +1 -0
  317. package/dist/esm/model/document.d.ts +66 -0
  318. package/dist/esm/model/document.d.ts.map +1 -0
  319. package/dist/esm/model/document.js +297 -0
  320. package/dist/esm/model/document.js.map +1 -0
  321. package/dist/esm/model/model.d.ts +178 -0
  322. package/dist/esm/model/model.d.ts.map +1 -0
  323. package/dist/esm/model/model.js +815 -0
  324. package/dist/esm/model/model.js.map +1 -0
  325. package/dist/esm/package.json +3 -0
  326. package/dist/esm/query/aggregation/expressions.d.ts +34 -0
  327. package/dist/esm/query/aggregation/expressions.d.ts.map +1 -0
  328. package/dist/esm/query/aggregation/expressions.js +545 -0
  329. package/dist/esm/query/aggregation/expressions.js.map +1 -0
  330. package/dist/esm/query/aggregation/pipeline.d.ts +79 -0
  331. package/dist/esm/query/aggregation/pipeline.d.ts.map +1 -0
  332. package/dist/esm/query/aggregation/pipeline.js +591 -0
  333. package/dist/esm/query/aggregation/pipeline.js.map +1 -0
  334. package/dist/esm/query/aggregation/source.d.ts +35 -0
  335. package/dist/esm/query/aggregation/source.d.ts.map +1 -0
  336. package/dist/esm/query/aggregation/source.js +77 -0
  337. package/dist/esm/query/aggregation/source.js.map +1 -0
  338. package/dist/esm/query/builder/query.d.ts +113 -0
  339. package/dist/esm/query/builder/query.d.ts.map +1 -0
  340. package/dist/esm/query/builder/query.js +209 -0
  341. package/dist/esm/query/builder/query.js.map +1 -0
  342. package/dist/esm/query/filter.d.ts +50 -0
  343. package/dist/esm/query/filter.d.ts.map +1 -0
  344. package/dist/esm/query/filter.js +267 -0
  345. package/dist/esm/query/filter.js.map +1 -0
  346. package/dist/esm/query/path.d.ts +41 -0
  347. package/dist/esm/query/path.d.ts.map +1 -0
  348. package/dist/esm/query/path.js +282 -0
  349. package/dist/esm/query/path.js.map +1 -0
  350. package/dist/esm/query/update.d.ts +30 -0
  351. package/dist/esm/query/update.d.ts.map +1 -0
  352. package/dist/esm/query/update.js +198 -0
  353. package/dist/esm/query/update.js.map +1 -0
  354. package/dist/esm/reactive/live-query.d.ts +41 -0
  355. package/dist/esm/reactive/live-query.d.ts.map +1 -0
  356. package/dist/esm/reactive/live-query.js +83 -0
  357. package/dist/esm/reactive/live-query.js.map +1 -0
  358. package/dist/esm/schema/cast.d.ts +38 -0
  359. package/dist/esm/schema/cast.d.ts.map +1 -0
  360. package/dist/esm/schema/cast.js +275 -0
  361. package/dist/esm/schema/cast.js.map +1 -0
  362. package/dist/esm/schema/index.d.ts +5 -0
  363. package/dist/esm/schema/index.d.ts.map +1 -0
  364. package/dist/esm/schema/index.js +5 -0
  365. package/dist/esm/schema/index.js.map +1 -0
  366. package/dist/esm/schema/schema.d.ts +58 -0
  367. package/dist/esm/schema/schema.d.ts.map +1 -0
  368. package/dist/esm/schema/schema.js +358 -0
  369. package/dist/esm/schema/schema.js.map +1 -0
  370. package/dist/esm/schema/types.d.ts +144 -0
  371. package/dist/esm/schema/types.d.ts.map +1 -0
  372. package/dist/esm/schema/types.js +17 -0
  373. package/dist/esm/schema/types.js.map +1 -0
  374. package/dist/esm/schema/validate.d.ts +15 -0
  375. package/dist/esm/schema/validate.d.ts.map +1 -0
  376. package/dist/esm/schema/validate.js +98 -0
  377. package/dist/esm/schema/validate.js.map +1 -0
  378. package/dist/esm/storage/adapters/capacitor-sqlite.d.ts +67 -0
  379. package/dist/esm/storage/adapters/capacitor-sqlite.d.ts.map +1 -0
  380. package/dist/esm/storage/adapters/capacitor-sqlite.js +65 -0
  381. package/dist/esm/storage/adapters/capacitor-sqlite.js.map +1 -0
  382. package/dist/esm/storage/adapters/expo-sqlite.d.ts +55 -0
  383. package/dist/esm/storage/adapters/expo-sqlite.d.ts.map +1 -0
  384. package/dist/esm/storage/adapters/expo-sqlite.js +49 -0
  385. package/dist/esm/storage/adapters/expo-sqlite.js.map +1 -0
  386. package/dist/esm/storage/adapters/indexeddb.d.ts +55 -0
  387. package/dist/esm/storage/adapters/indexeddb.d.ts.map +1 -0
  388. package/dist/esm/storage/adapters/indexeddb.js +389 -0
  389. package/dist/esm/storage/adapters/indexeddb.js.map +1 -0
  390. package/dist/esm/storage/adapters/memory.d.ts +44 -0
  391. package/dist/esm/storage/adapters/memory.d.ts.map +1 -0
  392. package/dist/esm/storage/adapters/memory.js +282 -0
  393. package/dist/esm/storage/adapters/memory.js.map +1 -0
  394. package/dist/esm/storage/adapters/node-sqlite.d.ts +59 -0
  395. package/dist/esm/storage/adapters/node-sqlite.d.ts.map +1 -0
  396. package/dist/esm/storage/adapters/node-sqlite.js +450 -0
  397. package/dist/esm/storage/adapters/node-sqlite.js.map +1 -0
  398. package/dist/esm/storage/adapters/sql-base.d.ts +84 -0
  399. package/dist/esm/storage/adapters/sql-base.d.ts.map +1 -0
  400. package/dist/esm/storage/adapters/sql-base.js +383 -0
  401. package/dist/esm/storage/adapters/sql-base.js.map +1 -0
  402. package/dist/esm/storage/types.d.ts +131 -0
  403. package/dist/esm/storage/types.d.ts.map +1 -0
  404. package/dist/esm/storage/types.js +2 -0
  405. package/dist/esm/storage/types.js.map +1 -0
  406. package/dist/esm/sync/adapters/rest.d.ts +31 -0
  407. package/dist/esm/sync/adapters/rest.d.ts.map +1 -0
  408. package/dist/esm/sync/adapters/rest.js +71 -0
  409. package/dist/esm/sync/adapters/rest.js.map +1 -0
  410. package/dist/esm/sync/attach.d.ts +30 -0
  411. package/dist/esm/sync/attach.d.ts.map +1 -0
  412. package/dist/esm/sync/attach.js +98 -0
  413. package/dist/esm/sync/attach.js.map +1 -0
  414. package/dist/esm/sync/engine.d.ts +96 -0
  415. package/dist/esm/sync/engine.d.ts.map +1 -0
  416. package/dist/esm/sync/engine.js +487 -0
  417. package/dist/esm/sync/engine.js.map +1 -0
  418. package/dist/esm/sync/protocol.d.ts +128 -0
  419. package/dist/esm/sync/protocol.d.ts.map +1 -0
  420. package/dist/esm/sync/protocol.js +33 -0
  421. package/dist/esm/sync/protocol.js.map +1 -0
  422. package/dist/esm/sync/queue.d.ts +77 -0
  423. package/dist/esm/sync/queue.d.ts.map +1 -0
  424. package/dist/esm/sync/queue.js +241 -0
  425. package/dist/esm/sync/queue.js.map +1 -0
  426. package/dist/esm/sync/server/memory-server.d.ts +65 -0
  427. package/dist/esm/sync/server/memory-server.d.ts.map +1 -0
  428. package/dist/esm/sync/server/memory-server.js +189 -0
  429. package/dist/esm/sync/server/memory-server.js.map +1 -0
  430. package/dist/esm/timestamps/index.d.ts +47 -0
  431. package/dist/esm/timestamps/index.d.ts.map +1 -0
  432. package/dist/esm/timestamps/index.js +70 -0
  433. package/dist/esm/timestamps/index.js.map +1 -0
  434. package/dist/esm/timestamps/timezone.d.ts +65 -0
  435. package/dist/esm/timestamps/timezone.d.ts.map +1 -0
  436. package/dist/esm/timestamps/timezone.js +196 -0
  437. package/dist/esm/timestamps/timezone.js.map +1 -0
  438. package/package.json +163 -0
@@ -0,0 +1,393 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasPath = exports.getPath = exports.deepClone = exports.compareValues = exports.SqlAdapterBase = void 0;
4
+ exports.tableName = tableName;
5
+ exports.sanitize = sanitize;
6
+ exports.hydrate = hydrate;
7
+ const errors_ts_1 = require("../../core/errors.js");
8
+ const path_ts_1 = require("../../query/path.js");
9
+ Object.defineProperty(exports, "compareValues", { enumerable: true, get: function () { return path_ts_1.compareValues; } });
10
+ Object.defineProperty(exports, "deepClone", { enumerable: true, get: function () { return path_ts_1.deepClone; } });
11
+ Object.defineProperty(exports, "getPath", { enumerable: true, get: function () { return path_ts_1.getPath; } });
12
+ Object.defineProperty(exports, "hasPath", { enumerable: true, get: function () { return path_ts_1.hasPath; } });
13
+ const keys_ts_1 = require("../../index/keys.js");
14
+ const SCHEMA = `
15
+ CREATE TABLE IF NOT EXISTS anchor_collections (name TEXT PRIMARY KEY);
16
+ CREATE TABLE IF NOT EXISTS anchor_state (key TEXT PRIMARY KEY, value TEXT NOT NULL);
17
+ CREATE TABLE IF NOT EXISTS anchor_indexes (
18
+ collection TEXT NOT NULL, name TEXT NOT NULL, spec TEXT NOT NULL,
19
+ PRIMARY KEY (collection, name)
20
+ );
21
+ CREATE TABLE IF NOT EXISTS anchor_index_entries (
22
+ collection TEXT NOT NULL, index_name TEXT NOT NULL, key TEXT NOT NULL, document_id TEXT NOT NULL
23
+ );
24
+ CREATE INDEX IF NOT EXISTS anchor_index_entries_lookup
25
+ ON anchor_index_entries (collection, index_name, key);
26
+ CREATE INDEX IF NOT EXISTS anchor_index_entries_doc
27
+ ON anchor_index_entries (collection, index_name, document_id);
28
+ `;
29
+ class SqlAdapterBase {
30
+ constructor(dbName) {
31
+ this.indexCache = new Map();
32
+ this.knownTables = new Set();
33
+ this.dbName = dbName;
34
+ }
35
+ async open() {
36
+ this.driver = await this.createDriver();
37
+ await this.driver.exec(SCHEMA);
38
+ await this.loadIndexes();
39
+ for (const row of await this.driver.all("SELECT name FROM anchor_collections")) {
40
+ this.knownTables.add(tableName(row.name));
41
+ }
42
+ }
43
+ async close() {
44
+ await this.driver.close();
45
+ }
46
+ async destroy() {
47
+ for (const name of await this.listCollections()) {
48
+ await this.driver.exec(`DROP TABLE IF EXISTS "${tableName(name)}"`);
49
+ }
50
+ await this.driver.exec("DELETE FROM anchor_collections; DELETE FROM anchor_state; " +
51
+ "DELETE FROM anchor_indexes; DELETE FROM anchor_index_entries;");
52
+ this.indexCache.clear();
53
+ this.knownTables.clear();
54
+ }
55
+ async loadIndexes() {
56
+ this.indexCache.clear();
57
+ const rows = await this.driver.all("SELECT collection, name, spec FROM anchor_indexes");
58
+ for (const r of rows) {
59
+ let map = this.indexCache.get(r.collection);
60
+ if (!map) {
61
+ map = new Map();
62
+ this.indexCache.set(r.collection, map);
63
+ }
64
+ map.set(r.name, JSON.parse(r.spec));
65
+ }
66
+ }
67
+ async ensureCollection(collection) {
68
+ const table = tableName(collection);
69
+ await this.driver.exec(`
70
+ CREATE TABLE IF NOT EXISTS "${table}" (
71
+ id TEXT PRIMARY KEY, doc TEXT NOT NULL,
72
+ version INTEGER NOT NULL DEFAULT 0, hlc TEXT NOT NULL DEFAULT '',
73
+ dirty INTEGER NOT NULL DEFAULT 0, deleted INTEGER NOT NULL DEFAULT 0,
74
+ created_at TEXT NOT NULL, updated_at TEXT NOT NULL, deleted_at TEXT
75
+ );
76
+ CREATE INDEX IF NOT EXISTS "${table}_deleted" ON "${table}" (deleted);
77
+ CREATE INDEX IF NOT EXISTS "${table}_dirty" ON "${table}" (dirty);
78
+ `);
79
+ await this.driver.run("INSERT OR IGNORE INTO anchor_collections (name) VALUES (?)", [collection]);
80
+ this.knownTables.add(table);
81
+ }
82
+ async listCollections() {
83
+ const rows = await this.driver.all("SELECT name FROM anchor_collections ORDER BY name");
84
+ return rows.map((r) => r.name);
85
+ }
86
+ tableExists(collection) {
87
+ return this.knownTables.has(tableName(collection));
88
+ }
89
+ async get(collection, id, includeDeleted = false) {
90
+ if (!this.tableExists(collection))
91
+ return null;
92
+ const rows = await this.driver.all(`SELECT * FROM "${tableName(collection)}" WHERE id = ?`, [id]);
93
+ const row = rows[0];
94
+ if (!row)
95
+ return null;
96
+ if (Number(row.deleted) === 1 && !includeDeleted)
97
+ return null;
98
+ return hydrate(row);
99
+ }
100
+ /** Identical index-selection rule to the node:sqlite adapter — see its documentation. */
101
+ chooseIndex(collection, constraints) {
102
+ const equalities = new Map();
103
+ for (const c of constraints) {
104
+ if (c.op === "eq" && c.path !== "_id")
105
+ equalities.set(c.path, c.value);
106
+ }
107
+ if (equalities.size === 0)
108
+ return null;
109
+ let best = null;
110
+ for (const spec of this.indexCache.get(collection)?.values() ?? []) {
111
+ if (spec.sparse || spec.partialFilterExpression)
112
+ continue;
113
+ const encoded = (0, keys_ts_1.encodeLookupKey)(spec, equalities);
114
+ if (encoded === null)
115
+ continue;
116
+ if (!best || spec.key.length > best.paths.size) {
117
+ best = { name: spec.name, key: encoded, paths: new Set(spec.key.map(([p]) => p)) };
118
+ }
119
+ }
120
+ return best;
121
+ }
122
+ async find(plan) {
123
+ if (!this.tableExists(plan.collection)) {
124
+ return { rows: [], applied: { constraints: true, sort: true, skip: true, limit: true } };
125
+ }
126
+ const table = tableName(plan.collection);
127
+ const q = `"${table}"`;
128
+ const where = [];
129
+ const params = [];
130
+ if (!plan.includeDeleted)
131
+ where.push(`${q}.deleted = 0`);
132
+ let pushedConstraints = true;
133
+ let indexUsed;
134
+ let joinSql = "";
135
+ const chosen = this.chooseIndex(plan.collection, plan.constraints);
136
+ const covered = chosen ? chosen.paths : new Set();
137
+ if (chosen) {
138
+ joinSql = ` JOIN anchor_index_entries e ON e.document_id = ${q}.id`;
139
+ where.push("e.collection = ?", "e.index_name = ?", "e.key = ?");
140
+ params.push(plan.collection, chosen.name, chosen.key);
141
+ indexUsed = chosen.name;
142
+ }
143
+ for (const c of plan.constraints) {
144
+ if (chosen && c.op === "eq" && covered.has(c.path))
145
+ continue;
146
+ if (c.path === "_id" && (c.op === "eq" || c.op === "in")) {
147
+ if (c.op === "eq") {
148
+ where.push(`${q}.id = ?`);
149
+ params.push(String(c.value));
150
+ }
151
+ else {
152
+ const list = c.value;
153
+ if (list.length === 0) {
154
+ return { rows: [], applied: { constraints: true, sort: true, skip: true, limit: true } };
155
+ }
156
+ where.push(`${q}.id IN (${list.map(() => "?").join(",")})`);
157
+ params.push(...list.map((v) => String(v)));
158
+ }
159
+ indexUsed ??= "_id_";
160
+ }
161
+ else {
162
+ pushedConstraints = false;
163
+ }
164
+ }
165
+ let pushedSort = false;
166
+ let orderBy = "";
167
+ if (plan.sort && plan.sort.length === 1 && plan.sort[0][0] === "_id") {
168
+ orderBy = ` ORDER BY ${q}.id ${plan.sort[0][1] === 1 ? "ASC" : "DESC"}`;
169
+ pushedSort = true;
170
+ }
171
+ const canPage = pushedConstraints && (pushedSort || !plan.sort || plan.sort.length === 0);
172
+ let tail = "";
173
+ if (canPage && plan.limit !== undefined) {
174
+ tail += ` LIMIT ${Number(plan.limit)}`;
175
+ if (plan.skip)
176
+ tail += ` OFFSET ${Number(plan.skip)}`;
177
+ }
178
+ else if (canPage && plan.skip) {
179
+ tail += ` LIMIT -1 OFFSET ${Number(plan.skip)}`;
180
+ }
181
+ const sql = `SELECT DISTINCT ${q}.* FROM ${q}` +
182
+ joinSql +
183
+ (where.length ? ` WHERE ${where.join(" AND ")}` : "") +
184
+ orderBy +
185
+ tail;
186
+ const raw = await this.driver.all(sql, params);
187
+ return {
188
+ rows: raw.map(hydrate),
189
+ applied: {
190
+ constraints: pushedConstraints,
191
+ sort: pushedSort || !plan.sort || plan.sort.length === 0,
192
+ skip: canPage && plan.skip !== undefined,
193
+ limit: canPage && plan.limit !== undefined,
194
+ },
195
+ indexUsed,
196
+ };
197
+ }
198
+ async count(plan) {
199
+ if (!this.tableExists(plan.collection))
200
+ return 0;
201
+ if (plan.constraints.length > 0)
202
+ return null;
203
+ const rows = await this.driver.all(`SELECT COUNT(*) AS n FROM "${tableName(plan.collection)}"${plan.includeDeleted ? "" : " WHERE deleted = 0"}`);
204
+ return Number(rows[0]?.n ?? 0);
205
+ }
206
+ async write(ops) {
207
+ await this.driver.transaction(async () => {
208
+ for (const op of ops)
209
+ await this.applyOp(op);
210
+ });
211
+ }
212
+ async applyOp(op) {
213
+ const table = tableName(op.collection);
214
+ const specs = [...(this.indexCache.get(op.collection)?.values() ?? [])];
215
+ await this.driver.run("DELETE FROM anchor_index_entries WHERE collection = ? AND document_id = ?", [op.collection, op._id]);
216
+ if (op.type === "hardDelete") {
217
+ await this.driver.run(`DELETE FROM "${table}" WHERE id = ?`, [op._id]);
218
+ return;
219
+ }
220
+ if (!op.row)
221
+ throw new errors_ts_1.AnchorConfigError(`write op "${op.type}" requires a row`);
222
+ const { doc, meta } = op.row;
223
+ if (!meta.deleted) {
224
+ for (const spec of specs) {
225
+ for (const key of (0, keys_ts_1.extractIndexKeys)(doc, spec)) {
226
+ try {
227
+ await this.driver.run("INSERT INTO anchor_index_entries (collection, index_name, key, document_id) VALUES (?, ?, ?, ?)", [op.collection, spec.name, key.encoded, op._id]);
228
+ }
229
+ catch (err) {
230
+ throw this.toDuplicateError(err, op.collection, spec, key.values);
231
+ }
232
+ }
233
+ }
234
+ }
235
+ await this.driver.run(`INSERT INTO "${table}" (id, doc, version, hlc, dirty, deleted, created_at, updated_at, deleted_at)
236
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
237
+ ON CONFLICT(id) DO UPDATE SET
238
+ doc = excluded.doc, version = excluded.version, hlc = excluded.hlc,
239
+ dirty = excluded.dirty, deleted = excluded.deleted,
240
+ created_at = excluded.created_at, updated_at = excluded.updated_at,
241
+ deleted_at = excluded.deleted_at`, [
242
+ op._id,
243
+ JSON.stringify(doc),
244
+ meta.version,
245
+ meta.hlc,
246
+ meta.dirty ? 1 : 0,
247
+ meta.deleted ? 1 : 0,
248
+ meta.createdAt,
249
+ meta.updatedAt,
250
+ meta.deletedAt ?? null,
251
+ ]);
252
+ }
253
+ /**
254
+ * Map a driver-specific constraint failure onto Mongo's E11000.
255
+ *
256
+ * Each SQLite binding reports the violation differently — an `errcode`, a `code` string, or only
257
+ * a message — so all three shapes are checked. Missing one would surface a raw SQL error to
258
+ * application code that is written to catch `err.code === 11000`.
259
+ */
260
+ toDuplicateError(err, collection, spec, keyValue) {
261
+ const e = err;
262
+ const message = String(e?.message ?? "");
263
+ const isUnique = e?.errcode === 2067 ||
264
+ e?.errcode === 1555 ||
265
+ e?.code === "SQLITE_CONSTRAINT_UNIQUE" ||
266
+ e?.code === 19 ||
267
+ /UNIQUE constraint failed/i.test(message);
268
+ if (isUnique) {
269
+ return (0, errors_ts_1.duplicateKeyError)({
270
+ dbName: this.dbName,
271
+ collection,
272
+ index: spec.name,
273
+ keyPattern: (0, keys_ts_1.indexKeyPattern)(spec),
274
+ keyValue,
275
+ });
276
+ }
277
+ return err;
278
+ }
279
+ async createIndex(collection, spec) {
280
+ await this.ensureCollection(collection);
281
+ const name = spec.name || (0, keys_ts_1.defaultIndexName)(spec.key);
282
+ const full = { ...spec, name };
283
+ const sqlIndexName = `uxe_${sanitize(collection)}_${sanitize(name)}`;
284
+ try {
285
+ await this.driver.transaction(async () => {
286
+ await this.driver.run("DELETE FROM anchor_index_entries WHERE collection = ? AND index_name = ?", [collection, name]);
287
+ if (full.unique) {
288
+ await this.driver.exec(`CREATE UNIQUE INDEX IF NOT EXISTS "${sqlIndexName}"
289
+ ON anchor_index_entries (collection, index_name, key)
290
+ WHERE collection = '${collection.replace(/'/g, "''")}' AND index_name = '${name.replace(/'/g, "''")}'`);
291
+ }
292
+ const rows = this.tableExists(collection)
293
+ ? await this.driver.all(`SELECT * FROM "${tableName(collection)}" WHERE deleted = 0`)
294
+ : [];
295
+ for (const raw of rows) {
296
+ const row = hydrate(raw);
297
+ for (const key of (0, keys_ts_1.extractIndexKeys)(row.doc, full)) {
298
+ try {
299
+ await this.driver.run("INSERT INTO anchor_index_entries (collection, index_name, key, document_id) VALUES (?, ?, ?, ?)", [collection, name, key.encoded, row.doc._id]);
300
+ }
301
+ catch (err) {
302
+ throw this.toDuplicateError(err, collection, full, key.values);
303
+ }
304
+ }
305
+ }
306
+ await this.driver.run("INSERT OR REPLACE INTO anchor_indexes (collection, name, spec) VALUES (?, ?, ?)", [collection, name, JSON.stringify(full)]);
307
+ });
308
+ }
309
+ catch (err) {
310
+ // Building over violating data must leave nothing half-created and non-enforcing.
311
+ await this.driver.exec(`DROP INDEX IF EXISTS "${sqlIndexName}"`).catch(() => undefined);
312
+ throw err;
313
+ }
314
+ let map = this.indexCache.get(collection);
315
+ if (!map) {
316
+ map = new Map();
317
+ this.indexCache.set(collection, map);
318
+ }
319
+ map.set(name, full);
320
+ }
321
+ async dropIndex(collection, name) {
322
+ await this.driver.exec(`DROP INDEX IF EXISTS "uxe_${sanitize(collection)}_${sanitize(name)}"`);
323
+ await this.driver.run("DELETE FROM anchor_index_entries WHERE collection = ? AND index_name = ?", [
324
+ collection,
325
+ name,
326
+ ]);
327
+ await this.driver.run("DELETE FROM anchor_indexes WHERE collection = ? AND name = ?", [collection, name]);
328
+ this.indexCache.get(collection)?.delete(name);
329
+ }
330
+ async listIndexes(collection) {
331
+ return [...(this.indexCache.get(collection)?.values() ?? [])].map((s) => ({ ...s }));
332
+ }
333
+ async getState(key) {
334
+ const rows = await this.driver.all("SELECT value FROM anchor_state WHERE key = ?", [key]);
335
+ return rows[0]?.value ?? null;
336
+ }
337
+ async setState(key, value) {
338
+ await this.driver.run("INSERT OR REPLACE INTO anchor_state (key, value) VALUES (?, ?)", [key, value]);
339
+ }
340
+ async stats() {
341
+ const collections = await this.listCollections();
342
+ let documents = 0;
343
+ let tombstones = 0;
344
+ for (const name of collections) {
345
+ if (!this.tableExists(name))
346
+ continue;
347
+ const rows = await this.driver.all(`SELECT SUM(CASE WHEN deleted = 0 THEN 1 ELSE 0 END) AS live,
348
+ SUM(CASE WHEN deleted = 1 THEN 1 ELSE 0 END) AS dead FROM "${tableName(name)}"`);
349
+ documents += Number(rows[0]?.live ?? 0);
350
+ tombstones += Number(rows[0]?.dead ?? 0);
351
+ }
352
+ const idx = await this.driver.all("SELECT COUNT(*) AS n FROM anchor_indexes");
353
+ return { collections: collections.length, documents, indexes: Number(idx[0]?.n ?? 0), tombstones };
354
+ }
355
+ async *scan(collection, opts = {}) {
356
+ if (!this.tableExists(collection))
357
+ return;
358
+ const batchSize = opts.batchSize ?? 500;
359
+ const table = tableName(collection);
360
+ let after = "";
361
+ for (;;) {
362
+ const rows = await this.driver.all(`SELECT * FROM "${table}" WHERE id > ?` +
363
+ (opts.includeDeleted ? "" : " AND deleted = 0") +
364
+ ` ORDER BY id ASC LIMIT ${batchSize}`, [after]);
365
+ if (rows.length === 0)
366
+ return;
367
+ for (const r of rows)
368
+ yield hydrate(r);
369
+ after = rows[rows.length - 1].id;
370
+ }
371
+ }
372
+ }
373
+ exports.SqlAdapterBase = SqlAdapterBase;
374
+ function tableName(collection) {
375
+ return `c_${sanitize(collection)}`;
376
+ }
377
+ function sanitize(name) {
378
+ return name.replace(/[^A-Za-z0-9_]/g, "_");
379
+ }
380
+ function hydrate(row) {
381
+ const doc = JSON.parse(row.doc);
382
+ const meta = {
383
+ version: Number(row.version),
384
+ hlc: row.hlc,
385
+ dirty: Number(row.dirty) === 1,
386
+ deleted: Number(row.deleted) === 1,
387
+ createdAt: row.created_at,
388
+ updatedAt: row.updated_at,
389
+ deletedAt: row.deleted_at,
390
+ };
391
+ return { doc, meta };
392
+ }
393
+ //# sourceMappingURL=sql-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-base.js","sourceRoot":"","sources":["../../../../src/storage/adapters/sql-base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * The storage contract.
3
+ *
4
+ * Deliberately narrow and document-shaped rather than SQL-shaped, so IndexedDB and a plain in-memory
5
+ * map can satisfy it as honestly as SQLite. Everything above this line (query engine, schema,
6
+ * models, sync) is written against this interface only, which is what keeps the public API stable
7
+ * when the storage engine changes (§14).
8
+ *
9
+ * Two responsibilities are pushed *down* here rather than implemented above, because doing them
10
+ * above would be incorrect:
11
+ *
12
+ * - **Unique index enforcement.** Checking uniqueness in JS before writing is a read-then-write
13
+ * race. SQLite can enforce it inside the write transaction; adapters that cannot must emulate it
14
+ * atomically. See `IndexSpec.unique`.
15
+ * - **Filter/sort pushdown.** Only the adapter knows what its indexes can do, so it receives the
16
+ * whole query plan and reports back what it actually handled.
17
+ */
18
+ import type { MongoServerError } from "../core/errors.js";
19
+ /** A document as stored: user fields plus `_id`. Sync metadata lives in `StoredMeta`, not in here. */
20
+ export type StoredDoc = Record<string, unknown> & {
21
+ _id: string;
22
+ };
23
+ export interface StoredMeta {
24
+ /** Server-assigned version. 0 means "never synced". */
25
+ version: number;
26
+ /** HLC stamp of the last local write. */
27
+ hlc: string;
28
+ /** Has local changes not yet acknowledged by the server. */
29
+ dirty: boolean;
30
+ /** Tombstoned (synced mode). Local-only mode hard-deletes instead. */
31
+ deleted: boolean;
32
+ updatedAt: string;
33
+ createdAt: string;
34
+ deletedAt?: string | null;
35
+ }
36
+ export interface StoredRow {
37
+ doc: StoredDoc;
38
+ meta: StoredMeta;
39
+ }
40
+ export type SortDirection = 1 | -1;
41
+ export type SortSpec = Array<[path: string, direction: SortDirection]>;
42
+ /** What the planner asks the adapter to do. The adapter may satisfy part of it and say so. */
43
+ export interface StoragePlan {
44
+ collection: string;
45
+ /** Equality/range constraints the adapter may push into an index. */
46
+ constraints: PlanConstraint[];
47
+ sort?: SortSpec;
48
+ skip?: number;
49
+ limit?: number;
50
+ /** When true the adapter must include tombstoned rows (sync internals need them). */
51
+ includeDeleted?: boolean;
52
+ }
53
+ export interface PlanConstraint {
54
+ path: string;
55
+ op: "eq" | "gt" | "gte" | "lt" | "lte" | "in" | "exists" | "ne" | "nin";
56
+ value: unknown;
57
+ }
58
+ export interface StorageResult {
59
+ rows: StoredRow[];
60
+ /**
61
+ * Honest reporting of what the adapter actually did, so the layer above knows what it still has
62
+ * to do in JS. Claiming more than was done would silently corrupt results.
63
+ */
64
+ applied: {
65
+ constraints: boolean;
66
+ sort: boolean;
67
+ skip: boolean;
68
+ limit: boolean;
69
+ };
70
+ /** Index used, for `explain()`. */
71
+ indexUsed?: string | undefined;
72
+ }
73
+ export interface IndexSpec {
74
+ name: string;
75
+ /** Ordered for compound indexes; direction matters for sort matching. */
76
+ key: Array<[path: string, direction: SortDirection]>;
77
+ unique?: boolean;
78
+ sparse?: boolean;
79
+ partialFilterExpression?: Record<string, unknown>;
80
+ expireAfterSeconds?: number;
81
+ /** Set when any indexed path holds an array — enforcement then needs the side table. */
82
+ multikey?: boolean;
83
+ }
84
+ export interface WriteOp {
85
+ type: "insert" | "update" | "replace" | "delete" | "hardDelete";
86
+ collection: string;
87
+ row?: StoredRow;
88
+ _id: string;
89
+ }
90
+ export interface AdapterStats {
91
+ collections: number;
92
+ documents: number;
93
+ indexes: number;
94
+ tombstones: number;
95
+ sizeBytes?: number;
96
+ }
97
+ /**
98
+ * Storage engines implement this. Everything is async so SQLite-on-a-thread, IndexedDB and remote
99
+ * adapters all fit; the in-memory and node:sqlite adapters simply resolve immediately.
100
+ */
101
+ export interface DatabaseAdapter {
102
+ readonly name: string;
103
+ open(): Promise<void>;
104
+ close(): Promise<void>;
105
+ /** Drop everything. Used by tests and by Lens's explicit "clear local data". */
106
+ destroy(): Promise<void>;
107
+ ensureCollection(collection: string): Promise<void>;
108
+ listCollections(): Promise<string[]>;
109
+ get(collection: string, id: string, includeDeleted?: boolean): Promise<StoredRow | null>;
110
+ find(plan: StoragePlan): Promise<StorageResult>;
111
+ count(plan: StoragePlan): Promise<number | null>;
112
+ /**
113
+ * Apply writes atomically. A unique violation must reject the whole batch and throw a
114
+ * `MongoServerError` with `code: 11000` — see `duplicateKeyError()`.
115
+ */
116
+ write(ops: WriteOp[]): Promise<void>;
117
+ createIndex(collection: string, spec: IndexSpec): Promise<void>;
118
+ dropIndex(collection: string, name: string): Promise<void>;
119
+ listIndexes(collection: string): Promise<IndexSpec[]>;
120
+ /** Key/value store for sync cursors, client id, HLC state. */
121
+ getState(key: string): Promise<string | null>;
122
+ setState(key: string, value: string): Promise<void>;
123
+ stats(): Promise<AdapterStats>;
124
+ /** Iterate a whole collection without materialising it — used by aggregation and export. */
125
+ scan(collection: string, opts?: {
126
+ includeDeleted?: boolean;
127
+ batchSize?: number;
128
+ }): AsyncIterable<StoredRow>;
129
+ }
130
+ export type { MongoServerError };
131
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/storage/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/storage/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ import { type PullRequest, type PullResponse, type PushRequest, type PushResponse, type SyncAdapter } from "../protocol.js";
2
+ export interface RestSyncAdapterOptions {
3
+ /** Base URL, e.g. "https://api.example.com/anchor/v1". */
4
+ endpoint: string;
5
+ /** Static bearer token, or a provider for refreshable ones. */
6
+ token?: string;
7
+ getToken?: () => string | Promise<string>;
8
+ headers?: Record<string, string>;
9
+ fetchImpl?: typeof fetch;
10
+ timeoutMs?: number;
11
+ }
12
+ /**
13
+ * REST transport for the sync protocol.
14
+ *
15
+ * `POST {endpoint}/sync/push` and `POST {endpoint}/sync/pull`, plain JSON in and out.
16
+ *
17
+ * The important distinction this class draws is between **retryable** and **fatal** failures:
18
+ * a network error or a 5xx becomes `SyncTransportError` (the engine backs off and keeps the work),
19
+ * while a 401/403 becomes `SyncAuthError` (the engine pauses and asks the app to refresh the
20
+ * token). Collapsing those two would either discard queued writes on a transient blip, or retry an
21
+ * expired token forever.
22
+ */
23
+ export declare class RestSyncAdapter implements SyncAdapter {
24
+ readonly name = "rest";
25
+ private readonly opts;
26
+ constructor(options: RestSyncAdapterOptions);
27
+ push(request: PushRequest): Promise<PushResponse>;
28
+ pull(request: PullRequest): Promise<PullResponse>;
29
+ private post;
30
+ }
31
+ //# sourceMappingURL=rest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../../../src/sync/adapters/rest.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,sBAAsB;IACrC,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,QAAQ,CAAC,IAAI,UAAU;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;gBAElC,OAAO,EAAE,sBAAsB;IAIrC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAIjD,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;YAIzC,IAAI;CAoDnB"}