@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,1173 +0,0 @@
1
- "use strict";
2
-
3
- var import_vitest = require("vitest");
4
- var import_mutationEngine = require("./mutationEngine.native.js");
5
- var import_types = require("./types.native.js");
6
- var import_types2 = require("./types.native.js");
7
- (0, import_vitest.describe)("MutationEngine", function () {
8
- var mutationEngine;
9
- var mockDb;
10
- var mockRealtime;
11
- var mockNormalizedCache;
12
- var mockMutationJournal;
13
- var mockSubscriptionManager;
14
- var mockRehydrationManager;
15
- var mockDoc = {
16
- name: "test-doc",
17
- doctype: "TestDoc",
18
- title: "Test Document",
19
- modified: "2024-01-01T10:00:00",
20
- creation: "2024-01-01T09:00:00",
21
- owner: "test-user",
22
- modified_by: "test-user"
23
- };
24
- (0, import_vitest.beforeEach)(function () {
25
- import_vitest.vi.useFakeTimers();
26
- var mockCall = {
27
- post: import_vitest.vi.fn().mockResolvedValue({
28
- results: []
29
- })
30
- };
31
- mockDb = {
32
- getDoc: import_vitest.vi.fn().mockResolvedValue(mockDoc),
33
- createDoc: import_vitest.vi.fn().mockResolvedValue({
34
- ...mockDoc,
35
- name: "real-doc"
36
- }),
37
- updateDoc: import_vitest.vi.fn().mockResolvedValue({
38
- ...mockDoc,
39
- title: "Updated"
40
- }),
41
- deleteDoc: import_vitest.vi.fn().mockResolvedValue(void 0),
42
- call: mockCall
43
- };
44
- mockRealtime = {
45
- isHealthy: import_vitest.vi.fn().mockReturnValue(true)
46
- };
47
- mockNormalizedCache = {
48
- get: import_vitest.vi.fn().mockReturnValue(mockDoc),
49
- upsert: import_vitest.vi.fn(),
50
- remove: import_vitest.vi.fn()
51
- };
52
- mockMutationJournal = {
53
- add: import_vitest.vi.fn(),
54
- confirm: import_vitest.vi.fn(),
55
- fail: import_vitest.vi.fn(),
56
- get: import_vitest.vi.fn().mockReturnValue({
57
- doctype: "TestDoc",
58
- docname: "test-doc",
59
- values: mockDoc,
60
- operation: import_types2.Operation.Update,
61
- version: "2024-01-01T10:00:00",
62
- status: import_types2.Status.Pending,
63
- snapshot: mockDoc
64
- }),
65
- listPending: import_vitest.vi.fn().mockReturnValue([])
66
- };
67
- var mockSubscription = {
68
- id: "sub1",
69
- query: {
70
- doctype: "TestDoc",
71
- fields: ["*"],
72
- filters: {},
73
- limit: 20
74
- },
75
- docIds: ["doc1", "doc2"],
76
- checkpoint: "checkpoint1",
77
- metadata: {}
78
- };
79
- mockSubscriptionManager = {
80
- getAllSubscriptions: import_vitest.vi.fn().mockReturnValue(/* @__PURE__ */new Map([["sub1", mockSubscription]])),
81
- updateSubscriptionMembership: import_vitest.vi.fn().mockReturnValue([]),
82
- removeFromAllSubscriptions: import_vitest.vi.fn().mockReturnValue(["sub1"]),
83
- insertDocumentIntoSubscription: import_vitest.vi.fn()
84
- };
85
- mockRehydrationManager = {
86
- scheduleRehydration: import_vitest.vi.fn(),
87
- registerTempIdMapping: import_vitest.vi.fn()
88
- };
89
- Object.defineProperty(global, "crypto", {
90
- value: {
91
- randomUUID: import_vitest.vi.fn().mockReturnValue("uuid-12345")
92
- },
93
- writable: true
94
- });
95
- Object.defineProperty(global, "navigator", {
96
- value: {
97
- onLine: true
98
- },
99
- writable: true
100
- });
101
- import_vitest.vi.spyOn(console, "warn").mockImplementation(function () {});
102
- import_vitest.vi.spyOn(console, "error").mockImplementation(function () {});
103
- });
104
- (0, import_vitest.afterEach)(function () {
105
- import_vitest.vi.restoreAllMocks();
106
- import_vitest.vi.useRealTimers();
107
- });
108
- (0, import_vitest.describe)("constructor", function () {
109
- (0, import_vitest.it)("should initialize with default options", function () {
110
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, mockRealtime, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager);
111
- (0, import_vitest.expect)(mutationEngine).toBeDefined();
112
- });
113
- (0, import_vitest.it)("should initialize with custom options", function () {
114
- var options = {
115
- batchSize: 20,
116
- batchDelay: 200,
117
- versionField: "timestamp"
118
- };
119
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, mockRealtime, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager, options);
120
- (0, import_vitest.expect)(mutationEngine).toBeDefined();
121
- });
122
- (0, import_vitest.it)("should handle missing realtime module", function () {
123
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, void 0, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager);
124
- (0, import_vitest.expect)(mutationEngine).toBeDefined();
125
- });
126
- });
127
- (0, import_vitest.describe)("mutate", function () {
128
- (0, import_vitest.beforeEach)(function () {
129
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, mockRealtime, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager, {});
130
- });
131
- (0, import_vitest.describe)("create mutations", function () {
132
- (0, import_vitest.it)("should handle create mutations successfully", async function () {
133
- var mutation = {
134
- mutationId: "mut1",
135
- operation: import_types2.Operation.Create,
136
- doc: {
137
- doctype: "TestDoc",
138
- name: "temp-doc",
139
- title: "New Document"
140
- },
141
- version: void 0,
142
- affected: []
143
- };
144
- await mutationEngine.mutate(mutation);
145
- (0, import_vitest.expect)(mockNormalizedCache.upsert).toHaveBeenCalledWith(import_vitest.expect.objectContaining({
146
- doctype: "TestDoc",
147
- name: "temp-doc",
148
- title: "New Document"
149
- }));
150
- (0, import_vitest.expect)(mockDb.createDoc).toHaveBeenCalledWith(import_vitest.expect.objectContaining({
151
- doctype: "TestDoc"
152
- }));
153
- (0, import_vitest.expect)(mockMutationJournal.confirm).toHaveBeenCalledWith("mut1");
154
- });
155
- (0, import_vitest.it)("should handle create without provided name", async function () {
156
- var mutation = {
157
- mutationId: "mut2",
158
- operation: import_types2.Operation.Create,
159
- doc: {
160
- doctype: "TestDoc",
161
- title: "New Document"
162
- },
163
- version: void 0,
164
- affected: []
165
- };
166
- await mutationEngine.mutate(mutation);
167
- (0, import_vitest.expect)(mockNormalizedCache.upsert).toHaveBeenCalledWith(import_vitest.expect.objectContaining({
168
- doctype: "TestDoc",
169
- name: import_vitest.expect.stringContaining("tmp_"),
170
- title: "New Document"
171
- }));
172
- });
173
- (0, import_vitest.it)("should handle temporary to real ID mapping", async function () {
174
- var mutation = {
175
- mutationId: "mut3",
176
- operation: import_types2.Operation.Create,
177
- doc: {
178
- doctype: "TestDoc",
179
- name: "temp-doc",
180
- title: "New Document"
181
- },
182
- version: void 0,
183
- affected: []
184
- };
185
- mockDb.createDoc.mockResolvedValue({
186
- ...mockDoc,
187
- name: "real-doc-123"
188
- });
189
- await mutationEngine.mutate(mutation);
190
- (0, import_vitest.expect)(mockRehydrationManager.registerTempIdMapping).toHaveBeenCalledWith("temp-doc", "real-doc-123");
191
- (0, import_vitest.expect)(mockNormalizedCache.remove).toHaveBeenCalledWith({
192
- doctype: "TestDoc",
193
- name: "temp-doc"
194
- });
195
- });
196
- (0, import_vitest.it)("should schedule rehydration for affected subscriptions", async function () {
197
- var mutation = {
198
- mutationId: "mut4",
199
- operation: import_types2.Operation.Create,
200
- doc: {
201
- doctype: "TestDoc",
202
- name: "temp-doc",
203
- title: "New Document"
204
- },
205
- version: void 0,
206
- affected: []
207
- };
208
- await mutationEngine.mutate(mutation);
209
- (0, import_vitest.expect)(mockRehydrationManager.scheduleRehydration).toHaveBeenCalledWith(import_vitest.expect.any(Object), import_types.RehydrationReason.Create);
210
- });
211
- });
212
- (0, import_vitest.describe)("update mutations", function () {
213
- (0, import_vitest.it)("should handle update mutations successfully", async function () {
214
- var mutation = {
215
- mutationId: "mut5",
216
- operation: import_types2.Operation.Update,
217
- doc: {
218
- doctype: "TestDoc",
219
- name: "test-doc",
220
- title: "Updated Title"
221
- },
222
- version: "2024-01-01T10:00:00",
223
- affected: []
224
- };
225
- await mutationEngine.mutate(mutation);
226
- (0, import_vitest.expect)(mockNormalizedCache.upsert).toHaveBeenCalledWith(import_vitest.expect.objectContaining({
227
- doctype: "TestDoc",
228
- name: "test-doc",
229
- title: "Updated Title"
230
- }));
231
- (0, import_vitest.expect)(mockDb.updateDoc).toHaveBeenCalledWith(import_vitest.expect.objectContaining({
232
- doctype: "TestDoc",
233
- name: "test-doc",
234
- title: "Updated Title"
235
- }));
236
- (0, import_vitest.expect)(mockMutationJournal.confirm).toHaveBeenCalledWith("mut5");
237
- });
238
- (0, import_vitest.it)("should throw error for update without docname", async function () {
239
- var mutation = {
240
- mutationId: "mut6",
241
- operation: import_types2.Operation.Update,
242
- doc: {
243
- doctype: "TestDoc",
244
- title: "Updated Title"
245
- },
246
- version: void 0,
247
- affected: []
248
- };
249
- await (0, import_vitest.expect)(mutationEngine.mutate(mutation)).rejects.toThrow("docname is required for update/delete operations");
250
- });
251
- (0, import_vitest.it)("should determine version from cached document", async function () {
252
- var mutation = {
253
- mutationId: "mut7",
254
- operation: import_types2.Operation.Update,
255
- doc: {
256
- doctype: "TestDoc",
257
- name: "test-doc",
258
- title: "Updated Title"
259
- },
260
- version: void 0,
261
- affected: []
262
- };
263
- await mutationEngine.mutate(mutation);
264
- (0, import_vitest.expect)(mockDb.updateDoc).toHaveBeenCalledWith(import_vitest.expect.objectContaining({
265
- doctype: "TestDoc",
266
- name: "test-doc"
267
- }));
268
- });
269
- (0, import_vitest.it)("should fetch document for version when not cached", async function () {
270
- mockNormalizedCache.get.mockReturnValue(void 0);
271
- mockDb.getDoc.mockResolvedValue({
272
- doctype: "TestDoc",
273
- name: "test-doc",
274
- title: "Original Title",
275
- modified: "2024-01-01T10:00:00"
276
- });
277
- var mutation = {
278
- mutationId: "mut8",
279
- operation: import_types2.Operation.Update,
280
- doc: {
281
- doctype: "TestDoc",
282
- name: "test-doc",
283
- title: "Updated Title"
284
- },
285
- version: void 0,
286
- affected: []
287
- };
288
- await mutationEngine.mutate(mutation);
289
- (0, import_vitest.expect)(mockDb.getDoc).toHaveBeenCalledWith("TestDoc", "test-doc");
290
- (0, import_vitest.expect)(mockNormalizedCache.upsert).toHaveBeenCalled();
291
- });
292
- (0, import_vitest.it)("should handle preflight fetch failures gracefully", async function () {
293
- mockNormalizedCache.get.mockReturnValue(void 0);
294
- mockDb.getDoc.mockRejectedValue(new Error("Network error"));
295
- var mutation = {
296
- mutationId: "mut9",
297
- operation: import_types2.Operation.Update,
298
- doc: {
299
- doctype: "TestDoc",
300
- name: "test-doc",
301
- title: "Updated Title"
302
- },
303
- version: void 0,
304
- affected: []
305
- };
306
- await mutationEngine.mutate(mutation);
307
- (0, import_vitest.expect)(mockDb.updateDoc).toHaveBeenCalledWith(import_vitest.expect.objectContaining({
308
- doctype: "TestDoc",
309
- name: "test-doc"
310
- }));
311
- });
312
- });
313
- (0, import_vitest.describe)("delete mutations", function () {
314
- (0, import_vitest.it)("should handle delete mutations successfully", async function () {
315
- var mutation = {
316
- mutationId: "mut10",
317
- operation: import_types2.Operation.Delete,
318
- doc: {
319
- doctype: "TestDoc",
320
- name: "test-doc"
321
- },
322
- version: "2024-01-01T10:00:00",
323
- affected: []
324
- };
325
- await mutationEngine.mutate(mutation);
326
- (0, import_vitest.expect)(mockNormalizedCache.remove).toHaveBeenCalledWith({
327
- doctype: "TestDoc",
328
- name: "test-doc"
329
- });
330
- (0, import_vitest.expect)(mockSubscriptionManager.removeFromAllSubscriptions).toHaveBeenCalledWith("TestDoc", "test-doc");
331
- (0, import_vitest.expect)(mockDb.deleteDoc).toHaveBeenCalledWith(import_vitest.expect.objectContaining({
332
- doctype: "TestDoc",
333
- name: "test-doc"
334
- }));
335
- (0, import_vitest.expect)(mockMutationJournal.confirm).toHaveBeenCalledWith("mut10");
336
- });
337
- (0, import_vitest.it)("should schedule rehydration for affected subscriptions", async function () {
338
- var mockSubscription = {
339
- id: "sub1",
340
- query: {
341
- doctype: "TestDoc",
342
- fields: ["*"],
343
- filters: {},
344
- limit: 20
345
- },
346
- docIds: ["test-doc", "doc2"],
347
- checkpoint: "checkpoint1",
348
- metadata: {}
349
- };
350
- mockSubscriptionManager.getAllSubscriptions.mockReturnValue(/* @__PURE__ */new Map([["sub1", mockSubscription]]));
351
- var mutation = {
352
- mutationId: "mut11",
353
- operation: import_types2.Operation.Delete,
354
- doc: {
355
- doctype: "TestDoc",
356
- name: "test-doc"
357
- },
358
- version: void 0,
359
- affected: []
360
- };
361
- await mutationEngine.mutate(mutation);
362
- (0, import_vitest.expect)(mockRehydrationManager.scheduleRehydration).toHaveBeenCalledWith(import_vitest.expect.any(Object), import_types.RehydrationReason.Delete);
363
- });
364
- (0, import_vitest.it)("should throw error for delete without docname", async function () {
365
- var mutation = {
366
- mutationId: "mut12",
367
- operation: import_types2.Operation.Delete,
368
- doc: {
369
- doctype: "TestDoc"
370
- },
371
- version: void 0,
372
- affected: []
373
- };
374
- await (0, import_vitest.expect)(mutationEngine.mutate(mutation)).rejects.toThrow("docname is required for update/delete operations");
375
- });
376
- });
377
- (0, import_vitest.describe)("callback integration", function () {
378
- (0, import_vitest.it)("should call mutation lifecycle callbacks", async function () {
379
- var callbacks = {
380
- onMutationStart: import_vitest.vi.fn(),
381
- onMutationSuccess: import_vitest.vi.fn(),
382
- onOptimisticApply: import_vitest.vi.fn()
383
- };
384
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, mockRealtime, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager, callbacks);
385
- var mutation = {
386
- mutationId: "mut13",
387
- operation: import_types2.Operation.Update,
388
- doc: {
389
- doctype: "TestDoc",
390
- name: "test-doc",
391
- title: "Updated"
392
- },
393
- version: void 0,
394
- affected: []
395
- };
396
- await mutationEngine.mutate(mutation);
397
- (0, import_vitest.expect)(callbacks.onMutationStart).toHaveBeenCalledWith(mutation);
398
- (0, import_vitest.expect)(callbacks.onMutationSuccess).toHaveBeenCalledWith(mutation);
399
- (0, import_vitest.expect)(callbacks.onOptimisticApply).toHaveBeenCalledWith({
400
- doctype: "TestDoc",
401
- name: "test-doc",
402
- operation: import_types2.Operation.Update
403
- });
404
- });
405
- });
406
- (0, import_vitest.describe)("realtime integration", function () {
407
- (0, import_vitest.it)("should refetch documents when realtime is unhealthy", async function () {
408
- mockRealtime.isHealthy.mockReturnValue(false);
409
- var mutation = {
410
- mutationId: "mut14",
411
- operation: import_types2.Operation.Update,
412
- doc: {
413
- doctype: "TestDoc",
414
- name: "test-doc",
415
- title: "Updated"
416
- },
417
- version: void 0,
418
- affected: [{
419
- doctype: "RelatedDoc",
420
- name: "related-doc"
421
- }]
422
- };
423
- await mutationEngine.mutate(mutation);
424
- (0, import_vitest.expect)(mockDb.getDoc).toHaveBeenCalledWith("TestDoc", "test-doc");
425
- (0, import_vitest.expect)(mockDb.getDoc).toHaveBeenCalledWith("RelatedDoc", "related-doc");
426
- });
427
- (0, import_vitest.it)("should not refetch when realtime is healthy", async function () {
428
- mockRealtime.isHealthy.mockReturnValue(true);
429
- mockDb.getDoc.mockClear();
430
- var mutation = {
431
- mutationId: "mut15",
432
- operation: import_types2.Operation.Update,
433
- doc: {
434
- doctype: "TestDoc",
435
- name: "test-doc",
436
- title: "Updated"
437
- },
438
- version: "2024-01-01T10:00:00",
439
- affected: []
440
- };
441
- await mutationEngine.mutate(mutation);
442
- (0, import_vitest.expect)(mockDb.getDoc).not.toHaveBeenCalled();
443
- });
444
- });
445
- });
446
- (0, import_vitest.describe)("error handling", function () {
447
- (0, import_vitest.beforeEach)(function () {
448
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, mockRealtime, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager, {
449
- onMutationError: import_vitest.vi.fn(),
450
- onConflict: import_vitest.vi.fn()
451
- });
452
- });
453
- (0, import_vitest.it)("should handle server errors", async function () {
454
- var error = new Error("Server error");
455
- mockDb.createDoc.mockRejectedValue(error);
456
- var mutation = {
457
- mutationId: "mut16",
458
- operation: import_types2.Operation.Create,
459
- doc: {
460
- doctype: "TestDoc",
461
- name: "temp-doc",
462
- title: "New Document"
463
- },
464
- version: void 0,
465
- affected: []
466
- };
467
- await (0, import_vitest.expect)(mutationEngine.mutate(mutation)).rejects.toThrow("Server error");
468
- (0, import_vitest.expect)(mockMutationJournal.fail).toHaveBeenCalledWith("mut16");
469
- });
470
- (0, import_vitest.it)("should handle conflict errors (409)", async function () {
471
- var error = {
472
- status: 409
473
- };
474
- mockDb.updateDoc.mockRejectedValue(error);
475
- var mutation = {
476
- mutationId: "mut17",
477
- operation: import_types2.Operation.Update,
478
- doc: {
479
- doctype: "TestDoc",
480
- name: "test-doc",
481
- title: "Updated"
482
- },
483
- version: "2024-01-01T09:00:00",
484
- affected: []
485
- };
486
- await (0, import_vitest.expect)(mutationEngine.mutate(mutation)).rejects.toEqual(error);
487
- (0, import_vitest.expect)(mockDb.getDoc).toHaveBeenCalledWith("TestDoc", "test-doc");
488
- });
489
- (0, import_vitest.it)("should handle snapshot rollback on error", async function () {
490
- var error = new Error("Update failed");
491
- mockDb.updateDoc.mockRejectedValue(error);
492
- var mutation = {
493
- mutationId: "mut18",
494
- operation: import_types2.Operation.Update,
495
- doc: {
496
- doctype: "TestDoc",
497
- name: "test-doc",
498
- title: "Updated"
499
- },
500
- version: void 0,
501
- affected: []
502
- };
503
- await (0, import_vitest.expect)(mutationEngine.mutate(mutation)).rejects.toThrow("Update failed");
504
- (0, import_vitest.expect)(mockNormalizedCache.upsert).toHaveBeenCalledWith(mockDoc);
505
- });
506
- (0, import_vitest.it)("should not rollback when offline", async function () {
507
- Object.defineProperty(global, "navigator", {
508
- value: {
509
- onLine: false
510
- },
511
- writable: true
512
- });
513
- var error = new Error("Network error");
514
- mockDb.updateDoc.mockRejectedValue(error);
515
- var mutation = {
516
- mutationId: "mut19",
517
- operation: import_types2.Operation.Update,
518
- doc: {
519
- doctype: "TestDoc",
520
- name: "test-doc",
521
- title: "Updated"
522
- },
523
- version: void 0,
524
- affected: []
525
- };
526
- await (0, import_vitest.expect)(mutationEngine.mutate(mutation)).rejects.toThrow("Network error");
527
- var upsertCalls = mockNormalizedCache.upsert.mock.calls;
528
- var rollbackCall = upsertCalls.find(function (call) {
529
- return call[0] === mockDoc && upsertCalls.indexOf(call) > 0;
530
- });
531
- (0, import_vitest.expect)(rollbackCall).toBeUndefined();
532
- });
533
- (0, import_vitest.it)("should handle failed create mutations", async function () {
534
- var error = new Error("Create failed");
535
- mockDb.createDoc.mockRejectedValue(error);
536
- var subscription = {
537
- id: "sub1",
538
- query: {
539
- doctype: "TestDoc"
540
- },
541
- docIds: ["temp-doc", "other-doc"]
542
- };
543
- mockSubscriptionManager.getAllSubscriptions.mockReturnValue(/* @__PURE__ */new Map([["sub1", subscription]]));
544
- var mutation = {
545
- mutationId: "mut20",
546
- operation: import_types2.Operation.Create,
547
- doc: {
548
- doctype: "TestDoc",
549
- name: "temp-doc",
550
- title: "New Document"
551
- },
552
- version: void 0,
553
- affected: []
554
- };
555
- await (0, import_vitest.expect)(mutationEngine.mutate(mutation)).rejects.toThrow("Create failed");
556
- (0, import_vitest.expect)(subscription.docIds).toEqual(["other-doc"]);
557
- });
558
- });
559
- (0, import_vitest.describe)("replayPending", function () {
560
- (0, import_vitest.beforeEach)(function () {
561
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, mockRealtime, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager, {
562
- onReplayStart: import_vitest.vi.fn(),
563
- onReplayComplete: import_vitest.vi.fn(),
564
- onConflict: import_vitest.vi.fn(),
565
- onMutationError: import_vitest.vi.fn()
566
- });
567
- });
568
- (0, import_vitest.it)("should replay pending create mutations", async function () {
569
- var pendingEntry = {
570
- doctype: "TestDoc",
571
- docname: "test-doc",
572
- values: {
573
- doctype: "TestDoc",
574
- name: "test-doc",
575
- title: "Test"
576
- },
577
- operation: import_types2.Operation.Create,
578
- version: void 0,
579
- status: import_types2.Status.Pending
580
- };
581
- mockMutationJournal.listPending.mockReturnValue([{
582
- id: "mut21",
583
- entry: pendingEntry
584
- }]);
585
- await mutationEngine.replayPending();
586
- (0, import_vitest.expect)(mockDb.createDoc).toHaveBeenCalledWith(import_vitest.expect.objectContaining({
587
- doctype: "TestDoc",
588
- client_mutation_id: "mut21"
589
- }));
590
- (0, import_vitest.expect)(mockMutationJournal.confirm).toHaveBeenCalledWith("mut21");
591
- });
592
- (0, import_vitest.it)("should replay pending update mutations", async function () {
593
- var pendingEntry = {
594
- doctype: "TestDoc",
595
- docname: "test-doc",
596
- values: {
597
- doctype: "TestDoc",
598
- name: "test-doc",
599
- title: "Updated"
600
- },
601
- operation: import_types2.Operation.Update,
602
- version: "2024-01-01T10:00:00",
603
- status: import_types2.Status.Pending
604
- };
605
- mockMutationJournal.listPending.mockReturnValue([{
606
- id: "mut22",
607
- entry: pendingEntry
608
- }]);
609
- await mutationEngine.replayPending();
610
- (0, import_vitest.expect)(mockDb.updateDoc).toHaveBeenCalledWith(import_vitest.expect.objectContaining({
611
- doctype: "TestDoc",
612
- name: "test-doc",
613
- client_mutation_id: "mut22",
614
- base_modified: "2024-01-01T10:00:00"
615
- }));
616
- (0, import_vitest.expect)(mockMutationJournal.confirm).toHaveBeenCalledWith("mut22");
617
- });
618
- (0, import_vitest.it)("should replay pending delete mutations", async function () {
619
- var pendingEntry = {
620
- doctype: "TestDoc",
621
- docname: "test-doc",
622
- values: void 0,
623
- operation: import_types2.Operation.Delete,
624
- version: void 0,
625
- status: import_types2.Status.Pending
626
- };
627
- mockMutationJournal.listPending.mockReturnValue([{
628
- id: "mut23",
629
- entry: pendingEntry
630
- }]);
631
- await mutationEngine.replayPending();
632
- (0, import_vitest.expect)(mockDb.deleteDoc).toHaveBeenCalledWith(import_vitest.expect.objectContaining({
633
- doctype: "TestDoc",
634
- name: "test-doc",
635
- client_mutation_id: "mut23"
636
- }));
637
- (0, import_vitest.expect)(mockMutationJournal.confirm).toHaveBeenCalledWith("mut23");
638
- });
639
- (0, import_vitest.it)("should handle replay conflicts", async function () {
640
- var pendingEntry = {
641
- doctype: "TestDoc",
642
- docname: "test-doc",
643
- values: {
644
- doctype: "TestDoc",
645
- name: "test-doc",
646
- title: "Updated"
647
- },
648
- operation: import_types2.Operation.Update,
649
- version: "2024-01-01T10:00:00",
650
- status: import_types2.Status.Pending
651
- };
652
- mockMutationJournal.listPending.mockReturnValue([{
653
- id: "mut24",
654
- entry: pendingEntry
655
- }]);
656
- mockDb.updateDoc.mockRejectedValue({
657
- status: 409
658
- });
659
- await mutationEngine.replayPending();
660
- var options = mutationEngine;
661
- (0, import_vitest.expect)(options.options.onConflict).toHaveBeenCalledWith({
662
- doctype: "TestDoc",
663
- name: "test-doc"
664
- });
665
- });
666
- (0, import_vitest.it)("should handle replay auth errors", async function () {
667
- var pendingEntry = {
668
- doctype: "TestDoc",
669
- docname: "test-doc",
670
- values: {
671
- doctype: "TestDoc",
672
- name: "test-doc",
673
- title: "Updated"
674
- },
675
- operation: import_types2.Operation.Update,
676
- version: void 0,
677
- status: import_types2.Status.Pending
678
- };
679
- mockMutationJournal.listPending.mockReturnValue([{
680
- id: "mut25",
681
- entry: pendingEntry
682
- }]);
683
- mockDb.updateDoc.mockRejectedValue({
684
- status: 401
685
- });
686
- await mutationEngine.replayPending();
687
- (0, import_vitest.expect)(mockMutationJournal.confirm).not.toHaveBeenCalledWith("mut25");
688
- (0, import_vitest.expect)(mockMutationJournal.fail).not.toHaveBeenCalledWith("mut25");
689
- });
690
- (0, import_vitest.it)("should handle permanent replay errors", async function () {
691
- var pendingEntry = {
692
- doctype: "TestDoc",
693
- docname: "test-doc",
694
- values: {
695
- doctype: "TestDoc",
696
- name: "test-doc",
697
- title: "Updated"
698
- },
699
- operation: import_types2.Operation.Update,
700
- version: void 0,
701
- status: import_types2.Status.Pending
702
- };
703
- mockMutationJournal.listPending.mockReturnValue([{
704
- id: "mut26",
705
- entry: pendingEntry
706
- }]);
707
- mockDb.updateDoc.mockRejectedValue({
708
- status: 400
709
- });
710
- await mutationEngine.replayPending();
711
- (0, import_vitest.expect)(mockMutationJournal.fail).toHaveBeenCalledWith("mut26");
712
- });
713
- (0, import_vitest.it)("should call replay callbacks", async function () {
714
- mockMutationJournal.listPending.mockReturnValue([]);
715
- await mutationEngine.replayPending();
716
- var options = mutationEngine;
717
- (0, import_vitest.expect)(options.options.onReplayStart).toHaveBeenCalled();
718
- (0, import_vitest.expect)(options.options.onReplayComplete).toHaveBeenCalledWith({
719
- anyFailed: false
720
- });
721
- });
722
- });
723
- (0, import_vitest.describe)("temporary ID management", function () {
724
- (0, import_vitest.beforeEach)(function () {
725
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, mockRealtime, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager, {});
726
- });
727
- (0, import_vitest.it)("should return temporary ID mappings", function () {
728
- var tempMap = mutationEngine.getTemporaryIdToRealNameMap();
729
- (0, import_vitest.expect)(tempMap).toBeInstanceOf(Map);
730
- });
731
- (0, import_vitest.it)("should clear temporary mappings", function () {
732
- var tempMap = mutationEngine.getTemporaryIdToRealNameMap();
733
- tempMap.set("temp1", "real1");
734
- mutationEngine.clearTemporaryMappings();
735
- (0, import_vitest.expect)(tempMap.size).toBe(0);
736
- });
737
- });
738
- (0, import_vitest.describe)("cleanup and disposal", function () {
739
- (0, import_vitest.beforeEach)(function () {
740
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, mockRealtime, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager, {});
741
- });
742
- (0, import_vitest.it)("should dispose of resources", function () {
743
- var tempMap = mutationEngine.getTemporaryIdToRealNameMap();
744
- tempMap.set("temp1", "real1");
745
- mutationEngine.dispose();
746
- (0, import_vitest.expect)(tempMap.size).toBe(0);
747
- });
748
- });
749
- (0, import_vitest.describe)("edge cases", function () {
750
- (0, import_vitest.beforeEach)(function () {
751
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, mockRealtime, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager, {});
752
- });
753
- (0, import_vitest.it)("should handle missing crypto.randomUUID", async function () {
754
- global.crypto = void 0;
755
- var mutation = {
756
- mutationId: "no-crypto",
757
- operation: import_types2.Operation.Create,
758
- doc: {
759
- doctype: "TestDoc",
760
- title: "New Document"
761
- },
762
- version: void 0,
763
- affected: []
764
- };
765
- mockSubscriptionManager.getAllSubscriptions = import_vitest.vi.fn().mockReturnValue(/* @__PURE__ */new Map());
766
- await (0, import_vitest.expect)(mutationEngine.mutate(mutation)).resolves.not.toThrow();
767
- });
768
- (0, import_vitest.it)("should handle undefined navigator", async function () {
769
- global.navigator = void 0;
770
- var error = new Error("Update failed");
771
- mockDb.updateDoc.mockRejectedValue(error);
772
- var mutation = {
773
- mutationId: "no-navigator",
774
- operation: import_types2.Operation.Update,
775
- doc: {
776
- doctype: "TestDoc",
777
- name: "test-doc",
778
- title: "Updated"
779
- },
780
- version: void 0,
781
- affected: []
782
- };
783
- await (0, import_vitest.expect)(mutationEngine.mutate(mutation)).rejects.toThrow("Update failed");
784
- (0, import_vitest.expect)(mockNormalizedCache.upsert).toHaveBeenCalledTimes(2);
785
- (0, import_vitest.expect)(mockNormalizedCache.upsert).toHaveBeenLastCalledWith(mockDoc);
786
- });
787
- (0, import_vitest.it)("should handle custom version fields", async function () {
788
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, mockRealtime, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager, {
789
- versionFields: {
790
- TestDoc: "timestamp"
791
- }
792
- });
793
- var docWithTimestamp = {
794
- ...mockDoc,
795
- timestamp: "2024-01-01T12:00:00"
796
- };
797
- mockNormalizedCache.get.mockReturnValue(docWithTimestamp);
798
- var mutation = {
799
- mutationId: "custom-version",
800
- operation: import_types2.Operation.Update,
801
- doc: {
802
- doctype: "TestDoc",
803
- name: "test-doc",
804
- title: "Updated"
805
- },
806
- version: void 0,
807
- affected: []
808
- };
809
- await mutationEngine.mutate(mutation);
810
- (0, import_vitest.expect)(mockDb.updateDoc).toHaveBeenCalledWith(import_vitest.expect.objectContaining({
811
- doctype: "TestDoc",
812
- name: "test-doc"
813
- }));
814
- });
815
- });
816
- (0, import_vitest.describe)("buildMergeConfig", function () {
817
- (0, import_vitest.it)("should apply field merge config via handleConflict auto-merge", async function () {
818
- var onConflict = import_vitest.vi.fn();
819
- var baseDoc = {
820
- ...mockDoc,
821
- priority: 5
822
- };
823
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, mockRealtime, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager, {
824
- fieldMergeConfig: {
825
- TestDoc: {
826
- priority: "max"
827
- }
828
- },
829
- onConflict,
830
- onMutationError: import_vitest.vi.fn()
831
- });
832
- mockNormalizedCache.get.mockReturnValue(baseDoc);
833
- mockMutationJournal.get.mockReturnValue({
834
- doctype: "TestDoc",
835
- docname: "test-doc",
836
- values: {
837
- ...baseDoc,
838
- priority: 8
839
- },
840
- operation: import_types2.Operation.Update,
841
- version: "2024-01-01T10:00:00",
842
- status: import_types2.Status.Pending,
843
- snapshot: baseDoc
844
- });
845
- mockDb.updateDoc.mockRejectedValueOnce({
846
- status: 409
847
- }).mockResolvedValueOnce({
848
- ...baseDoc,
849
- priority: 10
850
- });
851
- var serverDoc = {
852
- ...baseDoc,
853
- priority: 10,
854
- modified: "2024-01-01T11:00:00"
855
- };
856
- mockDb.getDoc.mockResolvedValue(serverDoc);
857
- var mutation = {
858
- mutationId: "merge-test",
859
- operation: import_types2.Operation.Update,
860
- doc: {
861
- doctype: "TestDoc",
862
- name: "test-doc",
863
- priority: 8
864
- },
865
- version: "2024-01-01T10:00:00",
866
- affected: []
867
- };
868
- await (0, import_vitest.expect)(mutationEngine.mutate(mutation)).rejects.toEqual({
869
- status: 409
870
- });
871
- (0, import_vitest.expect)(mockDb.updateDoc).toHaveBeenCalledTimes(2);
872
- var retryCall = mockDb.updateDoc.mock.calls[1][0];
873
- (0, import_vitest.expect)(retryCall.priority).toBe(10);
874
- (0, import_vitest.expect)(mockMutationJournal.confirm).toHaveBeenCalledWith("merge-test");
875
- (0, import_vitest.expect)(onConflict).not.toHaveBeenCalled();
876
- });
877
- });
878
- (0, import_vitest.describe)("handleConflict auto-merge", function () {
879
- (0, import_vitest.it)("should auto-merge disjoint updates", async function () {
880
- var onConflict = import_vitest.vi.fn();
881
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, mockRealtime, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager, {
882
- onConflict,
883
- onMutationError: import_vitest.vi.fn()
884
- });
885
- var baseDoc = {
886
- ...mockDoc,
887
- title: "Original Title",
888
- status: "Draft"
889
- };
890
- mockNormalizedCache.get.mockReturnValue(baseDoc);
891
- mockMutationJournal.get.mockReturnValue({
892
- doctype: "TestDoc",
893
- docname: "test-doc",
894
- values: {
895
- ...baseDoc,
896
- title: "Client Title"
897
- },
898
- operation: import_types2.Operation.Update,
899
- version: "2024-01-01T10:00:00",
900
- status: import_types2.Status.Pending,
901
- snapshot: baseDoc
902
- });
903
- mockDb.updateDoc.mockRejectedValueOnce({
904
- status: 409
905
- }).mockResolvedValueOnce({
906
- ...mockDoc
907
- });
908
- var serverDoc = {
909
- ...baseDoc,
910
- status: "Approved",
911
- modified: "2024-01-01T11:00:00"
912
- };
913
- mockDb.getDoc.mockResolvedValue(serverDoc);
914
- var mutation = {
915
- mutationId: "disjoint-test",
916
- operation: import_types2.Operation.Update,
917
- doc: {
918
- doctype: "TestDoc",
919
- name: "test-doc",
920
- title: "Client Title"
921
- },
922
- version: "2024-01-01T10:00:00",
923
- affected: []
924
- };
925
- await (0, import_vitest.expect)(mutationEngine.mutate(mutation)).rejects.toEqual({
926
- status: 409
927
- });
928
- (0, import_vitest.expect)(mockDb.updateDoc).toHaveBeenCalledTimes(2);
929
- var retryCall = mockDb.updateDoc.mock.calls[1][0];
930
- (0, import_vitest.expect)(retryCall.title).toBe("Client Title");
931
- (0, import_vitest.expect)(retryCall.status).toBe("Approved");
932
- (0, import_vitest.expect)(mockMutationJournal.confirm).toHaveBeenCalledWith("disjoint-test");
933
- (0, import_vitest.expect)(onConflict).not.toHaveBeenCalled();
934
- });
935
- (0, import_vitest.it)("should delegate overlapping conflicts to onConflict", async function () {
936
- var onConflict = import_vitest.vi.fn();
937
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, mockRealtime, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager, {
938
- onConflict,
939
- onMutationError: import_vitest.vi.fn()
940
- });
941
- var baseDoc = {
942
- ...mockDoc,
943
- title: "Original Title"
944
- };
945
- mockNormalizedCache.get.mockReturnValue(baseDoc);
946
- mockMutationJournal.get.mockReturnValue({
947
- doctype: "TestDoc",
948
- docname: "test-doc",
949
- values: {
950
- ...baseDoc,
951
- title: "Client Title"
952
- },
953
- operation: import_types2.Operation.Update,
954
- version: "2024-01-01T10:00:00",
955
- status: import_types2.Status.Pending,
956
- snapshot: baseDoc
957
- });
958
- mockDb.updateDoc.mockRejectedValue({
959
- status: 409
960
- });
961
- var serverDoc = {
962
- ...baseDoc,
963
- title: "Server Title",
964
- modified: "2024-01-01T11:00:00"
965
- };
966
- mockDb.getDoc.mockResolvedValue(serverDoc);
967
- var mutation = {
968
- mutationId: "overlap-test",
969
- operation: import_types2.Operation.Update,
970
- doc: {
971
- doctype: "TestDoc",
972
- name: "test-doc",
973
- title: "Client Title"
974
- },
975
- version: "2024-01-01T10:00:00",
976
- affected: []
977
- };
978
- await (0, import_vitest.expect)(mutationEngine.mutate(mutation)).rejects.toEqual({
979
- status: 409
980
- });
981
- (0, import_vitest.expect)(onConflict).toHaveBeenCalledWith({
982
- doctype: "TestDoc",
983
- name: "test-doc"
984
- });
985
- (0, import_vitest.expect)(mockDb.updateDoc).toHaveBeenCalledTimes(1);
986
- });
987
- });
988
- (0, import_vitest.describe)("onRetry callback", function () {
989
- (0, import_vitest.it)("should call onRetry for each pending mutation during replay", async function () {
990
- var onRetry = import_vitest.vi.fn();
991
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, mockRealtime, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager, {
992
- onRetry,
993
- onReplayStart: import_vitest.vi.fn(),
994
- onReplayComplete: import_vitest.vi.fn()
995
- });
996
- var pendingEntries = [{
997
- id: "retry-1",
998
- entry: {
999
- doctype: "TestDoc",
1000
- docname: "doc-1",
1001
- values: {
1002
- doctype: "TestDoc",
1003
- name: "doc-1",
1004
- title: "Doc 1"
1005
- },
1006
- operation: import_types2.Operation.Update,
1007
- version: "2024-01-01T10:00:00",
1008
- status: import_types2.Status.Pending
1009
- }
1010
- }, {
1011
- id: "retry-2",
1012
- entry: {
1013
- doctype: "TestDoc",
1014
- docname: "doc-2",
1015
- values: {
1016
- doctype: "TestDoc",
1017
- name: "doc-2",
1018
- title: "Doc 2"
1019
- },
1020
- operation: import_types2.Operation.Create,
1021
- version: void 0,
1022
- status: import_types2.Status.Pending
1023
- }
1024
- }];
1025
- mockMutationJournal.listPending.mockReturnValue(pendingEntries);
1026
- var replayPromise = mutationEngine.replayPending();
1027
- await import_vitest.vi.advanceTimersByTimeAsync(1e3);
1028
- await replayPromise;
1029
- (0, import_vitest.expect)(onRetry).toHaveBeenCalledTimes(2);
1030
- (0, import_vitest.expect)(onRetry).toHaveBeenCalledWith({
1031
- id: "retry-1",
1032
- operation: import_types2.Operation.Update
1033
- });
1034
- (0, import_vitest.expect)(onRetry).toHaveBeenCalledWith({
1035
- id: "retry-2",
1036
- operation: import_types2.Operation.Create
1037
- });
1038
- });
1039
- });
1040
- (0, import_vitest.describe)("batch mutations", function () {
1041
- (0, import_vitest.it)("should batch mutations and flush after batchDelay", async function () {
1042
- mockDb.batchMutations = import_vitest.vi.fn().mockResolvedValue([{
1043
- success: true,
1044
- data: {
1045
- ...mockDoc,
1046
- name: "test-doc-1",
1047
- title: "Title 1"
1048
- }
1049
- }, {
1050
- success: true,
1051
- data: {
1052
- ...mockDoc,
1053
- name: "test-doc-2",
1054
- title: "Title 2"
1055
- }
1056
- }, {
1057
- success: true,
1058
- data: {
1059
- ...mockDoc,
1060
- name: "test-doc-3",
1061
- title: "Title 3"
1062
- }
1063
- }]);
1064
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, mockRealtime, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager, {
1065
- enableBatching: true,
1066
- batchDelay: 50,
1067
- batchMaxSize: 10
1068
- });
1069
- mockNormalizedCache.get.mockImplementation(function (ref) {
1070
- return {
1071
- ...mockDoc,
1072
- name: ref.name,
1073
- modified: "2024-01-01T10:00:00"
1074
- };
1075
- });
1076
- var mutations = [1, 2, 3].map(function (i) {
1077
- return {
1078
- mutationId: `batch-${i}`,
1079
- operation: import_types2.Operation.Update,
1080
- doc: {
1081
- doctype: "TestDoc",
1082
- name: `test-doc-${i}`,
1083
- title: `Title ${i}`
1084
- },
1085
- version: "2024-01-01T10:00:00",
1086
- affected: []
1087
- };
1088
- });
1089
- var promises = mutations.map(function (m) {
1090
- return mutationEngine.mutate(m);
1091
- });
1092
- await import_vitest.vi.advanceTimersByTimeAsync(100);
1093
- await Promise.all(promises);
1094
- (0, import_vitest.expect)(mockDb.batchMutations).toHaveBeenCalledTimes(1);
1095
- (0, import_vitest.expect)(mockDb.batchMutations).toHaveBeenCalledWith(import_vitest.expect.objectContaining({
1096
- mutations: import_vitest.expect.arrayContaining([import_vitest.expect.objectContaining({
1097
- type: "update",
1098
- doctype: "TestDoc",
1099
- name: "test-doc-1"
1100
- }), import_vitest.expect.objectContaining({
1101
- type: "update",
1102
- doctype: "TestDoc",
1103
- name: "test-doc-2"
1104
- }), import_vitest.expect.objectContaining({
1105
- type: "update",
1106
- doctype: "TestDoc",
1107
- name: "test-doc-3"
1108
- })])
1109
- }));
1110
- });
1111
- (0, import_vitest.it)("should flush immediately when batchMaxSize is reached and keep remaining pending", async function () {
1112
- mockDb.batchMutations = import_vitest.vi.fn().mockResolvedValueOnce([{
1113
- success: true,
1114
- data: {
1115
- ...mockDoc,
1116
- name: "test-doc-1"
1117
- }
1118
- }, {
1119
- success: true,
1120
- data: {
1121
- ...mockDoc,
1122
- name: "test-doc-2"
1123
- }
1124
- }, {
1125
- success: true,
1126
- data: {
1127
- ...mockDoc,
1128
- name: "test-doc-3"
1129
- }
1130
- }]).mockResolvedValueOnce([{
1131
- success: true,
1132
- data: {
1133
- ...mockDoc,
1134
- name: "test-doc-4"
1135
- }
1136
- }]);
1137
- mutationEngine = new import_mutationEngine.MutationEngine(mockDb, mockRealtime, mockNormalizedCache, mockMutationJournal, mockSubscriptionManager, mockRehydrationManager, {
1138
- enableBatching: true,
1139
- batchDelay: 50,
1140
- batchMaxSize: 3
1141
- });
1142
- mockNormalizedCache.get.mockImplementation(function (ref) {
1143
- return {
1144
- ...mockDoc,
1145
- name: ref.name,
1146
- modified: "2024-01-01T10:00:00"
1147
- };
1148
- });
1149
- var mutations = [1, 2, 3, 4].map(function (i) {
1150
- return {
1151
- mutationId: `batch-${i}`,
1152
- operation: import_types2.Operation.Update,
1153
- doc: {
1154
- doctype: "TestDoc",
1155
- name: `test-doc-${i}`,
1156
- title: `Title ${i}`
1157
- },
1158
- version: "2024-01-01T10:00:00",
1159
- affected: []
1160
- };
1161
- });
1162
- var promises = mutations.map(function (m) {
1163
- return mutationEngine.mutate(m);
1164
- });
1165
- await import_vitest.vi.advanceTimersByTimeAsync(100);
1166
- await Promise.all(promises);
1167
- (0, import_vitest.expect)(mockDb.batchMutations).toHaveBeenCalledTimes(2);
1168
- (0, import_vitest.expect)(mockDb.batchMutations.mock.calls[0][0].mutations).toHaveLength(3);
1169
- (0, import_vitest.expect)(mockDb.batchMutations.mock.calls[1][0].mutations).toHaveLength(1);
1170
- });
1171
- });
1172
- });
1173
- //# sourceMappingURL=mutationEngine.spec.native.js.map