@multiplatform.one/frappe 6.1.0 → 6.3.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 (792) hide show
  1. package/README.md +38 -12
  2. package/dist/cjs/auth.cjs +1 -1
  3. package/dist/cjs/auth.native.js.map +1 -1
  4. package/dist/cjs/call.cjs +1 -1
  5. package/dist/cjs/call.native.js.map +1 -1
  6. package/dist/cjs/collection.cjs +18 -4
  7. package/dist/cjs/collection.native.js +18 -4
  8. package/dist/cjs/collection.native.js.map +1 -1
  9. package/dist/cjs/core/http.cjs +92 -9
  10. package/dist/cjs/core/http.native.js +96 -7
  11. package/dist/cjs/core/http.native.js.map +1 -1
  12. package/dist/cjs/db.cjs +7 -7
  13. package/dist/cjs/db.native.js +4 -4
  14. package/dist/cjs/db.native.js.map +1 -1
  15. package/dist/cjs/doctype.cjs +97 -39
  16. package/dist/cjs/doctype.native.js +116 -46
  17. package/dist/cjs/doctype.native.js.map +1 -1
  18. package/dist/cjs/file.cjs +1 -1
  19. package/dist/cjs/file.native.js.map +1 -1
  20. package/dist/cjs/fixtureDb.cjs +3 -2
  21. package/dist/cjs/fixtureDb.native.js +2 -1
  22. package/dist/cjs/fixtureDb.native.js.map +1 -1
  23. package/dist/cjs/frappeApp.cjs +15 -14
  24. package/dist/cjs/frappeApp.native.js +16 -14
  25. package/dist/cjs/frappeApp.native.js.map +1 -1
  26. package/dist/cjs/frappeReact.cjs +198 -18
  27. package/dist/cjs/frappeReact.native.js +241 -18
  28. package/dist/cjs/frappeReact.native.js.map +1 -1
  29. package/dist/cjs/index.cjs +9 -4
  30. package/dist/cjs/index.native.js +9 -4
  31. package/dist/cjs/index.native.js.map +1 -1
  32. package/dist/cjs/pacer.cjs +2 -2
  33. package/dist/cjs/pacer.native.js +2 -2
  34. package/dist/cjs/pacer.native.js.map +1 -1
  35. package/dist/cjs/realtime.cjs +186 -46
  36. package/dist/cjs/realtime.native.js +268 -48
  37. package/dist/cjs/realtime.native.js.map +1 -1
  38. package/dist/cjs/sync/backfill.cjs +32 -27
  39. package/dist/cjs/sync/backfill.native.js +49 -43
  40. package/dist/cjs/sync/backfill.native.js.map +1 -1
  41. package/dist/cjs/sync/index.cjs +90 -24
  42. package/dist/cjs/sync/index.native.js +112 -10
  43. package/dist/cjs/sync/index.native.js.map +1 -1
  44. package/dist/cjs/sync/merge.cjs +0 -3
  45. package/dist/cjs/sync/merge.native.js +0 -3
  46. package/dist/cjs/sync/merge.native.js.map +1 -1
  47. package/dist/cjs/sync/mutationEngine.cjs +25 -19
  48. package/dist/cjs/sync/mutationEngine.native.js +16 -13
  49. package/dist/cjs/sync/mutationEngine.native.js.map +1 -1
  50. package/dist/cjs/sync/mutationJournal.cjs +9 -4
  51. package/dist/cjs/sync/mutationJournal.native.js +7 -4
  52. package/dist/cjs/sync/mutationJournal.native.js.map +1 -1
  53. package/dist/cjs/sync/normalizedCache.cjs +7 -3
  54. package/dist/cjs/sync/normalizedCache.native.js +7 -2
  55. package/dist/cjs/sync/normalizedCache.native.js.map +1 -1
  56. package/dist/cjs/sync/persistence.cjs +63 -31
  57. package/dist/cjs/sync/persistence.native.js +120 -63
  58. package/dist/cjs/sync/persistence.native.js.map +1 -1
  59. package/dist/cjs/sync/realtime.cjs +124 -13
  60. package/dist/cjs/sync/realtime.native.js +163 -20
  61. package/dist/cjs/sync/realtime.native.js.map +1 -1
  62. package/dist/cjs/sync/rehydration.cjs +16 -10
  63. package/dist/cjs/sync/rehydration.native.js +16 -14
  64. package/dist/cjs/sync/rehydration.native.js.map +1 -1
  65. package/dist/cjs/sync/storage.cjs +3 -3
  66. package/dist/cjs/sync/storage.native.js +1 -1
  67. package/dist/cjs/sync/storage.native.js.map +1 -1
  68. package/dist/cjs/sync/subscriptionManager.cjs +255 -65
  69. package/dist/cjs/sync/subscriptionManager.native.js +330 -93
  70. package/dist/cjs/sync/subscriptionManager.native.js.map +1 -1
  71. package/dist/cjs/sync/types.cjs +2 -0
  72. package/dist/cjs/sync/types.native.js +2 -0
  73. package/dist/cjs/sync/types.native.js.map +1 -1
  74. package/dist/cjs/sync/virtualPageManager.cjs +9 -9
  75. package/dist/cjs/sync/virtualPageManager.native.js +5 -9
  76. package/dist/cjs/sync/virtualPageManager.native.js.map +1 -1
  77. package/dist/cjs/useLiveQuery.cjs +52 -0
  78. package/dist/cjs/useLiveQuery.native.js +59 -0
  79. package/dist/cjs/useLiveQuery.native.js.map +1 -0
  80. package/dist/cjs/util.cjs +11 -2
  81. package/dist/cjs/util.native.js +16 -2
  82. package/dist/cjs/util.native.js.map +1 -1
  83. package/dist/esm/auth.mjs +1 -1
  84. package/dist/esm/auth.mjs.map +1 -1
  85. package/dist/esm/auth.native.js.map +1 -1
  86. package/dist/esm/call.mjs +1 -1
  87. package/dist/esm/call.mjs.map +1 -1
  88. package/dist/esm/call.native.js.map +1 -1
  89. package/dist/esm/collection.mjs +18 -4
  90. package/dist/esm/collection.mjs.map +1 -1
  91. package/dist/esm/collection.native.js +18 -4
  92. package/dist/esm/collection.native.js.map +1 -1
  93. package/dist/esm/core/http.mjs +93 -10
  94. package/dist/esm/core/http.mjs.map +1 -1
  95. package/dist/esm/core/http.native.js +97 -8
  96. package/dist/esm/core/http.native.js.map +1 -1
  97. package/dist/esm/db.mjs +7 -7
  98. package/dist/esm/db.mjs.map +1 -1
  99. package/dist/esm/db.native.js +4 -4
  100. package/dist/esm/db.native.js.map +1 -1
  101. package/dist/esm/doctype.mjs +96 -39
  102. package/dist/esm/doctype.mjs.map +1 -1
  103. package/dist/esm/doctype.native.js +115 -46
  104. package/dist/esm/doctype.native.js.map +1 -1
  105. package/dist/esm/file.mjs +1 -1
  106. package/dist/esm/file.mjs.map +1 -1
  107. package/dist/esm/file.native.js.map +1 -1
  108. package/dist/esm/fixtureDb.mjs +3 -2
  109. package/dist/esm/fixtureDb.mjs.map +1 -1
  110. package/dist/esm/fixtureDb.native.js +2 -1
  111. package/dist/esm/fixtureDb.native.js.map +1 -1
  112. package/dist/esm/frappeApp.mjs +15 -14
  113. package/dist/esm/frappeApp.mjs.map +1 -1
  114. package/dist/esm/frappeApp.native.js +16 -14
  115. package/dist/esm/frappeApp.native.js.map +1 -1
  116. package/dist/esm/frappeReact.mjs +197 -19
  117. package/dist/esm/frappeReact.mjs.map +1 -1
  118. package/dist/esm/frappeReact.native.js +240 -19
  119. package/dist/esm/frappeReact.native.js.map +1 -1
  120. package/dist/esm/index.mjs +5 -4
  121. package/dist/esm/index.mjs.map +1 -1
  122. package/dist/esm/index.native.js +5 -4
  123. package/dist/esm/index.native.js.map +1 -1
  124. package/dist/esm/pacer.mjs +1 -1
  125. package/dist/esm/pacer.native.js +1 -1
  126. package/dist/esm/realtime.mjs +187 -47
  127. package/dist/esm/realtime.mjs.map +1 -1
  128. package/dist/esm/realtime.native.js +269 -49
  129. package/dist/esm/realtime.native.js.map +1 -1
  130. package/dist/esm/sync/backfill.mjs +32 -27
  131. package/dist/esm/sync/backfill.mjs.map +1 -1
  132. package/dist/esm/sync/backfill.native.js +49 -43
  133. package/dist/esm/sync/backfill.native.js.map +1 -1
  134. package/dist/esm/sync/index.mjs +90 -24
  135. package/dist/esm/sync/index.mjs.map +1 -1
  136. package/dist/esm/sync/index.native.js +112 -10
  137. package/dist/esm/sync/index.native.js.map +1 -1
  138. package/dist/esm/sync/merge.mjs +1 -1
  139. package/dist/esm/sync/merge.mjs.map +1 -1
  140. package/dist/esm/sync/merge.native.js +1 -1
  141. package/dist/esm/sync/merge.native.js.map +1 -1
  142. package/dist/esm/sync/mutationEngine.mjs +25 -19
  143. package/dist/esm/sync/mutationEngine.mjs.map +1 -1
  144. package/dist/esm/sync/mutationEngine.native.js +16 -13
  145. package/dist/esm/sync/mutationEngine.native.js.map +1 -1
  146. package/dist/esm/sync/mutationJournal.mjs +9 -4
  147. package/dist/esm/sync/mutationJournal.mjs.map +1 -1
  148. package/dist/esm/sync/mutationJournal.native.js +7 -4
  149. package/dist/esm/sync/mutationJournal.native.js.map +1 -1
  150. package/dist/esm/sync/normalizedCache.mjs +7 -3
  151. package/dist/esm/sync/normalizedCache.mjs.map +1 -1
  152. package/dist/esm/sync/normalizedCache.native.js +7 -2
  153. package/dist/esm/sync/normalizedCache.native.js.map +1 -1
  154. package/dist/esm/sync/persistence.mjs +64 -32
  155. package/dist/esm/sync/persistence.mjs.map +1 -1
  156. package/dist/esm/sync/persistence.native.js +121 -64
  157. package/dist/esm/sync/persistence.native.js.map +1 -1
  158. package/dist/esm/sync/realtime.mjs +124 -13
  159. package/dist/esm/sync/realtime.mjs.map +1 -1
  160. package/dist/esm/sync/realtime.native.js +163 -20
  161. package/dist/esm/sync/realtime.native.js.map +1 -1
  162. package/dist/esm/sync/rehydration.mjs +16 -10
  163. package/dist/esm/sync/rehydration.mjs.map +1 -1
  164. package/dist/esm/sync/rehydration.native.js +16 -14
  165. package/dist/esm/sync/rehydration.native.js.map +1 -1
  166. package/dist/esm/sync/storage.mjs +3 -3
  167. package/dist/esm/sync/storage.mjs.map +1 -1
  168. package/dist/esm/sync/storage.native.js +1 -1
  169. package/dist/esm/sync/storage.native.js.map +1 -1
  170. package/dist/esm/sync/subscriptionManager.mjs +255 -65
  171. package/dist/esm/sync/subscriptionManager.mjs.map +1 -1
  172. package/dist/esm/sync/subscriptionManager.native.js +330 -93
  173. package/dist/esm/sync/subscriptionManager.native.js.map +1 -1
  174. package/dist/esm/sync/types.mjs +2 -0
  175. package/dist/esm/sync/types.mjs.map +1 -1
  176. package/dist/esm/sync/types.native.js +2 -0
  177. package/dist/esm/sync/types.native.js.map +1 -1
  178. package/dist/esm/sync/virtualPageManager.mjs +9 -9
  179. package/dist/esm/sync/virtualPageManager.mjs.map +1 -1
  180. package/dist/esm/sync/virtualPageManager.native.js +5 -9
  181. package/dist/esm/sync/virtualPageManager.native.js.map +1 -1
  182. package/dist/esm/useLiveQuery.mjs +26 -0
  183. package/dist/esm/useLiveQuery.mjs.map +1 -0
  184. package/dist/esm/useLiveQuery.native.js +30 -0
  185. package/dist/esm/useLiveQuery.native.js.map +1 -0
  186. package/dist/esm/util.mjs +10 -2
  187. package/dist/esm/util.mjs.map +1 -1
  188. package/dist/esm/util.native.js +15 -2
  189. package/dist/esm/util.native.js.map +1 -1
  190. package/dist/jsx/auth.mjs +1 -1
  191. package/dist/jsx/auth.mjs.map +1 -1
  192. package/dist/jsx/auth.native.js.map +1 -1
  193. package/dist/jsx/call.mjs +1 -1
  194. package/dist/jsx/call.mjs.map +1 -1
  195. package/dist/jsx/call.native.js.map +1 -1
  196. package/dist/jsx/collection.mjs +18 -4
  197. package/dist/jsx/collection.mjs.map +1 -1
  198. package/dist/jsx/collection.native.js +18 -4
  199. package/dist/jsx/collection.native.js.map +1 -1
  200. package/dist/jsx/core/http.mjs +93 -10
  201. package/dist/jsx/core/http.mjs.map +1 -1
  202. package/dist/jsx/core/http.native.js +96 -7
  203. package/dist/jsx/core/http.native.js.map +1 -1
  204. package/dist/jsx/db.mjs +7 -7
  205. package/dist/jsx/db.mjs.map +1 -1
  206. package/dist/jsx/db.native.js +4 -4
  207. package/dist/jsx/db.native.js.map +1 -1
  208. package/dist/jsx/doctype.mjs +96 -39
  209. package/dist/jsx/doctype.mjs.map +1 -1
  210. package/dist/jsx/doctype.native.js +116 -46
  211. package/dist/jsx/doctype.native.js.map +1 -1
  212. package/dist/jsx/file.mjs +1 -1
  213. package/dist/jsx/file.mjs.map +1 -1
  214. package/dist/jsx/file.native.js.map +1 -1
  215. package/dist/jsx/fixtureDb.mjs +3 -2
  216. package/dist/jsx/fixtureDb.mjs.map +1 -1
  217. package/dist/jsx/fixtureDb.native.js +2 -1
  218. package/dist/jsx/fixtureDb.native.js.map +1 -1
  219. package/dist/jsx/frappeApp.mjs +15 -14
  220. package/dist/jsx/frappeApp.mjs.map +1 -1
  221. package/dist/jsx/frappeApp.native.js +16 -14
  222. package/dist/jsx/frappeApp.native.js.map +1 -1
  223. package/dist/jsx/frappeReact.mjs +197 -19
  224. package/dist/jsx/frappeReact.mjs.map +1 -1
  225. package/dist/jsx/frappeReact.native.js +241 -18
  226. package/dist/jsx/frappeReact.native.js.map +1 -1
  227. package/dist/jsx/index.js +5 -4
  228. package/dist/jsx/index.js.map +1 -1
  229. package/dist/jsx/index.mjs +5 -4
  230. package/dist/jsx/index.mjs.map +1 -1
  231. package/dist/jsx/index.native.js +9 -4
  232. package/dist/jsx/index.native.js.map +1 -1
  233. package/dist/jsx/pacer.mjs +1 -1
  234. package/dist/jsx/pacer.native.js +2 -2
  235. package/dist/jsx/pacer.native.js.map +1 -1
  236. package/dist/jsx/realtime.mjs +187 -47
  237. package/dist/jsx/realtime.mjs.map +1 -1
  238. package/dist/jsx/realtime.native.js +268 -48
  239. package/dist/jsx/realtime.native.js.map +1 -1
  240. package/dist/jsx/sync/backfill.mjs +32 -27
  241. package/dist/jsx/sync/backfill.mjs.map +1 -1
  242. package/dist/jsx/sync/backfill.native.js +49 -43
  243. package/dist/jsx/sync/backfill.native.js.map +1 -1
  244. package/dist/jsx/sync/index.mjs +90 -24
  245. package/dist/jsx/sync/index.mjs.map +1 -1
  246. package/dist/jsx/sync/index.native.js +112 -10
  247. package/dist/jsx/sync/index.native.js.map +1 -1
  248. package/dist/jsx/sync/merge.mjs +1 -1
  249. package/dist/jsx/sync/merge.mjs.map +1 -1
  250. package/dist/jsx/sync/merge.native.js +0 -3
  251. package/dist/jsx/sync/merge.native.js.map +1 -1
  252. package/dist/jsx/sync/mutationEngine.mjs +25 -19
  253. package/dist/jsx/sync/mutationEngine.mjs.map +1 -1
  254. package/dist/jsx/sync/mutationEngine.native.js +16 -13
  255. package/dist/jsx/sync/mutationEngine.native.js.map +1 -1
  256. package/dist/jsx/sync/mutationJournal.mjs +9 -4
  257. package/dist/jsx/sync/mutationJournal.mjs.map +1 -1
  258. package/dist/jsx/sync/mutationJournal.native.js +7 -4
  259. package/dist/jsx/sync/mutationJournal.native.js.map +1 -1
  260. package/dist/jsx/sync/normalizedCache.mjs +7 -3
  261. package/dist/jsx/sync/normalizedCache.mjs.map +1 -1
  262. package/dist/jsx/sync/normalizedCache.native.js +7 -2
  263. package/dist/jsx/sync/normalizedCache.native.js.map +1 -1
  264. package/dist/jsx/sync/persistence.mjs +64 -32
  265. package/dist/jsx/sync/persistence.mjs.map +1 -1
  266. package/dist/jsx/sync/persistence.native.js +120 -63
  267. package/dist/jsx/sync/persistence.native.js.map +1 -1
  268. package/dist/jsx/sync/realtime.mjs +124 -13
  269. package/dist/jsx/sync/realtime.mjs.map +1 -1
  270. package/dist/jsx/sync/realtime.native.js +163 -20
  271. package/dist/jsx/sync/realtime.native.js.map +1 -1
  272. package/dist/jsx/sync/rehydration.mjs +16 -10
  273. package/dist/jsx/sync/rehydration.mjs.map +1 -1
  274. package/dist/jsx/sync/rehydration.native.js +16 -14
  275. package/dist/jsx/sync/rehydration.native.js.map +1 -1
  276. package/dist/jsx/sync/storage.mjs +3 -3
  277. package/dist/jsx/sync/storage.mjs.map +1 -1
  278. package/dist/jsx/sync/storage.native.js +1 -1
  279. package/dist/jsx/sync/storage.native.js.map +1 -1
  280. package/dist/jsx/sync/subscriptionManager.mjs +255 -65
  281. package/dist/jsx/sync/subscriptionManager.mjs.map +1 -1
  282. package/dist/jsx/sync/subscriptionManager.native.js +330 -93
  283. package/dist/jsx/sync/subscriptionManager.native.js.map +1 -1
  284. package/dist/jsx/sync/types.mjs +2 -0
  285. package/dist/jsx/sync/types.mjs.map +1 -1
  286. package/dist/jsx/sync/types.native.js +2 -0
  287. package/dist/jsx/sync/types.native.js.map +1 -1
  288. package/dist/jsx/sync/virtualPageManager.mjs +9 -9
  289. package/dist/jsx/sync/virtualPageManager.mjs.map +1 -1
  290. package/dist/jsx/sync/virtualPageManager.native.js +5 -9
  291. package/dist/jsx/sync/virtualPageManager.native.js.map +1 -1
  292. package/dist/jsx/useLiveQuery.mjs +26 -0
  293. package/dist/jsx/useLiveQuery.mjs.map +1 -0
  294. package/dist/jsx/useLiveQuery.native.js +59 -0
  295. package/dist/jsx/useLiveQuery.native.js.map +1 -0
  296. package/dist/jsx/util.mjs +10 -2
  297. package/dist/jsx/util.mjs.map +1 -1
  298. package/dist/jsx/util.native.js +16 -2
  299. package/dist/jsx/util.native.js.map +1 -1
  300. package/package.json +20 -17
  301. package/src/auth.ts +5 -1
  302. package/src/call.ts +5 -1
  303. package/src/collection.spec.ts +55 -0
  304. package/src/collection.ts +33 -4
  305. package/src/core/http.spec.ts +66 -0
  306. package/src/core/http.ts +115 -9
  307. package/src/core/httpNative.spec.ts +234 -0
  308. package/src/core/types.ts +2 -0
  309. package/src/db.spec.ts +91 -51
  310. package/src/db.ts +27 -8
  311. package/src/doctype.spec.ts +247 -39
  312. package/src/doctype.ts +203 -53
  313. package/src/file.ts +5 -1
  314. package/src/fixtureDb.ts +13 -2
  315. package/src/frappeApp.ts +18 -19
  316. package/src/frappeReact.spec.ts +565 -1
  317. package/src/frappeReact.ts +445 -37
  318. package/src/frappeReactLiveQueryGc.spec.ts +320 -0
  319. package/src/frappeReactNative.spec.ts +65 -0
  320. package/src/index.ts +10 -9
  321. package/src/pacer.ts +1 -1
  322. package/src/realtime.spec.ts +464 -20
  323. package/src/realtime.ts +284 -46
  324. package/src/sync/backfill.spec.ts +43 -0
  325. package/src/sync/backfill.ts +59 -39
  326. package/src/sync/debug.spec.ts +36 -0
  327. package/src/sync/filterValidation.spec.ts +197 -0
  328. package/src/sync/index.ts +98 -7
  329. package/src/sync/merge.ts +3 -3
  330. package/src/sync/mutationEngine.spec.ts +36 -4
  331. package/src/sync/mutationEngine.ts +30 -11
  332. package/src/sync/mutationJournal.ts +18 -4
  333. package/src/sync/normalizedCache.spec.ts +102 -0
  334. package/src/sync/normalizedCache.ts +19 -3
  335. package/src/sync/offlineRestore.spec.ts +423 -0
  336. package/src/sync/persistence.spec.ts +39 -7
  337. package/src/sync/persistence.ts +90 -18
  338. package/src/sync/persistenceGjs.spec.ts +143 -0
  339. package/src/sync/persistenceNative.spec.ts +139 -0
  340. package/src/sync/realtime.spec.ts +18 -1
  341. package/src/sync/realtime.ts +161 -13
  342. package/src/sync/rehydration.ts +23 -5
  343. package/src/sync/storage.ts +5 -4
  344. package/src/sync/subscriptionManager.spec.ts +94 -0
  345. package/src/sync/subscriptionManager.ts +304 -82
  346. package/src/sync/syncModule.spec.ts +137 -0
  347. package/src/sync/types.ts +39 -0
  348. package/src/sync/virtualPageManager.ts +8 -4
  349. package/src/useLiveQuery.ts +58 -0
  350. package/src/util.spec.ts +35 -4
  351. package/src/util.ts +34 -7
  352. package/types/auth.d.ts +13 -0
  353. package/types/auth.d.ts.map +1 -0
  354. package/types/call.d.ts +10 -0
  355. package/types/call.d.ts.map +1 -0
  356. package/types/collection.d.ts +127 -0
  357. package/types/collection.d.ts.map +1 -0
  358. package/types/common/types.d.ts +35 -0
  359. package/types/common/types.d.ts.map +1 -0
  360. package/types/core/http.d.ts +86 -0
  361. package/types/core/http.d.ts.map +1 -0
  362. package/types/core/types.d.ts +74 -0
  363. package/types/core/types.d.ts.map +1 -0
  364. package/types/core/wire.d.ts +405 -0
  365. package/types/core/wire.d.ts.map +1 -0
  366. package/types/db.d.ts +244 -0
  367. package/types/db.d.ts.map +1 -0
  368. package/types/devtools/FrappeDevtoolsPanel.d.ts +7 -0
  369. package/types/devtools/FrappeDevtoolsPanel.d.ts.map +1 -0
  370. package/types/devtools/index.d.ts +4 -0
  371. package/types/devtools/index.d.ts.map +1 -0
  372. package/types/devtools/plugin.d.ts +9 -0
  373. package/types/devtools/plugin.d.ts.map +1 -0
  374. package/types/devtools/theme.d.ts +15 -0
  375. package/types/devtools/theme.d.ts.map +1 -0
  376. package/types/doctype.d.ts +256 -0
  377. package/types/doctype.d.ts.map +1 -0
  378. package/types/file.d.ts +15 -0
  379. package/types/file.d.ts.map +1 -0
  380. package/types/fixtureDb.d.ts +76 -0
  381. package/types/fixtureDb.d.ts.map +1 -0
  382. package/types/fixtures.d.ts +55 -0
  383. package/types/fixtures.d.ts.map +1 -0
  384. package/types/frappeApp.d.ts +45 -0
  385. package/types/frappeApp.d.ts.map +1 -0
  386. package/types/frappeReact.d.ts +270 -0
  387. package/types/frappeReact.d.ts.map +1 -0
  388. package/types/index.d.ts +44 -0
  389. package/types/index.d.ts.map +1 -0
  390. package/types/optimistic.d.ts +38 -0
  391. package/types/optimistic.d.ts.map +1 -0
  392. package/types/pacer.d.ts +193 -0
  393. package/types/pacer.d.ts.map +1 -0
  394. package/types/plugin/index.d.ts +11 -0
  395. package/types/plugin/index.d.ts.map +1 -0
  396. package/types/realtime.d.ts +121 -0
  397. package/types/realtime.d.ts.map +1 -0
  398. package/types/sync/backfill.d.ts +60 -0
  399. package/types/sync/backfill.d.ts.map +1 -0
  400. package/types/sync/filters.d.ts +101 -0
  401. package/types/sync/filters.d.ts.map +1 -0
  402. package/types/sync/index.d.ts +181 -0
  403. package/types/sync/index.d.ts.map +1 -0
  404. package/types/sync/merge.d.ts +59 -0
  405. package/types/sync/merge.d.ts.map +1 -0
  406. package/types/sync/mutationEngine.d.ts +117 -0
  407. package/types/sync/mutationEngine.d.ts.map +1 -0
  408. package/types/sync/mutationJournal.d.ts +60 -0
  409. package/types/sync/mutationJournal.d.ts.map +1 -0
  410. package/types/sync/normalizedCache.d.ts +59 -0
  411. package/types/sync/normalizedCache.d.ts.map +1 -0
  412. package/types/sync/persistence.d.ts +185 -0
  413. package/types/sync/persistence.d.ts.map +1 -0
  414. package/types/sync/realtime.d.ts +121 -0
  415. package/types/sync/realtime.d.ts.map +1 -0
  416. package/types/sync/rehydration.d.ts +109 -0
  417. package/types/sync/rehydration.d.ts.map +1 -0
  418. package/types/sync/storage.d.ts +65 -0
  419. package/types/sync/storage.d.ts.map +1 -0
  420. package/types/sync/subscriptionManager.d.ts +161 -0
  421. package/types/sync/subscriptionManager.d.ts.map +1 -0
  422. package/types/sync/types.d.ts +435 -0
  423. package/types/sync/types.d.ts.map +1 -0
  424. package/types/sync/virtualPageManager.d.ts +190 -0
  425. package/types/sync/virtualPageManager.d.ts.map +1 -0
  426. package/types/useLiveQuery.d.ts +16 -0
  427. package/types/useLiveQuery.d.ts.map +1 -0
  428. package/types/util.d.ts +24 -0
  429. package/types/util.d.ts.map +1 -0
  430. package/dist/cjs/auth.spec.cjs +0 -322
  431. package/dist/cjs/auth.spec.native.js +0 -329
  432. package/dist/cjs/auth.spec.native.js.map +0 -1
  433. package/dist/cjs/call.spec.cjs +0 -427
  434. package/dist/cjs/call.spec.native.js +0 -430
  435. package/dist/cjs/call.spec.native.js.map +0 -1
  436. package/dist/cjs/collection.spec.cjs +0 -186
  437. package/dist/cjs/collection.spec.native.js +0 -216
  438. package/dist/cjs/collection.spec.native.js.map +0 -1
  439. package/dist/cjs/common/types.spec.cjs +0 -266
  440. package/dist/cjs/common/types.spec.native.js +0 -271
  441. package/dist/cjs/common/types.spec.native.js.map +0 -1
  442. package/dist/cjs/core/http.spec.cjs +0 -1259
  443. package/dist/cjs/core/http.spec.native.js +0 -1401
  444. package/dist/cjs/core/http.spec.native.js.map +0 -1
  445. package/dist/cjs/core/wire.spec.cjs +0 -478
  446. package/dist/cjs/core/wire.spec.native.js +0 -482
  447. package/dist/cjs/core/wire.spec.native.js.map +0 -1
  448. package/dist/cjs/db.spec.cjs +0 -862
  449. package/dist/cjs/db.spec.native.js +0 -865
  450. package/dist/cjs/db.spec.native.js.map +0 -1
  451. package/dist/cjs/doctype.spec.cjs +0 -460
  452. package/dist/cjs/doctype.spec.native.js +0 -538
  453. package/dist/cjs/doctype.spec.native.js.map +0 -1
  454. package/dist/cjs/file.spec.cjs +0 -315
  455. package/dist/cjs/file.spec.native.js +0 -342
  456. package/dist/cjs/file.spec.native.js.map +0 -1
  457. package/dist/cjs/frappeApp.spec.cjs +0 -306
  458. package/dist/cjs/frappeApp.spec.native.js +0 -308
  459. package/dist/cjs/frappeApp.spec.native.js.map +0 -1
  460. package/dist/cjs/frappeReact.spec.cjs +0 -531
  461. package/dist/cjs/frappeReact.spec.native.js +0 -670
  462. package/dist/cjs/frappeReact.spec.native.js.map +0 -1
  463. package/dist/cjs/optimistic.spec.cjs +0 -11
  464. package/dist/cjs/optimistic.spec.native.js +0 -19
  465. package/dist/cjs/optimistic.spec.native.js.map +0 -1
  466. package/dist/cjs/pacer.spec.cjs +0 -470
  467. package/dist/cjs/pacer.spec.native.js +0 -537
  468. package/dist/cjs/pacer.spec.native.js.map +0 -1
  469. package/dist/cjs/realtime.spec.cjs +0 -326
  470. package/dist/cjs/realtime.spec.native.js +0 -392
  471. package/dist/cjs/realtime.spec.native.js.map +0 -1
  472. package/dist/cjs/sync/backfill.spec.cjs +0 -586
  473. package/dist/cjs/sync/backfill.spec.native.js +0 -712
  474. package/dist/cjs/sync/backfill.spec.native.js.map +0 -1
  475. package/dist/cjs/sync/debug.spec.cjs +0 -125
  476. package/dist/cjs/sync/debug.spec.native.js +0 -133
  477. package/dist/cjs/sync/debug.spec.native.js.map +0 -1
  478. package/dist/cjs/sync/filters.spec.cjs +0 -168
  479. package/dist/cjs/sync/filters.spec.native.js +0 -173
  480. package/dist/cjs/sync/filters.spec.native.js.map +0 -1
  481. package/dist/cjs/sync/merge.spec.cjs +0 -908
  482. package/dist/cjs/sync/merge.spec.native.js +0 -937
  483. package/dist/cjs/sync/merge.spec.native.js.map +0 -1
  484. package/dist/cjs/sync/multiOrderBy.spec.cjs +0 -165
  485. package/dist/cjs/sync/multiOrderBy.spec.native.js +0 -229
  486. package/dist/cjs/sync/multiOrderBy.spec.native.js.map +0 -1
  487. package/dist/cjs/sync/mutationEngine.spec.cjs +0 -1158
  488. package/dist/cjs/sync/mutationEngine.spec.native.js +0 -1173
  489. package/dist/cjs/sync/mutationEngine.spec.native.js.map +0 -1
  490. package/dist/cjs/sync/mutationJournal.spec.cjs +0 -330
  491. package/dist/cjs/sync/mutationJournal.spec.native.js +0 -333
  492. package/dist/cjs/sync/mutationJournal.spec.native.js.map +0 -1
  493. package/dist/cjs/sync/mutations.spec.cjs +0 -327
  494. package/dist/cjs/sync/mutations.spec.native.js +0 -330
  495. package/dist/cjs/sync/mutations.spec.native.js.map +0 -1
  496. package/dist/cjs/sync/normalizedCache.spec.cjs +0 -302
  497. package/dist/cjs/sync/normalizedCache.spec.native.js +0 -311
  498. package/dist/cjs/sync/normalizedCache.spec.native.js.map +0 -1
  499. package/dist/cjs/sync/persistence.spec.cjs +0 -562
  500. package/dist/cjs/sync/persistence.spec.native.js +0 -572
  501. package/dist/cjs/sync/persistence.spec.native.js.map +0 -1
  502. package/dist/cjs/sync/realtime.spec.cjs +0 -499
  503. package/dist/cjs/sync/realtime.spec.native.js +0 -512
  504. package/dist/cjs/sync/realtime.spec.native.js.map +0 -1
  505. package/dist/cjs/sync/rehydration.spec.cjs +0 -731
  506. package/dist/cjs/sync/rehydration.spec.native.js +0 -736
  507. package/dist/cjs/sync/rehydration.spec.native.js.map +0 -1
  508. package/dist/cjs/sync/storage.spec.cjs +0 -446
  509. package/dist/cjs/sync/storage.spec.native.js +0 -470
  510. package/dist/cjs/sync/storage.spec.native.js.map +0 -1
  511. package/dist/cjs/sync/subscriptionManager.spec.cjs +0 -1102
  512. package/dist/cjs/sync/subscriptionManager.spec.native.js +0 -1136
  513. package/dist/cjs/sync/subscriptionManager.spec.native.js.map +0 -1
  514. package/dist/cjs/sync/subscriptions.spec.cjs +0 -937
  515. package/dist/cjs/sync/subscriptions.spec.native.js +0 -969
  516. package/dist/cjs/sync/subscriptions.spec.native.js.map +0 -1
  517. package/dist/cjs/sync/syncModule.spec.cjs +0 -206
  518. package/dist/cjs/sync/syncModule.spec.native.js +0 -222
  519. package/dist/cjs/sync/syncModule.spec.native.js.map +0 -1
  520. package/dist/cjs/sync/types.spec.cjs +0 -246
  521. package/dist/cjs/sync/types.spec.native.js +0 -256
  522. package/dist/cjs/sync/types.spec.native.js.map +0 -1
  523. package/dist/cjs/sync/virtualPageManager.spec.cjs +0 -801
  524. package/dist/cjs/sync/virtualPageManager.spec.native.js +0 -873
  525. package/dist/cjs/sync/virtualPageManager.spec.native.js.map +0 -1
  526. package/dist/cjs/util.spec.cjs +0 -43
  527. package/dist/cjs/util.spec.native.js +0 -48
  528. package/dist/cjs/util.spec.native.js.map +0 -1
  529. package/dist/esm/auth.spec.mjs +0 -323
  530. package/dist/esm/auth.spec.mjs.map +0 -1
  531. package/dist/esm/auth.spec.native.js +0 -327
  532. package/dist/esm/auth.spec.native.js.map +0 -1
  533. package/dist/esm/call.spec.mjs +0 -428
  534. package/dist/esm/call.spec.mjs.map +0 -1
  535. package/dist/esm/call.spec.native.js +0 -428
  536. package/dist/esm/call.spec.native.js.map +0 -1
  537. package/dist/esm/collection.spec.mjs +0 -187
  538. package/dist/esm/collection.spec.mjs.map +0 -1
  539. package/dist/esm/collection.spec.native.js +0 -214
  540. package/dist/esm/collection.spec.native.js.map +0 -1
  541. package/dist/esm/common/types.spec.mjs +0 -267
  542. package/dist/esm/common/types.spec.mjs.map +0 -1
  543. package/dist/esm/common/types.spec.native.js +0 -269
  544. package/dist/esm/common/types.spec.native.js.map +0 -1
  545. package/dist/esm/core/http.spec.mjs +0 -1260
  546. package/dist/esm/core/http.spec.mjs.map +0 -1
  547. package/dist/esm/core/http.spec.native.js +0 -1399
  548. package/dist/esm/core/http.spec.native.js.map +0 -1
  549. package/dist/esm/core/wire.spec.mjs +0 -479
  550. package/dist/esm/core/wire.spec.mjs.map +0 -1
  551. package/dist/esm/core/wire.spec.native.js +0 -480
  552. package/dist/esm/core/wire.spec.native.js.map +0 -1
  553. package/dist/esm/db.spec.mjs +0 -863
  554. package/dist/esm/db.spec.mjs.map +0 -1
  555. package/dist/esm/db.spec.native.js +0 -863
  556. package/dist/esm/db.spec.native.js.map +0 -1
  557. package/dist/esm/doctype.spec.mjs +0 -461
  558. package/dist/esm/doctype.spec.mjs.map +0 -1
  559. package/dist/esm/doctype.spec.native.js +0 -536
  560. package/dist/esm/doctype.spec.native.js.map +0 -1
  561. package/dist/esm/file.spec.mjs +0 -316
  562. package/dist/esm/file.spec.mjs.map +0 -1
  563. package/dist/esm/file.spec.native.js +0 -340
  564. package/dist/esm/file.spec.native.js.map +0 -1
  565. package/dist/esm/frappeApp.spec.mjs +0 -307
  566. package/dist/esm/frappeApp.spec.mjs.map +0 -1
  567. package/dist/esm/frappeApp.spec.native.js +0 -306
  568. package/dist/esm/frappeApp.spec.native.js.map +0 -1
  569. package/dist/esm/frappeReact.spec.mjs +0 -532
  570. package/dist/esm/frappeReact.spec.mjs.map +0 -1
  571. package/dist/esm/frappeReact.spec.native.js +0 -668
  572. package/dist/esm/frappeReact.spec.native.js.map +0 -1
  573. package/dist/esm/optimistic.spec.mjs +0 -12
  574. package/dist/esm/optimistic.spec.mjs.map +0 -1
  575. package/dist/esm/optimistic.spec.native.js +0 -17
  576. package/dist/esm/optimistic.spec.native.js.map +0 -1
  577. package/dist/esm/pacer.spec.mjs +0 -447
  578. package/dist/esm/pacer.spec.mjs.map +0 -1
  579. package/dist/esm/pacer.spec.native.js +0 -511
  580. package/dist/esm/pacer.spec.native.js.map +0 -1
  581. package/dist/esm/realtime.spec.mjs +0 -327
  582. package/dist/esm/realtime.spec.mjs.map +0 -1
  583. package/dist/esm/realtime.spec.native.js +0 -390
  584. package/dist/esm/realtime.spec.native.js.map +0 -1
  585. package/dist/esm/sync/backfill.spec.mjs +0 -563
  586. package/dist/esm/sync/backfill.spec.mjs.map +0 -1
  587. package/dist/esm/sync/backfill.spec.native.js +0 -686
  588. package/dist/esm/sync/backfill.spec.native.js.map +0 -1
  589. package/dist/esm/sync/debug.spec.mjs +0 -102
  590. package/dist/esm/sync/debug.spec.mjs.map +0 -1
  591. package/dist/esm/sync/debug.spec.native.js +0 -107
  592. package/dist/esm/sync/debug.spec.native.js.map +0 -1
  593. package/dist/esm/sync/filters.spec.mjs +0 -169
  594. package/dist/esm/sync/filters.spec.mjs.map +0 -1
  595. package/dist/esm/sync/filters.spec.native.js +0 -171
  596. package/dist/esm/sync/filters.spec.native.js.map +0 -1
  597. package/dist/esm/sync/merge.spec.mjs +0 -909
  598. package/dist/esm/sync/merge.spec.mjs.map +0 -1
  599. package/dist/esm/sync/merge.spec.native.js +0 -935
  600. package/dist/esm/sync/merge.spec.native.js.map +0 -1
  601. package/dist/esm/sync/multiOrderBy.spec.mjs +0 -166
  602. package/dist/esm/sync/multiOrderBy.spec.mjs.map +0 -1
  603. package/dist/esm/sync/multiOrderBy.spec.native.js +0 -227
  604. package/dist/esm/sync/multiOrderBy.spec.native.js.map +0 -1
  605. package/dist/esm/sync/mutationEngine.spec.mjs +0 -1159
  606. package/dist/esm/sync/mutationEngine.spec.mjs.map +0 -1
  607. package/dist/esm/sync/mutationEngine.spec.native.js +0 -1171
  608. package/dist/esm/sync/mutationEngine.spec.native.js.map +0 -1
  609. package/dist/esm/sync/mutationJournal.spec.mjs +0 -331
  610. package/dist/esm/sync/mutationJournal.spec.mjs.map +0 -1
  611. package/dist/esm/sync/mutationJournal.spec.native.js +0 -331
  612. package/dist/esm/sync/mutationJournal.spec.native.js.map +0 -1
  613. package/dist/esm/sync/mutations.spec.mjs +0 -328
  614. package/dist/esm/sync/mutations.spec.mjs.map +0 -1
  615. package/dist/esm/sync/mutations.spec.native.js +0 -328
  616. package/dist/esm/sync/mutations.spec.native.js.map +0 -1
  617. package/dist/esm/sync/normalizedCache.spec.mjs +0 -303
  618. package/dist/esm/sync/normalizedCache.spec.mjs.map +0 -1
  619. package/dist/esm/sync/normalizedCache.spec.native.js +0 -309
  620. package/dist/esm/sync/normalizedCache.spec.native.js.map +0 -1
  621. package/dist/esm/sync/persistence.spec.mjs +0 -563
  622. package/dist/esm/sync/persistence.spec.mjs.map +0 -1
  623. package/dist/esm/sync/persistence.spec.native.js +0 -570
  624. package/dist/esm/sync/persistence.spec.native.js.map +0 -1
  625. package/dist/esm/sync/realtime.spec.mjs +0 -500
  626. package/dist/esm/sync/realtime.spec.mjs.map +0 -1
  627. package/dist/esm/sync/realtime.spec.native.js +0 -510
  628. package/dist/esm/sync/realtime.spec.native.js.map +0 -1
  629. package/dist/esm/sync/rehydration.spec.mjs +0 -732
  630. package/dist/esm/sync/rehydration.spec.mjs.map +0 -1
  631. package/dist/esm/sync/rehydration.spec.native.js +0 -734
  632. package/dist/esm/sync/rehydration.spec.native.js.map +0 -1
  633. package/dist/esm/sync/storage.spec.mjs +0 -423
  634. package/dist/esm/sync/storage.spec.mjs.map +0 -1
  635. package/dist/esm/sync/storage.spec.native.js +0 -444
  636. package/dist/esm/sync/storage.spec.native.js.map +0 -1
  637. package/dist/esm/sync/subscriptionManager.spec.mjs +0 -1079
  638. package/dist/esm/sync/subscriptionManager.spec.mjs.map +0 -1
  639. package/dist/esm/sync/subscriptionManager.spec.native.js +0 -1110
  640. package/dist/esm/sync/subscriptionManager.spec.native.js.map +0 -1
  641. package/dist/esm/sync/subscriptions.spec.mjs +0 -914
  642. package/dist/esm/sync/subscriptions.spec.mjs.map +0 -1
  643. package/dist/esm/sync/subscriptions.spec.native.js +0 -943
  644. package/dist/esm/sync/subscriptions.spec.native.js.map +0 -1
  645. package/dist/esm/sync/syncModule.spec.mjs +0 -207
  646. package/dist/esm/sync/syncModule.spec.mjs.map +0 -1
  647. package/dist/esm/sync/syncModule.spec.native.js +0 -220
  648. package/dist/esm/sync/syncModule.spec.native.js.map +0 -1
  649. package/dist/esm/sync/types.spec.mjs +0 -247
  650. package/dist/esm/sync/types.spec.mjs.map +0 -1
  651. package/dist/esm/sync/types.spec.native.js +0 -254
  652. package/dist/esm/sync/types.spec.native.js.map +0 -1
  653. package/dist/esm/sync/virtualPageManager.spec.mjs +0 -802
  654. package/dist/esm/sync/virtualPageManager.spec.mjs.map +0 -1
  655. package/dist/esm/sync/virtualPageManager.spec.native.js +0 -871
  656. package/dist/esm/sync/virtualPageManager.spec.native.js.map +0 -1
  657. package/dist/esm/util.spec.mjs +0 -20
  658. package/dist/esm/util.spec.mjs.map +0 -1
  659. package/dist/esm/util.spec.native.js +0 -22
  660. package/dist/esm/util.spec.native.js.map +0 -1
  661. package/dist/jsx/auth.spec.mjs +0 -323
  662. package/dist/jsx/auth.spec.mjs.map +0 -1
  663. package/dist/jsx/auth.spec.native.js +0 -329
  664. package/dist/jsx/auth.spec.native.js.map +0 -1
  665. package/dist/jsx/call.spec.mjs +0 -428
  666. package/dist/jsx/call.spec.mjs.map +0 -1
  667. package/dist/jsx/call.spec.native.js +0 -430
  668. package/dist/jsx/call.spec.native.js.map +0 -1
  669. package/dist/jsx/collection.spec.mjs +0 -187
  670. package/dist/jsx/collection.spec.mjs.map +0 -1
  671. package/dist/jsx/collection.spec.native.js +0 -216
  672. package/dist/jsx/collection.spec.native.js.map +0 -1
  673. package/dist/jsx/common/types.spec.mjs +0 -267
  674. package/dist/jsx/common/types.spec.mjs.map +0 -1
  675. package/dist/jsx/common/types.spec.native.js +0 -271
  676. package/dist/jsx/common/types.spec.native.js.map +0 -1
  677. package/dist/jsx/core/http.spec.mjs +0 -1260
  678. package/dist/jsx/core/http.spec.mjs.map +0 -1
  679. package/dist/jsx/core/http.spec.native.js +0 -1401
  680. package/dist/jsx/core/http.spec.native.js.map +0 -1
  681. package/dist/jsx/core/wire.spec.mjs +0 -479
  682. package/dist/jsx/core/wire.spec.mjs.map +0 -1
  683. package/dist/jsx/core/wire.spec.native.js +0 -482
  684. package/dist/jsx/core/wire.spec.native.js.map +0 -1
  685. package/dist/jsx/db.spec.mjs +0 -863
  686. package/dist/jsx/db.spec.mjs.map +0 -1
  687. package/dist/jsx/db.spec.native.js +0 -865
  688. package/dist/jsx/db.spec.native.js.map +0 -1
  689. package/dist/jsx/doctype.spec.mjs +0 -461
  690. package/dist/jsx/doctype.spec.mjs.map +0 -1
  691. package/dist/jsx/doctype.spec.native.js +0 -538
  692. package/dist/jsx/doctype.spec.native.js.map +0 -1
  693. package/dist/jsx/file.spec.mjs +0 -316
  694. package/dist/jsx/file.spec.mjs.map +0 -1
  695. package/dist/jsx/file.spec.native.js +0 -342
  696. package/dist/jsx/file.spec.native.js.map +0 -1
  697. package/dist/jsx/frappeApp.spec.mjs +0 -307
  698. package/dist/jsx/frappeApp.spec.mjs.map +0 -1
  699. package/dist/jsx/frappeApp.spec.native.js +0 -308
  700. package/dist/jsx/frappeApp.spec.native.js.map +0 -1
  701. package/dist/jsx/frappeReact.spec.mjs +0 -532
  702. package/dist/jsx/frappeReact.spec.mjs.map +0 -1
  703. package/dist/jsx/frappeReact.spec.native.js +0 -670
  704. package/dist/jsx/frappeReact.spec.native.js.map +0 -1
  705. package/dist/jsx/optimistic.spec.mjs +0 -12
  706. package/dist/jsx/optimistic.spec.mjs.map +0 -1
  707. package/dist/jsx/optimistic.spec.native.js +0 -19
  708. package/dist/jsx/optimistic.spec.native.js.map +0 -1
  709. package/dist/jsx/pacer.spec.mjs +0 -447
  710. package/dist/jsx/pacer.spec.mjs.map +0 -1
  711. package/dist/jsx/pacer.spec.native.js +0 -537
  712. package/dist/jsx/pacer.spec.native.js.map +0 -1
  713. package/dist/jsx/realtime.spec.mjs +0 -327
  714. package/dist/jsx/realtime.spec.mjs.map +0 -1
  715. package/dist/jsx/realtime.spec.native.js +0 -392
  716. package/dist/jsx/realtime.spec.native.js.map +0 -1
  717. package/dist/jsx/sync/backfill.spec.mjs +0 -563
  718. package/dist/jsx/sync/backfill.spec.mjs.map +0 -1
  719. package/dist/jsx/sync/backfill.spec.native.js +0 -712
  720. package/dist/jsx/sync/backfill.spec.native.js.map +0 -1
  721. package/dist/jsx/sync/debug.spec.mjs +0 -102
  722. package/dist/jsx/sync/debug.spec.mjs.map +0 -1
  723. package/dist/jsx/sync/debug.spec.native.js +0 -133
  724. package/dist/jsx/sync/debug.spec.native.js.map +0 -1
  725. package/dist/jsx/sync/filters.spec.mjs +0 -169
  726. package/dist/jsx/sync/filters.spec.mjs.map +0 -1
  727. package/dist/jsx/sync/filters.spec.native.js +0 -173
  728. package/dist/jsx/sync/filters.spec.native.js.map +0 -1
  729. package/dist/jsx/sync/merge.spec.mjs +0 -909
  730. package/dist/jsx/sync/merge.spec.mjs.map +0 -1
  731. package/dist/jsx/sync/merge.spec.native.js +0 -937
  732. package/dist/jsx/sync/merge.spec.native.js.map +0 -1
  733. package/dist/jsx/sync/multiOrderBy.spec.mjs +0 -166
  734. package/dist/jsx/sync/multiOrderBy.spec.mjs.map +0 -1
  735. package/dist/jsx/sync/multiOrderBy.spec.native.js +0 -229
  736. package/dist/jsx/sync/multiOrderBy.spec.native.js.map +0 -1
  737. package/dist/jsx/sync/mutationEngine.spec.mjs +0 -1159
  738. package/dist/jsx/sync/mutationEngine.spec.mjs.map +0 -1
  739. package/dist/jsx/sync/mutationEngine.spec.native.js +0 -1173
  740. package/dist/jsx/sync/mutationEngine.spec.native.js.map +0 -1
  741. package/dist/jsx/sync/mutationJournal.spec.mjs +0 -331
  742. package/dist/jsx/sync/mutationJournal.spec.mjs.map +0 -1
  743. package/dist/jsx/sync/mutationJournal.spec.native.js +0 -333
  744. package/dist/jsx/sync/mutationJournal.spec.native.js.map +0 -1
  745. package/dist/jsx/sync/mutations.spec.mjs +0 -328
  746. package/dist/jsx/sync/mutations.spec.mjs.map +0 -1
  747. package/dist/jsx/sync/mutations.spec.native.js +0 -330
  748. package/dist/jsx/sync/mutations.spec.native.js.map +0 -1
  749. package/dist/jsx/sync/normalizedCache.spec.mjs +0 -303
  750. package/dist/jsx/sync/normalizedCache.spec.mjs.map +0 -1
  751. package/dist/jsx/sync/normalizedCache.spec.native.js +0 -311
  752. package/dist/jsx/sync/normalizedCache.spec.native.js.map +0 -1
  753. package/dist/jsx/sync/persistence.spec.mjs +0 -563
  754. package/dist/jsx/sync/persistence.spec.mjs.map +0 -1
  755. package/dist/jsx/sync/persistence.spec.native.js +0 -572
  756. package/dist/jsx/sync/persistence.spec.native.js.map +0 -1
  757. package/dist/jsx/sync/realtime.spec.mjs +0 -500
  758. package/dist/jsx/sync/realtime.spec.mjs.map +0 -1
  759. package/dist/jsx/sync/realtime.spec.native.js +0 -512
  760. package/dist/jsx/sync/realtime.spec.native.js.map +0 -1
  761. package/dist/jsx/sync/rehydration.spec.mjs +0 -732
  762. package/dist/jsx/sync/rehydration.spec.mjs.map +0 -1
  763. package/dist/jsx/sync/rehydration.spec.native.js +0 -736
  764. package/dist/jsx/sync/rehydration.spec.native.js.map +0 -1
  765. package/dist/jsx/sync/storage.spec.mjs +0 -423
  766. package/dist/jsx/sync/storage.spec.mjs.map +0 -1
  767. package/dist/jsx/sync/storage.spec.native.js +0 -470
  768. package/dist/jsx/sync/storage.spec.native.js.map +0 -1
  769. package/dist/jsx/sync/subscriptionManager.spec.mjs +0 -1079
  770. package/dist/jsx/sync/subscriptionManager.spec.mjs.map +0 -1
  771. package/dist/jsx/sync/subscriptionManager.spec.native.js +0 -1136
  772. package/dist/jsx/sync/subscriptionManager.spec.native.js.map +0 -1
  773. package/dist/jsx/sync/subscriptions.spec.mjs +0 -914
  774. package/dist/jsx/sync/subscriptions.spec.mjs.map +0 -1
  775. package/dist/jsx/sync/subscriptions.spec.native.js +0 -969
  776. package/dist/jsx/sync/subscriptions.spec.native.js.map +0 -1
  777. package/dist/jsx/sync/syncModule.spec.mjs +0 -207
  778. package/dist/jsx/sync/syncModule.spec.mjs.map +0 -1
  779. package/dist/jsx/sync/syncModule.spec.native.js +0 -222
  780. package/dist/jsx/sync/syncModule.spec.native.js.map +0 -1
  781. package/dist/jsx/sync/types.spec.mjs +0 -247
  782. package/dist/jsx/sync/types.spec.mjs.map +0 -1
  783. package/dist/jsx/sync/types.spec.native.js +0 -256
  784. package/dist/jsx/sync/types.spec.native.js.map +0 -1
  785. package/dist/jsx/sync/virtualPageManager.spec.mjs +0 -802
  786. package/dist/jsx/sync/virtualPageManager.spec.mjs.map +0 -1
  787. package/dist/jsx/sync/virtualPageManager.spec.native.js +0 -873
  788. package/dist/jsx/sync/virtualPageManager.spec.native.js.map +0 -1
  789. package/dist/jsx/util.spec.mjs +0 -20
  790. package/dist/jsx/util.spec.mjs.map +0 -1
  791. package/dist/jsx/util.spec.native.js +0 -48
  792. package/dist/jsx/util.spec.native.js.map +0 -1
@@ -75,31 +75,30 @@ var SubscriptionManager = /* @__PURE__ */function () {
75
75
  function SubscriptionManager2(db, normalizedCache) {
76
76
  var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
77
77
  _class_call_check(this, SubscriptionManager2);
78
+ _define_property(this, "subscriptions", /* @__PURE__ */new Map());
79
+ _define_property(this, "virtualPageManager", void 0);
80
+ _define_property(this, "backfillManager", void 0);
81
+ _define_property(this, "queryKeyToSubId", /* @__PURE__ */new Map());
82
+ _define_property(this, "subRefCounts", /* @__PURE__ */new Map());
83
+ _define_property(this, "restoredByQueryKey", /* @__PURE__ */new Map());
84
+ _define_property(this, "restoredAt", /* @__PURE__ */new Map());
78
85
  _define_property(this, "db", void 0);
79
86
  _define_property(this, "normalizedCache", void 0);
80
87
  _define_property(this, "options", void 0);
81
- _define_property(this, "subscriptions", void 0);
82
- _define_property(this, "virtualPageManager", void 0);
83
- _define_property(this, "backfillManager", void 0);
84
- _define_property(this, "queryKeyToSubId", void 0);
85
- _define_property(this, "subRefCounts", void 0);
86
88
  this.db = db;
87
89
  this.normalizedCache = normalizedCache;
88
90
  this.options = options;
89
- this.subscriptions = /* @__PURE__ */new Map();
90
- this.queryKeyToSubId = /* @__PURE__ */new Map();
91
- this.subRefCounts = /* @__PURE__ */new Map();
92
91
  this.virtualPageManager = new import_virtualPageManager.VirtualPageManager(this.normalizedCache, this.db, {
93
92
  batchSize: this.options.batchSize
94
93
  });
95
94
  this.backfillManager = new import_backfill.BackfillManager(this.db, this.normalizedCache, {
96
- pageSize: this.options.pageSize
95
+ pageSize: this.options.pageSize,
96
+ maxPages: this.options.backfillMaxPages
97
97
  });
98
98
  }
99
99
  _create_class(SubscriptionManager2, [{
100
100
  key: "subscribe",
101
101
  value: async function subscribe(query) {
102
- var _query_fields;
103
102
  var queryKey = JSON.stringify(query);
104
103
  var existingId = this.queryKeyToSubId.get(queryKey);
105
104
  if (existingId && this.subscriptions.has(existingId)) {
@@ -112,19 +111,73 @@ var SubscriptionManager = /* @__PURE__ */function () {
112
111
  checkpoint
113
112
  };
114
113
  }
114
+ var adopted = this.adoptRestoredSubscription(queryKey, query);
115
+ if (adopted) return adopted;
115
116
  var subscriptionId = cryptoRandomId();
117
+ var {
118
+ rows: rows1,
119
+ cursor,
120
+ checkpoint: checkpoint1
121
+ } = await this.fetchInitialRows(query);
122
+ var subscription = {
123
+ id: subscriptionId,
124
+ query,
125
+ checkpoint: checkpoint1,
126
+ // For CDC backfill
127
+ cursor,
128
+ // For stable pagination
129
+ docIds: rows1.map(function (row) {
130
+ return row.name;
131
+ }),
132
+ tombstones: /* @__PURE__ */new Map()
133
+ };
134
+ if (rows1.length > 0) {
135
+ subscription.boundaries = {
136
+ firstItem: rows1[0],
137
+ lastItem: rows1[rows1.length - 1],
138
+ offset: query.limitStart || 0,
139
+ pageSize: query.limit || 20
140
+ };
141
+ }
142
+ subscription.metadata = {
143
+ itemsBeforePage: 0,
144
+ itemsAfterPage: 0
145
+ };
146
+ this.subscriptions.set(subscriptionId, subscription);
147
+ this.queryKeyToSubId.set(queryKey, subscriptionId);
148
+ this.subRefCounts.set(subscriptionId, 1);
149
+ if (query.progressive) {
150
+ this.virtualPageManager.registerSubscription(subscriptionId, subscription, subscription.docIds, cursor);
151
+ }
152
+ return {
153
+ subscriptionId,
154
+ rows: rows1,
155
+ checkpoint: checkpoint1
156
+ };
157
+ }
158
+ }, {
159
+ key: "fetchInitialRows",
160
+ value: (
161
+ /**
162
+ * Performs the initial subscription fetch (single doc via getDoc, lists via
163
+ * getDocList), seeds the normalized cache, and computes the CDC checkpoint
164
+ * as the max `modified` across returned rows. Shared by fresh subscribes
165
+ * and adopted-subscription refreshes so both have identical semantics.
166
+ */
167
+ async function fetchInitialRows(query) {
168
+ var _query_fields;
116
169
  var queryFields = ((_query_fields = query.fields) === null || _query_fields === void 0 ? void 0 : _query_fields.length) ? Array.from(/* @__PURE__ */new Set([...query.fields, "modified", "name"])) : void 0;
117
- var rows1 = [];
170
+ var rows = [];
118
171
  var cursor;
119
172
  var singleName = (0, import_filters.extractSingleName)(query.filters);
120
173
  if (singleName) {
121
174
  try {
122
175
  var document = await this.db.getDoc(query.doctype, singleName);
123
- rows1 = document ? [document] : [];
176
+ rows = document ? [document] : [];
124
177
  } catch (error) {
125
178
  var errorWithStatus = error;
126
179
  if ((errorWithStatus === null || errorWithStatus === void 0 ? void 0 : errorWithStatus.status) === 404) {
127
- rows1 = [];
180
+ rows = [];
128
181
  } else {
129
182
  throw error;
130
183
  }
@@ -138,17 +191,17 @@ var SubscriptionManager = /* @__PURE__ */function () {
138
191
  if (this.options.useCursorPagination) listOptions.cursor = void 0;
139
192
  var response = await this.db.getDocList(query.doctype, listOptions);
140
193
  if ((typeof response === "undefined" ? "undefined" : _type_of(response)) === "object" && response !== null && "data" in response) {
141
- rows1 = response.data;
194
+ rows = response.data;
142
195
  cursor = response.cursor;
143
196
  } else {
144
- rows1 = response;
197
+ rows = response;
145
198
  }
146
199
  }
147
200
  var _iteratorNormalCompletion = true,
148
201
  _didIteratorError = false,
149
202
  _iteratorError = void 0;
150
203
  try {
151
- for (var _iterator = rows1[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
204
+ for (var _iterator = rows[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
152
205
  var row = _step.value;
153
206
  if (!row.doctype) row.doctype = query.doctype;
154
207
  this.normalizedCache.upsert(row);
@@ -167,15 +220,15 @@ var SubscriptionManager = /* @__PURE__ */function () {
167
220
  }
168
221
  }
169
222
  }
170
- var checkpoint1 = void 0;
223
+ var checkpoint = void 0;
171
224
  var _iteratorNormalCompletion1 = true,
172
225
  _didIteratorError1 = false,
173
226
  _iteratorError1 = void 0;
174
227
  try {
175
- for (var _iterator1 = rows1[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
228
+ for (var _iterator1 = rows[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
176
229
  var row1 = _step1.value;
177
230
  if (!row1.modified) continue;
178
- if (!checkpoint1 || row1.modified > checkpoint1) checkpoint1 = row1.modified;
231
+ if (!checkpoint || row1.modified > checkpoint) checkpoint = row1.modified;
179
232
  }
180
233
  } catch (err) {
181
234
  _didIteratorError1 = true;
@@ -191,47 +244,203 @@ var SubscriptionManager = /* @__PURE__ */function () {
191
244
  }
192
245
  }
193
246
  }
194
- var subscription = {
195
- id: subscriptionId,
196
- query,
197
- checkpoint: checkpoint1,
198
- // For CDC backfill
247
+ return {
248
+ rows,
199
249
  cursor,
200
- // For stable pagination
201
- docIds: rows1.map(function (row2) {
202
- return row2.name;
203
- }),
204
- tombstones: /* @__PURE__ */new Map()
250
+ checkpoint
205
251
  };
206
- if (rows1.length > 0) {
207
- subscription.boundaries = {
208
- firstItem: rows1[0],
209
- lastItem: rows1[rows1.length - 1],
210
- offset: query.limitStart || 0,
211
- pageSize: query.limit || 20
252
+ })
253
+ }, {
254
+ key: "adoptRestoredSubscription",
255
+ value: (
256
+ /**
257
+ * Re-adopts a subscription restored from a persisted snapshot when an
258
+ * identical query subscribes: the cached membership renders immediately and
259
+ * a background refresh re-seeds from the network. Progressive queries are
260
+ * excluded — their VirtualPageManager state is not persisted, so they take
261
+ * the fresh-subscribe path.
262
+ */
263
+ function adoptRestoredSubscription(queryKey, query) {
264
+ if (query.progressive) return void 0;
265
+ var restoredId = this.restoredByQueryKey.get(queryKey);
266
+ if (!restoredId) return void 0;
267
+ var subscription = this.subscriptions.get(restoredId);
268
+ this.restoredByQueryKey.delete(queryKey);
269
+ this.restoredAt.delete(restoredId);
270
+ if (!subscription) return void 0;
271
+ this.queryKeyToSubId.set(queryKey, restoredId);
272
+ this.subRefCounts.set(restoredId, 1);
273
+ var refresh = this.refreshAdoptedSubscription(subscription);
274
+ var rows = this.getDocsForSubscription(restoredId);
275
+ return {
276
+ subscriptionId: restoredId,
277
+ rows,
278
+ checkpoint: subscription.checkpoint,
279
+ refresh
280
+ };
281
+ })
282
+ }, {
283
+ key: "refreshAdoptedSubscription",
284
+ value: (
285
+ /**
286
+ * Network refresh for an adopted subscription with fresh-subscribe
287
+ * semantics: an authoritative page fetch replaces membership and recomputes
288
+ * the checkpoint (identical to what a brand-new subscribe would produce).
289
+ * On failure (offline) the cached membership and the restored CDC
290
+ * checkpoint are kept and the subscription is marked stale — the next
291
+ * backfill trigger drains changes from that checkpoint. Never rejects.
292
+ */
293
+ async function refreshAdoptedSubscription(subscription) {
294
+ try {
295
+ var {
296
+ rows,
297
+ cursor,
298
+ checkpoint
299
+ } = await this.fetchInitialRows(subscription.query);
300
+ subscription.checkpoint = checkpoint;
301
+ subscription.cursor = cursor;
302
+ subscription.docIds = rows.map(function (row) {
303
+ return row.name;
304
+ });
305
+ if (rows.length > 0) {
306
+ subscription.boundaries = {
307
+ firstItem: rows[0],
308
+ lastItem: rows[rows.length - 1],
309
+ offset: subscription.query.limitStart || 0,
310
+ pageSize: subscription.query.limit || 20
311
+ };
312
+ }
313
+ subscription.metadata = {
314
+ itemsBeforePage: 0,
315
+ itemsAfterPage: 0
316
+ };
317
+ subscription.stale = false;
318
+ return {
319
+ ok: true
320
+ };
321
+ } catch (error) {
322
+ subscription.stale = true;
323
+ return {
324
+ ok: false,
325
+ error
212
326
  };
213
327
  }
214
- subscription.metadata = {
215
- itemsBeforePage: 0,
216
- itemsAfterPage: 0
217
- };
218
- this.subscriptions.set(subscriptionId, subscription);
219
- this.queryKeyToSubId.set(queryKey, subscriptionId);
220
- this.subRefCounts.set(subscriptionId, 1);
221
- if (query.progressive) {
222
- this.virtualPageManager.registerSubscription(subscriptionId, subscription, subscription.docIds, cursor);
328
+ })
329
+ }, {
330
+ /**
331
+ * Registers a subscription restored from a persisted snapshot. Restored
332
+ * subscriptions are dormant: they hold the persisted query, CDC checkpoint,
333
+ * and membership for cache-first re-adoption, but are skipped by backfill
334
+ * fan-out until adopted. Duplicate snapshot entries for the same query
335
+ * (accumulated by pre-GC versions) collapse last-wins.
336
+ */
337
+ key: "restoreSubscription",
338
+ value: function restoreSubscription(snapshotSub) {
339
+ var _snapshotSub_query;
340
+ if (!(snapshotSub === null || snapshotSub === void 0 ? void 0 : snapshotSub.id) || !((_snapshotSub_query = snapshotSub.query) === null || _snapshotSub_query === void 0 ? void 0 : _snapshotSub_query.doctype)) return;
341
+ if (this.subscriptions.has(snapshotSub.id)) return;
342
+ var queryKey = JSON.stringify(snapshotSub.query);
343
+ var activeId = this.queryKeyToSubId.get(queryKey);
344
+ if (activeId && this.subscriptions.has(activeId)) return;
345
+ var previousId = this.restoredByQueryKey.get(queryKey);
346
+ if (previousId) {
347
+ this.subscriptions.delete(previousId);
348
+ this.restoredAt.delete(previousId);
223
349
  }
224
- return {
225
- subscriptionId,
226
- rows: rows1,
227
- checkpoint: checkpoint1
350
+ var subscription = {
351
+ id: snapshotSub.id,
352
+ query: snapshotSub.query,
353
+ checkpoint: snapshotSub.checkpoint,
354
+ cursor: snapshotSub.cursor,
355
+ docIds: Array.isArray(snapshotSub.docIds) ? snapshotSub.docIds : [],
356
+ tombstones: /* @__PURE__ */new Map(),
357
+ metadata: {
358
+ itemsBeforePage: 0,
359
+ itemsAfterPage: 0
360
+ }
228
361
  };
362
+ this.subscriptions.set(subscription.id, subscription);
363
+ this.restoredByQueryKey.set(queryKey, subscription.id);
364
+ this.restoredAt.set(subscription.id, Date.now());
365
+ }
366
+ }, {
367
+ /** True when the subscription came from a snapshot and is not yet adopted. */
368
+ key: "isRestoredSubscription",
369
+ value: function isRestoredSubscription(subscriptionId) {
370
+ return this.restoredAt.has(subscriptionId);
371
+ }
372
+ }, {
373
+ /**
374
+ * Drops restored subscriptions that no query re-adopted within
375
+ * `restoredSubscriptionTTL` (default 30 minutes). Called before every
376
+ * persistence snapshot so expired entries also leave the snapshot.
377
+ */
378
+ key: "gcRestoredSubscriptions",
379
+ value: function gcRestoredSubscriptions() {
380
+ var now = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Date.now();
381
+ var _this_options_restoredSubscriptionTTL;
382
+ var ttl = (_this_options_restoredSubscriptionTTL = this.options.restoredSubscriptionTTL) !== null && _this_options_restoredSubscriptionTTL !== void 0 ? _this_options_restoredSubscriptionTTL : 30 * 60 * 1e3;
383
+ var _iteratorNormalCompletion = true,
384
+ _didIteratorError = false,
385
+ _iteratorError = void 0;
386
+ try {
387
+ for (var _iterator = this.restoredAt[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
388
+ var [subscriptionId, restoredAtMs] = _step.value;
389
+ if (now - restoredAtMs <= ttl) continue;
390
+ this.restoredAt.delete(subscriptionId);
391
+ this.subscriptions.delete(subscriptionId);
392
+ var _iteratorNormalCompletion1 = true,
393
+ _didIteratorError1 = false,
394
+ _iteratorError1 = void 0;
395
+ try {
396
+ for (var _iterator1 = this.restoredByQueryKey[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
397
+ var [key, id] = _step1.value;
398
+ if (id === subscriptionId) {
399
+ this.restoredByQueryKey.delete(key);
400
+ break;
401
+ }
402
+ }
403
+ } catch (err) {
404
+ _didIteratorError1 = true;
405
+ _iteratorError1 = err;
406
+ } finally {
407
+ try {
408
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
409
+ _iterator1.return();
410
+ }
411
+ } finally {
412
+ if (_didIteratorError1) {
413
+ throw _iteratorError1;
414
+ }
415
+ }
416
+ }
417
+ }
418
+ } catch (err) {
419
+ _didIteratorError = true;
420
+ _iteratorError = err;
421
+ } finally {
422
+ try {
423
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
424
+ _iterator.return();
425
+ }
426
+ } finally {
427
+ if (_didIteratorError) {
428
+ throw _iteratorError;
429
+ }
430
+ }
431
+ }
229
432
  }
230
433
  }, {
231
434
  /**
232
435
  * Removes a subscription by id. Cached docs remain until evicted by
233
436
  * realtime/backfill or explicit resets. This keeps other subs fast if they
234
437
  * share the same doctypes.
438
+ *
439
+ * With persistence enabled (`persistKey`), the released subscription is
440
+ * detached into the restored pool instead of deleted: its query,
441
+ * checkpoint, and membership stay in the snapshot so a remount (or a
442
+ * cold offline reload) can re-adopt it cache-first. Detached subscriptions
443
+ * are excluded from backfill and GC'd after `restoredSubscriptionTTL`.
235
444
  */
236
445
  key: "unsubscribe",
237
446
  value: function unsubscribe(subscriptionId) {
@@ -241,6 +450,7 @@ var SubscriptionManager = /* @__PURE__ */function () {
241
450
  return;
242
451
  }
243
452
  this.subRefCounts.delete(subscriptionId);
453
+ var queryKey;
244
454
  var _iteratorNormalCompletion = true,
245
455
  _didIteratorError = false,
246
456
  _iteratorError = void 0;
@@ -248,6 +458,7 @@ var SubscriptionManager = /* @__PURE__ */function () {
248
458
  for (var _iterator = this.queryKeyToSubId[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
249
459
  var [key, id] = _step.value;
250
460
  if (id === subscriptionId) {
461
+ queryKey = key;
251
462
  this.queryKeyToSubId.delete(key);
252
463
  break;
253
464
  }
@@ -266,6 +477,12 @@ var SubscriptionManager = /* @__PURE__ */function () {
266
477
  }
267
478
  }
268
479
  }
480
+ var subscription = this.subscriptions.get(subscriptionId);
481
+ if (this.options.persistKey && subscription && queryKey && !subscription.query.progressive && !this.restoredByQueryKey.has(queryKey)) {
482
+ this.restoredByQueryKey.set(queryKey, subscriptionId);
483
+ this.restoredAt.set(subscriptionId, Date.now());
484
+ return;
485
+ }
269
486
  this.subscriptions.delete(subscriptionId);
270
487
  }
271
488
  }, {
@@ -392,6 +609,7 @@ var SubscriptionManager = /* @__PURE__ */function () {
392
609
  try {
393
610
  for (var _iterator = this.subscriptions.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
394
611
  var subscription = _step.value;
612
+ if (this.restoredAt.has(subscription.id)) continue;
395
613
  await this.backfillSub(subscription, args.pageSize);
396
614
  }
397
615
  } catch (err) {
@@ -444,6 +662,7 @@ var SubscriptionManager = /* @__PURE__ */function () {
444
662
  try {
445
663
  for (var _iterator2 = this.subscriptions.values()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
446
664
  var subscription2 = _step2.value;
665
+ if (this.restoredAt.has(subscription2.id)) continue;
447
666
  if (set.has(subscription2.query.doctype)) await this.backfillSub(subscription2, args.pageSize);
448
667
  }
449
668
  } catch (err) {
@@ -495,7 +714,9 @@ var SubscriptionManager = /* @__PURE__ */function () {
495
714
  * Backfills one subscription using CDC checkpoint and updates membership.
496
715
  *
497
716
  * Algorithm
498
- * - Query backfill using checkpoint for CDC (Change Data Capture)
717
+ * - Query backfill using checkpoint for CDC (Change Data Capture),
718
+ * draining follow-up pages while the server reports has_more (bounded)
719
+ * so reconnect catch-up is complete rather than one page deep
499
720
  * - Upsert each row to cache
500
721
  * - For each row: test client-side filters; add/remove membership accordingly
501
722
  * - Track tombstones for deleted documents
@@ -504,48 +725,61 @@ var SubscriptionManager = /* @__PURE__ */function () {
504
725
  */
505
726
  async function backfillSub(subscription) {
506
727
  var pageSize = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : (_this_options_pageSize = this.options.pageSize) !== null && _this_options_pageSize !== void 0 ? _this_options_pageSize : 200;
507
- var response = await this.db.backfill({
508
- doctype: subscription.query.doctype,
509
- fields: subscription.query.fields,
510
- filters: subscription.query.filters,
511
- modifiedAfter: subscription.checkpoint,
512
- // CDC checkpoint
513
- limit: pageSize
514
- });
515
- if (response.deleted && Array.isArray(response.deleted)) {
516
- var _iteratorNormalCompletion = true,
517
- _didIteratorError = false,
518
- _iteratorError = void 0;
728
+ var _this_options_backfillMaxPages;
729
+ var maxPages = (_this_options_backfillMaxPages = this.options.backfillMaxPages) !== null && _this_options_backfillMaxPages !== void 0 ? _this_options_backfillMaxPages : 20;
730
+ var rows = [];
731
+ var deleted = [];
732
+ for (var page = 0; page < maxPages; page++) {
733
+ var _ref;
734
+ var _response_deleted;
735
+ var response = await this.db.backfill({
736
+ doctype: subscription.query.doctype,
737
+ fields: subscription.query.fields,
738
+ filters: subscription.query.filters,
739
+ modifiedAfter: subscription.checkpoint,
740
+ // CDC checkpoint
741
+ limit: pageSize
742
+ });
743
+ if (Array.isArray(response.deleted)) {
744
+ deleted.push(...response.deleted);
745
+ }
746
+ rows.push(...response.rows);
747
+ if (response.checkpoint) subscription.checkpoint = response.checkpoint;
748
+ var madeProgress = response.rows.length > 0 || ((_ref = (_response_deleted = response.deleted) === null || _response_deleted === void 0 ? void 0 : _response_deleted.length) !== null && _ref !== void 0 ? _ref : 0) > 0;
749
+ if (!response.has_more || !response.checkpoint || !madeProgress) break;
750
+ }
751
+ var _iteratorNormalCompletion = true,
752
+ _didIteratorError = false,
753
+ _iteratorError = void 0;
754
+ try {
755
+ var _this,
756
+ _loop = function () {
757
+ var deletedRef = _step.value;
758
+ if (!(deletedRef === null || deletedRef === void 0 ? void 0 : deletedRef.name)) return "continue";
759
+ var deletedDoctype = deletedRef.doctype || subscription.query.doctype;
760
+ if (deletedDoctype === subscription.query.doctype && subscription.tombstones) {
761
+ subscription.tombstones.set(deletedRef.name, Date.now());
762
+ }
763
+ _this.normalizedCache.remove({
764
+ doctype: deletedDoctype,
765
+ name: deletedRef.name
766
+ });
767
+ if (deletedDoctype === subscription.query.doctype) subscription.docIds = subscription.docIds.filter(function (currentName) {
768
+ return currentName !== deletedRef.name;
769
+ });
770
+ };
771
+ for (var _iterator = deleted[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _this = this, _loop();
772
+ } catch (err) {
773
+ _didIteratorError = true;
774
+ _iteratorError = err;
775
+ } finally {
519
776
  try {
520
- var _this,
521
- _loop = function () {
522
- var deleted = _step.value;
523
- if (!(deleted === null || deleted === void 0 ? void 0 : deleted.name)) return "continue";
524
- var deletedDoctype = deleted.doctype || subscription.query.doctype;
525
- if (deletedDoctype === subscription.query.doctype && subscription.tombstones) {
526
- subscription.tombstones.set(deleted.name, Date.now());
527
- }
528
- _this.normalizedCache.remove({
529
- doctype: deletedDoctype,
530
- name: deleted.name
531
- });
532
- if (deletedDoctype === subscription.query.doctype) subscription.docIds = subscription.docIds.filter(function (currentName) {
533
- return currentName !== deleted.name;
534
- });
535
- };
536
- for (var _iterator = response.deleted[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _this = this, _loop();
537
- } catch (err) {
538
- _didIteratorError = true;
539
- _iteratorError = err;
777
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
778
+ _iterator.return();
779
+ }
540
780
  } finally {
541
- try {
542
- if (!_iteratorNormalCompletion && _iterator.return != null) {
543
- _iterator.return();
544
- }
545
- } finally {
546
- if (_didIteratorError) {
547
- throw _iteratorError;
548
- }
781
+ if (_didIteratorError) {
782
+ throw _iteratorError;
549
783
  }
550
784
  }
551
785
  }
@@ -566,7 +800,7 @@ var SubscriptionManager = /* @__PURE__ */function () {
566
800
  return currentName !== name;
567
801
  });
568
802
  };
569
- for (var _iterator1 = response.rows[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) _this1 = this, _loop1();
803
+ for (var _iterator1 = rows[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) _this1 = this, _loop1();
570
804
  } catch (err) {
571
805
  _didIteratorError1 = true;
572
806
  _iteratorError1 = err;
@@ -581,8 +815,7 @@ var SubscriptionManager = /* @__PURE__ */function () {
581
815
  }
582
816
  }
583
817
  }
584
- if (response.checkpoint) subscription.checkpoint = response.checkpoint;
585
- if (response.rows.length && !subscription.query.filters) subscription.docIds = response.rows.map(function (row) {
818
+ if (rows.length && !subscription.query.filters) subscription.docIds = rows.map(function (row) {
586
819
  return row.name;
587
820
  });
588
821
  if (subscription.docIds.length > 0) {
@@ -606,9 +839,10 @@ var SubscriptionManager = /* @__PURE__ */function () {
606
839
  }
607
840
  this.resortSubscriptionDocIds(subscription);
608
841
  this.cleanupTombstones(subscription.id);
842
+ subscription.stale = false;
609
843
  if (this.options.onBackfill) this.options.onBackfill({
610
844
  doctype: subscription.query.doctype,
611
- fetched: response.rows.length,
845
+ fetched: rows.length,
612
846
  checkpoint: subscription.checkpoint
613
847
  });
614
848
  })
@@ -677,6 +911,7 @@ var SubscriptionManager = /* @__PURE__ */function () {
677
911
  try {
678
912
  for (var _iterator = this.subscriptions.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
679
913
  var subscription = _step.value;
914
+ if (this.restoredAt.has(subscription.id)) continue;
680
915
  if (subscription.query.doctype !== doc.doctype) continue;
681
916
  var match = (0, import_filters.matchesFilters)(doc, subscription.query.filters);
682
917
  var isExisting = subscription.docIds.includes(doc.name);
@@ -847,6 +1082,8 @@ var SubscriptionManager = /* @__PURE__ */function () {
847
1082
  this.subscriptions.clear();
848
1083
  this.queryKeyToSubId.clear();
849
1084
  this.subRefCounts.clear();
1085
+ this.restoredByQueryKey.clear();
1086
+ this.restoredAt.clear();
850
1087
  }
851
1088
  }, {
852
1089
  /**