@noy-db/hub 0.4.0-pre.8 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/dist/{api-3NKVNZPM.js → api-SI2IVBQO.js} +6 -6
  2. package/dist/attestation/index.js +12 -12
  3. package/dist/{backup-PTSVXDDW.js → backup-X7F3TCFV.js} +6 -6
  4. package/dist/blobs/index.js +5 -5
  5. package/dist/broker/index.js +6 -6
  6. package/dist/cargo/index.js +20 -20
  7. package/dist/{chunk-WZ3NCMK6.js → chunk-2BET5QTS.js} +3 -3
  8. package/dist/{chunk-Y6B6HVKC.js → chunk-2J6UEN2V.js} +41 -17
  9. package/dist/chunk-2J6UEN2V.js.map +1 -0
  10. package/dist/{chunk-BYFXLDVV.js → chunk-3ECU57YH.js} +7 -7
  11. package/dist/{chunk-ZWBKDKXC.js → chunk-467SWYT5.js} +2 -2
  12. package/dist/{chunk-MTJLOC3Y.js → chunk-55LKVALY.js} +106 -10
  13. package/dist/chunk-55LKVALY.js.map +1 -0
  14. package/dist/{chunk-XIDQKFZF.js → chunk-5UQ7Y6SQ.js} +2 -2
  15. package/dist/{chunk-GZACYEOB.js → chunk-77AEMXFA.js} +1 -1
  16. package/dist/chunk-77AEMXFA.js.map +1 -0
  17. package/dist/{chunk-IMRB2C4O.js → chunk-7H3WWH6J.js} +3 -3
  18. package/dist/{chunk-OLIWCCFM.js → chunk-CLE3TMIS.js} +2 -2
  19. package/dist/{chunk-ZFUFAHZ3.js → chunk-DAFBJS4Y.js} +2 -2
  20. package/dist/{chunk-ISRKW4YN.js → chunk-DQZXPGGZ.js} +2 -2
  21. package/dist/{chunk-FMNU7IUG.js → chunk-DTFA5DO4.js} +2 -2
  22. package/dist/{chunk-VH6SOCXH.js → chunk-EFJAAFBW.js} +2 -2
  23. package/dist/{chunk-TIVK6PRK.js → chunk-ERGECZEI.js} +5 -5
  24. package/dist/{chunk-BQ6DHN4I.js → chunk-GTYFIVIZ.js} +101 -22
  25. package/dist/chunk-GTYFIVIZ.js.map +1 -0
  26. package/dist/{chunk-KW42W6SV.js → chunk-HLKXPJ4V.js} +4 -4
  27. package/dist/{chunk-MANUDU7I.js → chunk-HZZP2ZIG.js} +4 -4
  28. package/dist/{chunk-DZAF24PG.js → chunk-IFOH7RBI.js} +3 -3
  29. package/dist/{chunk-FRMW23UK.js → chunk-IVYQAVWO.js} +2 -2
  30. package/dist/{chunk-SGQ4N5FS.js → chunk-JEI6JJNI.js} +3 -3
  31. package/dist/{chunk-BN4HRYAZ.js → chunk-JQ2AX4T5.js} +2 -2
  32. package/dist/{chunk-OBPVWOSQ.js → chunk-KD4HGBJV.js} +3 -3
  33. package/dist/{chunk-QADFHRQM.js → chunk-KYRDJI5O.js} +8 -8
  34. package/dist/{chunk-JTR75MKH.js → chunk-LLYIMSQQ.js} +9 -9
  35. package/dist/{chunk-GP3UWP22.js → chunk-LRRX57UA.js} +2 -2
  36. package/dist/{chunk-OLSARBZU.js → chunk-LXRTP3AQ.js} +2 -2
  37. package/dist/{chunk-EBKCYQ2D.js → chunk-NBXFCQX4.js} +3 -3
  38. package/dist/{chunk-BXHMZ2XW.js → chunk-NLYALJMY.js} +24 -14
  39. package/dist/chunk-NLYALJMY.js.map +1 -0
  40. package/dist/{chunk-EZNTORXE.js → chunk-NM5UYF6Q.js} +1 -1
  41. package/dist/chunk-NM5UYF6Q.js.map +1 -0
  42. package/dist/{chunk-NEX7JCMO.js → chunk-OWHP3H5C.js} +3 -3
  43. package/dist/{chunk-WO4T4OD5.js → chunk-P4JO3H6R.js} +2 -2
  44. package/dist/{chunk-CCDP6EPB.js → chunk-PWPYO73B.js} +2 -2
  45. package/dist/{chunk-56IIVAEO.js → chunk-Q2SEJMP2.js} +2 -2
  46. package/dist/{chunk-JIDLU57U.js → chunk-Q36YXK77.js} +2 -2
  47. package/dist/{chunk-KPXM4WO6.js → chunk-Q5YJCVJY.js} +3 -3
  48. package/dist/{chunk-JYV4JJV2.js → chunk-QGIBI6GL.js} +4 -4
  49. package/dist/{chunk-DGBIHDVK.js → chunk-RBTVFPHF.js} +3 -3
  50. package/dist/{chunk-6R6Q3MRN.js → chunk-RQ4ZI4ZI.js} +4 -4
  51. package/dist/{chunk-FO6RNKKW.js → chunk-S7GIXBXV.js} +2 -2
  52. package/dist/chunk-SBHN6QUT.js +25 -0
  53. package/dist/chunk-SBHN6QUT.js.map +1 -0
  54. package/dist/{chunk-3XKESW5E.js → chunk-SF2ZIRD6.js} +2 -2
  55. package/dist/{chunk-TE6LH6J2.js → chunk-SFBYQMZM.js} +3 -3
  56. package/dist/{chunk-RZPOZPZU.js → chunk-SU6SGWXM.js} +3 -3
  57. package/dist/{chunk-6L3DKWRY.js → chunk-T2MOJF76.js} +2 -2
  58. package/dist/{chunk-SKM35Y4Q.js → chunk-TS5XLBZR.js} +3 -3
  59. package/dist/{chunk-HFUAFR6B.js → chunk-TWPK7KUJ.js} +3 -3
  60. package/dist/{chunk-6M2I3DKF.js → chunk-WK7ULBTP.js} +2 -2
  61. package/dist/{chunk-IF6WNGAK.js → chunk-WUHEP3HH.js} +2 -2
  62. package/dist/{chunk-NQSO4UAH.js → chunk-WYUAEZSC.js} +3 -3
  63. package/dist/{chunk-Y6VZQGGH.js → chunk-YGK2HMLR.js} +4 -4
  64. package/dist/{chunk-TWS3S62A.js → chunk-ZBYFMI6D.js} +223 -119
  65. package/dist/chunk-ZBYFMI6D.js.map +1 -0
  66. package/dist/{chunk-N5PLUFH2.js → chunk-ZFG5EBI3.js} +4 -4
  67. package/dist/{chunk-KFRPNHWR.js → chunk-ZHDSUZQU.js} +3 -3
  68. package/dist/{chunk-C25JXSOR.js → chunk-ZNWSG7XC.js} +5 -5
  69. package/dist/classified/index.js +3 -3
  70. package/dist/{classified-marker-EOOSMWFC.js → classified-marker-LE54HWSX.js} +3 -3
  71. package/dist/{collection-facade-TTRF5NFJ.js → collection-facade-DO2AABZT.js} +8 -8
  72. package/dist/consent/index.js +4 -4
  73. package/dist/cover/index.js +2 -2
  74. package/dist/custody/index.js +6 -6
  75. package/dist/{dead-filter-6DYY7S64.js → dead-filter-V3LVWYEJ.js} +2 -2
  76. package/dist/debug/index.js +29 -0
  77. package/dist/debug/index.js.map +1 -0
  78. package/dist/{delegation-ONOZVPIP.js → delegation-JDUMAF6L.js} +4 -4
  79. package/dist/derivations/index.js +3 -3
  80. package/dist/{derive-IGGVSUPH.js → derive-ZPGVLE2Q.js} +4 -4
  81. package/dist/directory/index.js +5 -5
  82. package/dist/{dispatch-RPTLK7LJ.js → dispatch-6TV3DGO6.js} +5 -5
  83. package/dist/{dispatch-7T45NN7C.js → dispatch-W7NWQ637.js} +9 -9
  84. package/dist/{enclave-CLJVSDFG.js → enclave-YFCLPIDR.js} +4 -4
  85. package/dist/{executor-XZYM4KHT.js → executor-FPHKWDWT.js} +8 -8
  86. package/dist/{export-accessible-24XCCD3A.js → export-accessible-EKM3HGB2.js} +7 -7
  87. package/dist/{extract-partition-H2TPEEOF.js → extract-partition-LS4ET5A6.js} +10 -10
  88. package/dist/{fanout-sidecar-TV7CXAJ6.js → fanout-sidecar-273RDMYS.js} +4 -4
  89. package/dist/forget/index.js +4 -4
  90. package/dist/history/index.js +6 -6
  91. package/dist/i18n/index.js +6 -6
  92. package/dist/index.d.ts +7 -7
  93. package/dist/index.js +148 -96
  94. package/dist/index.js.map +1 -1
  95. package/dist/introspection/index.js +5 -5
  96. package/dist/{issue-55HJE7JF.js → issue-LIA7FXBJ.js} +6 -6
  97. package/dist/kernel/best-effort-revert.d.ts +9 -1
  98. package/dist/kernel/collection.d.ts +89 -2
  99. package/dist/kernel/debug.d.ts +11 -0
  100. package/dist/kernel/noydb.d.ts +3 -3
  101. package/dist/kernel/prepared-write.d.ts +70 -0
  102. package/dist/kernel/sync-policy.d.ts +75 -3
  103. package/dist/kernel/types.d.ts +27 -8
  104. package/dist/{ledger-XY6NP3J2.js → ledger-XE7JF2I2.js} +6 -6
  105. package/dist/liberate-WZ3RHVKW.js +24 -0
  106. package/dist/{link-set-POQB7BU5.js → link-set-CGYC3OH5.js} +5 -5
  107. package/dist/materialized-views/index.js +13 -13
  108. package/dist/{noydb-FHZ4ZDBP.js → noydb-ZLPVCDES.js} +30 -31
  109. package/dist/periods/index.js +8 -8
  110. package/dist/pod/index.js +6 -6
  111. package/dist/policy/index.js +3 -3
  112. package/dist/port/with/strategies.d.ts +1 -1
  113. package/dist/portability/index.js +6 -6
  114. package/dist/{post-register-URQANI3B.js → post-register-LY35EDTJ.js} +4 -4
  115. package/dist/{register-5W6CG4RM.js → register-6RIBIT3I.js} +6 -6
  116. package/dist/{registry-UJFP3NWF.js → registry-MUSL4AW6.js} +4 -4
  117. package/dist/{registry-MCSGBZXI.js → registry-RON4WHAP.js} +4 -4
  118. package/dist/{request-withdrawal-IWYDM4SO.js → request-withdrawal-FT3ORAWN.js} +9 -9
  119. package/dist/{reveal-BXZGWIOP.js → reveal-T34ADTPY.js} +3 -3
  120. package/dist/{revoke-TINYPHYY.js → revoke-HC7WG3HE.js} +6 -6
  121. package/dist/sealed-record/index.js +6 -6
  122. package/dist/search/index.js +1 -1
  123. package/dist/{seed-F7YYQTRC.js → seed-JOV54PB3.js} +6 -6
  124. package/dist/seed-JOV54PB3.js.map +1 -0
  125. package/dist/sequence/index.js +4 -4
  126. package/dist/session/index.js +3 -3
  127. package/dist/{signer-WMZKCNKC.js → signer-CTWOH6KT.js} +5 -5
  128. package/dist/snapshots/index.js +5 -5
  129. package/dist/{stale-JOE7GBAE.js → stale-T3V7XEOB.js} +5 -5
  130. package/dist/{storage-B3WBKXKT.js → storage-LLNLPWWB.js} +5 -5
  131. package/dist/{store-coordination-provider-5LX2UFU2.js → store-coordination-provider-AHGFEMFA.js} +3 -3
  132. package/dist/sync/index.js +9 -10
  133. package/dist/sync/index.js.map +1 -1
  134. package/dist/team/index.js +8 -30
  135. package/dist/tiers/index.js +4 -4
  136. package/dist/transactions/index.js +1 -1
  137. package/dist/{walk-6OHAWGBS.js → walk-G3NFEP5L.js} +6 -6
  138. package/dist/with-commit/tx/atomic-eligibility.d.ts +47 -0
  139. package/dist/with-commit/tx/transaction.d.ts +22 -9
  140. package/dist/with-party/broker/seed.d.ts +1 -1
  141. package/dist/with-party/team/index.d.ts +0 -5
  142. package/dist/{with-party/team/sync-active.d.ts → with-sync/active.d.ts} +1 -1
  143. package/dist/{with-party/team/sync-credentials.d.ts → with-sync/credentials.d.ts} +3 -3
  144. package/dist/{with-party/team/sync.d.ts → with-sync/engine.d.ts} +5 -5
  145. package/dist/{with-party/sync → with-sync}/index.d.ts +3 -3
  146. package/dist/{with-party/team/sync-period-scope.d.ts → with-sync/period-scope.d.ts} +2 -2
  147. package/dist/{with-party/team → with-sync}/presence.d.ts +2 -2
  148. package/dist/{with-party/team/sync-strategy.d.ts → with-sync/strategy.d.ts} +6 -6
  149. package/dist/{with-party/team/sync-transaction.d.ts → with-sync/transaction.d.ts} +3 -3
  150. package/dist/{withdraw-accessible-DEUCOO4F.js → withdraw-accessible-ANSVG6XG.js} +8 -8
  151. package/package.json +8 -4
  152. package/dist/chunk-BQ6DHN4I.js.map +0 -1
  153. package/dist/chunk-BXHMZ2XW.js.map +0 -1
  154. package/dist/chunk-EP5L47XV.js +0 -22
  155. package/dist/chunk-EP5L47XV.js.map +0 -1
  156. package/dist/chunk-EZNTORXE.js.map +0 -1
  157. package/dist/chunk-GZACYEOB.js.map +0 -1
  158. package/dist/chunk-MTJLOC3Y.js.map +0 -1
  159. package/dist/chunk-SHYIA73K.js +0 -99
  160. package/dist/chunk-SHYIA73K.js.map +0 -1
  161. package/dist/chunk-TWS3S62A.js.map +0 -1
  162. package/dist/chunk-Y6B6HVKC.js.map +0 -1
  163. package/dist/liberate-LXOJ2EMB.js +0 -24
  164. package/dist/seed-F7YYQTRC.js.map +0 -1
  165. /package/dist/{api-3NKVNZPM.js.map → api-SI2IVBQO.js.map} +0 -0
  166. /package/dist/{backup-PTSVXDDW.js.map → backup-X7F3TCFV.js.map} +0 -0
  167. /package/dist/{chunk-WZ3NCMK6.js.map → chunk-2BET5QTS.js.map} +0 -0
  168. /package/dist/{chunk-BYFXLDVV.js.map → chunk-3ECU57YH.js.map} +0 -0
  169. /package/dist/{chunk-ZWBKDKXC.js.map → chunk-467SWYT5.js.map} +0 -0
  170. /package/dist/{chunk-XIDQKFZF.js.map → chunk-5UQ7Y6SQ.js.map} +0 -0
  171. /package/dist/{chunk-IMRB2C4O.js.map → chunk-7H3WWH6J.js.map} +0 -0
  172. /package/dist/{chunk-OLIWCCFM.js.map → chunk-CLE3TMIS.js.map} +0 -0
  173. /package/dist/{chunk-ZFUFAHZ3.js.map → chunk-DAFBJS4Y.js.map} +0 -0
  174. /package/dist/{chunk-ISRKW4YN.js.map → chunk-DQZXPGGZ.js.map} +0 -0
  175. /package/dist/{chunk-FMNU7IUG.js.map → chunk-DTFA5DO4.js.map} +0 -0
  176. /package/dist/{chunk-VH6SOCXH.js.map → chunk-EFJAAFBW.js.map} +0 -0
  177. /package/dist/{chunk-TIVK6PRK.js.map → chunk-ERGECZEI.js.map} +0 -0
  178. /package/dist/{chunk-KW42W6SV.js.map → chunk-HLKXPJ4V.js.map} +0 -0
  179. /package/dist/{chunk-MANUDU7I.js.map → chunk-HZZP2ZIG.js.map} +0 -0
  180. /package/dist/{chunk-DZAF24PG.js.map → chunk-IFOH7RBI.js.map} +0 -0
  181. /package/dist/{chunk-FRMW23UK.js.map → chunk-IVYQAVWO.js.map} +0 -0
  182. /package/dist/{chunk-SGQ4N5FS.js.map → chunk-JEI6JJNI.js.map} +0 -0
  183. /package/dist/{chunk-BN4HRYAZ.js.map → chunk-JQ2AX4T5.js.map} +0 -0
  184. /package/dist/{chunk-OBPVWOSQ.js.map → chunk-KD4HGBJV.js.map} +0 -0
  185. /package/dist/{chunk-QADFHRQM.js.map → chunk-KYRDJI5O.js.map} +0 -0
  186. /package/dist/{chunk-JTR75MKH.js.map → chunk-LLYIMSQQ.js.map} +0 -0
  187. /package/dist/{chunk-GP3UWP22.js.map → chunk-LRRX57UA.js.map} +0 -0
  188. /package/dist/{chunk-OLSARBZU.js.map → chunk-LXRTP3AQ.js.map} +0 -0
  189. /package/dist/{chunk-EBKCYQ2D.js.map → chunk-NBXFCQX4.js.map} +0 -0
  190. /package/dist/{chunk-NEX7JCMO.js.map → chunk-OWHP3H5C.js.map} +0 -0
  191. /package/dist/{chunk-WO4T4OD5.js.map → chunk-P4JO3H6R.js.map} +0 -0
  192. /package/dist/{chunk-CCDP6EPB.js.map → chunk-PWPYO73B.js.map} +0 -0
  193. /package/dist/{chunk-56IIVAEO.js.map → chunk-Q2SEJMP2.js.map} +0 -0
  194. /package/dist/{chunk-JIDLU57U.js.map → chunk-Q36YXK77.js.map} +0 -0
  195. /package/dist/{chunk-KPXM4WO6.js.map → chunk-Q5YJCVJY.js.map} +0 -0
  196. /package/dist/{chunk-JYV4JJV2.js.map → chunk-QGIBI6GL.js.map} +0 -0
  197. /package/dist/{chunk-DGBIHDVK.js.map → chunk-RBTVFPHF.js.map} +0 -0
  198. /package/dist/{chunk-6R6Q3MRN.js.map → chunk-RQ4ZI4ZI.js.map} +0 -0
  199. /package/dist/{chunk-FO6RNKKW.js.map → chunk-S7GIXBXV.js.map} +0 -0
  200. /package/dist/{chunk-3XKESW5E.js.map → chunk-SF2ZIRD6.js.map} +0 -0
  201. /package/dist/{chunk-TE6LH6J2.js.map → chunk-SFBYQMZM.js.map} +0 -0
  202. /package/dist/{chunk-RZPOZPZU.js.map → chunk-SU6SGWXM.js.map} +0 -0
  203. /package/dist/{chunk-6L3DKWRY.js.map → chunk-T2MOJF76.js.map} +0 -0
  204. /package/dist/{chunk-SKM35Y4Q.js.map → chunk-TS5XLBZR.js.map} +0 -0
  205. /package/dist/{chunk-HFUAFR6B.js.map → chunk-TWPK7KUJ.js.map} +0 -0
  206. /package/dist/{chunk-6M2I3DKF.js.map → chunk-WK7ULBTP.js.map} +0 -0
  207. /package/dist/{chunk-IF6WNGAK.js.map → chunk-WUHEP3HH.js.map} +0 -0
  208. /package/dist/{chunk-NQSO4UAH.js.map → chunk-WYUAEZSC.js.map} +0 -0
  209. /package/dist/{chunk-Y6VZQGGH.js.map → chunk-YGK2HMLR.js.map} +0 -0
  210. /package/dist/{chunk-N5PLUFH2.js.map → chunk-ZFG5EBI3.js.map} +0 -0
  211. /package/dist/{chunk-KFRPNHWR.js.map → chunk-ZHDSUZQU.js.map} +0 -0
  212. /package/dist/{chunk-C25JXSOR.js.map → chunk-ZNWSG7XC.js.map} +0 -0
  213. /package/dist/{classified-marker-EOOSMWFC.js.map → classified-marker-LE54HWSX.js.map} +0 -0
  214. /package/dist/{collection-facade-TTRF5NFJ.js.map → collection-facade-DO2AABZT.js.map} +0 -0
  215. /package/dist/{dead-filter-6DYY7S64.js.map → dead-filter-V3LVWYEJ.js.map} +0 -0
  216. /package/dist/{delegation-ONOZVPIP.js.map → delegation-JDUMAF6L.js.map} +0 -0
  217. /package/dist/{derive-IGGVSUPH.js.map → derive-ZPGVLE2Q.js.map} +0 -0
  218. /package/dist/{dispatch-RPTLK7LJ.js.map → dispatch-6TV3DGO6.js.map} +0 -0
  219. /package/dist/{dispatch-7T45NN7C.js.map → dispatch-W7NWQ637.js.map} +0 -0
  220. /package/dist/{enclave-CLJVSDFG.js.map → enclave-YFCLPIDR.js.map} +0 -0
  221. /package/dist/{executor-XZYM4KHT.js.map → executor-FPHKWDWT.js.map} +0 -0
  222. /package/dist/{export-accessible-24XCCD3A.js.map → export-accessible-EKM3HGB2.js.map} +0 -0
  223. /package/dist/{extract-partition-H2TPEEOF.js.map → extract-partition-LS4ET5A6.js.map} +0 -0
  224. /package/dist/{fanout-sidecar-TV7CXAJ6.js.map → fanout-sidecar-273RDMYS.js.map} +0 -0
  225. /package/dist/{issue-55HJE7JF.js.map → issue-LIA7FXBJ.js.map} +0 -0
  226. /package/dist/{ledger-XY6NP3J2.js.map → ledger-XE7JF2I2.js.map} +0 -0
  227. /package/dist/{liberate-LXOJ2EMB.js.map → liberate-WZ3RHVKW.js.map} +0 -0
  228. /package/dist/{link-set-POQB7BU5.js.map → link-set-CGYC3OH5.js.map} +0 -0
  229. /package/dist/{noydb-FHZ4ZDBP.js.map → noydb-ZLPVCDES.js.map} +0 -0
  230. /package/dist/{post-register-URQANI3B.js.map → post-register-LY35EDTJ.js.map} +0 -0
  231. /package/dist/{register-5W6CG4RM.js.map → register-6RIBIT3I.js.map} +0 -0
  232. /package/dist/{registry-MCSGBZXI.js.map → registry-MUSL4AW6.js.map} +0 -0
  233. /package/dist/{registry-UJFP3NWF.js.map → registry-RON4WHAP.js.map} +0 -0
  234. /package/dist/{request-withdrawal-IWYDM4SO.js.map → request-withdrawal-FT3ORAWN.js.map} +0 -0
  235. /package/dist/{reveal-BXZGWIOP.js.map → reveal-T34ADTPY.js.map} +0 -0
  236. /package/dist/{revoke-TINYPHYY.js.map → revoke-HC7WG3HE.js.map} +0 -0
  237. /package/dist/{signer-WMZKCNKC.js.map → signer-CTWOH6KT.js.map} +0 -0
  238. /package/dist/{stale-JOE7GBAE.js.map → stale-T3V7XEOB.js.map} +0 -0
  239. /package/dist/{storage-B3WBKXKT.js.map → storage-LLNLPWWB.js.map} +0 -0
  240. /package/dist/{store-coordination-provider-5LX2UFU2.js.map → store-coordination-provider-AHGFEMFA.js.map} +0 -0
  241. /package/dist/{walk-6OHAWGBS.js.map → walk-G3NFEP5L.js.map} +0 -0
  242. /package/dist/{with-party → with-sync}/tab-coordination.d.ts +0 -0
  243. /package/dist/{with-party → with-sync}/tab-write-relay.d.ts +0 -0
  244. /package/dist/{withdraw-accessible-DEUCOO4F.js.map → withdraw-accessible-ANSVG6XG.js.map} +0 -0
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  UserApi,
3
3
  createUserApi
4
- } from "./chunk-3XKESW5E.js";
5
- import "./chunk-WZ3NCMK6.js";
6
- import "./chunk-RZPOZPZU.js";
7
- import "./chunk-VH6SOCXH.js";
4
+ } from "./chunk-SF2ZIRD6.js";
5
+ import "./chunk-2BET5QTS.js";
6
+ import "./chunk-SU6SGWXM.js";
7
+ import "./chunk-EFJAAFBW.js";
8
8
  import "./chunk-35NMVJ7I.js";
9
9
  import "./chunk-NFZGZ4AK.js";
10
10
  import "./chunk-QJNCB5SK.js";
11
11
  import "./chunk-LP7BEXCT.js";
12
12
  import "./chunk-AKKRXT23.js";
13
- import "./chunk-GZACYEOB.js";
13
+ import "./chunk-77AEMXFA.js";
14
14
  import "./chunk-QZWTRENR.js";
15
15
  import "./chunk-PZ5AY32C.js";
16
16
  export {
17
17
  UserApi,
18
18
  createUserApi
19
19
  };
20
- //# sourceMappingURL=api-3NKVNZPM.js.map
20
+ //# sourceMappingURL=api-SI2IVBQO.js.map
@@ -1,27 +1,27 @@
1
1
  import {
2
2
  issueAttestationCore
3
- } from "../chunk-DGBIHDVK.js";
3
+ } from "../chunk-RBTVFPHF.js";
4
4
  import {
5
5
  getRevokedDocIdsCore,
6
6
  publishRevocationListCore,
7
7
  revokeDocCore,
8
8
  unrevokeDocCore
9
- } from "../chunk-KW42W6SV.js";
9
+ } from "../chunk-HLKXPJ4V.js";
10
10
  import {
11
11
  ATTESTATIONS_COLLECTION
12
- } from "../chunk-DZAF24PG.js";
12
+ } from "../chunk-IFOH7RBI.js";
13
13
  import {
14
14
  NO_ATTESTATION
15
15
  } from "../chunk-5GQEU4DN.js";
16
16
  import "../chunk-ZJADGNYF.js";
17
- import "../chunk-RZPOZPZU.js";
18
- import "../chunk-VH6SOCXH.js";
17
+ import "../chunk-SU6SGWXM.js";
18
+ import "../chunk-EFJAAFBW.js";
19
19
  import "../chunk-35NMVJ7I.js";
20
20
  import "../chunk-NFZGZ4AK.js";
21
21
  import "../chunk-QJNCB5SK.js";
22
22
  import "../chunk-LP7BEXCT.js";
23
23
  import "../chunk-AKKRXT23.js";
24
- import "../chunk-GZACYEOB.js";
24
+ import "../chunk-77AEMXFA.js";
25
25
  import {
26
26
  AttestationError,
27
27
  AttestationNotEnabledError
@@ -32,11 +32,11 @@ import "../chunk-PZ5AY32C.js";
32
32
  function withAttestation() {
33
33
  return {
34
34
  async issueAttestation(ctx, args) {
35
- const { issueAttestationCore: issueAttestationCore2 } = await import("../issue-55HJE7JF.js");
35
+ const { issueAttestationCore: issueAttestationCore2 } = await import("../issue-LIA7FXBJ.js");
36
36
  return issueAttestationCore2(ctx, args);
37
37
  },
38
38
  async getDocumentSigningPublicKey(deps) {
39
- const { loadSigner, loadOrCreateSigner } = await import("../signer-WMZKCNKC.js");
39
+ const { loadSigner, loadOrCreateSigner } = await import("../signer-CTWOH6KT.js");
40
40
  const existing = await loadSigner(deps.adapter, deps.vault, deps.getDEK);
41
41
  if (existing) return { keyId: existing.keyId, publicKeyB64: existing.publicKeyB64 };
42
42
  if (deps.role !== "owner") {
@@ -46,19 +46,19 @@ function withAttestation() {
46
46
  return { keyId: signer.keyId, publicKeyB64: signer.publicKeyB64 };
47
47
  },
48
48
  async revokeAttestation(ctx, docId) {
49
- const { revokeDocCore: revokeDocCore2 } = await import("../revoke-TINYPHYY.js");
49
+ const { revokeDocCore: revokeDocCore2 } = await import("../revoke-HC7WG3HE.js");
50
50
  return revokeDocCore2(ctx, docId);
51
51
  },
52
52
  async unrevokeAttestation(ctx, docId) {
53
- const { unrevokeDocCore: unrevokeDocCore2 } = await import("../revoke-TINYPHYY.js");
53
+ const { unrevokeDocCore: unrevokeDocCore2 } = await import("../revoke-HC7WG3HE.js");
54
54
  return unrevokeDocCore2(ctx, docId);
55
55
  },
56
56
  async getRevokedDocIds(ctx) {
57
- const { getRevokedDocIdsCore: getRevokedDocIdsCore2 } = await import("../revoke-TINYPHYY.js");
57
+ const { getRevokedDocIdsCore: getRevokedDocIdsCore2 } = await import("../revoke-HC7WG3HE.js");
58
58
  return getRevokedDocIdsCore2(ctx);
59
59
  },
60
60
  async publishRevocationList(ctx) {
61
- const { publishRevocationListCore: publishRevocationListCore2 } = await import("../revoke-TINYPHYY.js");
61
+ const { publishRevocationListCore: publishRevocationListCore2 } = await import("../revoke-HC7WG3HE.js");
62
62
  return publishRevocationListCore2(ctx);
63
63
  }
64
64
  };
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  SCHEMAS_COLLECTION
3
- } from "./chunk-OBPVWOSQ.js";
3
+ } from "./chunk-KD4HGBJV.js";
4
4
  import {
5
5
  SEQUENCE_COLLECTION
6
- } from "./chunk-EBKCYQ2D.js";
6
+ } from "./chunk-NBXFCQX4.js";
7
7
  import {
8
8
  LEDGER_COLLECTION,
9
9
  LEDGER_DELTAS_COLLECTION
10
10
  } from "./chunk-I7FD46FF.js";
11
- import "./chunk-RZPOZPZU.js";
12
- import "./chunk-VH6SOCXH.js";
11
+ import "./chunk-SU6SGWXM.js";
12
+ import "./chunk-EFJAAFBW.js";
13
13
  import "./chunk-35NMVJ7I.js";
14
14
  import "./chunk-NFZGZ4AK.js";
15
15
  import "./chunk-QJNCB5SK.js";
@@ -17,7 +17,7 @@ import "./chunk-LP7BEXCT.js";
17
17
  import "./chunk-AKKRXT23.js";
18
18
  import {
19
19
  NOYDB_BACKUP_VERSION
20
- } from "./chunk-GZACYEOB.js";
20
+ } from "./chunk-77AEMXFA.js";
21
21
  import {
22
22
  BackupCorruptedError,
23
23
  BackupLedgerError
@@ -239,4 +239,4 @@ export {
239
239
  loadVault,
240
240
  verifyBackupIntegrity
241
241
  };
242
- //# sourceMappingURL=backup-PTSVXDDW.js.map
242
+ //# sourceMappingURL=backup-X7F3TCFV.js.map
@@ -9,7 +9,7 @@ import {
9
9
  NO_BLOBS,
10
10
  createExportBlobsHandle,
11
11
  runCompaction
12
- } from "../chunk-IF6WNGAK.js";
12
+ } from "../chunk-WUHEP3HH.js";
13
13
  import {
14
14
  BLOB_CHUNKS_COLLECTION,
15
15
  BLOB_COLLECTION,
@@ -24,18 +24,18 @@ import {
24
24
  detectMimeType,
25
25
  isPreCompressed,
26
26
  memoryBlobPinStore
27
- } from "../chunk-NQSO4UAH.js";
27
+ } from "../chunk-WYUAEZSC.js";
28
28
  import "../chunk-6UBZ6I5Z.js";
29
29
  import "../chunk-PTHKZWEH.js";
30
30
  import "../chunk-JYJFGD2H.js";
31
- import "../chunk-RZPOZPZU.js";
32
- import "../chunk-VH6SOCXH.js";
31
+ import "../chunk-SU6SGWXM.js";
32
+ import "../chunk-EFJAAFBW.js";
33
33
  import "../chunk-35NMVJ7I.js";
34
34
  import "../chunk-NFZGZ4AK.js";
35
35
  import "../chunk-QJNCB5SK.js";
36
36
  import "../chunk-LP7BEXCT.js";
37
37
  import "../chunk-AKKRXT23.js";
38
- import "../chunk-GZACYEOB.js";
38
+ import "../chunk-77AEMXFA.js";
39
39
  import {
40
40
  BlobOfflineError
41
41
  } from "../chunk-QZWTRENR.js";
@@ -4,14 +4,14 @@ import {
4
4
  import {
5
5
  issueChallenge,
6
6
  verifyBrokerProof
7
- } from "../chunk-RZPOZPZU.js";
8
- import "../chunk-VH6SOCXH.js";
7
+ } from "../chunk-SU6SGWXM.js";
8
+ import "../chunk-EFJAAFBW.js";
9
9
  import "../chunk-35NMVJ7I.js";
10
10
  import "../chunk-NFZGZ4AK.js";
11
11
  import "../chunk-QJNCB5SK.js";
12
12
  import "../chunk-LP7BEXCT.js";
13
13
  import "../chunk-AKKRXT23.js";
14
- import "../chunk-GZACYEOB.js";
14
+ import "../chunk-77AEMXFA.js";
15
15
  import {
16
16
  BrokerEnrolmentError,
17
17
  BrokerNotEnabledError,
@@ -30,7 +30,7 @@ function withBroker(config) {
30
30
  const cache = /* @__PURE__ */ new Map();
31
31
  return {
32
32
  async enroll(ctx) {
33
- const { enrollSeed } = await import("../seed-F7YYQTRC.js");
33
+ const { enrollSeed } = await import("../seed-JOV54PB3.js");
34
34
  return enrollSeed({ ...ctx, config });
35
35
  },
36
36
  async rotate(ctx) {
@@ -39,7 +39,7 @@ function withBroker(config) {
39
39
  const inFlight = scoped.map(([, e]) => e.inFlight).filter((p) => p !== void 0);
40
40
  await Promise.allSettled(inFlight);
41
41
  for (const [key] of scoped) cache.delete(key);
42
- const { rotateSeed } = await import("../seed-F7YYQTRC.js");
42
+ const { rotateSeed } = await import("../seed-JOV54PB3.js");
43
43
  return rotateSeed({ ...ctx, config });
44
44
  },
45
45
  credentialSource(ctx, profile) {
@@ -56,7 +56,7 @@ function withBroker(config) {
56
56
  const skewMs = config.skewMs ?? DEFAULT_SKEW_MS;
57
57
  const capturedEntry = entry;
58
58
  const inFlight = (async () => {
59
- const { mintStoreCredentials } = await import("../seed-F7YYQTRC.js");
59
+ const { mintStoreCredentials } = await import("../seed-JOV54PB3.js");
60
60
  const creds = await mintStoreCredentials({ ...ctx, config }, profile);
61
61
  capturedEntry.cached = { creds, validUntil: cacheFloor(creds, skewMs) };
62
62
  return creds;
@@ -6,7 +6,7 @@ import {
6
6
  diffVault,
7
7
  unsealDeks,
8
8
  withCargo
9
- } from "../chunk-JTR75MKH.js";
9
+ } from "../chunk-LLYIMSQQ.js";
10
10
  import {
11
11
  NO_CARGO,
12
12
  isQuorum,
@@ -15,24 +15,24 @@ import {
15
15
  import {
16
16
  extractPartition,
17
17
  walkClosure
18
- } from "../chunk-BYFXLDVV.js";
18
+ } from "../chunk-3ECU57YH.js";
19
19
  import {
20
20
  createDeedOwner,
21
21
  isDeedVault,
22
22
  liberateVault,
23
23
  loadDeedMarker
24
- } from "../chunk-TIVK6PRK.js";
25
- import "../chunk-OLIWCCFM.js";
26
- import "../chunk-TE6LH6J2.js";
27
- import "../chunk-WO4T4OD5.js";
28
- import "../chunk-OBPVWOSQ.js";
24
+ } from "../chunk-ERGECZEI.js";
25
+ import "../chunk-CLE3TMIS.js";
26
+ import "../chunk-SFBYQMZM.js";
27
+ import "../chunk-P4JO3H6R.js";
28
+ import "../chunk-KD4HGBJV.js";
29
+ import {
30
+ CustodyApi
31
+ } from "../chunk-TS5XLBZR.js";
29
32
  import {
30
33
  fuseRetrieval
31
34
  } from "../chunk-AURFOK3D.js";
32
- import {
33
- CustodyApi
34
- } from "../chunk-SKM35Y4Q.js";
35
- import "../chunk-NQSO4UAH.js";
35
+ import "../chunk-WYUAEZSC.js";
36
36
  import {
37
37
  groupAndReduce,
38
38
  reduceRecords
@@ -42,23 +42,23 @@ import "../chunk-CADUYBQD.js";
42
42
  import {
43
43
  readPath
44
44
  } from "../chunk-IGJCYUT5.js";
45
- import "../chunk-SGQ4N5FS.js";
46
- import "../chunk-JIDLU57U.js";
45
+ import "../chunk-JEI6JJNI.js";
46
+ import "../chunk-Q36YXK77.js";
47
47
  import "../chunk-UADPR6F4.js";
48
48
  import "../chunk-6UBZ6I5Z.js";
49
- import "../chunk-KPXM4WO6.js";
50
- import "../chunk-WZ3NCMK6.js";
49
+ import "../chunk-Q5YJCVJY.js";
50
+ import "../chunk-2BET5QTS.js";
51
51
  import "../chunk-PTHKZWEH.js";
52
52
  import {
53
53
  generateULID
54
54
  } from "../chunk-ZJADGNYF.js";
55
55
  import "../chunk-SVLR4POP.js";
56
- import "../chunk-Y6VZQGGH.js";
56
+ import "../chunk-YGK2HMLR.js";
57
57
  import "../chunk-I7FD46FF.js";
58
58
  import "../chunk-JYJFGD2H.js";
59
- import "../chunk-ISRKW4YN.js";
60
- import "../chunk-RZPOZPZU.js";
61
- import "../chunk-VH6SOCXH.js";
59
+ import "../chunk-DQZXPGGZ.js";
60
+ import "../chunk-SU6SGWXM.js";
61
+ import "../chunk-EFJAAFBW.js";
62
62
  import "../chunk-35NMVJ7I.js";
63
63
  import "../chunk-NFZGZ4AK.js";
64
64
  import "../chunk-QJNCB5SK.js";
@@ -66,7 +66,7 @@ import "../chunk-LP7BEXCT.js";
66
66
  import {
67
67
  sha256Hex
68
68
  } from "../chunk-AKKRXT23.js";
69
- import "../chunk-GZACYEOB.js";
69
+ import "../chunk-77AEMXFA.js";
70
70
  import {
71
71
  AdoptionStateError,
72
72
  CargoNotEnabledError,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  openEnvelopeJson
3
- } from "./chunk-RZPOZPZU.js";
3
+ } from "./chunk-SU6SGWXM.js";
4
4
  import {
5
5
  encrypt
6
6
  } from "./chunk-AKKRXT23.js";
7
7
  import {
8
8
  NOYDB_FORMAT_VERSION
9
- } from "./chunk-GZACYEOB.js";
9
+ } from "./chunk-77AEMXFA.js";
10
10
  import {
11
11
  ConflictError,
12
12
  USER_ENVELOPE_COLLECTION,
@@ -148,4 +148,4 @@ export {
148
148
  deleteUserEnvelope,
149
149
  listUserEnvelopeIds
150
150
  };
151
- //# sourceMappingURL=chunk-WZ3NCMK6.js.map
151
+ //# sourceMappingURL=chunk-2BET5QTS.js.map
@@ -12,20 +12,31 @@ function wrapPodStore(bundle, options) {
12
12
  const versions = /* @__PURE__ */ new Map();
13
13
  const loaded = /* @__PURE__ */ new Set();
14
14
  let batchDepth = 0;
15
+ const loading = /* @__PURE__ */ new Map();
15
16
  async function load(vault) {
16
17
  if (loaded.has(vault)) return snapshots.get(vault);
17
- const result = await bundle.readBundle(vault);
18
- if (result) {
19
- const text = new TextDecoder().decode(result.bytes);
20
- const format = JSON.parse(text);
21
- snapshots.set(vault, format.data);
22
- versions.set(vault, result.version);
23
- } else {
24
- snapshots.set(vault, {});
25
- versions.set(vault, null);
18
+ const inFlight = loading.get(vault);
19
+ if (inFlight) return inFlight;
20
+ const pending = (async () => {
21
+ const result = await bundle.readBundle(vault);
22
+ if (result) {
23
+ const text = new TextDecoder().decode(result.bytes);
24
+ const format = JSON.parse(text);
25
+ snapshots.set(vault, format.data);
26
+ versions.set(vault, result.version);
27
+ } else {
28
+ snapshots.set(vault, {});
29
+ versions.set(vault, null);
30
+ }
31
+ loaded.add(vault);
32
+ return snapshots.get(vault);
33
+ })();
34
+ loading.set(vault, pending);
35
+ try {
36
+ return await pending;
37
+ } finally {
38
+ loading.delete(vault);
26
39
  }
27
- loaded.add(vault);
28
- return snapshots.get(vault);
29
40
  }
30
41
  async function flush(vault) {
31
42
  const snapshot = snapshots.get(vault) ?? {};
@@ -59,15 +70,22 @@ function wrapPodStore(bundle, options) {
59
70
  }
60
71
  }
61
72
  }
73
+ const flushChain = /* @__PURE__ */ new Map();
74
+ function serialFlush(vault) {
75
+ const prev = flushChain.get(vault) ?? Promise.resolve();
76
+ const next = prev.then(() => flush(vault), () => flush(vault));
77
+ flushChain.set(vault, next);
78
+ return next;
79
+ }
62
80
  async function maybeFlush(vault) {
63
81
  if (autoFlush && batchDepth === 0) {
64
- await flush(vault);
82
+ await serialFlush(vault);
65
83
  }
66
84
  }
67
85
  const store = {
68
86
  name: bundle.name ?? "bundle",
69
87
  async flush(vaultId) {
70
- await flush(vaultId);
88
+ await serialFlush(vaultId);
71
89
  },
72
90
  async batch(vaultId, fn) {
73
91
  await load(vaultId);
@@ -77,7 +95,7 @@ function wrapPodStore(bundle, options) {
77
95
  } finally {
78
96
  batchDepth--;
79
97
  }
80
- await flush(vaultId);
98
+ await serialFlush(vaultId);
81
99
  },
82
100
  async get(vault, collection, id) {
83
101
  const snap = await load(vault);
@@ -111,12 +129,18 @@ function wrapPodStore(bundle, options) {
111
129
  return Object.keys(snap[collection] ?? {});
112
130
  },
113
131
  async loadAll(vault) {
114
- return await load(vault);
132
+ const snap = await load(vault);
133
+ const out = {};
134
+ for (const [collection, records] of Object.entries(snap)) {
135
+ if (collection.startsWith("_")) continue;
136
+ out[collection] = { ...records };
137
+ }
138
+ return out;
115
139
  },
116
140
  async saveAll(vault, data) {
117
141
  snapshots.set(vault, data);
118
142
  loaded.add(vault);
119
- await flush(vault);
143
+ await serialFlush(vault);
120
144
  }
121
145
  };
122
146
  return store;
@@ -152,4 +176,4 @@ export {
152
176
  wrapBundleStore,
153
177
  createBundleStore
154
178
  };
155
- //# sourceMappingURL=chunk-Y6B6HVKC.js.map
179
+ //# sourceMappingURL=chunk-2J6UEN2V.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/with-pod/pod-store.ts"],"sourcesContent":["import type { NoydbStore, NoydbPodStore, VaultSnapshot, EncryptedEnvelope } from '../kernel/types.js'\nimport { ConflictError, PodVersionConflictError } from '../kernel/errors.js'\n\n// ─── Bundle format ─────────────────────────────────────────────────────\n\nconst BUNDLE_STORE_VERSION = 1 as const\n\n/**\n * Wire format written by `wrapPodStore`. A JSON-serialised object that\n * contains the entire `VaultSnapshot` (all encrypted envelopes) plus a small\n * header for integrity checking. The envelopes inside are already AES-GCM\n * encrypted by core — the bundle bytes themselves are not additionally\n * encrypted, but they are safe to store on untrusted blob hosts because\n * every record inside is already ciphertext.\n *\n * @internal\n */\ninterface BundleStoreData {\n readonly _noydb_bundle_store: typeof BUNDLE_STORE_VERSION\n readonly vault: string\n readonly ts: string\n readonly data: VaultSnapshot\n}\n\n// ─── Options ───────────────────────────────────────────────────────────\n\nexport interface WrapPodStoreOptions {\n /**\n * When `true` (default), every `put()` and `delete()` flushes the full\n * vault snapshot to the bundle backend. Set to `false` for bulk operations\n * and call `store.flush(vaultId)` manually.\n */\n autoFlush?: boolean\n}\n\n// ─── Extended NoydbStore with flush/batch ───────────────────────────────\n\nexport interface WrappedPodNoydbStore extends NoydbStore {\n /** Manually flush the in-memory snapshot to the bundle backend. */\n flush(vaultId: string): Promise<void>\n /**\n * Run a batch of mutations without flushing until the callback completes.\n * A single flush is performed at the end.\n */\n batch(vaultId: string, fn: () => Promise<void>): Promise<void>\n}\n\n// ─── wrapPodStore ───────────────────────────────────────────────────\n\nconst MAX_CONFLICT_RETRIES = 3\n\n/**\n * Convert a `NoydbPodStore` (blob-oriented read/write with OCC) into the\n * standard six-method `NoydbStore` interface expected by `createNoydb({ store })`.\n *\n * Bundle stores operate on the entire vault as a single serialised unit —\n * ideal for backends like Google Drive, WebDAV, or iCloud Drive that work\n * best with whole-file I/O rather than per-record KV operations.\n *\n * ## Optimistic concurrency\n *\n * The wrapper tracks the `version` token from the last `readBundle` and\n * passes it as `expectedVersion` on every flush. On\n * `PodVersionConflictError`, it re-reads, merges the remote snapshot\n * (last-write-wins per record key), and retries (max 3 attempts).\n *\n * ## Flush modes\n *\n * By default, flushes on every mutation (O(vault size) per write). Options:\n * - `autoFlush: false` + explicit `store.flush(vaultId)` calls\n * - `store.batch(vaultId, async () => { ... })` — defers flush until end\n * - Pair with `syncPolicy: { push: { mode: 'debounce' } }` from \n */\nexport function wrapPodStore(\n bundle: NoydbPodStore,\n options?: WrapPodStoreOptions,\n): WrappedPodNoydbStore {\n const autoFlush = options?.autoFlush !== false\n\n // Per-vault state\n const snapshots = new Map<string, VaultSnapshot>()\n const versions = new Map<string, string | null>()\n const loaded = new Set<string>()\n\n // Batch mode: when > 0, suppress auto-flush\n let batchDepth = 0\n\n // #908 — in-flight loads, keyed by vault. Without this, every concurrent\n // caller issued its own `readBundle` and then REPLACED `snapshots` with a\n // freshly parsed object — orphaning the mutations earlier callers had\n // already made to the object they were handed. 100 racing puts kept 1.\n const loading = new Map<string, Promise<VaultSnapshot>>()\n\n async function load(vault: string): Promise<VaultSnapshot> {\n if (loaded.has(vault)) return snapshots.get(vault)!\n\n const inFlight = loading.get(vault)\n if (inFlight) return inFlight\n\n const pending = (async () => {\n const result = await bundle.readBundle(vault)\n if (result) {\n const text = new TextDecoder().decode(result.bytes)\n const format = JSON.parse(text) as BundleStoreData\n snapshots.set(vault, format.data)\n versions.set(vault, result.version)\n } else {\n snapshots.set(vault, {})\n versions.set(vault, null)\n }\n\n loaded.add(vault)\n return snapshots.get(vault)!\n })()\n\n loading.set(vault, pending)\n try {\n return await pending\n } finally {\n // Clear on failure too, so a transient read error does not poison\n // every later load of this vault with a rejected promise.\n loading.delete(vault)\n }\n }\n\n async function flush(vault: string): Promise<void> {\n const snapshot = snapshots.get(vault) ?? {}\n const format: BundleStoreData = {\n _noydb_bundle_store: BUNDLE_STORE_VERSION,\n vault,\n ts: new Date().toISOString(),\n data: snapshot,\n }\n const bytes = new TextEncoder().encode(JSON.stringify(format))\n const expectedVersion = versions.get(vault) ?? null\n\n for (let attempt = 0; attempt < MAX_CONFLICT_RETRIES; attempt++) {\n try {\n const { version: newVersion } = await bundle.writeBundle(vault, bytes, expectedVersion)\n versions.set(vault, newVersion)\n return\n } catch (err) {\n if (err instanceof PodVersionConflictError && attempt < MAX_CONFLICT_RETRIES - 1) {\n // Pull remote, merge (last-write-wins by record key), retry\n const remote = await bundle.readBundle(vault)\n if (remote) {\n const remoteText = new TextDecoder().decode(remote.bytes)\n const remoteFormat = JSON.parse(remoteText) as BundleStoreData\n const localSnap = snapshots.get(vault) ?? {}\n const mergedSnap = mergeSnapshots(remoteFormat.data, localSnap)\n snapshots.set(vault, mergedSnap)\n versions.set(vault, remote.version)\n }\n // Re-encode with merged data for the retry\n continue\n }\n throw err\n }\n }\n }\n\n // #908 — one flush at a time per vault. `flush` reads and writes the vault's\n // version token, so concurrent flushes race: each sends the same\n // `expectedVersion`, the losers take the conflict/merge path, and with enough\n // of them the retry budget is exhausted and the error surfaces to a caller\n // whose write was perfectly valid. Serialising makes every flush see the\n // token its predecessor produced.\n const flushChain = new Map<string, Promise<void>>()\n\n function serialFlush(vault: string): Promise<void> {\n const prev = flushChain.get(vault) ?? Promise.resolve()\n // Chain past a rejection as well — one failed flush must not wedge every\n // subsequent write to this vault.\n const next = prev.then(() => flush(vault), () => flush(vault))\n flushChain.set(vault, next)\n return next\n }\n\n async function maybeFlush(vault: string): Promise<void> {\n if (autoFlush && batchDepth === 0) {\n await serialFlush(vault)\n }\n }\n\n const store: WrappedPodNoydbStore = {\n name: bundle.name ?? 'bundle',\n\n async flush(vaultId: string): Promise<void> {\n await serialFlush(vaultId)\n },\n\n async batch(vaultId: string, fn: () => Promise<void>): Promise<void> {\n await load(vaultId) // ensure loaded before batch\n batchDepth++\n try {\n await fn()\n } finally {\n batchDepth--\n }\n await serialFlush(vaultId)\n },\n\n async get(vault: string, collection: string, id: string): Promise<EncryptedEnvelope | null> {\n const snap = await load(vault)\n return snap[collection]?.[id] ?? null\n },\n\n async put(\n vault: string,\n collection: string,\n id: string,\n envelope: EncryptedEnvelope,\n expectedVersion?: number,\n ): Promise<void> {\n const snap = await load(vault)\n\n if (expectedVersion !== undefined) {\n const current = snap[collection]?.[id]\n const currentVersion = current?._v ?? 0\n if (currentVersion !== expectedVersion) {\n throw new ConflictError(\n currentVersion,\n `Expected version ${expectedVersion} but found ${currentVersion} on ${collection}/${id}`,\n )\n }\n }\n\n snap[collection] ??= {}\n snap[collection][id] = envelope\n await maybeFlush(vault)\n },\n\n async delete(vault: string, collection: string, id: string): Promise<void> {\n const snap = await load(vault)\n if (snap[collection]) {\n delete snap[collection][id]\n await maybeFlush(vault)\n }\n },\n\n async list(vault: string, collection: string): Promise<string[]> {\n const snap = await load(vault)\n return Object.keys(snap[collection] ?? {})\n },\n\n async loadAll(vault: string): Promise<VaultSnapshot> {\n const snap = await load(vault)\n // #908 — two contract fixes in one place:\n // 1. internal collections (`_keyring`, `_sync`) are the vault's own\n // bookkeeping and must not appear in a snapshot — `@noy-db/to-file`\n // sets the reference behaviour with this same `_`-prefix rule;\n // 2. copy rather than hand out the live cache, which let a caller\n // mutating the result silently rewrite the wrapper's own state.\n // `get()`/`list()` still serve internal collections; this is about what\n // a *snapshot* claims, not about hiding data.\n const out: VaultSnapshot = {}\n for (const [collection, records] of Object.entries(snap)) {\n if (collection.startsWith('_')) continue\n out[collection] = { ...records }\n }\n return out\n },\n\n async saveAll(vault: string, data: VaultSnapshot): Promise<void> {\n snapshots.set(vault, data)\n loaded.add(vault)\n await serialFlush(vault)\n },\n }\n\n return store\n}\n\n// ─── Snapshot merge (last-write-wins per record) ────────────────────────\n\nfunction mergeSnapshots(remote: VaultSnapshot, local: VaultSnapshot): VaultSnapshot {\n const merged: VaultSnapshot = {}\n\n // Start with all remote collections\n for (const [coll, records] of Object.entries(remote)) {\n merged[coll] = { ...records }\n }\n\n // Overlay local collections — LWW by _ts per record\n for (const [coll, records] of Object.entries(local)) {\n if (!merged[coll]) {\n merged[coll] = { ...records }\n continue\n }\n for (const [id, envelope] of Object.entries(records)) {\n const existing = merged[coll][id]\n if (!existing || envelope._ts >= existing._ts) {\n merged[coll][id] = envelope\n }\n }\n }\n\n return merged\n}\n\n// ─── Factory helper ─────────────────────────────────────────────────────\n\n/**\n * Type-safe factory helper for `NoydbPodStore` implementations,\n * analogous to `createStore` for KV stores.\n */\nexport function createPodStore<TOptions>(\n factory: (options: TOptions) => NoydbPodStore,\n): (options: TOptions) => NoydbPodStore {\n return factory\n}\n\n// ─── Deprecated aliases (pre-rename compatibility) ──────────────────────\n\n/** @deprecated Use wrapPodStore. */\nexport const wrapBundleStore = wrapPodStore\n/** @deprecated Use createPodStore. */\nexport const createBundleStore = createPodStore\n/** @deprecated Use WrappedPodNoydbStore. */\nexport type WrappedBundleNoydbStore = WrappedPodNoydbStore\n/** @deprecated Use WrapPodStoreOptions. */\nexport type WrapBundleStoreOptions = WrapPodStoreOptions\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SCHEMAS_COLLECTION
3
- } from "./chunk-OBPVWOSQ.js";
3
+ } from "./chunk-KD4HGBJV.js";
4
4
  import {
5
5
  BLOB_CHUNKS_COLLECTION,
6
6
  BLOB_COLLECTION,
@@ -8,11 +8,11 @@ import {
8
8
  BLOB_INTENT_COLLECTION,
9
9
  BLOB_SLOTS_PREFIX,
10
10
  BLOB_VERSIONS_PREFIX
11
- } from "./chunk-NQSO4UAH.js";
11
+ } from "./chunk-WYUAEZSC.js";
12
12
  import {
13
13
  assembleBundleContainer,
14
14
  buildExtractedPartitionWrapper
15
- } from "./chunk-SGQ4N5FS.js";
15
+ } from "./chunk-JEI6JJNI.js";
16
16
  import {
17
17
  generateULID
18
18
  } from "./chunk-ZJADGNYF.js";
@@ -23,11 +23,11 @@ import {
23
23
  canonicalJson,
24
24
  envelopePayloadHash,
25
25
  hashEntry
26
- } from "./chunk-ISRKW4YN.js";
26
+ } from "./chunk-DQZXPGGZ.js";
27
27
  import {
28
28
  openEnvelopeJson,
29
29
  writeEnvelopeBody
30
- } from "./chunk-RZPOZPZU.js";
30
+ } from "./chunk-SU6SGWXM.js";
31
31
  import {
32
32
  bufferToBase64,
33
33
  decrypt,
@@ -41,7 +41,7 @@ import {
41
41
  import {
42
42
  NOYDB_BACKUP_VERSION,
43
43
  NOYDB_FORMAT_VERSION
44
- } from "./chunk-GZACYEOB.js";
44
+ } from "./chunk-77AEMXFA.js";
45
45
  import {
46
46
  PartitionExtractionError
47
47
  } from "./chunk-QZWTRENR.js";
@@ -492,4 +492,4 @@ export {
492
492
  extractPartition,
493
493
  extractPartitionCore
494
494
  };
495
- //# sourceMappingURL=chunk-BYFXLDVV.js.map
495
+ //# sourceMappingURL=chunk-3ECU57YH.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-6ZNSB3H6.js";
7
7
  import {
8
8
  loadPersistedSchema
9
- } from "./chunk-OBPVWOSQ.js";
9
+ } from "./chunk-KD4HGBJV.js";
10
10
 
11
11
  // src/with-shape/introspection/walk.ts
12
12
  var INTERNAL_PREFIX = "_";
@@ -229,4 +229,4 @@ function summariseAggregateOp(value) {
229
229
  export {
230
230
  dumpVaultSchema
231
231
  };
232
- //# sourceMappingURL=chunk-ZWBKDKXC.js.map
232
+ //# sourceMappingURL=chunk-467SWYT5.js.map