@noy-db/hub 0.2.0-pre.11 → 0.2.0-pre.13

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 (269) hide show
  1. package/README.md +126 -0
  2. package/dist/aggregate/index.cjs +289 -12
  3. package/dist/aggregate/index.cjs.map +1 -1
  4. package/dist/aggregate/index.d.cts +2 -2
  5. package/dist/aggregate/index.d.ts +2 -2
  6. package/dist/aggregate/index.js +7 -7
  7. package/dist/aggregate/index.js.map +1 -1
  8. package/dist/attestation/index.cjs.map +1 -1
  9. package/dist/attestation/index.d.cts +3 -3
  10. package/dist/attestation/index.d.ts +3 -3
  11. package/dist/attestation/index.js +6 -6
  12. package/dist/blobs/index.cjs +28 -0
  13. package/dist/blobs/index.cjs.map +1 -1
  14. package/dist/blobs/index.d.cts +4 -4
  15. package/dist/blobs/index.d.ts +4 -4
  16. package/dist/blobs/index.js +5 -5
  17. package/dist/bundle/index.cjs +2024 -69
  18. package/dist/bundle/index.cjs.map +1 -1
  19. package/dist/bundle/index.d.cts +5 -5
  20. package/dist/bundle/index.d.ts +5 -5
  21. package/dist/bundle/index.js +9 -9
  22. package/dist/{chunk-LSTBFLL2.js → chunk-3OUCWHV6.js} +2 -2
  23. package/dist/{chunk-7CEGU63S.js → chunk-3XZRRBFW.js} +2 -2
  24. package/dist/{chunk-RC6SU5NO.js → chunk-4VCQH32J.js} +2 -2
  25. package/dist/{chunk-ZROPXHJY.js → chunk-4YDZ7JPZ.js} +2 -2
  26. package/dist/{chunk-IMYKDWB4.js → chunk-5NISHSBO.js} +2 -2
  27. package/dist/{chunk-ZBBW7YQN.js → chunk-7TEI2K2A.js} +5 -5
  28. package/dist/{chunk-6T2UDBKG.js → chunk-AYNF7PVX.js} +2 -2
  29. package/dist/{chunk-QCXNMCHN.js → chunk-C3WRKABE.js} +4 -4
  30. package/dist/{chunk-GAUEWM7D.js → chunk-CWFQTAD4.js} +4 -4
  31. package/dist/{chunk-QSOYKKMD.js → chunk-D5Y3HIC6.js} +2 -2
  32. package/dist/{chunk-R233SLY3.js → chunk-E3DIBDKA.js} +2 -2
  33. package/dist/chunk-FNVFT4HZ.js +64 -0
  34. package/dist/chunk-FNVFT4HZ.js.map +1 -0
  35. package/dist/{chunk-SLV4LAKX.js → chunk-GC4V7RU7.js} +1 -1
  36. package/dist/chunk-GC4V7RU7.js.map +1 -0
  37. package/dist/{chunk-5OEJ6GOT.js → chunk-GL3Z7LH7.js} +2 -2
  38. package/dist/{chunk-YW5DBAPG.js → chunk-GZJ5JBED.js} +4 -4
  39. package/dist/{chunk-LJXYPGRH.js → chunk-HHZ77DHM.js} +3 -3
  40. package/dist/{chunk-6MFH4BMK.js → chunk-HQXOEWLZ.js} +4 -4
  41. package/dist/{chunk-RYIL3PI2.js → chunk-ILWQGTNH.js} +2 -2
  42. package/dist/{chunk-3DGHRDCX.js → chunk-J67BP5EP.js} +3 -3
  43. package/dist/{chunk-PVUUIWHY.js → chunk-JPOQMXGT.js} +10 -3
  44. package/dist/chunk-JPOQMXGT.js.map +1 -0
  45. package/dist/{chunk-RRNA5GKT.js → chunk-JWFNOD2T.js} +2 -2
  46. package/dist/{chunk-BDV7INMP.js → chunk-KHQ3N5AB.js} +4 -4
  47. package/dist/{chunk-JQ4NEJJ6.js → chunk-KJF7EPUE.js} +3 -3
  48. package/dist/{chunk-FO3UEG4S.js → chunk-KKB42D3Q.js} +2 -2
  49. package/dist/{chunk-26NK23DZ.js → chunk-M6KXHRIA.js} +3 -3
  50. package/dist/{chunk-DAP2XL7Q.js → chunk-NIUXQDWD.js} +2 -2
  51. package/dist/{chunk-6YLPHBKR.js → chunk-NJMKHRQI.js} +145 -11
  52. package/dist/chunk-NJMKHRQI.js.map +1 -0
  53. package/dist/{chunk-O6EJ6WTI.js → chunk-NKGY3C53.js} +87 -2
  54. package/dist/chunk-NKGY3C53.js.map +1 -0
  55. package/dist/{chunk-CXJG63MA.js → chunk-NP6EZT44.js} +20 -6
  56. package/dist/chunk-NP6EZT44.js.map +1 -0
  57. package/dist/{chunk-Y26YV5R3.js → chunk-O2JW656W.js} +3 -3
  58. package/dist/{chunk-MPOLUAMI.js → chunk-P5MW7BG2.js} +665 -60
  59. package/dist/chunk-P5MW7BG2.js.map +1 -0
  60. package/dist/{chunk-TGALXXLV.js → chunk-PW26DAXS.js} +3 -3
  61. package/dist/{chunk-V2PZC6AW.js → chunk-QAWCVWCX.js} +5 -5
  62. package/dist/{chunk-CH22FZHT.js → chunk-QFYVGJLI.js} +2 -2
  63. package/dist/{chunk-YM7LFCG7.js → chunk-QIVFGU2M.js} +3 -3
  64. package/dist/{chunk-CXFOITNS.js → chunk-SJ24GHID.js} +2 -2
  65. package/dist/{chunk-EBVBE7UK.js → chunk-SOU42FGB.js} +5 -5
  66. package/dist/{chunk-YVZRTCGG.js → chunk-SYSKC237.js} +6 -6
  67. package/dist/{chunk-77DWLQRY.js → chunk-TDECYU4Y.js} +31 -3
  68. package/dist/chunk-TDECYU4Y.js.map +1 -0
  69. package/dist/{chunk-73YLDCNF.js → chunk-TEQGXA7L.js} +5 -5
  70. package/dist/{chunk-PC6ZEDRL.js → chunk-UNQEWORI.js} +2 -2
  71. package/dist/{chunk-PC3ZZBTO.js → chunk-VAK6NQAK.js} +5 -5
  72. package/dist/{chunk-GKI4SDP7.js → chunk-WQKZIQIL.js} +4 -4
  73. package/dist/chunk-YWBHS25M.js +783 -0
  74. package/dist/chunk-YWBHS25M.js.map +1 -0
  75. package/dist/chunk-ZC7J6ZYV.js +7 -0
  76. package/dist/chunk-ZC7J6ZYV.js.map +1 -0
  77. package/dist/consent/index.cjs.map +1 -1
  78. package/dist/consent/index.d.cts +4 -4
  79. package/dist/consent/index.d.ts +4 -4
  80. package/dist/consent/index.js +3 -3
  81. package/dist/{crypto-2CRLG4F4.js → crypto-YXH6SAOW.js} +3 -3
  82. package/dist/{delegation-ZTRT2PRV.js → delegation-K5ERUH6A.js} +5 -5
  83. package/dist/derivations/index.cjs.map +1 -1
  84. package/dist/derivations/index.d.cts +5 -5
  85. package/dist/derivations/index.d.ts +5 -5
  86. package/dist/derivations/index.js +4 -4
  87. package/dist/{dev-unlock-BH6y3Hx0.d.ts → dev-unlock-BW0GNBEV.d.ts} +1 -1
  88. package/dist/{dev-unlock-H1Xwxc3U.d.cts → dev-unlock-a7SOtaV0.d.cts} +1 -1
  89. package/dist/executor-AVJ7UEWA.js +8 -0
  90. package/dist/executor-IQO3KGXQ.js +11 -0
  91. package/dist/executor-VT7TKGE4.js +8 -0
  92. package/dist/{fanout-sidecar-F3ZRFU4H.js → fanout-sidecar-N6OJX6QR.js} +2 -2
  93. package/dist/guards/index.cjs +53 -1
  94. package/dist/guards/index.cjs.map +1 -1
  95. package/dist/guards/index.d.cts +12 -6
  96. package/dist/guards/index.d.ts +12 -6
  97. package/dist/guards/index.js +5 -3
  98. package/dist/{hash-_sDFvtmX.d.cts → hash-B0cLQcq_.d.cts} +1 -1
  99. package/dist/{hash-D89JdDbj.d.ts → hash-uMNIAAW8.d.ts} +1 -1
  100. package/dist/history/index.cjs.map +1 -1
  101. package/dist/history/index.d.cts +5 -5
  102. package/dist/history/index.d.ts +5 -5
  103. package/dist/history/index.js +5 -5
  104. package/dist/i18n/index.cjs.map +1 -1
  105. package/dist/i18n/index.d.cts +4 -4
  106. package/dist/i18n/index.d.ts +4 -4
  107. package/dist/i18n/index.js +6 -6
  108. package/dist/immutable-guard-B0h-ipLz.d.ts +67 -0
  109. package/dist/immutable-guard-BZIcYhYX.d.cts +67 -0
  110. package/dist/index-CUVOMtgg.d.cts +1216 -0
  111. package/dist/index-Cqzp4tt9.d.ts +1216 -0
  112. package/dist/index.cjs +2200 -106
  113. package/dist/index.cjs.map +1 -1
  114. package/dist/index.d.cts +55 -13
  115. package/dist/index.d.ts +55 -13
  116. package/dist/index.js +95 -44
  117. package/dist/index.js.map +1 -1
  118. package/dist/indexing/index.cjs.map +1 -1
  119. package/dist/indexing/index.js +2 -2
  120. package/dist/issue-ZH27C23Y.js +12 -0
  121. package/dist/{ledger-NYCGJX2D.js → ledger-64TTQMRS.js} +5 -5
  122. package/dist/materialized-views/index.cjs.map +1 -1
  123. package/dist/materialized-views/index.d.cts +5 -6
  124. package/dist/materialized-views/index.d.ts +5 -6
  125. package/dist/materialized-views/index.js +6 -6
  126. package/dist/noydb-O76SKBST.js +35 -0
  127. package/dist/overlay-views/index.cjs.map +1 -1
  128. package/dist/overlay-views/index.d.cts +5 -5
  129. package/dist/overlay-views/index.d.ts +5 -5
  130. package/dist/overlay-views/index.js +4 -4
  131. package/dist/periods/index.cjs.map +1 -1
  132. package/dist/periods/index.d.cts +4 -4
  133. package/dist/periods/index.d.ts +4 -4
  134. package/dist/periods/index.js +5 -5
  135. package/dist/{public-envelope-QOXZEHKH.js → public-envelope-MHG6YVXW.js} +4 -4
  136. package/dist/query/index.cjs +382 -17
  137. package/dist/query/index.cjs.map +1 -1
  138. package/dist/query/index.d.cts +2 -2
  139. package/dist/query/index.d.ts +2 -2
  140. package/dist/query/index.js +4 -4
  141. package/dist/registry-2PKBQDCH.js +8 -0
  142. package/dist/registry-4VXFKCBJ.js +8 -0
  143. package/dist/{registry-ST2VNFZC.js → registry-PV4G3OPA.js} +3 -3
  144. package/dist/{revoke-RT7QYB4G.js → revoke-5BOLVJ3N.js} +6 -6
  145. package/dist/session/index.cjs.map +1 -1
  146. package/dist/session/index.d.cts +5 -5
  147. package/dist/session/index.d.ts +5 -5
  148. package/dist/session/index.js +3 -3
  149. package/dist/shadow/index.cjs.map +1 -1
  150. package/dist/shadow/index.d.cts +4 -4
  151. package/dist/shadow/index.d.ts +4 -4
  152. package/dist/shadow/index.js +2 -2
  153. package/dist/{signer-QNU66JF5.js → signer-GRIYBA22.js} +5 -5
  154. package/dist/snapshots/index.cjs.map +1 -1
  155. package/dist/snapshots/index.d.cts +4 -4
  156. package/dist/snapshots/index.d.ts +4 -4
  157. package/dist/snapshots/index.js +4 -4
  158. package/dist/{stale-VKXSXJF4.js → stale-LZYMMDDS.js} +2 -2
  159. package/dist/state-vault-QFJWU23A.js +147 -0
  160. package/dist/state-vault-QFJWU23A.js.map +1 -0
  161. package/dist/store/index.cjs.map +1 -1
  162. package/dist/store/index.d.cts +4 -4
  163. package/dist/store/index.d.ts +4 -4
  164. package/dist/store/index.js +2 -2
  165. package/dist/strategy-CrS7PnbE.d.cts +2048 -0
  166. package/dist/strategy-CrS7PnbE.d.ts +2048 -0
  167. package/dist/sync/index.cjs.map +1 -1
  168. package/dist/sync/index.d.cts +3 -3
  169. package/dist/sync/index.d.ts +3 -3
  170. package/dist/sync/index.js +4 -4
  171. package/dist/team/index.cjs.map +1 -1
  172. package/dist/team/index.d.cts +4 -4
  173. package/dist/team/index.d.ts +4 -4
  174. package/dist/team/index.js +8 -8
  175. package/dist/tx/index.cjs +8 -1
  176. package/dist/tx/index.cjs.map +1 -1
  177. package/dist/tx/index.d.cts +4 -4
  178. package/dist/tx/index.d.ts +4 -4
  179. package/dist/tx/index.js +3 -3
  180. package/dist/{types-DiSXn3a4.d.cts → types-CDwSSXiI.d.cts} +709 -6
  181. package/dist/{types-CD8mc8zR.d.ts → types-pax34sec.d.ts} +709 -6
  182. package/dist/{ulid-DQ1hcJvZ.d.cts → ulid-7bCSgIgb.d.cts} +1 -1
  183. package/dist/{ulid-8p83wbR4.d.ts → ulid-C_t4hL3d.d.ts} +1 -1
  184. package/dist/util/index.cjs.map +1 -1
  185. package/dist/util/index.js +1 -1
  186. package/dist/vault-group-UO4YUZOG.js +493 -0
  187. package/dist/vault-group-UO4YUZOG.js.map +1 -0
  188. package/dist/{with-derivation-DWMTpgEH.d.ts → with-derivation-BjdOxUBn.d.ts} +1 -1
  189. package/dist/{with-derivation-CVT7-dUt.d.cts → with-derivation-D8wFlb6V.d.cts} +1 -1
  190. package/dist/{with-materialized-view-BTTU3BNK.d.cts → with-materialized-view-5QMF1rS_.d.cts} +1 -1
  191. package/dist/{with-materialized-view-X0CoL8-L.d.ts → with-materialized-view-DJb-HO65.d.ts} +1 -1
  192. package/dist/{with-overlayed-view-DQjO_DSG.d.ts → with-overlayed-view-CkqTefbz.d.ts} +1 -1
  193. package/dist/{with-overlayed-view-DcacRRsS.d.cts → with-overlayed-view-DDNflPvC.d.cts} +1 -1
  194. package/package.json +3 -3
  195. package/dist/chunk-2LPPNWF6.js +0 -340
  196. package/dist/chunk-2LPPNWF6.js.map +0 -1
  197. package/dist/chunk-6YLPHBKR.js.map +0 -1
  198. package/dist/chunk-77DWLQRY.js.map +0 -1
  199. package/dist/chunk-C3WE6UJY.js +0 -19
  200. package/dist/chunk-C3WE6UJY.js.map +0 -1
  201. package/dist/chunk-CXJG63MA.js.map +0 -1
  202. package/dist/chunk-MPOLUAMI.js.map +0 -1
  203. package/dist/chunk-O6EJ6WTI.js.map +0 -1
  204. package/dist/chunk-PVUUIWHY.js.map +0 -1
  205. package/dist/chunk-SLV4LAKX.js.map +0 -1
  206. package/dist/executor-S76VN45G.js +0 -8
  207. package/dist/executor-UCXLIGLW.js +0 -11
  208. package/dist/executor-ZCNZJMGR.js +0 -8
  209. package/dist/index-B8bjExET.d.cts +0 -2434
  210. package/dist/index-DfUbNad8.d.ts +0 -2434
  211. package/dist/issue-IVTVSKWW.js +0 -12
  212. package/dist/noydb-SH4RLE47.js +0 -34
  213. package/dist/registry-UFIK7CSR.js +0 -8
  214. package/dist/registry-ZGYYSM5I.js +0 -8
  215. package/dist/strategy-CT2LCKAX.d.cts +0 -613
  216. package/dist/strategy-CT2LCKAX.d.ts +0 -613
  217. package/dist/with-guard-BRvt53da.d.ts +0 -18
  218. package/dist/with-guard-Dx2zZnTA.d.cts +0 -18
  219. /package/dist/{chunk-LSTBFLL2.js.map → chunk-3OUCWHV6.js.map} +0 -0
  220. /package/dist/{chunk-7CEGU63S.js.map → chunk-3XZRRBFW.js.map} +0 -0
  221. /package/dist/{chunk-RC6SU5NO.js.map → chunk-4VCQH32J.js.map} +0 -0
  222. /package/dist/{chunk-ZROPXHJY.js.map → chunk-4YDZ7JPZ.js.map} +0 -0
  223. /package/dist/{chunk-IMYKDWB4.js.map → chunk-5NISHSBO.js.map} +0 -0
  224. /package/dist/{chunk-ZBBW7YQN.js.map → chunk-7TEI2K2A.js.map} +0 -0
  225. /package/dist/{chunk-6T2UDBKG.js.map → chunk-AYNF7PVX.js.map} +0 -0
  226. /package/dist/{chunk-QCXNMCHN.js.map → chunk-C3WRKABE.js.map} +0 -0
  227. /package/dist/{chunk-GAUEWM7D.js.map → chunk-CWFQTAD4.js.map} +0 -0
  228. /package/dist/{chunk-QSOYKKMD.js.map → chunk-D5Y3HIC6.js.map} +0 -0
  229. /package/dist/{chunk-R233SLY3.js.map → chunk-E3DIBDKA.js.map} +0 -0
  230. /package/dist/{chunk-5OEJ6GOT.js.map → chunk-GL3Z7LH7.js.map} +0 -0
  231. /package/dist/{chunk-YW5DBAPG.js.map → chunk-GZJ5JBED.js.map} +0 -0
  232. /package/dist/{chunk-LJXYPGRH.js.map → chunk-HHZ77DHM.js.map} +0 -0
  233. /package/dist/{chunk-6MFH4BMK.js.map → chunk-HQXOEWLZ.js.map} +0 -0
  234. /package/dist/{chunk-RYIL3PI2.js.map → chunk-ILWQGTNH.js.map} +0 -0
  235. /package/dist/{chunk-3DGHRDCX.js.map → chunk-J67BP5EP.js.map} +0 -0
  236. /package/dist/{chunk-RRNA5GKT.js.map → chunk-JWFNOD2T.js.map} +0 -0
  237. /package/dist/{chunk-BDV7INMP.js.map → chunk-KHQ3N5AB.js.map} +0 -0
  238. /package/dist/{chunk-JQ4NEJJ6.js.map → chunk-KJF7EPUE.js.map} +0 -0
  239. /package/dist/{chunk-FO3UEG4S.js.map → chunk-KKB42D3Q.js.map} +0 -0
  240. /package/dist/{chunk-26NK23DZ.js.map → chunk-M6KXHRIA.js.map} +0 -0
  241. /package/dist/{chunk-DAP2XL7Q.js.map → chunk-NIUXQDWD.js.map} +0 -0
  242. /package/dist/{chunk-Y26YV5R3.js.map → chunk-O2JW656W.js.map} +0 -0
  243. /package/dist/{chunk-TGALXXLV.js.map → chunk-PW26DAXS.js.map} +0 -0
  244. /package/dist/{chunk-V2PZC6AW.js.map → chunk-QAWCVWCX.js.map} +0 -0
  245. /package/dist/{chunk-CH22FZHT.js.map → chunk-QFYVGJLI.js.map} +0 -0
  246. /package/dist/{chunk-YM7LFCG7.js.map → chunk-QIVFGU2M.js.map} +0 -0
  247. /package/dist/{chunk-CXFOITNS.js.map → chunk-SJ24GHID.js.map} +0 -0
  248. /package/dist/{chunk-EBVBE7UK.js.map → chunk-SOU42FGB.js.map} +0 -0
  249. /package/dist/{chunk-YVZRTCGG.js.map → chunk-SYSKC237.js.map} +0 -0
  250. /package/dist/{chunk-73YLDCNF.js.map → chunk-TEQGXA7L.js.map} +0 -0
  251. /package/dist/{chunk-PC6ZEDRL.js.map → chunk-UNQEWORI.js.map} +0 -0
  252. /package/dist/{chunk-PC3ZZBTO.js.map → chunk-VAK6NQAK.js.map} +0 -0
  253. /package/dist/{chunk-GKI4SDP7.js.map → chunk-WQKZIQIL.js.map} +0 -0
  254. /package/dist/{crypto-2CRLG4F4.js.map → crypto-YXH6SAOW.js.map} +0 -0
  255. /package/dist/{delegation-ZTRT2PRV.js.map → delegation-K5ERUH6A.js.map} +0 -0
  256. /package/dist/{executor-S76VN45G.js.map → executor-AVJ7UEWA.js.map} +0 -0
  257. /package/dist/{executor-UCXLIGLW.js.map → executor-IQO3KGXQ.js.map} +0 -0
  258. /package/dist/{executor-ZCNZJMGR.js.map → executor-VT7TKGE4.js.map} +0 -0
  259. /package/dist/{fanout-sidecar-F3ZRFU4H.js.map → fanout-sidecar-N6OJX6QR.js.map} +0 -0
  260. /package/dist/{issue-IVTVSKWW.js.map → issue-ZH27C23Y.js.map} +0 -0
  261. /package/dist/{ledger-NYCGJX2D.js.map → ledger-64TTQMRS.js.map} +0 -0
  262. /package/dist/{noydb-SH4RLE47.js.map → noydb-O76SKBST.js.map} +0 -0
  263. /package/dist/{public-envelope-QOXZEHKH.js.map → public-envelope-MHG6YVXW.js.map} +0 -0
  264. /package/dist/{registry-ST2VNFZC.js.map → registry-2PKBQDCH.js.map} +0 -0
  265. /package/dist/{registry-UFIK7CSR.js.map → registry-4VXFKCBJ.js.map} +0 -0
  266. /package/dist/{registry-ZGYYSM5I.js.map → registry-PV4G3OPA.js.map} +0 -0
  267. /package/dist/{revoke-RT7QYB4G.js.map → revoke-5BOLVJ3N.js.map} +0 -0
  268. /package/dist/{signer-QNU66JF5.js.map → signer-GRIYBA22.js.map} +0 -0
  269. /package/dist/{stale-VKXSXJF4.js.map → stale-LZYMMDDS.js.map} +0 -0
@@ -1,10 +1,10 @@
1
- import { aB as NoydbBundleStore, aC as RetentionPolicy, aD as SnapshotPolicy, aE as SnapshotStrategy } from '../types-DiSXn3a4.cjs';
2
- export { aF as SnapshotMeta, aG as SnapshotMode } from '../types-DiSXn3a4.cjs';
3
- export { f as SnapshotNotFoundError } from '../index-B8bjExET.cjs';
1
+ import { aB as NoydbBundleStore, aC as RetentionPolicy, aD as SnapshotPolicy, aE as SnapshotStrategy } from '../types-CDwSSXiI.cjs';
2
+ export { aF as SnapshotMeta, aG as SnapshotMode } from '../types-CDwSSXiI.cjs';
3
+ export { E as SnapshotNotFoundError } from '../strategy-CrS7PnbE.cjs';
4
4
  import '../lazy-builder-Ci5_YG73.cjs';
5
5
  import '../predicate-Bt5ft-9c.cjs';
6
- import '../strategy-CT2LCKAX.cjs';
7
6
  import '../strategy-BSxFXGzb.cjs';
7
+ import '../index-CUVOMtgg.cjs';
8
8
  import '@noy-db/attestation';
9
9
 
10
10
  interface WithSnapshotsOptions {
@@ -1,10 +1,10 @@
1
- import { aB as NoydbBundleStore, aC as RetentionPolicy, aD as SnapshotPolicy, aE as SnapshotStrategy } from '../types-CD8mc8zR.js';
2
- export { aF as SnapshotMeta, aG as SnapshotMode } from '../types-CD8mc8zR.js';
3
- export { f as SnapshotNotFoundError } from '../index-DfUbNad8.js';
1
+ import { aB as NoydbBundleStore, aC as RetentionPolicy, aD as SnapshotPolicy, aE as SnapshotStrategy } from '../types-pax34sec.js';
2
+ export { aF as SnapshotMeta, aG as SnapshotMode } from '../types-pax34sec.js';
3
+ export { E as SnapshotNotFoundError } from '../strategy-CrS7PnbE.js';
4
4
  import '../lazy-builder-D5GU14TS.js';
5
5
  import '../predicate-Bt5ft-9c.js';
6
- import '../strategy-CT2LCKAX.js';
7
6
  import '../strategy-BSxFXGzb.js';
7
+ import '../index-Cqzp4tt9.js';
8
8
  import '@noy-db/attestation';
9
9
 
10
10
  interface WithSnapshotsOptions {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  readNoydbBundle,
3
3
  writeNoydbBundle
4
- } from "../chunk-TGALXXLV.js";
5
- import "../chunk-JQ4NEJJ6.js";
6
- import "../chunk-SLV4LAKX.js";
4
+ } from "../chunk-PW26DAXS.js";
5
+ import "../chunk-KJF7EPUE.js";
6
+ import "../chunk-GC4V7RU7.js";
7
7
  import {
8
8
  SnapshotNotFoundError
9
- } from "../chunk-O6EJ6WTI.js";
9
+ } from "../chunk-NKGY3C53.js";
10
10
 
11
11
  // src/snapshots/engine.ts
12
12
  var SnapshotEngine = class {
@@ -3,11 +3,11 @@ import {
3
3
  isMVStale,
4
4
  markMVStale,
5
5
  resolveStaleMVOnRead
6
- } from "./chunk-6T2UDBKG.js";
6
+ } from "./chunk-AYNF7PVX.js";
7
7
  export {
8
8
  clearMVStale,
9
9
  isMVStale,
10
10
  markMVStale,
11
11
  resolveStaleMVOnRead
12
12
  };
13
- //# sourceMappingURL=stale-VKXSXJF4.js.map
13
+ //# sourceMappingURL=stale-LZYMMDDS.js.map
@@ -0,0 +1,147 @@
1
+ import {
2
+ STATE_VAULT_NAME
3
+ } from "./chunk-ZC7J6ZYV.js";
4
+ import {
5
+ generateULID
6
+ } from "./chunk-FZU343FL.js";
7
+ import {
8
+ sha256Hex
9
+ } from "./chunk-E3DIBDKA.js";
10
+ import "./chunk-NKGY3C53.js";
11
+
12
+ // src/federation/schema-manifest.ts
13
+ function captureBlueprint(configure) {
14
+ const recorded = [];
15
+ const collectionStub = new Proxy(
16
+ {},
17
+ {
18
+ get: () => () => collectionStub
19
+ }
20
+ );
21
+ const proxy = new Proxy(
22
+ {},
23
+ {
24
+ get: (_t, prop) => {
25
+ if (prop === "collection") {
26
+ return (name, opts) => {
27
+ recorded.push({
28
+ name,
29
+ indexes: opts?.indexes ?? [],
30
+ persistJsonSchema: !!opts?.persistJsonSchema
31
+ });
32
+ return collectionStub;
33
+ };
34
+ }
35
+ return () => proxy;
36
+ }
37
+ }
38
+ );
39
+ configure(proxy);
40
+ const sorted = [...recorded].sort((a, b) => a.name.localeCompare(b.name));
41
+ const indexes = {};
42
+ const persistJsonSchema = [];
43
+ for (const c of sorted) {
44
+ indexes[c.name] = c.indexes;
45
+ if (c.persistJsonSchema) persistJsonSchema.push(c.name);
46
+ }
47
+ return {
48
+ // `persistJsonSchema` is already name-sorted: it is populated while
49
+ // iterating `sorted` (collections in name order).
50
+ collections: sorted.map((c) => c.name),
51
+ indexes,
52
+ persistJsonSchema
53
+ };
54
+ }
55
+ function canonical(value) {
56
+ if (value === null || typeof value !== "object") return JSON.stringify(value);
57
+ if (Array.isArray(value)) return `[${value.map(canonical).join(",")}]`;
58
+ const obj = value;
59
+ const keys = Object.keys(obj).sort();
60
+ return `{${keys.map((k) => `${JSON.stringify(k)}:${canonical(obj[k])}`).join(",")}}`;
61
+ }
62
+ async function fingerprintBlueprint(bp) {
63
+ return sha256Hex(new TextEncoder().encode(canonical(bp)));
64
+ }
65
+
66
+ // src/federation/state-vault.ts
67
+ var REGISTRY = "vaultRegistry";
68
+ var MANIFEST = "schemaManifest";
69
+ var EVENTS = "deploymentEvents";
70
+ var StateManagementVault = class _StateManagementVault {
71
+ constructor(registry, schemaManifest, events) {
72
+ this.registry = registry;
73
+ this.schemaManifest = schemaManifest;
74
+ this.#events = events;
75
+ }
76
+ registry;
77
+ schemaManifest;
78
+ /**
79
+ * The append-only deployment-events log is kept truly private so the raw
80
+ * mutable Collection is never surfaced — events may only be written via
81
+ * `appendEvent` and read via `queryEvents`. (`registry` and
82
+ * `schemaManifest` are deliberately public: consumers read and write them.)
83
+ */
84
+ #events;
85
+ /** Idempotently open the reserved state vault and bind the three control-plane collections. */
86
+ static async open(db) {
87
+ const vault = await db.openVault(STATE_VAULT_NAME);
88
+ return new _StateManagementVault(
89
+ vault.collection(REGISTRY),
90
+ vault.collection(MANIFEST),
91
+ vault.collection(EVENTS)
92
+ );
93
+ }
94
+ /** Read-only query over the append-only deployment-events log. */
95
+ queryEvents() {
96
+ return this.#events.query();
97
+ }
98
+ /**
99
+ * Append a deployment event with a fresh unique (ULID) id. This is the
100
+ * only write path to the events log; no update/delete is exposed.
101
+ * Callers should treat failures as non-fatal — this method does not
102
+ * swallow errors, so wrap the call site in try/catch where appropriate.
103
+ */
104
+ async appendEvent(event) {
105
+ const ts = event.ts ?? Date.now();
106
+ const id = generateULID();
107
+ await this.#events.put(id, { ...event, id, ts });
108
+ }
109
+ /**
110
+ * Ensure a manifest row exists for `(templateName, template.version)`.
111
+ * Safe to call repeatedly: the `fingerprint` is a deterministic hash of
112
+ * the template's declared shape (stable across calls), though each call
113
+ * refreshes `recordedAt`.
114
+ */
115
+ async recordManifest(templateName, template) {
116
+ const bp = captureBlueprint(template.configure);
117
+ const fingerprint = await fingerprintBlueprint(bp);
118
+ await this.schemaManifest.put(`${templateName}:${template.version}`, {
119
+ templateName,
120
+ version: template.version,
121
+ collections: bp.collections,
122
+ indexes: bp.indexes,
123
+ persistJsonSchema: bp.persistJsonSchema,
124
+ fingerprint,
125
+ recordedAt: Date.now()
126
+ });
127
+ return fingerprint;
128
+ }
129
+ /**
130
+ * True when `template`'s current declared shape does not match the recorded
131
+ * manifest for `(templateName, template.version)`. Because shards carry no
132
+ * schema state independent of their template, this catches "a template's
133
+ * shape changed without bumping `version`" — not independent per-shard drift.
134
+ * A missing manifest is treated as drift (nothing to verify against).
135
+ */
136
+ async detectDrift(templateName, template) {
137
+ const row = await this.schemaManifest.get(`${templateName}:${template.version}`);
138
+ if (!row) return true;
139
+ const current = await fingerprintBlueprint(captureBlueprint(template.configure));
140
+ return current !== row.fingerprint;
141
+ }
142
+ };
143
+ export {
144
+ STATE_VAULT_NAME,
145
+ StateManagementVault
146
+ };
147
+ //# sourceMappingURL=state-vault-QFJWU23A.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/federation/schema-manifest.ts","../src/federation/state-vault.ts"],"sourcesContent":["/**\n * @category capability\n * StateManagement Vault — schema blueprint capture + deterministic\n * fingerprint. See\n * docs/superpowers/specs/2026-06-08-statemanagement-vault-design.md.\n */\nimport type { Vault } from '../vault.js'\nimport type { IndexDef } from '../indexing/eager-indexes.js'\nimport { sha256Hex } from '../crypto.js'\nimport type { CapturedBlueprint } from './types.js'\n\ninterface RecordedCollection {\n name: string\n indexes: IndexDef[]\n persistJsonSchema: boolean\n}\n\n/**\n * Run `configure` against a recording proxy that intercepts\n * `collection(name, opts)` calls and captures the declared blueprint.\n * The proxy delegates every other access to a no-op stub so unrelated\n * `configure` calls (guards, blob setup) do not throw — only the\n * declared collections/indexes feed the fingerprint.\n */\nexport function captureBlueprint(configure: (vault: Vault) => void): CapturedBlueprint {\n const recorded: RecordedCollection[] = []\n // Minimal chainable stub returned by intercepted collection() — supports\n // the fluent calls a template might make without affecting the blueprint.\n const collectionStub = new Proxy(\n {},\n {\n get: () => () => collectionStub,\n },\n )\n const proxy = new Proxy(\n {},\n {\n get: (_t, prop) => {\n if (prop === 'collection') {\n return (name: string, opts?: { indexes?: IndexDef[]; persistJsonSchema?: boolean }) => {\n recorded.push({\n name,\n indexes: opts?.indexes ?? [],\n persistJsonSchema: !!opts?.persistJsonSchema,\n })\n return collectionStub\n }\n }\n // Any other vault method/property: a no-op callable that returns the proxy.\n return () => proxy\n },\n },\n ) as unknown as Vault\n\n configure(proxy)\n\n const sorted = [...recorded].sort((a, b) => a.name.localeCompare(b.name))\n const indexes: Record<string, IndexDef[]> = {}\n const persistJsonSchema: string[] = []\n for (const c of sorted) {\n indexes[c.name] = c.indexes\n if (c.persistJsonSchema) persistJsonSchema.push(c.name)\n }\n return {\n // `persistJsonSchema` is already name-sorted: it is populated while\n // iterating `sorted` (collections in name order).\n collections: sorted.map((c) => c.name),\n indexes,\n persistJsonSchema,\n }\n}\n\n/** Canonical JSON: object keys sorted recursively so the bytes are stable. */\nfunction canonical(value: unknown): string {\n if (value === null || typeof value !== 'object') return JSON.stringify(value)\n if (Array.isArray(value)) return `[${value.map(canonical).join(',')}]`\n const obj = value as Record<string, unknown>\n const keys = Object.keys(obj).sort()\n return `{${keys.map((k) => `${JSON.stringify(k)}:${canonical(obj[k])}`).join(',')}}`\n}\n\n/** sha256 (hex) over the canonicalized serializable blueprint. Uses the shared hub helper. */\nexport async function fingerprintBlueprint(bp: CapturedBlueprint): Promise<string> {\n return sha256Hex(new TextEncoder().encode(canonical(bp)))\n}\n","/**\n * @category capability\n * StateManagement Vault — federation control plane (registry +\n * schema-manifest + append-only deployment-events). See\n * docs/superpowers/specs/2026-06-08-statemanagement-vault-design.md.\n */\nimport type { Noydb } from '../noydb.js'\nimport type { Collection } from '../collection.js'\nimport type { Query } from '../query/builder.js'\nimport type { VaultRegistryRow, SchemaManifestRow, DeploymentEvent, VaultTemplate } from './types.js'\nimport { captureBlueprint, fingerprintBlueprint } from './schema-manifest.js'\nimport { STATE_VAULT_NAME } from './constants.js'\nimport { generateULID } from '../bundle/ulid.js'\n\n// Re-export so consumers can `import { STATE_VAULT_NAME } from '@noy-db/hub'`.\nexport { STATE_VAULT_NAME } from './constants.js'\n\n// Physical collection names — single-token (camelCase) to stay clear of any\n// collection-name charset restrictions; the existing suite uses single-word names.\nconst REGISTRY = 'vaultRegistry'\nconst MANIFEST = 'schemaManifest'\nconst EVENTS = 'deploymentEvents'\n\nexport class StateManagementVault {\n /**\n * The append-only deployment-events log is kept truly private so the raw\n * mutable Collection is never surfaced — events may only be written via\n * `appendEvent` and read via `queryEvents`. (`registry` and\n * `schemaManifest` are deliberately public: consumers read and write them.)\n */\n readonly #events: Collection<DeploymentEvent>\n\n private constructor(\n readonly registry: Collection<VaultRegistryRow>,\n readonly schemaManifest: Collection<SchemaManifestRow>,\n events: Collection<DeploymentEvent>,\n ) {\n this.#events = events\n }\n\n /** Idempotently open the reserved state vault and bind the three control-plane collections. */\n static async open(db: Noydb): Promise<StateManagementVault> {\n const vault = await db.openVault(STATE_VAULT_NAME)\n return new StateManagementVault(\n vault.collection<VaultRegistryRow>(REGISTRY),\n vault.collection<SchemaManifestRow>(MANIFEST),\n vault.collection<DeploymentEvent>(EVENTS),\n )\n }\n\n /** Read-only query over the append-only deployment-events log. */\n queryEvents(): Query<DeploymentEvent> {\n return this.#events.query()\n }\n\n /**\n * Append a deployment event with a fresh unique (ULID) id. This is the\n * only write path to the events log; no update/delete is exposed.\n * Callers should treat failures as non-fatal — this method does not\n * swallow errors, so wrap the call site in try/catch where appropriate.\n */\n async appendEvent(event: Omit<DeploymentEvent, 'id' | 'ts'> & { ts?: number }): Promise<void> {\n const ts = event.ts ?? Date.now()\n const id = generateULID()\n await this.#events.put(id, { ...event, id, ts })\n }\n\n /**\n * Ensure a manifest row exists for `(templateName, template.version)`.\n * Safe to call repeatedly: the `fingerprint` is a deterministic hash of\n * the template's declared shape (stable across calls), though each call\n * refreshes `recordedAt`.\n */\n async recordManifest(templateName: string, template: VaultTemplate): Promise<string> {\n const bp = captureBlueprint(template.configure)\n const fingerprint = await fingerprintBlueprint(bp)\n await this.schemaManifest.put(`${templateName}:${template.version}`, {\n templateName,\n version: template.version,\n collections: bp.collections,\n indexes: bp.indexes,\n persistJsonSchema: bp.persistJsonSchema,\n fingerprint,\n recordedAt: Date.now(),\n })\n return fingerprint\n }\n\n /**\n * True when `template`'s current declared shape does not match the recorded\n * manifest for `(templateName, template.version)`. Because shards carry no\n * schema state independent of their template, this catches \"a template's\n * shape changed without bumping `version`\" — not independent per-shard drift.\n * A missing manifest is treated as drift (nothing to verify against).\n */\n async detectDrift(templateName: string, template: VaultTemplate): Promise<boolean> {\n const row = await this.schemaManifest.get(`${templateName}:${template.version}`)\n if (!row) return true\n const current = await fingerprintBlueprint(captureBlueprint(template.configure))\n return current !== row.fingerprint\n }\n}\n"],"mappings":"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","names":[]}