@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,935 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { applyMergeStrategy, deepEqual, FieldMergeStrategy, getFieldMergeStrategy, isObject, merge, mergeChildTable, mergeFieldValue, MergeStrategy } from "./merge.native.js";
3
- describe("mergeChildTable", function () {
4
- var createChildRow = function createChildRow2(name, idx, value) {
5
- return {
6
- name,
7
- doctype: "Item",
8
- idx,
9
- parent: "parent",
10
- parentfield: "items",
11
- parenttype: "Invoice",
12
- value: value !== null && value !== void 0 ? value : `value-${idx}`
13
- };
14
- };
15
- describe("2-way merge", function () {
16
- it("should merge child table arrays by name", function () {
17
- var baseArray = [createChildRow("row-1", 1, "old"), createChildRow("row-2", 2)];
18
- var incomingArray = [createChildRow("row-1", 1, "new"), createChildRow("row-3", 3)];
19
- var result = mergeChildTable(baseArray, incomingArray);
20
- expect(result).toHaveLength(3);
21
- expect(result[0]).toMatchObject({
22
- name: "row-1",
23
- value: "new"
24
- });
25
- expect(result[1]).toMatchObject({
26
- name: "row-2",
27
- value: "value-2"
28
- });
29
- expect(result[2]).toMatchObject({
30
- name: "row-3",
31
- value: "value-3"
32
- });
33
- });
34
- it("should handle empty base array", function () {
35
- var baseArray = [];
36
- var incomingArray = [createChildRow("row-1", 1), createChildRow("row-2", 2)];
37
- var result = mergeChildTable(baseArray, incomingArray);
38
- expect(result).toEqual(incomingArray);
39
- });
40
- it("should handle empty incoming array", function () {
41
- var baseArray = [createChildRow("row-1", 1), createChildRow("row-2", 2)];
42
- var incomingArray = [];
43
- var result = mergeChildTable(baseArray, incomingArray);
44
- expect(result).toEqual(baseArray);
45
- });
46
- it("should sort child table rows by idx", function () {
47
- var baseArray = [createChildRow("row-3", 3), createChildRow("row-1", 1)];
48
- var incomingArray = [createChildRow("row-2", 2)];
49
- var result = mergeChildTable(baseArray, incomingArray);
50
- expect(result[0]).toMatchObject({
51
- name: "row-1",
52
- idx: 1
53
- });
54
- expect(result[1]).toMatchObject({
55
- name: "row-2",
56
- idx: 2
57
- });
58
- expect(result[2]).toMatchObject({
59
- name: "row-3",
60
- idx: 3
61
- });
62
- });
63
- });
64
- describe("3-way merge", function () {
65
- it("should handle concurrent updates to different rows", function () {
66
- var baseArray = [createChildRow("row-1", 1, "original-1"), createChildRow("row-2", 2, "original-2")];
67
- var incomingArray = [createChildRow("row-1", 1, "client-1"), createChildRow("row-2", 2, "original-2")];
68
- var serverArray = [createChildRow("row-1", 1, "original-1"), createChildRow("row-2", 2, "server-2")];
69
- var result = mergeChildTable(baseArray, incomingArray, serverArray);
70
- expect(result).toHaveLength(2);
71
- expect(result[0]).toMatchObject({
72
- name: "row-1",
73
- value: "client-1"
74
- });
75
- expect(result[1]).toMatchObject({
76
- name: "row-2",
77
- value: "server-2"
78
- });
79
- });
80
- it("should handle additions from both client and server", function () {
81
- var baseArray = [createChildRow("row-1", 1)];
82
- var incomingArray = [createChildRow("row-1", 1), createChildRow("row-2", 2)];
83
- var serverArray = [createChildRow("row-1", 1), createChildRow("row-3", 3)];
84
- var result = mergeChildTable(baseArray, incomingArray, serverArray);
85
- expect(result).toHaveLength(3);
86
- expect(result.map(function (r) {
87
- return r.name;
88
- })).toContain("row-1");
89
- expect(result.map(function (r) {
90
- return r.name;
91
- })).toContain("row-2");
92
- expect(result.map(function (r) {
93
- return r.name;
94
- })).toContain("row-3");
95
- });
96
- it("should handle deletions", function () {
97
- var baseArray = [createChildRow("row-1", 1), createChildRow("row-2", 2), createChildRow("row-3", 3)];
98
- var incomingArray = [createChildRow("row-1", 1), createChildRow("row-3", 3)];
99
- var serverArray = [createChildRow("row-1", 1), createChildRow("row-2", 2)];
100
- var result = mergeChildTable(baseArray, incomingArray, serverArray);
101
- expect(result).toHaveLength(1);
102
- expect(result[0]).toMatchObject({
103
- name: "row-1"
104
- });
105
- });
106
- it("should prefer server values on conflicts", function () {
107
- var baseArray = [createChildRow("row-1", 1, "original")];
108
- var incomingArray = [createChildRow("row-1", 1, "client-update")];
109
- var serverArray = [createChildRow("row-1", 1, "server-update")];
110
- var result = mergeChildTable(baseArray, incomingArray, serverArray);
111
- expect(result).toHaveLength(1);
112
- expect(result[0]).toMatchObject({
113
- name: "row-1",
114
- value: "server-update"
115
- });
116
- });
117
- });
118
- describe("non-child-table arrays", function () {
119
- it("should return incoming array for non-child-table 2-way merge", function () {
120
- var baseArray = [1, 2, 3];
121
- var incomingArray = [4, 5, 6];
122
- var result = mergeChildTable(baseArray, incomingArray);
123
- expect(result).toEqual(incomingArray);
124
- });
125
- it("should return server array for non-child-table 3-way merge", function () {
126
- var baseArray = [1, 2, 3];
127
- var incomingArray = [4, 5, 6];
128
- var serverArray = [7, 8, 9];
129
- var result = mergeChildTable(baseArray, incomingArray, serverArray);
130
- expect(result).toEqual(serverArray);
131
- });
132
- it("should handle mixed evidence correctly", function () {
133
- var baseArray = [];
134
- var incomingArray = [createChildRow("row-1", 1)];
135
- var serverArray = [{
136
- some: "object"
137
- }];
138
- var result = mergeChildTable(baseArray, incomingArray, serverArray);
139
- expect(result).toEqual(serverArray);
140
- });
141
- });
142
- });
143
- describe("mergeFieldValue", function () {
144
- it("should handle null and undefined values", function () {
145
- var base = "value";
146
- expect(mergeFieldValue(base, null)).toBe(null);
147
- expect(mergeFieldValue(base, void 0)).toBe(void 0);
148
- });
149
- it("should merge objects", function () {
150
- var base = {
151
- d: 3
152
- };
153
- var incoming = {
154
- e: 4
155
- };
156
- var result = mergeFieldValue(base, incoming);
157
- expect(result).toEqual({
158
- d: 3,
159
- e: 4
160
- });
161
- });
162
- it("should detect and merge child tables in arrays", function () {
163
- var base = [{
164
- name: "row-1",
165
- doctype: "Item",
166
- idx: 1,
167
- parent: "p",
168
- parentfield: "f",
169
- parenttype: "t",
170
- value: "old"
171
- }];
172
- var incoming = [{
173
- name: "row-1",
174
- doctype: "Item",
175
- idx: 1,
176
- parent: "p",
177
- parentfield: "f",
178
- parenttype: "t",
179
- value: "new"
180
- }];
181
- var result = mergeFieldValue(base, incoming, {
182
- isChildTable: true
183
- });
184
- expect(Array.isArray(result)).toBe(true);
185
- expect(result[0].value).toBe("new");
186
- });
187
- it("should return incoming value for primitives", function () {
188
- expect(mergeFieldValue("old", "new")).toBe("new");
189
- expect(mergeFieldValue(1, 2)).toBe(2);
190
- expect(mergeFieldValue(true, false)).toBe(false);
191
- });
192
- it("should return incoming array for non-child-table arrays", function () {
193
- var base = [1, 2, 3];
194
- var incoming = [4, 5, 6];
195
- var result = mergeFieldValue(base, incoming);
196
- expect(result).toEqual([4, 5, 6]);
197
- });
198
- });
199
- describe("merge (3-way merge)", function () {
200
- it("should detect and merge non-conflicting changes", function () {
201
- var base = {
202
- doctype: "TestDoc",
203
- name: "doc-1",
204
- field1: "original",
205
- field2: "original"
206
- };
207
- var client = {
208
- doctype: "TestDoc",
209
- name: "doc-1",
210
- field1: "client-update",
211
- field2: "original"
212
- };
213
- var server = {
214
- doctype: "TestDoc",
215
- name: "doc-1",
216
- field1: "original",
217
- field2: "server-update"
218
- };
219
- var {
220
- merged,
221
- conflicts
222
- } = merge(base, client, server);
223
- expect(merged).toEqual({
224
- doctype: "TestDoc",
225
- name: "doc-1",
226
- field1: "client-update",
227
- field2: "server-update"
228
- });
229
- expect(conflicts).toEqual([]);
230
- });
231
- it("should detect conflicts when both modify same field", function () {
232
- var base = {
233
- doctype: "TestDoc",
234
- name: "doc-1",
235
- field1: "original"
236
- };
237
- var client = {
238
- doctype: "TestDoc",
239
- name: "doc-1",
240
- field1: "client-update"
241
- };
242
- var server = {
243
- doctype: "TestDoc",
244
- name: "doc-1",
245
- field1: "server-update"
246
- };
247
- var {
248
- merged,
249
- conflicts
250
- } = merge(base, client, server);
251
- expect(merged.field1).toBe("server-update");
252
- expect(conflicts).toContain("field1");
253
- });
254
- it("should handle field additions", function () {
255
- var base = {
256
- doctype: "TestDoc",
257
- name: "doc-1"
258
- };
259
- var client = {
260
- doctype: "TestDoc",
261
- name: "doc-1",
262
- clientField: "client"
263
- };
264
- var server = {
265
- doctype: "TestDoc",
266
- name: "doc-1",
267
- serverField: "server"
268
- };
269
- var {
270
- merged,
271
- conflicts
272
- } = merge(base, client, server);
273
- expect(merged).toEqual({
274
- doctype: "TestDoc",
275
- name: "doc-1",
276
- clientField: "client",
277
- serverField: "server"
278
- });
279
- expect(conflicts).toEqual([]);
280
- });
281
- it("should handle field deletions", function () {
282
- var base = {
283
- doctype: "TestDoc",
284
- name: "doc-1",
285
- field1: "value1",
286
- field2: "value2"
287
- };
288
- var client = {
289
- doctype: "TestDoc",
290
- name: "doc-1",
291
- field2: "value2"
292
- };
293
- var server = {
294
- doctype: "TestDoc",
295
- name: "doc-1",
296
- field1: "value1"
297
- };
298
- var {
299
- merged,
300
- conflicts
301
- } = merge(base, client, server);
302
- expect(merged).toEqual({
303
- doctype: "TestDoc",
304
- name: "doc-1"
305
- });
306
- expect(conflicts).toEqual([]);
307
- });
308
- it("should intelligently merge child table conflicts", function () {
309
- var base = {
310
- doctype: "TestDoc",
311
- name: "doc-1",
312
- items: [{
313
- name: "row-1",
314
- doctype: "Item",
315
- idx: 1,
316
- parent: "doc-1",
317
- parentfield: "items",
318
- parenttype: "Doc",
319
- value: "original"
320
- }]
321
- };
322
- var client = {
323
- doctype: "TestDoc",
324
- name: "doc-1",
325
- items: [{
326
- name: "row-1",
327
- doctype: "Item",
328
- idx: 1,
329
- parent: "doc-1",
330
- parentfield: "items",
331
- parenttype: "Doc",
332
- value: "client"
333
- }, {
334
- name: "row-2",
335
- doctype: "Item",
336
- idx: 2,
337
- parent: "doc-1",
338
- parentfield: "items",
339
- parenttype: "Doc",
340
- value: "new-client"
341
- }]
342
- };
343
- var server = {
344
- doctype: "TestDoc",
345
- name: "doc-1",
346
- items: [{
347
- name: "row-1",
348
- doctype: "Item",
349
- idx: 1,
350
- parent: "doc-1",
351
- parentfield: "items",
352
- parenttype: "Doc",
353
- value: "server"
354
- }, {
355
- name: "row-3",
356
- doctype: "Item",
357
- idx: 3,
358
- parent: "doc-1",
359
- parentfield: "items",
360
- parenttype: "Doc",
361
- value: "new-server"
362
- }]
363
- };
364
- var {
365
- merged,
366
- conflicts
367
- } = merge(base, client, server);
368
- expect(merged.items).toHaveLength(3);
369
- expect(conflicts).toEqual([]);
370
- });
371
- it("should handle array conflicts that are not child tables", function () {
372
- var base = {
373
- doctype: "TestDoc",
374
- name: "doc-1",
375
- tags: ["a", "b"]
376
- };
377
- var client = {
378
- doctype: "TestDoc",
379
- name: "doc-1",
380
- tags: ["a", "c"]
381
- };
382
- var server = {
383
- doctype: "TestDoc",
384
- name: "doc-1",
385
- tags: ["a", "d"]
386
- };
387
- var {
388
- merged,
389
- conflicts
390
- } = merge(base, client, server);
391
- expect(merged.tags).toEqual(["a", "d"]);
392
- expect(conflicts).toContain("tags");
393
- });
394
- });
395
- describe("deepEqual", function () {
396
- it("should compare primitive values correctly", function () {
397
- expect(deepEqual(1, 1)).toBe(true);
398
- expect(deepEqual(1, 2)).toBe(false);
399
- expect(deepEqual("test", "test")).toBe(true);
400
- expect(deepEqual("test", "other")).toBe(false);
401
- expect(deepEqual(true, true)).toBe(true);
402
- expect(deepEqual(true, false)).toBe(false);
403
- expect(deepEqual(null, null)).toBe(true);
404
- expect(deepEqual(void 0, void 0)).toBe(true);
405
- expect(deepEqual(null, void 0)).toBe(false);
406
- });
407
- it("should compare arrays correctly", function () {
408
- expect(deepEqual([1, 2, 3], [1, 2, 3])).toBe(true);
409
- expect(deepEqual([1, 2, 3], [1, 2, 4])).toBe(false);
410
- expect(deepEqual([1, 2, 3], [1, 2])).toBe(false);
411
- expect(deepEqual([], [])).toBe(true);
412
- });
413
- it("should compare objects correctly", function () {
414
- expect(deepEqual({
415
- a: 1,
416
- b: 2
417
- }, {
418
- a: 1,
419
- b: 2
420
- })).toBe(true);
421
- expect(deepEqual({
422
- a: 1,
423
- b: 2
424
- }, {
425
- a: 1,
426
- b: 3
427
- })).toBe(false);
428
- expect(deepEqual({
429
- a: 1
430
- }, {
431
- a: 1,
432
- b: 2
433
- })).toBe(false);
434
- expect(deepEqual({}, {})).toBe(true);
435
- });
436
- it("should compare nested structures", function () {
437
- var obj1 = {
438
- a: 1,
439
- b: [2, 3],
440
- c: {
441
- d: 4,
442
- e: [5, 6]
443
- }
444
- };
445
- var obj2 = {
446
- a: 1,
447
- b: [2, 3],
448
- c: {
449
- d: 4,
450
- e: [5, 6]
451
- }
452
- };
453
- var obj3 = {
454
- a: 1,
455
- b: [2, 3],
456
- c: {
457
- d: 4,
458
- e: [5, 7]
459
- }
460
- };
461
- expect(deepEqual(obj1, obj2)).toBe(true);
462
- expect(deepEqual(obj1, obj3)).toBe(false);
463
- });
464
- });
465
- describe("isObject", function () {
466
- it("should identify objects correctly", function () {
467
- expect(isObject({})).toBe(true);
468
- expect(isObject({
469
- a: 1
470
- })).toBe(true);
471
- expect(isObject(null)).toBe(false);
472
- expect(isObject(void 0)).toBe(false);
473
- expect(isObject([])).toBe(false);
474
- expect(isObject("string")).toBe(false);
475
- expect(isObject(123)).toBe(false);
476
- expect(isObject(true)).toBe(false);
477
- });
478
- });
479
- describe("applyMergeStrategy", function () {
480
- describe("Sum", function () {
481
- it("should sum client and server deltas from base", function () {
482
- var result = applyMergeStrategy("amount", 10, 15, 12, FieldMergeStrategy.Sum);
483
- expect(result).toEqual({
484
- value: 17,
485
- hasConflict: false
486
- });
487
- });
488
- it("should handle zero base", function () {
489
- var result = applyMergeStrategy("amount", 0, 5, 3, FieldMergeStrategy.Sum);
490
- expect(result).toEqual({
491
- value: 8,
492
- hasConflict: false
493
- });
494
- });
495
- it("should handle null base as zero", function () {
496
- var result = applyMergeStrategy("amount", null, 5, 3, FieldMergeStrategy.Sum);
497
- expect(result).toEqual({
498
- value: 8,
499
- hasConflict: false
500
- });
501
- });
502
- it("should throw TypeError for non-numeric values", function () {
503
- expect(function () {
504
- return applyMergeStrategy("amount", "ten", 15, 12, FieldMergeStrategy.Sum);
505
- }).toThrow(TypeError);
506
- expect(function () {
507
- return applyMergeStrategy("amount", 10, "fifteen", 12, FieldMergeStrategy.Sum);
508
- }).toThrow(TypeError);
509
- });
510
- });
511
- describe("Max", function () {
512
- it("should return the largest of base, client, and server", function () {
513
- var result = applyMergeStrategy("priority", 5, 10, 7, FieldMergeStrategy.Max);
514
- expect(result).toEqual({
515
- value: 10,
516
- hasConflict: false
517
- });
518
- });
519
- it("should handle server being the max", function () {
520
- var result = applyMergeStrategy("priority", 5, 7, 10, FieldMergeStrategy.Max);
521
- expect(result).toEqual({
522
- value: 10,
523
- hasConflict: false
524
- });
525
- });
526
- it("should handle null values as zero", function () {
527
- var result = applyMergeStrategy("priority", null, 3, null, FieldMergeStrategy.Max);
528
- expect(result).toEqual({
529
- value: 3,
530
- hasConflict: false
531
- });
532
- });
533
- it("should throw TypeError for non-numeric values", function () {
534
- expect(function () {
535
- return applyMergeStrategy("priority", "low", "high", "medium", FieldMergeStrategy.Max);
536
- }).toThrow(TypeError);
537
- });
538
- });
539
- describe("Min", function () {
540
- it("should return the smallest of base, client, and server", function () {
541
- var result = applyMergeStrategy("priority", 5, 2, 7, FieldMergeStrategy.Min);
542
- expect(result).toEqual({
543
- value: 2,
544
- hasConflict: false
545
- });
546
- });
547
- it("should handle server being the min", function () {
548
- var result = applyMergeStrategy("priority", 5, 7, 1, FieldMergeStrategy.Min);
549
- expect(result).toEqual({
550
- value: 1,
551
- hasConflict: false
552
- });
553
- });
554
- it("should handle null values as zero", function () {
555
- var result = applyMergeStrategy("priority", null, 3, 5, FieldMergeStrategy.Min);
556
- expect(result).toEqual({
557
- value: 0,
558
- hasConflict: false
559
- });
560
- });
561
- it("should throw TypeError for non-numeric values", function () {
562
- expect(function () {
563
- return applyMergeStrategy("priority", "a", "b", "c", FieldMergeStrategy.Min);
564
- }).toThrow(TypeError);
565
- });
566
- });
567
- describe("UnionSet", function () {
568
- it("should return union of client and server arrays with no duplicates", function () {
569
- var result = applyMergeStrategy("tags", ["a", "b"], ["a", "b", "c"], ["a", "b", "d"], FieldMergeStrategy.UnionSet);
570
- expect(result.hasConflict).toBe(false);
571
- var arr = result.value;
572
- expect(arr).toContain("a");
573
- expect(arr).toContain("b");
574
- expect(arr).toContain("c");
575
- expect(arr).toContain("d");
576
- expect(new Set(arr).size).toBe(arr.length);
577
- });
578
- it("should only remove items deleted by both sides", function () {
579
- var result = applyMergeStrategy("tags", ["a", "b", "c"], ["a"], ["a"], FieldMergeStrategy.UnionSet);
580
- var arr = result.value;
581
- expect(arr).toEqual(["a"]);
582
- });
583
- it("should keep items removed by only one side", function () {
584
- var result = applyMergeStrategy("tags", ["a", "b", "c"], ["a", "c"], ["a", "b"], FieldMergeStrategy.UnionSet);
585
- var arr = result.value;
586
- expect(arr).toContain("a");
587
- expect(arr).toContain("b");
588
- expect(arr).toContain("c");
589
- });
590
- it("should handle null base as empty array", function () {
591
- var result = applyMergeStrategy("tags", null, ["a", "b"], ["b", "c"], FieldMergeStrategy.UnionSet);
592
- var arr = result.value;
593
- expect(arr).toContain("a");
594
- expect(arr).toContain("b");
595
- expect(arr).toContain("c");
596
- });
597
- it("should throw TypeError for non-array values", function () {
598
- expect(function () {
599
- return applyMergeStrategy("tags", "not-array", ["a"], ["b"], FieldMergeStrategy.UnionSet);
600
- }).toThrow(TypeError);
601
- expect(function () {
602
- return applyMergeStrategy("tags", ["a"], 42, ["b"], FieldMergeStrategy.UnionSet);
603
- }).toThrow(TypeError);
604
- });
605
- });
606
- describe("Custom function", function () {
607
- it("should invoke the custom function with base, client, server", function () {
608
- var customFn = function customFn2(base, client, server) {
609
- return client + server;
610
- };
611
- var result = applyMergeStrategy("score", 0, 10, 20, customFn);
612
- expect(result).toEqual({
613
- value: 30,
614
- hasConflict: false
615
- });
616
- });
617
- it("should pass correct arguments to custom function", function () {
618
- var calls = [];
619
- var spy = function spy2(base, client, server) {
620
- calls.push([base, client, server]);
621
- return server;
622
- };
623
- applyMergeStrategy("field", "base-val", "client-val", "server-val", spy);
624
- expect(calls).toHaveLength(1);
625
- expect(calls[0]).toEqual(["base-val", "client-val", "server-val"]);
626
- });
627
- });
628
- describe("ClientWins / ServerWins", function () {
629
- it("should return client value for ClientWins", function () {
630
- var result = applyMergeStrategy("f", "base", "client", "server", FieldMergeStrategy.ClientWins);
631
- expect(result).toEqual({
632
- value: "client",
633
- hasConflict: false
634
- });
635
- });
636
- it("should return server value for ServerWins", function () {
637
- var result = applyMergeStrategy("f", "base", "client", "server", FieldMergeStrategy.ServerWins);
638
- expect(result).toEqual({
639
- value: "server",
640
- hasConflict: false
641
- });
642
- });
643
- });
644
- });
645
- describe("getFieldMergeStrategy", function () {
646
- it("should return ServerWins when no config is provided", function () {
647
- expect(getFieldMergeStrategy("amount")).toBe(FieldMergeStrategy.ServerWins);
648
- });
649
- it("should return field-specific strategy when configured", function () {
650
- var config = {
651
- defaultStrategy: MergeStrategy.ServerWins,
652
- doctypes: {
653
- Invoice: {
654
- fields: {
655
- total: FieldMergeStrategy.Sum,
656
- priority: FieldMergeStrategy.Max
657
- }
658
- }
659
- }
660
- };
661
- expect(getFieldMergeStrategy("total", config, "Invoice")).toBe(FieldMergeStrategy.Sum);
662
- expect(getFieldMergeStrategy("priority", config, "Invoice")).toBe(FieldMergeStrategy.Max);
663
- });
664
- it("should return global default when field is not in config", function () {
665
- var config = {
666
- defaultStrategy: MergeStrategy.ClientWins,
667
- doctypes: {
668
- Invoice: {
669
- fields: {
670
- total: FieldMergeStrategy.Sum
671
- }
672
- }
673
- }
674
- };
675
- expect(getFieldMergeStrategy("unknown_field", config, "Invoice")).toBe(FieldMergeStrategy.ClientWins);
676
- });
677
- it("should fall back to doctype default strategy when field not configured", function () {
678
- var config = {
679
- defaultStrategy: MergeStrategy.ServerWins,
680
- doctypes: {
681
- Invoice: {
682
- defaultStrategy: MergeStrategy.ClientWins,
683
- fields: {}
684
- }
685
- }
686
- };
687
- expect(getFieldMergeStrategy("some_field", config, "Invoice")).toBe(FieldMergeStrategy.ClientWins);
688
- });
689
- it("should fall back to global default when doctype has no config", function () {
690
- var config = {
691
- defaultStrategy: MergeStrategy.ClientWins,
692
- doctypes: {
693
- Invoice: {
694
- fields: {
695
- total: FieldMergeStrategy.Sum
696
- }
697
- }
698
- }
699
- };
700
- expect(getFieldMergeStrategy("total", config, "UnknownDoctype")).toBe(FieldMergeStrategy.ClientWins);
701
- });
702
- it("should return a custom function strategy correctly", function () {
703
- var customFn = function customFn2(base, client, _server) {
704
- return base + client;
705
- };
706
- var config = {
707
- defaultStrategy: MergeStrategy.ServerWins,
708
- doctypes: {
709
- Invoice: {
710
- fields: {
711
- computed: customFn
712
- }
713
- }
714
- }
715
- };
716
- var result = getFieldMergeStrategy("computed", config, "Invoice");
717
- expect(result).toBe(customFn);
718
- });
719
- it("should return ServerWins when config has no doctype and global is ServerWins", function () {
720
- var config = {
721
- defaultStrategy: MergeStrategy.ServerWins
722
- };
723
- expect(getFieldMergeStrategy("field", config, "AnyDoctype")).toBe(FieldMergeStrategy.ServerWins);
724
- });
725
- });
726
- describe("merge with MergeConfig", function () {
727
- it("should use Max strategy for a numeric field instead of default server-wins", function () {
728
- var config = {
729
- defaultStrategy: MergeStrategy.ServerWins,
730
- doctypes: {
731
- TestDoc: {
732
- fields: {
733
- priority: FieldMergeStrategy.Max
734
- }
735
- }
736
- }
737
- };
738
- var base = {
739
- doctype: "TestDoc",
740
- name: "doc-1",
741
- priority: 5
742
- };
743
- var client = {
744
- doctype: "TestDoc",
745
- name: "doc-1",
746
- priority: 10
747
- };
748
- var server = {
749
- doctype: "TestDoc",
750
- name: "doc-1",
751
- priority: 7
752
- };
753
- var {
754
- merged,
755
- conflicts
756
- } = merge(base, client, server, config);
757
- expect(merged.priority).toBe(10);
758
- expect(conflicts).not.toContain("priority");
759
- });
760
- it("should use Sum strategy to combine concurrent numeric changes", function () {
761
- var config = {
762
- defaultStrategy: MergeStrategy.ServerWins,
763
- doctypes: {
764
- TestDoc: {
765
- fields: {
766
- amount: FieldMergeStrategy.Sum
767
- }
768
- }
769
- }
770
- };
771
- var base = {
772
- doctype: "TestDoc",
773
- name: "doc-1",
774
- amount: 100
775
- };
776
- var client = {
777
- doctype: "TestDoc",
778
- name: "doc-1",
779
- amount: 150
780
- };
781
- var server = {
782
- doctype: "TestDoc",
783
- name: "doc-1",
784
- amount: 120
785
- };
786
- var {
787
- merged,
788
- conflicts
789
- } = merge(base, client, server, config);
790
- expect(merged.amount).toBe(170);
791
- expect(conflicts).not.toContain("amount");
792
- });
793
- it("should use UnionSet strategy for an array field", function () {
794
- var config = {
795
- defaultStrategy: MergeStrategy.ServerWins,
796
- doctypes: {
797
- TestDoc: {
798
- fields: {
799
- tags: FieldMergeStrategy.UnionSet
800
- }
801
- }
802
- }
803
- };
804
- var base = {
805
- doctype: "TestDoc",
806
- name: "doc-1",
807
- tags: ["a", "b"]
808
- };
809
- var client = {
810
- doctype: "TestDoc",
811
- name: "doc-1",
812
- tags: ["a", "b", "c"]
813
- };
814
- var server = {
815
- doctype: "TestDoc",
816
- name: "doc-1",
817
- tags: ["a", "b", "d"]
818
- };
819
- var {
820
- merged,
821
- conflicts
822
- } = merge(base, client, server, config);
823
- var tags = merged.tags;
824
- expect(tags).toContain("a");
825
- expect(tags).toContain("b");
826
- expect(tags).toContain("c");
827
- expect(tags).toContain("d");
828
- expect(conflicts).not.toContain("tags");
829
- });
830
- it("should not apply config meant for a different doctype", function () {
831
- var config = {
832
- defaultStrategy: MergeStrategy.ServerWins,
833
- doctypes: {
834
- OtherDoc: {
835
- fields: {
836
- priority: FieldMergeStrategy.Max
837
- }
838
- }
839
- }
840
- };
841
- var base = {
842
- doctype: "TestDoc",
843
- name: "doc-1",
844
- priority: 5
845
- };
846
- var client = {
847
- doctype: "TestDoc",
848
- name: "doc-1",
849
- priority: 10
850
- };
851
- var server = {
852
- doctype: "TestDoc",
853
- name: "doc-1",
854
- priority: 7
855
- };
856
- var {
857
- merged
858
- } = merge(base, client, server, config);
859
- expect(merged.priority).toBe(7);
860
- });
861
- it("should apply custom function strategy through merge", function () {
862
- var config = {
863
- defaultStrategy: MergeStrategy.ServerWins,
864
- doctypes: {
865
- TestDoc: {
866
- fields: {
867
- score: function score(_base, client2, server2) {
868
- return client2 * server2;
869
- }
870
- }
871
- }
872
- }
873
- };
874
- var base = {
875
- doctype: "TestDoc",
876
- name: "doc-1",
877
- score: 1
878
- };
879
- var client = {
880
- doctype: "TestDoc",
881
- name: "doc-1",
882
- score: 3
883
- };
884
- var server = {
885
- doctype: "TestDoc",
886
- name: "doc-1",
887
- score: 4
888
- };
889
- var {
890
- merged,
891
- conflicts
892
- } = merge(base, client, server, config);
893
- expect(merged.score).toBe(12);
894
- expect(conflicts).not.toContain("score");
895
- });
896
- it("should resolve configured fields without conflict while defaulting others to server-wins", function () {
897
- var config = {
898
- defaultStrategy: MergeStrategy.ServerWins,
899
- doctypes: {
900
- TestDoc: {
901
- fields: {
902
- amount: FieldMergeStrategy.Sum
903
- }
904
- }
905
- }
906
- };
907
- var base = {
908
- doctype: "TestDoc",
909
- name: "doc-1",
910
- amount: 100,
911
- status: "draft"
912
- };
913
- var client = {
914
- doctype: "TestDoc",
915
- name: "doc-1",
916
- amount: 150,
917
- status: "submitted"
918
- };
919
- var server = {
920
- doctype: "TestDoc",
921
- name: "doc-1",
922
- amount: 120,
923
- status: "cancelled"
924
- };
925
- var {
926
- merged,
927
- conflicts
928
- } = merge(base, client, server, config);
929
- expect(merged.amount).toBe(170);
930
- expect(merged.status).toBe("cancelled");
931
- expect(conflicts).not.toContain("amount");
932
- expect(conflicts).not.toContain("status");
933
- });
934
- });
935
- //# sourceMappingURL=merge.spec.native.js.map