@noy-db/hub 0.4.0-pre.5 → 0.4.0-pre.7

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 (534) hide show
  1. package/dist/api-3NKVNZPM.js +20 -0
  2. package/dist/attestation/index.js +20 -20
  3. package/dist/{backup-YCHAC575.js → backup-PTSVXDDW.js} +13 -13
  4. package/dist/blobs/index.js +15 -12
  5. package/dist/blobs/index.js.map +1 -1
  6. package/dist/broker/index.js +12 -12
  7. package/dist/cargo/index.js +36 -36
  8. package/dist/{chunk-5WLDZZ6S.js → chunk-35NMVJ7I.js} +3 -3
  9. package/dist/{chunk-TNATF3HB.js → chunk-3HUYRN24.js} +4 -4
  10. package/dist/chunk-3HUYRN24.js.map +1 -0
  11. package/dist/{chunk-TNJVDG2B.js → chunk-3XKESW5E.js} +3 -3
  12. package/dist/{chunk-MUPZ6IZX.js → chunk-4JQK3L4V.js} +2 -2
  13. package/dist/{chunk-Z4D3YGAB.js → chunk-4ZKNC6A6.js} +2 -2
  14. package/dist/{chunk-ONB627HU.js → chunk-55LX6FSX.js} +2 -2
  15. package/dist/{chunk-QMZ5A6FQ.js → chunk-56IIVAEO.js} +2 -2
  16. package/dist/chunk-5D2ALSM5.js +19 -0
  17. package/dist/chunk-5D2ALSM5.js.map +1 -0
  18. package/dist/{chunk-FHHYCBBP.js → chunk-5DRROK5W.js} +2 -2
  19. package/dist/{chunk-GTNRMJYH.js → chunk-5GQEU4DN.js} +2 -2
  20. package/dist/{chunk-YQQPNXNO.js → chunk-6L3DKWRY.js} +6 -6
  21. package/dist/chunk-6LJY7X5A.js +18 -0
  22. package/dist/chunk-6LJY7X5A.js.map +1 -0
  23. package/dist/{chunk-M6QA2KK2.js → chunk-6M2I3DKF.js} +2 -2
  24. package/dist/{chunk-FTCGEUOY.js → chunk-6R6Q3MRN.js} +7 -7
  25. package/dist/{chunk-ZUDAK436.js → chunk-6UBZ6I5Z.js} +2 -2
  26. package/dist/{chunk-SEU6QHH4.js → chunk-6ZNSB3H6.js} +5 -17
  27. package/dist/chunk-6ZNSB3H6.js.map +1 -0
  28. package/dist/chunk-AFHQATY4.js +47 -0
  29. package/dist/chunk-AFHQATY4.js.map +1 -0
  30. package/dist/{chunk-7U6AB7DZ.js → chunk-AKKRXT23.js} +2 -2
  31. package/dist/{chunk-2PDBYF2O.js → chunk-AT2JJEKJ.js} +4 -4
  32. package/dist/chunk-AT2JJEKJ.js.map +1 -0
  33. package/dist/{chunk-OWLZONGX.js → chunk-BLBAQRBM.js} +2 -2
  34. package/dist/{chunk-QBOQI6PG.js → chunk-BN4HRYAZ.js} +2 -2
  35. package/dist/{chunk-QVGEVZ5F.js → chunk-BQ6DHN4I.js} +3 -3
  36. package/dist/{chunk-GP54LU5N.js → chunk-BYFXLDVV.js} +9 -9
  37. package/dist/{chunk-FIP7KI2P.js → chunk-C25JXSOR.js} +337 -21
  38. package/dist/chunk-C25JXSOR.js.map +1 -0
  39. package/dist/chunk-CADUYBQD.js +151 -0
  40. package/dist/chunk-CADUYBQD.js.map +1 -0
  41. package/dist/{chunk-HAPY7WFP.js → chunk-CCDP6EPB.js} +13 -355
  42. package/dist/chunk-CCDP6EPB.js.map +1 -0
  43. package/dist/{chunk-QRHEAZ2Q.js → chunk-CUZLNGD5.js} +1 -1
  44. package/dist/{chunk-YXIVUWDU.js → chunk-DGBIHDVK.js} +5 -5
  45. package/dist/chunk-DSDXAKIP.js +50 -0
  46. package/dist/chunk-DSDXAKIP.js.map +1 -0
  47. package/dist/{chunk-QZJEYZ4I.js → chunk-DZAF24PG.js} +5 -5
  48. package/dist/chunk-DZFQVICS.js +23 -0
  49. package/dist/chunk-DZFQVICS.js.map +1 -0
  50. package/dist/chunk-E23UGFVC.js +63 -0
  51. package/dist/chunk-E23UGFVC.js.map +1 -0
  52. package/dist/{chunk-X3MWEFPT.js → chunk-EBKCYQ2D.js} +14 -14
  53. package/dist/chunk-EBKCYQ2D.js.map +1 -0
  54. package/dist/chunk-EP5L47XV.js +22 -0
  55. package/dist/chunk-EP5L47XV.js.map +1 -0
  56. package/dist/{chunk-TMR64XPL.js → chunk-EZNTORXE.js} +2 -2
  57. package/dist/{chunk-JAMDDLIM.js → chunk-FMNU7IUG.js} +3 -3
  58. package/dist/{chunk-YXZNGHID.js → chunk-FO6RNKKW.js} +8 -46
  59. package/dist/chunk-FO6RNKKW.js.map +1 -0
  60. package/dist/{chunk-YMUGBZN2.js → chunk-FQ5CHJR7.js} +1 -1
  61. package/dist/chunk-FQ5CHJR7.js.map +1 -0
  62. package/dist/{chunk-YZN6NRTR.js → chunk-FRMW23UK.js} +13 -11
  63. package/dist/chunk-FRMW23UK.js.map +1 -0
  64. package/dist/chunk-GJW4HX2O.js +1 -0
  65. package/dist/{chunk-7BIJS6II.js → chunk-GP3UWP22.js} +4 -4
  66. package/dist/{chunk-YTW6ZIPD.js → chunk-GZACYEOB.js} +1 -1
  67. package/dist/chunk-GZACYEOB.js.map +1 -0
  68. package/dist/{chunk-JIHH26WQ.js → chunk-HFUAFR6B.js} +6 -6
  69. package/dist/{chunk-J5TEU77Q.js → chunk-IF6WNGAK.js} +59 -4
  70. package/dist/chunk-IF6WNGAK.js.map +1 -0
  71. package/dist/{chunk-ZX5FNWH7.js → chunk-IG6KUWBX.js} +2 -2
  72. package/dist/chunk-IG6KUWBX.js.map +1 -0
  73. package/dist/{chunk-CKUYQO2P.js → chunk-IMRB2C4O.js} +7 -5
  74. package/dist/chunk-IMRB2C4O.js.map +1 -0
  75. package/dist/{chunk-RWW3I3PO.js → chunk-ISRKW4YN.js} +3 -3
  76. package/dist/{chunk-P4NUJVWL.js → chunk-IXNCZTWA.js} +2 -2
  77. package/dist/{chunk-YFFEF6HR.js → chunk-JIDLU57U.js} +3 -3
  78. package/dist/{chunk-PTT2NB46.js → chunk-JYJFGD2H.js} +2 -2
  79. package/dist/{chunk-3OWYOECI.js → chunk-JYV4JJV2.js} +5 -5
  80. package/dist/{chunk-OGVE4IJW.js → chunk-KBPU5M2E.js} +7 -7
  81. package/dist/{chunk-I2XEBEEF.js → chunk-KFRPNHWR.js} +4 -4
  82. package/dist/chunk-KFRPNHWR.js.map +1 -0
  83. package/dist/{chunk-3LJYHE7S.js → chunk-KPXM4WO6.js} +64 -57
  84. package/dist/chunk-KPXM4WO6.js.map +1 -0
  85. package/dist/{chunk-QMMOMBH6.js → chunk-KRCBZYTZ.js} +26 -177
  86. package/dist/chunk-KRCBZYTZ.js.map +1 -0
  87. package/dist/{chunk-UTEATWHO.js → chunk-KW42W6SV.js} +6 -6
  88. package/dist/{chunk-BY5YBSXA.js → chunk-L3YYLT4E.js} +15 -2
  89. package/dist/chunk-L3YYLT4E.js.map +1 -0
  90. package/dist/{chunk-UVBHM7AK.js → chunk-MANUDU7I.js} +6 -6
  91. package/dist/{chunk-YJ3TREAC.js → chunk-MHMLXJ3I.js} +2 -2
  92. package/dist/chunk-MHMLXJ3I.js.map +1 -0
  93. package/dist/{chunk-D4LAJ737.js → chunk-MSMJJB4J.js} +2 -2
  94. package/dist/chunk-MSMJJB4J.js.map +1 -0
  95. package/dist/{chunk-DYZ5CCVM.js → chunk-MXUT7FTE.js} +2 -2
  96. package/dist/chunk-MXUT7FTE.js.map +1 -0
  97. package/dist/{chunk-7ICV4ASA.js → chunk-N5PLUFH2.js} +27 -5
  98. package/dist/chunk-N5PLUFH2.js.map +1 -0
  99. package/dist/{chunk-K7BADAOS.js → chunk-NEX7JCMO.js} +4 -4
  100. package/dist/{chunk-5HSSTOOG.js → chunk-NFZGZ4AK.js} +2 -2
  101. package/dist/{chunk-XUFAFHQM.js → chunk-NJ4DYYO5.js} +7 -4
  102. package/dist/chunk-NJ4DYYO5.js.map +1 -0
  103. package/dist/{chunk-VEGQYPCP.js → chunk-NQSO4UAH.js} +8 -8
  104. package/dist/chunk-NQSO4UAH.js.map +1 -0
  105. package/dist/{chunk-GHEMAVTN.js → chunk-NYEFP7DY.js} +4 -4
  106. package/dist/chunk-NYEFP7DY.js.map +1 -0
  107. package/dist/{chunk-S4YERMGJ.js → chunk-OBPVWOSQ.js} +4 -4
  108. package/dist/{chunk-OHV6T5JB.js → chunk-OLIWCCFM.js} +2 -5
  109. package/dist/{chunk-2CRZOVDI.js → chunk-OLSARBZU.js} +2 -2
  110. package/dist/chunk-PEOZ34EM.js +13 -0
  111. package/dist/chunk-PEOZ34EM.js.map +1 -0
  112. package/dist/{chunk-KJTIAECI.js → chunk-PT4XLP6I.js} +171 -12
  113. package/dist/chunk-PT4XLP6I.js.map +1 -0
  114. package/dist/{chunk-LC7DSMHR.js → chunk-PTHKZWEH.js} +2 -14
  115. package/dist/{chunk-LC7DSMHR.js.map → chunk-PTHKZWEH.js.map} +1 -1
  116. package/dist/chunk-PVEWA2DU.js +23 -0
  117. package/dist/chunk-PVEWA2DU.js.map +1 -0
  118. package/dist/chunk-QADFHRQM.js +367 -0
  119. package/dist/chunk-QADFHRQM.js.map +1 -0
  120. package/dist/{chunk-7LP7FFJ2.js → chunk-QD46HPZG.js} +2 -2
  121. package/dist/{chunk-G4MFQXYX.js → chunk-QJNCB5SK.js} +2 -2
  122. package/dist/{chunk-6SYOHUHM.js → chunk-QZWTRENR.js} +2 -2
  123. package/dist/chunk-QZWTRENR.js.map +1 -0
  124. package/dist/{chunk-TSNRZSRC.js → chunk-RO5NM6UI.js} +2 -2
  125. package/dist/chunk-RO5NM6UI.js.map +1 -0
  126. package/dist/{chunk-GEEJPID6.js → chunk-RZPOZPZU.js} +8 -8
  127. package/dist/chunk-SGDPRCC4.js +1075 -0
  128. package/dist/chunk-SGDPRCC4.js.map +1 -0
  129. package/dist/{chunk-YCAJDK4O.js → chunk-SGQ4N5FS.js} +5 -5
  130. package/dist/{chunk-522MBPE5.js → chunk-SHEEBRZ4.js} +2 -2
  131. package/dist/{chunk-YWZEDG7F.js → chunk-SHYIA73K.js} +6 -6
  132. package/dist/{chunk-L2CAWCQL.js → chunk-SKM35Y4Q.js} +17 -26
  133. package/dist/chunk-SKM35Y4Q.js.map +1 -0
  134. package/dist/chunk-SMY5X46Z.js +14 -0
  135. package/dist/chunk-SMY5X46Z.js.map +1 -0
  136. package/dist/{chunk-K4BWPNJO.js → chunk-TE6LH6J2.js} +5 -5
  137. package/dist/{chunk-AFAPBZAA.js → chunk-TG634KCO.js} +11 -2
  138. package/dist/chunk-TG634KCO.js.map +1 -0
  139. package/dist/{chunk-V5JUAW4M.js → chunk-TIVK6PRK.js} +9 -10
  140. package/dist/chunk-TIVK6PRK.js.map +1 -0
  141. package/dist/{chunk-JN3SGXJE.js → chunk-UADPR6F4.js} +3 -3
  142. package/dist/{chunk-JN3SGXJE.js.map → chunk-UADPR6F4.js.map} +1 -1
  143. package/dist/{chunk-SBOHNJUD.js → chunk-V6UQZA2H.js} +2 -2
  144. package/dist/chunk-VG2ZSFYD.js +32 -0
  145. package/dist/chunk-VG2ZSFYD.js.map +1 -0
  146. package/dist/{chunk-SC4JLMZI.js → chunk-VH6SOCXH.js} +2 -2
  147. package/dist/chunk-VKQCVU2Z.js +21 -0
  148. package/dist/chunk-VKQCVU2Z.js.map +1 -0
  149. package/dist/chunk-VSRSQ2CR.js +654 -0
  150. package/dist/chunk-VSRSQ2CR.js.map +1 -0
  151. package/dist/{chunk-WQN5SM7P.js → chunk-W3G5REIU.js} +2 -2
  152. package/dist/{chunk-EGU4PWQW.js → chunk-W66AM5IB.js} +2 -2
  153. package/dist/chunk-W66AM5IB.js.map +1 -0
  154. package/dist/{chunk-HQKRZIX6.js → chunk-WBKZUO5V.js} +26 -43
  155. package/dist/chunk-WBKZUO5V.js.map +1 -0
  156. package/dist/{chunk-OMSKGLYA.js → chunk-WO4T4OD5.js} +2 -2
  157. package/dist/{chunk-6RPWILRH.js → chunk-WZ3NCMK6.js} +6 -5
  158. package/dist/{chunk-BAAUFCJK.js → chunk-X4MVWPHV.js} +3 -3
  159. package/dist/{chunk-R2N37AA6.js → chunk-XIDQKFZF.js} +3 -3
  160. package/dist/{chunk-EEZCB74X.js → chunk-XOBHRD2M.js} +575 -651
  161. package/dist/chunk-XOBHRD2M.js.map +1 -0
  162. package/dist/chunk-XZHEOSQ2.js +16 -0
  163. package/dist/chunk-XZHEOSQ2.js.map +1 -0
  164. package/dist/chunk-Y2NBBT6K.js +18 -0
  165. package/dist/chunk-Y2NBBT6K.js.map +1 -0
  166. package/dist/{chunk-OWOT7CFC.js → chunk-Y6B6HVKC.js} +2 -2
  167. package/dist/{chunk-5ATANZSW.js → chunk-Y6VZQGGH.js} +6 -6
  168. package/dist/chunk-YMUFFJCO.js +23 -0
  169. package/dist/chunk-YMUFFJCO.js.map +1 -0
  170. package/dist/{chunk-YZNKFYDC.js → chunk-ZFUFAHZ3.js} +4 -4
  171. package/dist/{chunk-PWWWMRT7.js → chunk-ZTLOXFPB.js} +2 -2
  172. package/dist/chunk-ZTLOXFPB.js.map +1 -0
  173. package/dist/{walk-E3OVLBFR.js → chunk-ZWBKDKXC.js} +4 -13
  174. package/dist/{walk-E3OVLBFR.js.map → chunk-ZWBKDKXC.js.map} +1 -1
  175. package/dist/classified/index.js +5 -5
  176. package/dist/{classified-marker-52P3D72W.js → classified-marker-EOOSMWFC.js} +3 -3
  177. package/dist/collection-facade-TTRF5NFJ.js +45 -0
  178. package/dist/{computed-33DRJDOC.js → computed-AB45PS4V.js} +3 -3
  179. package/dist/consent/index.js +13 -9
  180. package/dist/consent/index.js.map +1 -1
  181. package/dist/{cover-5BSNJREH.js → cover/index.js} +7 -6
  182. package/dist/crdt/index.js +4 -0
  183. package/dist/crdt/index.js.map +1 -1
  184. package/dist/custody/index.js +26 -0
  185. package/dist/{dead-filter-JXVCKS6W.js → dead-filter-6DYY7S64.js} +2 -2
  186. package/dist/{chunk-ILM6X6CP.js → delegation-ONOZVPIP.js} +12 -6
  187. package/dist/{chunk-ILM6X6CP.js.map → delegation-ONOZVPIP.js.map} +1 -1
  188. package/dist/derivations/index.js +12 -12
  189. package/dist/derive-IGGVSUPH.js +22 -0
  190. package/dist/directory/index.js +46 -0
  191. package/dist/{dispatch-PKQQFDBT.js → dispatch-7T45NN7C.js} +19 -18
  192. package/dist/{dispatch-PKQQFDBT.js.map → dispatch-7T45NN7C.js.map} +1 -1
  193. package/dist/{dispatch-SMXUO7W5.js → dispatch-RPTLK7LJ.js} +5 -5
  194. package/dist/{enclave-I5H3GINP.js → enclave-CLJVSDFG.js} +9 -9
  195. package/dist/executor-IEBLTBCW.js +9 -0
  196. package/dist/executor-RM7XWQDU.js +9 -0
  197. package/dist/executor-XZYM4KHT.js +28 -0
  198. package/dist/export-accessible-24XCCD3A.js +23 -0
  199. package/dist/extract-partition-H2TPEEOF.js +38 -0
  200. package/dist/{fanout-sidecar-WWXVHHUH.js → fanout-sidecar-TV7CXAJ6.js} +9 -9
  201. package/dist/find-OZMTRIK3.js +11 -0
  202. package/dist/forget/index.js +11 -11
  203. package/dist/forget/index.js.map +1 -1
  204. package/dist/guards/index.js +4 -4
  205. package/dist/history/index.js +16 -12
  206. package/dist/history/index.js.map +1 -1
  207. package/dist/i18n/index.js +16 -14
  208. package/dist/i18n/index.js.map +1 -1
  209. package/dist/index.d.ts +18 -24
  210. package/dist/index.js +212 -2045
  211. package/dist/index.js.map +1 -1
  212. package/dist/indexing/index.js +4 -2
  213. package/dist/indexing/index.js.map +1 -1
  214. package/dist/introspection/index.js +28 -0
  215. package/dist/issue-55HJE7JF.js +19 -0
  216. package/dist/kernel/collection-config.d.ts +1 -1
  217. package/dist/kernel/collection.d.ts +2 -2
  218. package/dist/kernel/errors.d.ts +2 -2
  219. package/dist/kernel/lazy.d.ts +30 -0
  220. package/dist/kernel/noydb.d.ts +22 -11
  221. package/dist/kernel/query/builder.d.ts +10 -10
  222. package/dist/kernel/query/index.d.ts +0 -6
  223. package/dist/kernel/query/scan-builder.d.ts +4 -4
  224. package/dist/kernel/types.d.ts +25 -25
  225. package/dist/kernel/vault.d.ts +10 -10
  226. package/dist/{ledger-M2BKCNVS.js → ledger-XY6NP3J2.js} +11 -11
  227. package/dist/liberate-LXOJ2EMB.js +24 -0
  228. package/dist/{link-set-ZU4E5J5S.js → link-set-POQB7BU5.js} +11 -11
  229. package/dist/materialized-views/index.js +22 -19
  230. package/dist/money/index.js +31 -0
  231. package/dist/noydb-KXS35UJS.js +82 -0
  232. package/dist/overlay-views/index.js +4 -4
  233. package/dist/periods/index.js +15 -13
  234. package/dist/pod/index.js +11 -12
  235. package/dist/{policy-IY2YEA3A.js → policy/index.js} +6 -6
  236. package/dist/port/with/blob-strategy.d.ts +15 -5
  237. package/dist/port/with/collection-registries.d.ts +62 -0
  238. package/dist/port/with/strategies.d.ts +11 -11
  239. package/dist/port/with/team-strategy.d.ts +2 -1
  240. package/dist/portability/index.js +8 -8
  241. package/dist/{post-register-XIAHB6KF.js → post-register-URQANI3B.js} +6 -6
  242. package/dist/query/index.js +6 -46
  243. package/dist/{aggregate → reduce}/index.js +24 -17
  244. package/dist/reduce/index.js.map +1 -0
  245. package/dist/register-5W6CG4RM.js +25 -0
  246. package/dist/registry-7Y5WF7GS.js +9 -0
  247. package/dist/{registry-VW6P6A3J.js → registry-BWD2ED52.js} +2 -2
  248. package/dist/registry-MCSGBZXI.js +18 -0
  249. package/dist/registry-UJFP3NWF.js +19 -0
  250. package/dist/request-withdrawal-IWYDM4SO.js +31 -0
  251. package/dist/{reveal-VWXRV2XU.js → reveal-BXZGWIOP.js} +6 -6
  252. package/dist/revoke-TINYPHYY.js +24 -0
  253. package/dist/satellites/index.js +1 -1
  254. package/dist/schema-update/index.js +26 -0
  255. package/dist/sealed-record/index.js +12 -12
  256. package/dist/search/index.js +36 -0
  257. package/dist/{seed-CDBFOTIK.js → seed-F7YYQTRC.js} +11 -11
  258. package/dist/sequence/index.js +30 -0
  259. package/dist/session/index.js +13 -9
  260. package/dist/session/index.js.map +1 -1
  261. package/dist/shadow/index.js +6 -2
  262. package/dist/shadow/index.js.map +1 -1
  263. package/dist/signer-WMZKCNKC.js +25 -0
  264. package/dist/snapshots/index.js +14 -10
  265. package/dist/snapshots/index.js.map +1 -1
  266. package/dist/{stale-NBROTA66.js → stale-JOE7GBAE.js} +11 -10
  267. package/dist/storage-B3WBKXKT.js +23 -0
  268. package/dist/store/index.js +22 -0
  269. package/dist/{store-coordination-provider-P3IU5JHD.js → store-coordination-provider-5LX2UFU2.js} +3 -3
  270. package/dist/sync/index.js +14 -10
  271. package/dist/sync/index.js.map +1 -1
  272. package/dist/team/index.js +36 -29
  273. package/dist/tiers/index.js +10 -10
  274. package/dist/to/index.js +1 -1
  275. package/dist/{tx → transactions}/index.js +7 -3
  276. package/dist/transactions/index.js.map +1 -0
  277. package/dist/util/index.js +1 -1
  278. package/dist/{verify-5X37OXRY.js → verify-7XWHJWUN.js} +5 -5
  279. package/dist/via/blob/active.d.ts +7 -18
  280. package/dist/via/blob/binding.d.ts +1 -1
  281. package/dist/via/blob/index.d.ts +4 -2
  282. package/dist/via/i18n/core.d.ts +1 -1
  283. package/dist/via/i18n/index.d.ts +2 -0
  284. package/dist/via/money/money-reducer.d.ts +2 -2
  285. package/dist/walk-6OHAWGBS.js +21 -0
  286. package/dist/with-audit/consent/index.d.ts +2 -0
  287. package/dist/with-audit/forget/active.d.ts +3 -3
  288. package/dist/with-audit/forget/index.d.ts +4 -4
  289. package/dist/with-audit/forget/strategy.d.ts +3 -3
  290. package/dist/with-audit/guards/executor.d.ts +4 -4
  291. package/dist/with-audit/guards/immutable-guard.d.ts +3 -3
  292. package/dist/with-audit/guards/index.d.ts +1 -1
  293. package/dist/with-audit/guards/registry.d.ts +3 -3
  294. package/dist/with-audit/guards/transition-guard.d.ts +3 -3
  295. package/dist/with-audit/guards/types.d.ts +10 -10
  296. package/dist/with-audit/guards/with-guard.d.ts +2 -2
  297. package/dist/with-audit/periods/index.d.ts +2 -0
  298. package/dist/with-cargo/floor.d.ts +3 -3
  299. package/dist/with-commit/crdt/index.d.ts +2 -0
  300. package/dist/with-commit/history/index.d.ts +2 -0
  301. package/dist/with-commit/numbering/descriptor.d.ts +16 -6
  302. package/dist/with-commit/tx/active.d.ts +5 -5
  303. package/dist/with-commit/tx/index.d.ts +2 -2
  304. package/dist/with-commit/tx/invariants.d.ts +1 -1
  305. package/dist/with-commit/tx/strategy.d.ts +3 -3
  306. package/dist/with-fork/shadow/index.d.ts +2 -0
  307. package/dist/with-fork/snapshots/active.d.ts +2 -2
  308. package/dist/with-fork/snapshots/index.d.ts +3 -1
  309. package/dist/with-fork/snapshots/noydb-facade.d.ts +3 -3
  310. package/dist/with-fork/snapshots/strategy.d.ts +2 -2
  311. package/dist/with-formula/derivations/executor.d.ts +2 -2
  312. package/dist/with-formula/derivations/index.d.ts +2 -1
  313. package/dist/with-formula/derivations/registry.d.ts +3 -3
  314. package/dist/with-formula/derivations/stale.d.ts +2 -2
  315. package/dist/with-formula/derivations/types.d.ts +3 -3
  316. package/dist/with-formula/derivations/with-derivation.d.ts +2 -2
  317. package/dist/with-formula/derivations/with-rollup.d.ts +15 -8
  318. package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +3 -3
  319. package/dist/with-formula/materialized-views/index.d.ts +1 -1
  320. package/dist/with-formula/materialized-views/registry.d.ts +4 -4
  321. package/dist/with-formula/materialized-views/types.d.ts +11 -11
  322. package/dist/with-formula/materialized-views/with-materialized-view.d.ts +2 -2
  323. package/dist/with-formula/overlay-views/index.d.ts +1 -1
  324. package/dist/with-formula/overlay-views/registry.d.ts +4 -4
  325. package/dist/with-formula/overlay-views/types.d.ts +3 -3
  326. package/dist/with-formula/overlay-views/virtual-collection.d.ts +2 -2
  327. package/dist/with-formula/overlay-views/with-overlayed-view.d.ts +2 -2
  328. package/dist/with-lookup/indexing/active.d.ts +5 -5
  329. package/dist/with-lookup/indexing/index.d.ts +3 -1
  330. package/dist/with-lookup/indexing/strategy.d.ts +3 -3
  331. package/dist/with-lookup/{aggregate → reduce}/active.d.ts +8 -8
  332. package/dist/with-lookup/{aggregate → reduce}/groupby.d.ts +21 -21
  333. package/dist/with-lookup/reduce/index.d.ts +34 -0
  334. package/dist/with-lookup/{aggregate → reduce}/reducers.d.ts +10 -10
  335. package/dist/with-lookup/{aggregate/aggregation.d.ts → reduce/reduction.d.ts} +21 -21
  336. package/dist/with-lookup/{aggregate → reduce}/strategy.d.ts +15 -15
  337. package/dist/with-lookup/search/build-docs.d.ts +7 -2
  338. package/dist/with-lookup/search/index.d.ts +1 -1
  339. package/dist/with-party/directory/cover/index.d.ts +1 -0
  340. package/dist/with-party/directory/index.d.ts +2 -0
  341. package/dist/with-party/session/index.d.ts +2 -0
  342. package/dist/with-party/sync/index.d.ts +2 -0
  343. package/dist/with-party/team/index.d.ts +2 -0
  344. package/dist/with-party/team/keyring.d.ts +68 -20
  345. package/dist/with-party/team/noydb-facade.d.ts +2 -1
  346. package/dist/with-shape/blobs/blob-set.d.ts +1 -1
  347. package/dist/with-shape/introspection/index.d.ts +6 -0
  348. package/dist/with-shape/schema-update/index.d.ts +1 -0
  349. package/dist/with-store/index.d.ts +3 -2
  350. package/dist/withdraw-accessible-DEUCOO4F.js +28 -0
  351. package/dist/withdraw-accessible-DEUCOO4F.js.map +1 -0
  352. package/package.json +42 -30
  353. package/dist/aggregate/index.js.map +0 -1
  354. package/dist/api-22ES33N3.js +0 -20
  355. package/dist/as/index.js +0 -30
  356. package/dist/at/index.js +0 -1
  357. package/dist/by/index.js +0 -11
  358. package/dist/chunk-2PDBYF2O.js.map +0 -1
  359. package/dist/chunk-2YELV6TV.js +0 -1
  360. package/dist/chunk-3LJYHE7S.js.map +0 -1
  361. package/dist/chunk-6SYOHUHM.js.map +0 -1
  362. package/dist/chunk-7ICV4ASA.js.map +0 -1
  363. package/dist/chunk-AFAPBZAA.js.map +0 -1
  364. package/dist/chunk-BY5YBSXA.js.map +0 -1
  365. package/dist/chunk-CJVEAVYH.js +0 -205
  366. package/dist/chunk-CJVEAVYH.js.map +0 -1
  367. package/dist/chunk-CKUYQO2P.js.map +0 -1
  368. package/dist/chunk-D4LAJ737.js.map +0 -1
  369. package/dist/chunk-DYZ5CCVM.js.map +0 -1
  370. package/dist/chunk-EEZCB74X.js.map +0 -1
  371. package/dist/chunk-EGU4PWQW.js.map +0 -1
  372. package/dist/chunk-FIP7KI2P.js.map +0 -1
  373. package/dist/chunk-GHEMAVTN.js.map +0 -1
  374. package/dist/chunk-HAPY7WFP.js.map +0 -1
  375. package/dist/chunk-HQKRZIX6.js.map +0 -1
  376. package/dist/chunk-I2XEBEEF.js.map +0 -1
  377. package/dist/chunk-IGLU4ME7.js +0 -255
  378. package/dist/chunk-IGLU4ME7.js.map +0 -1
  379. package/dist/chunk-J5TEU77Q.js.map +0 -1
  380. package/dist/chunk-KJTIAECI.js.map +0 -1
  381. package/dist/chunk-L2CAWCQL.js.map +0 -1
  382. package/dist/chunk-LB7FD65R.js +0 -163
  383. package/dist/chunk-LB7FD65R.js.map +0 -1
  384. package/dist/chunk-PWWWMRT7.js.map +0 -1
  385. package/dist/chunk-QMMOMBH6.js.map +0 -1
  386. package/dist/chunk-SEU6QHH4.js.map +0 -1
  387. package/dist/chunk-TNATF3HB.js.map +0 -1
  388. package/dist/chunk-TSNRZSRC.js.map +0 -1
  389. package/dist/chunk-V5JUAW4M.js.map +0 -1
  390. package/dist/chunk-VEGQYPCP.js.map +0 -1
  391. package/dist/chunk-X3MWEFPT.js.map +0 -1
  392. package/dist/chunk-XUFAFHQM.js.map +0 -1
  393. package/dist/chunk-YJ3TREAC.js.map +0 -1
  394. package/dist/chunk-YMUGBZN2.js.map +0 -1
  395. package/dist/chunk-YTW6ZIPD.js.map +0 -1
  396. package/dist/chunk-YXZNGHID.js.map +0 -1
  397. package/dist/chunk-YZN6NRTR.js.map +0 -1
  398. package/dist/chunk-ZX5FNWH7.js.map +0 -1
  399. package/dist/collection-facade-XKCFHSLR.js +0 -44
  400. package/dist/delegation-WWZPEDK2.js +0 -25
  401. package/dist/derive-CWWFEQ4N.js +0 -21
  402. package/dist/executor-FCJEH3FU.js +0 -9
  403. package/dist/executor-OHET7TF7.js +0 -9
  404. package/dist/executor-SHYLIBOM.js +0 -26
  405. package/dist/export-accessible-FBL6TDSK.js +0 -23
  406. package/dist/extract-partition-ZYIRYMTI.js +0 -38
  407. package/dist/find-LEBUXVL7.js +0 -11
  408. package/dist/in/index.js +0 -1
  409. package/dist/issue-F76PAGIR.js +0 -19
  410. package/dist/liberate-ZP7UB57K.js +0 -24
  411. package/dist/noydb-BNDGEK5X.js +0 -71
  412. package/dist/on/index.js +0 -17
  413. package/dist/port/as/index.d.ts +0 -26
  414. package/dist/port/at/index.d.ts +0 -18
  415. package/dist/port/in/index.d.ts +0 -21
  416. package/dist/port/on/index.d.ts +0 -27
  417. package/dist/port/ui/index.d.ts +0 -21
  418. package/dist/port/with/index.d.ts +0 -18
  419. package/dist/register-HB4TQZSV.js +0 -23
  420. package/dist/registry-6BMBFEXT.js +0 -19
  421. package/dist/registry-7CZWF3EQ.js +0 -9
  422. package/dist/registry-JOFO7RAH.js +0 -18
  423. package/dist/request-withdrawal-UN3TRHWI.js +0 -31
  424. package/dist/revoke-OLO2OVR7.js +0 -24
  425. package/dist/signer-MGGKPYAN.js +0 -25
  426. package/dist/storage-3R37QZLA.js +0 -23
  427. package/dist/tx/index.js.map +0 -1
  428. package/dist/ui/index.js +0 -1
  429. package/dist/with/index.js +0 -31
  430. package/dist/with-lookup/aggregate/index.d.ts +0 -23
  431. package/dist/withdraw-accessible-Q2EMATCU.js +0 -28
  432. /package/dist/{api-22ES33N3.js.map → api-3NKVNZPM.js.map} +0 -0
  433. /package/dist/{backup-YCHAC575.js.map → backup-PTSVXDDW.js.map} +0 -0
  434. /package/dist/{chunk-5WLDZZ6S.js.map → chunk-35NMVJ7I.js.map} +0 -0
  435. /package/dist/{chunk-TNJVDG2B.js.map → chunk-3XKESW5E.js.map} +0 -0
  436. /package/dist/{chunk-MUPZ6IZX.js.map → chunk-4JQK3L4V.js.map} +0 -0
  437. /package/dist/{chunk-Z4D3YGAB.js.map → chunk-4ZKNC6A6.js.map} +0 -0
  438. /package/dist/{chunk-ONB627HU.js.map → chunk-55LX6FSX.js.map} +0 -0
  439. /package/dist/{chunk-QMZ5A6FQ.js.map → chunk-56IIVAEO.js.map} +0 -0
  440. /package/dist/{chunk-FHHYCBBP.js.map → chunk-5DRROK5W.js.map} +0 -0
  441. /package/dist/{chunk-GTNRMJYH.js.map → chunk-5GQEU4DN.js.map} +0 -0
  442. /package/dist/{chunk-YQQPNXNO.js.map → chunk-6L3DKWRY.js.map} +0 -0
  443. /package/dist/{chunk-M6QA2KK2.js.map → chunk-6M2I3DKF.js.map} +0 -0
  444. /package/dist/{chunk-FTCGEUOY.js.map → chunk-6R6Q3MRN.js.map} +0 -0
  445. /package/dist/{chunk-ZUDAK436.js.map → chunk-6UBZ6I5Z.js.map} +0 -0
  446. /package/dist/{chunk-7U6AB7DZ.js.map → chunk-AKKRXT23.js.map} +0 -0
  447. /package/dist/{chunk-OWLZONGX.js.map → chunk-BLBAQRBM.js.map} +0 -0
  448. /package/dist/{chunk-QBOQI6PG.js.map → chunk-BN4HRYAZ.js.map} +0 -0
  449. /package/dist/{chunk-QVGEVZ5F.js.map → chunk-BQ6DHN4I.js.map} +0 -0
  450. /package/dist/{chunk-GP54LU5N.js.map → chunk-BYFXLDVV.js.map} +0 -0
  451. /package/dist/{chunk-QRHEAZ2Q.js.map → chunk-CUZLNGD5.js.map} +0 -0
  452. /package/dist/{chunk-YXIVUWDU.js.map → chunk-DGBIHDVK.js.map} +0 -0
  453. /package/dist/{chunk-QZJEYZ4I.js.map → chunk-DZAF24PG.js.map} +0 -0
  454. /package/dist/{chunk-TMR64XPL.js.map → chunk-EZNTORXE.js.map} +0 -0
  455. /package/dist/{chunk-JAMDDLIM.js.map → chunk-FMNU7IUG.js.map} +0 -0
  456. /package/dist/{as/index.js.map → chunk-GJW4HX2O.js.map} +0 -0
  457. /package/dist/{chunk-7BIJS6II.js.map → chunk-GP3UWP22.js.map} +0 -0
  458. /package/dist/{chunk-JIHH26WQ.js.map → chunk-HFUAFR6B.js.map} +0 -0
  459. /package/dist/{chunk-RWW3I3PO.js.map → chunk-ISRKW4YN.js.map} +0 -0
  460. /package/dist/{chunk-P4NUJVWL.js.map → chunk-IXNCZTWA.js.map} +0 -0
  461. /package/dist/{chunk-YFFEF6HR.js.map → chunk-JIDLU57U.js.map} +0 -0
  462. /package/dist/{chunk-PTT2NB46.js.map → chunk-JYJFGD2H.js.map} +0 -0
  463. /package/dist/{chunk-3OWYOECI.js.map → chunk-JYV4JJV2.js.map} +0 -0
  464. /package/dist/{chunk-OGVE4IJW.js.map → chunk-KBPU5M2E.js.map} +0 -0
  465. /package/dist/{chunk-UTEATWHO.js.map → chunk-KW42W6SV.js.map} +0 -0
  466. /package/dist/{chunk-UVBHM7AK.js.map → chunk-MANUDU7I.js.map} +0 -0
  467. /package/dist/{chunk-K7BADAOS.js.map → chunk-NEX7JCMO.js.map} +0 -0
  468. /package/dist/{chunk-5HSSTOOG.js.map → chunk-NFZGZ4AK.js.map} +0 -0
  469. /package/dist/{chunk-S4YERMGJ.js.map → chunk-OBPVWOSQ.js.map} +0 -0
  470. /package/dist/{chunk-OHV6T5JB.js.map → chunk-OLIWCCFM.js.map} +0 -0
  471. /package/dist/{chunk-2CRZOVDI.js.map → chunk-OLSARBZU.js.map} +0 -0
  472. /package/dist/{chunk-7LP7FFJ2.js.map → chunk-QD46HPZG.js.map} +0 -0
  473. /package/dist/{chunk-G4MFQXYX.js.map → chunk-QJNCB5SK.js.map} +0 -0
  474. /package/dist/{chunk-GEEJPID6.js.map → chunk-RZPOZPZU.js.map} +0 -0
  475. /package/dist/{chunk-YCAJDK4O.js.map → chunk-SGQ4N5FS.js.map} +0 -0
  476. /package/dist/{chunk-522MBPE5.js.map → chunk-SHEEBRZ4.js.map} +0 -0
  477. /package/dist/{chunk-YWZEDG7F.js.map → chunk-SHYIA73K.js.map} +0 -0
  478. /package/dist/{chunk-K4BWPNJO.js.map → chunk-TE6LH6J2.js.map} +0 -0
  479. /package/dist/{chunk-SBOHNJUD.js.map → chunk-V6UQZA2H.js.map} +0 -0
  480. /package/dist/{chunk-SC4JLMZI.js.map → chunk-VH6SOCXH.js.map} +0 -0
  481. /package/dist/{chunk-WQN5SM7P.js.map → chunk-W3G5REIU.js.map} +0 -0
  482. /package/dist/{chunk-OMSKGLYA.js.map → chunk-WO4T4OD5.js.map} +0 -0
  483. /package/dist/{chunk-6RPWILRH.js.map → chunk-WZ3NCMK6.js.map} +0 -0
  484. /package/dist/{chunk-BAAUFCJK.js.map → chunk-X4MVWPHV.js.map} +0 -0
  485. /package/dist/{chunk-R2N37AA6.js.map → chunk-XIDQKFZF.js.map} +0 -0
  486. /package/dist/{chunk-OWOT7CFC.js.map → chunk-Y6B6HVKC.js.map} +0 -0
  487. /package/dist/{chunk-5ATANZSW.js.map → chunk-Y6VZQGGH.js.map} +0 -0
  488. /package/dist/{chunk-YZNKFYDC.js.map → chunk-ZFUFAHZ3.js.map} +0 -0
  489. /package/dist/{classified-marker-52P3D72W.js.map → classified-marker-EOOSMWFC.js.map} +0 -0
  490. /package/dist/{at/index.js.map → collection-facade-TTRF5NFJ.js.map} +0 -0
  491. /package/dist/{by/index.js.map → computed-AB45PS4V.js.map} +0 -0
  492. /package/dist/{in → cover}/index.js.map +0 -0
  493. /package/dist/{on → custody}/index.js.map +0 -0
  494. /package/dist/{dead-filter-JXVCKS6W.js.map → dead-filter-6DYY7S64.js.map} +0 -0
  495. /package/dist/{chunk-2YELV6TV.js.map → derive-IGGVSUPH.js.map} +0 -0
  496. /package/dist/{ui → directory}/index.js.map +0 -0
  497. /package/dist/{dispatch-SMXUO7W5.js.map → dispatch-RPTLK7LJ.js.map} +0 -0
  498. /package/dist/{collection-facade-XKCFHSLR.js.map → enclave-CLJVSDFG.js.map} +0 -0
  499. /package/dist/{computed-33DRJDOC.js.map → executor-IEBLTBCW.js.map} +0 -0
  500. /package/dist/{cover-5BSNJREH.js.map → executor-RM7XWQDU.js.map} +0 -0
  501. /package/dist/{delegation-WWZPEDK2.js.map → executor-XZYM4KHT.js.map} +0 -0
  502. /package/dist/{derive-CWWFEQ4N.js.map → export-accessible-24XCCD3A.js.map} +0 -0
  503. /package/dist/{enclave-I5H3GINP.js.map → extract-partition-H2TPEEOF.js.map} +0 -0
  504. /package/dist/{fanout-sidecar-WWXVHHUH.js.map → fanout-sidecar-TV7CXAJ6.js.map} +0 -0
  505. /package/dist/{executor-FCJEH3FU.js.map → find-OZMTRIK3.js.map} +0 -0
  506. /package/dist/{with → introspection}/index.js.map +0 -0
  507. /package/dist/{executor-OHET7TF7.js.map → issue-55HJE7JF.js.map} +0 -0
  508. /package/dist/{executor-SHYLIBOM.js.map → ledger-XY6NP3J2.js.map} +0 -0
  509. /package/dist/{export-accessible-FBL6TDSK.js.map → liberate-LXOJ2EMB.js.map} +0 -0
  510. /package/dist/{extract-partition-ZYIRYMTI.js.map → link-set-POQB7BU5.js.map} +0 -0
  511. /package/dist/{find-LEBUXVL7.js.map → money/index.js.map} +0 -0
  512. /package/dist/{issue-F76PAGIR.js.map → noydb-KXS35UJS.js.map} +0 -0
  513. /package/dist/{ledger-M2BKCNVS.js.map → policy/index.js.map} +0 -0
  514. /package/dist/{post-register-XIAHB6KF.js.map → post-register-URQANI3B.js.map} +0 -0
  515. /package/dist/{liberate-ZP7UB57K.js.map → register-5W6CG4RM.js.map} +0 -0
  516. /package/dist/{link-set-ZU4E5J5S.js.map → registry-7Y5WF7GS.js.map} +0 -0
  517. /package/dist/{noydb-BNDGEK5X.js.map → registry-BWD2ED52.js.map} +0 -0
  518. /package/dist/{policy-IY2YEA3A.js.map → registry-MCSGBZXI.js.map} +0 -0
  519. /package/dist/{register-HB4TQZSV.js.map → registry-UJFP3NWF.js.map} +0 -0
  520. /package/dist/{registry-6BMBFEXT.js.map → request-withdrawal-IWYDM4SO.js.map} +0 -0
  521. /package/dist/{reveal-VWXRV2XU.js.map → reveal-BXZGWIOP.js.map} +0 -0
  522. /package/dist/{registry-7CZWF3EQ.js.map → revoke-TINYPHYY.js.map} +0 -0
  523. /package/dist/{registry-JOFO7RAH.js.map → schema-update/index.js.map} +0 -0
  524. /package/dist/{registry-VW6P6A3J.js.map → search/index.js.map} +0 -0
  525. /package/dist/{seed-CDBFOTIK.js.map → seed-F7YYQTRC.js.map} +0 -0
  526. /package/dist/{request-withdrawal-UN3TRHWI.js.map → sequence/index.js.map} +0 -0
  527. /package/dist/{revoke-OLO2OVR7.js.map → signer-WMZKCNKC.js.map} +0 -0
  528. /package/dist/{signer-MGGKPYAN.js.map → stale-JOE7GBAE.js.map} +0 -0
  529. /package/dist/{stale-NBROTA66.js.map → storage-B3WBKXKT.js.map} +0 -0
  530. /package/dist/{storage-3R37QZLA.js.map → store/index.js.map} +0 -0
  531. /package/dist/{store-coordination-provider-P3IU5JHD.js.map → store-coordination-provider-5LX2UFU2.js.map} +0 -0
  532. /package/dist/{verify-5X37OXRY.js.map → verify-7XWHJWUN.js.map} +0 -0
  533. /package/dist/{withdraw-accessible-Q2EMATCU.js.map → walk-6OHAWGBS.js.map} +0 -0
  534. /package/dist/with-lookup/{aggregate → reduce}/canonical-key.d.ts +0 -0
@@ -0,0 +1,16 @@
1
+ // src/with-lookup/reduce/canonical-key.ts
2
+ function canonicalGroupKey(fields, row) {
3
+ const sorted = [...fields].sort();
4
+ const parts = [];
5
+ for (const name of sorted) {
6
+ const v = row[name];
7
+ const serialised = v === void 0 ? "undefined" : JSON.stringify(v);
8
+ parts.push(`${name}=${serialised}`);
9
+ }
10
+ return parts.join("|");
11
+ }
12
+
13
+ export {
14
+ canonicalGroupKey
15
+ };
16
+ //# sourceMappingURL=chunk-XZHEOSQ2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/with-lookup/reduce/canonical-key.ts"],"sourcesContent":["/**\n * Canonicalise a group-key tuple to a stable string for dedup hashing.\n *\n * Sorts field names lexicographically before serialising, so that\n * `.groupBy('a', 'b')` and `.groupBy('b', 'a')` produce identical\n * keys for the same logical group. Values are JSON-stringified;\n * `undefined` and `null` are distinguished (matching the Map-key\n * semantics in `groupAndReduce`).\n *\n * NOT part of the public API. Used by:\n * - `groupAndReduce` for the dedup Map's key\n * - `materialized-views/query-hash` for UNION MV cross-arm row-key dedup (PR 2)\n *\n * Pure: same input → same output, no side effects.\n */\nexport function canonicalGroupKey(\n fields: readonly string[],\n row: Record<string, unknown>,\n): string {\n const sorted = [...fields].sort()\n const parts: string[] = []\n for (const name of sorted) {\n const v = row[name]\n const serialised =\n v === undefined ? 'undefined' : JSON.stringify(v)\n parts.push(`${name}=${serialised}`)\n }\n return parts.join('|')\n}\n"],"mappings":";AAeO,SAAS,kBACd,QACA,KACQ;AACR,QAAM,SAAS,CAAC,GAAG,MAAM,EAAE,KAAK;AAChC,QAAM,QAAkB,CAAC;AACzB,aAAW,QAAQ,QAAQ;AACzB,UAAM,IAAI,IAAI,IAAI;AAClB,UAAM,aACJ,MAAM,SAAY,cAAc,KAAK,UAAU,CAAC;AAClD,UAAM,KAAK,GAAG,IAAI,IAAI,UAAU,EAAE;AAAA,EACpC;AACA,SAAO,MAAM,KAAK,GAAG;AACvB;","names":[]}
@@ -0,0 +1,18 @@
1
+ // src/with-shape/persisted-schemas/canonicalize.ts
2
+ function canonicalize(value) {
3
+ if (value === null || typeof value !== "object") {
4
+ return JSON.stringify(value);
5
+ }
6
+ if (Array.isArray(value)) {
7
+ return "[" + value.map(canonicalize).join(",") + "]";
8
+ }
9
+ const obj = value;
10
+ const keys = Object.keys(obj).sort();
11
+ const parts = keys.map((k) => JSON.stringify(k) + ":" + canonicalize(obj[k]));
12
+ return "{" + parts.join(",") + "}";
13
+ }
14
+
15
+ export {
16
+ canonicalize
17
+ };
18
+ //# sourceMappingURL=chunk-Y2NBBT6K.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/with-shape/persisted-schemas/canonicalize.ts"],"sourcesContent":["/**\n * Deterministic JSON serializer: sorts object keys lexicographically at every\n * depth so structurally-equivalent objects produce identical strings. Array\n * order is preserved (arrays are semantically ordered).\n *\n * Used by {@link sha256Hex} to fingerprint a derived JSON Schema for\n * hash-based skip on persisted-schema writes.\n *\n * @module\n */\n\nexport function canonicalize(value: unknown): string {\n if (value === null || typeof value !== 'object') {\n return JSON.stringify(value)\n }\n if (Array.isArray(value)) {\n return '[' + value.map(canonicalize).join(',') + ']'\n }\n const obj = value as Record<string, unknown>\n const keys = Object.keys(obj).sort()\n const parts = keys.map((k) => JSON.stringify(k) + ':' + canonicalize(obj[k]))\n return '{' + parts.join(',') + '}'\n}\n"],"mappings":";AAWO,SAAS,aAAa,OAAwB;AACnD,MAAI,UAAU,QAAQ,OAAO,UAAU,UAAU;AAC/C,WAAO,KAAK,UAAU,KAAK;AAAA,EAC7B;AACA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,MAAM,IAAI,YAAY,EAAE,KAAK,GAAG,IAAI;AAAA,EACnD;AACA,QAAM,MAAM;AACZ,QAAM,OAAO,OAAO,KAAK,GAAG,EAAE,KAAK;AACnC,QAAM,QAAQ,KAAK,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,MAAM,aAAa,IAAI,CAAC,CAAC,CAAC;AAC5E,SAAO,MAAM,MAAM,KAAK,GAAG,IAAI;AACjC;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ConflictError,
3
3
  PodVersionConflictError
4
- } from "./chunk-6SYOHUHM.js";
4
+ } from "./chunk-QZWTRENR.js";
5
5
 
6
6
  // src/with-pod/pod-store.ts
7
7
  var BUNDLE_STORE_VERSION = 1;
@@ -152,4 +152,4 @@ export {
152
152
  wrapBundleStore,
153
153
  createBundleStore
154
154
  };
155
- //# sourceMappingURL=chunk-OWOT7CFC.js.map
155
+ //# sourceMappingURL=chunk-Y6B6HVKC.js.map
@@ -7,20 +7,20 @@ import {
7
7
  hashEntry,
8
8
  paddedIndex,
9
9
  sha256Hex
10
- } from "./chunk-RWW3I3PO.js";
10
+ } from "./chunk-ISRKW4YN.js";
11
11
  import {
12
12
  openEnvelopeJson
13
- } from "./chunk-GEEJPID6.js";
13
+ } from "./chunk-RZPOZPZU.js";
14
14
  import {
15
15
  encrypt
16
- } from "./chunk-7U6AB7DZ.js";
16
+ } from "./chunk-AKKRXT23.js";
17
17
  import {
18
18
  NOYDB_FORMAT_VERSION
19
- } from "./chunk-YTW6ZIPD.js";
19
+ } from "./chunk-GZACYEOB.js";
20
20
  import {
21
21
  ConflictError,
22
22
  LedgerContentionError
23
- } from "./chunk-6SYOHUHM.js";
23
+ } from "./chunk-QZWTRENR.js";
24
24
 
25
25
  // src/with-commit/history/ledger/patch.ts
26
26
  function computePatch(prev, next) {
@@ -717,4 +717,4 @@ export {
717
717
  applyPatch,
718
718
  LedgerStore
719
719
  };
720
- //# sourceMappingURL=chunk-5ATANZSW.js.map
720
+ //# sourceMappingURL=chunk-Y6VZQGGH.js.map
@@ -0,0 +1,23 @@
1
+ // src/with-lookup/reduce/strategy.ts
2
+ var NOT_ENABLED = new Error(
3
+ 'Aggregate / groupBy is not enabled on this Noydb instance. Import `{ withReduce }` from "@noy-db/hub/reduce" and pass it to `createNoydb({ reduceStrategy: withReduce() })`.'
4
+ );
5
+ var NO_REDUCE = {
6
+ aggregate() {
7
+ throw NOT_ENABLED;
8
+ },
9
+ groupBy() {
10
+ throw NOT_ENABLED;
11
+ },
12
+ groupByN() {
13
+ throw NOT_ENABLED;
14
+ },
15
+ scanAggregate() {
16
+ throw NOT_ENABLED;
17
+ }
18
+ };
19
+
20
+ export {
21
+ NO_REDUCE
22
+ };
23
+ //# sourceMappingURL=chunk-YMUFFJCO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/with-lookup/reduce/strategy.ts"],"sourcesContent":["/**\n * Strategy seam between the core Query / ScanBuilder chain and the\n * optional aggregate / groupBy service. Core imports\n * `ReduceStrategy` as a TYPE-ONLY symbol and `NO_REDUCE` as a\n * tiny runtime stub.\n *\n * The heavy machinery — `Reduction`, `GroupedQuery`, the\n * reducer-step logic — is only reachable from `withReduce()` in\n * `./active.ts`, which is only exported through the\n * `@noy-db/hub/reduce` subpath. Consumers that don't import the\n * subpath ship none of the ~886 LOC.\n *\n * @internal\n */\n\nimport type {\n Reduction,\n ReduceSpec,\n ReduceResult,\n ReductionUpstream,\n} from './reduction.js'\nimport type { GroupedQuery, GroupedQueryN } from './groupby.js'\nimport type { ViaPipeline } from '../../kernel/via/pipeline.js'\n\n/**\n * Seam interface. `@internal` — will promote to public only when the\n * aggregate service is extracted into its own package.\n *\n * @internal\n */\nexport interface ReduceStrategy {\n /**\n * Build an `Reduction<R>` for `Query.aggregate(spec)`. `executeRecords`\n * is a closure that produces the matching record set when the\n * reduction runs. NO_REDUCE throws; the active strategy\n * constructs a real `Reduction`.\n */\n aggregate<Spec extends ReduceSpec>(\n executeRecords: () => readonly unknown[],\n spec: Spec,\n upstreams: readonly ReductionUpstream[],\n ): Reduction<ReduceResult<Spec>>\n\n /**\n * Build a `GroupedQuery<T, F, S>` for `Query.groupBy(field)`. Same\n * closure / upstream inputs as `aggregate` plus the group key field.\n */\n groupBy<T, F extends string, S extends keyof T = never, M extends keyof T & string = never>(\n executeRecords: () => readonly unknown[],\n field: F,\n upstreams: readonly ReductionUpstream[],\n dictLabelResolver?: (\n key: string,\n locale: string,\n fallback?: string | readonly string[],\n ) => Promise<string | undefined>,\n via?: ViaPipeline,\n ): GroupedQuery<T, F, S, M>\n\n /**\n * Variadic-keyed sibling — builds a `GroupedQueryN<T, F, S>` for\n * `Query.groupBy(...fields)`. No dictLabelResolver — `<field>Label`\n * projection only applies to single-field groupings, which dispatch\n * through `groupBy` above.\n */\n groupByN<T, F extends readonly string[], S extends keyof T = never, M extends keyof T & string = never>(\n executeRecords: () => readonly unknown[],\n fields: F,\n upstreams: readonly ReductionUpstream[],\n via?: ViaPipeline,\n ): GroupedQueryN<T, F, S, M>\n\n /**\n * Terminal streaming aggregator for `ScanBuilder.aggregate(spec)`.\n * Takes an async iterable of decrypted records + the spec and\n * returns the reduced result.\n */\n scanAggregate<Spec extends ReduceSpec>(\n iter: AsyncIterable<unknown>,\n spec: Spec,\n ): Promise<ReduceResult<Spec>>\n}\n\nconst NOT_ENABLED = new Error(\n 'Aggregate / groupBy is not enabled on this Noydb instance. ' +\n 'Import `{ withReduce }` from \"@noy-db/hub/reduce\" and pass it to ' +\n '`createNoydb({ reduceStrategy: withReduce() })`.',\n)\n\n/**\n * No-aggregate stub. Every `.aggregate()` / `.groupBy()` / streaming\n * `scan().aggregate()` call throws with a pointer at the subpath. The\n * real `Reduction` / `GroupedQuery` classes are never referenced at\n * runtime, so the bundler drops the ~886 LOC.\n *\n * @internal\n */\nexport const NO_REDUCE: ReduceStrategy = {\n aggregate() { throw NOT_ENABLED },\n groupBy() { throw NOT_ENABLED },\n groupByN() { throw NOT_ENABLED },\n scanAggregate() { throw NOT_ENABLED },\n}\n"],"mappings":";AAmFA,IAAM,cAAc,IAAI;AAAA,EACtB;AAGF;AAUO,IAAM,YAA4B;AAAA,EACvC,YAAY;AAAE,UAAM;AAAA,EAAY;AAAA,EAChC,UAAU;AAAE,UAAM;AAAA,EAAY;AAAA,EAC9B,WAAW;AAAE,UAAM;AAAA,EAAY;AAAA,EAC/B,gBAAgB;AAAE,UAAM;AAAA,EAAY;AACtC;","names":[]}
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  installViaBinder
3
- } from "./chunk-ZUDAK436.js";
3
+ } from "./chunk-6UBZ6I5Z.js";
4
4
  import {
5
5
  SealedHandle
6
- } from "./chunk-YTW6ZIPD.js";
6
+ } from "./chunk-GZACYEOB.js";
7
7
  import {
8
8
  ClassifiedConfigError,
9
9
  ClassifiedNotEnabledError
10
- } from "./chunk-6SYOHUHM.js";
10
+ } from "./chunk-QZWTRENR.js";
11
11
 
12
12
  // src/via/classified/descriptor.ts
13
13
  function isClassifiedFieldSpec(x) {
@@ -262,4 +262,4 @@ export {
262
262
  enforceClassifiedWrite,
263
263
  NO_CLASSIFIED
264
264
  };
265
- //# sourceMappingURL=chunk-YZNKFYDC.js.map
265
+ //# sourceMappingURL=chunk-ZFUFAHZ3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  OverlayIdMismatchError
3
- } from "./chunk-6SYOHUHM.js";
3
+ } from "./chunk-QZWTRENR.js";
4
4
 
5
5
  // src/with-formula/overlay-views/virtual-collection.ts
6
6
  var OverlayedCollection = class {
@@ -206,4 +206,4 @@ var OverlayedCollection = class {
206
206
  export {
207
207
  OverlayedCollection
208
208
  };
209
- //# sourceMappingURL=chunk-PWWWMRT7.js.map
209
+ //# sourceMappingURL=chunk-ZTLOXFPB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/with-formula/overlay-views/virtual-collection.ts"],"sourcesContent":["import { OverlayIdMismatchError } from '../../kernel/errors.js'\nimport type { Collection } from '../../kernel/collection.js'\nimport type { OverlayedViewSpec } from './types.js'\n\n/**\n * Virtual-collection proxy returned by `vault.collection(overlayName)`\n * when `overlayName` is a registered `withOverlayedView`.\n *\n * Implements the core `Collection<T>`-shaped read/write surface with\n * merge-on-read semantics:\n * - `get(id)`: overlay row wins iff `overlay[shadowField] === shadowValue`;\n * when `spec.mergeMode` is set, an intermediate status may instead pull\n * a declared subset of fields from the overlay over the base\n * - `list()` / `.query()`: union of ids, per-id merge applied\n * - `put(record)` / `put(id, record)`: routes to overlay; id derived\n * via the base MV's `rowKey` (validated on the two-arg form)\n * - `delete(id)`: removes the overlay row only; base stays\n *\n * Reactive APIs (`live`, `subscribe`, `query().live()`) are out of\n * scope for this release and surface as \"not yet implemented\" — wired in a\n * future sub-issue.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class OverlayedCollection<T extends Record<string, unknown> = any> {\n constructor(\n private readonly spec: OverlayedViewSpec,\n private readonly baseCollection: Collection<T>,\n private readonly overlayCollection: Collection<T>,\n private readonly baseRowKey: ((row: Record<string, unknown>) => string) | undefined,\n ) {}\n\n /**\n * Convenience accessors for advanced callers that need to bypass the\n * virtual layer (bulk imports, direct overlay queries). Mirrors the\n * spec's \"direct writes to the underlying overlay collection skip\n * the validation\" escape hatch.\n */\n readonly overlay = {\n rowKey: (row: Record<string, unknown>): string => {\n if (!this.baseRowKey) {\n throw new Error(\n `Overlay \"${this.spec.name}\": base \"${this.spec.base}\" is not an MV — ` +\n `cannot auto-derive id from the row. Use \\`put(id, record)\\` instead.`,\n )\n }\n return this.baseRowKey(row)\n },\n }\n\n /** Get the merged row by id. */\n async get(id: string): Promise<T | null> {\n const overlayRow = await this.overlayCollection.get(id)\n const baseRow = await this.baseCollection.get(id)\n return this.mergeRows(overlayRow, baseRow)\n }\n\n /** List union of base + overlay ids, applying the merge per row. */\n async list(): Promise<T[]> {\n const baseRows = await this.baseCollection.list()\n const overlayRows = await this.overlayCollection.list()\n const idOf = (row: T): string => {\n // Best-effort: use baseRowKey if available, else assume the row\n // has a `.id` field (common pattern). The spec requires every\n // base MV to declare `rowKey`, so the first branch is the\n // canonical path.\n if (this.baseRowKey) return this.baseRowKey(row as Record<string, unknown>)\n const idField = (row as Record<string, unknown>).id\n return typeof idField === 'string' ? idField : ''\n }\n // Key base + overlay rows by id, then union the id sets and run the\n // same per-id merge `get()` uses. Nulls (overlay-only rows that\n // don't qualify and have no base) are filtered out.\n const baseById = new Map<string, T>()\n const overlayById = new Map<string, T>()\n for (const row of baseRows) {\n const id = idOf(row)\n if (id) baseById.set(id, row)\n }\n for (const row of overlayRows) {\n const id = idOf(row)\n if (id) overlayById.set(id, row)\n }\n const out: T[] = []\n for (const id of new Set([...baseById.keys(), ...overlayById.keys()])) {\n const merged = this.mergeRows(overlayById.get(id) ?? null, baseById.get(id) ?? null)\n if (merged !== null) out.push(merged)\n }\n return out\n }\n\n /**\n * Write to the overlay. Two forms:\n * - `put(record)`: id is derived via the base MV's `rowKey(record)`.\n * Throws if the base isn't an MV.\n * - `put(id, record)`: validates `id === rowKey(record)`; throws\n * `OverlayIdMismatchError` on mismatch.\n */\n async put(idOrRecord: string | T, maybeRecord?: T): Promise<void> {\n let id: string\n let record: T\n if (maybeRecord === undefined) {\n // Single-arg form: put(record). Derive id via base rowKey.\n record = idOrRecord as T\n if (!this.baseRowKey) {\n throw new Error(\n `Overlay \"${this.spec.name}\".put(record): base \"${this.spec.base}\" is not an MV. ` +\n `Use put(id, record) explicitly.`,\n )\n }\n id = this.baseRowKey(record as Record<string, unknown>)\n } else {\n // Two-arg form: put(id, record). Validate against rowKey.\n id = idOrRecord as string\n record = maybeRecord\n if (this.baseRowKey) {\n const expected = this.baseRowKey(record as Record<string, unknown>)\n if (id !== expected) {\n throw new OverlayIdMismatchError(id, expected)\n }\n }\n }\n await this.overlayCollection.put(id, record)\n }\n\n /**\n * Remove the overlay row only. Idempotent (no-op on absent).\n * The base row is untouched — if a base row exists for `id`,\n * subsequent reads return it.\n */\n async delete(id: string): Promise<void> {\n await this.overlayCollection.delete(id)\n }\n\n /**\n * Merge a single id's overlay + base rows into the visible row.\n *\n * Priority (first match wins):\n * 1. Binary shadow win — overlay present AND\n * `overlay[shadowField] === shadowValue` → return the overlay row\n * entirely. This stays FIRST so the original binary behaviour is\n * unchanged whether or not `mergeMode` is configured.\n * 2. Field-level merge — overlay present, `mergeMode` configured,\n * and a rule whose `whenStatus` equals `overlay[shadowField]`.\n * The matched rule pulls its `overlayFields` (those present on\n * the overlay row) on top of the base row. With no base row, the\n * overlay row is returned as-is.\n * 3. Fallback — return the base row (possibly `null`). An\n * overlay-only row that qualifies under neither (1) nor (2) and\n * has no base is therefore NOT surfaced.\n */\n private mergeRows(overlayRow: T | null, baseRow: T | null): T | null {\n const shadowField = this.spec.shadowField\n if (\n overlayRow !== null &&\n (overlayRow as Record<string, unknown>)[shadowField] === this.spec.shadowValue\n ) {\n return overlayRow\n }\n if (overlayRow !== null && this.spec.mergeMode) {\n const status = (overlayRow as Record<string, unknown>)[shadowField]\n const rule = this.spec.mergeMode.rules.find((r) => r.whenStatus === status)\n if (rule) {\n if (baseRow === null) return overlayRow\n const overlaySrc = overlayRow as Record<string, unknown>\n const picked: Record<string, unknown> = {}\n for (const field of rule.overlayFields) {\n if (field in overlaySrc) picked[field] = overlaySrc[field]\n }\n return { ...(baseRow as Record<string, unknown>), ...picked } as T\n }\n }\n return baseRow\n }\n\n // ─── Throw-stubs for the unimplemented Collection<T> surface ───────\n //\n // `Vault.collection(name)` widens the return type to `Collection<T>`\n // for the overlay intercept, but `OverlayedCollection` doesn't\n // implement the full surface. These stubs catch the common\n // reactive / chainable APIs with a clear \"not yet implemented\"\n // error pointing at the relevant issue — so consumers don't hit a\n // cryptic `undefined is not a function` runtime crash.\n //\n // Throw-stubs so consumers get actionable errors rather than cryptic crashes.\n\n /** @throws — chainable Query<T> over a virtual collection is deferred. */\n query(): never {\n throw new Error(\n `OverlayedCollection \"${this.spec.name}\".query() is not yet implemented for overlay views (#154). ` +\n `Use \\`list()\\` + filter for now, or read from the underlying \\`${this.spec.base}\\` / \\`${this.spec.overlay}\\` collections directly. ` +\n `Reactive APIs land in a future MV sub-issue.`,\n )\n }\n\n /** @throws — change-stream subscription over a virtual collection is deferred. */\n subscribe(): never {\n throw new Error(\n `OverlayedCollection \"${this.spec.name}\".subscribe() is not yet implemented for overlay views (#154). ` +\n `Subscribe to the underlying \\`${this.spec.base}\\` / \\`${this.spec.overlay}\\` collections individually for now. ` +\n `Merged change-stream lands in a future MV sub-issue.`,\n )\n }\n\n /** @throws — live query over a virtual collection is deferred. */\n live(): never {\n throw new Error(\n `OverlayedCollection \"${this.spec.name}\".live() is not yet implemented for overlay views (#154). ` +\n `Reactive APIs land in a future MV sub-issue.`,\n )\n }\n\n /** @throws — async iteration over a virtual collection is deferred. */\n scan(): never {\n throw new Error(\n `OverlayedCollection \"${this.spec.name}\".scan() is not yet implemented for overlay views (#154). ` +\n `Use \\`list()\\` for now (no row-count ceiling at niwat scale), or scan the underlying collections directly.`,\n )\n }\n\n /** @throws — lazy-mode query is not applicable to virtual collections. */\n lazyQuery(): never {\n throw new Error(\n `OverlayedCollection \"${this.spec.name}\".lazyQuery() is not supported. ` +\n `Virtual collections always materialize through base + overlay reads — lazy-mode indexed lookups don't apply.`,\n )\n }\n\n /** @throws — bulk-atomic put is deferred to a future MV sub-issue. */\n putManyAtomic(): never {\n throw new Error(\n `OverlayedCollection \"${this.spec.name}\".putManyAtomic() is not yet implemented for overlay views (#154). ` +\n `Use sequential \\`.put(record)\\` calls for now, or write to \\`${this.spec.overlay}\\` directly.`,\n )\n }\n\n /** @throws — bulk delete is deferred to a future MV sub-issue. */\n deleteMany(): never {\n throw new Error(\n `OverlayedCollection \"${this.spec.name}\".deleteMany() is not yet implemented for overlay views (#154). ` +\n `Use sequential \\`.delete(id)\\` calls for now, or operate on \\`${this.spec.overlay}\\` directly.`,\n )\n }\n\n /** @throws — `.first()` over a virtual collection is deferred. */\n first(): never {\n throw new Error(\n `OverlayedCollection \"${this.spec.name}\".first() is not yet implemented for overlay views (#154). ` +\n `Use \\`(await list())[0]\\` for now.`,\n )\n }\n\n /** @throws — `.count()` over a virtual collection is deferred. */\n count(): never {\n throw new Error(\n `OverlayedCollection \"${this.spec.name}\".count() is not yet implemented for overlay views (#154). ` +\n `Use \\`(await list()).length\\` for now.`,\n )\n }\n}\n"],"mappings":"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","names":[]}
@@ -3,20 +3,10 @@ import {
3
3
  } from "./chunk-VYYM3MEN.js";
4
4
  import {
5
5
  derivePersistedSchema
6
- } from "./chunk-SEU6QHH4.js";
6
+ } from "./chunk-6ZNSB3H6.js";
7
7
  import {
8
8
  loadPersistedSchema
9
- } from "./chunk-S4YERMGJ.js";
10
- import "./chunk-GEEJPID6.js";
11
- import "./chunk-SC4JLMZI.js";
12
- import "./chunk-5WLDZZ6S.js";
13
- import "./chunk-5HSSTOOG.js";
14
- import "./chunk-G4MFQXYX.js";
15
- import "./chunk-LP7BEXCT.js";
16
- import "./chunk-7U6AB7DZ.js";
17
- import "./chunk-YTW6ZIPD.js";
18
- import "./chunk-6SYOHUHM.js";
19
- import "./chunk-PZ5AY32C.js";
9
+ } from "./chunk-OBPVWOSQ.js";
20
10
 
21
11
  // src/with-shape/introspection/walk.ts
22
12
  var INTERNAL_PREFIX = "_";
@@ -235,7 +225,8 @@ function summariseAggregateOp(value) {
235
225
  }
236
226
  return String(value);
237
227
  }
228
+
238
229
  export {
239
230
  dumpVaultSchema
240
231
  };
241
- //# sourceMappingURL=walk-E3OVLBFR.js.map
232
+ //# sourceMappingURL=chunk-ZWBKDKXC.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/with-shape/introspection/walk.ts"],"sourcesContent":["/**\n * Orchestrate the structural walk of a Vault, producing a\n * {@link VaultSchemaSnapshot}. Called from `Vault.dumpSchema()`.\n *\n * @module\n */\n\nimport { derivePersistedSchema } from '../persisted-schemas/derive.js'\nimport { loadPersistedSchema } from '../persisted-schemas/storage.js'\nimport { jsonSchemaToFields } from './fields.js'\nimport type {\n CollectionConfig,\n CollectionDescriptor,\n CollectionStats,\n DumpSchemaOptions,\n FieldDescriptor,\n InternalCollectionStats,\n MaterializedViewDescriptor,\n OverlayViewDescriptor,\n DerivationDescriptor,\n VaultSchemaSnapshot,\n} from './types.js'\nimport type { Collection } from '../../kernel/collection.js'\nimport type { NoydbStore } from '../../kernel/types.js'\nimport type { UnlockedKeyring } from '../../with-party/team/keyring.js'\nimport type { RefRegistry } from '../../kernel/refs.js'\nimport type { VaultMeta } from './meta.js'\nimport type { EnclaveKey } from '../../kernel/enclave/index.js'\n\n/**\n * The minimal slice of Vault internal state the walker needs.\n * Exposed via `vault._introspectState()` to keep the public Vault\n * surface narrow.\n *\n * @internal\n */\nexport interface VaultIntrospectState {\n readonly name: string\n readonly adapter: NoydbStore\n readonly collectionCache: Map<string, Collection<unknown>>\n readonly refRegistry: RefRegistry\n readonly getDEK: (collectionName: string) => Promise<EnclaveKey>\n /** The active unlocked keyring — role/permissions/userId for access-scoped ops. */\n readonly keyring: UnlockedKeyring\n readonly subsystems: Record<string, boolean>\n /** Vault-level descriptive metadata, when set via `openVault({meta})`. */\n readonly vaultMeta?: VaultMeta\n // Typed loosely on purpose — these are private service registries\n // accessed only for \"is anything registered\" enumeration.\n readonly mvRegistry: unknown\n readonly overlayRegistry: unknown\n readonly derivationRegistry: unknown\n /**\n * Returns the registered schema-update strategy names for a collection,\n * or `undefined` when none are registered. Populated from\n * `vault.#schemaUpdateNames` in `_introspectState()`.\n */\n readonly getCollectionSchemaUpdateNames?: (col: string) => readonly string[] | undefined\n /**\n * Returns `true` when the collection has an archive policy registered\n * in `vault.archiveRegistry`, `false` otherwise. Populated from\n * `vault.archiveRegistry` in `_introspectState()`.\n */\n readonly hasCollectionArchive?: (col: string) => boolean\n}\n\nconst INTERNAL_PREFIX = '_'\n\n/** Reserved internal collections always present in any real vault. */\nconst KNOWN_INTERNAL_NAMES = ['_keyring', '_ledger', '_meta', '_schemas', '_deltas']\n\nexport async function dumpVaultSchema(\n vault: { _introspectState(): VaultIntrospectState },\n opts: DumpSchemaOptions,\n): Promise<VaultSchemaSnapshot> {\n const state = vault._introspectState()\n const sampleSize = opts.sampleSize ?? 50\n const withStats = opts.withStats === true\n\n // 1. User-facing collections — alphabetical for diff stability\n const cacheNames = [...state.collectionCache.keys()]\n const storageNames = (await safeListAllCollections(state.adapter, state.name))\n .filter((n) => !n.startsWith(INTERNAL_PREFIX))\n const allNames = Array.from(new Set([...cacheNames, ...storageNames])).sort()\n\n const collections: Record<string, CollectionDescriptor> = {}\n for (const name of allNames) {\n collections[name] = await describeCollection(state, name, sampleSize, withStats)\n }\n\n // 2. Materialized views (placeholder — real walk in MV slice 2 follow-up)\n const materializedViews = describeMVs(state.mvRegistry)\n // 3. Overlay views\n const overlayViews = describeOverlays(state.overlayRegistry)\n // 4. Derivations\n const derivations = describeDerivations(state.derivationRegistry)\n\n // 5. Internal collections — only with stats\n let internal: Record<string, InternalCollectionStats> | undefined\n if (withStats) {\n internal = {}\n for (const name of KNOWN_INTERNAL_NAMES) {\n const stats = await statsForCollection(state.adapter, state.name, name)\n if (stats.records > 0) {\n internal[name] = { records: stats.records, bytes: stats.bytes }\n }\n }\n }\n\n const snap: VaultSchemaSnapshot = {\n _noydb_snapshot: 1,\n vault: state.name,\n emittedAt: new Date().toISOString(),\n subsystems: state.subsystems,\n ...(state.vaultMeta !== undefined ? { meta: state.vaultMeta } : {}),\n collections,\n materializedViews,\n overlayViews,\n derivations,\n ...(internal !== undefined ? { internal } : {}),\n }\n return snap\n}\n\nasync function safeListAllCollections(adapter: NoydbStore, vault: string): Promise<string[]> {\n try {\n const snap = await adapter.loadAll(vault)\n return Object.keys(snap)\n } catch {\n return []\n }\n}\n\nasync function describeCollection(\n state: VaultIntrospectState,\n collectionName: string,\n sampleSize: number,\n withStats: boolean,\n): Promise<CollectionDescriptor> {\n let fields: Record<string, FieldDescriptor> = {}\n let validator: CollectionDescriptor['validator']\n\n const refsRaw = state.refRegistry.getOutbound(collectionName)\n const refs: CollectionDescriptor['refs'] = {}\n for (const [name, desc] of Object.entries(refsRaw)) {\n refs[name] = { target: desc.target, mode: desc.mode }\n }\n\n // 1. Try the persisted Route B envelope first.\n try {\n const dek = await state.getDEK(collectionName)\n const persisted = await loadPersistedSchema(state.adapter, state.name, collectionName, dek)\n if (persisted) {\n validator = { kind: persisted.kind, source: 'persisted' }\n if (persisted.jsonSchema) {\n fields = jsonSchemaToFields(persisted.jsonSchema, 'persisted', refsRaw)\n }\n }\n } catch {\n // No DEK or decrypt failure — fall through to live-validator\n }\n\n const liveColl = state.collectionCache.get(collectionName)\n\n // 2. Try the live in-process validator (when no persisted envelope).\n if (!validator) {\n const schema = liveColl?.getSchema()\n if (schema) {\n try {\n const derived = await derivePersistedSchema(schema)\n validator = { kind: derived.kind, source: 'live-validator' }\n if (derived.jsonSchema) {\n fields = jsonSchemaToFields(derived.jsonSchema, 'live-validator', refsRaw)\n }\n } catch {\n // Derivation failed (e.g. missing peer-dep) — silently leave fields empty\n }\n }\n }\n\n // 3. Sampling fallback — deferred to a follow-up. For now: empty when no schema.\n if (Object.keys(fields).length === 0 && sampleSize > 0) {\n // Sampling path not implemented in baseline slice 2; reserved for follow-up.\n }\n\n // Populate collection-level meta and config from the live collection when available.\n const collMeta = liveColl?.getMeta()\n const collConfig = liveColl?.getConfig()\n\n // Thread vault-level config (archive + schemaUpdate) that the Collection cannot see.\n const archivePresent = state.hasCollectionArchive?.(collectionName) === true\n const schemaUpdateNames = state.getCollectionSchemaUpdateNames?.(collectionName)\n const hasSchemaUpdate = schemaUpdateNames !== undefined && schemaUpdateNames.length > 0\n\n // Merge Collection-level config with vault-level fields. Omit config entirely\n // when all sources are empty.\n let mergedConfig: CollectionConfig | undefined\n if (collConfig !== undefined || archivePresent || hasSchemaUpdate) {\n mergedConfig = {\n ...(collConfig ?? {}),\n ...(archivePresent ? { archive: true as const } : {}),\n ...(hasSchemaUpdate ? { schemaUpdate: schemaUpdateNames } : {}),\n }\n }\n\n const descriptor: CollectionDescriptor = {\n fields,\n indexes: [],\n refs,\n ...(validator ? { validator } : {}),\n ...(collMeta !== undefined ? { meta: collMeta } : {}),\n ...(mergedConfig !== undefined ? { config: mergedConfig } : {}),\n }\n if (withStats) {\n const stats = await statsForCollection(state.adapter, state.name, collectionName)\n ;(descriptor as { stats?: CollectionStats }).stats = stats\n }\n return descriptor\n}\n\nasync function statsForCollection(\n adapter: NoydbStore,\n vault: string,\n collection: string,\n): Promise<CollectionStats> {\n const ids = await adapter.list(vault, collection)\n if (ids.length === 0) {\n return { records: 0, bytes: 0, bytesAvg: 0, bytesMin: 0, bytesMax: 0, oldest: '', newest: '' }\n }\n let total = 0\n let min = Number.POSITIVE_INFINITY\n let max = 0\n let oldest = '￿'\n let newest = ''\n for (const id of ids) {\n const env = await adapter.get(vault, collection, id)\n if (!env) continue\n const size = env._data.length\n total += size\n if (size < min) min = size\n if (size > max) max = size\n if (env._ts < oldest) oldest = env._ts\n if (env._ts > newest) newest = env._ts\n }\n return {\n records: ids.length,\n bytes: total,\n bytesAvg: Math.round(total / ids.length),\n bytesMin: min === Number.POSITIVE_INFINITY ? 0 : min,\n bytesMax: max,\n oldest: oldest === '￿' ? '' : oldest,\n newest,\n }\n}\n\nfunction describeMVs(registry: unknown): Record<string, MaterializedViewDescriptor> {\n if (!registry || typeof registry !== 'object') return {}\n const items = listFromRegistry(registry as Record<string, unknown>)\n const out: Record<string, MaterializedViewDescriptor> = {}\n // Each item is RegisteredMV { spec, dependencies, outputCollection, ... }\n for (const item of items) {\n const reg = item as {\n spec?: {\n name?: string\n unionSources?: ReadonlyArray<{ collection: string }>\n groupBy?: string | ReadonlyArray<string>\n aggregate?: Record<string, unknown>\n refresh?: string\n }\n dependencies?: ReadonlySet<string>\n }\n const spec = reg.spec\n if (!spec?.name) continue\n const sources = spec.unionSources\n ? spec.unionSources.map((u) => u.collection)\n : (reg.dependencies ? [...reg.dependencies].sort() : [])\n const groupBy = spec.groupBy\n ? Array.isArray(spec.groupBy) ? [...spec.groupBy] : [spec.groupBy]\n : undefined\n const aggregate = spec.aggregate ? Object.fromEntries(\n Object.entries(spec.aggregate).map(([k, v]) => [k, summariseAggregateOp(v)]),\n ) : undefined\n out[spec.name] = {\n sources,\n ...(groupBy ? { groupBy } : {}),\n ...(aggregate ? { aggregate } : {}),\n refresh: spec.refresh ?? 'eager',\n }\n }\n return out\n}\n\nfunction describeOverlays(registry: unknown): Record<string, OverlayViewDescriptor> {\n if (!registry || typeof registry !== 'object') return {}\n const specs = listFromRegistry(registry as Record<string, unknown>)\n const out: Record<string, OverlayViewDescriptor> = {}\n for (const spec of specs) {\n const s = spec as { name?: string; base?: string; overlay?: string }\n if (!s.name || !s.base || !s.overlay) continue\n out[s.name] = { base: s.base, overlay: s.overlay }\n }\n return out\n}\n\nfunction describeDerivations(registry: unknown): Record<string, DerivationDescriptor> {\n if (!registry || typeof registry !== 'object') return {}\n const items = listFromRegistry(registry as Record<string, unknown>)\n const out: Record<string, DerivationDescriptor> = {}\n for (const item of items) {\n // `all()` on DerivationRegistry returns RegisteredStrategy objects:\n // { spec: DerivationStrategy, strategyHash }. Read `spec` and fall\n // back to the item itself for forward-compat with other registries.\n const reg = item as { spec?: { source?: string; outputs?: Record<string, { collection: string }> }; source?: string; outputs?: Record<string, { collection: string }> }\n const s = reg.spec ?? reg\n if (!s.source) continue\n const outputCollections = s.outputs\n ? Object.values(s.outputs).map((o) => (o as { collection: string }).collection)\n : []\n // Key by sorted output-collection names so co-sourced derivations don't\n // collide. A single-output derivation keys as just that collection name\n // (e.g. 'billSummary'); multi-output keys as sorted join (e.g. 'a+b').\n // Falls back to source when no outputs are declared (defensive).\n const key = outputCollections.length > 0\n ? [...outputCollections].sort().join('+')\n : s.source\n out[key] = {\n source: s.source,\n outputs: outputCollections,\n }\n }\n return out\n}\n\nfunction listFromRegistry(reg: Record<string, unknown>): readonly unknown[] {\n // Registries expose different accessor methods; try the common ones.\n for (const method of ['all', 'list', 'specs', 'values']) {\n const fn = reg[method]\n if (typeof fn === 'function') {\n try {\n const out = (fn as () => unknown).call(reg)\n if (Array.isArray(out)) return out\n if (out && typeof (out as { values?: () => unknown }).values === 'function') {\n return [...(out as { values: () => Iterable<unknown> }).values()]\n }\n } catch {\n continue\n }\n }\n }\n return []\n}\n\nfunction summariseAggregateOp(value: unknown): string {\n if (value && typeof value === 'object') {\n const op = (value as { op?: string; kind?: string; field?: string }).op\n ?? (value as { kind?: string }).kind\n const field = (value as { field?: string }).field\n if (op && field) return `${op}(${field})`\n if (op) return op\n }\n return String(value)\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/with-shape/introspection/walk.ts"],"sourcesContent":["/**\n * Orchestrate the structural walk of a Vault, producing a\n * {@link VaultSchemaSnapshot}. Called from `Vault.dumpSchema()`.\n *\n * @module\n */\n\nimport { derivePersistedSchema } from '../persisted-schemas/derive.js'\nimport { loadPersistedSchema } from '../persisted-schemas/storage.js'\nimport { jsonSchemaToFields } from './fields.js'\nimport type {\n CollectionConfig,\n CollectionDescriptor,\n CollectionStats,\n DumpSchemaOptions,\n FieldDescriptor,\n InternalCollectionStats,\n MaterializedViewDescriptor,\n OverlayViewDescriptor,\n DerivationDescriptor,\n VaultSchemaSnapshot,\n} from './types.js'\nimport type { Collection } from '../../kernel/collection.js'\nimport type { NoydbStore } from '../../kernel/types.js'\nimport type { UnlockedKeyring } from '../../with-party/team/keyring.js'\nimport type { RefRegistry } from '../../kernel/refs.js'\nimport type { VaultMeta } from './meta.js'\nimport type { EnclaveKey } from '../../kernel/enclave/index.js'\n\n/**\n * The minimal slice of Vault internal state the walker needs.\n * Exposed via `vault._introspectState()` to keep the public Vault\n * surface narrow.\n *\n * @internal\n */\nexport interface VaultIntrospectState {\n readonly name: string\n readonly adapter: NoydbStore\n readonly collectionCache: Map<string, Collection<unknown>>\n readonly refRegistry: RefRegistry\n readonly getDEK: (collectionName: string) => Promise<EnclaveKey>\n /** The active unlocked keyring — role/permissions/userId for access-scoped ops. */\n readonly keyring: UnlockedKeyring\n readonly subsystems: Record<string, boolean>\n /** Vault-level descriptive metadata, when set via `openVault({meta})`. */\n readonly vaultMeta?: VaultMeta\n // Typed loosely on purpose — these are private service registries\n // accessed only for \"is anything registered\" enumeration.\n readonly mvRegistry: unknown\n readonly overlayRegistry: unknown\n readonly derivationRegistry: unknown\n /**\n * Returns the registered schema-update strategy names for a collection,\n * or `undefined` when none are registered. Populated from\n * `vault.#schemaUpdateNames` in `_introspectState()`.\n */\n readonly getCollectionSchemaUpdateNames?: (col: string) => readonly string[] | undefined\n /**\n * Returns `true` when the collection has an archive policy registered\n * in `vault.archiveRegistry`, `false` otherwise. Populated from\n * `vault.archiveRegistry` in `_introspectState()`.\n */\n readonly hasCollectionArchive?: (col: string) => boolean\n}\n\nconst INTERNAL_PREFIX = '_'\n\n/** Reserved internal collections always present in any real vault. */\nconst KNOWN_INTERNAL_NAMES = ['_keyring', '_ledger', '_meta', '_schemas', '_deltas']\n\nexport async function dumpVaultSchema(\n vault: { _introspectState(): VaultIntrospectState },\n opts: DumpSchemaOptions,\n): Promise<VaultSchemaSnapshot> {\n const state = vault._introspectState()\n const sampleSize = opts.sampleSize ?? 50\n const withStats = opts.withStats === true\n\n // 1. User-facing collections — alphabetical for diff stability\n const cacheNames = [...state.collectionCache.keys()]\n const storageNames = (await safeListAllCollections(state.adapter, state.name))\n .filter((n) => !n.startsWith(INTERNAL_PREFIX))\n const allNames = Array.from(new Set([...cacheNames, ...storageNames])).sort()\n\n const collections: Record<string, CollectionDescriptor> = {}\n for (const name of allNames) {\n collections[name] = await describeCollection(state, name, sampleSize, withStats)\n }\n\n // 2. Materialized views (placeholder — real walk in MV slice 2 follow-up)\n const materializedViews = describeMVs(state.mvRegistry)\n // 3. Overlay views\n const overlayViews = describeOverlays(state.overlayRegistry)\n // 4. Derivations\n const derivations = describeDerivations(state.derivationRegistry)\n\n // 5. Internal collections — only with stats\n let internal: Record<string, InternalCollectionStats> | undefined\n if (withStats) {\n internal = {}\n for (const name of KNOWN_INTERNAL_NAMES) {\n const stats = await statsForCollection(state.adapter, state.name, name)\n if (stats.records > 0) {\n internal[name] = { records: stats.records, bytes: stats.bytes }\n }\n }\n }\n\n const snap: VaultSchemaSnapshot = {\n _noydb_snapshot: 1,\n vault: state.name,\n emittedAt: new Date().toISOString(),\n subsystems: state.subsystems,\n ...(state.vaultMeta !== undefined ? { meta: state.vaultMeta } : {}),\n collections,\n materializedViews,\n overlayViews,\n derivations,\n ...(internal !== undefined ? { internal } : {}),\n }\n return snap\n}\n\nasync function safeListAllCollections(adapter: NoydbStore, vault: string): Promise<string[]> {\n try {\n const snap = await adapter.loadAll(vault)\n return Object.keys(snap)\n } catch {\n return []\n }\n}\n\nasync function describeCollection(\n state: VaultIntrospectState,\n collectionName: string,\n sampleSize: number,\n withStats: boolean,\n): Promise<CollectionDescriptor> {\n let fields: Record<string, FieldDescriptor> = {}\n let validator: CollectionDescriptor['validator']\n\n const refsRaw = state.refRegistry.getOutbound(collectionName)\n const refs: CollectionDescriptor['refs'] = {}\n for (const [name, desc] of Object.entries(refsRaw)) {\n refs[name] = { target: desc.target, mode: desc.mode }\n }\n\n // 1. Try the persisted Route B envelope first.\n try {\n const dek = await state.getDEK(collectionName)\n const persisted = await loadPersistedSchema(state.adapter, state.name, collectionName, dek)\n if (persisted) {\n validator = { kind: persisted.kind, source: 'persisted' }\n if (persisted.jsonSchema) {\n fields = jsonSchemaToFields(persisted.jsonSchema, 'persisted', refsRaw)\n }\n }\n } catch {\n // No DEK or decrypt failure — fall through to live-validator\n }\n\n const liveColl = state.collectionCache.get(collectionName)\n\n // 2. Try the live in-process validator (when no persisted envelope).\n if (!validator) {\n const schema = liveColl?.getSchema()\n if (schema) {\n try {\n const derived = await derivePersistedSchema(schema)\n validator = { kind: derived.kind, source: 'live-validator' }\n if (derived.jsonSchema) {\n fields = jsonSchemaToFields(derived.jsonSchema, 'live-validator', refsRaw)\n }\n } catch {\n // Derivation failed (e.g. missing peer-dep) — silently leave fields empty\n }\n }\n }\n\n // 3. Sampling fallback — deferred to a follow-up. For now: empty when no schema.\n if (Object.keys(fields).length === 0 && sampleSize > 0) {\n // Sampling path not implemented in baseline slice 2; reserved for follow-up.\n }\n\n // Populate collection-level meta and config from the live collection when available.\n const collMeta = liveColl?.getMeta()\n const collConfig = liveColl?.getConfig()\n\n // Thread vault-level config (archive + schemaUpdate) that the Collection cannot see.\n const archivePresent = state.hasCollectionArchive?.(collectionName) === true\n const schemaUpdateNames = state.getCollectionSchemaUpdateNames?.(collectionName)\n const hasSchemaUpdate = schemaUpdateNames !== undefined && schemaUpdateNames.length > 0\n\n // Merge Collection-level config with vault-level fields. Omit config entirely\n // when all sources are empty.\n let mergedConfig: CollectionConfig | undefined\n if (collConfig !== undefined || archivePresent || hasSchemaUpdate) {\n mergedConfig = {\n ...(collConfig ?? {}),\n ...(archivePresent ? { archive: true as const } : {}),\n ...(hasSchemaUpdate ? { schemaUpdate: schemaUpdateNames } : {}),\n }\n }\n\n const descriptor: CollectionDescriptor = {\n fields,\n indexes: [],\n refs,\n ...(validator ? { validator } : {}),\n ...(collMeta !== undefined ? { meta: collMeta } : {}),\n ...(mergedConfig !== undefined ? { config: mergedConfig } : {}),\n }\n if (withStats) {\n const stats = await statsForCollection(state.adapter, state.name, collectionName)\n ;(descriptor as { stats?: CollectionStats }).stats = stats\n }\n return descriptor\n}\n\nasync function statsForCollection(\n adapter: NoydbStore,\n vault: string,\n collection: string,\n): Promise<CollectionStats> {\n const ids = await adapter.list(vault, collection)\n if (ids.length === 0) {\n return { records: 0, bytes: 0, bytesAvg: 0, bytesMin: 0, bytesMax: 0, oldest: '', newest: '' }\n }\n let total = 0\n let min = Number.POSITIVE_INFINITY\n let max = 0\n let oldest = '￿'\n let newest = ''\n for (const id of ids) {\n const env = await adapter.get(vault, collection, id)\n if (!env) continue\n const size = env._data.length\n total += size\n if (size < min) min = size\n if (size > max) max = size\n if (env._ts < oldest) oldest = env._ts\n if (env._ts > newest) newest = env._ts\n }\n return {\n records: ids.length,\n bytes: total,\n bytesAvg: Math.round(total / ids.length),\n bytesMin: min === Number.POSITIVE_INFINITY ? 0 : min,\n bytesMax: max,\n oldest: oldest === '￿' ? '' : oldest,\n newest,\n }\n}\n\nfunction describeMVs(registry: unknown): Record<string, MaterializedViewDescriptor> {\n if (!registry || typeof registry !== 'object') return {}\n const items = listFromRegistry(registry as Record<string, unknown>)\n const out: Record<string, MaterializedViewDescriptor> = {}\n // Each item is RegisteredMV { spec, dependencies, outputCollection, ... }\n for (const item of items) {\n const reg = item as {\n spec?: {\n name?: string\n unionSources?: ReadonlyArray<{ collection: string }>\n groupBy?: string | ReadonlyArray<string>\n aggregate?: Record<string, unknown>\n refresh?: string\n }\n dependencies?: ReadonlySet<string>\n }\n const spec = reg.spec\n if (!spec?.name) continue\n const sources = spec.unionSources\n ? spec.unionSources.map((u) => u.collection)\n : (reg.dependencies ? [...reg.dependencies].sort() : [])\n const groupBy = spec.groupBy\n ? Array.isArray(spec.groupBy) ? [...spec.groupBy] : [spec.groupBy]\n : undefined\n const aggregate = spec.aggregate ? Object.fromEntries(\n Object.entries(spec.aggregate).map(([k, v]) => [k, summariseAggregateOp(v)]),\n ) : undefined\n out[spec.name] = {\n sources,\n ...(groupBy ? { groupBy } : {}),\n ...(aggregate ? { aggregate } : {}),\n refresh: spec.refresh ?? 'eager',\n }\n }\n return out\n}\n\nfunction describeOverlays(registry: unknown): Record<string, OverlayViewDescriptor> {\n if (!registry || typeof registry !== 'object') return {}\n const specs = listFromRegistry(registry as Record<string, unknown>)\n const out: Record<string, OverlayViewDescriptor> = {}\n for (const spec of specs) {\n const s = spec as { name?: string; base?: string; overlay?: string }\n if (!s.name || !s.base || !s.overlay) continue\n out[s.name] = { base: s.base, overlay: s.overlay }\n }\n return out\n}\n\nfunction describeDerivations(registry: unknown): Record<string, DerivationDescriptor> {\n if (!registry || typeof registry !== 'object') return {}\n const items = listFromRegistry(registry as Record<string, unknown>)\n const out: Record<string, DerivationDescriptor> = {}\n for (const item of items) {\n // `all()` on DerivationRegistry returns RegisteredStrategy objects:\n // { spec: DerivationSpec, strategyHash }. Read `spec` and fall\n // back to the item itself for forward-compat with other registries.\n const reg = item as { spec?: { source?: string; outputs?: Record<string, { collection: string }> }; source?: string; outputs?: Record<string, { collection: string }> }\n const s = reg.spec ?? reg\n if (!s.source) continue\n const outputCollections = s.outputs\n ? Object.values(s.outputs).map((o) => (o as { collection: string }).collection)\n : []\n // Key by sorted output-collection names so co-sourced derivations don't\n // collide. A single-output derivation keys as just that collection name\n // (e.g. 'billSummary'); multi-output keys as sorted join (e.g. 'a+b').\n // Falls back to source when no outputs are declared (defensive).\n const key = outputCollections.length > 0\n ? [...outputCollections].sort().join('+')\n : s.source\n out[key] = {\n source: s.source,\n outputs: outputCollections,\n }\n }\n return out\n}\n\nfunction listFromRegistry(reg: Record<string, unknown>): readonly unknown[] {\n // Registries expose different accessor methods; try the common ones.\n for (const method of ['all', 'list', 'specs', 'values']) {\n const fn = reg[method]\n if (typeof fn === 'function') {\n try {\n const out = (fn as () => unknown).call(reg)\n if (Array.isArray(out)) return out\n if (out && typeof (out as { values?: () => unknown }).values === 'function') {\n return [...(out as { values: () => Iterable<unknown> }).values()]\n }\n } catch {\n continue\n }\n }\n }\n return []\n}\n\nfunction summariseAggregateOp(value: unknown): string {\n if (value && typeof value === 'object') {\n const op = (value as { op?: string; kind?: string; field?: string }).op\n ?? (value as { kind?: string }).kind\n const field = (value as { field?: string }).field\n if (op && field) return `${op}(${field})`\n if (op) return op\n }\n return String(value)\n}\n"],"mappings":"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","names":[]}
@@ -2,7 +2,7 @@ import {
2
2
  classified,
3
3
  luhnCheck,
4
4
  withClassified
5
- } from "../chunk-YQQPNXNO.js";
5
+ } from "../chunk-6L3DKWRY.js";
6
6
  import {
7
7
  ClassifiedNeverStoredError,
8
8
  ClassifiedValidationError,
@@ -11,15 +11,15 @@ import {
11
11
  isClassifiedFieldSpec,
12
12
  isClassifiedGroup,
13
13
  resolveClassifiedFields
14
- } from "../chunk-YZNKFYDC.js";
15
- import "../chunk-ZUDAK436.js";
16
- import "../chunk-YTW6ZIPD.js";
14
+ } from "../chunk-ZFUFAHZ3.js";
15
+ import "../chunk-6UBZ6I5Z.js";
16
+ import "../chunk-GZACYEOB.js";
17
17
  import {
18
18
  ClassifiedConfigError,
19
19
  ClassifiedRevealError,
20
20
  ClassifiedRotationError,
21
21
  ClassifiedVerifyError
22
- } from "../chunk-6SYOHUHM.js";
22
+ } from "../chunk-QZWTRENR.js";
23
23
  import "../chunk-PZ5AY32C.js";
24
24
  export {
25
25
  ClassifiedConfigError,
@@ -13,11 +13,11 @@ function markerForFields(vdigFields) {
13
13
  async function persistClassifiedMarkerForFields(store, vault, collectionName, vdigFields, dek) {
14
14
  const marker = markerForFields(vdigFields);
15
15
  if (marker === null) return;
16
- const { persistClassifiedMarker } = await import("./register-HB4TQZSV.js");
16
+ const { persistClassifiedMarker } = await import("./register-5W6CG4RM.js");
17
17
  await persistClassifiedMarker({ store, vault, collectionName, dek, marker });
18
18
  }
19
19
  async function readClassifiedMarkerDigestOnly(store, vault, collectionName, dek) {
20
- const { loadPersistedSchema } = await import("./storage-3R37QZLA.js");
20
+ const { loadPersistedSchema } = await import("./storage-B3WBKXKT.js");
21
21
  const persisted = await loadPersistedSchema(store, vault, collectionName, dek);
22
22
  return persisted?.classified?.digestOnly ?? [];
23
23
  }
@@ -25,4 +25,4 @@ export {
25
25
  persistClassifiedMarkerForFields,
26
26
  readClassifiedMarkerDigestOnly
27
27
  };
28
- //# sourceMappingURL=classified-marker-52P3D72W.js.map
28
+ //# sourceMappingURL=classified-marker-EOOSMWFC.js.map
@@ -0,0 +1,45 @@
1
+ import {
2
+ buildPersistedIndexCallbacks,
3
+ buildRetrievalDocs,
4
+ embedOnWrite,
5
+ flushIndex,
6
+ hasIndexedBlobFields,
7
+ rebuildEmbeddings,
8
+ retrieve,
9
+ search,
10
+ similarTo,
11
+ syncTierSearch,
12
+ warmIndex
13
+ } from "./chunk-CCDP6EPB.js";
14
+ import "./chunk-QADFHRQM.js";
15
+ import "./chunk-AURFOK3D.js";
16
+ import "./chunk-W3G5REIU.js";
17
+ import "./chunk-NEX7JCMO.js";
18
+ import "./chunk-UADPR6F4.js";
19
+ import "./chunk-6UBZ6I5Z.js";
20
+ import "./chunk-JYJFGD2H.js";
21
+ import "./chunk-ISRKW4YN.js";
22
+ import "./chunk-RZPOZPZU.js";
23
+ import "./chunk-VH6SOCXH.js";
24
+ import "./chunk-35NMVJ7I.js";
25
+ import "./chunk-NFZGZ4AK.js";
26
+ import "./chunk-QJNCB5SK.js";
27
+ import "./chunk-LP7BEXCT.js";
28
+ import "./chunk-AKKRXT23.js";
29
+ import "./chunk-GZACYEOB.js";
30
+ import "./chunk-QZWTRENR.js";
31
+ import "./chunk-PZ5AY32C.js";
32
+ export {
33
+ buildPersistedIndexCallbacks,
34
+ buildRetrievalDocs,
35
+ embedOnWrite,
36
+ flushIndex,
37
+ hasIndexedBlobFields,
38
+ rebuildEmbeddings,
39
+ retrieve,
40
+ search,
41
+ similarTo,
42
+ syncTierSearch,
43
+ warmIndex
44
+ };
45
+ //# sourceMappingURL=collection-facade-TTRF5NFJ.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  ComputedFieldError,
3
3
  evalComputedFields
4
- } from "./chunk-FHHYCBBP.js";
5
- import "./chunk-6SYOHUHM.js";
4
+ } from "./chunk-5DRROK5W.js";
5
+ import "./chunk-QZWTRENR.js";
6
6
  import "./chunk-PZ5AY32C.js";
7
7
  export {
8
8
  ComputedFieldError,
9
9
  evalComputedFields
10
10
  };
11
- //# sourceMappingURL=computed-33DRJDOC.js.map
11
+ //# sourceMappingURL=computed-AB45PS4V.js.map
@@ -2,17 +2,20 @@ import {
2
2
  CONSENT_AUDIT_COLLECTION,
3
3
  loadConsentEntries,
4
4
  writeConsentEntry
5
- } from "../chunk-R2N37AA6.js";
5
+ } from "../chunk-XIDQKFZF.js";
6
+ import {
7
+ NO_CONSENT
8
+ } from "../chunk-PEOZ34EM.js";
6
9
  import "../chunk-ZJADGNYF.js";
7
- import "../chunk-GEEJPID6.js";
8
- import "../chunk-SC4JLMZI.js";
9
- import "../chunk-5WLDZZ6S.js";
10
- import "../chunk-5HSSTOOG.js";
11
- import "../chunk-G4MFQXYX.js";
10
+ import "../chunk-RZPOZPZU.js";
11
+ import "../chunk-VH6SOCXH.js";
12
+ import "../chunk-35NMVJ7I.js";
13
+ import "../chunk-NFZGZ4AK.js";
14
+ import "../chunk-QJNCB5SK.js";
12
15
  import "../chunk-LP7BEXCT.js";
13
- import "../chunk-7U6AB7DZ.js";
14
- import "../chunk-YTW6ZIPD.js";
15
- import "../chunk-6SYOHUHM.js";
16
+ import "../chunk-AKKRXT23.js";
17
+ import "../chunk-GZACYEOB.js";
18
+ import "../chunk-QZWTRENR.js";
16
19
  import "../chunk-PZ5AY32C.js";
17
20
 
18
21
  // src/with-audit/consent/active.ts
@@ -24,6 +27,7 @@ function withConsent() {
24
27
  }
25
28
  export {
26
29
  CONSENT_AUDIT_COLLECTION,
30
+ NO_CONSENT,
27
31
  loadConsentEntries,
28
32
  withConsent,
29
33
  writeConsentEntry
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/with-audit/consent/active.ts"],"sourcesContent":["/**\n * Active consent strategy. Calling `withConsent()` returns a\n * `ConsentStrategy` that delegates to the real\n * `writeConsentEntry` / `loadConsentEntries` functions. Only\n * reachable through the `@noy-db/hub/consent` subpath.\n */\n\nimport { writeConsentEntry, loadConsentEntries } from './consent.js'\nimport type { ConsentStrategy } from './strategy.js'\n\n/**\n * Build the default consent strategy. Pass into\n * `createNoydb({ consentStrategy: withConsent() })` to enable\n * per-operation audit writes into the reserved `_consent_audit`\n * collection.\n */\nexport function withConsent(): ConsentStrategy {\n return {\n write: writeConsentEntry,\n read: loadConsentEntries,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAgBO,SAAS,cAA+B;AAC7C,SAAO;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/with-audit/consent/active.ts"],"sourcesContent":["/**\n * Active consent strategy. Calling `withConsent()` returns a\n * `ConsentStrategy` that delegates to the real\n * `writeConsentEntry` / `loadConsentEntries` functions. Only\n * reachable through the `@noy-db/hub/consent` subpath.\n */\n\nimport { writeConsentEntry, loadConsentEntries } from './consent.js'\nimport type { ConsentStrategy } from './strategy.js'\n\n/**\n * Build the default consent strategy. Pass into\n * `createNoydb({ consentStrategy: withConsent() })` to enable\n * per-operation audit writes into the reserved `_consent_audit`\n * collection.\n */\nexport function withConsent(): ConsentStrategy {\n return {\n write: writeConsentEntry,\n read: loadConsentEntries,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgBO,SAAS,cAA+B;AAC7C,SAAO;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;","names":[]}
@@ -2,7 +2,7 @@ import {
2
2
  COVER_FIELDS,
3
3
  DEFAULT_COVER_SCHEMA,
4
4
  resolveSchema
5
- } from "./chunk-QRHEAZ2Q.js";
5
+ } from "../chunk-CUZLNGD5.js";
6
6
  import {
7
7
  COVER_RECORD_ID,
8
8
  isCover,
@@ -14,10 +14,10 @@ import {
14
14
  saveCover,
15
15
  validateCoverInput,
16
16
  validateCoverSize
17
- } from "./chunk-YFFEF6HR.js";
18
- import "./chunk-YTW6ZIPD.js";
19
- import "./chunk-6SYOHUHM.js";
20
- import "./chunk-PZ5AY32C.js";
17
+ } from "../chunk-JIDLU57U.js";
18
+ import "../chunk-GZACYEOB.js";
19
+ import "../chunk-QZWTRENR.js";
20
+ import "../chunk-PZ5AY32C.js";
21
21
  export {
22
22
  COVER_FIELDS,
23
23
  COVER_RECORD_ID,
@@ -27,10 +27,11 @@ export {
27
27
  mergeCustom,
28
28
  pickLocale,
29
29
  readCover,
30
+ resolveSchema as resolveCoverSchema,
30
31
  resolveLocale,
31
32
  resolveSchema,
32
33
  saveCover,
33
34
  validateCoverInput,
34
35
  validateCoverSize
35
36
  };
36
- //# sourceMappingURL=cover-5BSNJREH.js.map
37
+ //# sourceMappingURL=index.js.map
@@ -4,6 +4,9 @@ import {
4
4
  mergeCrdtStates,
5
5
  resolveCrdtSnapshot
6
6
  } from "../chunk-4GPE63GU.js";
7
+ import {
8
+ NO_CRDT
9
+ } from "../chunk-PVEWA2DU.js";
7
10
  import "../chunk-PZ5AY32C.js";
8
11
 
9
12
  // src/with-commit/crdt/active.ts
@@ -16,6 +19,7 @@ function withCrdt() {
16
19
  };
17
20
  }
18
21
  export {
22
+ NO_CRDT,
19
23
  buildLwwMapState,
20
24
  buildRgaState,
21
25
  mergeCrdtStates,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/with-commit/crdt/active.ts"],"sourcesContent":["/**\n * Active CRDT strategy factory. Calling `withCrdt()` returns a\n * `CrdtStrategy` whose methods delegate to the real LWW-Map / RGA /\n * merge / snapshot helpers in `./crdt.ts`. Only reachable through\n * the `@noy-db/hub/crdt` subpath.\n */\n\nimport {\n buildLwwMapState,\n buildRgaState,\n mergeCrdtStates,\n resolveCrdtSnapshot,\n} from './crdt.js'\nimport type { CrdtStrategy } from './strategy.js'\n\n/**\n * Build the default CRDT strategy. Pass into\n * `createNoydb({ crdtStrategy: withCrdt() })` to enable collections\n * declared with `crdt: 'lww-map' | 'rga' | 'yjs'`.\n *\n * @example\n * ```ts\n * import { createNoydb } from '@noy-db/hub'\n * import { withCrdt } from '@noy-db/hub/crdt'\n *\n * const db = await createNoydb({\n * store, user, secret,\n * crdtStrategy: withCrdt(),\n * })\n * const notes = vault.collection('notes', { crdt: 'lww-map' })\n * ```\n */\nexport function withCrdt(): CrdtStrategy {\n return {\n buildLwwMapState,\n buildRgaState,\n mergeCrdtStates,\n resolveCrdtSnapshot,\n }\n}\n"],"mappings":";;;;;;;;;AAgCO,SAAS,WAAyB;AACvC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/with-commit/crdt/active.ts"],"sourcesContent":["/**\n * Active CRDT strategy factory. Calling `withCrdt()` returns a\n * `CrdtStrategy` whose methods delegate to the real LWW-Map / RGA /\n * merge / snapshot helpers in `./crdt.ts`. Only reachable through\n * the `@noy-db/hub/crdt` subpath.\n */\n\nimport {\n buildLwwMapState,\n buildRgaState,\n mergeCrdtStates,\n resolveCrdtSnapshot,\n} from './crdt.js'\nimport type { CrdtStrategy } from './strategy.js'\n\n/**\n * Build the default CRDT strategy. Pass into\n * `createNoydb({ crdtStrategy: withCrdt() })` to enable collections\n * declared with `crdt: 'lww-map' | 'rga' | 'yjs'`.\n *\n * @example\n * ```ts\n * import { createNoydb } from '@noy-db/hub'\n * import { withCrdt } from '@noy-db/hub/crdt'\n *\n * const db = await createNoydb({\n * store, user, secret,\n * crdtStrategy: withCrdt(),\n * })\n * const notes = vault.collection('notes', { crdt: 'lww-map' })\n * ```\n */\nexport function withCrdt(): CrdtStrategy {\n return {\n buildLwwMapState,\n buildRgaState,\n mergeCrdtStates,\n resolveCrdtSnapshot,\n }\n}\n"],"mappings":";;;;;;;;;;;;AAgCO,SAAS,WAAyB;AACvC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,26 @@
1
+ import {
2
+ CustodyApi,
3
+ NO_CUSTODY,
4
+ withCustody
5
+ } from "../chunk-SKM35Y4Q.js";
6
+ import "../chunk-KPXM4WO6.js";
7
+ import "../chunk-WZ3NCMK6.js";
8
+ import "../chunk-RZPOZPZU.js";
9
+ import "../chunk-VH6SOCXH.js";
10
+ import "../chunk-35NMVJ7I.js";
11
+ import "../chunk-NFZGZ4AK.js";
12
+ import "../chunk-QJNCB5SK.js";
13
+ import "../chunk-LP7BEXCT.js";
14
+ import "../chunk-AKKRXT23.js";
15
+ import "../chunk-GZACYEOB.js";
16
+ import {
17
+ CustodyNotEnabledError
18
+ } from "../chunk-QZWTRENR.js";
19
+ import "../chunk-PZ5AY32C.js";
20
+ export {
21
+ CustodyApi,
22
+ CustodyNotEnabledError,
23
+ NO_CUSTODY,
24
+ withCustody
25
+ };
26
+ //# sourceMappingURL=index.js.map
@@ -5,7 +5,7 @@ import "./chunk-PZ5AY32C.js";
5
5
 
6
6
  // src/with-shape/satellites/dead-filter.ts
7
7
  async function liveBaseIdSetsForBundle(store, vaultName, collectionNames, getDEK) {
8
- const { loadPersistedSchema } = await import("./storage-3R37QZLA.js");
8
+ const { loadPersistedSchema } = await import("./storage-B3WBKXKT.js");
9
9
  const out = /* @__PURE__ */ new Map();
10
10
  for (const name of collectionNames) {
11
11
  if (name.startsWith("_")) continue;
@@ -25,4 +25,4 @@ async function liveBaseIdSetsForBundle(store, vaultName, collectionNames, getDEK
25
25
  export {
26
26
  liveBaseIdSetsForBundle
27
27
  };
28
- //# sourceMappingURL=dead-filter-JXVCKS6W.js.map
28
+ //# sourceMappingURL=dead-filter-6DYY7S64.js.map