@noy-db/hub 0.4.0-pre.0 → 0.4.0-pre.2

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 (367) hide show
  1. package/dist/aggregate/index.js +4 -4
  2. package/dist/api-UPAT2O3M.js +20 -0
  3. package/dist/as/index.js +12 -12
  4. package/dist/attestation/index.js +18 -18
  5. package/dist/{backup-YPUEKIJC.js → backup-JL2GOTYQ.js} +11 -11
  6. package/dist/blobs/index.js +27 -15
  7. package/dist/blobs/index.js.map +1 -1
  8. package/dist/broker/index.js +12 -12
  9. package/dist/by/index.js +2 -2
  10. package/dist/cargo/index.js +51 -22
  11. package/dist/{chunk-QDPZWTN2.js → chunk-25G7U6RD.js} +2 -2
  12. package/dist/{chunk-WKGF2TJR.js → chunk-25ZDB25Z.js} +2 -2
  13. package/dist/{chunk-5WZXVULX.js → chunk-2ITLQZV5.js} +2 -2
  14. package/dist/{chunk-WNGGJWF7.js → chunk-2JZ763FV.js} +2 -2
  15. package/dist/{chunk-U6JMEH2P.js → chunk-2KL6NDD4.js} +90 -3
  16. package/dist/chunk-2KL6NDD4.js.map +1 -0
  17. package/dist/{chunk-RJ6K6K5M.js → chunk-2RMDVWGB.js} +2 -2
  18. package/dist/{chunk-VAIS3SOM.js → chunk-2U7Y7BNJ.js} +2 -2
  19. package/dist/{chunk-WZSHL6DQ.js → chunk-2VUISNGP.js} +5 -5
  20. package/dist/chunk-2YELV6TV.js +1 -0
  21. package/dist/{chunk-ANATMTOA.js → chunk-3O62PVDW.js} +3 -3
  22. package/dist/{chunk-VKCADNMR.js → chunk-4JYYIFHW.js} +12 -12
  23. package/dist/{chunk-6HY2X62D.js → chunk-5BB3N4KU.js} +2 -2
  24. package/dist/{chunk-VCTXU4AT.js → chunk-5BHNQNBI.js} +1 -1
  25. package/dist/chunk-5BHNQNBI.js.map +1 -0
  26. package/dist/{chunk-6NQMXTYC.js → chunk-5OZCCLNC.js} +2 -2
  27. package/dist/{chunk-HOONYZY2.js → chunk-5P5AAXYA.js} +2 -2
  28. package/dist/{chunk-KS6SAVCZ.js → chunk-5SZ24DL5.js} +6 -6
  29. package/dist/{chunk-NCCBLYEB.js → chunk-7B4GPCX7.js} +5 -5
  30. package/dist/{chunk-SV6EAJEP.js → chunk-A64XXIIB.js} +4 -4
  31. package/dist/{chunk-WOM2HTML.js → chunk-AFBJHD55.js} +5 -5
  32. package/dist/{chunk-RFI7GGFO.js → chunk-BCOKZC4B.js} +2 -2
  33. package/dist/{chunk-XUW3PXHU.js → chunk-BVZGNMVM.js} +4 -16
  34. package/dist/{chunk-XUW3PXHU.js.map → chunk-BVZGNMVM.js.map} +1 -1
  35. package/dist/{chunk-MT62YSPZ.js → chunk-BZEPJJOK.js} +4 -4
  36. package/dist/{chunk-OCVM6KDH.js → chunk-BZK6JEX4.js} +5 -5
  37. package/dist/{chunk-H2KSZMIX.js → chunk-CCT4WZI6.js} +5 -5
  38. package/dist/{chunk-VEALDPHW.js → chunk-CGPO3ZYB.js} +2 -2
  39. package/dist/{chunk-S3BFKGET.js → chunk-DEQ2JTBR.js} +3 -3
  40. package/dist/{chunk-3ELCWU56.js → chunk-E2R5NRZD.js} +2 -2
  41. package/dist/{chunk-BOKIKJJB.js → chunk-EDC6MLXV.js} +2 -2
  42. package/dist/chunk-F4COUZLL.js +24 -0
  43. package/dist/chunk-F4COUZLL.js.map +1 -0
  44. package/dist/{chunk-JRBNCUNT.js → chunk-FLHOTGOO.js} +3 -3
  45. package/dist/{chunk-6XE5TMPR.js → chunk-GBEXTC6Z.js} +3 -3
  46. package/dist/{chunk-YZQOGE2L.js → chunk-GS3Q2KOZ.js} +2 -2
  47. package/dist/{chunk-M75ZZHSR.js → chunk-GYB2QK5H.js} +2 -2
  48. package/dist/{chunk-EO43ANYJ.js → chunk-GZ2GKOF6.js} +3 -3
  49. package/dist/{chunk-VCBHAE4R.js → chunk-H4SMS4O2.js} +2 -2
  50. package/dist/{chunk-LVGTA624.js → chunk-HGVFJL63.js} +4 -4
  51. package/dist/{chunk-554KLAAN.js → chunk-HVZT5T22.js} +5 -5
  52. package/dist/{chunk-CJ5KKU6X.js → chunk-IGAIOGCN.js} +4 -4
  53. package/dist/{chunk-W2OG6JOL.js → chunk-IGM563N5.js} +18 -1
  54. package/dist/chunk-IGM563N5.js.map +1 -0
  55. package/dist/{chunk-GWKAVKHI.js → chunk-ITI3SJRB.js} +2 -2
  56. package/dist/{chunk-CZTLE22N.js → chunk-IU22SQGU.js} +7 -7
  57. package/dist/{chunk-RTEK4C4I.js → chunk-IUIVDVXM.js} +2 -2
  58. package/dist/{chunk-Z4PD65VQ.js → chunk-IZX3WZBF.js} +4 -4
  59. package/dist/{chunk-RDXW3OBQ.js → chunk-J3VW4J4E.js} +2 -2
  60. package/dist/{chunk-IK43HLDQ.js → chunk-J6U4BOKP.js} +11 -11
  61. package/dist/{chunk-XJMBYYQK.js → chunk-JA5B3SLH.js} +2 -2
  62. package/dist/{chunk-IAO54J4R.js → chunk-JA5O7UEZ.js} +6 -6
  63. package/dist/{chunk-6HPG2YNX.js → chunk-JKWNG3TM.js} +2 -2
  64. package/dist/{chunk-WQIYTNJV.js → chunk-JLHKBAFY.js} +3 -3
  65. package/dist/{chunk-ISMV2QVG.js → chunk-KMONEHDJ.js} +2 -2
  66. package/dist/{chunk-XTHCN77N.js → chunk-KR5EGWI4.js} +7 -19
  67. package/dist/chunk-KR5EGWI4.js.map +1 -0
  68. package/dist/{chunk-JBBSYJHP.js → chunk-KVHWEPT2.js} +2 -2
  69. package/dist/{chunk-2PCAVW2I.js → chunk-L4OA7G5T.js} +2 -2
  70. package/dist/{chunk-IY23KFNZ.js → chunk-LLVW4V7R.js} +3 -3
  71. package/dist/{chunk-N6WF5PKC.js → chunk-M25ZIEB2.js} +2 -2
  72. package/dist/{chunk-FXZDAV62.js → chunk-MEKAMERX.js} +5 -7
  73. package/dist/{chunk-FXZDAV62.js.map → chunk-MEKAMERX.js.map} +1 -1
  74. package/dist/{chunk-UC2ETWF3.js → chunk-MSO2C3KG.js} +2 -2
  75. package/dist/{chunk-ONTBCHCP.js → chunk-N4FZ6ITM.js} +2 -2
  76. package/dist/{chunk-DRWBEDYO.js → chunk-NM4LVUXH.js} +2 -2
  77. package/dist/{chunk-DSBQODMZ.js → chunk-NOT7XA7Q.js} +5 -5
  78. package/dist/{chunk-RA5VTXXG.js → chunk-OGFPMCSP.js} +2 -2
  79. package/dist/{chunk-WHXXI3W5.js → chunk-OGY4ELVE.js} +3 -3
  80. package/dist/{chunk-T36RFODW.js → chunk-OOTTXUNV.js} +2 -2
  81. package/dist/{chunk-A5BDDEXK.js → chunk-OTU5ZI3U.js} +4 -4
  82. package/dist/{chunk-THVIPWRF.js → chunk-OVFCAS7U.js} +9 -9
  83. package/dist/{chunk-IFJTPAQQ.js → chunk-OWE4BNTM.js} +4 -4
  84. package/dist/{chunk-W4TCUGQR.js → chunk-PEY6ZTCF.js} +12 -8
  85. package/dist/{chunk-W4TCUGQR.js.map → chunk-PEY6ZTCF.js.map} +1 -1
  86. package/dist/{chunk-UDSR4X4L.js → chunk-PWZKD4HW.js} +74 -10
  87. package/dist/chunk-PWZKD4HW.js.map +1 -0
  88. package/dist/{chunk-HQBM64EE.js → chunk-QAFWRGVD.js} +127 -8
  89. package/dist/chunk-QAFWRGVD.js.map +1 -0
  90. package/dist/{chunk-ZXEZCY6F.js → chunk-QCUH2G77.js} +6 -6
  91. package/dist/{chunk-XDIAFPUM.js → chunk-QDNVHA2F.js} +2 -2
  92. package/dist/{chunk-FH52K7EG.js → chunk-QRHEAZ2Q.js} +2 -6
  93. package/dist/{chunk-FH52K7EG.js.map → chunk-QRHEAZ2Q.js.map} +1 -1
  94. package/dist/{chunk-A4FXFAKF.js → chunk-QXPOEAKR.js} +2 -2
  95. package/dist/{chunk-EWPOHMN2.js → chunk-RGL53NXZ.js} +3 -3
  96. package/dist/{chunk-TAGR72IR.js → chunk-RI3OKC3Y.js} +4 -4
  97. package/dist/{chunk-5PFOMHTB.js → chunk-S3OYXPSE.js} +9 -9
  98. package/dist/{chunk-JVBO4SZL.js → chunk-STR7WBOB.js} +2 -2
  99. package/dist/{chunk-DDHM2TLX.js → chunk-T7S4V52L.js} +4 -4
  100. package/dist/{chunk-WG4QBZDN.js → chunk-TYBXP6WE.js} +7 -7
  101. package/dist/{chunk-T3GY65MA.js → chunk-UEO5CHOP.js} +3 -3
  102. package/dist/{chunk-RNG4VRP4.js → chunk-V3YB7RGR.js} +3 -3
  103. package/dist/{chunk-R3BLCFD2.js → chunk-V7RGFJ3Z.js} +6 -6
  104. package/dist/{chunk-SMIRGMS7.js → chunk-VEX6G3YL.js} +2 -2
  105. package/dist/{chunk-PK6JIDQ4.js → chunk-VZELV7ZJ.js} +116 -119
  106. package/dist/chunk-VZELV7ZJ.js.map +1 -0
  107. package/dist/{chunk-GULTLPFB.js → chunk-XGVDLQJE.js} +3 -3
  108. package/dist/{chunk-JFCV5QIK.js → chunk-XULHFSHO.js} +5 -5
  109. package/dist/{chunk-S6Q37VGE.js → chunk-XW7NWO4A.js} +2 -2
  110. package/dist/{chunk-YCH5GBN6.js → chunk-Y5E6CH6S.js} +6 -6
  111. package/dist/{chunk-GDG5VVYG.js → chunk-YG2EG6CB.js} +4 -4
  112. package/dist/{chunk-UHNGNKLV.js → chunk-YGBIBOCR.js} +307 -17
  113. package/dist/chunk-YGBIBOCR.js.map +1 -0
  114. package/dist/{chunk-YTGDPCPW.js → chunk-YHPUDB7Q.js} +2 -2
  115. package/dist/{chunk-VRBTNCM4.js → chunk-ZJGZDOQO.js} +6 -6
  116. package/dist/classified/index.js +5 -5
  117. package/dist/{classified-marker-QWMASIT7.js → classified-marker-7S5IEP6Q.js} +3 -3
  118. package/dist/collection-facade-ENLTJZBT.js +44 -0
  119. package/dist/{computed-DSMPXG2Y.js → computed-WZNKRLCY.js} +3 -3
  120. package/dist/consent/index.js +9 -9
  121. package/dist/cover-B5MY43CK.js +36 -0
  122. package/dist/{dead-filter-66VGI6JV.js → dead-filter-KRRD57MR.js} +2 -2
  123. package/dist/delegation-UT76AQIG.js +25 -0
  124. package/dist/derivations/index.js +12 -12
  125. package/dist/derive-SGRCCKVP.js +21 -0
  126. package/dist/{enclave-TKPN2G2U.js → enclave-YFKA3GJT.js} +11 -9
  127. package/dist/executor-TEZYRDN3.js +9 -0
  128. package/dist/executor-UF7LTX6O.js +26 -0
  129. package/dist/executor-WQQRU6DO.js +9 -0
  130. package/dist/export-accessible-HXMKW5LJ.js +23 -0
  131. package/dist/extract-partition-QGQ2R42J.js +38 -0
  132. package/dist/{fanout-sidecar-B5LVUMQX.js → fanout-sidecar-HJV3A7PM.js} +9 -9
  133. package/dist/find-VV6PBIHK.js +11 -0
  134. package/dist/forget/index.js +9 -9
  135. package/dist/guards/index.js +3 -3
  136. package/dist/history/index.js +12 -12
  137. package/dist/i18n/index.js +14 -14
  138. package/dist/index.d.ts +1 -4
  139. package/dist/index.js +151 -168
  140. package/dist/index.js.map +1 -1
  141. package/dist/indexing/index.js +2 -2
  142. package/dist/issue-7JJ4Z7E2.js +19 -0
  143. package/dist/kernel/enclave/index.d.ts +1 -1
  144. package/dist/kernel/enclave/record-keys/envelope-body.d.ts +8 -0
  145. package/dist/kernel/errors.d.ts +19 -0
  146. package/dist/kernel/noydb.d.ts +0 -6
  147. package/dist/kernel/types.d.ts +61 -17
  148. package/dist/kernel/vault.d.ts +0 -4
  149. package/dist/{ledger-PTK7XZYT.js → ledger-SW6QQOAV.js} +11 -11
  150. package/dist/liberate-W5MDWYOV.js +24 -0
  151. package/dist/{link-set-SLJHDNRB.js → link-set-GNGGCFI4.js} +11 -11
  152. package/dist/materialized-views/index.js +19 -19
  153. package/dist/noydb-U63S3Z7F.js +70 -0
  154. package/dist/on/index.js +9 -9
  155. package/dist/overlay-views/index.js +4 -4
  156. package/dist/periods/index.js +19 -17
  157. package/dist/pod/index.js +27 -12
  158. package/dist/{policy-YDLCOX4P.js → policy-EAXSJNOT.js} +5 -5
  159. package/dist/portability/index.js +8 -8
  160. package/dist/{post-register-2YHSADFI.js → post-register-A7HCFBP5.js} +6 -6
  161. package/dist/query/index.js +6 -6
  162. package/dist/register-YBMRLZLO.js +23 -0
  163. package/dist/registry-3LXKNXWI.js +9 -0
  164. package/dist/registry-4V4YQCXJ.js +19 -0
  165. package/dist/registry-ZULMLCJK.js +18 -0
  166. package/dist/request-withdrawal-SEVUEUDG.js +31 -0
  167. package/dist/{reveal-HWO4YMTJ.js → reveal-PB3YG544.js} +6 -6
  168. package/dist/revoke-5QULL5GT.js +24 -0
  169. package/dist/satellites/index.js +1 -1
  170. package/dist/sealed-record/index.js +12 -12
  171. package/dist/{seed-3ZMF5EQA.js → seed-6GTDHL4E.js} +11 -11
  172. package/dist/session/index.js +9 -9
  173. package/dist/shadow/index.js +2 -2
  174. package/dist/share-link/index.d.ts +19 -0
  175. package/dist/share-link/index.js +201 -0
  176. package/dist/share-link/index.js.map +1 -0
  177. package/dist/share-link/share-link.d.ts +123 -0
  178. package/dist/signer-ZMH35FT4.js +25 -0
  179. package/dist/snapshots/index.js +10 -10
  180. package/dist/{stale-VZL4OGUB.js → stale-NB5BGRVU.js} +10 -10
  181. package/dist/storage-QOZKQMID.js +23 -0
  182. package/dist/{store-coordination-provider-FKX3F6TQ.js → store-coordination-provider-3AELCZ4Y.js} +3 -3
  183. package/dist/sync/index.js +10 -9
  184. package/dist/sync/index.js.map +1 -1
  185. package/dist/team/index.js +29 -28
  186. package/dist/tiers/index.js +10 -10
  187. package/dist/to/index.js +1 -1
  188. package/dist/tx/index.js +3 -3
  189. package/dist/util/index.js +1 -1
  190. package/dist/{verify-26Y5GNMK.js → verify-MXN66IIH.js} +5 -5
  191. package/dist/via/blob/active.d.ts +27 -1
  192. package/dist/via/blob/index.d.ts +4 -0
  193. package/dist/{walk-IPLXE36W.js → walk-H4YE52S2.js} +11 -11
  194. package/dist/with/index.js +11 -11
  195. package/dist/with-audit/periods/periods.d.ts +1 -16
  196. package/dist/with-audit/periods/vault-facade.d.ts +6 -0
  197. package/dist/with-audit/periods/window.d.ts +16 -0
  198. package/dist/{legacy/kernel.d.ts → with-cargo/floor.d.ts} +1 -1
  199. package/dist/with-cargo/index.d.ts +12 -1
  200. package/dist/with-party/directory/cover/index.d.ts +0 -5
  201. package/dist/with-party/directory/cover/schema.d.ts +0 -6
  202. package/dist/with-party/directory/cover/storage.d.ts +0 -8
  203. package/dist/with-party/directory/cover/types.d.ts +0 -21
  204. package/dist/with-party/team/sync-period-scope.d.ts +78 -0
  205. package/dist/with-party/team/sync.d.ts +13 -0
  206. package/dist/with-pod/bundle.d.ts +0 -2
  207. package/dist/with-pod/index.d.ts +2 -1
  208. package/dist/with-shape/blobs/blob-compaction.d.ts +43 -3
  209. package/dist/with-shape/blobs/blob-pinning.d.ts +112 -0
  210. package/dist/with-shape/blobs/blob-set.d.ts +85 -1
  211. package/dist/withdraw-accessible-HPOVNG2G.js +28 -0
  212. package/package.json +7 -7
  213. package/dist/api-3A3S4SHH.js +0 -20
  214. package/dist/bundle/index.js +0 -153
  215. package/dist/bundle/index.js.map +0 -1
  216. package/dist/chunk-CHFZDSE4.js +0 -1
  217. package/dist/chunk-HQBM64EE.js.map +0 -1
  218. package/dist/chunk-PK6JIDQ4.js.map +0 -1
  219. package/dist/chunk-TIGPQDYP.js +0 -14
  220. package/dist/chunk-TIGPQDYP.js.map +0 -1
  221. package/dist/chunk-U6JMEH2P.js.map +0 -1
  222. package/dist/chunk-UDSR4X4L.js.map +0 -1
  223. package/dist/chunk-UHNGNKLV.js.map +0 -1
  224. package/dist/chunk-VCTXU4AT.js.map +0 -1
  225. package/dist/chunk-W2OG6JOL.js.map +0 -1
  226. package/dist/chunk-XTHCN77N.js.map +0 -1
  227. package/dist/collection-facade-KMBWNCYP.js +0 -44
  228. package/dist/cover-QJRXINN5.js +0 -52
  229. package/dist/delegation-SU6CV3W7.js +0 -25
  230. package/dist/derive-6RWU4EOA.js +0 -21
  231. package/dist/executor-KGNLJD6M.js +0 -9
  232. package/dist/executor-UX4FASYZ.js +0 -26
  233. package/dist/executor-XGIS6CR7.js +0 -9
  234. package/dist/export-accessible-LKW3QV22.js +0 -23
  235. package/dist/extract-partition-UP2ARO75.js +0 -38
  236. package/dist/find-YS6XWB46.js +0 -11
  237. package/dist/issue-3ACYX7LO.js +0 -19
  238. package/dist/legacy/bundle.d.ts +0 -30
  239. package/dist/liberate-MQQXBUCY.js +0 -24
  240. package/dist/noydb-ANIW5FLE.js +0 -69
  241. package/dist/register-PAM3ASRZ.js +0 -23
  242. package/dist/registry-4S2U2TR4.js +0 -19
  243. package/dist/registry-NPOWJHC4.js +0 -9
  244. package/dist/registry-VZ3CCI2R.js +0 -18
  245. package/dist/request-withdrawal-DI3H5WUI.js +0 -31
  246. package/dist/revoke-R5CZSVUT.js +0 -24
  247. package/dist/signer-MBVHW4WE.js +0 -25
  248. package/dist/storage-3MEJUENZ.js +0 -23
  249. package/dist/withdraw-accessible-TZDATQVR.js +0 -28
  250. /package/dist/{api-3A3S4SHH.js.map → api-UPAT2O3M.js.map} +0 -0
  251. /package/dist/{backup-YPUEKIJC.js.map → backup-JL2GOTYQ.js.map} +0 -0
  252. /package/dist/{chunk-QDPZWTN2.js.map → chunk-25G7U6RD.js.map} +0 -0
  253. /package/dist/{chunk-WKGF2TJR.js.map → chunk-25ZDB25Z.js.map} +0 -0
  254. /package/dist/{chunk-5WZXVULX.js.map → chunk-2ITLQZV5.js.map} +0 -0
  255. /package/dist/{chunk-WNGGJWF7.js.map → chunk-2JZ763FV.js.map} +0 -0
  256. /package/dist/{chunk-RJ6K6K5M.js.map → chunk-2RMDVWGB.js.map} +0 -0
  257. /package/dist/{chunk-VAIS3SOM.js.map → chunk-2U7Y7BNJ.js.map} +0 -0
  258. /package/dist/{chunk-WZSHL6DQ.js.map → chunk-2VUISNGP.js.map} +0 -0
  259. /package/dist/{chunk-CHFZDSE4.js.map → chunk-2YELV6TV.js.map} +0 -0
  260. /package/dist/{chunk-ANATMTOA.js.map → chunk-3O62PVDW.js.map} +0 -0
  261. /package/dist/{chunk-VKCADNMR.js.map → chunk-4JYYIFHW.js.map} +0 -0
  262. /package/dist/{chunk-6HY2X62D.js.map → chunk-5BB3N4KU.js.map} +0 -0
  263. /package/dist/{chunk-6NQMXTYC.js.map → chunk-5OZCCLNC.js.map} +0 -0
  264. /package/dist/{chunk-HOONYZY2.js.map → chunk-5P5AAXYA.js.map} +0 -0
  265. /package/dist/{chunk-KS6SAVCZ.js.map → chunk-5SZ24DL5.js.map} +0 -0
  266. /package/dist/{chunk-NCCBLYEB.js.map → chunk-7B4GPCX7.js.map} +0 -0
  267. /package/dist/{chunk-SV6EAJEP.js.map → chunk-A64XXIIB.js.map} +0 -0
  268. /package/dist/{chunk-WOM2HTML.js.map → chunk-AFBJHD55.js.map} +0 -0
  269. /package/dist/{chunk-RFI7GGFO.js.map → chunk-BCOKZC4B.js.map} +0 -0
  270. /package/dist/{chunk-MT62YSPZ.js.map → chunk-BZEPJJOK.js.map} +0 -0
  271. /package/dist/{chunk-OCVM6KDH.js.map → chunk-BZK6JEX4.js.map} +0 -0
  272. /package/dist/{chunk-H2KSZMIX.js.map → chunk-CCT4WZI6.js.map} +0 -0
  273. /package/dist/{chunk-VEALDPHW.js.map → chunk-CGPO3ZYB.js.map} +0 -0
  274. /package/dist/{chunk-S3BFKGET.js.map → chunk-DEQ2JTBR.js.map} +0 -0
  275. /package/dist/{chunk-3ELCWU56.js.map → chunk-E2R5NRZD.js.map} +0 -0
  276. /package/dist/{chunk-BOKIKJJB.js.map → chunk-EDC6MLXV.js.map} +0 -0
  277. /package/dist/{chunk-JRBNCUNT.js.map → chunk-FLHOTGOO.js.map} +0 -0
  278. /package/dist/{chunk-6XE5TMPR.js.map → chunk-GBEXTC6Z.js.map} +0 -0
  279. /package/dist/{chunk-YZQOGE2L.js.map → chunk-GS3Q2KOZ.js.map} +0 -0
  280. /package/dist/{chunk-M75ZZHSR.js.map → chunk-GYB2QK5H.js.map} +0 -0
  281. /package/dist/{chunk-EO43ANYJ.js.map → chunk-GZ2GKOF6.js.map} +0 -0
  282. /package/dist/{chunk-VCBHAE4R.js.map → chunk-H4SMS4O2.js.map} +0 -0
  283. /package/dist/{chunk-LVGTA624.js.map → chunk-HGVFJL63.js.map} +0 -0
  284. /package/dist/{chunk-554KLAAN.js.map → chunk-HVZT5T22.js.map} +0 -0
  285. /package/dist/{chunk-CJ5KKU6X.js.map → chunk-IGAIOGCN.js.map} +0 -0
  286. /package/dist/{chunk-GWKAVKHI.js.map → chunk-ITI3SJRB.js.map} +0 -0
  287. /package/dist/{chunk-CZTLE22N.js.map → chunk-IU22SQGU.js.map} +0 -0
  288. /package/dist/{chunk-RTEK4C4I.js.map → chunk-IUIVDVXM.js.map} +0 -0
  289. /package/dist/{chunk-Z4PD65VQ.js.map → chunk-IZX3WZBF.js.map} +0 -0
  290. /package/dist/{chunk-RDXW3OBQ.js.map → chunk-J3VW4J4E.js.map} +0 -0
  291. /package/dist/{chunk-IK43HLDQ.js.map → chunk-J6U4BOKP.js.map} +0 -0
  292. /package/dist/{chunk-XJMBYYQK.js.map → chunk-JA5B3SLH.js.map} +0 -0
  293. /package/dist/{chunk-IAO54J4R.js.map → chunk-JA5O7UEZ.js.map} +0 -0
  294. /package/dist/{chunk-6HPG2YNX.js.map → chunk-JKWNG3TM.js.map} +0 -0
  295. /package/dist/{chunk-WQIYTNJV.js.map → chunk-JLHKBAFY.js.map} +0 -0
  296. /package/dist/{chunk-ISMV2QVG.js.map → chunk-KMONEHDJ.js.map} +0 -0
  297. /package/dist/{chunk-JBBSYJHP.js.map → chunk-KVHWEPT2.js.map} +0 -0
  298. /package/dist/{chunk-2PCAVW2I.js.map → chunk-L4OA7G5T.js.map} +0 -0
  299. /package/dist/{chunk-IY23KFNZ.js.map → chunk-LLVW4V7R.js.map} +0 -0
  300. /package/dist/{chunk-N6WF5PKC.js.map → chunk-M25ZIEB2.js.map} +0 -0
  301. /package/dist/{chunk-UC2ETWF3.js.map → chunk-MSO2C3KG.js.map} +0 -0
  302. /package/dist/{chunk-ONTBCHCP.js.map → chunk-N4FZ6ITM.js.map} +0 -0
  303. /package/dist/{chunk-DRWBEDYO.js.map → chunk-NM4LVUXH.js.map} +0 -0
  304. /package/dist/{chunk-DSBQODMZ.js.map → chunk-NOT7XA7Q.js.map} +0 -0
  305. /package/dist/{chunk-RA5VTXXG.js.map → chunk-OGFPMCSP.js.map} +0 -0
  306. /package/dist/{chunk-WHXXI3W5.js.map → chunk-OGY4ELVE.js.map} +0 -0
  307. /package/dist/{chunk-T36RFODW.js.map → chunk-OOTTXUNV.js.map} +0 -0
  308. /package/dist/{chunk-A5BDDEXK.js.map → chunk-OTU5ZI3U.js.map} +0 -0
  309. /package/dist/{chunk-THVIPWRF.js.map → chunk-OVFCAS7U.js.map} +0 -0
  310. /package/dist/{chunk-IFJTPAQQ.js.map → chunk-OWE4BNTM.js.map} +0 -0
  311. /package/dist/{chunk-ZXEZCY6F.js.map → chunk-QCUH2G77.js.map} +0 -0
  312. /package/dist/{chunk-XDIAFPUM.js.map → chunk-QDNVHA2F.js.map} +0 -0
  313. /package/dist/{chunk-A4FXFAKF.js.map → chunk-QXPOEAKR.js.map} +0 -0
  314. /package/dist/{chunk-EWPOHMN2.js.map → chunk-RGL53NXZ.js.map} +0 -0
  315. /package/dist/{chunk-TAGR72IR.js.map → chunk-RI3OKC3Y.js.map} +0 -0
  316. /package/dist/{chunk-5PFOMHTB.js.map → chunk-S3OYXPSE.js.map} +0 -0
  317. /package/dist/{chunk-JVBO4SZL.js.map → chunk-STR7WBOB.js.map} +0 -0
  318. /package/dist/{chunk-DDHM2TLX.js.map → chunk-T7S4V52L.js.map} +0 -0
  319. /package/dist/{chunk-WG4QBZDN.js.map → chunk-TYBXP6WE.js.map} +0 -0
  320. /package/dist/{chunk-T3GY65MA.js.map → chunk-UEO5CHOP.js.map} +0 -0
  321. /package/dist/{chunk-RNG4VRP4.js.map → chunk-V3YB7RGR.js.map} +0 -0
  322. /package/dist/{chunk-R3BLCFD2.js.map → chunk-V7RGFJ3Z.js.map} +0 -0
  323. /package/dist/{chunk-SMIRGMS7.js.map → chunk-VEX6G3YL.js.map} +0 -0
  324. /package/dist/{chunk-GULTLPFB.js.map → chunk-XGVDLQJE.js.map} +0 -0
  325. /package/dist/{chunk-JFCV5QIK.js.map → chunk-XULHFSHO.js.map} +0 -0
  326. /package/dist/{chunk-S6Q37VGE.js.map → chunk-XW7NWO4A.js.map} +0 -0
  327. /package/dist/{chunk-YCH5GBN6.js.map → chunk-Y5E6CH6S.js.map} +0 -0
  328. /package/dist/{chunk-GDG5VVYG.js.map → chunk-YG2EG6CB.js.map} +0 -0
  329. /package/dist/{chunk-YTGDPCPW.js.map → chunk-YHPUDB7Q.js.map} +0 -0
  330. /package/dist/{chunk-VRBTNCM4.js.map → chunk-ZJGZDOQO.js.map} +0 -0
  331. /package/dist/{classified-marker-QWMASIT7.js.map → classified-marker-7S5IEP6Q.js.map} +0 -0
  332. /package/dist/{collection-facade-KMBWNCYP.js.map → collection-facade-ENLTJZBT.js.map} +0 -0
  333. /package/dist/{computed-DSMPXG2Y.js.map → computed-WZNKRLCY.js.map} +0 -0
  334. /package/dist/{cover-QJRXINN5.js.map → cover-B5MY43CK.js.map} +0 -0
  335. /package/dist/{dead-filter-66VGI6JV.js.map → dead-filter-KRRD57MR.js.map} +0 -0
  336. /package/dist/{delegation-SU6CV3W7.js.map → delegation-UT76AQIG.js.map} +0 -0
  337. /package/dist/{derive-6RWU4EOA.js.map → derive-SGRCCKVP.js.map} +0 -0
  338. /package/dist/{enclave-TKPN2G2U.js.map → enclave-YFKA3GJT.js.map} +0 -0
  339. /package/dist/{executor-KGNLJD6M.js.map → executor-TEZYRDN3.js.map} +0 -0
  340. /package/dist/{executor-UX4FASYZ.js.map → executor-UF7LTX6O.js.map} +0 -0
  341. /package/dist/{executor-XGIS6CR7.js.map → executor-WQQRU6DO.js.map} +0 -0
  342. /package/dist/{export-accessible-LKW3QV22.js.map → export-accessible-HXMKW5LJ.js.map} +0 -0
  343. /package/dist/{extract-partition-UP2ARO75.js.map → extract-partition-QGQ2R42J.js.map} +0 -0
  344. /package/dist/{fanout-sidecar-B5LVUMQX.js.map → fanout-sidecar-HJV3A7PM.js.map} +0 -0
  345. /package/dist/{find-YS6XWB46.js.map → find-VV6PBIHK.js.map} +0 -0
  346. /package/dist/{issue-3ACYX7LO.js.map → issue-7JJ4Z7E2.js.map} +0 -0
  347. /package/dist/{ledger-PTK7XZYT.js.map → ledger-SW6QQOAV.js.map} +0 -0
  348. /package/dist/{liberate-MQQXBUCY.js.map → liberate-W5MDWYOV.js.map} +0 -0
  349. /package/dist/{link-set-SLJHDNRB.js.map → link-set-GNGGCFI4.js.map} +0 -0
  350. /package/dist/{noydb-ANIW5FLE.js.map → noydb-U63S3Z7F.js.map} +0 -0
  351. /package/dist/{policy-YDLCOX4P.js.map → policy-EAXSJNOT.js.map} +0 -0
  352. /package/dist/{post-register-2YHSADFI.js.map → post-register-A7HCFBP5.js.map} +0 -0
  353. /package/dist/{register-PAM3ASRZ.js.map → register-YBMRLZLO.js.map} +0 -0
  354. /package/dist/{registry-4S2U2TR4.js.map → registry-3LXKNXWI.js.map} +0 -0
  355. /package/dist/{registry-NPOWJHC4.js.map → registry-4V4YQCXJ.js.map} +0 -0
  356. /package/dist/{registry-VZ3CCI2R.js.map → registry-ZULMLCJK.js.map} +0 -0
  357. /package/dist/{request-withdrawal-DI3H5WUI.js.map → request-withdrawal-SEVUEUDG.js.map} +0 -0
  358. /package/dist/{reveal-HWO4YMTJ.js.map → reveal-PB3YG544.js.map} +0 -0
  359. /package/dist/{revoke-R5CZSVUT.js.map → revoke-5QULL5GT.js.map} +0 -0
  360. /package/dist/{seed-3ZMF5EQA.js.map → seed-6GTDHL4E.js.map} +0 -0
  361. /package/dist/{signer-MBVHW4WE.js.map → signer-ZMH35FT4.js.map} +0 -0
  362. /package/dist/{stale-VZL4OGUB.js.map → stale-NB5BGRVU.js.map} +0 -0
  363. /package/dist/{storage-3MEJUENZ.js.map → storage-QOZKQMID.js.map} +0 -0
  364. /package/dist/{store-coordination-provider-FKX3F6TQ.js.map → store-coordination-provider-3AELCZ4Y.js.map} +0 -0
  365. /package/dist/{verify-26Y5GNMK.js.map → verify-MXN66IIH.js.map} +0 -0
  366. /package/dist/{walk-IPLXE36W.js.map → walk-H4YE52S2.js.map} +0 -0
  367. /package/dist/{withdraw-accessible-TZDATQVR.js.map → withdraw-accessible-HPOVNG2G.js.map} +0 -0
package/dist/to/index.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  NetworkError,
5
5
  PodVersionConflictError,
6
6
  StoreCapabilityError
7
- } from "../chunk-W2OG6JOL.js";
7
+ } from "../chunk-IGM563N5.js";
8
8
  import "../chunk-PZ5AY32C.js";
9
9
  export {
10
10
  BundleVersionConflictError,
package/dist/tx/index.js CHANGED
@@ -3,9 +3,9 @@ import {
3
3
  TxContext,
4
4
  TxVault,
5
5
  runTransaction
6
- } from "../chunk-JRBNCUNT.js";
6
+ } from "../chunk-FLHOTGOO.js";
7
7
  import "../chunk-ZJADGNYF.js";
8
- import "../chunk-W2OG6JOL.js";
8
+ import "../chunk-IGM563N5.js";
9
9
  import "../chunk-PZ5AY32C.js";
10
10
 
11
11
  // src/with-commit/tx/dry-run.ts
@@ -44,7 +44,7 @@ async function runDryRun(db, fn) {
44
44
  const gctx = { existing: before, vault: facade, userId: v.userId, role: v.role };
45
45
  try {
46
46
  await registry.runChecks(op.collectionName, after, gctx);
47
- const { GuardExecutor } = await import("../executor-KGNLJD6M.js");
47
+ const { GuardExecutor } = await import("../executor-WQQRU6DO.js");
48
48
  for (const g of guards) {
49
49
  await GuardExecutor.checkFrozenFields(g, op.id, before, after);
50
50
  }
@@ -3,7 +3,7 @@ import {
3
3
  } from "../chunk-PY4KJPYU.js";
4
4
  import {
5
5
  FilenameSanitizationError
6
- } from "../chunk-W2OG6JOL.js";
6
+ } from "../chunk-IGM563N5.js";
7
7
  import "../chunk-PZ5AY32C.js";
8
8
 
9
9
  // src/kernel/util/sanitize-filename.ts
@@ -2,10 +2,10 @@ import {
2
2
  blindedEqual,
3
3
  evaluateKofN,
4
4
  openVdigPayload
5
- } from "./chunk-IY23KFNZ.js";
5
+ } from "./chunk-LLVW4V7R.js";
6
6
  import {
7
7
  dualReadSealedSlot
8
- } from "./chunk-N6WF5PKC.js";
8
+ } from "./chunk-M25ZIEB2.js";
9
9
  import {
10
10
  VDIG_ITERATIONS,
11
11
  normalizeForVerify,
@@ -14,11 +14,11 @@ import {
14
14
  import {
15
15
  base64ToBuffer,
16
16
  generateSalt
17
- } from "./chunk-HOONYZY2.js";
17
+ } from "./chunk-5P5AAXYA.js";
18
18
  import {
19
19
  ClassifiedConfigError,
20
20
  ClassifiedVerifyError
21
- } from "./chunk-W2OG6JOL.js";
21
+ } from "./chunk-IGM563N5.js";
22
22
  import "./chunk-PZ5AY32C.js";
23
23
 
24
24
  // src/kernel/enclave/classify/verify.ts
@@ -137,4 +137,4 @@ export {
137
137
  verifyDigestField,
138
138
  verifyTextField
139
139
  };
140
- //# sourceMappingURL=verify-26Y5GNMK.js.map
140
+ //# sourceMappingURL=verify-MXN66IIH.js.map
@@ -10,6 +10,29 @@
10
10
  * this (ESM tree-shaking + hub's `"sideEffects": false`).
11
11
  */
12
12
  import type { BlobStrategy } from '../../port/with/blob-strategy.js';
13
+ import type { BlobPinStore, BlobCacheStats } from '../../with-shape/blobs/blob-pinning.js';
14
+ /** Options for {@link withBlobs} (#808). */
15
+ export interface WithBlobsOptions {
16
+ /**
17
+ * Device-local backend for the offline-pin registry + external side-cache
18
+ * (`collection.blob(id).pin()`, the `cacheBudget` LRU stamps). Default:
19
+ * in-memory — pins then last one app session. Supply a durable,
20
+ * DEVICE-LOCAL store (IndexedDB-backed on the web; it must never sync) to
21
+ * keep pins across restarts. See `BlobPinStore`'s doc for the posture.
22
+ */
23
+ readonly pinStore?: BlobPinStore;
24
+ }
25
+ /**
26
+ * The strategy `withBlobs()` returns — a `BlobStrategy` plus the device-local
27
+ * blob-cache KPI surface (#808).
28
+ */
29
+ export interface BlobsService extends BlobStrategy {
30
+ /**
31
+ * Snapshot of this device's blob-cache KPI counters: local-read hits,
32
+ * network misses, and total bytes downloaded from the object store.
33
+ */
34
+ cacheStats(): BlobCacheStats;
35
+ }
13
36
  /**
14
37
  * Build a default `BlobStrategy` ready to pass into `createNoydb`.
15
38
  *
@@ -17,6 +40,9 @@ import type { BlobStrategy } from '../../port/with/blob-strategy.js';
17
40
  * avoid shadowing the very common local idiom
18
41
  * `const blobs = invoices.blob(id)` in user code.
19
42
  *
43
+ * One `withBlobs()` instance owns one device-local pin registry + KPI
44
+ * counter set (#808) — treat it as "this device's" blob service.
45
+ *
20
46
  * @example
21
47
  * ```ts
22
48
  * import { createNoydb } from '@noy-db/hub'
@@ -31,4 +57,4 @@ import type { BlobStrategy } from '../../port/with/blob-strategy.js';
31
57
  * await db.vault('acme').collection('invoices').blob('inv-1').put('receipt.pdf', bytes)
32
58
  * ```
33
59
  */
34
- export declare function withBlobs(): BlobStrategy;
60
+ export declare function withBlobs(options?: WithBlobsOptions): BlobsService;
@@ -19,7 +19,11 @@
19
19
  * code should prefer this subpath so the import boundary is explicit.
20
20
  */
21
21
  export { withBlobs } from './active.js';
22
+ export type { WithBlobsOptions, BlobsService } from './active.js';
22
23
  export type { BlobStrategy, BlobStrategyOpenArgs } from '../../port/with/blob-strategy.js';
24
+ export { memoryBlobPinStore, blobPinKey } from '../../with-shape/blobs/blob-pinning.js';
25
+ export type { BlobPinStore, BlobPinEntry, BlobCacheStats } from '../../with-shape/blobs/blob-pinning.js';
26
+ export { BlobOfflineError } from '../../kernel/errors.js';
23
27
  export { memoryObjectProjection } from '../../with-shape/blobs/object-projection.js';
24
28
  export type { ObjectProjection, ObjectMeta, ObjectListEntry, PutObjectOptions, ObjectUrlOptions, PutUrlOptions, } from '../../with-shape/blobs/object-projection.js';
25
29
  export { importExternalObjects } from '../../with-shape/blobs/import-external.js';
@@ -3,19 +3,19 @@ import {
3
3
  } from "./chunk-VYYM3MEN.js";
4
4
  import {
5
5
  derivePersistedSchema
6
- } from "./chunk-BOKIKJJB.js";
6
+ } from "./chunk-EDC6MLXV.js";
7
7
  import {
8
8
  loadPersistedSchema
9
- } from "./chunk-CJ5KKU6X.js";
10
- import "./chunk-W4TCUGQR.js";
11
- import "./chunk-A4FXFAKF.js";
12
- import "./chunk-IY23KFNZ.js";
13
- import "./chunk-N6WF5PKC.js";
14
- import "./chunk-6HY2X62D.js";
9
+ } from "./chunk-IGAIOGCN.js";
10
+ import "./chunk-PEY6ZTCF.js";
11
+ import "./chunk-QXPOEAKR.js";
12
+ import "./chunk-LLVW4V7R.js";
13
+ import "./chunk-M25ZIEB2.js";
14
+ import "./chunk-5BB3N4KU.js";
15
15
  import "./chunk-LP7BEXCT.js";
16
- import "./chunk-HOONYZY2.js";
17
- import "./chunk-VCTXU4AT.js";
18
- import "./chunk-W2OG6JOL.js";
16
+ import "./chunk-5P5AAXYA.js";
17
+ import "./chunk-5BHNQNBI.js";
18
+ import "./chunk-IGM563N5.js";
19
19
  import "./chunk-PZ5AY32C.js";
20
20
 
21
21
  // src/with-shape/introspection/walk.ts
@@ -238,4 +238,4 @@ function summariseAggregateOp(value) {
238
238
  export {
239
239
  dumpVaultSchema
240
240
  };
241
- //# sourceMappingURL=walk-IPLXE36W.js.map
241
+ //# sourceMappingURL=walk-H4YE52S2.js.map
@@ -6,18 +6,18 @@ import {
6
6
  assertCanImport,
7
7
  canExport,
8
8
  canImport
9
- } from "../chunk-EWPOHMN2.js";
10
- import "../chunk-554KLAAN.js";
11
- import "../chunk-NCCBLYEB.js";
12
- import "../chunk-W4TCUGQR.js";
13
- import "../chunk-A4FXFAKF.js";
14
- import "../chunk-IY23KFNZ.js";
15
- import "../chunk-N6WF5PKC.js";
16
- import "../chunk-6HY2X62D.js";
9
+ } from "../chunk-RGL53NXZ.js";
10
+ import "../chunk-HVZT5T22.js";
11
+ import "../chunk-7B4GPCX7.js";
12
+ import "../chunk-PEY6ZTCF.js";
13
+ import "../chunk-QXPOEAKR.js";
14
+ import "../chunk-LLVW4V7R.js";
15
+ import "../chunk-M25ZIEB2.js";
16
+ import "../chunk-5BB3N4KU.js";
17
17
  import "../chunk-LP7BEXCT.js";
18
- import "../chunk-HOONYZY2.js";
19
- import "../chunk-VCTXU4AT.js";
20
- import "../chunk-W2OG6JOL.js";
18
+ import "../chunk-5P5AAXYA.js";
19
+ import "../chunk-5BHNQNBI.js";
20
+ import "../chunk-IGM563N5.js";
21
21
  import "../chunk-PZ5AY32C.js";
22
22
  export {
23
23
  ServiceBus,
@@ -146,14 +146,7 @@
146
146
  */
147
147
  import type { NoydbStore, EncryptedEnvelope } from '../../kernel/types.js';
148
148
  import type { LedgerStore } from '../../with-commit/history/ledger/index.js';
149
- /** The reserved collection name holding closed-period metadata. */
150
- export declare const PERIODS_COLLECTION = "_periods";
151
- /** Sibling of {@link PERIODS_COLLECTION} holding freeze companions (#604). */
152
- export declare const PERIOD_FREEZES_COLLECTION = "_period_freezes";
153
- /** Sibling of {@link PERIODS_COLLECTION} holding archive companions (#613). */
154
- export declare const PERIOD_ARCHIVES_COLLECTION = "_period_archives";
155
- /** Sibling of {@link PERIODS_COLLECTION} holding target-purge companions (#615). */
156
- export declare const PERIOD_TARGET_PURGES_COLLECTION = "_period_target_purges";
149
+ export { PERIODS_COLLECTION, PERIOD_FREEZES_COLLECTION, PERIOD_ARCHIVES_COLLECTION, PERIOD_TARGET_PURGES_COLLECTION, periodExclusiveUpperBound, } from './window.js';
157
150
  /**
158
151
  * Companion record recording that a closed period was frozen (its delete
159
152
  * markers physically purged). Stored in {@link PERIOD_FREEZES_COLLECTION},
@@ -196,14 +189,6 @@ export interface PeriodTargetPurgeRecord {
196
189
  readonly purgedBy: string;
197
190
  readonly targets: readonly TargetPurgeCount[];
198
191
  }
199
- /**
200
- * Exclusive upper bound for a period's delete-marker purge window (#604).
201
- * Markers carry no business date (empty body), only write-time `_ts`, so freeze
202
- * purges markers with `_ts < bound`, `bound` being the instant just after the
203
- * period's inclusive `endDate`: a date-only `endDate` seals through end-of-day
204
- * → next midnight; a full-timestamp `endDate` seals through that instant → +1ms.
205
- */
206
- export declare function periodExclusiveUpperBound(endDate: string): string;
207
192
  /**
208
193
  * Stored record for one closed or opened accounting period. One entry
209
194
  * per period, keyed by `name` in the reserved `_periods` collection.
@@ -28,6 +28,12 @@ export interface VaultPeriodsDeps {
28
28
  archiveRecords(before: string): Promise<number>;
29
29
  /** #615: sweep delete markers off the vault's push-only sync targets. Bound to `vault._purgePeriodTargets`. */
30
30
  purgeTargets(before: string): Promise<readonly TargetPurgeCount[]>;
31
+ /**
32
+ * #822: mark a reserved-collection write dirty so the sync engine pushes
33
+ * it. Bound to the vault's `onDirty` when sync is configured, `undefined`
34
+ * otherwise. Only `_periods` uses it — see `writeReserved`.
35
+ */
36
+ onDirty?: ((collection: string, id: string, action: 'put', version: number) => Promise<void>) | undefined;
31
37
  }
32
38
  export declare class VaultPeriods {
33
39
  private readonly deps;
@@ -0,0 +1,16 @@
1
+ /** The reserved collection name holding closed-period metadata. */
2
+ export declare const PERIODS_COLLECTION = "_periods";
3
+ /** Sibling of {@link PERIODS_COLLECTION} holding freeze companions (#604). */
4
+ export declare const PERIOD_FREEZES_COLLECTION = "_period_freezes";
5
+ /** Sibling of {@link PERIODS_COLLECTION} holding archive companions (#613). */
6
+ export declare const PERIOD_ARCHIVES_COLLECTION = "_period_archives";
7
+ /** Sibling of {@link PERIODS_COLLECTION} holding target-purge companions (#615). */
8
+ export declare const PERIOD_TARGET_PURGES_COLLECTION = "_period_target_purges";
9
+ /**
10
+ * Exclusive upper bound for a period's delete-marker purge window (#604).
11
+ * Markers carry no business date (empty body), only write-time `_ts`, so freeze
12
+ * purges markers with `_ts < bound`, `bound` being the instant just after the
13
+ * period's inclusive `endDate`: a date-only `endDate` seals through end-of-day
14
+ * → next midnight; a full-timestamp `endDate` seals through that instant → +1ms.
15
+ */
16
+ export declare function periodExclusiveUpperBound(endDate: string): string;
@@ -2,7 +2,7 @@
2
2
  * The `@noy-db/hub/kernel` published subpath has been retired (coordinated
3
3
  * removal; consumers migrated to `@noy-db/hub/cargo`). This file survives
4
4
  * unpublished as `/cargo`'s internal re-export floor — `with-cargo/index.ts`
5
- * does `export * from '../legacy/kernel.js'` to consolidate this runtime-helper
5
+ * does `export * from './floor.js'` to consolidate this runtime-helper
6
6
  * / error-class / type surface into the cargo seam, and
7
7
  * `cargo-surface-golden.test.ts` reads this file directly as part of that
8
8
  * union. Do not reintroduce it as a tsup entry or package.json export.
@@ -12,7 +12,7 @@
12
12
  *
13
13
  * @packageDocumentation
14
14
  */
15
- export * from '../legacy/kernel.js';
15
+ export * from './floor.js';
16
16
  export { CustodyApi } from '../with-party/custody/index.js';
17
17
  export type { GrantCustodianOptions } from '../with-party/custody/index.js';
18
18
  export { liberateVault } from '../with-party/custody/liberate.js';
@@ -26,6 +26,17 @@ export { withCargo } from './active.js';
26
26
  export { NO_CARGO } from './strategy.js';
27
27
  export type { CargoStrategy } from './strategy.js';
28
28
  export { CargoNotEnabledError } from '../kernel/errors.js';
29
+ export { extractPartition } from './extract-partition.js';
30
+ export { walkClosure } from './walk-closure.js';
31
+ export { describeExtraction } from './describe-extraction.js';
32
+ export { decryptExtractedPartition } from './decrypt-partition.js';
33
+ export type { ExtractionPreview } from './describe-extraction.js';
34
+ export type { DecryptedRecord } from './decrypt-partition.js';
35
+ export type { WalkClosureOptions, ClosureResult, DanglingRefNotice } from './walk-closure.js';
36
+ export type { ExtractPartitionResult } from './extract-partition.js';
37
+ export { adoptPartition, unsealDeks, createOwnerOnAdoptedPartition } from './adopt-partition.js';
38
+ export type { AdoptPartitionOptions, AdoptPartitionResult, CreateOwnerResult, CreateOwnerOptions, CreateOwnerStandardOptions, CreateOwnerManagedOptions, } from './adopt-partition.js';
39
+ export { TransferSealError, AdoptionStateError, PartitionExtractionError } from '../kernel/errors.js';
29
40
  export type { WriteHook } from '../port/with/write-hooks.js';
30
41
  export type { WriteQueue } from '../kernel/write-queue.js';
31
42
  export type { WriteConflict } from '../kernel/types.js';
@@ -12,8 +12,3 @@ export type { SetCoverInput } from './schema.js';
12
12
  export { validateCoverInput, isCover } from './schema.js';
13
13
  export { mergeCustom, validateCoverSize } from './custom.js';
14
14
  export { loadCover, saveCover, readCover, resolveLocale, pickLocale, COVER_RECORD_ID, } from './storage.js';
15
- export type { PublicEnvelope, PublicEnvelopeText, PublicEnvelopeSchema, PublicEnvelopeField, ResolvedPublicEnvelopeSchema, } from './types.js';
16
- export { PUBLIC_ENVELOPE_FIELDS, DEFAULT_PUBLIC_ENVELOPE_SCHEMA, } from './types.js';
17
- export type { SetPublicEnvelopeInput } from './schema.js';
18
- export { validatePublicEnvelopeInput, isPublicEnvelope } from './schema.js';
19
- export { loadPublicEnvelope, savePublicEnvelope, readPublicEnvelope, PUBLIC_ENVELOPE_RECORD_ID, } from './storage.js';
@@ -31,9 +31,3 @@ export declare function validateCoverInput(input: SetCoverInput, schema: Resolve
31
31
  * discriminator keeps its frozen name: `_noydb_public: 1`.)
32
32
  */
33
33
  export declare function isCover(x: unknown): x is Cover;
34
- /** @deprecated Use {@link SetCoverInput}. */
35
- export type SetPublicEnvelopeInput = SetCoverInput;
36
- /** @deprecated Use {@link validateCoverInput}. */
37
- export declare const validatePublicEnvelopeInput: typeof validateCoverInput;
38
- /** @deprecated Use {@link isCover}. */
39
- export declare const isPublicEnvelope: typeof isCover;
@@ -61,11 +61,3 @@ export declare function resolveLocale(cover: Cover, locale: string): Cover;
61
61
  * This deviation is documented in `https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/public-envelope.md`.
62
62
  */
63
63
  export declare function pickLocale(value: string | Record<string, string>, locale: string, defaultLocale: string | undefined): string;
64
- /** @deprecated Use {@link COVER_RECORD_ID}. */
65
- export declare const PUBLIC_ENVELOPE_RECORD_ID = "public-envelope";
66
- /** @deprecated Use {@link loadCover}. */
67
- export declare const loadPublicEnvelope: typeof loadCover;
68
- /** @deprecated Use {@link saveCover}. */
69
- export declare const savePublicEnvelope: typeof saveCover;
70
- /** @deprecated Use {@link readCover}. */
71
- export declare const readPublicEnvelope: typeof readCover;
@@ -126,24 +126,3 @@ export interface ResolvedCoverSchema {
126
126
  * overrides the keys it provides.
127
127
  */
128
128
  export declare function resolveSchema(schema: true | CoverSchema | undefined): ResolvedCoverSchema | undefined;
129
- /** @deprecated Use {@link Cover}. */
130
- export type PublicEnvelope = Cover;
131
- /** @deprecated Use {@link CoverText}. */
132
- export type PublicEnvelopeText = CoverText;
133
- /** @deprecated Use {@link CoverField}. */
134
- export type PublicEnvelopeField = CoverField;
135
- /** @deprecated Use {@link CoverSchema}. */
136
- export type PublicEnvelopeSchema = CoverSchema;
137
- /** @deprecated Use {@link ResolvedCoverSchema}. */
138
- export type ResolvedPublicEnvelopeSchema = ResolvedCoverSchema;
139
- /** @deprecated Use {@link COVER_FIELDS}. */
140
- export declare const PUBLIC_ENVELOPE_FIELDS: readonly ["name", "description", "icon", "createdAt", "updatedAt", "defaultLocale", "custom"];
141
- /** @deprecated Use {@link DEFAULT_COVER_SCHEMA}. */
142
- export declare const DEFAULT_PUBLIC_ENVELOPE_SCHEMA: {
143
- readonly fields: readonly ["name", "description", "icon", "createdAt", "updatedAt", "defaultLocale"];
144
- readonly maxIconBytes: number;
145
- readonly iconMimeTypes: readonly ["image/png", "image/svg+xml"];
146
- readonly maxStringChars: 200;
147
- readonly maxCustomBytes: number;
148
- readonly maxCoverBytes: number;
149
- };
@@ -0,0 +1,78 @@
1
+ /**
2
+ * #807 — period-scoped pull support for the `SyncEngine` (thin-client
3
+ * bootstrap: first sync pulls the current period + the period summaries;
4
+ * historical periods backfill on demand via `pull({ periods: ['<name>'] })`).
5
+ *
6
+ * ## Membership law
7
+ *
8
+ * The engine only ever sees ciphertext envelopes, so period membership at
9
+ * the sync tier is by write-time `_ts` against the closed periods' windows
10
+ * (`periodExclusiveUpperBound`) — the SAME store-tier law freeze (#604) and
11
+ * archive (#613) use, NOT the business-date (`dateField`) seal the write
12
+ * guard applies inside the trust boundary. A late-booked record (in-period
13
+ * business date, current write-time) therefore syncs with the current
14
+ * period — mirroring how it archives at the NEXT period's archive.
15
+ *
16
+ * Closed periods partition the timeline by their exclusive upper bounds:
17
+ * the earliest closed period's window is unbounded below (a close seals
18
+ * everything at-or-before its `endDate`), each later one starts at its
19
+ * predecessor's bound, and the CURRENT window is everything at-or-after
20
+ * the latest closed bound (everything, when no period was ever closed).
21
+ *
22
+ * ## What a period filter can never drop
23
+ *
24
+ * - **Period summaries** (`_periods` + freeze/archive/target-purge
25
+ * companions) — the navigation index; always pulled in full, exempt from
26
+ * every filter (`collections`, `periods`, `modifiedSince`).
27
+ * - **Delete markers and tombstones** — an erasure or delete must never be
28
+ * skipped by partial sync (the #589/#590 law, mirroring the
29
+ * `modifiedSince` exemption). This is what makes a device that never
30
+ * pulled period P converge instead of resurrecting P's deleted records
31
+ * when it later backfills.
32
+ * - **Reserved lookups** (`_dict_*`/`_lookup_*`) — vocabulary/config rows
33
+ * are not period-partitioned data; their explicit pull loop is exempt.
34
+ *
35
+ * Push is NEVER period-filtered — `PushOptions` has no `periods` member at
36
+ * all; a thin client's writes always flow up in full.
37
+ */
38
+ import type { EncryptedEnvelope } from '../../kernel/types.js';
39
+ import { PERIODS_COLLECTION } from '../../with-audit/periods/window.js';
40
+ export { PERIODS_COLLECTION };
41
+ /**
42
+ * The reserved period-metadata collections a period-scoped pull always
43
+ * fetches first (phase 1, "summaries"): the hash-chained `_periods` index
44
+ * plus its freeze/archive/target-purge companions.
45
+ */
46
+ export declare const PERIOD_SUMMARY_COLLECTIONS: readonly string[];
47
+ /** The subset of a decrypted `PeriodRecord` the window computation needs. */
48
+ export interface PeriodSyncRecord {
49
+ readonly name: string;
50
+ readonly kind: 'closed' | 'opened';
51
+ readonly endDate: string;
52
+ }
53
+ /**
54
+ * Vault-injected source of decrypted period records, wired via
55
+ * `SyncEngine.setPeriodPullSource` (same injection pattern as
56
+ * `setReservedLookupSource`). MUST re-read from the local store on every
57
+ * call — the engine invokes it right after the summaries phase applied
58
+ * freshly pulled `_periods` envelopes.
59
+ */
60
+ export interface PeriodPullSource {
61
+ periods(): Promise<readonly PeriodSyncRecord[]>;
62
+ }
63
+ /** Validate the raw `PullOptions.periods` value (runtime shape only). */
64
+ export declare function validatePeriodsOption(periods: unknown): asserts periods is readonly string[] | {
65
+ readonly current: true;
66
+ };
67
+ /**
68
+ * Resolve the selected `_ts` windows and return the pull-scope predicate:
69
+ * `true` = the envelope is in scope for this pull. Tombstones and delete
70
+ * markers are unconditionally in scope (see module doc).
71
+ *
72
+ * Throws `ValidationError` for a name that is not a closed period in the
73
+ * (freshly synced) `_periods` index — a typo'd backfill must fail loudly,
74
+ * never silently pull nothing.
75
+ */
76
+ export declare function buildPeriodScope(option: readonly string[] | {
77
+ readonly current: true;
78
+ }, records: readonly PeriodSyncRecord[]): (envelope: EncryptedEnvelope) => boolean;
@@ -1,4 +1,5 @@
1
1
  import type { NoydbStore, DirtyEntry, ConflictStrategy, CollectionConflictResolver, PushOptions, PullOptions, PushResult, PullResult, SyncStatus, SyncTargetRole } from '../../kernel/types.js';
2
+ import { type PeriodPullSource } from './sync-period-scope.js';
2
3
  import type { NoydbEventEmitter } from '../../kernel/events.js';
3
4
  import type { SyncPolicy } from '../../kernel/sync-policy.js';
4
5
  import { SyncScheduler } from '../../kernel/sync-policy.js';
@@ -66,6 +67,18 @@ export declare class SyncEngine {
66
67
  private reservedDictExpander?;
67
68
  /** Wire the reserved-dict expansion function (#653). Same injection pattern as `setPairExpander`. */
68
69
  setReservedDictExpander(expander: (names: readonly string[]) => readonly string[]): void;
70
+ /** #807: vault-injected source of decrypted period records — resolves the `_ts` windows a
71
+ * `pull({ periods })` scopes to. Re-read AFTER the summaries phase, so a fresh device's
72
+ * freshly pulled `_periods` index is what the windows are computed from. `undefined` on a
73
+ * standalone engine that was never vault-attached (period-scoped pull then throws). */
74
+ private periodPullSource?;
75
+ /** Wire the period-window source (#807). Same injection pattern as `setReservedLookupSource`. */
76
+ setPeriodPullSource(source: PeriodPullSource): void;
77
+ /** #807: KPI accumulator `applyRemote` feeds during a period-scoped `pull()` — pointed at the
78
+ * active phase's counters (summaries → records) and cleared before pull returns. Approximate
79
+ * by design: a push interleaved mid-pull on the same engine would attribute its converge
80
+ * applies to the open phase; the counters are a download-budget KPI, not an audit source. */
81
+ private pullByteSink;
69
82
  constructor(opts: {
70
83
  local: NoydbStore;
71
84
  remote: NoydbStore;
@@ -391,8 +391,6 @@ export declare const readNoydbBundleHeader: typeof readPodHeader;
391
391
  export declare function readPodCover(bytes: Uint8Array, opts?: {
392
392
  readonly locale?: string;
393
393
  }): Cover | undefined;
394
- /** @deprecated Use `readPodCover` (#799 rename). */
395
- export declare const readNoydbBundlePublicEnvelope: typeof readPodCover;
396
394
  /**
397
395
  * Read a full `.noydb` bundle: validate magic + header, verify
398
396
  * integrity hash over the body bytes, decompress, and return the
@@ -14,8 +14,9 @@
14
14
  export { writePod, readPod, readPodHeader, readPodCover, writeNoydbBundle, readNoydbBundle, readNoydbBundleHeader, resetBrotliSupportCache, } from './bundle.js';
15
15
  export type { Cover } from '../with-party/directory/cover/types.js';
16
16
  export type { WritePodOptions, WriteNoydbBundleOptions, ReadNoydbBundleOptions, NoydbBundleReadResult, } from './bundle.js';
17
- export { NOYDB_BUNDLE_MAGIC, NOYDB_BUNDLE_PREFIX_BYTES, NOYDB_BUNDLE_FORMAT_VERSION, FLAG_COMPRESSED, FLAG_HAS_INTEGRITY_HASH, COMPRESSION_NONE, COMPRESSION_GZIP, COMPRESSION_BROTLI, validateBundleHeader, encodeBundleHeader, } from './format.js';
17
+ export { NOYDB_BUNDLE_MAGIC, NOYDB_BUNDLE_PREFIX_BYTES, NOYDB_BUNDLE_FORMAT_VERSION, FLAG_COMPRESSED, FLAG_HAS_INTEGRITY_HASH, COMPRESSION_NONE, COMPRESSION_GZIP, COMPRESSION_BROTLI, validateBundleHeader, encodeBundleHeader, hasNoydbBundleMagic, } from './format.js';
18
18
  export type { CompressionAlgo, NoydbPodHeader, NoydbBundleHeader, } from './format.js';
19
19
  export { generateULID, isULID } from './ulid.js';
20
20
  export { wrapPodStore, createPodStore, wrapBundleStore, createBundleStore } from './pod-store.js';
21
21
  export type { WrappedPodNoydbStore, WrapPodStoreOptions, WrappedBundleNoydbStore, WrapBundleStoreOptions, } from './pod-store.js';
22
+ export { BundleIntegrityError, BundleSealMismatchError, PodVersionConflictError, BundleVersionConflictError, BackupLedgerError, BackupCorruptedError, } from '../kernel/errors.js';
@@ -105,24 +105,41 @@ export interface BlobEvictionEntry {
105
105
  readonly recordId: string;
106
106
  readonly slotName: string;
107
107
  readonly blobHash: string;
108
- readonly reason: 'ttl' | 'predicate' | 'both';
108
+ /** `'budget'` evicted by the #808 cache-budget LRU pass, not a policy. */
109
+ readonly reason: 'ttl' | 'predicate' | 'both' | 'budget';
109
110
  readonly evictedAt: string;
110
111
  readonly actor: string;
111
112
  }
112
113
  export interface CompactionResult {
113
- /** Number of blob slots evicted across all collections. */
114
+ /** Number of blob slots evicted by the policy pass across all collections. */
114
115
  readonly evicted: number;
115
116
  /** Number of records touched (iterated + policy checked). */
116
117
  readonly records: number;
117
118
  /** Number of collections with `blobFields` configured. */
118
119
  readonly collections: number;
119
- /** Number of audit entries written. Equal to `evicted`. */
120
+ /**
121
+ * Number of audit entries written — one per policy eviction plus one per
122
+ * budget SLOT eviction (dropping a device-local cache copy writes none).
123
+ */
120
124
  readonly auditEntries: number;
121
125
  /**
122
126
  * Number of slots that would have evicted (TTL/predicate triggered)
123
127
  * but were retained by a `legalHold` or `retainUntil` floor.
124
128
  */
125
129
  readonly held: number;
130
+ /**
131
+ * #808: number of slots whose due policy eviction was skipped because they
132
+ * are pinned for offline on THIS device (pin state is device-local).
133
+ */
134
+ readonly pinned: number;
135
+ /**
136
+ * #808: number of evictions performed by the `cacheBudget` LRU pass —
137
+ * internal slots evicted through the standard eviction writer plus
138
+ * device-local external cache copies dropped. 0 when no budget was given.
139
+ */
140
+ readonly budgetEvicted: number;
141
+ /** #808: plaintext bytes freed by the `cacheBudget` LRU pass. */
142
+ readonly budgetBytesFreed: number;
126
143
  /** Per-collection breakdown for diagnostics. */
127
144
  readonly byCollection: Record<string, {
128
145
  records: number;
@@ -143,6 +160,22 @@ export interface CompactRunOptions {
143
160
  * what would happen.
144
161
  */
145
162
  readonly dryRun?: boolean;
163
+ /**
164
+ * #808 mobile cache budget: cap the locally-cached UNPINNED blob bytes.
165
+ * After the policy pass, a dedicated LRU pass walks every collection's
166
+ * slots (pinned slots and `legalHold`/`retainUntil`-held slots are exempt
167
+ * and uncounted) and evicts oldest-access-first — internal slots through
168
+ * the standard eviction writer (`deleteSlot` + a `'budget'` audit entry),
169
+ * external slots by dropping their device-local encrypted cache copy only
170
+ * (the object-store copy is authoritative and untouched) — until the
171
+ * remaining unpinned bytes fit `maxBytes`. Internal slots count their
172
+ * uncompressed `size`; external slots count `cachedBytes` (0 = nothing
173
+ * local, nothing to evict). LRU order comes from the device-local
174
+ * `lastAccessAt` stamp, falling back to `uploadedAt`.
175
+ */
176
+ readonly cacheBudget?: {
177
+ readonly maxBytes: number;
178
+ };
146
179
  }
147
180
  export interface CompactionContext {
148
181
  readonly adapter: NoydbStore;
@@ -166,5 +199,12 @@ export interface CompactionContext {
166
199
  readonly listSlots: (collection: string, id: string) => Promise<SlotInfo[]>;
167
200
  /** Delete a slot and decrement its blob's refCount. */
168
201
  readonly deleteSlot: (collection: string, id: string, slotName: string) => Promise<void>;
202
+ /**
203
+ * #808: drop a slot's DEVICE-LOCAL cached copy (the encrypted external
204
+ * side-cache) without touching the slot or the object store. Returns the
205
+ * plaintext bytes freed. Optional — absent (or a 0 return) means external
206
+ * cache entries simply cannot be budget-evicted through this context.
207
+ */
208
+ readonly dropLocalCache?: (collection: string, id: string, slotName: string) => Promise<number>;
169
209
  }
170
210
  export declare function runCompaction(ctx: CompactionContext, options?: CompactRunOptions): Promise<CompactionResult>;