@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,3 +1,4 @@
1
+ import { isWindowDefined } from "@multiplatform.one/platform";
1
2
  import { useCallback, useEffect, useRef, useState } from "react";
2
3
  import { createFrappeCollection } from "./collection.mjs";
3
4
  import { HttpClient } from "./core/http.mjs";
@@ -26,10 +27,12 @@ function getSyncModule(config) {
26
27
  const key = config.baseURL;
27
28
  let sync = syncModuleCache.get(key);
28
29
  if (!sync) {
30
+ console.debug(`[frappe-sync] SyncModule created for ${key} (persistKey=${config.syncOptions?.persistKey ?? "none"}, cdcInterval=${config.syncOptions?.cdcInterval ?? "off"})`);
29
31
  const authConfig = config.auth ? {
30
32
  useToken: config.auth.useToken,
31
33
  token: config.auth.token,
32
- type: config.auth.type
34
+ type: config.auth.type,
35
+ sessionId: config.auth.sessionId
33
36
  } : void 0;
34
37
  const http = new HttpClient(config.baseURL, authConfig);
35
38
  const db = new DbModule(http, {
@@ -38,33 +41,208 @@ function getSyncModule(config) {
38
41
  const realtimeConfig = {
39
42
  baseURL: config.baseURL,
40
43
  socketPort: config.socketPort,
41
- auth: authConfig
44
+ auth: authConfig,
45
+ socketOptions: config.socketOptions
42
46
  };
43
47
  sync = new SyncModule(db, new RealtimeModule(realtimeConfig), config.syncOptions);
44
48
  syncModuleCache.set(key, sync);
45
49
  }
46
50
  return sync;
47
51
  }
52
+ const sharedCollectionCaches = /* @__PURE__ */new WeakMap();
53
+ const SHARED_COLLECTION_GC_MS = 1e3;
54
+ const SHARED_COLLECTION_GC_FORCE_MS = 3e4;
55
+ function collectionIsCleanedUp(collection) {
56
+ return collection.status === "cleaned-up";
57
+ }
58
+ function collectionOptionsKey(doctype, options) {
59
+ return [doctype, JSON.stringify(options?.fields), JSON.stringify(options?.filters), JSON.stringify(options?.orderBy), String(options?.limit), String(options?.id)].join("|");
60
+ }
61
+ function scheduleEntryGc(cache, key, entry) {
62
+ if (entry.gcTimer) clearTimeout(entry.gcTimer);
63
+ entry.gcTimer = setTimeout(() => {
64
+ entry.gcTimer = void 0;
65
+ if (entry.refCount > 0 || entry.cleaned) return;
66
+ const subscriberCount = entry.collection.subscriberCount ?? 0;
67
+ if (subscriberCount > 0) {
68
+ entry.gcForceDeadline ??= Date.now() + SHARED_COLLECTION_GC_FORCE_MS;
69
+ if (Date.now() < entry.gcForceDeadline) {
70
+ scheduleEntryGc(cache, key, entry);
71
+ return;
72
+ }
73
+ }
74
+ entry.cleaned = true;
75
+ entry.gcForceDeadline = void 0;
76
+ if (cache.get(key) === entry) cache.delete(key);
77
+ Promise.resolve(entry.collection.cleanup?.()).catch(() => {});
78
+ }, SHARED_COLLECTION_GC_MS);
79
+ }
80
+ function getOrCreateSharedCollection(syncModule, doctype, options, key) {
81
+ let existingCache = sharedCollectionCaches.get(syncModule);
82
+ if (!existingCache) {
83
+ existingCache = /* @__PURE__ */new Map();
84
+ sharedCollectionCaches.set(syncModule, existingCache);
85
+ }
86
+ const cache = existingCache;
87
+ let entry = cache.get(key);
88
+ if (entry && !entry.cleaned && collectionIsCleanedUp(entry.collection)) {
89
+ entry.cleaned = true;
90
+ if (entry.gcTimer) {
91
+ clearTimeout(entry.gcTimer);
92
+ entry.gcTimer = void 0;
93
+ }
94
+ }
95
+ if (!entry || entry.cleaned) {
96
+ const created = {
97
+ collection: void 0,
98
+ refCount: 0,
99
+ gcTimer: void 0,
100
+ gcForceDeadline: void 0,
101
+ errorHandlers: /* @__PURE__ */new Set(),
102
+ hasSyncError: false,
103
+ lastSyncError: void 0,
104
+ cleaned: false
105
+ };
106
+ created.collection = createFrappeCollection(doctype, {
107
+ ...options,
108
+ sync: syncModule,
109
+ onSyncError: error => {
110
+ created.hasSyncError = true;
111
+ created.lastSyncError = error;
112
+ for (const handler of created.errorHandlers) handler(error);
113
+ }
114
+ });
115
+ cache.set(key, created);
116
+ scheduleEntryGc(cache, key, created);
117
+ entry = created;
118
+ }
119
+ return {
120
+ cache,
121
+ entry
122
+ };
123
+ }
124
+ function retainSharedCollection(entry, onSyncError) {
125
+ entry.refCount++;
126
+ if (entry.gcTimer) {
127
+ clearTimeout(entry.gcTimer);
128
+ entry.gcTimer = void 0;
129
+ }
130
+ entry.gcForceDeadline = void 0;
131
+ entry.errorHandlers.add(onSyncError);
132
+ if (entry.hasSyncError) onSyncError(entry.lastSyncError);
133
+ }
134
+ function releaseSharedCollection(cache, key, entry, onSyncError) {
135
+ entry.errorHandlers.delete(onSyncError);
136
+ entry.refCount = Math.max(0, entry.refCount - 1);
137
+ if (entry.refCount > 0 || entry.cleaned) return;
138
+ if (entry.hasSyncError) {
139
+ entry.cleaned = true;
140
+ if (entry.gcTimer) {
141
+ clearTimeout(entry.gcTimer);
142
+ entry.gcTimer = void 0;
143
+ }
144
+ entry.gcForceDeadline = void 0;
145
+ if (cache.get(key) === entry) cache.delete(key);
146
+ cleanupEntryCollectionWhenIdle(entry);
147
+ return;
148
+ }
149
+ scheduleEntryGc(cache, key, entry);
150
+ }
151
+ function cleanupEntryCollectionWhenIdle(entry) {
152
+ const deadline = Date.now() + SHARED_COLLECTION_GC_FORCE_MS;
153
+ const tick = () => {
154
+ entry.gcTimer = void 0;
155
+ const subscriberCount = entry.collection.subscriberCount ?? 0;
156
+ if (subscriberCount > 0 && Date.now() < deadline) {
157
+ entry.gcTimer = setTimeout(tick, SHARED_COLLECTION_GC_MS);
158
+ return;
159
+ }
160
+ Promise.resolve(entry.collection.cleanup?.()).catch(() => {});
161
+ };
162
+ entry.gcTimer = setTimeout(tick, SHARED_COLLECTION_GC_MS);
163
+ }
48
164
  function useFrappeCollection(config, doctype, options) {
49
- const collectionRef = useRef(void 0);
50
- const configKeyRef = useRef("");
51
- const configKey = config ? `${config.baseURL}:${config.fixtures ? "fixture" : "live"}:${doctype}:${JSON.stringify(options?.fields)}:${JSON.stringify(options?.filters)}` : "";
52
- const needsCollection = config && (configKey !== configKeyRef.current || !collectionRef.current);
53
- if (needsCollection) {
165
+ const errorHandlerRef = useRef(options?.onSyncError);
166
+ errorHandlerRef.current = options?.onSyncError;
167
+ const stableErrorHandler = useCallback(error => {
168
+ errorHandlerRef.current?.(error);
169
+ }, []);
170
+ const [, setStaleEntryBump] = useState(0);
171
+ let cache;
172
+ let key = "";
173
+ let entry;
174
+ if (config && doctype) {
54
175
  const syncModule = getSyncModule(config);
55
176
  if (syncModule) {
56
- collectionRef.current = createFrappeCollection(doctype, {
57
- ...options,
58
- sync: syncModule
59
- });
60
- configKeyRef.current = configKey;
177
+ key = collectionOptionsKey(doctype, options);
178
+ ({
179
+ cache,
180
+ entry
181
+ } = getOrCreateSharedCollection(syncModule, doctype, options, key));
61
182
  }
62
183
  }
63
- if (!config) {
64
- collectionRef.current = void 0;
65
- configKeyRef.current = "";
66
- }
67
- return collectionRef.current;
184
+ useEffect(() => {
185
+ if (!entry || !cache) return;
186
+ if (entry.cleaned || collectionIsCleanedUp(entry.collection)) {
187
+ setStaleEntryBump(n => n + 1);
188
+ return;
189
+ }
190
+ const retained = entry;
191
+ const retainedCache = cache;
192
+ const retainedKey = key;
193
+ retainSharedCollection(retained, stableErrorHandler);
194
+ const unsubscribeStatus = retained.collection.on?.("status:change", event => {
195
+ if (event?.status !== "cleaned-up" || retained.cleaned) return;
196
+ retained.cleaned = true;
197
+ setStaleEntryBump(n => n + 1);
198
+ });
199
+ return () => {
200
+ unsubscribeStatus?.();
201
+ releaseSharedCollection(retainedCache, retainedKey, retained, stableErrorHandler);
202
+ };
203
+ }, [entry, stableErrorHandler]);
204
+ return entry ? entry.collection : void 0;
205
+ }
206
+ const DISCONNECTED_STATE = Object.freeze({
207
+ connected: false,
208
+ everConnected: false
209
+ });
210
+ function useFrappeConnection(config) {
211
+ const [state, setState] = useState(DISCONNECTED_STATE);
212
+ useEffect(() => {
213
+ if (!config || config.fixtures || !isBrowser()) return;
214
+ const syncModule = getSyncModule(config);
215
+ if (!syncModule) return;
216
+ const read = () => {
217
+ const next = syncModule.getConnectionState();
218
+ setState(prev => prev.connected === next.connected && prev.everConnected === next.everConnected ? prev : next);
219
+ };
220
+ read();
221
+ return syncModule.subscribeStore(read);
222
+ }, [config?.baseURL, !!config?.fixtures]);
223
+ return state;
224
+ }
225
+ function useFrappeDoctypeEvents(config, doctype, onEvent, enabled = true) {
226
+ const handlerRef = useRef(onEvent);
227
+ handlerRef.current = onEvent;
228
+ useEffect(() => {
229
+ if (!enabled || !config || config.fixtures || !doctype || !isBrowser()) return;
230
+ const syncModule = getSyncModule(config);
231
+ if (!syncModule) return;
232
+ syncModule.watchDoctype(doctype);
233
+ const unsubscribe = syncModule.subscribeRealtimeEvents(event => {
234
+ const payload = event.payload;
235
+ if (payload?.doctype && payload.doctype !== doctype) return;
236
+ handlerRef.current({
237
+ type: event.type,
238
+ payload: event.payload
239
+ });
240
+ });
241
+ return () => {
242
+ unsubscribe();
243
+ syncModule.unwatchDoctype(doctype);
244
+ };
245
+ }, [enabled, config?.baseURL, !!config?.fixtures, doctype]);
68
246
  }
69
247
  function useInfiniteScroll(config) {
70
248
  const {
@@ -96,7 +274,7 @@ function useInfiniteScroll(config) {
96
274
  }
97
275
  }, [hasMore, isLoading, isLoadingMore, onLoadMore, debounceMs]);
98
276
  useEffect(() => {
99
- if (!isBrowser() || !enabled) return;
277
+ if (!isWindowDefined || typeof IntersectionObserver === "undefined" || !enabled) return;
100
278
  const node = sentinelNodeRef.current;
101
279
  if (!node) return;
102
280
  if (observerRef.current) {
@@ -282,5 +460,5 @@ function useFrappeInfiniteList(options) {
282
460
  totalLoaded: items.length
283
461
  };
284
462
  }
285
- export { __getActiveSyncModule, useFrappeCollection, useFrappeInfiniteList, useInfiniteScroll };
463
+ export { __getActiveSyncModule, useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappeInfiniteList, useInfiniteScroll };
286
464
  //# sourceMappingURL=frappeReact.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","useState","createFrappeCollection","HttpClient","DbModule","FixtureDbModule","RealtimeModule","SyncModule","isBrowser","syncModuleCache","Map","fixtureSyncModuleCache","WeakMap","__getActiveSyncModule","sync","values","getSyncModule","config","fixtures","sync2","get","db","syncOptions","set","key","baseURL","authConfig","auth","useToken","token","type","http","appName","realtimeConfig","socketPort","useFrappeCollection","doctype","options","collectionRef","configKeyRef","configKey","JSON","stringify","fields","filters","needsCollection","current","syncModule","useInfiniteScroll","hasMore","isLoading","onLoadMore","root","rootMargin","threshold","debounceMs","enabled","isVisible","setIsVisible","isLoadingMore","setIsLoadingMore","observerRef","sentinelNodeRef","debounceTimerRef","lastLoadTimeRef","loadMore","now","Date","node","disconnect","IntersectionObserver","entries","entry","visible","isIntersecting","clearTimeout","setTimeout","observe","sentinelRef","useFrappeInfiniteList","orderBy","pageSize","transform","items","setItems","setHasMore","setIsLoading","error","setError","subscriptionIdRef","syncModuleRef","filtersKey","cancelled","result","subscribe","limit","progressive","unsubscribe","subscriptionId","docs","getDocsForSubscription","pageInfo","getPageInfo","map","err","Error","String","unsubStore","subscribeStore","subId","currentDocs","lastDoc","length","getNextBatch","name","refresh","_isVisible","totalLoaded"],"sources":["../../src/frappeReact.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["isWindowDefined","useCallback","useEffect","useRef","useState","createFrappeCollection","HttpClient","DbModule","FixtureDbModule","RealtimeModule","SyncModule","isBrowser","syncModuleCache","Map","fixtureSyncModuleCache","WeakMap","__getActiveSyncModule","sync","values","getSyncModule","config","fixtures","sync2","get","db","syncOptions","set","key","baseURL","console","debug","persistKey","cdcInterval","authConfig","auth","useToken","token","type","sessionId","http","appName","realtimeConfig","socketPort","socketOptions","sharedCollectionCaches","SHARED_COLLECTION_GC_MS","SHARED_COLLECTION_GC_FORCE_MS","collectionIsCleanedUp","collection","status","collectionOptionsKey","doctype","options","JSON","stringify","fields","filters","orderBy","String","limit","id","join","scheduleEntryGc","cache","entry","gcTimer","clearTimeout","setTimeout","refCount","cleaned","subscriberCount","gcForceDeadline","Date","now","delete","Promise","resolve","cleanup","catch","getOrCreateSharedCollection","syncModule","existingCache","created","errorHandlers","Set","hasSyncError","lastSyncError","onSyncError","error","handler","retainSharedCollection","add","releaseSharedCollection","Math","max","cleanupEntryCollectionWhenIdle","deadline","tick","useFrappeCollection","errorHandlerRef","current","stableErrorHandler","setStaleEntryBump","n","retained","retainedCache","retainedKey","unsubscribeStatus","on","event","DISCONNECTED_STATE","Object","freeze","connected","everConnected","useFrappeConnection","state","setState","read","next","getConnectionState","prev","subscribeStore","useFrappeDoctypeEvents","onEvent","enabled","handlerRef","watchDoctype","unsubscribe","subscribeRealtimeEvents","payload","unwatchDoctype","useInfiniteScroll","hasMore","isLoading","onLoadMore","root","rootMargin","threshold","debounceMs","isVisible","setIsVisible","isLoadingMore","setIsLoadingMore","observerRef","sentinelNodeRef","debounceTimerRef","lastLoadTimeRef","loadMore","IntersectionObserver","node","disconnect","entries","visible","isIntersecting","observe","sentinelRef","useFrappeInfiniteList","pageSize","transform","items","setItems","setHasMore","setIsLoading","setError","subscriptionIdRef","syncModuleRef","filtersKey","cancelled","result","subscribe","progressive","subscriptionId","docs","getDocsForSubscription","pageInfo","getPageInfo","map","err","Error","unsubStore","subId","currentDocs","lastDoc","length","getNextBatch","name","refresh","_isVisible","totalLoaded"],"sources":["../../src/frappeReact.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -26,10 +26,13 @@ var frappeReact_exports = {};
26
26
  __export(frappeReact_exports, {
27
27
  __getActiveSyncModule: () => __getActiveSyncModule,
28
28
  useFrappeCollection: () => useFrappeCollection,
29
+ useFrappeConnection: () => useFrappeConnection,
30
+ useFrappeDoctypeEvents: () => useFrappeDoctypeEvents,
29
31
  useFrappeInfiniteList: () => useFrappeInfiniteList,
30
32
  useInfiniteScroll: () => useInfiniteScroll
31
33
  });
32
34
  module.exports = __toCommonJS(frappeReact_exports);
35
+ var import_platform = require("@multiplatform.one/platform");
33
36
  var import_react = require("react");
34
37
  var import_collection = require("./collection.native.js");
35
38
  var import_http = require("./core/http.native.js");
@@ -88,10 +91,14 @@ function getSyncModule(config) {
88
91
  var key = config.baseURL;
89
92
  var sync1 = syncModuleCache.get(key);
90
93
  if (!sync1) {
94
+ var _ref, _ref1;
95
+ var _config_syncOptions, _config_syncOptions1;
96
+ console.debug(`[frappe-sync] SyncModule created for ${key} (persistKey=${(_ref = (_config_syncOptions = config.syncOptions) === null || _config_syncOptions === void 0 ? void 0 : _config_syncOptions.persistKey) !== null && _ref !== void 0 ? _ref : "none"}, cdcInterval=${(_ref1 = (_config_syncOptions1 = config.syncOptions) === null || _config_syncOptions1 === void 0 ? void 0 : _config_syncOptions1.cdcInterval) !== null && _ref1 !== void 0 ? _ref1 : "off"})`);
91
97
  var authConfig = config.auth ? {
92
98
  useToken: config.auth.useToken,
93
99
  token: config.auth.token,
94
- type: config.auth.type
100
+ type: config.auth.type,
101
+ sessionId: config.auth.sessionId
95
102
  } : void 0;
96
103
  var http = new import_http.HttpClient(config.baseURL, authConfig);
97
104
  var db1 = new import_db.DbModule(http, {
@@ -100,33 +107,249 @@ function getSyncModule(config) {
100
107
  var realtimeConfig = {
101
108
  baseURL: config.baseURL,
102
109
  socketPort: config.socketPort,
103
- auth: authConfig
110
+ auth: authConfig,
111
+ socketOptions: config.socketOptions
104
112
  };
105
113
  sync1 = new import_sync.SyncModule(db1, new import_realtime.RealtimeModule(realtimeConfig), config.syncOptions);
106
114
  syncModuleCache.set(key, sync1);
107
115
  }
108
116
  return sync1;
109
117
  }
118
+ var sharedCollectionCaches = /* @__PURE__ */new WeakMap();
119
+ var SHARED_COLLECTION_GC_MS = 1e3;
120
+ var SHARED_COLLECTION_GC_FORCE_MS = 3e4;
121
+ function collectionIsCleanedUp(collection) {
122
+ return collection.status === "cleaned-up";
123
+ }
124
+ function collectionOptionsKey(doctype, options) {
125
+ return [doctype, JSON.stringify(options === null || options === void 0 ? void 0 : options.fields), JSON.stringify(options === null || options === void 0 ? void 0 : options.filters), JSON.stringify(options === null || options === void 0 ? void 0 : options.orderBy), String(options === null || options === void 0 ? void 0 : options.limit), String(options === null || options === void 0 ? void 0 : options.id)].join("|");
126
+ }
127
+ function scheduleEntryGc(cache, key, entry) {
128
+ if (entry.gcTimer) clearTimeout(entry.gcTimer);
129
+ entry.gcTimer = setTimeout(function () {
130
+ var _entry_collection_subscriberCount;
131
+ var _entry_collection_cleanup, _entry_collection;
132
+ entry.gcTimer = void 0;
133
+ if (entry.refCount > 0 || entry.cleaned) return;
134
+ var subscriberCount = (_entry_collection_subscriberCount = entry.collection.subscriberCount) !== null && _entry_collection_subscriberCount !== void 0 ? _entry_collection_subscriberCount : 0;
135
+ if (subscriberCount > 0) {
136
+ var _entry, _gcForceDeadline;
137
+ (_gcForceDeadline = (_entry = entry).gcForceDeadline) !== null && _gcForceDeadline !== void 0 ? _gcForceDeadline : _entry.gcForceDeadline = Date.now() + SHARED_COLLECTION_GC_FORCE_MS;
138
+ if (Date.now() < entry.gcForceDeadline) {
139
+ scheduleEntryGc(cache, key, entry);
140
+ return;
141
+ }
142
+ }
143
+ entry.cleaned = true;
144
+ entry.gcForceDeadline = void 0;
145
+ if (cache.get(key) === entry) cache.delete(key);
146
+ Promise.resolve((_entry_collection_cleanup = (_entry_collection = entry.collection).cleanup) === null || _entry_collection_cleanup === void 0 ? void 0 : _entry_collection_cleanup.call(_entry_collection)).catch(function () {});
147
+ }, SHARED_COLLECTION_GC_MS);
148
+ }
149
+ function getOrCreateSharedCollection(syncModule, doctype, options, key) {
150
+ var existingCache = sharedCollectionCaches.get(syncModule);
151
+ if (!existingCache) {
152
+ existingCache = /* @__PURE__ */new Map();
153
+ sharedCollectionCaches.set(syncModule, existingCache);
154
+ }
155
+ var cache = existingCache;
156
+ var entry = cache.get(key);
157
+ if (entry && !entry.cleaned && collectionIsCleanedUp(entry.collection)) {
158
+ entry.cleaned = true;
159
+ if (entry.gcTimer) {
160
+ clearTimeout(entry.gcTimer);
161
+ entry.gcTimer = void 0;
162
+ }
163
+ }
164
+ if (!entry || entry.cleaned) {
165
+ var created = {
166
+ collection: void 0,
167
+ refCount: 0,
168
+ gcTimer: void 0,
169
+ gcForceDeadline: void 0,
170
+ errorHandlers: /* @__PURE__ */new Set(),
171
+ hasSyncError: false,
172
+ lastSyncError: void 0,
173
+ cleaned: false
174
+ };
175
+ created.collection = (0, import_collection.createFrappeCollection)(doctype, {
176
+ ...options,
177
+ sync: syncModule,
178
+ onSyncError: function onSyncError(error) {
179
+ created.hasSyncError = true;
180
+ created.lastSyncError = error;
181
+ var _iteratorNormalCompletion = true,
182
+ _didIteratorError = false,
183
+ _iteratorError = void 0;
184
+ try {
185
+ for (var _iterator = created.errorHandlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
186
+ var handler = _step.value;
187
+ handler(error);
188
+ }
189
+ } catch (err) {
190
+ _didIteratorError = true;
191
+ _iteratorError = err;
192
+ } finally {
193
+ try {
194
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
195
+ _iterator.return();
196
+ }
197
+ } finally {
198
+ if (_didIteratorError) {
199
+ throw _iteratorError;
200
+ }
201
+ }
202
+ }
203
+ }
204
+ });
205
+ cache.set(key, created);
206
+ scheduleEntryGc(cache, key, created);
207
+ entry = created;
208
+ }
209
+ return {
210
+ cache,
211
+ entry
212
+ };
213
+ }
214
+ function retainSharedCollection(entry, onSyncError) {
215
+ entry.refCount++;
216
+ if (entry.gcTimer) {
217
+ clearTimeout(entry.gcTimer);
218
+ entry.gcTimer = void 0;
219
+ }
220
+ entry.gcForceDeadline = void 0;
221
+ entry.errorHandlers.add(onSyncError);
222
+ if (entry.hasSyncError) onSyncError(entry.lastSyncError);
223
+ }
224
+ function releaseSharedCollection(cache, key, entry, onSyncError) {
225
+ entry.errorHandlers.delete(onSyncError);
226
+ entry.refCount = Math.max(0, entry.refCount - 1);
227
+ if (entry.refCount > 0 || entry.cleaned) return;
228
+ if (entry.hasSyncError) {
229
+ entry.cleaned = true;
230
+ if (entry.gcTimer) {
231
+ clearTimeout(entry.gcTimer);
232
+ entry.gcTimer = void 0;
233
+ }
234
+ entry.gcForceDeadline = void 0;
235
+ if (cache.get(key) === entry) cache.delete(key);
236
+ cleanupEntryCollectionWhenIdle(entry);
237
+ return;
238
+ }
239
+ scheduleEntryGc(cache, key, entry);
240
+ }
241
+ function cleanupEntryCollectionWhenIdle(entry) {
242
+ var deadline = Date.now() + SHARED_COLLECTION_GC_FORCE_MS;
243
+ var tick = function tick1() {
244
+ var _entry_collection_subscriberCount;
245
+ var _entry_collection_cleanup, _entry_collection;
246
+ entry.gcTimer = void 0;
247
+ var subscriberCount = (_entry_collection_subscriberCount = entry.collection.subscriberCount) !== null && _entry_collection_subscriberCount !== void 0 ? _entry_collection_subscriberCount : 0;
248
+ if (subscriberCount > 0 && Date.now() < deadline) {
249
+ entry.gcTimer = setTimeout(tick, SHARED_COLLECTION_GC_MS);
250
+ return;
251
+ }
252
+ Promise.resolve((_entry_collection_cleanup = (_entry_collection = entry.collection).cleanup) === null || _entry_collection_cleanup === void 0 ? void 0 : _entry_collection_cleanup.call(_entry_collection)).catch(function () {});
253
+ };
254
+ entry.gcTimer = setTimeout(tick, SHARED_COLLECTION_GC_MS);
255
+ }
110
256
  function useFrappeCollection(config, doctype, options) {
111
- var collectionRef = (0, import_react.useRef)(void 0);
112
- var configKeyRef = (0, import_react.useRef)("");
113
- var configKey = config ? `${config.baseURL}:${config.fixtures ? "fixture" : "live"}:${doctype}:${JSON.stringify(options === null || options === void 0 ? void 0 : options.fields)}:${JSON.stringify(options === null || options === void 0 ? void 0 : options.filters)}` : "";
114
- var needsCollection = config && (configKey !== configKeyRef.current || !collectionRef.current);
115
- if (needsCollection) {
257
+ var errorHandlerRef = (0, import_react.useRef)(options === null || options === void 0 ? void 0 : options.onSyncError);
258
+ errorHandlerRef.current = options === null || options === void 0 ? void 0 : options.onSyncError;
259
+ var stableErrorHandler = (0, import_react.useCallback)(function (error) {
260
+ var _errorHandlerRef_current;
261
+ (_errorHandlerRef_current = errorHandlerRef.current) === null || _errorHandlerRef_current === void 0 ? void 0 : _errorHandlerRef_current.call(errorHandlerRef, error);
262
+ }, []);
263
+ var [, setStaleEntryBump] = (0, import_react.useState)(0);
264
+ var cache;
265
+ var key = "";
266
+ var entry;
267
+ if (config && doctype) {
116
268
  var syncModule = getSyncModule(config);
117
269
  if (syncModule) {
118
- collectionRef.current = (0, import_collection.createFrappeCollection)(doctype, {
119
- ...options,
120
- sync: syncModule
121
- });
122
- configKeyRef.current = configKey;
270
+ key = collectionOptionsKey(doctype, options);
271
+ ({
272
+ cache,
273
+ entry
274
+ } = getOrCreateSharedCollection(syncModule, doctype, options, key));
123
275
  }
124
276
  }
125
- if (!config) {
126
- collectionRef.current = void 0;
127
- configKeyRef.current = "";
128
- }
129
- return collectionRef.current;
277
+ (0, import_react.useEffect)(function () {
278
+ var _retained_collection_on, _retained_collection;
279
+ if (!entry || !cache) return;
280
+ if (entry.cleaned || collectionIsCleanedUp(entry.collection)) {
281
+ setStaleEntryBump(function (n) {
282
+ return n + 1;
283
+ });
284
+ return;
285
+ }
286
+ var retained = entry;
287
+ var retainedCache = cache;
288
+ var retainedKey = key;
289
+ retainSharedCollection(retained, stableErrorHandler);
290
+ var unsubscribeStatus = (_retained_collection_on = (_retained_collection = retained.collection).on) === null || _retained_collection_on === void 0 ? void 0 : _retained_collection_on.call(_retained_collection, "status:change", function (event) {
291
+ if ((event === null || event === void 0 ? void 0 : event.status) !== "cleaned-up" || retained.cleaned) return;
292
+ retained.cleaned = true;
293
+ setStaleEntryBump(function (n) {
294
+ return n + 1;
295
+ });
296
+ });
297
+ return function () {
298
+ unsubscribeStatus === null || unsubscribeStatus === void 0 ? void 0 : unsubscribeStatus();
299
+ releaseSharedCollection(retainedCache, retainedKey, retained, stableErrorHandler);
300
+ };
301
+ },
302
+ // eslint-disable-next-line react-hooks/exhaustive-deps
303
+ [entry, stableErrorHandler]);
304
+ return entry ? entry.collection : void 0;
305
+ }
306
+ var DISCONNECTED_STATE = Object.freeze({
307
+ connected: false,
308
+ everConnected: false
309
+ });
310
+ function useFrappeConnection(config) {
311
+ var [state, setState] = (0, import_react.useState)(DISCONNECTED_STATE);
312
+ (0, import_react.useEffect)(function () {
313
+ if (!config || config.fixtures || !(0, import_util.isBrowser)()) return;
314
+ var syncModule = getSyncModule(config);
315
+ if (!syncModule) return;
316
+ var read = function read2() {
317
+ var next = syncModule.getConnectionState();
318
+ setState(function (prev) {
319
+ return prev.connected === next.connected && prev.everConnected === next.everConnected ? prev : next;
320
+ });
321
+ };
322
+ read();
323
+ return syncModule.subscribeStore(read);
324
+ },
325
+ // eslint-disable-next-line react-hooks/exhaustive-deps
326
+ [config === null || config === void 0 ? void 0 : config.baseURL, !!(config === null || config === void 0 ? void 0 : config.fixtures)]);
327
+ return state;
328
+ }
329
+ function useFrappeDoctypeEvents(config, doctype, onEvent) {
330
+ var enabled = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
331
+ var handlerRef = (0, import_react.useRef)(onEvent);
332
+ handlerRef.current = onEvent;
333
+ (0, import_react.useEffect)(function () {
334
+ if (!enabled || !config || config.fixtures || !doctype || !(0, import_util.isBrowser)()) return;
335
+ var syncModule = getSyncModule(config);
336
+ if (!syncModule) return;
337
+ syncModule.watchDoctype(doctype);
338
+ var unsubscribe = syncModule.subscribeRealtimeEvents(function (event) {
339
+ var payload = event.payload;
340
+ if ((payload === null || payload === void 0 ? void 0 : payload.doctype) && payload.doctype !== doctype) return;
341
+ handlerRef.current({
342
+ type: event.type,
343
+ payload: event.payload
344
+ });
345
+ });
346
+ return function () {
347
+ unsubscribe();
348
+ syncModule.unwatchDoctype(doctype);
349
+ };
350
+ },
351
+ // eslint-disable-next-line react-hooks/exhaustive-deps
352
+ [enabled, config === null || config === void 0 ? void 0 : config.baseURL, !!(config === null || config === void 0 ? void 0 : config.fixtures), doctype]);
130
353
  }
131
354
  function useInfiniteScroll(config) {
132
355
  var {
@@ -158,7 +381,7 @@ function useInfiniteScroll(config) {
158
381
  }
159
382
  }, [hasMore, isLoading, isLoadingMore, onLoadMore, debounceMs]);
160
383
  (0, import_react.useEffect)(function () {
161
- if (!(0, import_util.isBrowser)() || !enabled) return;
384
+ if (!import_platform.isWindowDefined || typeof IntersectionObserver === "undefined" || !enabled) return;
162
385
  var node = sentinelNodeRef.current;
163
386
  if (!node) return;
164
387
  if (observerRef.current) {