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,208 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KEY_SEPARATOR = exports.NULL_SENTINEL = void 0;
4
+ exports.encodeComponent = encodeComponent;
5
+ exports.matchesPartialFilter = matchesPartialFilter;
6
+ exports.extractIndexKeys = extractIndexKeys;
7
+ exports.isMultikeyFor = isMultikeyFor;
8
+ exports.indexKeyPattern = indexKeyPattern;
9
+ exports.defaultIndexName = defaultIndexName;
10
+ exports.encodeLookupKey = encodeLookupKey;
11
+ const path_ts_1 = require("../query/path.js");
12
+ const object_id_ts_1 = require("../core/object-id.js");
13
+ /**
14
+ * Index key extraction — shared by every storage adapter so unique semantics cannot drift between
15
+ * SQLite, IndexedDB and memory.
16
+ *
17
+ * ## The MongoDB / SQL divergence this module exists to close
18
+ *
19
+ * SQL treats NULL as *not equal to itself*, so a `UNIQUE` index happily accepts any number of rows
20
+ * whose indexed column is NULL. I verified this on node:sqlite: inserting two documents that both
21
+ * omitted the indexed field succeeded.
22
+ *
23
+ * MongoDB does the opposite. A missing field is indexed **as null**, and null equals null, so the
24
+ * second such document is rejected with E11000.
25
+ *
26
+ * Left alone this diverges silently: the app accepts data on device, sync pushes it, and the real
27
+ * database rejects it much later with no obvious cause. So missing values are mapped to an explicit
28
+ * sentinel that collides with itself, reproducing Mongo's behaviour. `sparse` and partial indexes
29
+ * are then the documented way to opt back out — exactly as in Mongo.
30
+ */
31
+ /**
32
+ * Sentinel for "no value", covering BOTH a missing field and an explicit null.
33
+ *
34
+ * They share one encoding on purpose: MongoDB indexes a missing field *as null*, so `{}` and
35
+ * `{ email: null }` produce the same index entry and collide under a unique index. Separate
36
+ * sentinels would let one of each coexist on device and then be rejected by the real database on
37
+ * first sync — a divergence that only surfaces long after the data was written.
38
+ *
39
+ * `sparse` still distinguishes them: it skips documents *missing* the field while still indexing
40
+ * an explicit null. That check lives in extractIndexKeys, not here.
41
+ */
42
+ exports.NULL_SENTINEL = " __anchor_null__";
43
+ /**
44
+ * Separator between components of a compound index key.
45
+ *
46
+ * Named rather than written inline as a raw control character: an invisible literal is impossible
47
+ * to review and trivially diverges between the writer and the reader of a key. Without a separator
48
+ * at all, ["ab","c"] and ["a","bc"] would encode identically and collide under a unique index.
49
+ */
50
+ exports.KEY_SEPARATOR = String.fromCharCode(1);
51
+ /**
52
+ * Encode a single value into a component of an index key.
53
+ *
54
+ * Type is included in the encoding so that `1` (number) and `"1"` (string) do not collide — Mongo
55
+ * treats them as different index entries because they are different BSON types.
56
+ */
57
+ function encodeComponent(value) {
58
+ if (value === undefined || value === null)
59
+ return exports.NULL_SENTINEL;
60
+ if (typeof value === "string")
61
+ return `s:${value}`;
62
+ if (typeof value === "number")
63
+ return `n:${value}`;
64
+ if (typeof value === "boolean")
65
+ return `b:${value}`;
66
+ if (value instanceof Date)
67
+ return `d:${value.getTime()}`;
68
+ if (value instanceof object_id_ts_1.ObjectId)
69
+ return `o:${value.toHexString()}`;
70
+ if (value instanceof Uint8Array)
71
+ return `x:${Array.from(value).join(",")}`;
72
+ if (Array.isArray(value))
73
+ return `a:${JSON.stringify(value)}`;
74
+ return `j:${JSON.stringify(value)}`;
75
+ }
76
+ function isMissing(doc, path) {
77
+ return !(0, path_ts_1.hasPath)(doc, path) || (0, path_ts_1.getPath)(doc, path) === undefined;
78
+ }
79
+ /** Does the document qualify for a partial index? */
80
+ function matchesPartialFilter(doc, filter) {
81
+ if (!filter)
82
+ return true;
83
+ for (const [path, condition] of Object.entries(filter)) {
84
+ const value = (0, path_ts_1.getPath)(doc, path);
85
+ if (condition !== null && typeof condition === "object" && !Array.isArray(condition) && !(condition instanceof Date)) {
86
+ for (const [op, operand] of Object.entries(condition)) {
87
+ switch (op) {
88
+ case "$eq":
89
+ if ((0, path_ts_1.compareValues)(value, operand) !== 0)
90
+ return false;
91
+ break;
92
+ case "$ne":
93
+ if ((0, path_ts_1.compareValues)(value, operand) === 0)
94
+ return false;
95
+ break;
96
+ case "$gt":
97
+ if (!((0, path_ts_1.compareValues)(value, operand) > 0))
98
+ return false;
99
+ break;
100
+ case "$gte":
101
+ if (!((0, path_ts_1.compareValues)(value, operand) >= 0))
102
+ return false;
103
+ break;
104
+ case "$lt":
105
+ if (!((0, path_ts_1.compareValues)(value, operand) < 0))
106
+ return false;
107
+ break;
108
+ case "$lte":
109
+ if (!((0, path_ts_1.compareValues)(value, operand) <= 0))
110
+ return false;
111
+ break;
112
+ case "$exists":
113
+ if ((0, path_ts_1.hasPath)(doc, path) !== Boolean(operand))
114
+ return false;
115
+ break;
116
+ case "$in":
117
+ if (!operand.some((o) => (0, path_ts_1.compareValues)(value, o) === 0))
118
+ return false;
119
+ break;
120
+ default:
121
+ return false;
122
+ }
123
+ }
124
+ }
125
+ else if ((0, path_ts_1.compareValues)(value, condition) !== 0) {
126
+ return false;
127
+ }
128
+ }
129
+ return true;
130
+ }
131
+ /**
132
+ * Extract every index key a document contributes.
133
+ *
134
+ * Returns more than one key only for multikey indexes, where an array field contributes one entry
135
+ * per element — which is what makes a unique multikey index mean "no two documents share any
136
+ * element".
137
+ *
138
+ * Returns an empty array when the document should not be indexed at all (sparse with the field
139
+ * absent, or a partial filter that does not match), which is precisely how those options let
140
+ * multiple documents escape a unique constraint.
141
+ */
142
+ function extractIndexKeys(doc, spec) {
143
+ if (!matchesPartialFilter(doc, spec.partialFilterExpression))
144
+ return [];
145
+ const paths = spec.key.map(([path]) => path);
146
+ // Sparse skips documents missing *every* indexed field, matching Mongo's compound-sparse rule.
147
+ if (spec.sparse && paths.every((p) => isMissing(doc, p)))
148
+ return [];
149
+ // Cartesian product across paths, expanding arrays into separate entries (multikey).
150
+ let combos = [[]];
151
+ for (const path of paths) {
152
+ const raw = (0, path_ts_1.getPath)(doc, path);
153
+ const values = Array.isArray(raw) ? (raw.length === 0 ? [undefined] : raw) : [raw];
154
+ const next = [];
155
+ for (const combo of combos) {
156
+ for (const value of values) {
157
+ next.push([...combo, { path, value }]);
158
+ }
159
+ }
160
+ combos = next;
161
+ }
162
+ // De-duplicate: a document with ["a","a"] must contribute one entry, not two, or it would
163
+ // collide with itself and be rejected by its own unique index.
164
+ const seen = new Set();
165
+ const out = [];
166
+ for (const combo of combos) {
167
+ const encoded = combo.map((c) => encodeComponent(c.value)).join(exports.KEY_SEPARATOR);
168
+ if (seen.has(encoded))
169
+ continue;
170
+ seen.add(encoded);
171
+ const values = {};
172
+ for (const c of combo)
173
+ values[c.path] = c.value === undefined ? null : c.value;
174
+ out.push({ encoded, values });
175
+ }
176
+ return out;
177
+ }
178
+ /** True when any indexed path currently holds an array, so the adapter can pick its strategy. */
179
+ function isMultikeyFor(doc, spec) {
180
+ return spec.key.some(([path]) => Array.isArray((0, path_ts_1.getPath)(doc, path)));
181
+ }
182
+ function indexKeyPattern(spec) {
183
+ const out = {};
184
+ for (const [path, dir] of spec.key)
185
+ out[path] = dir;
186
+ return out;
187
+ }
188
+ /** Mongo's default index name: field_direction joined by underscores, e.g. `email_1`. */
189
+ function defaultIndexName(key) {
190
+ return key.map(([path, dir]) => `${path}_${dir}`).join("_");
191
+ }
192
+ /**
193
+ * Encode a lookup key for an index whose every field has an equality constraint.
194
+ *
195
+ * Returns null when the constraints do not cover the full key. A partial key cannot be turned into
196
+ * an exact lookup against the entries table, and guessing with a prefix match could silently drop
197
+ * rows — so we decline and let the caller fall back to a scan.
198
+ */
199
+ function encodeLookupKey(spec, equalities) {
200
+ const parts = [];
201
+ for (const [path] of spec.key) {
202
+ if (!equalities.has(path))
203
+ return null;
204
+ parts.push(encodeComponent(equalities.get(path)));
205
+ }
206
+ return parts.join(exports.KEY_SEPARATOR);
207
+ }
208
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/index/keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * anchordb — MongoDB + Mongoose, for mobile apps.
3
+ *
4
+ * Local-first by default. Sync is opt-in: construct without a `sync` block and you get a purely
5
+ * local database with no queue, no network code and no sync metadata.
6
+ */
7
+ export { AnchorDB, LocalDB } from "./core/anchor-db.js";
8
+ export type { AnchorDBConfig, InspectorConfig, SyncConfig, SyncStatus, } from "./core/anchor-db.js";
9
+ export { Schema } from "./schema/schema.js";
10
+ export { SchemaTypes } from "./schema/types.js";
11
+ export type { SchemaOptions, SchemaTypeOptions, ValidatorFn, ValidatorSpec, } from "./schema/types.js";
12
+ export { castDocument, castValue } from "./schema/cast.js";
13
+ export { validateDocument } from "./schema/validate.js";
14
+ export { Model } from "./model/model.js";
15
+ export type { DeleteResult, UpdateOptions, UpdateResult } from "./model/model.js";
16
+ export { Query } from "./query/builder/query.js";
17
+ export type { ExplainResult, PopulateSpec } from "./query/builder/query.js";
18
+ export { ObjectId } from "./core/object-id.js";
19
+ export { uuidv7, generateClientId } from "./core/uuid.js";
20
+ export { HybridLogicalClock, compareHlc, compareHlcStamps, decodeHlc, encodeHlc } from "./core/hlc.js";
21
+ export type { Hlc } from "./core/hlc.js";
22
+ export { AnchorError, AnchorConfigError, BulkWriteError, CastError, DocumentNotFoundError, DUPLICATE_KEY_CODE, MongoServerError, StrictModeError, ValidationError, ValidatorError, duplicateKeyError, } from "./core/errors.js";
23
+ export { TimeService } from "./timestamps/index.js";
24
+ export { assertValidTimeZone, detectDeviceTimeZone, formatInTimeZone, isValidTimeZone, parseZonedTimeToUtc, toUtcIso, zonedTimeToUtc, } from "./timestamps/timezone.js";
25
+ export { TypedEmitter } from "./events/emitter.js";
26
+ export type { AnchorEvents, AnchorRuntime } from "./core/runtime.js";
27
+ export { MemoryAdapter } from "./storage/adapters/memory.js";
28
+ export type { AdapterStats, DatabaseAdapter, IndexSpec, StoragePlan, StorageResult, StoredDoc, StoredMeta, StoredRow, WriteOp, } from "./storage/types.js";
29
+ export { matchesFilter, extractConstraints, registerQueryOperator, listQueryOperators, } from "./query/filter.js";
30
+ export type { Filter } from "./query/filter.js";
31
+ export { applyUpdate, registerUpdateOperator, listUpdateOperators, updatedPaths, } from "./query/update.js";
32
+ export type { UpdateSpec } from "./query/update.js";
33
+ export { compareValues, deepClone, flattenPaths, getPath, hasPath, setPath, unsetPath, valuesEqual, } from "./query/path.js";
34
+ export { extractIndexKeys, defaultIndexName, NULL_SENTINEL } from "./index/keys.js";
35
+ export type { ConflictContext, ConflictResolutionConfig, ConflictResolver, ConflictStrategyName, FieldPolicy, Resolution, } from "./conflict/types.js";
36
+ export { attachSync } from "./sync/attach.js";
37
+ export type { AttachSyncOptions, AttachedSync } from "./sync/attach.js";
38
+ export { MutationQueue, QUEUE_COLLECTION } from "./sync/queue.js";
39
+ export { SyncEngine, SHADOW_COLLECTION } from "./sync/engine.js";
40
+ export type { SyncEngineOptions, SyncRunResult, SyncStatusValue } from "./sync/engine.js";
41
+ export { RestSyncAdapter } from "./sync/adapters/rest.js";
42
+ export type { RestSyncAdapterOptions } from "./sync/adapters/rest.js";
43
+ export { MemorySyncServer } from "./sync/server/memory-server.js";
44
+ export type { ServerDocument, MemorySyncServerOptions } from "./sync/server/memory-server.js";
45
+ export { PROTOCOL_VERSION, SyncAuthError, SyncTransportError, } from "./sync/protocol.js";
46
+ export type { ChangeResult, ChangeStatus, Mutation, MutationOperation, PullRequest, PullResponse, PushRequest, PushResponse, QueuedMutation, RemoteChange, SyncAdapter, } from "./sync/protocol.js";
47
+ export { ClientWinsStrategy, ConflictStrategyRegistry, CustomStrategy, FieldLevelStrategy, LastWriteWinsStrategy, ServerWinsStrategy, } from "./conflict/strategies.js";
48
+ export type { ConflictStrategyHandler } from "./conflict/strategies.js";
49
+ export { toEJSON, fromEJSON, stringifyEJSON, parseEJSON } from "./interop/ejson.js";
50
+ export type { EJsonMode, EJsonOptions } from "./interop/ejson.js";
51
+ export { detectImportFormat, exportCollection, exportDatabase, importCollection, importDatabase, mongoimportCommand, } from "./interop/export-import.js";
52
+ export { csvHeaders, fromCsv, inferCsvValue, looksLikeCsv, parseCsvRows, toCsv } from "./interop/csv.js";
53
+ export type { CollectionExport, DatabaseExport, ExportFormat, ExportOptions, ImportOptions, ImportResult, } from "./interop/export-import.js";
54
+ export { runPipeline, validatePipeline, planPushdown } from "./query/aggregation/pipeline.js";
55
+ export type { AggregateExplain, AggregateOptions, AggregationSource, PipelineStage, Pushdown, } from "./query/aggregation/pipeline.js";
56
+ export { evaluate as evaluateExpression, registerExpressionOperator, listExpressionOperators, isPortableOperator, MISSING, } from "./query/aggregation/expressions.js";
57
+ export { StorageAggregationSource } from "./query/aggregation/source.js";
58
+ export type { BulkWriteOperation } from "./model/model.js";
59
+ export { AnchorDocument, createModelConstructor } from "./model/document.js";
60
+ export type { ModelConstructor, ToObjectOptions } from "./model/document.js";
61
+ export { castFilter } from "./schema/cast.js";
62
+ export { InspectorAgent, InspectorRequestError } from "./inspector/agent.js";
63
+ export type { InspectorAgentOptions } from "./inspector/agent.js";
64
+ export { InspectorClient, InspectorClientError } from "./inspector/client.js";
65
+ export type { InspectorClientOptions } from "./inspector/client.js";
66
+ export { InspectorAuth, hmacSha256, timingSafeEqual } from "./inspector/auth.js";
67
+ export type { InspectorAuthOptions, PairingInfo, Session } from "./inspector/auth.js";
68
+ export { createInProcessTransportPair } from "./inspector/transports/in-process.js";
69
+ export { WebSocketTransport } from "./inspector/transports/websocket.js";
70
+ export type { WebSocketLike, WebSocketTransportOptions } from "./inspector/transports/websocket.js";
71
+ export { INSPECTOR_PROTOCOL_VERSION, makeRequest, makeResponse, makeError, makeEvent, isRequest, isResponse, isEvent, } from "./inspector/protocol.js";
72
+ export { BRIDGE_PROTOCOL_VERSION, BridgeError, MongoBridgeClient, bridgeUrl, bridgeUrlFromRelay, redactMongoUri, } from "./inspector/bridge.js";
73
+ export type { BridgeConnectResult, BridgeErrorCode, BridgeOp, BridgeReadResult, BridgeRequest, BridgeResponse, BridgeWriteMode, BridgeWriteResult, MongoBridgeClientOptions, MongoCollectionInfo, } from "./inspector/bridge.js";
74
+ export type { BulkWriteSummary, CollectionSummary, ConflictRecord, ConnectResult, DocumentPage, InspectorCapability, InspectorError, InspectorErrorCode, InspectorEvent, InspectorEventName, InspectorMessage, InspectorMethod, InspectorRequest, InspectorResponse, InspectorStats, InspectorTransport, } from "./inspector/protocol.js";
75
+ export { observe, observeQuery, observeSyncStatus } from "./reactive/live-query.js";
76
+ export type { LiveObserver, LiveQueryOptions, LiveSubscription } from "./reactive/live-query.js";
77
+ export { SqlAdapterBase } from "./storage/adapters/sql-base.js";
78
+ export type { SqlDriver } from "./storage/adapters/sql-base.js";
79
+ export { IndexedDbAdapter } from "./storage/adapters/indexeddb.js";
80
+ export type { IndexedDbAdapterOptions } from "./storage/adapters/indexeddb.js";
81
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ /**
3
+ * anchordb — MongoDB + Mongoose, for mobile apps.
4
+ *
5
+ * Local-first by default. Sync is opt-in: construct without a `sync` block and you get a purely
6
+ * local database with no queue, no network code and no sync metadata.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.getPath = exports.flattenPaths = exports.deepClone = exports.compareValues = exports.updatedPaths = exports.listUpdateOperators = exports.registerUpdateOperator = exports.applyUpdate = exports.listQueryOperators = exports.registerQueryOperator = exports.extractConstraints = exports.matchesFilter = exports.MemoryAdapter = exports.TypedEmitter = exports.zonedTimeToUtc = exports.toUtcIso = exports.parseZonedTimeToUtc = exports.isValidTimeZone = exports.formatInTimeZone = exports.detectDeviceTimeZone = exports.assertValidTimeZone = exports.TimeService = exports.duplicateKeyError = exports.ValidatorError = exports.ValidationError = exports.StrictModeError = exports.MongoServerError = exports.DUPLICATE_KEY_CODE = exports.DocumentNotFoundError = exports.CastError = exports.BulkWriteError = exports.AnchorConfigError = exports.AnchorError = exports.encodeHlc = exports.decodeHlc = exports.compareHlcStamps = exports.compareHlc = exports.HybridLogicalClock = exports.generateClientId = exports.uuidv7 = exports.ObjectId = exports.Query = exports.Model = exports.validateDocument = exports.castValue = exports.castDocument = exports.SchemaTypes = exports.Schema = exports.LocalDB = exports.AnchorDB = void 0;
10
+ exports.createModelConstructor = exports.AnchorDocument = exports.StorageAggregationSource = exports.MISSING = exports.isPortableOperator = exports.listExpressionOperators = exports.registerExpressionOperator = exports.evaluateExpression = exports.planPushdown = exports.validatePipeline = exports.runPipeline = exports.toCsv = exports.parseCsvRows = exports.looksLikeCsv = exports.inferCsvValue = exports.fromCsv = exports.csvHeaders = exports.mongoimportCommand = exports.importDatabase = exports.importCollection = exports.exportDatabase = exports.exportCollection = exports.detectImportFormat = exports.parseEJSON = exports.stringifyEJSON = exports.fromEJSON = exports.toEJSON = exports.ServerWinsStrategy = exports.LastWriteWinsStrategy = exports.FieldLevelStrategy = exports.CustomStrategy = exports.ConflictStrategyRegistry = exports.ClientWinsStrategy = exports.SyncTransportError = exports.SyncAuthError = exports.PROTOCOL_VERSION = exports.MemorySyncServer = exports.RestSyncAdapter = exports.SHADOW_COLLECTION = exports.SyncEngine = exports.QUEUE_COLLECTION = exports.MutationQueue = exports.attachSync = exports.NULL_SENTINEL = exports.defaultIndexName = exports.extractIndexKeys = exports.valuesEqual = exports.unsetPath = exports.setPath = exports.hasPath = void 0;
11
+ exports.IndexedDbAdapter = exports.SqlAdapterBase = exports.observeSyncStatus = exports.observeQuery = exports.observe = exports.redactMongoUri = exports.bridgeUrlFromRelay = exports.bridgeUrl = exports.MongoBridgeClient = exports.BridgeError = exports.BRIDGE_PROTOCOL_VERSION = exports.isEvent = exports.isResponse = exports.isRequest = exports.makeEvent = exports.makeError = exports.makeResponse = exports.makeRequest = exports.INSPECTOR_PROTOCOL_VERSION = exports.WebSocketTransport = exports.createInProcessTransportPair = exports.timingSafeEqual = exports.hmacSha256 = exports.InspectorAuth = exports.InspectorClientError = exports.InspectorClient = exports.InspectorRequestError = exports.InspectorAgent = exports.castFilter = void 0;
12
+ var anchor_db_ts_1 = require("./core/anchor-db.js");
13
+ Object.defineProperty(exports, "AnchorDB", { enumerable: true, get: function () { return anchor_db_ts_1.AnchorDB; } });
14
+ Object.defineProperty(exports, "LocalDB", { enumerable: true, get: function () { return anchor_db_ts_1.LocalDB; } });
15
+ var schema_ts_1 = require("./schema/schema.js");
16
+ Object.defineProperty(exports, "Schema", { enumerable: true, get: function () { return schema_ts_1.Schema; } });
17
+ var types_ts_1 = require("./schema/types.js");
18
+ Object.defineProperty(exports, "SchemaTypes", { enumerable: true, get: function () { return types_ts_1.SchemaTypes; } });
19
+ var cast_ts_1 = require("./schema/cast.js");
20
+ Object.defineProperty(exports, "castDocument", { enumerable: true, get: function () { return cast_ts_1.castDocument; } });
21
+ Object.defineProperty(exports, "castValue", { enumerable: true, get: function () { return cast_ts_1.castValue; } });
22
+ var validate_ts_1 = require("./schema/validate.js");
23
+ Object.defineProperty(exports, "validateDocument", { enumerable: true, get: function () { return validate_ts_1.validateDocument; } });
24
+ var model_ts_1 = require("./model/model.js");
25
+ Object.defineProperty(exports, "Model", { enumerable: true, get: function () { return model_ts_1.Model; } });
26
+ var query_ts_1 = require("./query/builder/query.js");
27
+ Object.defineProperty(exports, "Query", { enumerable: true, get: function () { return query_ts_1.Query; } });
28
+ var object_id_ts_1 = require("./core/object-id.js");
29
+ Object.defineProperty(exports, "ObjectId", { enumerable: true, get: function () { return object_id_ts_1.ObjectId; } });
30
+ var uuid_ts_1 = require("./core/uuid.js");
31
+ Object.defineProperty(exports, "uuidv7", { enumerable: true, get: function () { return uuid_ts_1.uuidv7; } });
32
+ Object.defineProperty(exports, "generateClientId", { enumerable: true, get: function () { return uuid_ts_1.generateClientId; } });
33
+ var hlc_ts_1 = require("./core/hlc.js");
34
+ Object.defineProperty(exports, "HybridLogicalClock", { enumerable: true, get: function () { return hlc_ts_1.HybridLogicalClock; } });
35
+ Object.defineProperty(exports, "compareHlc", { enumerable: true, get: function () { return hlc_ts_1.compareHlc; } });
36
+ Object.defineProperty(exports, "compareHlcStamps", { enumerable: true, get: function () { return hlc_ts_1.compareHlcStamps; } });
37
+ Object.defineProperty(exports, "decodeHlc", { enumerable: true, get: function () { return hlc_ts_1.decodeHlc; } });
38
+ Object.defineProperty(exports, "encodeHlc", { enumerable: true, get: function () { return hlc_ts_1.encodeHlc; } });
39
+ var errors_ts_1 = require("./core/errors.js");
40
+ Object.defineProperty(exports, "AnchorError", { enumerable: true, get: function () { return errors_ts_1.AnchorError; } });
41
+ Object.defineProperty(exports, "AnchorConfigError", { enumerable: true, get: function () { return errors_ts_1.AnchorConfigError; } });
42
+ Object.defineProperty(exports, "BulkWriteError", { enumerable: true, get: function () { return errors_ts_1.BulkWriteError; } });
43
+ Object.defineProperty(exports, "CastError", { enumerable: true, get: function () { return errors_ts_1.CastError; } });
44
+ Object.defineProperty(exports, "DocumentNotFoundError", { enumerable: true, get: function () { return errors_ts_1.DocumentNotFoundError; } });
45
+ Object.defineProperty(exports, "DUPLICATE_KEY_CODE", { enumerable: true, get: function () { return errors_ts_1.DUPLICATE_KEY_CODE; } });
46
+ Object.defineProperty(exports, "MongoServerError", { enumerable: true, get: function () { return errors_ts_1.MongoServerError; } });
47
+ Object.defineProperty(exports, "StrictModeError", { enumerable: true, get: function () { return errors_ts_1.StrictModeError; } });
48
+ Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return errors_ts_1.ValidationError; } });
49
+ Object.defineProperty(exports, "ValidatorError", { enumerable: true, get: function () { return errors_ts_1.ValidatorError; } });
50
+ Object.defineProperty(exports, "duplicateKeyError", { enumerable: true, get: function () { return errors_ts_1.duplicateKeyError; } });
51
+ var index_ts_1 = require("./timestamps/index.js");
52
+ Object.defineProperty(exports, "TimeService", { enumerable: true, get: function () { return index_ts_1.TimeService; } });
53
+ var timezone_ts_1 = require("./timestamps/timezone.js");
54
+ Object.defineProperty(exports, "assertValidTimeZone", { enumerable: true, get: function () { return timezone_ts_1.assertValidTimeZone; } });
55
+ Object.defineProperty(exports, "detectDeviceTimeZone", { enumerable: true, get: function () { return timezone_ts_1.detectDeviceTimeZone; } });
56
+ Object.defineProperty(exports, "formatInTimeZone", { enumerable: true, get: function () { return timezone_ts_1.formatInTimeZone; } });
57
+ Object.defineProperty(exports, "isValidTimeZone", { enumerable: true, get: function () { return timezone_ts_1.isValidTimeZone; } });
58
+ Object.defineProperty(exports, "parseZonedTimeToUtc", { enumerable: true, get: function () { return timezone_ts_1.parseZonedTimeToUtc; } });
59
+ Object.defineProperty(exports, "toUtcIso", { enumerable: true, get: function () { return timezone_ts_1.toUtcIso; } });
60
+ Object.defineProperty(exports, "zonedTimeToUtc", { enumerable: true, get: function () { return timezone_ts_1.zonedTimeToUtc; } });
61
+ var emitter_ts_1 = require("./events/emitter.js");
62
+ Object.defineProperty(exports, "TypedEmitter", { enumerable: true, get: function () { return emitter_ts_1.TypedEmitter; } });
63
+ var memory_ts_1 = require("./storage/adapters/memory.js");
64
+ Object.defineProperty(exports, "MemoryAdapter", { enumerable: true, get: function () { return memory_ts_1.MemoryAdapter; } });
65
+ var filter_ts_1 = require("./query/filter.js");
66
+ Object.defineProperty(exports, "matchesFilter", { enumerable: true, get: function () { return filter_ts_1.matchesFilter; } });
67
+ Object.defineProperty(exports, "extractConstraints", { enumerable: true, get: function () { return filter_ts_1.extractConstraints; } });
68
+ Object.defineProperty(exports, "registerQueryOperator", { enumerable: true, get: function () { return filter_ts_1.registerQueryOperator; } });
69
+ Object.defineProperty(exports, "listQueryOperators", { enumerable: true, get: function () { return filter_ts_1.listQueryOperators; } });
70
+ var update_ts_1 = require("./query/update.js");
71
+ Object.defineProperty(exports, "applyUpdate", { enumerable: true, get: function () { return update_ts_1.applyUpdate; } });
72
+ Object.defineProperty(exports, "registerUpdateOperator", { enumerable: true, get: function () { return update_ts_1.registerUpdateOperator; } });
73
+ Object.defineProperty(exports, "listUpdateOperators", { enumerable: true, get: function () { return update_ts_1.listUpdateOperators; } });
74
+ Object.defineProperty(exports, "updatedPaths", { enumerable: true, get: function () { return update_ts_1.updatedPaths; } });
75
+ var path_ts_1 = require("./query/path.js");
76
+ Object.defineProperty(exports, "compareValues", { enumerable: true, get: function () { return path_ts_1.compareValues; } });
77
+ Object.defineProperty(exports, "deepClone", { enumerable: true, get: function () { return path_ts_1.deepClone; } });
78
+ Object.defineProperty(exports, "flattenPaths", { enumerable: true, get: function () { return path_ts_1.flattenPaths; } });
79
+ Object.defineProperty(exports, "getPath", { enumerable: true, get: function () { return path_ts_1.getPath; } });
80
+ Object.defineProperty(exports, "hasPath", { enumerable: true, get: function () { return path_ts_1.hasPath; } });
81
+ Object.defineProperty(exports, "setPath", { enumerable: true, get: function () { return path_ts_1.setPath; } });
82
+ Object.defineProperty(exports, "unsetPath", { enumerable: true, get: function () { return path_ts_1.unsetPath; } });
83
+ Object.defineProperty(exports, "valuesEqual", { enumerable: true, get: function () { return path_ts_1.valuesEqual; } });
84
+ var keys_ts_1 = require("./index/keys.js");
85
+ Object.defineProperty(exports, "extractIndexKeys", { enumerable: true, get: function () { return keys_ts_1.extractIndexKeys; } });
86
+ Object.defineProperty(exports, "defaultIndexName", { enumerable: true, get: function () { return keys_ts_1.defaultIndexName; } });
87
+ Object.defineProperty(exports, "NULL_SENTINEL", { enumerable: true, get: function () { return keys_ts_1.NULL_SENTINEL; } });
88
+ // ---- sync (optional; tree-shaken away when unused) --------------------------
89
+ var attach_ts_1 = require("./sync/attach.js");
90
+ Object.defineProperty(exports, "attachSync", { enumerable: true, get: function () { return attach_ts_1.attachSync; } });
91
+ var queue_ts_1 = require("./sync/queue.js");
92
+ Object.defineProperty(exports, "MutationQueue", { enumerable: true, get: function () { return queue_ts_1.MutationQueue; } });
93
+ Object.defineProperty(exports, "QUEUE_COLLECTION", { enumerable: true, get: function () { return queue_ts_1.QUEUE_COLLECTION; } });
94
+ var engine_ts_1 = require("./sync/engine.js");
95
+ Object.defineProperty(exports, "SyncEngine", { enumerable: true, get: function () { return engine_ts_1.SyncEngine; } });
96
+ Object.defineProperty(exports, "SHADOW_COLLECTION", { enumerable: true, get: function () { return engine_ts_1.SHADOW_COLLECTION; } });
97
+ var rest_ts_1 = require("./sync/adapters/rest.js");
98
+ Object.defineProperty(exports, "RestSyncAdapter", { enumerable: true, get: function () { return rest_ts_1.RestSyncAdapter; } });
99
+ var memory_server_ts_1 = require("./sync/server/memory-server.js");
100
+ Object.defineProperty(exports, "MemorySyncServer", { enumerable: true, get: function () { return memory_server_ts_1.MemorySyncServer; } });
101
+ var protocol_ts_1 = require("./sync/protocol.js");
102
+ Object.defineProperty(exports, "PROTOCOL_VERSION", { enumerable: true, get: function () { return protocol_ts_1.PROTOCOL_VERSION; } });
103
+ Object.defineProperty(exports, "SyncAuthError", { enumerable: true, get: function () { return protocol_ts_1.SyncAuthError; } });
104
+ Object.defineProperty(exports, "SyncTransportError", { enumerable: true, get: function () { return protocol_ts_1.SyncTransportError; } });
105
+ // ---- conflict strategies ----------------------------------------------------
106
+ var strategies_ts_1 = require("./conflict/strategies.js");
107
+ Object.defineProperty(exports, "ClientWinsStrategy", { enumerable: true, get: function () { return strategies_ts_1.ClientWinsStrategy; } });
108
+ Object.defineProperty(exports, "ConflictStrategyRegistry", { enumerable: true, get: function () { return strategies_ts_1.ConflictStrategyRegistry; } });
109
+ Object.defineProperty(exports, "CustomStrategy", { enumerable: true, get: function () { return strategies_ts_1.CustomStrategy; } });
110
+ Object.defineProperty(exports, "FieldLevelStrategy", { enumerable: true, get: function () { return strategies_ts_1.FieldLevelStrategy; } });
111
+ Object.defineProperty(exports, "LastWriteWinsStrategy", { enumerable: true, get: function () { return strategies_ts_1.LastWriteWinsStrategy; } });
112
+ Object.defineProperty(exports, "ServerWinsStrategy", { enumerable: true, get: function () { return strategies_ts_1.ServerWinsStrategy; } });
113
+ // ---- interop: MongoDB Extended JSON, export/import ---------------------------
114
+ var ejson_ts_1 = require("./interop/ejson.js");
115
+ Object.defineProperty(exports, "toEJSON", { enumerable: true, get: function () { return ejson_ts_1.toEJSON; } });
116
+ Object.defineProperty(exports, "fromEJSON", { enumerable: true, get: function () { return ejson_ts_1.fromEJSON; } });
117
+ Object.defineProperty(exports, "stringifyEJSON", { enumerable: true, get: function () { return ejson_ts_1.stringifyEJSON; } });
118
+ Object.defineProperty(exports, "parseEJSON", { enumerable: true, get: function () { return ejson_ts_1.parseEJSON; } });
119
+ var export_import_ts_1 = require("./interop/export-import.js");
120
+ Object.defineProperty(exports, "detectImportFormat", { enumerable: true, get: function () { return export_import_ts_1.detectImportFormat; } });
121
+ Object.defineProperty(exports, "exportCollection", { enumerable: true, get: function () { return export_import_ts_1.exportCollection; } });
122
+ Object.defineProperty(exports, "exportDatabase", { enumerable: true, get: function () { return export_import_ts_1.exportDatabase; } });
123
+ Object.defineProperty(exports, "importCollection", { enumerable: true, get: function () { return export_import_ts_1.importCollection; } });
124
+ Object.defineProperty(exports, "importDatabase", { enumerable: true, get: function () { return export_import_ts_1.importDatabase; } });
125
+ Object.defineProperty(exports, "mongoimportCommand", { enumerable: true, get: function () { return export_import_ts_1.mongoimportCommand; } });
126
+ var csv_ts_1 = require("./interop/csv.js");
127
+ Object.defineProperty(exports, "csvHeaders", { enumerable: true, get: function () { return csv_ts_1.csvHeaders; } });
128
+ Object.defineProperty(exports, "fromCsv", { enumerable: true, get: function () { return csv_ts_1.fromCsv; } });
129
+ Object.defineProperty(exports, "inferCsvValue", { enumerable: true, get: function () { return csv_ts_1.inferCsvValue; } });
130
+ Object.defineProperty(exports, "looksLikeCsv", { enumerable: true, get: function () { return csv_ts_1.looksLikeCsv; } });
131
+ Object.defineProperty(exports, "parseCsvRows", { enumerable: true, get: function () { return csv_ts_1.parseCsvRows; } });
132
+ Object.defineProperty(exports, "toCsv", { enumerable: true, get: function () { return csv_ts_1.toCsv; } });
133
+ // ---- aggregation -------------------------------------------------------------
134
+ var pipeline_ts_1 = require("./query/aggregation/pipeline.js");
135
+ Object.defineProperty(exports, "runPipeline", { enumerable: true, get: function () { return pipeline_ts_1.runPipeline; } });
136
+ Object.defineProperty(exports, "validatePipeline", { enumerable: true, get: function () { return pipeline_ts_1.validatePipeline; } });
137
+ Object.defineProperty(exports, "planPushdown", { enumerable: true, get: function () { return pipeline_ts_1.planPushdown; } });
138
+ var expressions_ts_1 = require("./query/aggregation/expressions.js");
139
+ Object.defineProperty(exports, "evaluateExpression", { enumerable: true, get: function () { return expressions_ts_1.evaluate; } });
140
+ Object.defineProperty(exports, "registerExpressionOperator", { enumerable: true, get: function () { return expressions_ts_1.registerExpressionOperator; } });
141
+ Object.defineProperty(exports, "listExpressionOperators", { enumerable: true, get: function () { return expressions_ts_1.listExpressionOperators; } });
142
+ Object.defineProperty(exports, "isPortableOperator", { enumerable: true, get: function () { return expressions_ts_1.isPortableOperator; } });
143
+ Object.defineProperty(exports, "MISSING", { enumerable: true, get: function () { return expressions_ts_1.MISSING; } });
144
+ var source_ts_1 = require("./query/aggregation/source.js");
145
+ Object.defineProperty(exports, "StorageAggregationSource", { enumerable: true, get: function () { return source_ts_1.StorageAggregationSource; } });
146
+ // ---- documents ---------------------------------------------------------------
147
+ var document_ts_1 = require("./model/document.js");
148
+ Object.defineProperty(exports, "AnchorDocument", { enumerable: true, get: function () { return document_ts_1.AnchorDocument; } });
149
+ Object.defineProperty(exports, "createModelConstructor", { enumerable: true, get: function () { return document_ts_1.createModelConstructor; } });
150
+ var cast_ts_2 = require("./schema/cast.js");
151
+ Object.defineProperty(exports, "castFilter", { enumerable: true, get: function () { return cast_ts_2.castFilter; } });
152
+ // ---- inspector (optional; disabled by default) -------------------------------
153
+ var agent_ts_1 = require("./inspector/agent.js");
154
+ Object.defineProperty(exports, "InspectorAgent", { enumerable: true, get: function () { return agent_ts_1.InspectorAgent; } });
155
+ Object.defineProperty(exports, "InspectorRequestError", { enumerable: true, get: function () { return agent_ts_1.InspectorRequestError; } });
156
+ var client_ts_1 = require("./inspector/client.js");
157
+ Object.defineProperty(exports, "InspectorClient", { enumerable: true, get: function () { return client_ts_1.InspectorClient; } });
158
+ Object.defineProperty(exports, "InspectorClientError", { enumerable: true, get: function () { return client_ts_1.InspectorClientError; } });
159
+ var auth_ts_1 = require("./inspector/auth.js");
160
+ Object.defineProperty(exports, "InspectorAuth", { enumerable: true, get: function () { return auth_ts_1.InspectorAuth; } });
161
+ Object.defineProperty(exports, "hmacSha256", { enumerable: true, get: function () { return auth_ts_1.hmacSha256; } });
162
+ Object.defineProperty(exports, "timingSafeEqual", { enumerable: true, get: function () { return auth_ts_1.timingSafeEqual; } });
163
+ var in_process_ts_1 = require("./inspector/transports/in-process.js");
164
+ Object.defineProperty(exports, "createInProcessTransportPair", { enumerable: true, get: function () { return in_process_ts_1.createInProcessTransportPair; } });
165
+ var websocket_ts_1 = require("./inspector/transports/websocket.js");
166
+ Object.defineProperty(exports, "WebSocketTransport", { enumerable: true, get: function () { return websocket_ts_1.WebSocketTransport; } });
167
+ var protocol_ts_2 = require("./inspector/protocol.js");
168
+ Object.defineProperty(exports, "INSPECTOR_PROTOCOL_VERSION", { enumerable: true, get: function () { return protocol_ts_2.INSPECTOR_PROTOCOL_VERSION; } });
169
+ Object.defineProperty(exports, "makeRequest", { enumerable: true, get: function () { return protocol_ts_2.makeRequest; } });
170
+ Object.defineProperty(exports, "makeResponse", { enumerable: true, get: function () { return protocol_ts_2.makeResponse; } });
171
+ Object.defineProperty(exports, "makeError", { enumerable: true, get: function () { return protocol_ts_2.makeError; } });
172
+ Object.defineProperty(exports, "makeEvent", { enumerable: true, get: function () { return protocol_ts_2.makeEvent; } });
173
+ Object.defineProperty(exports, "isRequest", { enumerable: true, get: function () { return protocol_ts_2.isRequest; } });
174
+ Object.defineProperty(exports, "isResponse", { enumerable: true, get: function () { return protocol_ts_2.isResponse; } });
175
+ Object.defineProperty(exports, "isEvent", { enumerable: true, get: function () { return protocol_ts_2.isEvent; } });
176
+ var bridge_ts_1 = require("./inspector/bridge.js");
177
+ Object.defineProperty(exports, "BRIDGE_PROTOCOL_VERSION", { enumerable: true, get: function () { return bridge_ts_1.BRIDGE_PROTOCOL_VERSION; } });
178
+ Object.defineProperty(exports, "BridgeError", { enumerable: true, get: function () { return bridge_ts_1.BridgeError; } });
179
+ Object.defineProperty(exports, "MongoBridgeClient", { enumerable: true, get: function () { return bridge_ts_1.MongoBridgeClient; } });
180
+ Object.defineProperty(exports, "bridgeUrl", { enumerable: true, get: function () { return bridge_ts_1.bridgeUrl; } });
181
+ Object.defineProperty(exports, "bridgeUrlFromRelay", { enumerable: true, get: function () { return bridge_ts_1.bridgeUrlFromRelay; } });
182
+ Object.defineProperty(exports, "redactMongoUri", { enumerable: true, get: function () { return bridge_ts_1.redactMongoUri; } });
183
+ // ---- reactive primitives (shared by the React and Angular bindings) -----------
184
+ var live_query_ts_1 = require("./reactive/live-query.js");
185
+ Object.defineProperty(exports, "observe", { enumerable: true, get: function () { return live_query_ts_1.observe; } });
186
+ Object.defineProperty(exports, "observeQuery", { enumerable: true, get: function () { return live_query_ts_1.observeQuery; } });
187
+ Object.defineProperty(exports, "observeSyncStatus", { enumerable: true, get: function () { return live_query_ts_1.observeSyncStatus; } });
188
+ // ---- storage adapters (subpath imports keep platform code out of other bundles) -----
189
+ var sql_base_ts_1 = require("./storage/adapters/sql-base.js");
190
+ Object.defineProperty(exports, "SqlAdapterBase", { enumerable: true, get: function () { return sql_base_ts_1.SqlAdapterBase; } });
191
+ var indexeddb_ts_1 = require("./storage/adapters/indexeddb.js");
192
+ Object.defineProperty(exports, "IndexedDbAdapter", { enumerable: true, get: function () { return indexeddb_ts_1.IndexedDbAdapter; } });
193
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import type { AnchorDB } from "../core/anchor-db.js";
2
+ import { InspectorAuth, type InspectorAuthOptions, type PairingInfo } from "./auth.js";
3
+ import { type InspectorCapability, type InspectorTransport } from "./protocol.js";
4
+ export interface InspectorAgentOptions {
5
+ auth?: InspectorAuthOptions;
6
+ /** Refuse every mutating method. Useful when inspecting something you must not disturb. */
7
+ readOnly?: boolean;
8
+ platform?: string;
9
+ anchorVersion?: string;
10
+ /** Conflicts to retain for the Lens conflict viewer. */
11
+ conflictHistory?: number;
12
+ }
13
+ export declare class InspectorAgent {
14
+ readonly auth: InspectorAuth;
15
+ private readonly db;
16
+ private readonly opts;
17
+ private readonly transports;
18
+ private readonly authenticated;
19
+ private readonly subscribed;
20
+ private readonly conflicts;
21
+ private detach;
22
+ private lastSyncAt;
23
+ constructor(db: AnchorDB, options?: InspectorAgentOptions);
24
+ /** Begin a pairing window; the result is what a QR code encodes. */
25
+ startPairing(): PairingInfo;
26
+ capabilities(): InspectorCapability[];
27
+ /** Attach a transport. Multiple may be attached at once (§45). */
28
+ attach(transport: InspectorTransport): () => void;
29
+ close(): Promise<void>;
30
+ private handle;
31
+ private toErrorResponse;
32
+ private dispatch;
33
+ private connect;
34
+ private authenticate;
35
+ /** The challenge a client signs. Exposed so a transport can hand it over during pairing. */
36
+ challenge(): string | null;
37
+ private model;
38
+ private getCollections;
39
+ private getStats;
40
+ private getIndexes;
41
+ /** Paged, always. The cap is enforced here, not trusted from the client (§34). */
42
+ private getDocuments;
43
+ private getDocument;
44
+ private insertDocument;
45
+ private updateDocument;
46
+ private deleteDocument;
47
+ /**
48
+ * Bulk update (Compass's "Update" on the collection toolbar).
49
+ *
50
+ * Routed through `Model.updateMany`, so every matching document gets the same validation,
51
+ * timestamps, change events and queued mutations as an app write — and the whole thing is one
52
+ * pass over an index rather than N round trips from the inspector.
53
+ */
54
+ private updateMany;
55
+ /** Bulk delete (Compass's "Delete"). Same reasoning as {@link updateMany}. */
56
+ private deleteMany;
57
+ private getSyncStatus;
58
+ private readQueue;
59
+ private getMutations;
60
+ private retryMutation;
61
+ /**
62
+ * Manual conflict resolution from Lens.
63
+ *
64
+ * Deliberately routed through `updateDocument` rather than written straight to storage: the
65
+ * developer's decision becomes an ordinary mutation that syncs like any other (§41). Bypassing
66
+ * the queue would let Lens create state the server never learns about.
67
+ */
68
+ private resolveConflict;
69
+ private wireEvents;
70
+ }
71
+ export declare class InspectorRequestError extends Error {
72
+ readonly code: "unauthenticated" | "unauthorized" | "bad_request" | "not_found" | "unsupported_method";
73
+ constructor(code: InspectorRequestError["code"], message: string);
74
+ }
75
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/inspector/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAMrD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACvF,OAAO,EAWL,KAAK,mBAAmB,EAIxB,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAsBvB,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,cAAc;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6C;IAC3E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,UAAU,CAAqB;gBAE3B,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAE,qBAA0B;IAO7D,oEAAoE;IACpE,YAAY,IAAI,WAAW;IAI3B,YAAY,IAAI,mBAAmB,EAAE;IAgBrC,kEAAkE;IAClE,MAAM,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAY3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAUd,MAAM;IAuBpB,OAAO,CAAC,eAAe;YAeT,QAAQ;IA4FtB,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,YAAY;IAmBpB,4FAA4F;IAC5F,SAAS,IAAI,MAAM,GAAG,IAAI;IAM1B,OAAO,CAAC,KAAK;YAYC,cAAc;YAgBd,QAAQ;YAkBR,UAAU;IAIxB,kFAAkF;YACpE,YAAY;YAgBZ,WAAW;YAMX,cAAc;YAKd,cAAc;YAYd,cAAc;IAI5B;;;;;;OAMG;YACW,UAAU;IA2BxB,8EAA8E;YAChE,UAAU;YAaV,aAAa;YAgBb,SAAS;YAMT,YAAY;YAMZ,aAAa;IAW3B;;;;;;OAMG;YACW,eAAe;IAU7B,OAAO,CAAC,UAAU;CAmCnB;AA+BD,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,oBAAoB,CAAC;gBAC3F,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM;CAKjE"}