@noy-db/hub 0.6.0-pre.23 → 0.6.0-pre.24

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 (360) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/dist/api-56KUWV6E.js +20 -0
  3. package/dist/attestation/index.js +18 -18
  4. package/dist/{backup-UOLAXOJ4.js → backup-WLKPDY3V.js} +12 -12
  5. package/dist/blobs/index.js +13 -13
  6. package/dist/broker/index.js +12 -12
  7. package/dist/cargo/index.js +29 -29
  8. package/dist/{chunk-BYX3AUXH.js → chunk-24ZDSTEQ.js} +38 -16
  9. package/dist/chunk-24ZDSTEQ.js.map +1 -0
  10. package/dist/{chunk-ZYG4UWHF.js → chunk-25HI46CB.js} +2 -2
  11. package/dist/{chunk-DXJXVWWE.js → chunk-264AKW4K.js} +4 -4
  12. package/dist/{chunk-PFHF3A72.js → chunk-2CURJCLC.js} +3 -3
  13. package/dist/{chunk-DEKA2MV3.js → chunk-2D5NXYWY.js} +2 -2
  14. package/dist/{chunk-GAZTPQ3D.js → chunk-2MYYXXVM.js} +2 -2
  15. package/dist/{chunk-G4577GK7.js → chunk-2S6HROLU.js} +5 -5
  16. package/dist/{chunk-KF34JCIJ.js → chunk-2ZSBPXFW.js} +3 -3
  17. package/dist/{chunk-LIWA5ROZ.js → chunk-34MSA4AO.js} +8 -8
  18. package/dist/{chunk-7LWBD3NO.js → chunk-35K4VWMD.js} +2 -2
  19. package/dist/{chunk-FUE2KPKM.js → chunk-43FOH2OK.js} +20 -8
  20. package/dist/chunk-43FOH2OK.js.map +1 -0
  21. package/dist/{chunk-ZKZXS352.js → chunk-4P3OG2AO.js} +5 -5
  22. package/dist/{chunk-6G4NORTR.js → chunk-4Y7VHLCT.js} +2 -2
  23. package/dist/{chunk-I3D67XD7.js → chunk-576CTQ77.js} +5 -5
  24. package/dist/{chunk-3UIS6O6N.js → chunk-57MEX4LL.js} +3 -3
  25. package/dist/{chunk-HKANJAOP.js → chunk-5OFC3QYL.js} +6 -2
  26. package/dist/chunk-5OFC3QYL.js.map +1 -0
  27. package/dist/{chunk-JO4MRPEY.js → chunk-65WBEFVT.js} +6 -6
  28. package/dist/{chunk-DRVF2YS5.js → chunk-6J7SSCJW.js} +3 -3
  29. package/dist/{chunk-LZHIYH32.js → chunk-6PLCNLBC.js} +2 -2
  30. package/dist/{chunk-VNPSPQNN.js → chunk-ACIEKVFR.js} +10 -10
  31. package/dist/{chunk-SZFNO7L4.js → chunk-AKPIBKHK.js} +4 -4
  32. package/dist/{chunk-PUGHLCBW.js → chunk-AM6V36AG.js} +2 -2
  33. package/dist/{chunk-2LHPMFSR.js → chunk-AU45F5FD.js} +2 -2
  34. package/dist/{chunk-GNSLP7KA.js → chunk-BZKQRED6.js} +2 -2
  35. package/dist/{chunk-Z7AHYSZF.js → chunk-C3FCXXNI.js} +6 -6
  36. package/dist/{chunk-CWYTN4IK.js → chunk-C4DFJ76X.js} +6 -6
  37. package/dist/{chunk-6W3BZCW6.js → chunk-CDHX3SRW.js} +3 -3
  38. package/dist/{chunk-RQQIB7CD.js → chunk-D7STIWJO.js} +11 -2
  39. package/dist/chunk-D7STIWJO.js.map +1 -0
  40. package/dist/{chunk-DG4KFJNA.js → chunk-DBPQUICN.js} +2 -2
  41. package/dist/{chunk-4UZDDS4S.js → chunk-DL7NXFAY.js} +2 -2
  42. package/dist/{chunk-XXONVJWA.js → chunk-DM2BZDNV.js} +5 -5
  43. package/dist/{chunk-FFSQFH6D.js → chunk-DNKVKO7K.js} +2 -2
  44. package/dist/{chunk-ZLU3IWHK.js → chunk-E2LYQUB7.js} +4 -4
  45. package/dist/{chunk-O2A5YCFF.js → chunk-ENTVT7PF.js} +2 -2
  46. package/dist/{chunk-RTKREHPV.js → chunk-ESP4K32V.js} +3 -3
  47. package/dist/{chunk-LPVZDTQF.js → chunk-FEWCVAFV.js} +3 -3
  48. package/dist/{chunk-OGB2UTBC.js → chunk-FJGNYSB3.js} +6 -6
  49. package/dist/{chunk-TA67ZQUH.js → chunk-FKLKAO2C.js} +7 -7
  50. package/dist/{chunk-PENPHA45.js → chunk-FX3UIDCS.js} +2 -2
  51. package/dist/{chunk-J2KGT2A5.js → chunk-G3ZMEUWD.js} +7 -7
  52. package/dist/{chunk-WBFJZCDJ.js → chunk-GCTZNHDO.js} +2 -2
  53. package/dist/{chunk-G6DAESDS.js → chunk-GDYDYUO7.js} +6 -6
  54. package/dist/{chunk-YLIGPHN4.js → chunk-GU5XWSH4.js} +3 -3
  55. package/dist/{chunk-RBBTJ2HY.js → chunk-H6J6MZ4J.js} +3 -3
  56. package/dist/{chunk-JXFQEOAQ.js → chunk-HMS3OCMA.js} +7 -7
  57. package/dist/{chunk-6ZN6X2LW.js → chunk-HUAAYTVS.js} +4 -4
  58. package/dist/{chunk-KKVVBFKW.js → chunk-HUDP5NSI.js} +4 -4
  59. package/dist/{chunk-B3X6S37C.js → chunk-HWJZCZSI.js} +2 -2
  60. package/dist/{chunk-D5DZ4R7X.js → chunk-ICGLT356.js} +2 -2
  61. package/dist/{chunk-U5ZDYJLQ.js → chunk-IYXP6OR5.js} +3 -3
  62. package/dist/{chunk-WBRLSPA7.js → chunk-JSJS7RHS.js} +2 -2
  63. package/dist/{chunk-AZPPARMG.js → chunk-K6J7JKZM.js} +7 -7
  64. package/dist/{chunk-LYQUFIHL.js → chunk-K7HPGV5K.js} +2 -2
  65. package/dist/{chunk-5MU7PUNA.js → chunk-KC3S3OH6.js} +2 -2
  66. package/dist/{chunk-WG66ZPEV.js → chunk-KEMD6B3W.js} +4 -4
  67. package/dist/{chunk-UW5YKCE4.js → chunk-L34HKPIS.js} +8 -8
  68. package/dist/{chunk-7ZPAL3F7.js → chunk-LG2P6S32.js} +3 -3
  69. package/dist/{chunk-TWELPVXG.js → chunk-LT26SRU5.js} +4 -4
  70. package/dist/{chunk-ZA3RBGT3.js → chunk-LTC77D4V.js} +2 -2
  71. package/dist/{chunk-UWRVDBDC.js → chunk-LU2HAOVP.js} +18 -14
  72. package/dist/chunk-LU2HAOVP.js.map +1 -0
  73. package/dist/{chunk-22VRCUV2.js → chunk-M3XEJJDE.js} +2 -2
  74. package/dist/{chunk-FNCX4N7X.js → chunk-MGIAYREB.js} +5 -5
  75. package/dist/{chunk-M2KVSM43.js → chunk-MLTGIDNB.js} +2 -2
  76. package/dist/{chunk-Z6UMKUAI.js → chunk-MXJMCTSI.js} +2 -2
  77. package/dist/{chunk-66X4XWTM.js → chunk-NFARMKWK.js} +34 -12
  78. package/dist/chunk-NFARMKWK.js.map +1 -0
  79. package/dist/{chunk-OMXUQAZJ.js → chunk-NK7DO6A2.js} +3 -3
  80. package/dist/{chunk-CJU3KXHJ.js → chunk-NKND2IMW.js} +2 -2
  81. package/dist/{chunk-6ZTPSVY7.js → chunk-NSZGZYZL.js} +13 -3
  82. package/dist/{chunk-6ZTPSVY7.js.map → chunk-NSZGZYZL.js.map} +1 -1
  83. package/dist/{chunk-YNWBBHQK.js → chunk-NUHIPODK.js} +2 -2
  84. package/dist/{chunk-ATSIGJRX.js → chunk-ODGV6Q6U.js} +2 -2
  85. package/dist/{chunk-2DHEBIJA.js → chunk-OJYLLNQN.js} +2 -2
  86. package/dist/{chunk-VXH5Z22C.js → chunk-OQT3G55N.js} +2 -2
  87. package/dist/{chunk-2QN6NPV6.js → chunk-PORGC5MH.js} +2 -2
  88. package/dist/{chunk-R6BGN6IY.js → chunk-PRBJ4BJD.js} +2 -2
  89. package/dist/{chunk-BNGGSNO7.js → chunk-PU5PNTE2.js} +2 -2
  90. package/dist/{chunk-ISRAQIYY.js → chunk-PZEDIO72.js} +7 -7
  91. package/dist/{chunk-SIACMXFK.js → chunk-RTBCWDJ3.js} +10 -10
  92. package/dist/{chunk-OTHHO3KI.js → chunk-S2I5MYSA.js} +2 -2
  93. package/dist/{chunk-RGUAY5IX.js → chunk-S447GUNV.js} +4 -4
  94. package/dist/{chunk-7DRKK5FQ.js → chunk-SP3AFEB7.js} +4 -4
  95. package/dist/{chunk-GJ5TMHKC.js → chunk-SQWXF2HP.js} +5 -5
  96. package/dist/{chunk-5FRZ7YYU.js → chunk-TTGZ6KGY.js} +3 -3
  97. package/dist/{chunk-L374ZR75.js → chunk-UHFF4G53.js} +3 -3
  98. package/dist/{chunk-IGNJOJEP.js → chunk-UJ4Z67UQ.js} +2 -2
  99. package/dist/chunk-UJ4Z67UQ.js.map +1 -0
  100. package/dist/{chunk-LBDG6FHB.js → chunk-VZEBHQRT.js} +3 -3
  101. package/dist/{chunk-ZILONQGE.js → chunk-VZHEFFUO.js} +79 -79
  102. package/dist/{chunk-JMN3I4OC.js → chunk-WN377AAV.js} +6 -6
  103. package/dist/{chunk-DZBZCFS7.js → chunk-XCNYOVFV.js} +5 -5
  104. package/dist/{chunk-AK6EWGDO.js → chunk-YEEV4ZXL.js} +95 -32
  105. package/dist/chunk-YEEV4ZXL.js.map +1 -0
  106. package/dist/{chunk-C7B3XUI4.js → chunk-YIC34H3M.js} +2 -2
  107. package/dist/{chunk-3ZOER5GD.js → chunk-YZWRJRMF.js} +3 -3
  108. package/dist/{chunk-23ODLABM.js → chunk-Z45PK2H5.js} +5 -5
  109. package/dist/{chunk-7W765AVV.js → chunk-ZI43U6FN.js} +6 -6
  110. package/dist/{chunk-L5PTLL7A.js → chunk-ZJJ46LNY.js} +3 -3
  111. package/dist/{chunk-3ENNPCIW.js → chunk-ZY6P7M52.js} +2 -2
  112. package/dist/classified/index.js +5 -5
  113. package/dist/{classified-marker-RYWYYZDB.js → classified-marker-DLLGRRXG.js} +3 -3
  114. package/dist/collection-facade-OHBCHCJV.js +45 -0
  115. package/dist/{computed-M4QZVSPX.js → computed-X2RKYFGX.js} +3 -3
  116. package/dist/consent/index.js +9 -9
  117. package/dist/cover/index.js +9 -9
  118. package/dist/custody/index.js +12 -11
  119. package/dist/{dead-filter-DRKJDNSF.js → dead-filter-CCLDPNTJ.js} +2 -2
  120. package/dist/debug/index.js +1 -1
  121. package/dist/{delegation-UEJN2LDC.js → delegation-OSXUSSUO.js} +11 -11
  122. package/dist/derivations/index.js +12 -12
  123. package/dist/derive-6K35IOIN.js +22 -0
  124. package/dist/directory/index.js +10 -10
  125. package/dist/{dispatch-KNWYDUYM.js → dispatch-HCCQPOC7.js} +5 -5
  126. package/dist/{dispatch-2ZE7Z5V2.js → dispatch-TRXQIBLA.js} +18 -18
  127. package/dist/{enclave-VNHDWCB6.js → enclave-K33BCSHB.js} +13 -9
  128. package/dist/executor-44ONIZTV.js +9 -0
  129. package/dist/executor-H7KLBIJN.js +9 -0
  130. package/dist/executor-PDK7IAPQ.js +29 -0
  131. package/dist/export-accessible-2LJH6JTI.js +23 -0
  132. package/dist/extract-partition-QQFOPCJ6.js +38 -0
  133. package/dist/{fanout-sidecar-PBEVZ5IQ.js → fanout-sidecar-ORVUHI3J.js} +9 -9
  134. package/dist/find-H6GHRBNL.js +11 -0
  135. package/dist/forget/index.js +9 -9
  136. package/dist/guards/index.js +4 -4
  137. package/dist/history/index.js +13 -13
  138. package/dist/i18n/index.js +14 -14
  139. package/dist/index.js +91 -91
  140. package/dist/indexing/index.js +2 -2
  141. package/dist/introspection/index.js +11 -11
  142. package/dist/issue-LV2IWCKY.js +19 -0
  143. package/dist/kernel/constants.d.ts +18 -0
  144. package/dist/kernel/enclave/crypto.d.ts +28 -0
  145. package/dist/kernel/enclave/index.d.ts +2 -2
  146. package/dist/kernel/enclave/record-keys/rekey.d.ts +23 -0
  147. package/dist/kernel/errors.d.ts +15 -0
  148. package/dist/kernel/tier-visibility.d.ts +19 -0
  149. package/dist/kernel/types.d.ts +1 -1
  150. package/dist/{ledger-DDIDLWA3.js → ledger-RM5672K4.js} +11 -11
  151. package/dist/liberate-PNPIQ45H.js +25 -0
  152. package/dist/{link-set-2AYA6BEI.js → link-set-AZ6VDH5X.js} +11 -11
  153. package/dist/{managed-secret-6QTGWZTW.js → managed-secret-QZKTYCLD.js} +10 -10
  154. package/dist/materialized-views/index.js +20 -20
  155. package/dist/{migrate-cek-YBNJDJ2Q.js → migrate-cek-BVAPYJ5T.js} +2 -2
  156. package/dist/money/index.js +4 -4
  157. package/dist/noydb-QZN7G26J.js +85 -0
  158. package/dist/overlay-views/index.js +4 -4
  159. package/dist/periods/index.js +12 -12
  160. package/dist/pod/index.js +56 -56
  161. package/dist/{pod-handle-77YAUM4J.js → pod-handle-LVSMK4XC.js} +9 -9
  162. package/dist/policy/index.js +10 -10
  163. package/dist/portability/index.js +8 -8
  164. package/dist/{post-register-WBDTOLWD.js → post-register-TZGQ34YR.js} +6 -6
  165. package/dist/query/index.js +3 -3
  166. package/dist/reduce/index.js +4 -4
  167. package/dist/register-IQJGJSQQ.js +32 -0
  168. package/dist/registry-3JY3YSMU.js +9 -0
  169. package/dist/registry-G365BQDC.js +19 -0
  170. package/dist/registry-HVS6PGHV.js +9 -0
  171. package/dist/registry-TQ5FRB4T.js +18 -0
  172. package/dist/request-withdrawal-XQCCKMB3.js +31 -0
  173. package/dist/{reveal-Z2X4JW6E.js → reveal-5PXWDCLZ.js} +6 -6
  174. package/dist/revoke-6NSQWTED.js +24 -0
  175. package/dist/satellites/index.js +1 -1
  176. package/dist/schema-update/index.js +2 -2
  177. package/dist/sealed-record/index.js +12 -12
  178. package/dist/search/index.js +4 -4
  179. package/dist/{seed-WJWCFPZL.js → seed-ZLOK3Z4M.js} +12 -11
  180. package/dist/{seed-WJWCFPZL.js.map → seed-ZLOK3Z4M.js.map} +1 -1
  181. package/dist/sequence/index.js +9 -9
  182. package/dist/session/index.js +9 -9
  183. package/dist/shadow/index.js +2 -2
  184. package/dist/signer-AJ3MCSPI.js +25 -0
  185. package/dist/snapshots/index.js +10 -10
  186. package/dist/{stale-MIO5KGEP.js → stale-KQR5QAYJ.js} +10 -10
  187. package/dist/storage-GACYAH6W.js +23 -0
  188. package/dist/{store-coordination-provider-XCX77ZBE.js → store-coordination-provider-RII4H3PJ.js} +10 -10
  189. package/dist/sync/index.js +10 -10
  190. package/dist/team/index.js +15 -15
  191. package/dist/tiers/index.js +11 -11
  192. package/dist/to/index.js +1 -1
  193. package/dist/transactions/index.js +3 -3
  194. package/dist/util/index.js +1 -1
  195. package/dist/vault-head/index.js +8 -8
  196. package/dist/{verify-5QI3DGO2.js → verify-OMPYUO7C.js} +5 -5
  197. package/dist/walk-ZYC74R65.js +21 -0
  198. package/dist/with-party/team/roster-tag.d.ts +1 -1
  199. package/dist/with-shape/blobs/blob-set.d.ts +20 -2
  200. package/dist/withdraw-accessible-MEFFAGRD.js +28 -0
  201. package/package.json +3 -3
  202. package/dist/api-ETB5Y4DY.js +0 -20
  203. package/dist/chunk-66X4XWTM.js.map +0 -1
  204. package/dist/chunk-AK6EWGDO.js.map +0 -1
  205. package/dist/chunk-BYX3AUXH.js.map +0 -1
  206. package/dist/chunk-FUE2KPKM.js.map +0 -1
  207. package/dist/chunk-HKANJAOP.js.map +0 -1
  208. package/dist/chunk-IGNJOJEP.js.map +0 -1
  209. package/dist/chunk-RQQIB7CD.js.map +0 -1
  210. package/dist/chunk-UWRVDBDC.js.map +0 -1
  211. package/dist/collection-facade-XV3IMJBO.js +0 -45
  212. package/dist/derive-WIWSPZ5M.js +0 -22
  213. package/dist/executor-4SMYWPSU.js +0 -29
  214. package/dist/executor-BJ7PCXCV.js +0 -9
  215. package/dist/executor-O4UP4M3C.js +0 -9
  216. package/dist/export-accessible-A3N2V4IX.js +0 -23
  217. package/dist/extract-partition-3EUJXWYG.js +0 -38
  218. package/dist/find-W2DL2BEE.js +0 -11
  219. package/dist/issue-NLJ3FCKL.js +0 -19
  220. package/dist/liberate-EPTCY3DF.js +0 -24
  221. package/dist/noydb-RFBNRUHH.js +0 -85
  222. package/dist/register-VSPL7VRW.js +0 -32
  223. package/dist/registry-A7JADQXC.js +0 -9
  224. package/dist/registry-AOPJN2V4.js +0 -18
  225. package/dist/registry-I4I3QIQ6.js +0 -9
  226. package/dist/registry-QSMKWF4O.js +0 -19
  227. package/dist/request-withdrawal-VL5N623Q.js +0 -31
  228. package/dist/revoke-XQ5STGT4.js +0 -24
  229. package/dist/signer-N5TGVOTN.js +0 -25
  230. package/dist/storage-NLYOMCDM.js +0 -23
  231. package/dist/walk-G5OAA3RE.js +0 -21
  232. package/dist/withdraw-accessible-H7G2AMSP.js +0 -28
  233. /package/dist/{api-ETB5Y4DY.js.map → api-56KUWV6E.js.map} +0 -0
  234. /package/dist/{backup-UOLAXOJ4.js.map → backup-WLKPDY3V.js.map} +0 -0
  235. /package/dist/{chunk-ZYG4UWHF.js.map → chunk-25HI46CB.js.map} +0 -0
  236. /package/dist/{chunk-DXJXVWWE.js.map → chunk-264AKW4K.js.map} +0 -0
  237. /package/dist/{chunk-PFHF3A72.js.map → chunk-2CURJCLC.js.map} +0 -0
  238. /package/dist/{chunk-DEKA2MV3.js.map → chunk-2D5NXYWY.js.map} +0 -0
  239. /package/dist/{chunk-GAZTPQ3D.js.map → chunk-2MYYXXVM.js.map} +0 -0
  240. /package/dist/{chunk-G4577GK7.js.map → chunk-2S6HROLU.js.map} +0 -0
  241. /package/dist/{chunk-KF34JCIJ.js.map → chunk-2ZSBPXFW.js.map} +0 -0
  242. /package/dist/{chunk-LIWA5ROZ.js.map → chunk-34MSA4AO.js.map} +0 -0
  243. /package/dist/{chunk-7LWBD3NO.js.map → chunk-35K4VWMD.js.map} +0 -0
  244. /package/dist/{chunk-ZKZXS352.js.map → chunk-4P3OG2AO.js.map} +0 -0
  245. /package/dist/{chunk-6G4NORTR.js.map → chunk-4Y7VHLCT.js.map} +0 -0
  246. /package/dist/{chunk-I3D67XD7.js.map → chunk-576CTQ77.js.map} +0 -0
  247. /package/dist/{chunk-3UIS6O6N.js.map → chunk-57MEX4LL.js.map} +0 -0
  248. /package/dist/{chunk-JO4MRPEY.js.map → chunk-65WBEFVT.js.map} +0 -0
  249. /package/dist/{chunk-DRVF2YS5.js.map → chunk-6J7SSCJW.js.map} +0 -0
  250. /package/dist/{chunk-LZHIYH32.js.map → chunk-6PLCNLBC.js.map} +0 -0
  251. /package/dist/{chunk-VNPSPQNN.js.map → chunk-ACIEKVFR.js.map} +0 -0
  252. /package/dist/{chunk-SZFNO7L4.js.map → chunk-AKPIBKHK.js.map} +0 -0
  253. /package/dist/{chunk-PUGHLCBW.js.map → chunk-AM6V36AG.js.map} +0 -0
  254. /package/dist/{chunk-2LHPMFSR.js.map → chunk-AU45F5FD.js.map} +0 -0
  255. /package/dist/{chunk-GNSLP7KA.js.map → chunk-BZKQRED6.js.map} +0 -0
  256. /package/dist/{chunk-Z7AHYSZF.js.map → chunk-C3FCXXNI.js.map} +0 -0
  257. /package/dist/{chunk-CWYTN4IK.js.map → chunk-C4DFJ76X.js.map} +0 -0
  258. /package/dist/{chunk-6W3BZCW6.js.map → chunk-CDHX3SRW.js.map} +0 -0
  259. /package/dist/{chunk-DG4KFJNA.js.map → chunk-DBPQUICN.js.map} +0 -0
  260. /package/dist/{chunk-4UZDDS4S.js.map → chunk-DL7NXFAY.js.map} +0 -0
  261. /package/dist/{chunk-XXONVJWA.js.map → chunk-DM2BZDNV.js.map} +0 -0
  262. /package/dist/{chunk-FFSQFH6D.js.map → chunk-DNKVKO7K.js.map} +0 -0
  263. /package/dist/{chunk-ZLU3IWHK.js.map → chunk-E2LYQUB7.js.map} +0 -0
  264. /package/dist/{chunk-O2A5YCFF.js.map → chunk-ENTVT7PF.js.map} +0 -0
  265. /package/dist/{chunk-RTKREHPV.js.map → chunk-ESP4K32V.js.map} +0 -0
  266. /package/dist/{chunk-LPVZDTQF.js.map → chunk-FEWCVAFV.js.map} +0 -0
  267. /package/dist/{chunk-OGB2UTBC.js.map → chunk-FJGNYSB3.js.map} +0 -0
  268. /package/dist/{chunk-TA67ZQUH.js.map → chunk-FKLKAO2C.js.map} +0 -0
  269. /package/dist/{chunk-PENPHA45.js.map → chunk-FX3UIDCS.js.map} +0 -0
  270. /package/dist/{chunk-J2KGT2A5.js.map → chunk-G3ZMEUWD.js.map} +0 -0
  271. /package/dist/{chunk-WBFJZCDJ.js.map → chunk-GCTZNHDO.js.map} +0 -0
  272. /package/dist/{chunk-G6DAESDS.js.map → chunk-GDYDYUO7.js.map} +0 -0
  273. /package/dist/{chunk-YLIGPHN4.js.map → chunk-GU5XWSH4.js.map} +0 -0
  274. /package/dist/{chunk-RBBTJ2HY.js.map → chunk-H6J6MZ4J.js.map} +0 -0
  275. /package/dist/{chunk-JXFQEOAQ.js.map → chunk-HMS3OCMA.js.map} +0 -0
  276. /package/dist/{chunk-6ZN6X2LW.js.map → chunk-HUAAYTVS.js.map} +0 -0
  277. /package/dist/{chunk-KKVVBFKW.js.map → chunk-HUDP5NSI.js.map} +0 -0
  278. /package/dist/{chunk-B3X6S37C.js.map → chunk-HWJZCZSI.js.map} +0 -0
  279. /package/dist/{chunk-D5DZ4R7X.js.map → chunk-ICGLT356.js.map} +0 -0
  280. /package/dist/{chunk-U5ZDYJLQ.js.map → chunk-IYXP6OR5.js.map} +0 -0
  281. /package/dist/{chunk-WBRLSPA7.js.map → chunk-JSJS7RHS.js.map} +0 -0
  282. /package/dist/{chunk-AZPPARMG.js.map → chunk-K6J7JKZM.js.map} +0 -0
  283. /package/dist/{chunk-LYQUFIHL.js.map → chunk-K7HPGV5K.js.map} +0 -0
  284. /package/dist/{chunk-5MU7PUNA.js.map → chunk-KC3S3OH6.js.map} +0 -0
  285. /package/dist/{chunk-WG66ZPEV.js.map → chunk-KEMD6B3W.js.map} +0 -0
  286. /package/dist/{chunk-UW5YKCE4.js.map → chunk-L34HKPIS.js.map} +0 -0
  287. /package/dist/{chunk-7ZPAL3F7.js.map → chunk-LG2P6S32.js.map} +0 -0
  288. /package/dist/{chunk-TWELPVXG.js.map → chunk-LT26SRU5.js.map} +0 -0
  289. /package/dist/{chunk-ZA3RBGT3.js.map → chunk-LTC77D4V.js.map} +0 -0
  290. /package/dist/{chunk-22VRCUV2.js.map → chunk-M3XEJJDE.js.map} +0 -0
  291. /package/dist/{chunk-FNCX4N7X.js.map → chunk-MGIAYREB.js.map} +0 -0
  292. /package/dist/{chunk-M2KVSM43.js.map → chunk-MLTGIDNB.js.map} +0 -0
  293. /package/dist/{chunk-Z6UMKUAI.js.map → chunk-MXJMCTSI.js.map} +0 -0
  294. /package/dist/{chunk-OMXUQAZJ.js.map → chunk-NK7DO6A2.js.map} +0 -0
  295. /package/dist/{chunk-CJU3KXHJ.js.map → chunk-NKND2IMW.js.map} +0 -0
  296. /package/dist/{chunk-YNWBBHQK.js.map → chunk-NUHIPODK.js.map} +0 -0
  297. /package/dist/{chunk-ATSIGJRX.js.map → chunk-ODGV6Q6U.js.map} +0 -0
  298. /package/dist/{chunk-2DHEBIJA.js.map → chunk-OJYLLNQN.js.map} +0 -0
  299. /package/dist/{chunk-VXH5Z22C.js.map → chunk-OQT3G55N.js.map} +0 -0
  300. /package/dist/{chunk-2QN6NPV6.js.map → chunk-PORGC5MH.js.map} +0 -0
  301. /package/dist/{chunk-R6BGN6IY.js.map → chunk-PRBJ4BJD.js.map} +0 -0
  302. /package/dist/{chunk-BNGGSNO7.js.map → chunk-PU5PNTE2.js.map} +0 -0
  303. /package/dist/{chunk-ISRAQIYY.js.map → chunk-PZEDIO72.js.map} +0 -0
  304. /package/dist/{chunk-SIACMXFK.js.map → chunk-RTBCWDJ3.js.map} +0 -0
  305. /package/dist/{chunk-OTHHO3KI.js.map → chunk-S2I5MYSA.js.map} +0 -0
  306. /package/dist/{chunk-RGUAY5IX.js.map → chunk-S447GUNV.js.map} +0 -0
  307. /package/dist/{chunk-7DRKK5FQ.js.map → chunk-SP3AFEB7.js.map} +0 -0
  308. /package/dist/{chunk-GJ5TMHKC.js.map → chunk-SQWXF2HP.js.map} +0 -0
  309. /package/dist/{chunk-5FRZ7YYU.js.map → chunk-TTGZ6KGY.js.map} +0 -0
  310. /package/dist/{chunk-L374ZR75.js.map → chunk-UHFF4G53.js.map} +0 -0
  311. /package/dist/{chunk-LBDG6FHB.js.map → chunk-VZEBHQRT.js.map} +0 -0
  312. /package/dist/{chunk-ZILONQGE.js.map → chunk-VZHEFFUO.js.map} +0 -0
  313. /package/dist/{chunk-JMN3I4OC.js.map → chunk-WN377AAV.js.map} +0 -0
  314. /package/dist/{chunk-DZBZCFS7.js.map → chunk-XCNYOVFV.js.map} +0 -0
  315. /package/dist/{chunk-C7B3XUI4.js.map → chunk-YIC34H3M.js.map} +0 -0
  316. /package/dist/{chunk-3ZOER5GD.js.map → chunk-YZWRJRMF.js.map} +0 -0
  317. /package/dist/{chunk-23ODLABM.js.map → chunk-Z45PK2H5.js.map} +0 -0
  318. /package/dist/{chunk-7W765AVV.js.map → chunk-ZI43U6FN.js.map} +0 -0
  319. /package/dist/{chunk-L5PTLL7A.js.map → chunk-ZJJ46LNY.js.map} +0 -0
  320. /package/dist/{chunk-3ENNPCIW.js.map → chunk-ZY6P7M52.js.map} +0 -0
  321. /package/dist/{classified-marker-RYWYYZDB.js.map → classified-marker-DLLGRRXG.js.map} +0 -0
  322. /package/dist/{collection-facade-XV3IMJBO.js.map → collection-facade-OHBCHCJV.js.map} +0 -0
  323. /package/dist/{computed-M4QZVSPX.js.map → computed-X2RKYFGX.js.map} +0 -0
  324. /package/dist/{dead-filter-DRKJDNSF.js.map → dead-filter-CCLDPNTJ.js.map} +0 -0
  325. /package/dist/{delegation-UEJN2LDC.js.map → delegation-OSXUSSUO.js.map} +0 -0
  326. /package/dist/{derive-WIWSPZ5M.js.map → derive-6K35IOIN.js.map} +0 -0
  327. /package/dist/{dispatch-KNWYDUYM.js.map → dispatch-HCCQPOC7.js.map} +0 -0
  328. /package/dist/{dispatch-2ZE7Z5V2.js.map → dispatch-TRXQIBLA.js.map} +0 -0
  329. /package/dist/{enclave-VNHDWCB6.js.map → enclave-K33BCSHB.js.map} +0 -0
  330. /package/dist/{executor-4SMYWPSU.js.map → executor-44ONIZTV.js.map} +0 -0
  331. /package/dist/{executor-BJ7PCXCV.js.map → executor-H7KLBIJN.js.map} +0 -0
  332. /package/dist/{executor-O4UP4M3C.js.map → executor-PDK7IAPQ.js.map} +0 -0
  333. /package/dist/{export-accessible-A3N2V4IX.js.map → export-accessible-2LJH6JTI.js.map} +0 -0
  334. /package/dist/{extract-partition-3EUJXWYG.js.map → extract-partition-QQFOPCJ6.js.map} +0 -0
  335. /package/dist/{fanout-sidecar-PBEVZ5IQ.js.map → fanout-sidecar-ORVUHI3J.js.map} +0 -0
  336. /package/dist/{find-W2DL2BEE.js.map → find-H6GHRBNL.js.map} +0 -0
  337. /package/dist/{issue-NLJ3FCKL.js.map → issue-LV2IWCKY.js.map} +0 -0
  338. /package/dist/{ledger-DDIDLWA3.js.map → ledger-RM5672K4.js.map} +0 -0
  339. /package/dist/{liberate-EPTCY3DF.js.map → liberate-PNPIQ45H.js.map} +0 -0
  340. /package/dist/{link-set-2AYA6BEI.js.map → link-set-AZ6VDH5X.js.map} +0 -0
  341. /package/dist/{managed-secret-6QTGWZTW.js.map → managed-secret-QZKTYCLD.js.map} +0 -0
  342. /package/dist/{migrate-cek-YBNJDJ2Q.js.map → migrate-cek-BVAPYJ5T.js.map} +0 -0
  343. /package/dist/{noydb-RFBNRUHH.js.map → noydb-QZN7G26J.js.map} +0 -0
  344. /package/dist/{pod-handle-77YAUM4J.js.map → pod-handle-LVSMK4XC.js.map} +0 -0
  345. /package/dist/{post-register-WBDTOLWD.js.map → post-register-TZGQ34YR.js.map} +0 -0
  346. /package/dist/{register-VSPL7VRW.js.map → register-IQJGJSQQ.js.map} +0 -0
  347. /package/dist/{registry-A7JADQXC.js.map → registry-3JY3YSMU.js.map} +0 -0
  348. /package/dist/{registry-AOPJN2V4.js.map → registry-G365BQDC.js.map} +0 -0
  349. /package/dist/{registry-I4I3QIQ6.js.map → registry-HVS6PGHV.js.map} +0 -0
  350. /package/dist/{registry-QSMKWF4O.js.map → registry-TQ5FRB4T.js.map} +0 -0
  351. /package/dist/{request-withdrawal-VL5N623Q.js.map → request-withdrawal-XQCCKMB3.js.map} +0 -0
  352. /package/dist/{reveal-Z2X4JW6E.js.map → reveal-5PXWDCLZ.js.map} +0 -0
  353. /package/dist/{revoke-XQ5STGT4.js.map → revoke-6NSQWTED.js.map} +0 -0
  354. /package/dist/{signer-N5TGVOTN.js.map → signer-AJ3MCSPI.js.map} +0 -0
  355. /package/dist/{stale-MIO5KGEP.js.map → stale-KQR5QAYJ.js.map} +0 -0
  356. /package/dist/{storage-NLYOMCDM.js.map → storage-GACYAH6W.js.map} +0 -0
  357. /package/dist/{store-coordination-provider-XCX77ZBE.js.map → store-coordination-provider-RII4H3PJ.js.map} +0 -0
  358. /package/dist/{verify-5QI3DGO2.js.map → verify-OMPYUO7C.js.map} +0 -0
  359. /package/dist/{walk-G5OAA3RE.js.map → walk-ZYC74R65.js.map} +0 -0
  360. /package/dist/{withdraw-accessible-H7G2AMSP.js.map → withdraw-accessible-MEFFAGRD.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,54 @@
1
1
  # Changelog — hub
2
2
 
3
+ ## 0.6.0-pre.24
4
+
5
+ ### Minor Changes
6
+
7
+ - The roster tag authenticates the DEK key set (#1115).
8
+
9
+ `revoke` derives its rotation scope from `Object.keys(target.deks)`. That set was not covered by the roster tag, so a store could strip entries from the target's keyring before a revocation and have those collections silently skipped by the rotation — a revoked member colluding with that store keeps live DEKs for exactly the collections it removed. That contradicted `SECURITY.md`'s _"the rotation cannot be skipped"_.
10
+
11
+ `rosterCanonical` now binds the key **names** of `deks` and `pending_deks`. Names only: the wrapped values are AES-KW and self-authenticating, so what was unprotected was the shape of the map, not its contents. `pending_deks` is included because stripping it makes an interrupted rotation mint a fresh DEK instead of resuming, orphaning every record already rewritten under the pending key.
12
+
13
+ **This is a keyring format change with no migration** — consistent with the position recorded for `0.6.0-pre.21`: an existing vault must be re-seeded. `NOYDB_KEYRING_VERSION` is bumped to `2`, and a tag that cannot verify against an older declared version now reports the new `format-superseded` reason, which names the format transition instead of accusing the store. Classification only — access is refused either way, so a store rewriting the plaintext version field changes the wording and nothing else.
14
+
15
+ Also fixes `adoptPartition`, which merged partition DEKs into a freshly-minted keyring without restamping. That was invisible while the tag ignored `deks`; it now restamps, as `liberateVault` already did.
16
+
17
+ - The blob content address survives a key rotation (#1126).
18
+
19
+ A blob's eTag is an HMAC over the plaintext. It was keyed by the `_blob` DEK — the very key `rotateKeys` replaces — so after any rotation `HMAC(live DEK, plaintext) !== storedETag` for every blob written before it, **permanently**. `decryptResponse()` checks that unconditionally, so the presigned-URL / external-object read path raised `TamperedError` on legitimate data forever; `verifyFlatETag` did the same on the flat-tier fallback; a resumed rehome mis-mapped; and dedup split, minting a second address for identical bytes.
20
+
21
+ Addresses now derive from `_blob_addr`, a **vault-lifetime keyring slot that rotation refuses to touch** — so a rotation re-keys chunk bodies while every stored address, chunk AAD and index row stays valid. The derivation stays **per tier**: the address is meant to be tier-scoped (`rehomeForTier` re-addresses on a tier move for exactly that reason); only the rotation coupling was ever wrong.
22
+
23
+ Reported by the same alarm as #1103, and this was the same cry-wolf class: a user who revoked a colleague was told their store may be attacking them.
24
+
25
+ **Format change, no migration** — consistent with the `0.6.0-pre.21` position: an existing vault must be re-seeded. **Residual:** a revoked member who kept the addressing root retains a confirmation oracle over content whose plaintext they already hold; they can read nothing, because bodies are sealed under DEKs that do rotate. See `SECURITY.md`.
26
+
27
+ Also restamps the roster tag on all three `recoverSecret` rebuild paths, which rewrote the keyring while carrying the previous tag.
28
+
29
+ ### Patch Changes
30
+
31
+ - A narrowing re-grant rotates the collections it takes away (#1097, partial).
32
+
33
+ `writeKeyringFile` is a bare `put`, so a re-grant with a lower role or narrower permissions **overwrites in place** — and the file it replaces was legitimately minted by this vault. A store that kept a copy can re-serve it, and `loadKeyring` accepts it: the KEK unwraps, the canary checks out, the roster tag verifies. None of those is a claim about being _current_.
34
+
35
+ ADR 0003 bounded a suppressed keyring delete on the grounds that revocation rotates, so an old roster's DEKs cannot open post-rotation records. **A narrowing re-grant rotated nothing**, so a replayed file opened records written _after_ the narrowing — live access rather than stale access. Rotating the dropped collections restores that bound.
36
+
37
+ ⚠️ **This does not close the replay itself.** The old file also restores the old **role**, and role gates capabilities rather than keys, so rotation cannot touch it. That half needs an anchor the store cannot rewind, and #1097 stays open for it.
38
+
39
+ A widening re-grant and a first grant rotate nothing, so this is not a tax on every grant.
40
+
41
+ - `rotateKeys` covers `collection#tier` DEK slots, in both directions (#1125).
42
+
43
+ Elevated records live in the same collection as their tier-0 siblings, distinguished by the envelope `_tier` field, and are sealed under `dekKey(collection, tier)`. Rotation keyed off the collection **name**, so it was broken twice over:
44
+
45
+ - **Rotating `docs` threw.** It met an elevated record it could not open under the tier-0 DEK and rethrew — and because `revoke` rotates as its final step, revoking anyone from a vault holding a single elevated record **failed after the keyring had already been deleted**. Part-applied.
46
+ - **Rotating `docs#1` was a silent no-op.** `store.list(vault, "docs#1")` is empty because the slot names a key, not a collection, so nothing was re-encrypted and a revoked member who retained the tier key kept opening elevated records.
47
+
48
+ Rotation now walks the base collection for every slot and classifies each envelope by **which key opens it** — never by the envelope's claimed `_tier`, which is unencrypted and store-written. Routing on `_tier` would let a store mark a tier-0 record `_tier: 5` and have the rotation skip real data.
49
+
50
+ Guarded by an output-domain invariant rather than a row per known defect: after a revocation, no retained key opens any envelope, and the owner can still read everything.
51
+
3
52
  ## 0.6.0-pre.23
4
53
 
5
54
  ### Minor Changes
@@ -0,0 +1,20 @@
1
+ import {
2
+ UserApi,
3
+ createUserApi
4
+ } from "./chunk-CDHX3SRW.js";
5
+ import "./chunk-SQWXF2HP.js";
6
+ import "./chunk-43FOH2OK.js";
7
+ import "./chunk-FX3UIDCS.js";
8
+ import "./chunk-NK7DO6A2.js";
9
+ import "./chunk-AM6V36AG.js";
10
+ import "./chunk-AU45F5FD.js";
11
+ import "./chunk-LP7BEXCT.js";
12
+ import "./chunk-D7STIWJO.js";
13
+ import "./chunk-UJ4Z67UQ.js";
14
+ import "./chunk-5OFC3QYL.js";
15
+ import "./chunk-PZ5AY32C.js";
16
+ export {
17
+ UserApi,
18
+ createUserApi
19
+ };
20
+ //# sourceMappingURL=api-56KUWV6E.js.map
@@ -1,42 +1,42 @@
1
1
  import {
2
2
  issueAttestationCore
3
- } from "../chunk-Z7AHYSZF.js";
3
+ } from "../chunk-C3FCXXNI.js";
4
4
  import {
5
5
  getRevokedDocIdsCore,
6
6
  publishRevocationListCore,
7
7
  revokeDocCore,
8
8
  unrevokeDocCore
9
- } from "../chunk-G6DAESDS.js";
9
+ } from "../chunk-GDYDYUO7.js";
10
10
  import {
11
11
  ATTESTATIONS_COLLECTION
12
- } from "../chunk-23ODLABM.js";
12
+ } from "../chunk-Z45PK2H5.js";
13
13
  import {
14
14
  NO_ATTESTATION
15
- } from "../chunk-D5DZ4R7X.js";
15
+ } from "../chunk-ICGLT356.js";
16
16
  import "../chunk-4AOERLTV.js";
17
- import "../chunk-FUE2KPKM.js";
18
- import "../chunk-PENPHA45.js";
19
- import "../chunk-OMXUQAZJ.js";
20
- import "../chunk-PUGHLCBW.js";
21
- import "../chunk-2LHPMFSR.js";
17
+ import "../chunk-43FOH2OK.js";
18
+ import "../chunk-FX3UIDCS.js";
19
+ import "../chunk-NK7DO6A2.js";
20
+ import "../chunk-AM6V36AG.js";
21
+ import "../chunk-AU45F5FD.js";
22
22
  import "../chunk-LP7BEXCT.js";
23
- import "../chunk-RQQIB7CD.js";
24
- import "../chunk-IGNJOJEP.js";
23
+ import "../chunk-D7STIWJO.js";
24
+ import "../chunk-UJ4Z67UQ.js";
25
25
  import {
26
26
  AttestationError,
27
27
  AttestationNotEnabledError
28
- } from "../chunk-HKANJAOP.js";
28
+ } from "../chunk-5OFC3QYL.js";
29
29
  import "../chunk-PZ5AY32C.js";
30
30
 
31
31
  // src/with-audit/attestation/active.ts
32
32
  function withAttestation() {
33
33
  return {
34
34
  async issueAttestation(ctx, args) {
35
- const { issueAttestationCore: issueAttestationCore2 } = await import("../issue-NLJ3FCKL.js");
35
+ const { issueAttestationCore: issueAttestationCore2 } = await import("../issue-LV2IWCKY.js");
36
36
  return issueAttestationCore2(ctx, args);
37
37
  },
38
38
  async getDocumentSigningPublicKey(deps) {
39
- const { loadSigner, loadOrCreateSigner } = await import("../signer-N5TGVOTN.js");
39
+ const { loadSigner, loadOrCreateSigner } = await import("../signer-AJ3MCSPI.js");
40
40
  const existing = await loadSigner(deps.adapter, deps.vault, deps.getDEK);
41
41
  if (existing) return { keyId: existing.keyId, publicKeyB64: existing.publicKeyB64 };
42
42
  if (deps.role !== "owner") {
@@ -46,19 +46,19 @@ function withAttestation() {
46
46
  return { keyId: signer.keyId, publicKeyB64: signer.publicKeyB64 };
47
47
  },
48
48
  async revokeAttestation(ctx, docId) {
49
- const { revokeDocCore: revokeDocCore2 } = await import("../revoke-XQ5STGT4.js");
49
+ const { revokeDocCore: revokeDocCore2 } = await import("../revoke-6NSQWTED.js");
50
50
  return revokeDocCore2(ctx, docId);
51
51
  },
52
52
  async unrevokeAttestation(ctx, docId) {
53
- const { unrevokeDocCore: unrevokeDocCore2 } = await import("../revoke-XQ5STGT4.js");
53
+ const { unrevokeDocCore: unrevokeDocCore2 } = await import("../revoke-6NSQWTED.js");
54
54
  return unrevokeDocCore2(ctx, docId);
55
55
  },
56
56
  async getRevokedDocIds(ctx) {
57
- const { getRevokedDocIdsCore: getRevokedDocIdsCore2 } = await import("../revoke-XQ5STGT4.js");
57
+ const { getRevokedDocIdsCore: getRevokedDocIdsCore2 } = await import("../revoke-6NSQWTED.js");
58
58
  return getRevokedDocIdsCore2(ctx);
59
59
  },
60
60
  async publishRevocationList(ctx) {
61
- const { publishRevocationListCore: publishRevocationListCore2 } = await import("../revoke-XQ5STGT4.js");
61
+ const { publishRevocationListCore: publishRevocationListCore2 } = await import("../revoke-6NSQWTED.js");
62
62
  return publishRevocationListCore2(ctx);
63
63
  }
64
64
  };
@@ -3,37 +3,37 @@ import {
3
3
  } from "./chunk-EPFF7LOX.js";
4
4
  import {
5
5
  SCHEMAS_COLLECTION
6
- } from "./chunk-SZFNO7L4.js";
6
+ } from "./chunk-AKPIBKHK.js";
7
7
  import {
8
8
  SEQUENCE_COLLECTION
9
- } from "./chunk-G4577GK7.js";
9
+ } from "./chunk-2S6HROLU.js";
10
10
  import {
11
11
  PERIODS_COLLECTION,
12
12
  PERIOD_ARCHIVES_COLLECTION,
13
13
  PERIOD_FREEZES_COLLECTION,
14
14
  PERIOD_REOPENS_COLLECTION,
15
15
  PERIOD_TARGET_PURGES_COLLECTION
16
- } from "./chunk-VXH5Z22C.js";
16
+ } from "./chunk-OQT3G55N.js";
17
17
  import {
18
18
  LEDGER_COLLECTION,
19
19
  LEDGER_DELTAS_COLLECTION
20
20
  } from "./chunk-I7FD46FF.js";
21
- import "./chunk-FUE2KPKM.js";
21
+ import "./chunk-43FOH2OK.js";
22
22
  import {
23
23
  buildRecordEnvelope
24
- } from "./chunk-PENPHA45.js";
25
- import "./chunk-OMXUQAZJ.js";
26
- import "./chunk-PUGHLCBW.js";
27
- import "./chunk-2LHPMFSR.js";
24
+ } from "./chunk-FX3UIDCS.js";
25
+ import "./chunk-NK7DO6A2.js";
26
+ import "./chunk-AM6V36AG.js";
27
+ import "./chunk-AU45F5FD.js";
28
28
  import "./chunk-LP7BEXCT.js";
29
- import "./chunk-RQQIB7CD.js";
29
+ import "./chunk-D7STIWJO.js";
30
30
  import {
31
31
  NOYDB_BACKUP_VERSION
32
- } from "./chunk-IGNJOJEP.js";
32
+ } from "./chunk-UJ4Z67UQ.js";
33
33
  import {
34
34
  BackupCorruptedError,
35
35
  BackupLedgerError
36
- } from "./chunk-HKANJAOP.js";
36
+ } from "./chunk-5OFC3QYL.js";
37
37
  import "./chunk-PZ5AY32C.js";
38
38
 
39
39
  // src/with-pod/backup.ts
@@ -262,4 +262,4 @@ export {
262
262
  loadVault,
263
263
  verifyBackupIntegrity
264
264
  };
265
- //# sourceMappingURL=backup-UOLAXOJ4.js.map
265
+ //# sourceMappingURL=backup-WLKPDY3V.js.map
@@ -10,7 +10,7 @@ import {
10
10
  createExportBlobsHandle,
11
11
  reportOrphanBlobChunks,
12
12
  runCompaction
13
- } from "../chunk-TA67ZQUH.js";
13
+ } from "../chunk-FKLKAO2C.js";
14
14
  import {
15
15
  BLOB_CHUNKS_COLLECTION,
16
16
  BLOB_COLLECTION,
@@ -25,21 +25,21 @@ import {
25
25
  detectMimeType,
26
26
  isPreCompressed,
27
27
  memoryBlobPinStore
28
- } from "../chunk-BYX3AUXH.js";
29
- import "../chunk-LZHIYH32.js";
30
- import "../chunk-3UIS6O6N.js";
31
- import "../chunk-6ZTPSVY7.js";
32
- import "../chunk-FUE2KPKM.js";
33
- import "../chunk-PENPHA45.js";
34
- import "../chunk-OMXUQAZJ.js";
35
- import "../chunk-PUGHLCBW.js";
36
- import "../chunk-2LHPMFSR.js";
28
+ } from "../chunk-24ZDSTEQ.js";
29
+ import "../chunk-6PLCNLBC.js";
30
+ import "../chunk-57MEX4LL.js";
31
+ import "../chunk-NSZGZYZL.js";
32
+ import "../chunk-43FOH2OK.js";
33
+ import "../chunk-FX3UIDCS.js";
34
+ import "../chunk-NK7DO6A2.js";
35
+ import "../chunk-AM6V36AG.js";
36
+ import "../chunk-AU45F5FD.js";
37
37
  import "../chunk-LP7BEXCT.js";
38
- import "../chunk-RQQIB7CD.js";
39
- import "../chunk-IGNJOJEP.js";
38
+ import "../chunk-D7STIWJO.js";
39
+ import "../chunk-UJ4Z67UQ.js";
40
40
  import {
41
41
  BlobOfflineError
42
- } from "../chunk-HKANJAOP.js";
42
+ } from "../chunk-5OFC3QYL.js";
43
43
  import "../chunk-PZ5AY32C.js";
44
44
 
45
45
  // src/via/blob/active.ts
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  NO_BROKER
3
- } from "../chunk-LYQUFIHL.js";
3
+ } from "../chunk-K7HPGV5K.js";
4
4
  import {
5
5
  issueChallenge,
6
6
  verifyBrokerProof
7
- } from "../chunk-FUE2KPKM.js";
8
- import "../chunk-PENPHA45.js";
9
- import "../chunk-OMXUQAZJ.js";
10
- import "../chunk-PUGHLCBW.js";
11
- import "../chunk-2LHPMFSR.js";
7
+ } from "../chunk-43FOH2OK.js";
8
+ import "../chunk-FX3UIDCS.js";
9
+ import "../chunk-NK7DO6A2.js";
10
+ import "../chunk-AM6V36AG.js";
11
+ import "../chunk-AU45F5FD.js";
12
12
  import "../chunk-LP7BEXCT.js";
13
- import "../chunk-RQQIB7CD.js";
14
- import "../chunk-IGNJOJEP.js";
13
+ import "../chunk-D7STIWJO.js";
14
+ import "../chunk-UJ4Z67UQ.js";
15
15
  import {
16
16
  BrokerEnrolmentError,
17
17
  BrokerNotEnabledError,
18
18
  BrokerProofError
19
- } from "../chunk-HKANJAOP.js";
19
+ } from "../chunk-5OFC3QYL.js";
20
20
  import "../chunk-PZ5AY32C.js";
21
21
 
22
22
  // src/with-party/broker/active.ts
@@ -30,7 +30,7 @@ function withBroker(config) {
30
30
  const cache = /* @__PURE__ */ new Map();
31
31
  return {
32
32
  async enroll(ctx) {
33
- const { enrollSeed } = await import("../seed-WJWCFPZL.js");
33
+ const { enrollSeed } = await import("../seed-ZLOK3Z4M.js");
34
34
  return enrollSeed({ ...ctx, config });
35
35
  },
36
36
  async rotate(ctx) {
@@ -39,7 +39,7 @@ function withBroker(config) {
39
39
  const inFlight = scoped.map(([, e]) => e.inFlight).filter((p) => p !== void 0);
40
40
  await Promise.allSettled(inFlight);
41
41
  for (const [key] of scoped) cache.delete(key);
42
- const { rotateSeed } = await import("../seed-WJWCFPZL.js");
42
+ const { rotateSeed } = await import("../seed-ZLOK3Z4M.js");
43
43
  return rotateSeed({ ...ctx, config });
44
44
  },
45
45
  credentialSource(ctx, profile) {
@@ -56,7 +56,7 @@ function withBroker(config) {
56
56
  const skewMs = config.skewMs ?? DEFAULT_SKEW_MS;
57
57
  const capturedEntry = entry;
58
58
  const inFlight = (async () => {
59
- const { mintStoreCredentials } = await import("../seed-WJWCFPZL.js");
59
+ const { mintStoreCredentials } = await import("../seed-ZLOK3Z4M.js");
60
60
  const creds = await mintStoreCredentials({ ...ctx, config }, profile);
61
61
  capturedEntry.cached = { creds, validUntil: cacheFloor(creds, skewMs) };
62
62
  return creds;
@@ -6,67 +6,67 @@ import {
6
6
  diffVault,
7
7
  unsealDeks,
8
8
  withCargo
9
- } from "../chunk-UWRVDBDC.js";
9
+ } from "../chunk-LU2HAOVP.js";
10
10
  import {
11
11
  extractPartition,
12
12
  walkClosure
13
- } from "../chunk-SIACMXFK.js";
13
+ } from "../chunk-RTBCWDJ3.js";
14
14
  import {
15
15
  createDeedOwner,
16
16
  isDeedVault,
17
17
  liberateVault,
18
18
  loadDeedMarker
19
- } from "../chunk-ISRAQIYY.js";
20
- import "../chunk-I3D67XD7.js";
21
- import "../chunk-7LWBD3NO.js";
19
+ } from "../chunk-PZEDIO72.js";
20
+ import "../chunk-576CTQ77.js";
21
+ import "../chunk-35K4VWMD.js";
22
22
  import {
23
23
  NO_CARGO,
24
24
  isQuorum,
25
25
  runDrainBarrier
26
- } from "../chunk-WBFJZCDJ.js";
27
- import "../chunk-OTHHO3KI.js";
28
- import "../chunk-SZFNO7L4.js";
26
+ } from "../chunk-GCTZNHDO.js";
27
+ import "../chunk-S2I5MYSA.js";
28
+ import "../chunk-AKPIBKHK.js";
29
29
  import {
30
30
  CustodyApi
31
- } from "../chunk-WG66ZPEV.js";
32
- import "../chunk-XXONVJWA.js";
33
- import "../chunk-5FRZ7YYU.js";
31
+ } from "../chunk-KEMD6B3W.js";
32
+ import "../chunk-DM2BZDNV.js";
33
+ import "../chunk-TTGZ6KGY.js";
34
34
  import {
35
35
  fuseRetrieval
36
36
  } from "../chunk-AURFOK3D.js";
37
- import "../chunk-BYX3AUXH.js";
37
+ import "../chunk-24ZDSTEQ.js";
38
38
  import {
39
39
  groupAndReduce,
40
40
  reduceRecords
41
- } from "../chunk-DXJXVWWE.js";
41
+ } from "../chunk-264AKW4K.js";
42
42
  import "../chunk-XZHEOSQ2.js";
43
43
  import "../chunk-ATL3ZVXT.js";
44
44
  import {
45
45
  readPath
46
46
  } from "../chunk-NSITFOCJ.js";
47
- import "../chunk-U5ZDYJLQ.js";
48
- import "../chunk-LZHIYH32.js";
49
- import "../chunk-AK6EWGDO.js";
50
- import "../chunk-GJ5TMHKC.js";
51
- import "../chunk-3UIS6O6N.js";
47
+ import "../chunk-IYXP6OR5.js";
48
+ import "../chunk-6PLCNLBC.js";
49
+ import "../chunk-YEEV4ZXL.js";
50
+ import "../chunk-SQWXF2HP.js";
51
+ import "../chunk-57MEX4LL.js";
52
52
  import {
53
53
  generateULID
54
54
  } from "../chunk-4AOERLTV.js";
55
55
  import "../chunk-SVLR4POP.js";
56
- import "../chunk-OGB2UTBC.js";
56
+ import "../chunk-FJGNYSB3.js";
57
57
  import "../chunk-I7FD46FF.js";
58
- import "../chunk-YLIGPHN4.js";
59
- import "../chunk-6ZTPSVY7.js";
60
- import "../chunk-FUE2KPKM.js";
61
- import "../chunk-PENPHA45.js";
62
- import "../chunk-OMXUQAZJ.js";
63
- import "../chunk-PUGHLCBW.js";
64
- import "../chunk-2LHPMFSR.js";
58
+ import "../chunk-GU5XWSH4.js";
59
+ import "../chunk-NSZGZYZL.js";
60
+ import "../chunk-43FOH2OK.js";
61
+ import "../chunk-FX3UIDCS.js";
62
+ import "../chunk-NK7DO6A2.js";
63
+ import "../chunk-AM6V36AG.js";
64
+ import "../chunk-AU45F5FD.js";
65
65
  import "../chunk-LP7BEXCT.js";
66
66
  import {
67
67
  sha256Hex
68
- } from "../chunk-RQQIB7CD.js";
69
- import "../chunk-IGNJOJEP.js";
68
+ } from "../chunk-D7STIWJO.js";
69
+ import "../chunk-UJ4Z67UQ.js";
70
70
  import {
71
71
  AdoptionStateError,
72
72
  CargoNotEnabledError,
@@ -81,7 +81,7 @@ import {
81
81
  UnknownShardError,
82
82
  ValidationError,
83
83
  VaultTemplateNotFoundError
84
- } from "../chunk-HKANJAOP.js";
84
+ } from "../chunk-5OFC3QYL.js";
85
85
  import "../chunk-PZ5AY32C.js";
86
86
  export {
87
87
  AdoptionStateError,
@@ -1,24 +1,25 @@
1
1
  import {
2
2
  assertTierAccess
3
- } from "./chunk-3UIS6O6N.js";
3
+ } from "./chunk-57MEX4LL.js";
4
4
  import {
5
5
  dekKey,
6
6
  liveRecordIsElevated,
7
7
  liveRecordTier
8
- } from "./chunk-6ZTPSVY7.js";
8
+ } from "./chunk-NSZGZYZL.js";
9
9
  import {
10
10
  buildRecordAad,
11
11
  openEnvelopeJson,
12
12
  writeEnvelopeBody
13
- } from "./chunk-FUE2KPKM.js";
13
+ } from "./chunk-43FOH2OK.js";
14
14
  import {
15
15
  buildRecordEnvelope,
16
16
  buildSealedRecordEnvelope
17
- } from "./chunk-PENPHA45.js";
17
+ } from "./chunk-FX3UIDCS.js";
18
18
  import {
19
19
  base64ToBuffer,
20
20
  bufferToBase64,
21
21
  decryptBytesWithAAD,
22
+ deriveBlobAddressKey,
22
23
  encrypt,
23
24
  encryptBytesWithAAD,
24
25
  generateDEK,
@@ -26,8 +27,9 @@ import {
26
27
  sha256Hex,
27
28
  unwrapCek,
28
29
  wrapCek
29
- } from "./chunk-RQQIB7CD.js";
30
+ } from "./chunk-D7STIWJO.js";
30
31
  import {
32
+ BLOB_ADDRESS_KEY_ID,
31
33
  BlobIntentPendingError,
32
34
  BlobOfflineError,
33
35
  ConflictError,
@@ -37,7 +39,7 @@ import {
37
39
  UnsupportedTierCompositionError,
38
40
  ValidationError,
39
41
  isConflictError
40
- } from "./chunk-HKANJAOP.js";
42
+ } from "./chunk-5OFC3QYL.js";
41
43
 
42
44
  // src/with-shape/blobs/blob-pinning.ts
43
45
  function memoryBlobPinStore() {
@@ -567,6 +569,26 @@ var BlobSet = class _BlobSet {
567
569
  * write throws an AEAD decrypt error rather than silently writing under
568
570
  * the wrong key.
569
571
  */
572
+ /**
573
+ * The content-addressing key for `tier` (#1126).
574
+ *
575
+ * Derived from `_blob_addr`, a vault-lifetime keyring slot `rotateKeys`
576
+ * refuses to touch — so a rotation re-keys chunk BODIES while every stored
577
+ * eTag, and therefore every chunk AAD and every `_blob_index` /
578
+ * `_blob_slots_*` / `_blob_versions_*` row, survives it unchanged.
579
+ *
580
+ * Before this the address was keyed by the `_blob` DEK itself, so after any
581
+ * rotation `HMAC(live DEK, plaintext) !== storedETag` permanently, for every
582
+ * blob written earlier: `decryptResponse()` raised `TamperedError` on the
583
+ * presigned-URL path forever, and dedup split.
584
+ *
585
+ * Still derived PER TIER, because the address is meant to be tier-scoped —
586
+ * `rehomeForTier` re-addresses on a tier move for exactly that reason. Only
587
+ * the ROTATION coupling was ever wrong.
588
+ */
589
+ async addressKey(tier) {
590
+ return deriveBlobAddressKey(await this.getDEK(BLOB_ADDRESS_KEY_ID), tier);
591
+ }
570
592
  async ownerTier() {
571
593
  if (this.clearedTier !== void 0) return this.clearedTier;
572
594
  return liveRecordTier(this.store, this.vault, this.collection, this.recordId);
@@ -1667,7 +1689,6 @@ var BlobSet = class _BlobSet {
1667
1689
  if (Object.keys(slots).length > 0) {
1668
1690
  if (slotsAtTier === toTier) {
1669
1691
  const toBlobDEK = await this.getDEK(dekKey(BLOB_COLLECTION, toTier));
1670
- const fromBlobDEK = await this.getDEK(dekKey(BLOB_COLLECTION, fromTier));
1671
1692
  const doneETags = new Set(Object.values(slots).map((s) => s.eTag).filter((eTag) => eTag !== ""));
1672
1693
  for (const eTag of doneETags) {
1673
1694
  let loaded;
@@ -1679,7 +1700,7 @@ var BlobSet = class _BlobSet {
1679
1700
  }
1680
1701
  if (!loaded || loaded.atTier !== toTier || loaded.blob._cek === void 0) continue;
1681
1702
  const plaintext = await this.fetchAllChunks(loaded.blob, toBlobDEK);
1682
- const oldETag = await hmacSha256Hex(fromBlobDEK, plaintext);
1703
+ const oldETag = await hmacSha256Hex(await this.addressKey(fromTier), plaintext);
1683
1704
  if (oldETag !== eTag) rehomedETags.set(oldETag, eTag);
1684
1705
  }
1685
1706
  } else {
@@ -1695,7 +1716,7 @@ var BlobSet = class _BlobSet {
1695
1716
  if (blob._cek === void 0) continue;
1696
1717
  if (policy === "dedup" && blob.refCount > 1) continue;
1697
1718
  const plaintext = await this.fetchAllChunks(blob, fromBlobDEK);
1698
- rehomedETags.set(eTag, await hmacSha256Hex(toBlobDEK, plaintext));
1719
+ rehomedETags.set(eTag, await hmacSha256Hex(await this.addressKey(toTier), plaintext));
1699
1720
  for (const [slotName, slot] of Object.entries(slots)) {
1700
1721
  if (slot.eTag !== eTag) continue;
1701
1722
  await this.putUnderDEK(slotName, plaintext, toBlobDEK, {
@@ -2067,7 +2088,7 @@ var BlobSet = class _BlobSet {
2067
2088
  * attacker-controlled content pulled from the same forged row and would
2068
2089
  * make the check tautological). After assembling the plaintext, we
2069
2090
  * recompute the SAME content address every write path mints
2070
- * (`hmacSha256Hex(flatBlobDEK, plaintext)` — `writeBlobContent`'s Step 1,
2091
+ * (`hmacSha256Hex(addressKey(tier), plaintext)` — `writeBlobContent`'s Step 1,
2071
2092
  * unconditional on `_cek`) and compare it to that requested eTag. A
2072
2093
  * forged row can produce valid ciphertext under the flat DEK, but can't
2073
2094
  * produce plaintext that re-hashes to an address it doesn't control.
@@ -2095,7 +2116,7 @@ var BlobSet = class _BlobSet {
2095
2116
  const assembled = concatChunks(chunks);
2096
2117
  const plaintext = blob.compression === "gzip" ? await decompressBytes(assembled) : assembled;
2097
2118
  if (verifyFlatETag !== void 0 && blobDEK) {
2098
- const recomputed = await hmacSha256Hex(blobDEK, plaintext);
2119
+ const recomputed = await hmacSha256Hex(await this.addressKey(0), plaintext);
2099
2120
  if (recomputed !== verifyFlatETag) {
2100
2121
  throw new TamperedError(
2101
2122
  `Blob content for eTag "${verifyFlatETag}" failed content-address verification after a flat-tier fallback open \u2014 the _blob_index/_blob_chunks rows do not match the requested content address (#747/#749 review I1)`
@@ -2179,8 +2200,9 @@ var BlobSet = class _BlobSet {
2179
2200
  return;
2180
2201
  }
2181
2202
  this.assertBlobWritable();
2182
- const blobDEK = this.encrypted ? await this.getDEK(dekKey(BLOB_COLLECTION, await this.ownerTier())) : null;
2183
- return this.putUnderDEK(slotName, data, blobDEK, opts);
2203
+ const ownerTier = await this.ownerTier();
2204
+ const blobDEK = this.encrypted ? await this.getDEK(dekKey(BLOB_COLLECTION, ownerTier)) : null;
2205
+ return this.putUnderDEK(slotName, data, blobDEK, opts, void 0, ownerTier);
2184
2206
  }
2185
2207
  /**
2186
2208
  * The slot-attachment core of `put()` (Step 7 — CAS the slot metadata),
@@ -2345,7 +2367,7 @@ var BlobSet = class _BlobSet {
2345
2367
  * dedup-hit branch's behavior exactly.
2346
2368
  */
2347
2369
  async writeBlobContent(data, blobDEK, opts, tier, incrementStamp, knownApplied) {
2348
- const eTag = blobDEK ? await hmacSha256Hex(blobDEK, data) : await plainSha256Hex(data);
2370
+ const eTag = blobDEK ? await hmacSha256Hex(await this.addressKey(tier ?? 0), data) : await plainSha256Hex(data);
2349
2371
  let mimeType = opts?.mimeType;
2350
2372
  if (!mimeType) {
2351
2373
  const detected = detectMagic(data.subarray(0, 16));
@@ -3041,7 +3063,7 @@ var BlobSet = class _BlobSet {
3041
3063
  const aad = chunkAAD(slot.eTag, 0, result.blob.chunkCount);
3042
3064
  const decrypted = await decryptBytesWithAAD(envelope._iv, envelope._data, chunkKey, aad);
3043
3065
  const plaintext = result.blob.compression === "gzip" ? await decompressBytes(decrypted) : decrypted;
3044
- const recomputed = await hmacSha256Hex(blobDEK, plaintext);
3066
+ const recomputed = await hmacSha256Hex(await this.addressKey(await this.ownerTier()), plaintext);
3045
3067
  if (recomputed !== slot.eTag) {
3046
3068
  throw new TamperedError(
3047
3069
  `Blob content for eTag "${slot.eTag}" failed content-address verification in decryptResponse() \u2014 the caller-provided ciphertext does not match the requested content address (#757)`
@@ -3115,4 +3137,4 @@ export {
3115
3137
  DEFAULT_CHUNK_SIZE,
3116
3138
  BlobSet
3117
3139
  };
3118
- //# sourceMappingURL=chunk-BYX3AUXH.js.map
3140
+ //# sourceMappingURL=chunk-24ZDSTEQ.js.map