@multiplatform.one/frappe 6.1.0 → 6.4.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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rehydration.d.ts","sourceRoot":"","sources":["../../src/sync/rehydration.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAa,iBAAiB,EAA2B,MAAM,SAAS,CAAC;AAChF,OAAO,KAAK,EAAwC,YAAY,EAAE,MAAM,SAAS,CAAC;AAElF;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,kBAAkB;IAC7B,mEAAmE;IACnE,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2D;IAC5F,uEAAuE;IACvE,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,0EAA0E;IAC1E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAa;gBAGrC,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,eAAe,EACtB,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,eAAe,EAChC,QAAQ,CAAC,EAAE,MAAM,IAAI;IASvB;;;;;;;;;;;OAWG;IACH,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB;IA0BzE;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,iBAAiB;IAmDzB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;;;;;;OAOG;YACW,YAAY;IA4B1B;;OAEG;YACW,kBAAkB;IAkBhC;;OAEG;YACW,oBAAoB;IAoBlC;;OAEG;YACW,eAAe;IAuC7B;;OAEG;IACH,OAAO,CAAC,aAAa;IAgErB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAItD;;OAEG;IACH,KAAK;CAIN"}
@@ -0,0 +1,65 @@
1
+ import type { KVStorage } from "./types";
2
+ /**
3
+ * Platform-aware persistence adapter using @multiplatform.one/store.
4
+ *
5
+ * Uses MMKV on React Native and localStorage on web, provided by the
6
+ * store package's platform-specific storage module.
7
+ */
8
+ export declare class PlatformStorageKV implements KVStorage {
9
+ getItem(key: string): Promise<string | null>;
10
+ setItem(key: string, value: string): Promise<void>;
11
+ removeItem(key: string): Promise<void>;
12
+ }
13
+ /**
14
+ * IndexedDB-based persistence adapter.
15
+ *
16
+ * This is the preferred storage option for modern browsers, providing
17
+ * robust asynchronous storage with proper transaction support and
18
+ * generous quota limits (typically hundreds of MB to GB).
19
+ *
20
+ * Characteristics:
21
+ * - **Asynchronous**: All operations are truly async and non-blocking
22
+ * - **Large Quota**: Usually 10% of available disk space (GB range)
23
+ * - **Transactional**: ACID guarantees for data consistency
24
+ * - **Structured**: Can store complex objects, not just strings
25
+ * - **Versioned**: Schema migrations supported through version upgrades
26
+ * - **Origin-isolated**: Each domain gets its own database namespace
27
+ *
28
+ * Architecture:
29
+ * - Database: "frappe-sync" (configurable)
30
+ * - Object Store: "kv" (simple key-value pairs)
31
+ * - No indexes: Simple string keys for sync state storage
32
+ *
33
+ * Transaction Model:
34
+ * - Read operations use "readonly" transactions (can run in parallel)
35
+ * - Write operations use "readwrite" transactions (serialized)
36
+ * - Failed operations automatically rollback the transaction
37
+ *
38
+ * Error Scenarios:
39
+ * - IndexedDB not available (older browsers, private browsing)
40
+ * - Database blocked by another connection
41
+ * - Quota exceeded (rare with generous limits)
42
+ * - Transaction abort due to concurrent modifications
43
+ * - Database corruption or version conflicts
44
+ *
45
+ * Performance Notes:
46
+ * - Connection pooling: Single database connection shared across operations
47
+ * - Async initialization: Database opens lazily on first access
48
+ * - Transaction batching: Consider batching multiple operations when possible
49
+ */
50
+ export declare class IndexedDBKV implements KVStorage {
51
+ private dbPromise;
52
+ private readonly dbName;
53
+ private readonly store;
54
+ constructor(dbName?: string, store?: string);
55
+ getItem(key: string): Promise<string | null>;
56
+ setItem(key: string, value: string): Promise<void>;
57
+ /**
58
+ * Removes a key from IndexedDB.
59
+ * Uses a readwrite transaction with automatic error handling.
60
+ *
61
+ * @param key - The storage key to remove
62
+ */
63
+ removeItem(key: string): Promise<void>;
64
+ }
65
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/sync/storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,SAAS;IAC3C,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAS5C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAO7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,WAAY,YAAW,SAAS;IAC3C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,MAAM,SAAgB,EAAE,KAAK,SAAO;IAwB1C,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkB5C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxD;;;;;OAKG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA8B7C"}
@@ -0,0 +1,161 @@
1
+ import type { FrappeDoc, FrappeDocData } from "../common/types";
2
+ import type { DbModule } from "../db";
3
+ import type { NormalizedCache } from "./normalizedCache";
4
+ import type { BackfillArgs, Subscription, SubscriptionQuery, SyncOptions } from "./types";
5
+ import { VirtualPageManager } from "./virtualPageManager";
6
+ /**
7
+ * Result of `SubscriptionManager.subscribe`.
8
+ */
9
+ export interface SubscribeResult<Data extends FrappeDocData> {
10
+ subscriptionId: string;
11
+ rows: FrappeDoc<Data>[];
12
+ checkpoint?: string;
13
+ /**
14
+ * Present only when a restored (persisted) subscription was re-adopted:
15
+ * the returned `rows` came from the cache and this promise tracks the
16
+ * background network refresh. Never rejects — a failed refresh marks the
17
+ * subscription `stale` and resolves `{ ok: false }`.
18
+ */
19
+ refresh?: Promise<{
20
+ ok: boolean;
21
+ error?: unknown;
22
+ }>;
23
+ }
24
+ export declare class SubscriptionManager {
25
+ private subscriptions;
26
+ private virtualPageManager;
27
+ private backfillManager;
28
+ /** Maps a stable query key to an existing subscriptionId for dedup */
29
+ private queryKeyToSubId;
30
+ /** Reference counts per subscriptionId for shared subscription lifecycle */
31
+ private subRefCounts;
32
+ /**
33
+ * Subscriptions restored from a persisted snapshot (or detached on
34
+ * unsubscribe while persistence is on) that no live query has re-adopted
35
+ * yet. They serve cache-first renders on re-subscribe, are excluded from
36
+ * backfill fan-out, and are GC'd after `restoredSubscriptionTTL`.
37
+ */
38
+ private restoredByQueryKey;
39
+ /** Restore/detach timestamps per restored subscriptionId (for TTL GC). */
40
+ private restoredAt;
41
+ private readonly db;
42
+ private readonly normalizedCache;
43
+ private readonly options;
44
+ constructor(db: DbModule, normalizedCache: NormalizedCache, options?: SyncOptions);
45
+ subscribe<Data extends FrappeDocData>(query: SubscriptionQuery): Promise<SubscribeResult<Data>>;
46
+ /**
47
+ * Performs the initial subscription fetch (single doc via getDoc, lists via
48
+ * getDocList), seeds the normalized cache, and computes the CDC checkpoint
49
+ * as the max `modified` across returned rows. Shared by fresh subscribes
50
+ * and adopted-subscription refreshes so both have identical semantics.
51
+ */
52
+ private fetchInitialRows;
53
+ /**
54
+ * Re-adopts a subscription restored from a persisted snapshot when an
55
+ * identical query subscribes: the cached membership renders immediately and
56
+ * a background refresh re-seeds from the network. Progressive queries are
57
+ * excluded — their VirtualPageManager state is not persisted, so they take
58
+ * the fresh-subscribe path.
59
+ */
60
+ private adoptRestoredSubscription;
61
+ /**
62
+ * Network refresh for an adopted subscription with fresh-subscribe
63
+ * semantics: an authoritative page fetch replaces membership and recomputes
64
+ * the checkpoint (identical to what a brand-new subscribe would produce).
65
+ * On failure (offline) the cached membership and the restored CDC
66
+ * checkpoint are kept and the subscription is marked stale — the next
67
+ * backfill trigger drains changes from that checkpoint. Never rejects.
68
+ */
69
+ private refreshAdoptedSubscription;
70
+ /**
71
+ * Registers a subscription restored from a persisted snapshot. Restored
72
+ * subscriptions are dormant: they hold the persisted query, CDC checkpoint,
73
+ * and membership for cache-first re-adoption, but are skipped by backfill
74
+ * fan-out until adopted. Duplicate snapshot entries for the same query
75
+ * (accumulated by pre-GC versions) collapse last-wins.
76
+ */
77
+ restoreSubscription(snapshotSub: Pick<Subscription, "id" | "query"> & Partial<Pick<Subscription, "checkpoint" | "cursor" | "docIds">>): void;
78
+ /** True when the subscription came from a snapshot and is not yet adopted. */
79
+ isRestoredSubscription(subscriptionId: string): boolean;
80
+ /**
81
+ * Drops restored subscriptions that no query re-adopted within
82
+ * `restoredSubscriptionTTL` (default 30 minutes). Called before every
83
+ * persistence snapshot so expired entries also leave the snapshot.
84
+ */
85
+ gcRestoredSubscriptions(now?: number): void;
86
+ /**
87
+ * Removes a subscription by id. Cached docs remain until evicted by
88
+ * realtime/backfill or explicit resets. This keeps other subs fast if they
89
+ * share the same doctypes.
90
+ *
91
+ * With persistence enabled (`persistKey`), the released subscription is
92
+ * detached into the restored pool instead of deleted: its query,
93
+ * checkpoint, and membership stay in the snapshot so a remount (or a
94
+ * cold offline reload) can re-adopt it cache-first. Detached subscriptions
95
+ * are excluded from backfill and GC'd after `restoredSubscriptionTTL`.
96
+ */
97
+ unsubscribe(subscriptionId: string): void;
98
+ /** Returns subscription metadata by id. */
99
+ getSubscription(id: string): Subscription | undefined;
100
+ /**
101
+ * Returns current rows for a subscription from the cache.
102
+ * Note: This is local-only; authoritative refresh happens via backfill/realtime.
103
+ */
104
+ getDocsForSubscription<Data extends FrappeDocData>(id: string): FrappeDoc<Data>[];
105
+ /**
106
+ * Get a specific page of documents using virtual pagination
107
+ */
108
+ getPage<Data extends FrappeDocData>(subscriptionId: string, page: number): Promise<FrappeDoc<Data>[]>;
109
+ /**
110
+ * Get documents after a cursor (for infinite scroll)
111
+ */
112
+ getNextBatch<Data extends FrappeDocData>(subscriptionId: string, cursorDocId: string, limit: number): Promise<FrappeDoc<Data>[]>;
113
+ /**
114
+ * Get page information
115
+ */
116
+ getPageInfo(subscriptionId: string): import("./virtualPageManager").VirtualPageInfo;
117
+ /**
118
+ * Reconciles local state by fetching changes since stored cursors.
119
+ *
120
+ * Scopes
121
+ * - all: iterate all subscriptions
122
+ * - subscriptions: selected subscription ids
123
+ * - doctypes: all subscriptions matching any of these doctypes
124
+ * - docs: refetch specific documents (authority refresh)
125
+ */
126
+ backfill<Data extends FrappeDocData>(args: BackfillArgs): Promise<void>;
127
+ /**
128
+ * Backfills one subscription using CDC checkpoint and updates membership.
129
+ *
130
+ * Algorithm
131
+ * - Query backfill using checkpoint for CDC (Change Data Capture),
132
+ * draining follow-up pages while the server reports has_more (bounded)
133
+ * so reconnect catch-up is complete rather than one page deep
134
+ * - Upsert each row to cache
135
+ * - For each row: test client-side filters; add/remove membership accordingly
136
+ * - Track tombstones for deleted documents
137
+ * - Advance checkpoint to response checkpoint
138
+ * - If no filters were specified, derive membership directly from returned rows
139
+ */
140
+ backfillSub<Data extends FrappeDocData>(subscription: Subscription, pageSize?: number): Promise<void>;
141
+ resortSubscriptionDocIds(subscription: Subscription): void;
142
+ updateSubscriptionMembership<Data extends FrappeDocData>(doc: FrappeDoc<Data>): Subscription[];
143
+ /**
144
+ * Removes a document from all subscription memberships.
145
+ * Returns subscriptions that had the document removed (for potential backfill).
146
+ */
147
+ removeFromAllSubscriptions<_Data extends FrappeDocData>(doctype: string, name: string): Subscription[];
148
+ /** Gets all active subscriptions. */
149
+ getAllSubscriptions(): Map<string, Subscription>;
150
+ getVirtualPageManager(): VirtualPageManager;
151
+ insertDocumentIntoSubscription<Data extends FrappeDocData>(subscription: Subscription, doc: FrappeDoc<Data>): number | undefined;
152
+ private findInsertionIndex;
153
+ private compareDocuments;
154
+ clear(): void;
155
+ /**
156
+ * Cleans up expired tombstones based on age and count limits.
157
+ * Should be called periodically or after backfill operations.
158
+ */
159
+ cleanupTombstones(subscriptionId?: string): void;
160
+ }
161
+ //# sourceMappingURL=subscriptionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriptionManager.d.ts","sourceRoot":"","sources":["../../src/sync/subscriptionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,KAAK,EACV,YAAY,EAEZ,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,IAAI,SAAS,aAAa;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACrD;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,eAAe,CAAkB;IACzC,sEAAsE;IACtE,OAAO,CAAC,eAAe,CAA6B;IACpD,4EAA4E;IAC5E,OAAO,CAAC,YAAY,CAA6B;IACjD;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB,CAA6B;IACvD,0EAA0E;IAC1E,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAE1B,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,OAAO,GAAE,WAAgB;IAa/E,SAAS,CAAC,IAAI,SAAS,aAAa,EACxC,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAgEjC;;;;;OAKG;YACW,gBAAgB;IA2D9B;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAqBjC;;;;;;;OAOG;YACW,0BAA0B;IAyBxC;;;;;;OAMG;IACH,mBAAmB,CACjB,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,OAAO,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;IA6BnE,8EAA8E;IAC9E,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAIvD;;;;OAIG;IACH,uBAAuB,CAAC,GAAG,SAAa;IAexC;;;;;;;;;;OAUG;IACH,WAAW,CAAC,cAAc,EAAE,MAAM;IA+BlC,2CAA2C;IAC3C,eAAe,CAAC,EAAE,EAAE,MAAM;IAK1B;;;OAGG;IACH,sBAAsB,CAAC,IAAI,SAAS,aAAa,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE;IA+BjF;;OAEG;IACG,OAAO,CAAC,IAAI,SAAS,aAAa,EACtC,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IAI7B;;OAEG;IACG,YAAY,CAAC,IAAI,SAAS,aAAa,EAC3C,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IAM7B;;OAEG;IACH,WAAW,CAAC,cAAc,EAAE,MAAM;IAIlC;;;;;;;;OAQG;IACG,QAAQ,CAAC,IAAI,SAAS,aAAa,EAAE,IAAI,EAAE,YAAY;IAmC7D;;;;;;;;;;;;OAYG;IACG,WAAW,CAAC,IAAI,SAAS,aAAa,EAC1C,YAAY,EAAE,YAAY,EAC1B,QAAQ,SAA+B;IAsGzC,wBAAwB,CAAC,YAAY,EAAE,YAAY;IAyBnD,4BAA4B,CAAC,IAAI,SAAS,aAAa,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,EAAE;IAiC9F;;;OAGG;IACH,0BAA0B,CAAC,KAAK,SAAS,aAAa,EACpD,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACX,YAAY,EAAE;IAiBjB,qCAAqC;IACrC,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC;IAIhD,qBAAqB,IAAI,kBAAkB;IAI3C,8BAA8B,CAAC,IAAI,SAAS,aAAa,EACvD,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC;IAUtB,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,gBAAgB;IAsBxB,KAAK;IAQL;;;OAGG;IACH,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM;CAgC1C"}
@@ -0,0 +1,435 @@
1
+ import type { FrappeDoc, FrappeDocData, FrappeDocValue } from "../common/types";
2
+ import type { FieldMergeStrategyOrFunction } from "./merge";
3
+ export declare enum Order {
4
+ Asc = "asc",
5
+ Desc = "desc"
6
+ }
7
+ export interface OrderByField {
8
+ field: string;
9
+ order: Order;
10
+ }
11
+ export type OrderBy = OrderByField | OrderByField[];
12
+ export interface SubscriptionQuery {
13
+ doctype: string;
14
+ fields?: readonly string[];
15
+ filters?: Array<[string, string, unknown]> | Record<string, unknown>;
16
+ limit?: number;
17
+ limitStart?: number;
18
+ orderBy?: OrderBy;
19
+ /**
20
+ * When true, the subscription uses the VirtualPageManager for progressive
21
+ * cache and cursor-based pagination. Enables `getPage()`, `getNextBatch()`,
22
+ * and `getPageInfo()` on the SyncModule.
23
+ */
24
+ progressive?: boolean;
25
+ }
26
+ /** Placement type for optimistic items in paginated views */
27
+ export declare enum PlacementType {
28
+ Before = "before",
29
+ Within = "within",
30
+ After = "after",
31
+ Unknown = "unknown"
32
+ }
33
+ /** Page boundary tracking for optimistic placement */
34
+ export interface PageBoundaries<Data extends FrappeDocData> {
35
+ firstItem?: FrappeDoc<Data>;
36
+ lastItem?: FrappeDoc<Data>;
37
+ offset: number;
38
+ pageSize: number;
39
+ temporaryOverflow?: number;
40
+ }
41
+ /** Pending rehydration types */
42
+ export declare enum PendingRehydrationType {
43
+ ItemOnly = "item-only",
44
+ FullRefresh = "full-refresh"
45
+ }
46
+ /** In-memory subscription tracking with backfill checkpoint and member doc ids. */
47
+ export interface Subscription {
48
+ id: string;
49
+ query: SubscriptionQuery;
50
+ /** CDC checkpoint for incremental sync */
51
+ checkpoint?: string;
52
+ /** Cursor for stable pagination */
53
+ cursor?: string;
54
+ docIds: string[];
55
+ /** Page boundaries for optimistic placement */
56
+ boundaries?: PageBoundaries<FrappeDocData>;
57
+ /** Page lock expiry timestamp */
58
+ lockExpiry?: number;
59
+ /** Pending rehydration strategy */
60
+ pendingRehydration?: PendingRehydrationType;
61
+ /** Metadata for tracking items outside current page */
62
+ metadata?: {
63
+ itemsBeforePage?: number;
64
+ itemsAfterPage?: number;
65
+ };
66
+ /** Tombstones for tracking deleted documents with timestamps */
67
+ tombstones?: Map<string, number>;
68
+ /**
69
+ * True when the last network refresh for this subscription failed and its
70
+ * membership is being served from the persisted cache. Cleared by the next
71
+ * successful refresh or CDC backfill.
72
+ */
73
+ stale?: boolean;
74
+ }
75
+ export declare enum Operation {
76
+ Create = "create",
77
+ Update = "update",
78
+ Delete = "delete"
79
+ }
80
+ export declare enum Status {
81
+ Pending = "pending",
82
+ Confirmed = "confirmed",
83
+ Failed = "failed"
84
+ }
85
+ export interface FrappeDocRef {
86
+ doctype: string;
87
+ name: string;
88
+ }
89
+ export interface CreateMutation<D extends FrappeDocData> {
90
+ mutationId: string;
91
+ operation: Operation.Create;
92
+ doc: FrappeDoc<D>;
93
+ version?: string;
94
+ affected?: {
95
+ doctype: string;
96
+ name: string;
97
+ }[];
98
+ }
99
+ export interface UpdateMutation<Data extends FrappeDocData> {
100
+ mutationId: string;
101
+ operation: Operation.Update;
102
+ doc: FrappeDoc<Data>;
103
+ version?: string;
104
+ affected?: {
105
+ doctype: string;
106
+ name: string;
107
+ }[];
108
+ }
109
+ export interface DeleteMutation<Data extends FrappeDocData> {
110
+ mutationId: string;
111
+ operation: Operation.Delete;
112
+ version?: string;
113
+ doc: FrappeDoc<Data>;
114
+ affected?: {
115
+ doctype: string;
116
+ name: string;
117
+ }[];
118
+ }
119
+ export type Mutation<Data extends FrappeDocData> = CreateMutation<Data> | UpdateMutation<Data> | DeleteMutation<Data>;
120
+ export declare enum BackfillScope {
121
+ All = "all",
122
+ Doctypes = "doctypes",
123
+ Subscriptions = "subscriptions",
124
+ Docs = "docs"
125
+ }
126
+ export interface BackfillArgs {
127
+ scope: BackfillScope;
128
+ doctypes?: string[];
129
+ subscriptions?: string[];
130
+ docs?: {
131
+ doctype: string;
132
+ name: string;
133
+ }[];
134
+ pageSize?: number;
135
+ }
136
+ /** Types of realtime events */
137
+ export declare enum RealtimeEventType {
138
+ /** Real Frappe event: emitted to the per-doc room on every save (and on delete). */
139
+ DocUpdate = "doc_update",
140
+ /** Real Frappe event: emitted to the doctype room on every save (and on delete). */
141
+ ListUpdate = "list_update",
142
+ /** Designed wire-protocol event (forward-compat) — stock Frappe never emits it. */
143
+ DocChanged = "doc_changed",
144
+ /** Designed wire-protocol event (forward-compat) — stock Frappe never emits it. */
145
+ DocDeleted = "doc_deleted",
146
+ Connected = "connected",
147
+ PermEpochBump = "perm_epoch_bump"
148
+ }
149
+ export interface SyncOptions {
150
+ pageSize?: number;
151
+ persistKey?: string;
152
+ onConflict?: (info: {
153
+ doctype: string;
154
+ name?: string;
155
+ }) => void;
156
+ onRetry?: (info: {
157
+ id: string;
158
+ operation: Operation;
159
+ }) => void;
160
+ onBackfill?: (info: {
161
+ doctype: string;
162
+ fetched: number;
163
+ checkpoint?: string;
164
+ }) => void;
165
+ storage?: KVStorage;
166
+ versionField?: string;
167
+ versionFields?: Record<string, string>;
168
+ /**
169
+ * CRDT-like field merge configuration per doctype.
170
+ * Maps doctype → field name → merge strategy or custom function.
171
+ * Strategies: 'client-wins', 'server-wins', 'sum', 'max', 'min', 'union-set',
172
+ * or a custom `(base, client, server) => resolved` function.
173
+ */
174
+ fieldMergeConfig?: Record<string, Record<string, FieldMergeStrategyOrFunction>>;
175
+ onMutationStart?: <Data extends FrappeDocData>(mutation: Mutation<Data>) => void;
176
+ onOptimisticApply?: (info: {
177
+ doctype: string;
178
+ name?: string;
179
+ operation: Operation;
180
+ }) => void;
181
+ onMutationSuccess?: <Data extends FrappeDocData>(mutation: Mutation<Data>) => void;
182
+ onMutationError?: <Data extends FrappeDocData>(info: {
183
+ mutation: Mutation<Data>;
184
+ err: unknown;
185
+ }) => void;
186
+ onReplayStart?: () => void;
187
+ onReplayComplete?: (info: {
188
+ anyFailed: boolean;
189
+ }) => void;
190
+ onRealtimeEvent?: (info: {
191
+ type: RealtimeEventType;
192
+ payload?: unknown;
193
+ }) => void;
194
+ onTrace?: (info: {
195
+ event: string;
196
+ details?: unknown;
197
+ }) => void;
198
+ onResetCache?: () => void;
199
+ onBackfillAll?: () => void;
200
+ /**
201
+ * Internal: invoked after realtime-driven cache/membership changes
202
+ * (doc_update/list_update reconcile, doc_deleted eviction, rehydration,
203
+ * connection state flips) so the sync store can notify its listeners.
204
+ * Wired by SyncModule; not intended for consumer use.
205
+ */
206
+ onStoreChange?: () => void;
207
+ /** Connection management configuration */
208
+ connectionConfig?: ConnectionConfig;
209
+ /** Multi-tab coordination configuration */
210
+ tabCoordination?: TabCoordinationConfig;
211
+ /** Mutation TTL in milliseconds (default: 24 hours) */
212
+ mutationTTL?: number;
213
+ /** Batch size for fetching documents (default: 100) */
214
+ batchSize?: number;
215
+ /**
216
+ * Max CDC pages drained per backfill when the server reports has_more
217
+ * (default: 20). Bounds catch-up work after long offline periods in both
218
+ * drain paths: the subscription drain (SubscriptionManager.backfillSub)
219
+ * and the periodic/recovery path (BackfillManager.incrementalBackfill).
220
+ */
221
+ backfillMaxPages?: number;
222
+ /** Maximum number of documents to keep in normalized cache (default: unlimited) */
223
+ maxCacheSize?: number;
224
+ /** Enable automatic mutation batching (default: false) */
225
+ enableBatching?: boolean;
226
+ /** Batch delay in milliseconds - time to wait before sending batch (default: 100ms) */
227
+ batchDelay?: number;
228
+ /** Maximum mutations per batch (default: 50) */
229
+ batchMaxSize?: number;
230
+ /** Use atomic batching - all mutations succeed or all fail (default: false) */
231
+ batchAtomic?: boolean;
232
+ /** Rate limit for mutation replay - max mutations per second (default: 10) */
233
+ replayRateLimit?: number;
234
+ /**
235
+ * Optional interval (in milliseconds) for periodic CDC polling.
236
+ * Acts as a safety net for silent socket drops. Set to 0 or omit
237
+ * to rely solely on event-driven backfill (focus, online, reconnect).
238
+ * Recommended: 30000 (30 seconds) for production.
239
+ */
240
+ cdcInterval?: number;
241
+ /** Enable cursor pagination (requires server extension) */
242
+ useCursorPagination?: boolean;
243
+ /** Maximum age of tombstones in milliseconds before cleanup (default: 30 minutes) */
244
+ tombstoneMaxAge?: number;
245
+ /** Maximum number of tombstones per subscription before cleanup (default: 1000) */
246
+ tombstoneMaxCount?: number;
247
+ /**
248
+ * How long (in milliseconds) a subscription restored from a persisted
249
+ * snapshot may stay unadopted before it is garbage-collected (default:
250
+ * 30 minutes). Restored subscriptions are re-adopted (id, checkpoint, and
251
+ * cached membership reused) when an identical query subscribes; unadopted
252
+ * ones are excluded from backfill and dropped after this grace period.
253
+ * Only relevant when `persistKey` is set.
254
+ */
255
+ restoredSubscriptionTTL?: number;
256
+ /** Callback when tab becomes leader */
257
+ onBecomeLeader?: () => void;
258
+ /** Callback when tab loses leadership */
259
+ onLoseLeadership?: () => void;
260
+ }
261
+ export interface KVStorage {
262
+ getItem(key: string): Promise<string | null>;
263
+ setItem(key: string, value: string): Promise<void>;
264
+ removeItem(key: string): Promise<void>;
265
+ }
266
+ /** Type of rehydration strategy */
267
+ export declare enum RehydrationStrategyType {
268
+ FetchItemOnly = "fetch-item-only",
269
+ FullRefresh = "full-refresh"
270
+ }
271
+ /** Rehydration strategy for updating subscriptions */
272
+ export interface RehydrationStrategy {
273
+ type: RehydrationStrategyType;
274
+ priority: number;
275
+ delay: number;
276
+ }
277
+ /** Rehydration task queued for execution */
278
+ export interface RehydrationTask {
279
+ subscriptionId: string;
280
+ strategy: RehydrationStrategy;
281
+ scheduledAt: number;
282
+ }
283
+ /** Reasons for triggering rehydration */
284
+ export declare enum RehydrationReason {
285
+ Create = "create",
286
+ Delete = "delete",
287
+ Overflow = "overflow",
288
+ RemoteCreate = "remote-create",
289
+ Uncertain = "uncertain"
290
+ }
291
+ export interface MutationJournalEntry<Data extends FrappeDocData> {
292
+ createdAt: number;
293
+ error?: unknown;
294
+ id: string;
295
+ mutation: Mutation<Data>;
296
+ optimisticData?: Record<string, FrappeDocValue>;
297
+ originalData?: Record<string, FrappeDocValue>;
298
+ retryCount: number;
299
+ sequence: number;
300
+ status: Status;
301
+ timestamp: number;
302
+ ttl?: number;
303
+ }
304
+ /** Status of a mutation batch */
305
+ export declare enum MutationBatchStatus {
306
+ Pending = "pending",
307
+ Processing = "processing",
308
+ Completed = "completed",
309
+ Failed = "failed"
310
+ }
311
+ /** Mutation batch for sending multiple mutations together */
312
+ export interface MutationBatch<Data extends FrappeDocData> {
313
+ batchId: string;
314
+ mutations: Mutation<Data>[];
315
+ createdAt: number;
316
+ status: MutationBatchStatus;
317
+ }
318
+ /** Connection management configuration */
319
+ export interface ConnectionConfig {
320
+ /** Base delay for reconnection (default: 1000ms) */
321
+ reconnectBaseDelay?: number;
322
+ /** Maximum delay for reconnection (default: 30000ms) */
323
+ reconnectMaxDelay?: number;
324
+ /** Jitter factor for reconnection (default: 0.25 = ±25%) */
325
+ reconnectJitter?: number;
326
+ /** Enable exponential backoff (default: true) */
327
+ exponentialBackoff?: boolean;
328
+ }
329
+ /** Multi-tab coordination configuration */
330
+ export interface TabCoordinationConfig {
331
+ /** Enable active tab priority leadership (default: true) */
332
+ activeTabPriority?: boolean;
333
+ /** Leader timeout in milliseconds (default: 5000ms) */
334
+ leaderTimeout?: number;
335
+ /** Grace period for handoff operations (default: 2000ms) */
336
+ handoffGracePeriod?: number;
337
+ }
338
+ /** Tab coordination message types */
339
+ export type TabMessage<Data extends FrappeDocData> = {
340
+ type: "heartbeat";
341
+ tabId: string;
342
+ } | {
343
+ type: "leadership-request";
344
+ tabId: string;
345
+ visibilityState: string;
346
+ } | {
347
+ type: "mutation";
348
+ mutation: Mutation<Data>;
349
+ } | {
350
+ type: "sync-state";
351
+ state: unknown;
352
+ } | {
353
+ type: "visibility-check";
354
+ fromTab: string;
355
+ } | {
356
+ type: "visibility-response";
357
+ tabId: string;
358
+ isVisible: boolean;
359
+ } | {
360
+ type: "leadership-handoff";
361
+ fromTab: string;
362
+ toTab: string;
363
+ state?: unknown;
364
+ };
365
+ /** Page island represents a cached range of pages */
366
+ export interface PageIsland {
367
+ startPage: number;
368
+ endPage: number;
369
+ startIndex: number;
370
+ endIndex: number;
371
+ fetchedVia: "cursor" | "offset";
372
+ }
373
+ /** Debug snapshot of a subscription's state */
374
+ export interface DebugSubscription {
375
+ id: string;
376
+ query: SubscriptionQuery;
377
+ docCount: number;
378
+ tombstoneCount: number;
379
+ checkpoint?: string;
380
+ cursor?: string;
381
+ /** Serving persisted cache after a failed network refresh. */
382
+ stale?: boolean;
383
+ /** Restored from a persisted snapshot and not yet re-adopted by a live query. */
384
+ restored?: boolean;
385
+ progressiveCache?: {
386
+ docIds: string[];
387
+ nextCursor?: string;
388
+ hasMore: boolean;
389
+ totalCount?: number;
390
+ lastFetchedAt?: string;
391
+ islands?: PageIsland[];
392
+ };
393
+ pageInfo?: {
394
+ currentPage: number;
395
+ knownPages: number;
396
+ totalPages: number | "unknown";
397
+ hasMore: boolean;
398
+ itemsInCache: number;
399
+ pageSize: number;
400
+ };
401
+ }
402
+ /** Debug snapshot of a mutation journal entry */
403
+ export interface DebugMutationEntry {
404
+ id: string;
405
+ operation: Operation;
406
+ doctype: string;
407
+ docname?: string;
408
+ status: Status;
409
+ createdAt: number;
410
+ retryCount: number;
411
+ error?: string;
412
+ }
413
+ /** Full debug state snapshot from SyncModule.__debug() */
414
+ export interface FrappeDebugState {
415
+ subscriptions: DebugSubscription[];
416
+ normalizedCache: {
417
+ size: number;
418
+ doctypes: {
419
+ doctype: string;
420
+ count: number;
421
+ }[];
422
+ };
423
+ mutationJournal: {
424
+ pending: DebugMutationEntry[];
425
+ confirmed: DebugMutationEntry[];
426
+ failed: DebugMutationEntry[];
427
+ };
428
+ connection: {
429
+ socketConnected: boolean;
430
+ isLeader: boolean;
431
+ isOnline: boolean;
432
+ lastBackfillAt?: string;
433
+ };
434
+ }
435
+ //# sourceMappingURL=types.d.ts.map