@multiplatform.one/frappe 6.0.4 → 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 +11 -3
  187. package/dist/esm/util.mjs.map +1 -1
  188. package/dist/esm/util.native.js +16 -3
  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 +11 -3
  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 +446 -38
  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 +2 -2
  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 +37 -2
  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,5 +1,21 @@
1
1
  import { RealtimeEventType, RehydrationReason } from "./types.mjs";
2
2
  class RealtimeHandler {
3
+ reconnectAttempts = 0;
4
+ reconnectTimer;
5
+ hasConnected = false;
6
+ /** Live socket state: true between `connected` and `disconnect` events. */
7
+ connected = false;
8
+ connectionConfig;
9
+ /** Refcount of active subscriptions per doctype — drives doctype room membership. */
10
+ watchedDoctypes = /* @__PURE__ */new Map();
11
+ /** In-flight authoritative fetches, deduping concurrent doc_update/list_update pairs. */
12
+ inflightFetches = /* @__PURE__ */new Map();
13
+ db;
14
+ realtime;
15
+ normalizedCache;
16
+ subscriptionManager;
17
+ rehydrationManager;
18
+ options;
3
19
  constructor(db, realtime, normalizedCache, subscriptionManager, rehydrationManager, options = {}) {
4
20
  this.db = db;
5
21
  this.realtime = realtime;
@@ -16,21 +32,40 @@ class RealtimeHandler {
16
32
  this.setupRealtimeHandlers();
17
33
  this.setupConnectionManagement();
18
34
  }
19
- db;
20
- realtime;
21
- normalizedCache;
22
- subscriptionManager;
23
- rehydrationManager;
24
- options;
25
- reconnectAttempts = 0;
26
- reconnectTimer;
27
- hasConnected = false;
28
- connectionConfig;
29
35
  /**
30
36
  * Sets up realtime event handlers for document changes.
37
+ *
38
+ * Real Frappe (v15) wire protocol, verified live against a stock bench
39
+ * (see .test-evidence/storybook-rubric/p-results/frappe-realtime-live-e2e.md):
40
+ * - `doc_update` `{doctype, name, modified}` — emitted to the per-doc room
41
+ * `doc:{doctype}/{name}` on every save.
42
+ * - `list_update` `{doctype, name, user}` — emitted to the doctype room
43
+ * `doctype:{doctype}` on every save of a non-single, non-child doctype.
44
+ * - Deletion emits the SAME two events (payload indistinguishable from an
45
+ * update) — there is NO `doc_deleted` event. Deletions are detected here
46
+ * opportunistically when the authoritative re-fetch 404s, but the durable
47
+ * deletion signal remains the tombstone/CDC backfill (`Deleted Document`
48
+ * doctype maintained by the `live` app's on_trash hook).
49
+ *
50
+ * Both real events funnel into the same fetch-and-reconcile path, deduped
51
+ * so a doc_update/list_update pair for the same doc costs one fetch.
31
52
  */
32
53
  setupRealtimeHandlers() {
33
54
  if (!this.realtime) return;
55
+ this.realtime?.on("doc_update", async payload => {
56
+ if (this.options.onRealtimeEvent) this.options.onRealtimeEvent({
57
+ type: RealtimeEventType.DocUpdate,
58
+ payload
59
+ });
60
+ return this.onDocChanged(payload);
61
+ });
62
+ this.realtime?.on("list_update", async payload => {
63
+ if (this.options.onRealtimeEvent) this.options.onRealtimeEvent({
64
+ type: RealtimeEventType.ListUpdate,
65
+ payload
66
+ });
67
+ return this.onDocChanged(payload);
68
+ });
34
69
  this.realtime?.on("doc_changed", async payload => {
35
70
  if (this.options.onRealtimeEvent) this.options.onRealtimeEvent({
36
71
  type: RealtimeEventType.DocChanged,
@@ -72,6 +107,7 @@ class RealtimeHandler {
72
107
  */
73
108
  onConnected() {
74
109
  this.hasConnected = true;
110
+ this.connected = true;
75
111
  this.reconnectAttempts = 0;
76
112
  if (this.reconnectTimer) {
77
113
  clearTimeout(this.reconnectTimer);
@@ -85,6 +121,7 @@ class RealtimeHandler {
85
121
  if (this.options.onBackfillAll) {
86
122
  this.options.onBackfillAll();
87
123
  }
124
+ this.options.onStoreChange?.();
88
125
  console.debug("[RealtimeHandler] Connected to realtime server");
89
126
  }
90
127
  /**
@@ -92,18 +129,24 @@ class RealtimeHandler {
92
129
  */
93
130
  onDisconnected() {
94
131
  console.debug("[RealtimeHandler] Disconnected from realtime server");
132
+ this.connected = false;
133
+ this.options.onStoreChange?.();
95
134
  if (this.hasConnected) {
96
135
  this.scheduleReconnection();
97
136
  }
98
137
  }
99
138
  /**
100
- * Attempts to connect to the realtime server.
139
+ * No-op placeholder retained for the disconnect backoff schedule below.
140
+ * Transport reconnect is owned by Socket.IO inside RealtimeModule; this
141
+ * layer only tracks attempts for logging / future health hooks.
101
142
  */
102
143
  attemptConnection() {
103
144
  if (!this.realtime) return;
104
145
  }
105
146
  /**
106
- * Schedules a reconnection attempt with exponential backoff and jitter.
147
+ * Schedules a reconnection *watchdog* tick with exponential backoff and jitter.
148
+ * Does not open sockets — RealtimeModule already reconnects. Kept so disconnect
149
+ * storms remain observable (and existing unit tests stay meaningful).
107
150
  */
108
151
  scheduleReconnection() {
109
152
  if (this.reconnectTimer) {
@@ -129,12 +172,61 @@ class RealtimeHandler {
129
172
  delay = Math.round(delay + jitter);
130
173
  return Math.max(this.connectionConfig.reconnectBaseDelay, Math.min(delay, this.connectionConfig.reconnectMaxDelay));
131
174
  }
175
+ /**
176
+ * Join the realtime doctype room for a doctype (refcounted). Called by the
177
+ * sync module whenever a subscription for the doctype is added. Room
178
+ * membership survives reconnects — RealtimeModule re-joins tracked rooms on
179
+ * every `connect`.
180
+ *
181
+ * Note: only doctype-level rooms are joined. `list_update` fires for every
182
+ * save of a regular doctype, which covers doc updates too; per-doc rooms
183
+ * would only add coverage for single/read-only doctypes.
184
+ */
185
+ watchDoctype(doctype) {
186
+ const count = (this.watchedDoctypes.get(doctype) ?? 0) + 1;
187
+ this.watchedDoctypes.set(doctype, count);
188
+ if (count === 1 && this.realtime) {
189
+ Promise.resolve(this.realtime.subscribeList(doctype)).catch(err => console.warn(`[RealtimeHandler] Failed to join doctype room ${doctype}:`, err));
190
+ }
191
+ }
192
+ /** Release one reference to a doctype room; leaves the room on the last one. */
193
+ unwatchDoctype(doctype) {
194
+ const count = (this.watchedDoctypes.get(doctype) ?? 0) - 1;
195
+ if (count > 0) {
196
+ this.watchedDoctypes.set(doctype, count);
197
+ return;
198
+ }
199
+ this.watchedDoctypes.delete(doctype);
200
+ this.realtime?.unsubscribeList(doctype);
201
+ }
202
+ /** Leave all doctype rooms (used by cache resets/disposal). */
203
+ unwatchAll() {
204
+ if (this.realtime) {
205
+ for (const doctype of this.watchedDoctypes.keys()) {
206
+ this.realtime.unsubscribeList(doctype);
207
+ }
208
+ }
209
+ this.watchedDoctypes.clear();
210
+ }
132
211
  /**
133
212
  * Realtime handler: authoritative document changed.
134
213
  * Fetches document via REST with current user context to respect permissions,
135
214
  * updates cache, and reconciles subscription membership.
215
+ *
216
+ * Concurrent events for the same document (frappe emits doc_update AND
217
+ * list_update per save) share a single in-flight fetch.
136
218
  */
137
- async onDocChanged(payload) {
219
+ onDocChanged(payload) {
220
+ const key = `${payload?.doctype}\0${payload?.name}`;
221
+ const inflight = this.inflightFetches.get(key);
222
+ if (inflight) return inflight;
223
+ const fetchPromise = this.fetchAndReconcile(payload).finally(() => {
224
+ this.inflightFetches.delete(key);
225
+ });
226
+ this.inflightFetches.set(key, fetchPromise);
227
+ return fetchPromise;
228
+ }
229
+ async fetchAndReconcile(payload) {
138
230
  try {
139
231
  const document = await this.db.getDoc(payload.doctype, payload.name);
140
232
  this.normalizedCache.upsert(document);
@@ -142,7 +234,12 @@ class RealtimeHandler {
142
234
  for (const subscription of subscriptionsNeedingRehydration) {
143
235
  this.rehydrationManager?.scheduleRehydration(subscription, RehydrationReason.RemoteCreate);
144
236
  }
237
+ this.options.onStoreChange?.();
145
238
  } catch (err) {
239
+ if (err?.status === 404) {
240
+ await this.onDocDeleted(payload);
241
+ return;
242
+ }
146
243
  console.warn(`Failed to fetch document ${payload?.doctype}/${payload?.name} during realtime update:`, err);
147
244
  }
148
245
  }
@@ -159,6 +256,7 @@ class RealtimeHandler {
159
256
  for (const subscription of affectedSubscriptions) {
160
257
  this.rehydrationManager?.scheduleRehydration(subscription, RehydrationReason.Delete);
161
258
  }
259
+ this.options.onStoreChange?.();
162
260
  } catch (err) {
163
261
  console.warn(`Failed to process doc_deleted for ${payload?.doctype}/${payload?.name}:`, err);
164
262
  }
@@ -172,6 +270,18 @@ class RealtimeHandler {
172
270
  getIsConnected() {
173
271
  return this.hasConnected;
174
272
  }
273
+ /**
274
+ * Live connection snapshot for reconnect indicators.
275
+ * `connected` tracks the socket right now; `everConnected` distinguishes
276
+ * "reconnecting" (was up, dropped) from "never had realtime" (fixtures,
277
+ * SSR, no realtime module).
278
+ */
279
+ getConnectionState() {
280
+ return {
281
+ connected: this.connected,
282
+ everConnected: this.hasConnected
283
+ };
284
+ }
175
285
  /**
176
286
  * Disposes of resources and clears timers.
177
287
  */
@@ -180,6 +290,7 @@ class RealtimeHandler {
180
290
  clearTimeout(this.reconnectTimer);
181
291
  this.reconnectTimer = void 0;
182
292
  }
293
+ this.unwatchAll();
183
294
  if (this.realtime) {
184
295
  this.realtime?.disconnect();
185
296
  }
@@ -1 +1 @@
1
- {"version":3,"names":["RealtimeEventType","RehydrationReason","RealtimeHandler","constructor","db","realtime","normalizedCache","subscriptionManager","rehydrationManager","options","connectionConfig","reconnectBaseDelay","reconnectMaxDelay","reconnectJitter","exponentialBackoff","setupRealtimeHandlers","setupConnectionManagement","reconnectAttempts","reconnectTimer","hasConnected","on","payload","onRealtimeEvent","type","DocChanged","onDocChanged","DocDeleted","onDocDeleted","PermEpochBump","onResetCache","onConnected","onDisconnected","attemptConnection","clearTimeout","Connected","onBackfillAll","console","debug","scheduleReconnection","delay","calculateReconnectDelay","setTimeout","Math","min","jitterRange","jitter","random","round","max","document","getDoc","doctype","name","upsert","subscriptionsNeedingRehydration","updateSubscriptionMembership","subscription","scheduleRehydration","RemoteCreate","err","warn","remove","affectedSubscriptions","removeFromAllSubscriptions","Delete","isRealtimeHealthy","isHealthy","getIsConnected","dispose","disconnect"],"sources":["../../../src/sync/realtime.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["RealtimeEventType","RehydrationReason","RealtimeHandler","reconnectAttempts","reconnectTimer","hasConnected","connected","connectionConfig","watchedDoctypes","Map","inflightFetches","db","realtime","normalizedCache","subscriptionManager","rehydrationManager","options","constructor","reconnectBaseDelay","reconnectMaxDelay","reconnectJitter","exponentialBackoff","setupRealtimeHandlers","setupConnectionManagement","on","payload","onRealtimeEvent","type","DocUpdate","onDocChanged","ListUpdate","DocChanged","DocDeleted","onDocDeleted","PermEpochBump","onResetCache","onConnected","onDisconnected","attemptConnection","clearTimeout","Connected","onBackfillAll","onStoreChange","console","debug","scheduleReconnection","delay","calculateReconnectDelay","setTimeout","Math","min","jitterRange","jitter","random","round","max","watchDoctype","doctype","count","get","set","Promise","resolve","subscribeList","catch","err","warn","unwatchDoctype","delete","unsubscribeList","unwatchAll","keys","clear","key","name","inflight","fetchPromise","fetchAndReconcile","finally","document","getDoc","upsert","subscriptionsNeedingRehydration","updateSubscriptionMembership","subscription","scheduleRehydration","RemoteCreate","status","remove","affectedSubscriptions","removeFromAllSubscriptions","Delete","isRealtimeHealthy","isHealthy","getIsConnected","getConnectionState","everConnected","dispose","disconnect"],"sources":["../../../src/sync/realtime.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -39,24 +39,25 @@ var RealtimeHandler = /* @__PURE__ */function () {
39
39
  _class_call_check(this, RealtimeHandler2);
40
40
  var _ref, _ref1, _ref2, _ref3;
41
41
  var _options_connectionConfig, _options_connectionConfig1, _options_connectionConfig2, _options_connectionConfig3;
42
+ _define_property(this, "reconnectAttempts", 0);
43
+ _define_property(this, "reconnectTimer", void 0);
44
+ _define_property(this, "hasConnected", false);
45
+ _define_property(this, "connected", false);
46
+ _define_property(this, "connectionConfig", void 0);
47
+ _define_property(this, "watchedDoctypes", /* @__PURE__ */new Map());
48
+ _define_property(this, "inflightFetches", /* @__PURE__ */new Map());
42
49
  _define_property(this, "db", void 0);
43
50
  _define_property(this, "realtime", void 0);
44
51
  _define_property(this, "normalizedCache", void 0);
45
52
  _define_property(this, "subscriptionManager", void 0);
46
53
  _define_property(this, "rehydrationManager", void 0);
47
54
  _define_property(this, "options", void 0);
48
- _define_property(this, "reconnectAttempts", void 0);
49
- _define_property(this, "reconnectTimer", void 0);
50
- _define_property(this, "hasConnected", void 0);
51
- _define_property(this, "connectionConfig", void 0);
52
55
  this.db = db;
53
56
  this.realtime = realtime;
54
57
  this.normalizedCache = normalizedCache;
55
58
  this.subscriptionManager = subscriptionManager;
56
59
  this.rehydrationManager = rehydrationManager;
57
60
  this.options = options;
58
- this.reconnectAttempts = 0;
59
- this.hasConnected = false;
60
61
  this.connectionConfig = {
61
62
  reconnectBaseDelay: (_ref = (_options_connectionConfig = options.connectionConfig) === null || _options_connectionConfig === void 0 ? void 0 : _options_connectionConfig.reconnectBaseDelay) !== null && _ref !== void 0 ? _ref : 1e3,
62
63
  reconnectMaxDelay: (_ref1 = (_options_connectionConfig1 = options.connectionConfig) === null || _options_connectionConfig1 === void 0 ? void 0 : _options_connectionConfig1.reconnectMaxDelay) !== null && _ref1 !== void 0 ? _ref1 : 3e4,
@@ -71,26 +72,55 @@ var RealtimeHandler = /* @__PURE__ */function () {
71
72
  value: (
72
73
  /**
73
74
  * Sets up realtime event handlers for document changes.
75
+ *
76
+ * Real Frappe (v15) wire protocol, verified live against a stock bench
77
+ * (see .test-evidence/storybook-rubric/p-results/frappe-realtime-live-e2e.md):
78
+ * - `doc_update` `{doctype, name, modified}` — emitted to the per-doc room
79
+ * `doc:{doctype}/{name}` on every save.
80
+ * - `list_update` `{doctype, name, user}` — emitted to the doctype room
81
+ * `doctype:{doctype}` on every save of a non-single, non-child doctype.
82
+ * - Deletion emits the SAME two events (payload indistinguishable from an
83
+ * update) — there is NO `doc_deleted` event. Deletions are detected here
84
+ * opportunistically when the authoritative re-fetch 404s, but the durable
85
+ * deletion signal remains the tombstone/CDC backfill (`Deleted Document`
86
+ * doctype maintained by the `live` app's on_trash hook).
87
+ *
88
+ * Both real events funnel into the same fetch-and-reconcile path, deduped
89
+ * so a doc_update/list_update pair for the same doc costs one fetch.
74
90
  */
75
91
  function setupRealtimeHandlers() {
76
92
  var _this = this;
77
- var _this_realtime, _this_realtime1, _this_realtime2, _this_realtime3, _this_realtime4;
93
+ var _this_realtime, _this_realtime1, _this_realtime2, _this_realtime3, _this_realtime4, _this_realtime5, _this_realtime6;
78
94
  if (!this.realtime) return;
79
- (_this_realtime = this.realtime) === null || _this_realtime === void 0 ? void 0 : _this_realtime.on("doc_changed", async function (payload) {
95
+ (_this_realtime = this.realtime) === null || _this_realtime === void 0 ? void 0 : _this_realtime.on("doc_update", async function (payload) {
96
+ if (_this.options.onRealtimeEvent) _this.options.onRealtimeEvent({
97
+ type: RealtimeEventType.DocUpdate,
98
+ payload
99
+ });
100
+ return _this.onDocChanged(payload);
101
+ });
102
+ (_this_realtime1 = this.realtime) === null || _this_realtime1 === void 0 ? void 0 : _this_realtime1.on("list_update", async function (payload) {
103
+ if (_this.options.onRealtimeEvent) _this.options.onRealtimeEvent({
104
+ type: RealtimeEventType.ListUpdate,
105
+ payload
106
+ });
107
+ return _this.onDocChanged(payload);
108
+ });
109
+ (_this_realtime2 = this.realtime) === null || _this_realtime2 === void 0 ? void 0 : _this_realtime2.on("doc_changed", async function (payload) {
80
110
  if (_this.options.onRealtimeEvent) _this.options.onRealtimeEvent({
81
111
  type: RealtimeEventType.DocChanged,
82
112
  payload
83
113
  });
84
114
  return _this.onDocChanged(payload);
85
115
  });
86
- (_this_realtime1 = this.realtime) === null || _this_realtime1 === void 0 ? void 0 : _this_realtime1.on("doc_deleted", async function (payload) {
116
+ (_this_realtime3 = this.realtime) === null || _this_realtime3 === void 0 ? void 0 : _this_realtime3.on("doc_deleted", async function (payload) {
87
117
  if (_this.options.onRealtimeEvent) _this.options.onRealtimeEvent({
88
118
  type: RealtimeEventType.DocDeleted,
89
119
  payload
90
120
  });
91
121
  return _this.onDocDeleted(payload);
92
122
  });
93
- (_this_realtime2 = this.realtime) === null || _this_realtime2 === void 0 ? void 0 : _this_realtime2.on("perm_epoch_bump", function () {
123
+ (_this_realtime4 = this.realtime) === null || _this_realtime4 === void 0 ? void 0 : _this_realtime4.on("perm_epoch_bump", function () {
94
124
  if (_this.options.onRealtimeEvent) _this.options.onRealtimeEvent({
95
125
  type: RealtimeEventType.PermEpochBump
96
126
  });
@@ -98,10 +128,10 @@ var RealtimeHandler = /* @__PURE__ */function () {
98
128
  _this.options.onResetCache();
99
129
  }
100
130
  });
101
- (_this_realtime3 = this.realtime) === null || _this_realtime3 === void 0 ? void 0 : _this_realtime3.on("connected", function () {
131
+ (_this_realtime5 = this.realtime) === null || _this_realtime5 === void 0 ? void 0 : _this_realtime5.on("connected", function () {
102
132
  _this.onConnected();
103
133
  });
104
- (_this_realtime4 = this.realtime) === null || _this_realtime4 === void 0 ? void 0 : _this_realtime4.on("disconnect", function () {
134
+ (_this_realtime6 = this.realtime) === null || _this_realtime6 === void 0 ? void 0 : _this_realtime6.on("disconnect", function () {
105
135
  _this.onDisconnected();
106
136
  });
107
137
  })
@@ -122,7 +152,9 @@ var RealtimeHandler = /* @__PURE__ */function () {
122
152
  * Handles successful connection.
123
153
  */
124
154
  function onConnected() {
155
+ var _this_options_onStoreChange, _this_options;
125
156
  this.hasConnected = true;
157
+ this.connected = true;
126
158
  this.reconnectAttempts = 0;
127
159
  if (this.reconnectTimer) {
128
160
  clearTimeout(this.reconnectTimer);
@@ -136,6 +168,7 @@ var RealtimeHandler = /* @__PURE__ */function () {
136
168
  if (this.options.onBackfillAll) {
137
169
  this.options.onBackfillAll();
138
170
  }
171
+ (_this_options_onStoreChange = (_this_options = this.options).onStoreChange) === null || _this_options_onStoreChange === void 0 ? void 0 : _this_options_onStoreChange.call(_this_options);
139
172
  console.debug("[RealtimeHandler] Connected to realtime server");
140
173
  })
141
174
  }, {
@@ -145,7 +178,10 @@ var RealtimeHandler = /* @__PURE__ */function () {
145
178
  * Handles disconnection with automatic reconnection.
146
179
  */
147
180
  function onDisconnected() {
181
+ var _this_options_onStoreChange, _this_options;
148
182
  console.debug("[RealtimeHandler] Disconnected from realtime server");
183
+ this.connected = false;
184
+ (_this_options_onStoreChange = (_this_options = this.options).onStoreChange) === null || _this_options_onStoreChange === void 0 ? void 0 : _this_options_onStoreChange.call(_this_options);
149
185
  if (this.hasConnected) {
150
186
  this.scheduleReconnection();
151
187
  }
@@ -154,18 +190,20 @@ var RealtimeHandler = /* @__PURE__ */function () {
154
190
  key: "attemptConnection",
155
191
  value: (
156
192
  /**
157
- * Attempts to connect to the realtime server.
193
+ * No-op placeholder retained for the disconnect backoff schedule below.
194
+ * Transport reconnect is owned by Socket.IO inside RealtimeModule; this
195
+ * layer only tracks attempts for logging / future health hooks.
158
196
  */
159
197
  function attemptConnection() {
160
198
  if (!this.realtime) return;
161
199
  })
162
200
  }, {
163
201
  key: "scheduleReconnection",
164
- value:
165
- // RealtimeModule handles reconnection internally via its reconnection config.
166
- // Handlers are already attached in the constructor via setupRealtimeHandlers().
202
+ value: (
167
203
  /**
168
- * Schedules a reconnection attempt with exponential backoff and jitter.
204
+ * Schedules a reconnection *watchdog* tick with exponential backoff and jitter.
205
+ * Does not open sockets — RealtimeModule already reconnects. Kept so disconnect
206
+ * storms remain observable (and existing unit tests stay meaningful).
169
207
  */
170
208
  function scheduleReconnection() {
171
209
  var _this = this;
@@ -178,7 +216,7 @@ var RealtimeHandler = /* @__PURE__ */function () {
178
216
  _this.reconnectAttempts++;
179
217
  _this.attemptConnection();
180
218
  }, delay);
181
- }
219
+ })
182
220
  }, {
183
221
  key: "calculateReconnectDelay",
184
222
  value: (
@@ -195,6 +233,72 @@ var RealtimeHandler = /* @__PURE__ */function () {
195
233
  delay = Math.round(delay + jitter);
196
234
  return Math.max(this.connectionConfig.reconnectBaseDelay, Math.min(delay, this.connectionConfig.reconnectMaxDelay));
197
235
  })
236
+ }, {
237
+ /**
238
+ * Join the realtime doctype room for a doctype (refcounted). Called by the
239
+ * sync module whenever a subscription for the doctype is added. Room
240
+ * membership survives reconnects — RealtimeModule re-joins tracked rooms on
241
+ * every `connect`.
242
+ *
243
+ * Note: only doctype-level rooms are joined. `list_update` fires for every
244
+ * save of a regular doctype, which covers doc updates too; per-doc rooms
245
+ * would only add coverage for single/read-only doctypes.
246
+ */
247
+ key: "watchDoctype",
248
+ value: function watchDoctype(doctype) {
249
+ var _this_watchedDoctypes_get;
250
+ var count = ((_this_watchedDoctypes_get = this.watchedDoctypes.get(doctype)) !== null && _this_watchedDoctypes_get !== void 0 ? _this_watchedDoctypes_get : 0) + 1;
251
+ this.watchedDoctypes.set(doctype, count);
252
+ if (count === 1 && this.realtime) {
253
+ Promise.resolve(this.realtime.subscribeList(doctype)).catch(function (err) {
254
+ return console.warn(`[RealtimeHandler] Failed to join doctype room ${doctype}:`, err);
255
+ });
256
+ }
257
+ }
258
+ }, {
259
+ /** Release one reference to a doctype room; leaves the room on the last one. */
260
+ key: "unwatchDoctype",
261
+ value: function unwatchDoctype(doctype) {
262
+ var _this_watchedDoctypes_get;
263
+ var _this_realtime;
264
+ var count = ((_this_watchedDoctypes_get = this.watchedDoctypes.get(doctype)) !== null && _this_watchedDoctypes_get !== void 0 ? _this_watchedDoctypes_get : 0) - 1;
265
+ if (count > 0) {
266
+ this.watchedDoctypes.set(doctype, count);
267
+ return;
268
+ }
269
+ this.watchedDoctypes.delete(doctype);
270
+ (_this_realtime = this.realtime) === null || _this_realtime === void 0 ? void 0 : _this_realtime.unsubscribeList(doctype);
271
+ }
272
+ }, {
273
+ /** Leave all doctype rooms (used by cache resets/disposal). */
274
+ key: "unwatchAll",
275
+ value: function unwatchAll() {
276
+ if (this.realtime) {
277
+ var _iteratorNormalCompletion = true,
278
+ _didIteratorError = false,
279
+ _iteratorError = void 0;
280
+ try {
281
+ for (var _iterator = this.watchedDoctypes.keys()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
282
+ var doctype = _step.value;
283
+ this.realtime.unsubscribeList(doctype);
284
+ }
285
+ } catch (err) {
286
+ _didIteratorError = true;
287
+ _iteratorError = err;
288
+ } finally {
289
+ try {
290
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
291
+ _iterator.return();
292
+ }
293
+ } finally {
294
+ if (_didIteratorError) {
295
+ throw _iteratorError;
296
+ }
297
+ }
298
+ }
299
+ }
300
+ this.watchedDoctypes.clear();
301
+ }
198
302
  }, {
199
303
  key: "onDocChanged",
200
304
  value: (
@@ -202,9 +306,26 @@ var RealtimeHandler = /* @__PURE__ */function () {
202
306
  * Realtime handler: authoritative document changed.
203
307
  * Fetches document via REST with current user context to respect permissions,
204
308
  * updates cache, and reconciles subscription membership.
309
+ *
310
+ * Concurrent events for the same document (frappe emits doc_update AND
311
+ * list_update per save) share a single in-flight fetch.
205
312
  */
206
- async function onDocChanged(payload) {
313
+ function onDocChanged(payload) {
314
+ var _this = this;
315
+ var key = `${payload === null || payload === void 0 ? void 0 : payload.doctype}\0${payload === null || payload === void 0 ? void 0 : payload.name}`;
316
+ var inflight = this.inflightFetches.get(key);
317
+ if (inflight) return inflight;
318
+ var fetchPromise = this.fetchAndReconcile(payload).finally(function () {
319
+ _this.inflightFetches.delete(key);
320
+ });
321
+ this.inflightFetches.set(key, fetchPromise);
322
+ return fetchPromise;
323
+ })
324
+ }, {
325
+ key: "fetchAndReconcile",
326
+ value: async function fetchAndReconcile(payload) {
207
327
  try {
328
+ var _this_options_onStoreChange, _this_options;
208
329
  var document = await this.db.getDoc(payload.doctype, payload.name);
209
330
  this.normalizedCache.upsert(document);
210
331
  var subscriptionsNeedingRehydration = this.subscriptionManager.updateSubscriptionMembership(document);
@@ -231,10 +352,15 @@ var RealtimeHandler = /* @__PURE__ */function () {
231
352
  }
232
353
  }
233
354
  }
355
+ (_this_options_onStoreChange = (_this_options = this.options).onStoreChange) === null || _this_options_onStoreChange === void 0 ? void 0 : _this_options_onStoreChange.call(_this_options);
234
356
  } catch (err) {
357
+ if ((err === null || err === void 0 ? void 0 : err.status) === 404) {
358
+ await this.onDocDeleted(payload);
359
+ return;
360
+ }
235
361
  console.warn(`Failed to fetch document ${payload === null || payload === void 0 ? void 0 : payload.doctype}/${payload === null || payload === void 0 ? void 0 : payload.name} during realtime update:`, err);
236
362
  }
237
- })
363
+ }
238
364
  }, {
239
365
  key: "onDocDeleted",
240
366
  value: (
@@ -243,6 +369,7 @@ var RealtimeHandler = /* @__PURE__ */function () {
243
369
  */
244
370
  async function onDocDeleted(payload) {
245
371
  try {
372
+ var _this_options_onStoreChange, _this_options;
246
373
  this.normalizedCache.remove({
247
374
  doctype: payload.doctype,
248
375
  name: payload.name
@@ -271,6 +398,7 @@ var RealtimeHandler = /* @__PURE__ */function () {
271
398
  }
272
399
  }
273
400
  }
401
+ (_this_options_onStoreChange = (_this_options = this.options).onStoreChange) === null || _this_options_onStoreChange === void 0 ? void 0 : _this_options_onStoreChange.call(_this_options);
274
402
  } catch (err) {
275
403
  console.warn(`Failed to process doc_deleted for ${payload === null || payload === void 0 ? void 0 : payload.doctype}/${payload === null || payload === void 0 ? void 0 : payload.name}:`, err);
276
404
  }
@@ -290,6 +418,20 @@ var RealtimeHandler = /* @__PURE__ */function () {
290
418
  value: function getIsConnected() {
291
419
  return this.hasConnected;
292
420
  }
421
+ }, {
422
+ /**
423
+ * Live connection snapshot for reconnect indicators.
424
+ * `connected` tracks the socket right now; `everConnected` distinguishes
425
+ * "reconnecting" (was up, dropped) from "never had realtime" (fixtures,
426
+ * SSR, no realtime module).
427
+ */
428
+ key: "getConnectionState",
429
+ value: function getConnectionState() {
430
+ return {
431
+ connected: this.connected,
432
+ everConnected: this.hasConnected
433
+ };
434
+ }
293
435
  }, {
294
436
  /**
295
437
  * Disposes of resources and clears timers.
@@ -300,6 +442,7 @@ var RealtimeHandler = /* @__PURE__ */function () {
300
442
  clearTimeout(this.reconnectTimer);
301
443
  this.reconnectTimer = void 0;
302
444
  }
445
+ this.unwatchAll();
303
446
  if (this.realtime) {
304
447
  var _this_realtime;
305
448
  (_this_realtime = this.realtime) === null || _this_realtime === void 0 ? void 0 : _this_realtime.disconnect();
@@ -1 +1 @@
1
- {"version":3,"names":["RealtimeEventType","RehydrationReason","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","RealtimeHandler","RealtimeHandler2","db","realtime","normalizedCache","subscriptionManager","rehydrationManager","options","arguments","_ref","_ref1","_ref2","_ref3","_options_connectionConfig","_options_connectionConfig1","_options_connectionConfig2","_options_connectionConfig3","reconnectAttempts","hasConnected","connectionConfig","reconnectBaseDelay","reconnectMaxDelay","reconnectJitter","exponentialBackoff","setupRealtimeHandlers","setupConnectionManagement","_this","_this_realtime","_this_realtime1","_this_realtime2","_this_realtime3","_this_realtime4","on","payload","onRealtimeEvent","type","DocChanged","onDocChanged","DocDeleted","onDocDeleted","PermEpochBump","onResetCache","onConnected","onDisconnected","attemptConnection","reconnectTimer","clearTimeout","Connected","onBackfillAll","console","debug","scheduleReconnection","delay","calculateReconnectDelay","setTimeout"],"sources":["../../../src/sync/realtime.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["RealtimeEventType","RehydrationReason","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","RealtimeHandler","RealtimeHandler2","db","realtime","normalizedCache","subscriptionManager","rehydrationManager","options","arguments","_ref","_ref1","_ref2","_ref3","_options_connectionConfig","_options_connectionConfig1","_options_connectionConfig2","_options_connectionConfig3","Map","connectionConfig","reconnectBaseDelay","reconnectMaxDelay","reconnectJitter","exponentialBackoff","setupRealtimeHandlers","setupConnectionManagement","_this","_this_realtime","_this_realtime1","_this_realtime2","_this_realtime3","_this_realtime4","_this_realtime5","_this_realtime6","on","payload","onRealtimeEvent","type","DocUpdate","onDocChanged","ListUpdate","DocChanged","DocDeleted","onDocDeleted","PermEpochBump","onResetCache","onConnected","onDisconnected","attemptConnection","_this_options_onStoreChange","_this_options","hasConnected","connected","reconnectAttempts","reconnectTimer","clearTimeout","Connected","onBackfillAll","onStoreChange","call","console","debug","scheduleReconnection","delay","calculateReconnectDelay","setTimeout","Math","min","pow","jitterRange","jitter","random","round","max","watchDoctype","doctype","_this_watchedDoctypes_get","count","watchedDoctypes","get","set","Promise","resolve","subscribeList","catch","err","warn","unwatchDoctype","delete","unsubscribeList","unwatchAll","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","keys","Symbol","iterator","_step","next","done","return"],"sources":["../../../src/sync/realtime.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}