@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
@@ -1,563 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from "vitest";
2
- import { BackfillManager, BackfillReason } from "./backfill.mjs";
3
- import { Order } from "./types.mjs";
4
- import { VirtualSubscription } from "./virtualPageManager.mjs";
5
- vi.mock("./filters", () => ({
6
- matchesFilters: vi.fn(() => true)
7
- }));
8
- describe("BackfillManager", () => {
9
- let backfillManager;
10
- let mockDb;
11
- let mockNormalizedCache;
12
- const mockDocs = Array.from({
13
- length: 100
14
- }, (_, i) => ({
15
- name: `doc-${i}`,
16
- doctype: "TestDoc",
17
- owner: "user",
18
- modified: new Date(2024, 0, 1, 0, 0, i).toISOString(),
19
- creation: new Date(2024, 0, 1).toISOString(),
20
- modified_by: "user",
21
- value: i,
22
- title: `Document ${i}`
23
- }));
24
- class MockVirtualSubscription extends VirtualSubscription {
25
- constructor(id, query, docIds, progressiveCache, viewWindow, overrides) {
26
- const baseSubscription = {
27
- id,
28
- query,
29
- docIds,
30
- checkpoint: void 0,
31
- cursor: void 0,
32
- boundaries: void 0,
33
- lockExpiry: void 0,
34
- pendingRehydration: void 0,
35
- metadata: void 0,
36
- tombstones: /* @__PURE__ */new Set(),
37
- ...overrides
38
- };
39
- super(baseSubscription, progressiveCache, viewWindow);
40
- if (overrides) {
41
- Object.assign(this, overrides);
42
- }
43
- }
44
- // Expose protected progressiveCache for testing
45
- get testProgressiveCache() {
46
- return this.progressiveCache;
47
- }
48
- set testProgressiveCache(value) {
49
- this.progressiveCache = value;
50
- }
51
- }
52
- const createMockSubscription = overrides => {
53
- const defaultProgressiveCache = {
54
- docIds: mockDocs.slice(0, 20).map(d => d.name),
55
- nextCursor: "doc-19",
56
- hasMore: true,
57
- totalCount: void 0
58
- };
59
- const progressiveCache = overrides?.progressiveCache || defaultProgressiveCache;
60
- const {
61
- progressiveCache: _,
62
- ...otherOverrides
63
- } = overrides || {};
64
- return new MockVirtualSubscription("sub-1", {
65
- doctype: "TestDoc",
66
- limit: 20,
67
- orderBy: {
68
- field: "modified",
69
- order: Order.Asc
70
- }
71
- }, [], progressiveCache, {
72
- currentPage: 1,
73
- pageSize: 20
74
- }, otherOverrides);
75
- };
76
- beforeEach(() => {
77
- mockDb = {
78
- getDocList: vi.fn(async (doctype, options) => {
79
- let start;
80
- if (options?.cursor) {
81
- const cursorIndex = mockDocs.findIndex(d => d.name === options.cursor);
82
- start = cursorIndex >= 0 ? cursorIndex + 1 : 0;
83
- } else {
84
- start = options?.limitStart || 0;
85
- }
86
- const limit = options?.limit || 20;
87
- return mockDocs.slice(start, start + limit);
88
- }),
89
- backfill: vi.fn(async options => {
90
- const modifiedAfter = options.modifiedAfter;
91
- const limit = options.limit || 200;
92
- const filtered = modifiedAfter ? mockDocs.filter(d => d.modified && d.modified > modifiedAfter) : mockDocs;
93
- return {
94
- rows: filtered.slice(0, limit),
95
- deleted: []
96
- };
97
- }),
98
- getCount: vi.fn(async () => mockDocs.length),
99
- getDoc: vi.fn(),
100
- createDoc: vi.fn(),
101
- updateDoc: vi.fn(),
102
- deleteDoc: vi.fn()
103
- };
104
- mockNormalizedCache = {
105
- get: vi.fn((doctype, name) => {
106
- const doc = mockDocs.find(d => d.name === name);
107
- return doc || null;
108
- }),
109
- upsert: vi.fn(),
110
- remove: vi.fn(),
111
- delete: vi.fn(),
112
- clear: vi.fn(),
113
- getAll: vi.fn(),
114
- hasDoc: vi.fn(),
115
- getAllByDoctype: vi.fn(),
116
- batchUpsert: vi.fn(),
117
- batchDelete: vi.fn(),
118
- clearByDoctype: vi.fn(),
119
- size: vi.fn(),
120
- sizeByDoctype: vi.fn()
121
- };
122
- backfillManager = new BackfillManager(mockDb, mockNormalizedCache, {
123
- pageSize: 50,
124
- maxRetries: 3,
125
- retryDelay: 100
126
- });
127
- });
128
- describe("backfill", () => {
129
- it("should perform backfill for initial reason", async () => {
130
- const subscription = createMockSubscription();
131
- await backfillManager.backfill(subscription, BackfillReason.Initial);
132
- expect(mockDb.getDocList).toHaveBeenCalled();
133
- expect(subscription.testProgressiveCache.docIds).toHaveLength(50);
134
- expect(subscription.testProgressiveCache.lastFetchedAt).toBeInstanceOf(Date);
135
- });
136
- it("should queue backfill if already in progress", async () => {
137
- const subscription = createMockSubscription();
138
- const firstPromise = backfillManager.backfill(subscription, BackfillReason.Initial);
139
- const secondPromise = backfillManager.backfill(subscription, BackfillReason.Pagination);
140
- await expect(firstPromise).resolves.toBeUndefined();
141
- await expect(secondPromise).resolves.toBeUndefined();
142
- });
143
- it("should process queued backfills after completion", async () => {
144
- const subscription = createMockSubscription();
145
- mockDb.getDocList.mockImplementationOnce(async () => {
146
- await new Promise(resolve => setTimeout(resolve, 50));
147
- return mockDocs.slice(0, 50);
148
- });
149
- const promise1 = backfillManager.backfill(subscription, BackfillReason.Initial);
150
- const promise2 = backfillManager.backfill(subscription, BackfillReason.Pagination);
151
- const promise3 = backfillManager.backfill(subscription, BackfillReason.DeleteGap);
152
- await Promise.all([promise1, promise2, promise3]);
153
- await new Promise(resolve => setTimeout(resolve, 200));
154
- });
155
- it("should handle different backfill reasons", async () => {
156
- const subscription = createMockSubscription();
157
- await backfillManager.backfill(subscription, BackfillReason.Pagination);
158
- expect(subscription.testProgressiveCache.docIds.length).toBeGreaterThan(0);
159
- await backfillManager.backfill(subscription, BackfillReason.DeleteGap);
160
- expect(subscription.pendingBackfill).toBe(false);
161
- await backfillManager.backfill(subscription, BackfillReason.RemoteCreate);
162
- expect(subscription.needsRehydration).toBe(false);
163
- });
164
- });
165
- describe("backfillOne", () => {
166
- it("should fetch and add one document", async () => {
167
- const subscription = createMockSubscription();
168
- const doc = await backfillManager.backfillOne(subscription);
169
- expect(doc).toBeDefined();
170
- expect(doc?.name).toBe("doc-20");
171
- expect(subscription.testProgressiveCache.docIds).toContain("doc-20");
172
- expect(mockNormalizedCache.upsert).toHaveBeenCalled();
173
- });
174
- it("should return null when no more documents", async () => {
175
- const subscription = createMockSubscription({
176
- progressiveCache: {
177
- docIds: mockDocs.map(d => d.name),
178
- nextCursor: "doc-99",
179
- hasMore: false,
180
- totalCount: 100
181
- }
182
- });
183
- const doc = await backfillManager.backfillOne(subscription);
184
- expect(doc).toBeNull();
185
- expect(mockDb.getDocList).not.toHaveBeenCalled();
186
- });
187
- it("should handle fetch errors gracefully", async () => {
188
- const subscription = createMockSubscription();
189
- mockDb.getDocList.mockRejectedValueOnce(new Error("Network error"));
190
- const doc = await backfillManager.backfillOne(subscription);
191
- expect(doc).toBeNull();
192
- });
193
- it("should update hasMore flag when no documents returned", async () => {
194
- const subscription = createMockSubscription();
195
- mockDb.getDocList.mockResolvedValueOnce([]);
196
- const doc = await backfillManager.backfillOne(subscription);
197
- expect(doc).toBeNull();
198
- expect(subscription.testProgressiveCache.hasMore).toBe(false);
199
- });
200
- });
201
- describe("rehydrateCurrentPage", () => {
202
- it("should refresh current page from server", async () => {
203
- const subscription = createMockSubscription({
204
- viewWindow: {
205
- currentPage: 2,
206
- pageSize: 20
207
- },
208
- needsRehydration: true
209
- });
210
- await backfillManager.rehydrateCurrentPage(subscription);
211
- expect(mockDb.getDocList).toHaveBeenCalledWith("TestDoc", {
212
- fields: void 0,
213
- filters: void 0,
214
- orderBy: {
215
- field: "modified",
216
- order: Order.Asc
217
- },
218
- limitStart: 20,
219
- // Page 2 starts at index 20
220
- limit: 20
221
- });
222
- expect(subscription.needsRehydration).toBe(false);
223
- });
224
- it("should update normalized cache with fetched documents", async () => {
225
- const subscription = createMockSubscription();
226
- await backfillManager.rehydrateCurrentPage(subscription);
227
- expect(mockNormalizedCache.upsert).toHaveBeenCalledTimes(20);
228
- });
229
- it("should replace page in progressive cache", async () => {
230
- const subscription = createMockSubscription({
231
- progressiveCache: {
232
- docIds: Array.from({
233
- length: 40
234
- }, (_, i) => `doc-${i}`),
235
- nextCursor: "doc-39",
236
- hasMore: true,
237
- totalCount: void 0
238
- },
239
- viewWindow: {
240
- currentPage: 1,
241
- pageSize: 20
242
- }
243
- });
244
- const originalSecondPage = subscription.testProgressiveCache.docIds.slice(20, 40);
245
- await backfillManager.rehydrateCurrentPage(subscription);
246
- expect(subscription.testProgressiveCache.docIds.slice(0, 20)).toEqual(mockDocs.slice(0, 20).map(d => d.name));
247
- expect(subscription.testProgressiveCache.docIds.slice(20, 40)).toEqual(originalSecondPage);
248
- });
249
- it("should handle errors and propagate them", async () => {
250
- const subscription = createMockSubscription();
251
- mockDb.getDocList.mockRejectedValueOnce(new Error("Server error"));
252
- await expect(backfillManager.rehydrateCurrentPage(subscription)).rejects.toThrow("Server error");
253
- });
254
- });
255
- describe("strategy determination", () => {
256
- it("should use FullRefresh for Initial reason", async () => {
257
- const subscription = createMockSubscription();
258
- subscription.testProgressiveCache.docIds = [];
259
- await backfillManager.backfill(subscription, BackfillReason.Initial);
260
- expect(subscription.testProgressiveCache.docIds.length).toBeGreaterThan(0);
261
- expect(subscription.testProgressiveCache.lastFetchedAt).toBeDefined();
262
- });
263
- it("should use CursorFetch for Pagination with cursor", async () => {
264
- const subscription = createMockSubscription({
265
- progressiveCache: {
266
- docIds: mockDocs.slice(0, 20).map(d => d.name),
267
- nextCursor: "doc-19",
268
- hasMore: true,
269
- totalCount: void 0
270
- }
271
- });
272
- const initialLength = subscription.testProgressiveCache.docIds.length;
273
- await backfillManager.backfill(subscription, BackfillReason.Pagination);
274
- expect(subscription.testProgressiveCache.docIds.length).toBeGreaterThan(initialLength);
275
- });
276
- it("should use GapFill for DeleteGap reason", async () => {
277
- const subscription = createMockSubscription({
278
- pendingBackfill: true
279
- });
280
- await backfillManager.backfill(subscription, BackfillReason.DeleteGap);
281
- expect(subscription.pendingBackfill).toBe(false);
282
- });
283
- it("should use PageOnly for RemoteCreate/Update", async () => {
284
- const subscription = createMockSubscription({
285
- needsRehydration: true,
286
- viewWindow: {
287
- currentPage: 1,
288
- pageSize: 20
289
- }
290
- });
291
- await backfillManager.backfill(subscription, BackfillReason.RemoteCreate);
292
- expect(subscription.needsRehydration).toBe(false);
293
- expect(mockDb.getDocList).toHaveBeenCalledWith(expect.anything(), expect.objectContaining({
294
- limitStart: 0,
295
- limit: 20
296
- }));
297
- });
298
- it("should use Incremental for Periodic with checkpoint", async () => {
299
- const originalCheckpoint = new Date(2024, 0, 1, 0, 0, 10).toISOString();
300
- const subscription = createMockSubscription({
301
- checkpoint: originalCheckpoint
302
- });
303
- await backfillManager.backfill(subscription, BackfillReason.Periodic);
304
- expect(mockDb.backfill).toHaveBeenCalledWith(expect.objectContaining({
305
- modifiedAfter: originalCheckpoint
306
- }));
307
- });
308
- it("should use FullRefresh for Recovery without checkpoint", async () => {
309
- const subscription = createMockSubscription({
310
- checkpoint: void 0
311
- });
312
- await backfillManager.backfill(subscription, BackfillReason.Recovery);
313
- expect(subscription.testProgressiveCache.docIds).toBeDefined();
314
- expect(subscription.testProgressiveCache.lastFetchedAt).toBeDefined();
315
- });
316
- });
317
- describe("incremental backfill", () => {
318
- it("should handle CDC backfill with updates", async () => {
319
- const subscription = createMockSubscription({
320
- checkpoint: new Date(2024, 0, 1, 0, 0, 10).toISOString(),
321
- progressiveCache: {
322
- docIds: mockDocs.slice(0, 20).map(d => d.name),
323
- nextCursor: "doc-19",
324
- hasMore: true,
325
- totalCount: void 0
326
- }
327
- });
328
- await backfillManager.backfill(subscription, BackfillReason.Periodic);
329
- expect(mockDb.backfill).toHaveBeenCalled();
330
- expect(subscription.checkpoint).toBeDefined();
331
- expect(subscription.checkpoint).not.toBe(new Date(2024, 0, 1, 0, 0, 10).toISOString());
332
- });
333
- it("should process deletions from CDC response", async () => {
334
- const subscription = createMockSubscription({
335
- checkpoint: new Date(2024, 0, 1).toISOString(),
336
- progressiveCache: {
337
- docIds: ["doc-1", "doc-2", "doc-3"],
338
- nextCursor: "doc-3",
339
- hasMore: false,
340
- totalCount: 3
341
- }
342
- });
343
- mockDb.backfill.mockResolvedValueOnce({
344
- rows: [],
345
- deleted: [{
346
- name: "doc-2"
347
- }]
348
- });
349
- await backfillManager.backfill(subscription, BackfillReason.Periodic);
350
- expect(subscription.testProgressiveCache.docIds).not.toContain("doc-2");
351
- expect(subscription.testProgressiveCache.docIds).toContain("doc-1");
352
- expect(subscription.testProgressiveCache.docIds).toContain("doc-3");
353
- expect(mockNormalizedCache.remove).toHaveBeenCalledWith({
354
- doctype: "TestDoc",
355
- name: "doc-2"
356
- });
357
- });
358
- it("should handle documents that no longer match filters", async () => {
359
- const {
360
- matchesFilters
361
- } = await import("./filters.mjs");
362
- vi.mocked(matchesFilters).mockImplementation((doc, _filters) => {
363
- return doc.name !== "doc-1";
364
- });
365
- const subscription = createMockSubscription({
366
- checkpoint: new Date(2024, 0, 1).toISOString(),
367
- progressiveCache: {
368
- docIds: ["doc-1", "doc-2", "doc-3"],
369
- nextCursor: "doc-3",
370
- hasMore: false,
371
- totalCount: 3
372
- }
373
- });
374
- mockDb.backfill.mockResolvedValueOnce({
375
- rows: [{
376
- name: "doc-1",
377
- modified: (/* @__PURE__ */new Date()).toISOString()
378
- }, {
379
- name: "doc-2",
380
- modified: (/* @__PURE__ */new Date()).toISOString()
381
- }],
382
- deleted: []
383
- });
384
- await backfillManager.backfill(subscription, BackfillReason.Periodic);
385
- expect(subscription.testProgressiveCache.docIds).not.toContain("doc-1");
386
- expect(subscription.testProgressiveCache.docIds).toContain("doc-2");
387
- });
388
- it("should mark for rehydration when new document matches", async () => {
389
- const {
390
- matchesFilters
391
- } = await import("./filters.mjs");
392
- vi.mocked(matchesFilters).mockReturnValue(true);
393
- const subscription = createMockSubscription({
394
- checkpoint: new Date(2024, 0, 1).toISOString(),
395
- progressiveCache: {
396
- docIds: ["doc-1", "doc-2"],
397
- nextCursor: "doc-2",
398
- hasMore: false,
399
- totalCount: 2
400
- }
401
- });
402
- mockDb.backfill.mockResolvedValueOnce({
403
- rows: [{
404
- name: "doc-3",
405
- modified: (/* @__PURE__ */new Date()).toISOString()
406
- }
407
- // New doc that matches
408
- ],
409
- deleted: []
410
- });
411
- await backfillManager.backfill(subscription, BackfillReason.Periodic);
412
- expect(subscription.needsRehydration).toBe(true);
413
- });
414
- it("should fallback to full refresh on error", async () => {
415
- const subscription = createMockSubscription({
416
- checkpoint: new Date(2024, 0, 1).toISOString()
417
- });
418
- mockDb.backfill.mockRejectedValueOnce(new Error("CDC error"));
419
- await backfillManager.backfill(subscription, BackfillReason.Periodic);
420
- expect(mockDb.getDocList).toHaveBeenCalled();
421
- expect(subscription.testProgressiveCache.docIds.length).toBeGreaterThan(0);
422
- });
423
- });
424
- describe("cursor-based fetching", () => {
425
- it("should fetch next batch using cursor", async () => {
426
- const subscription = createMockSubscription({
427
- progressiveCache: {
428
- docIds: mockDocs.slice(0, 20).map(d => d.name),
429
- nextCursor: "doc-19",
430
- hasMore: true,
431
- totalCount: void 0
432
- }
433
- });
434
- await backfillManager.backfill(subscription, BackfillReason.Pagination);
435
- expect(mockDb.getDocList).toHaveBeenCalledWith("TestDoc", {
436
- fields: void 0,
437
- filters: void 0,
438
- orderBy: {
439
- field: "modified",
440
- order: Order.Asc
441
- },
442
- cursor: "doc-19",
443
- limit: 50
444
- // batchSize (falls back to pageSize)
445
- });
446
- expect(subscription.testProgressiveCache.docIds.length).toBeGreaterThan(20);
447
- });
448
- it("should update cursor and hasMore flag", async () => {
449
- const subscription = createMockSubscription({
450
- progressiveCache: {
451
- docIds: mockDocs.slice(0, 80).map(d => d.name),
452
- nextCursor: "doc-79",
453
- hasMore: true,
454
- totalCount: void 0
455
- }
456
- });
457
- mockDb.getDocList.mockResolvedValueOnce(mockDocs.slice(80, 100));
458
- await backfillManager.backfill(subscription, BackfillReason.Pagination);
459
- expect(subscription.testProgressiveCache.hasMore).toBe(false);
460
- expect(subscription.testProgressiveCache.nextCursor).toBe("doc-99");
461
- });
462
- it("should not fetch if no more data available", async () => {
463
- const subscription = createMockSubscription({
464
- progressiveCache: {
465
- docIds: mockDocs.map(d => d.name),
466
- nextCursor: "doc-99",
467
- hasMore: false,
468
- totalCount: 100
469
- }
470
- });
471
- const initialLength = subscription.testProgressiveCache.docIds.length;
472
- await backfillManager.backfill(subscription, BackfillReason.Pagination);
473
- expect(subscription.testProgressiveCache.docIds.length).toBe(initialLength);
474
- });
475
- });
476
- describe("queue management", () => {
477
- it("should not queue duplicate reasons", async () => {
478
- const subscription = createMockSubscription();
479
- let resolveFirst;
480
- const firstPromise = new Promise(resolve => {
481
- resolveFirst = resolve;
482
- });
483
- mockDb.getDocList.mockImplementationOnce(async () => {
484
- await firstPromise;
485
- return mockDocs.slice(0, 50);
486
- });
487
- const promise1 = backfillManager.backfill(subscription, BackfillReason.Initial);
488
- const promise2 = backfillManager.backfill(subscription, BackfillReason.Pagination);
489
- const promise3 = backfillManager.backfill(subscription, BackfillReason.Pagination);
490
- const promise4 = backfillManager.backfill(subscription, BackfillReason.Pagination);
491
- resolveFirst();
492
- await Promise.all([promise1, promise2, promise3, promise4]);
493
- expect(mockDb.getDocList).toHaveBeenCalledTimes(2);
494
- });
495
- it("should process queue in FIFO order", async () => {
496
- const subscription = createMockSubscription();
497
- const callOrder = [];
498
- mockDb.getDocList.mockImplementation(async () => {
499
- await new Promise(resolve => setTimeout(resolve, 10));
500
- return mockDocs.slice(0, 50);
501
- });
502
- const originalPerform = backfillManager.performBackfill;
503
- backfillManager.performBackfill = async function (sub, reason) {
504
- callOrder.push(reason);
505
- return originalPerform.call(this, sub, reason);
506
- };
507
- const promise1 = backfillManager.backfill(subscription, BackfillReason.Initial);
508
- const promise2 = backfillManager.backfill(subscription, BackfillReason.Pagination);
509
- const promise3 = backfillManager.backfill(subscription, BackfillReason.DeleteGap);
510
- await Promise.all([promise1, promise2, promise3]);
511
- await new Promise(resolve => setTimeout(resolve, 200));
512
- expect(callOrder).toEqual([BackfillReason.Initial, BackfillReason.Pagination, BackfillReason.DeleteGap]);
513
- });
514
- });
515
- describe("checkpoint calculation", () => {
516
- it("should calculate checkpoint from highest modified timestamp", async () => {
517
- const subscription = createMockSubscription({
518
- checkpoint: void 0
519
- });
520
- const testDocs = [{
521
- ...mockDocs[0],
522
- modified: "2024-01-01T00:00:00Z"
523
- }, {
524
- ...mockDocs[1],
525
- modified: "2024-01-01T00:00:30Z"
526
- }, {
527
- ...mockDocs[2],
528
- modified: "2024-01-01T00:00:15Z"
529
- }];
530
- mockDb.getDocList.mockResolvedValueOnce(testDocs);
531
- await backfillManager.backfill(subscription, BackfillReason.Initial);
532
- expect(subscription.checkpoint).toBe("2024-01-01T00:00:30Z");
533
- });
534
- it("should handle documents without modified field", async () => {
535
- const subscription = createMockSubscription({
536
- checkpoint: void 0
537
- });
538
- const testDocs = [{
539
- name: "doc-1",
540
- doctype: "TestDoc"
541
- }, {
542
- name: "doc-2",
543
- doctype: "TestDoc",
544
- modified: "2024-01-01T00:00:00Z"
545
- }, {
546
- name: "doc-3",
547
- doctype: "TestDoc"
548
- }];
549
- mockDb.getDocList.mockResolvedValueOnce(testDocs);
550
- await backfillManager.backfill(subscription, BackfillReason.Initial);
551
- expect(subscription.checkpoint).toBe("2024-01-01T00:00:00Z");
552
- });
553
- it("should return undefined for empty document list", async () => {
554
- const subscription = createMockSubscription({
555
- checkpoint: void 0
556
- });
557
- mockDb.getDocList.mockResolvedValueOnce([]);
558
- await backfillManager.backfill(subscription, BackfillReason.Initial);
559
- expect(subscription.checkpoint).toBeUndefined();
560
- });
561
- });
562
- });
563
- //# sourceMappingURL=backfill.spec.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["beforeEach","describe","expect","it","vi","BackfillManager","BackfillReason","Order","VirtualSubscription","mock","matchesFilters","fn","backfillManager","mockDb","mockNormalizedCache","mockDocs","Array","from","length","_","i","name","doctype","owner","modified","Date","toISOString","creation","modified_by","value","title","MockVirtualSubscription","constructor","id","query","docIds","progressiveCache","viewWindow","overrides","baseSubscription","checkpoint","cursor","boundaries","lockExpiry","pendingRehydration","metadata","tombstones","Set","Object","assign","testProgressiveCache","createMockSubscription","defaultProgressiveCache","slice","map","d","nextCursor","hasMore","totalCount","otherOverrides","limit","orderBy","field","order","Asc","currentPage","pageSize","getDocList","options","start","cursorIndex","findIndex","limitStart","backfill","modifiedAfter","filtered","filter","rows","deleted","getCount","getDoc","createDoc","updateDoc","deleteDoc","get","doc","find","upsert","remove","delete","clear","getAll","hasDoc","getAllByDoctype","batchUpsert","batchDelete","clearByDoctype","size","sizeByDoctype","maxRetries","retryDelay","subscription","Initial","toHaveBeenCalled","toHaveLength","lastFetchedAt","toBeInstanceOf","firstPromise","secondPromise","Pagination","resolves","toBeUndefined","mockImplementationOnce","Promise","resolve","setTimeout","promise1","promise2","promise3","DeleteGap","all","toBeGreaterThan","pendingBackfill","toBe","RemoteCreate","needsRehydration","backfillOne","toBeDefined","toContain","toBeNull","not","mockRejectedValueOnce","Error","mockResolvedValueOnce","rehydrateCurrentPage","toHaveBeenCalledWith","fields","filters","toHaveBeenCalledTimes","originalSecondPage","toEqual","rejects","toThrow","initialLength","anything","objectContaining","originalCheckpoint","Periodic","Recovery","mocked","mockImplementation","_filters","mockReturnValue","resolveFirst","promise4","callOrder","originalPerform","performBackfill","sub","reason","push","call","testDocs"],"sources":["../../../src/sync/backfill.spec.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}