@noy-db/hub 0.7.0-pre.9 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/CHANGELOG.md +1319 -0
  2. package/README.md +7 -6
  3. package/dist/api-TXFOVOXX.js +19 -0
  4. package/dist/as/index.js +14 -14
  5. package/dist/at/index.js +9 -10
  6. package/dist/attestation/index.js +18 -19
  7. package/dist/attestation/index.js.map +1 -1
  8. package/dist/{backup-QZQEP5RO.js → backup-IJTB4S4M.js} +14 -15
  9. package/dist/{backup-QZQEP5RO.js.map → backup-IJTB4S4M.js.map} +1 -1
  10. package/dist/blobs/index.js +13 -14
  11. package/dist/blobs/index.js.map +1 -1
  12. package/dist/broker/index.js +12 -13
  13. package/dist/broker/index.js.map +1 -1
  14. package/dist/by/index.js +2 -3
  15. package/dist/cargo/index.js +33 -34
  16. package/dist/{chunk-5UKIZIO3.js → chunk-2577DKXB.js} +2 -2
  17. package/dist/chunk-2C3AQB46.js +1652 -0
  18. package/dist/chunk-2C3AQB46.js.map +1 -0
  19. package/dist/{chunk-LUVGSKXE.js → chunk-2N4GY74U.js} +6 -6
  20. package/dist/{chunk-I5LSKXT6.js → chunk-2Y4IMKA6.js} +4 -4
  21. package/dist/{chunk-7XT7KZTN.js → chunk-3RCJJBNR.js} +10 -10
  22. package/dist/{chunk-GM4IM7TC.js → chunk-453F654R.js} +2 -2
  23. package/dist/{chunk-JUBWUJY5.js → chunk-4GVM6QZA.js} +2 -2
  24. package/dist/{chunk-2DGBRE4K.js → chunk-4OZNXTO4.js} +2 -2
  25. package/dist/{chunk-P2RJAVMR.js → chunk-5VCRVKOZ.js} +4 -4
  26. package/dist/{chunk-RCONOOVF.js → chunk-5WDXHNSW.js} +5 -5
  27. package/dist/chunk-66TQOPFM.js +37 -0
  28. package/dist/chunk-66TQOPFM.js.map +1 -0
  29. package/dist/{chunk-Q2OAAREU.js → chunk-6GMZ7HEE.js} +6 -6
  30. package/dist/{chunk-6L5IMNJX.js → chunk-6GOE5PGN.js} +168 -1328
  31. package/dist/chunk-6GOE5PGN.js.map +1 -0
  32. package/dist/{chunk-TQGT5BZE.js → chunk-6I2RQCET.js} +4 -4
  33. package/dist/{chunk-UL7TLJ54.js → chunk-6X6SEMEE.js} +6 -4
  34. package/dist/{chunk-UL7TLJ54.js.map → chunk-6X6SEMEE.js.map} +1 -1
  35. package/dist/{chunk-P7KJME6C.js → chunk-6YXCPL4T.js} +2 -2
  36. package/dist/{chunk-DOPZWTMJ.js → chunk-77K4PG6P.js} +8 -8
  37. package/dist/{chunk-LAI7ENPW.js → chunk-7MG2LHO5.js} +3 -3
  38. package/dist/{chunk-N4CHCXDL.js → chunk-7MG7SJT7.js} +1 -1
  39. package/dist/{chunk-N4CHCXDL.js.map → chunk-7MG7SJT7.js.map} +1 -1
  40. package/dist/{chunk-SW4TOSJL.js → chunk-7O3Y4PPD.js} +1 -1
  41. package/dist/chunk-7O3Y4PPD.js.map +1 -0
  42. package/dist/{chunk-HOIWW2LV.js → chunk-7V4TP3AF.js} +4 -4
  43. package/dist/{chunk-GKOJR53Y.js → chunk-ANATMFIO.js} +5 -5
  44. package/dist/{chunk-MU74BYOD.js → chunk-ANSIZYEG.js} +3 -3
  45. package/dist/{chunk-IS5LFHV2.js → chunk-AO42KJO6.js} +7 -7
  46. package/dist/{chunk-RPX2H2OL.js → chunk-BLN54W3L.js} +3 -3
  47. package/dist/{chunk-HS3LEVT4.js → chunk-BM5TWITZ.js} +7 -7
  48. package/dist/{chunk-JRWLUWDM.js → chunk-BOET4NA4.js} +3 -3
  49. package/dist/{chunk-XGXVPCYW.js → chunk-BOWNCWZT.js} +3 -3
  50. package/dist/{chunk-5EC7X5QA.js → chunk-BSFNRLK2.js} +5 -5
  51. package/dist/{chunk-65ZYRK7O.js → chunk-BUE2D7PX.js} +26 -3
  52. package/dist/chunk-BUE2D7PX.js.map +1 -0
  53. package/dist/{chunk-UTFY6W6X.js → chunk-BZ3534YM.js} +2 -2
  54. package/dist/chunk-CARABLSQ.js +176 -0
  55. package/dist/chunk-CARABLSQ.js.map +1 -0
  56. package/dist/{chunk-HLFLJCDX.js → chunk-CHJBLCOG.js} +7 -7
  57. package/dist/{chunk-OLUTCM23.js → chunk-CPWQB3N5.js} +7 -7
  58. package/dist/{chunk-3GIA3HJ2.js → chunk-DGOZ4UZD.js} +2 -2
  59. package/dist/{chunk-FPN5D4JX.js → chunk-ELNXJMGB.js} +6 -6
  60. package/dist/{chunk-NMDMSHBF.js → chunk-EQEYOJBM.js} +3 -3
  61. package/dist/{chunk-RHTPGS56.js → chunk-EYBQEIUY.js} +3 -3
  62. package/dist/{chunk-Q2ZN5DWZ.js → chunk-FAHMLERK.js} +2 -2
  63. package/dist/chunk-FFWI7UH7.js +53 -0
  64. package/dist/chunk-FFWI7UH7.js.map +1 -0
  65. package/dist/{chunk-MENI33ZV.js → chunk-FMZY5Q6L.js} +3 -3
  66. package/dist/{chunk-FZWAGG5T.js → chunk-FXBIP2WD.js} +6 -6
  67. package/dist/{chunk-OHGCRKWA.js → chunk-G56KBWFY.js} +18 -8
  68. package/dist/{chunk-OHGCRKWA.js.map → chunk-G56KBWFY.js.map} +1 -1
  69. package/dist/{chunk-K432FT7T.js → chunk-GPEQUXHL.js} +4 -4
  70. package/dist/{chunk-DNMTN46H.js → chunk-GY4WYNNG.js} +2 -2
  71. package/dist/{chunk-OQDHIAR2.js → chunk-HDOU6I2Y.js} +80 -8
  72. package/dist/chunk-HDOU6I2Y.js.map +1 -0
  73. package/dist/{chunk-MQPHKJ74.js → chunk-J6FXAEUG.js} +12 -12
  74. package/dist/{chunk-PV7XXAXK.js → chunk-JBDFMYKQ.js} +2 -2
  75. package/dist/{chunk-IZTU6RKH.js → chunk-JMGDHKQF.js} +2 -2
  76. package/dist/{chunk-AHIIBDNH.js → chunk-K6LHRFBL.js} +7 -7
  77. package/dist/{chunk-FN26SFGH.js → chunk-K7NTTA6P.js} +2 -2
  78. package/dist/{chunk-MV2OEK3K.js → chunk-KG7TZKZG.js} +5 -5
  79. package/dist/{chunk-5NKHCJU5.js → chunk-KJIMGIWO.js} +8 -8
  80. package/dist/{chunk-ZB2K3FV7.js → chunk-KTFRCC5C.js} +2 -2
  81. package/dist/{chunk-X6YRP5EC.js → chunk-KUJDV5QH.js} +5 -5
  82. package/dist/{chunk-PCIBCL26.js → chunk-KUX3OB6D.js} +7 -5
  83. package/dist/{chunk-PCIBCL26.js.map → chunk-KUX3OB6D.js.map} +1 -1
  84. package/dist/{chunk-OKCQNMO6.js → chunk-L742JPKZ.js} +6 -6
  85. package/dist/{chunk-P22XPNFW.js → chunk-L7CIOOBW.js} +2 -2
  86. package/dist/{chunk-QOHGWFAW.js → chunk-LWBCUYZW.js} +2 -2
  87. package/dist/{chunk-357ECVLE.js → chunk-MUM7IANK.js} +3 -3
  88. package/dist/{chunk-JFSUYGNE.js → chunk-MVMXZYXT.js} +2 -2
  89. package/dist/{chunk-3SWP2FYA.js → chunk-NA2NIJZI.js} +8 -8
  90. package/dist/{chunk-MOQ6OGKS.js → chunk-NKHRDYOR.js} +4 -4
  91. package/dist/{chunk-FKQCC4C5.js → chunk-NQKIUNW5.js} +2 -2
  92. package/dist/{chunk-SWFIXQF5.js → chunk-PT43Y56J.js} +6 -6
  93. package/dist/{chunk-MTTPHBIE.js → chunk-Q2PU57HC.js} +2 -2
  94. package/dist/{chunk-FLRLZ4XZ.js → chunk-Q7HZX3IF.js} +2 -2
  95. package/dist/{chunk-75WNTBZL.js → chunk-QIBVIOXO.js} +3 -3
  96. package/dist/{chunk-KQIDBIZL.js → chunk-QIZPZMUI.js} +2 -2
  97. package/dist/{chunk-VT4DTCK5.js → chunk-REDOOY2Q.js} +3 -3
  98. package/dist/chunk-REDOOY2Q.js.map +1 -0
  99. package/dist/{chunk-KZTPL7NL.js → chunk-RMF67KCG.js} +2 -2
  100. package/dist/{chunk-OEJ4R52I.js → chunk-RMS3NEA3.js} +2 -2
  101. package/dist/{chunk-VTTDPGEK.js → chunk-RRNRNANG.js} +9 -9
  102. package/dist/chunk-RTBJ5IOO.js +87 -0
  103. package/dist/chunk-RTBJ5IOO.js.map +1 -0
  104. package/dist/chunk-RXLYKVTF.js +17 -0
  105. package/dist/chunk-RXLYKVTF.js.map +1 -0
  106. package/dist/{chunk-XKA6UH5V.js → chunk-SFAWCTEM.js} +2 -2
  107. package/dist/{chunk-FYT3DXPN.js → chunk-SKGMN35F.js} +2 -2
  108. package/dist/{chunk-USKHHOIV.js → chunk-SL3JAAKN.js} +2 -2
  109. package/dist/chunk-SMH6SRX7.js +87 -0
  110. package/dist/chunk-SMH6SRX7.js.map +1 -0
  111. package/dist/{chunk-QJLOWGOU.js → chunk-SPXXX5E4.js} +12 -82
  112. package/dist/chunk-SPXXX5E4.js.map +1 -0
  113. package/dist/{chunk-JILOSL4O.js → chunk-SPYWXKJN.js} +3 -3
  114. package/dist/{chunk-4RUFYGWG.js → chunk-SZJ3DLZA.js} +2 -2
  115. package/dist/chunk-TFMM5DBB.js +20 -0
  116. package/dist/chunk-TFMM5DBB.js.map +1 -0
  117. package/dist/{chunk-O3SNM66K.js → chunk-TFR7DSOV.js} +2 -2
  118. package/dist/{chunk-DIVY2CJZ.js → chunk-TRGTKX5E.js} +3 -3
  119. package/dist/{chunk-JY4U6CYV.js → chunk-TUFM4UZP.js} +2 -2
  120. package/dist/{chunk-FRIVOR5N.js → chunk-U4FOQDY4.js} +5 -172
  121. package/dist/chunk-U4FOQDY4.js.map +1 -0
  122. package/dist/{chunk-DZPMKY3J.js → chunk-UGTBXF5U.js} +3 -3
  123. package/dist/{chunk-THNJ3IKU.js → chunk-ULUMAZ5S.js} +2 -2
  124. package/dist/{chunk-YHIAWECL.js → chunk-UXVWEX5L.js} +2 -2
  125. package/dist/{chunk-IAHDSFFA.js → chunk-UXWB3FPF.js} +10 -10
  126. package/dist/{chunk-NO272T7Q.js → chunk-V4PXLYWM.js} +2 -31
  127. package/dist/chunk-V4PXLYWM.js.map +1 -0
  128. package/dist/{chunk-GHADG5QZ.js → chunk-VTFVLCUH.js} +2 -2
  129. package/dist/{chunk-U3RMWOXY.js → chunk-VXANTWBJ.js} +3 -3
  130. package/dist/{chunk-5W5CEHLA.js → chunk-VXGSWL6L.js} +6 -6
  131. package/dist/{chunk-KHKKD62N.js → chunk-VYYM3MEN.js} +2 -16
  132. package/dist/chunk-VYYM3MEN.js.map +1 -0
  133. package/dist/{chunk-7YVSWPZB.js → chunk-WEQEYLCS.js} +7 -7
  134. package/dist/{chunk-TAJZ7GXO.js → chunk-X2DLENDQ.js} +3 -3
  135. package/dist/{chunk-2E2LT37H.js → chunk-XLMEZIAJ.js} +2 -2
  136. package/dist/{chunk-2MQ2D5OZ.js → chunk-XTXOCYOJ.js} +5 -5
  137. package/dist/{chunk-CWFH36SI.js → chunk-YSRUYAVU.js} +2 -2
  138. package/dist/{chunk-ZQGRZN5L.js → chunk-YYP7WSEB.js} +2 -2
  139. package/dist/{chunk-4U52PMEL.js → chunk-ZN4FD4PE.js} +4 -4
  140. package/dist/{chunk-AW4KTQA4.js → chunk-ZORTV6NH.js} +2 -2
  141. package/dist/{chunk-H5GVPOB4.js → chunk-ZVO4QVPD.js} +5 -5
  142. package/dist/classified/index.js +5 -6
  143. package/dist/{classified-marker-R37XW5PC.js → classified-marker-LI2SF2E4.js} +3 -5
  144. package/dist/{classified-marker-R37XW5PC.js.map → classified-marker-LI2SF2E4.js.map} +1 -1
  145. package/dist/collection-facade-4GRREZ6C.js +45 -0
  146. package/dist/computed-VPOKQK4N.js +10 -0
  147. package/dist/consent/index.js +9 -10
  148. package/dist/consent/index.js.map +1 -1
  149. package/dist/cover/index.js +9 -10
  150. package/dist/crdt/index.js +0 -1
  151. package/dist/crdt/index.js.map +1 -1
  152. package/dist/custody/index.js +12 -13
  153. package/dist/{dead-filter-GRT6RAML.js → dead-filter-TSWZQRR5.js} +2 -3
  154. package/dist/{dead-filter-GRT6RAML.js.map → dead-filter-TSWZQRR5.js.map} +1 -1
  155. package/dist/debug/index.js +1 -2
  156. package/dist/debug/index.js.map +1 -1
  157. package/dist/{delegation-6QRAYSK6.js → delegation-OVIFFPG4.js} +11 -12
  158. package/dist/{delegation-6QRAYSK6.js.map → delegation-OVIFFPG4.js.map} +1 -1
  159. package/dist/derivations/index.js +30 -16
  160. package/dist/derive-6O5SWQKN.js +21 -0
  161. package/dist/directory/index.js +10 -11
  162. package/dist/dispatch-S73TK3IY.js +302 -0
  163. package/dist/dispatch-S73TK3IY.js.map +1 -0
  164. package/dist/{dispatch-QCF7KPIP.js → dispatch-WC6X2M6C.js} +5 -7
  165. package/dist/{dispatch-QCF7KPIP.js.map → dispatch-WC6X2M6C.js.map} +1 -1
  166. package/dist/{enclave-OXZY3NOP.js → enclave-KJOTOH7X.js} +9 -10
  167. package/dist/executor-5NIMLSKZ.js +8 -0
  168. package/dist/executor-AQVXV5GZ.js +8 -0
  169. package/dist/executor-PUAO6AKJ.js +29 -0
  170. package/dist/export-accessible-72EQNBMR.js +22 -0
  171. package/dist/extract-partition-PUYNU3UF.js +37 -0
  172. package/dist/{fanout-sidecar-KGQCUJ7P.js → fanout-sidecar-WUFXNYP4.js} +9 -10
  173. package/dist/{fanout-sidecar-KGQCUJ7P.js.map → fanout-sidecar-WUFXNYP4.js.map} +1 -1
  174. package/dist/{fence-watcher-ZVSMLKQD.js → fence-watcher-U2PW6JU5.js} +1 -3
  175. package/dist/{fence-watcher-ZVSMLKQD.js.map → fence-watcher-U2PW6JU5.js.map} +1 -1
  176. package/dist/find-2ABFCZX4.js +10 -0
  177. package/dist/forget/index.js +9 -10
  178. package/dist/forget/index.js.map +1 -1
  179. package/dist/guards/index.js +4 -5
  180. package/dist/history/index.js +13 -14
  181. package/dist/history/index.js.map +1 -1
  182. package/dist/i18n/index.js +14 -15
  183. package/dist/i18n/index.js.map +1 -1
  184. package/dist/index.d.ts +20 -4
  185. package/dist/index.js +122 -115
  186. package/dist/index.js.map +1 -1
  187. package/dist/indexing/index.js +2 -3
  188. package/dist/indexing/index.js.map +1 -1
  189. package/dist/introspection/index.js +13 -13
  190. package/dist/issue-SIDORTSZ.js +18 -0
  191. package/dist/{json-schema-I22JCYCG.js → json-schema-V3M5MUCM.js} +1 -3
  192. package/dist/{json-schema-I22JCYCG.js.map → json-schema-V3M5MUCM.js.map} +1 -1
  193. package/dist/kernel/collection-config.d.ts +34 -0
  194. package/dist/kernel/collection.d.ts +11 -6
  195. package/dist/kernel/errors.d.ts +28 -0
  196. package/dist/kernel/match-pairs.d.ts +30 -0
  197. package/dist/kernel/types.d.ts +39 -0
  198. package/dist/lazy/index.js +3 -3
  199. package/dist/{ledger-ZAFULLAF.js → ledger-F33ZVMTK.js} +11 -12
  200. package/dist/liberate-LCDPNAG2.js +24 -0
  201. package/dist/link-set-FKNWAYKS.js +30 -0
  202. package/dist/{managed-secret-7OH7HKXV.js → managed-secret-PQYKSR6T.js} +10 -11
  203. package/dist/materialized-views/index.js +21 -21
  204. package/dist/{migrate-cek-QHZ75E6E.js → migrate-cek-5ENH64AA.js} +2 -3
  205. package/dist/{migrate-cek-QHZ75E6E.js.map → migrate-cek-5ENH64AA.js.map} +1 -1
  206. package/dist/money/index.js +4 -5
  207. package/dist/noydb-DUXZPKSN.js +90 -0
  208. package/dist/overlay-views/index.js +4 -5
  209. package/dist/periods/index.js +12 -13
  210. package/dist/pod/index.js +64 -60
  211. package/dist/{pod-handle-BLOI4IFY.js → pod-handle-Q736KYON.js} +10 -11
  212. package/dist/{pod-handle-BLOI4IFY.js.map → pod-handle-Q736KYON.js.map} +1 -1
  213. package/dist/policy/index.js +10 -11
  214. package/dist/port/to/index.d.ts +40 -0
  215. package/dist/portability/index.js +8 -9
  216. package/dist/portability/index.js.map +1 -1
  217. package/dist/{post-register-R33EKJQR.js → post-register-LNE2FE2A.js} +6 -7
  218. package/dist/{post-register-R33EKJQR.js.map → post-register-LNE2FE2A.js.map} +1 -1
  219. package/dist/{purge-scope-FGNNLWHD.js → purge-scope-4HEFPDOW.js} +1 -3
  220. package/dist/{purge-scope-FGNNLWHD.js.map → purge-scope-4HEFPDOW.js.map} +1 -1
  221. package/dist/query/index.js +3 -4
  222. package/dist/{read-only-facade-CHCKSEPD.js → read-only-facade-BIGO37U3.js} +1 -2
  223. package/dist/reduce/index.js +4 -5
  224. package/dist/reduce/index.js.map +1 -1
  225. package/dist/register-I2DZXGAR.js +31 -0
  226. package/dist/registry-23WF3TGH.js +8 -0
  227. package/dist/registry-4AYVUNXK.js +8 -0
  228. package/dist/registry-VSSQPIGF.js +18 -0
  229. package/dist/registry-YLEWMGAC.js +32 -0
  230. package/dist/request-withdrawal-KFQHEZ25.js +30 -0
  231. package/dist/{reveal-PI6ADRQU.js → reveal-67RDQRIN.js} +6 -7
  232. package/dist/{reveal-PI6ADRQU.js.map → reveal-67RDQRIN.js.map} +1 -1
  233. package/dist/revoke-DQDZAZZM.js +23 -0
  234. package/dist/satellites/index.js +1 -2
  235. package/dist/schema-update/index.js +2 -3
  236. package/dist/sealed-record/index.js +12 -13
  237. package/dist/sealed-record/index.js.map +1 -1
  238. package/dist/search/index.js +4 -5
  239. package/dist/{seed-CG7JMJNY.js → seed-G42JYN56.js} +12 -13
  240. package/dist/{seed-CG7JMJNY.js.map → seed-G42JYN56.js.map} +1 -1
  241. package/dist/sequence/index.js +9 -10
  242. package/dist/session/index.js +9 -10
  243. package/dist/session/index.js.map +1 -1
  244. package/dist/shadow/index.js +2 -3
  245. package/dist/shadow/index.js.map +1 -1
  246. package/dist/share-link/index.js +0 -1
  247. package/dist/share-link/index.js.map +1 -1
  248. package/dist/signer-WAMDZHEN.js +24 -0
  249. package/dist/snapshots/index.js +10 -11
  250. package/dist/snapshots/index.js.map +1 -1
  251. package/dist/{stale-HZR7745Y.js → stale-DDL7WQEZ.js} +10 -11
  252. package/dist/storage-FLR73HHF.js +22 -0
  253. package/dist/store/index.js +0 -1
  254. package/dist/{store-coordination-provider-MYIHSZXT.js → store-coordination-provider-MEQ2MJQG.js} +10 -11
  255. package/dist/{store-coordination-provider-MYIHSZXT.js.map → store-coordination-provider-MEQ2MJQG.js.map} +1 -1
  256. package/dist/sync/index.js +10 -11
  257. package/dist/sync/index.js.map +1 -1
  258. package/dist/team/index.js +15 -16
  259. package/dist/tiers/index.js +11 -12
  260. package/dist/to/index.js +2 -3
  261. package/dist/to/index.js.map +1 -1
  262. package/dist/transactions/index.js +3 -4
  263. package/dist/transactions/index.js.map +1 -1
  264. package/dist/{ulid-VQW6ERQN.js → ulid-4MKXG325.js} +1 -2
  265. package/dist/util/index.js +1 -2
  266. package/dist/util/index.js.map +1 -1
  267. package/dist/{vault-diff-FE5J35NJ.js → vault-diff-C6WUJFNP.js} +1 -2
  268. package/dist/vault-head/index.js +8 -9
  269. package/dist/vault-head/index.js.map +1 -1
  270. package/dist/{verify-R6CCBUA3.js → verify-KOV2G5D6.js} +5 -6
  271. package/dist/{verify-R6CCBUA3.js.map → verify-KOV2G5D6.js.map} +1 -1
  272. package/dist/walk-3UQBRMDV.js +21 -0
  273. package/dist/with-formula/derivations/dispatch.d.ts +16 -1
  274. package/dist/with-formula/derivations/registry.d.ts +20 -0
  275. package/dist/with-formula/derivations/trigger-match.d.ts +104 -0
  276. package/dist/with-formula/derivations/types.d.ts +61 -0
  277. package/dist/with-shape/introspection/behaviors.d.ts +7 -0
  278. package/dist/with-shape/introspection/describe.d.ts +10 -1
  279. package/dist/with-shape/introspection/field-meta.d.ts +86 -0
  280. package/dist/withdraw-accessible-EL5GXZBS.js +27 -0
  281. package/package.json +8 -3
  282. package/dist/api-GJQF7OAJ.js +0 -20
  283. package/dist/chunk-65ZYRK7O.js.map +0 -1
  284. package/dist/chunk-6L5IMNJX.js.map +0 -1
  285. package/dist/chunk-FRIVOR5N.js.map +0 -1
  286. package/dist/chunk-J6FXVDKC.js +0 -81
  287. package/dist/chunk-J6FXVDKC.js.map +0 -1
  288. package/dist/chunk-KHKKD62N.js.map +0 -1
  289. package/dist/chunk-NO272T7Q.js.map +0 -1
  290. package/dist/chunk-OQDHIAR2.js.map +0 -1
  291. package/dist/chunk-PZ5AY32C.js +0 -10
  292. package/dist/chunk-QJLOWGOU.js.map +0 -1
  293. package/dist/chunk-SW4TOSJL.js.map +0 -1
  294. package/dist/chunk-VT4DTCK5.js.map +0 -1
  295. package/dist/chunk-XJP66QEN.js +0 -344
  296. package/dist/chunk-XJP66QEN.js.map +0 -1
  297. package/dist/collection-facade-OPJ3EC4L.js +0 -45
  298. package/dist/computed-HW6IG5UH.js +0 -11
  299. package/dist/derive-AAIXSQIE.js +0 -22
  300. package/dist/dispatch-DR3XITEC.js +0 -194
  301. package/dist/dispatch-DR3XITEC.js.map +0 -1
  302. package/dist/executor-67NA4KPO.js +0 -29
  303. package/dist/executor-7JDP7UBK.js +0 -9
  304. package/dist/executor-CRH5OB4V.js +0 -9
  305. package/dist/export-accessible-K4GJAU7U.js +0 -23
  306. package/dist/extract-partition-YJFL5OKK.js +0 -38
  307. package/dist/find-SVZHMEQI.js +0 -11
  308. package/dist/issue-64N6OG7U.js +0 -19
  309. package/dist/liberate-XL6NSGOL.js +0 -25
  310. package/dist/link-set-LQI2IJX6.js +0 -31
  311. package/dist/noydb-SWUGPFBK.js +0 -86
  312. package/dist/register-AYBQNTM3.js +0 -32
  313. package/dist/registry-CQWWOBO4.js +0 -9
  314. package/dist/registry-JCZ4BNLV.js +0 -18
  315. package/dist/registry-JFFENZ44.js +0 -9
  316. package/dist/registry-ZA4HACYR.js +0 -19
  317. package/dist/request-withdrawal-7IKUIAEB.js +0 -31
  318. package/dist/revoke-PUJKRYJF.js +0 -24
  319. package/dist/signer-5TA7FUC3.js +0 -25
  320. package/dist/storage-J2QHNJCB.js +0 -23
  321. package/dist/walk-3PA4ZOKS.js +0 -21
  322. package/dist/withdraw-accessible-62VI4W7D.js +0 -28
  323. package/dist/withdraw-accessible-62VI4W7D.js.map +0 -1
  324. package/dist/zod-HAJM7LMS.js +0 -14763
  325. package/dist/zod-HAJM7LMS.js.map +0 -1
  326. /package/dist/{api-GJQF7OAJ.js.map → api-TXFOVOXX.js.map} +0 -0
  327. /package/dist/{chunk-5UKIZIO3.js.map → chunk-2577DKXB.js.map} +0 -0
  328. /package/dist/{chunk-LUVGSKXE.js.map → chunk-2N4GY74U.js.map} +0 -0
  329. /package/dist/{chunk-I5LSKXT6.js.map → chunk-2Y4IMKA6.js.map} +0 -0
  330. /package/dist/{chunk-7XT7KZTN.js.map → chunk-3RCJJBNR.js.map} +0 -0
  331. /package/dist/{chunk-GM4IM7TC.js.map → chunk-453F654R.js.map} +0 -0
  332. /package/dist/{chunk-JUBWUJY5.js.map → chunk-4GVM6QZA.js.map} +0 -0
  333. /package/dist/{chunk-2DGBRE4K.js.map → chunk-4OZNXTO4.js.map} +0 -0
  334. /package/dist/{chunk-P2RJAVMR.js.map → chunk-5VCRVKOZ.js.map} +0 -0
  335. /package/dist/{chunk-RCONOOVF.js.map → chunk-5WDXHNSW.js.map} +0 -0
  336. /package/dist/{chunk-Q2OAAREU.js.map → chunk-6GMZ7HEE.js.map} +0 -0
  337. /package/dist/{chunk-TQGT5BZE.js.map → chunk-6I2RQCET.js.map} +0 -0
  338. /package/dist/{chunk-P7KJME6C.js.map → chunk-6YXCPL4T.js.map} +0 -0
  339. /package/dist/{chunk-DOPZWTMJ.js.map → chunk-77K4PG6P.js.map} +0 -0
  340. /package/dist/{chunk-LAI7ENPW.js.map → chunk-7MG2LHO5.js.map} +0 -0
  341. /package/dist/{chunk-HOIWW2LV.js.map → chunk-7V4TP3AF.js.map} +0 -0
  342. /package/dist/{chunk-GKOJR53Y.js.map → chunk-ANATMFIO.js.map} +0 -0
  343. /package/dist/{chunk-MU74BYOD.js.map → chunk-ANSIZYEG.js.map} +0 -0
  344. /package/dist/{chunk-IS5LFHV2.js.map → chunk-AO42KJO6.js.map} +0 -0
  345. /package/dist/{chunk-RPX2H2OL.js.map → chunk-BLN54W3L.js.map} +0 -0
  346. /package/dist/{chunk-HS3LEVT4.js.map → chunk-BM5TWITZ.js.map} +0 -0
  347. /package/dist/{chunk-JRWLUWDM.js.map → chunk-BOET4NA4.js.map} +0 -0
  348. /package/dist/{chunk-XGXVPCYW.js.map → chunk-BOWNCWZT.js.map} +0 -0
  349. /package/dist/{chunk-5EC7X5QA.js.map → chunk-BSFNRLK2.js.map} +0 -0
  350. /package/dist/{chunk-UTFY6W6X.js.map → chunk-BZ3534YM.js.map} +0 -0
  351. /package/dist/{chunk-HLFLJCDX.js.map → chunk-CHJBLCOG.js.map} +0 -0
  352. /package/dist/{chunk-OLUTCM23.js.map → chunk-CPWQB3N5.js.map} +0 -0
  353. /package/dist/{chunk-3GIA3HJ2.js.map → chunk-DGOZ4UZD.js.map} +0 -0
  354. /package/dist/{chunk-FPN5D4JX.js.map → chunk-ELNXJMGB.js.map} +0 -0
  355. /package/dist/{chunk-NMDMSHBF.js.map → chunk-EQEYOJBM.js.map} +0 -0
  356. /package/dist/{chunk-RHTPGS56.js.map → chunk-EYBQEIUY.js.map} +0 -0
  357. /package/dist/{chunk-Q2ZN5DWZ.js.map → chunk-FAHMLERK.js.map} +0 -0
  358. /package/dist/{chunk-MENI33ZV.js.map → chunk-FMZY5Q6L.js.map} +0 -0
  359. /package/dist/{chunk-FZWAGG5T.js.map → chunk-FXBIP2WD.js.map} +0 -0
  360. /package/dist/{chunk-K432FT7T.js.map → chunk-GPEQUXHL.js.map} +0 -0
  361. /package/dist/{chunk-DNMTN46H.js.map → chunk-GY4WYNNG.js.map} +0 -0
  362. /package/dist/{chunk-MQPHKJ74.js.map → chunk-J6FXAEUG.js.map} +0 -0
  363. /package/dist/{chunk-PV7XXAXK.js.map → chunk-JBDFMYKQ.js.map} +0 -0
  364. /package/dist/{chunk-IZTU6RKH.js.map → chunk-JMGDHKQF.js.map} +0 -0
  365. /package/dist/{chunk-AHIIBDNH.js.map → chunk-K6LHRFBL.js.map} +0 -0
  366. /package/dist/{chunk-FN26SFGH.js.map → chunk-K7NTTA6P.js.map} +0 -0
  367. /package/dist/{chunk-MV2OEK3K.js.map → chunk-KG7TZKZG.js.map} +0 -0
  368. /package/dist/{chunk-5NKHCJU5.js.map → chunk-KJIMGIWO.js.map} +0 -0
  369. /package/dist/{chunk-ZB2K3FV7.js.map → chunk-KTFRCC5C.js.map} +0 -0
  370. /package/dist/{chunk-X6YRP5EC.js.map → chunk-KUJDV5QH.js.map} +0 -0
  371. /package/dist/{chunk-OKCQNMO6.js.map → chunk-L742JPKZ.js.map} +0 -0
  372. /package/dist/{chunk-P22XPNFW.js.map → chunk-L7CIOOBW.js.map} +0 -0
  373. /package/dist/{chunk-QOHGWFAW.js.map → chunk-LWBCUYZW.js.map} +0 -0
  374. /package/dist/{chunk-357ECVLE.js.map → chunk-MUM7IANK.js.map} +0 -0
  375. /package/dist/{chunk-JFSUYGNE.js.map → chunk-MVMXZYXT.js.map} +0 -0
  376. /package/dist/{chunk-3SWP2FYA.js.map → chunk-NA2NIJZI.js.map} +0 -0
  377. /package/dist/{chunk-MOQ6OGKS.js.map → chunk-NKHRDYOR.js.map} +0 -0
  378. /package/dist/{chunk-FKQCC4C5.js.map → chunk-NQKIUNW5.js.map} +0 -0
  379. /package/dist/{chunk-SWFIXQF5.js.map → chunk-PT43Y56J.js.map} +0 -0
  380. /package/dist/{chunk-MTTPHBIE.js.map → chunk-Q2PU57HC.js.map} +0 -0
  381. /package/dist/{chunk-FLRLZ4XZ.js.map → chunk-Q7HZX3IF.js.map} +0 -0
  382. /package/dist/{chunk-75WNTBZL.js.map → chunk-QIBVIOXO.js.map} +0 -0
  383. /package/dist/{chunk-KQIDBIZL.js.map → chunk-QIZPZMUI.js.map} +0 -0
  384. /package/dist/{chunk-KZTPL7NL.js.map → chunk-RMF67KCG.js.map} +0 -0
  385. /package/dist/{chunk-OEJ4R52I.js.map → chunk-RMS3NEA3.js.map} +0 -0
  386. /package/dist/{chunk-VTTDPGEK.js.map → chunk-RRNRNANG.js.map} +0 -0
  387. /package/dist/{chunk-XKA6UH5V.js.map → chunk-SFAWCTEM.js.map} +0 -0
  388. /package/dist/{chunk-FYT3DXPN.js.map → chunk-SKGMN35F.js.map} +0 -0
  389. /package/dist/{chunk-USKHHOIV.js.map → chunk-SL3JAAKN.js.map} +0 -0
  390. /package/dist/{chunk-JILOSL4O.js.map → chunk-SPYWXKJN.js.map} +0 -0
  391. /package/dist/{chunk-4RUFYGWG.js.map → chunk-SZJ3DLZA.js.map} +0 -0
  392. /package/dist/{chunk-O3SNM66K.js.map → chunk-TFR7DSOV.js.map} +0 -0
  393. /package/dist/{chunk-DIVY2CJZ.js.map → chunk-TRGTKX5E.js.map} +0 -0
  394. /package/dist/{chunk-JY4U6CYV.js.map → chunk-TUFM4UZP.js.map} +0 -0
  395. /package/dist/{chunk-DZPMKY3J.js.map → chunk-UGTBXF5U.js.map} +0 -0
  396. /package/dist/{chunk-THNJ3IKU.js.map → chunk-ULUMAZ5S.js.map} +0 -0
  397. /package/dist/{chunk-YHIAWECL.js.map → chunk-UXVWEX5L.js.map} +0 -0
  398. /package/dist/{chunk-IAHDSFFA.js.map → chunk-UXWB3FPF.js.map} +0 -0
  399. /package/dist/{chunk-GHADG5QZ.js.map → chunk-VTFVLCUH.js.map} +0 -0
  400. /package/dist/{chunk-U3RMWOXY.js.map → chunk-VXANTWBJ.js.map} +0 -0
  401. /package/dist/{chunk-5W5CEHLA.js.map → chunk-VXGSWL6L.js.map} +0 -0
  402. /package/dist/{chunk-7YVSWPZB.js.map → chunk-WEQEYLCS.js.map} +0 -0
  403. /package/dist/{chunk-TAJZ7GXO.js.map → chunk-X2DLENDQ.js.map} +0 -0
  404. /package/dist/{chunk-2E2LT37H.js.map → chunk-XLMEZIAJ.js.map} +0 -0
  405. /package/dist/{chunk-2MQ2D5OZ.js.map → chunk-XTXOCYOJ.js.map} +0 -0
  406. /package/dist/{chunk-CWFH36SI.js.map → chunk-YSRUYAVU.js.map} +0 -0
  407. /package/dist/{chunk-ZQGRZN5L.js.map → chunk-YYP7WSEB.js.map} +0 -0
  408. /package/dist/{chunk-4U52PMEL.js.map → chunk-ZN4FD4PE.js.map} +0 -0
  409. /package/dist/{chunk-AW4KTQA4.js.map → chunk-ZORTV6NH.js.map} +0 -0
  410. /package/dist/{chunk-H5GVPOB4.js.map → chunk-ZVO4QVPD.js.map} +0 -0
  411. /package/dist/{chunk-PZ5AY32C.js.map → collection-facade-4GRREZ6C.js.map} +0 -0
  412. /package/dist/{collection-facade-OPJ3EC4L.js.map → computed-VPOKQK4N.js.map} +0 -0
  413. /package/dist/{computed-HW6IG5UH.js.map → derive-6O5SWQKN.js.map} +0 -0
  414. /package/dist/{derive-AAIXSQIE.js.map → enclave-KJOTOH7X.js.map} +0 -0
  415. /package/dist/{enclave-OXZY3NOP.js.map → executor-5NIMLSKZ.js.map} +0 -0
  416. /package/dist/{executor-67NA4KPO.js.map → executor-AQVXV5GZ.js.map} +0 -0
  417. /package/dist/{executor-7JDP7UBK.js.map → executor-PUAO6AKJ.js.map} +0 -0
  418. /package/dist/{executor-CRH5OB4V.js.map → export-accessible-72EQNBMR.js.map} +0 -0
  419. /package/dist/{export-accessible-K4GJAU7U.js.map → extract-partition-PUYNU3UF.js.map} +0 -0
  420. /package/dist/{extract-partition-YJFL5OKK.js.map → find-2ABFCZX4.js.map} +0 -0
  421. /package/dist/{find-SVZHMEQI.js.map → issue-SIDORTSZ.js.map} +0 -0
  422. /package/dist/{issue-64N6OG7U.js.map → ledger-F33ZVMTK.js.map} +0 -0
  423. /package/dist/{ledger-ZAFULLAF.js.map → liberate-LCDPNAG2.js.map} +0 -0
  424. /package/dist/{liberate-XL6NSGOL.js.map → link-set-FKNWAYKS.js.map} +0 -0
  425. /package/dist/{link-set-LQI2IJX6.js.map → managed-secret-PQYKSR6T.js.map} +0 -0
  426. /package/dist/{managed-secret-7OH7HKXV.js.map → noydb-DUXZPKSN.js.map} +0 -0
  427. /package/dist/{noydb-SWUGPFBK.js.map → read-only-facade-BIGO37U3.js.map} +0 -0
  428. /package/dist/{read-only-facade-CHCKSEPD.js.map → register-I2DZXGAR.js.map} +0 -0
  429. /package/dist/{register-AYBQNTM3.js.map → registry-23WF3TGH.js.map} +0 -0
  430. /package/dist/{registry-CQWWOBO4.js.map → registry-4AYVUNXK.js.map} +0 -0
  431. /package/dist/{registry-JCZ4BNLV.js.map → registry-VSSQPIGF.js.map} +0 -0
  432. /package/dist/{registry-JFFENZ44.js.map → registry-YLEWMGAC.js.map} +0 -0
  433. /package/dist/{registry-ZA4HACYR.js.map → request-withdrawal-KFQHEZ25.js.map} +0 -0
  434. /package/dist/{request-withdrawal-7IKUIAEB.js.map → revoke-DQDZAZZM.js.map} +0 -0
  435. /package/dist/{revoke-PUJKRYJF.js.map → signer-WAMDZHEN.js.map} +0 -0
  436. /package/dist/{signer-5TA7FUC3.js.map → stale-DDL7WQEZ.js.map} +0 -0
  437. /package/dist/{stale-HZR7745Y.js.map → storage-FLR73HHF.js.map} +0 -0
  438. /package/dist/{storage-J2QHNJCB.js.map → ulid-4MKXG325.js.map} +0 -0
  439. /package/dist/{ulid-VQW6ERQN.js.map → vault-diff-C6WUJFNP.js.map} +0 -0
  440. /package/dist/{vault-diff-FE5J35NJ.js.map → walk-3UQBRMDV.js.map} +0 -0
  441. /package/dist/{walk-3PA4ZOKS.js.map → withdraw-accessible-EL5GXZBS.js.map} +0 -0
@@ -11,7 +11,8 @@
11
11
  * @module
12
12
  */
13
13
  import type { FieldMeta } from './field-meta.js';
14
- import { FieldMetaUnknownFieldError } from './field-meta.js';
14
+ import { FieldMetaUnknownFieldError, schemaFieldKeys } from './field-meta.js';
15
+ export { schemaFieldKeys };
15
16
  import type { CollectionMeta } from './meta.js';
16
17
  import type { ViaDescriptor, ViaPosture } from '../../kernel/via/index.js';
17
18
  import type { DictKeyDescriptor, StaticDictDescriptor } from '../../via/i18n/dictionary.js';
@@ -223,6 +224,14 @@ export interface BuildDescriptionInput {
223
224
  readonly refs: Record<string, RefDescriptor>;
224
225
  /** Async path fills this; sync path passes `undefined`. */
225
226
  readonly zodFields: Record<string, ZodFieldSlot> | undefined;
227
+ /**
228
+ * The collection's configured validator, if any. The sync path passes it so
229
+ * `fieldMeta` keys can still be validated (#1253): field KEYS are readable
230
+ * synchronously via {@link schemaFieldKeys} even though field TYPES are not.
231
+ * `undefined` means no validator is configured, which is itself informative
232
+ * — the config keys are then the complete field set.
233
+ */
234
+ readonly schema?: unknown;
226
235
  /**
227
236
  * Async path: when `resolveDictLabels` was true, this map holds
228
237
  * `{ dictName -> { value -> label } }` for dynamic dictKey fields.
@@ -59,3 +59,89 @@ export interface ResolvedMeta extends Partial<FieldMeta> {
59
59
  export declare function humanizeFieldKey(key: string): string;
60
60
  /** Merge one field's metadata: channel > zodMeta > inferred; label always present. */
61
61
  export declare function resolveFieldMeta(key: string, inputs: MergeInputs): ResolvedMeta;
62
+ /**
63
+ * Field KEYS from a configured validator, synchronously — the complement to
64
+ * {@link deriveZodFields}, which derives field TYPES and must be async.
65
+ *
66
+ * The distinction is the whole point (#1253). `describe()`'s sync path passed
67
+ * `zodFields: undefined`, so `fieldMeta` key-validation could never run there
68
+ * and a typo'd key became a PHANTOM FIELD carrying its declared `sensitivity`
69
+ * while the real field went undescribed — an inventory wrong in both
70
+ * directions, silently, on the surface `sensitivity` exists to serve.
71
+ *
72
+ * That was read as unavoidable ("the sync path cannot know the schema's
73
+ * fields"), which is true of types and false of keys: a Zod object exposes
74
+ * `.shape` directly, on both v3 and v4, with no JSON-Schema derivation and no
75
+ * `zod-to-json-schema` peer. The latter matters — on Zod 3 that peer is
76
+ * required for the async path, so the sync path is the only one some
77
+ * consumers can reach.
78
+ *
79
+ * A duck-typed probe, not a Zod dependency: an unrecognised validator returns
80
+ * `undefined` and the caller stays silent rather than guessing, so a validator
81
+ * hub cannot read never produces a false "unknown field" error.
82
+ *
83
+ * Wrappers (reported by the pilot on #1249's guard, and it equally affected
84
+ * #1253's): a wrapped object's `.shape` is undefined, so "has a schema" and
85
+ * "hub can enumerate its fields" silently diverged for exactly the schemas
86
+ * most worth guarding — validated ones.
87
+ *
88
+ * ONE RULE UNWRAPS ALL OF THEM: FOLLOW THE OUTPUT SIDE. These keys describe
89
+ * the PARSED record, so the only question a wrapper raises is whether it
90
+ * changes the parsed shape.
91
+ *
92
+ * Zod 3 `ZodEffects` — `.refine()`/`.superRefine()` (`effect.type` is
93
+ * `'refinement'`) and `z.preprocess()` (`'preprocess'`) both parse WITH
94
+ * the inner schema, so the output is the inner object: follow
95
+ * `_def.schema`. `.transform()` REPLACES the output, so the inner keys
96
+ * would be a lie: stay `undefined`, deliberately.
97
+ * Zod 4 `ZodPipe` — `z.preprocess()` is `pipe(transform -> object)` and
98
+ * `.transform()` is `pipe(object -> transform)`. Following `_def.out`
99
+ * resolves both correctly with no effect-kind test: preprocess reaches the
100
+ * object, transform reaches a `ZodTransform` that has no shape and no
101
+ * inner schema, so the loop returns `undefined` on its own.
102
+ *
103
+ * `preprocess` was the pilot's second finding (#1262): the first fix followed
104
+ * refinements only, which left four of their registered collections unguarded
105
+ * — including the one carrying their only `fieldMeta` PII declaration, i.e.
106
+ * precisely the collection #1253 was written for. It is one string away from
107
+ * `transform` and means the opposite thing, so a test pins the two apart.
108
+ *
109
+ * A duck-typed probe throughout: an unrecognised validator returns `undefined`
110
+ * and the caller stays silent rather than guessing. Bounded depth, so a cyclic
111
+ * duck cannot hang us.
112
+ */
113
+ export declare function schemaFieldKeys(schema: unknown): readonly string[] | undefined;
114
+ /**
115
+ * Registration-time `fieldMeta` key check (#1253 follow-up, the "refuse as early
116
+ * as the information allows" pass).
117
+ *
118
+ * The same validation `buildDescription` runs, hoisted to collection
119
+ * construction so a typo is refused when it is DECLARED rather than when
120
+ * someone happens to call `describe()`. A collection nobody describes was
121
+ * previously never checked at all — and `fieldMeta` is what carries
122
+ * `sensitivity`, so the un-checked case was the one with a data-classification
123
+ * inventory hanging off it.
124
+ *
125
+ * Deliberately NOT a replacement for the check inside `buildDescription`. There
126
+ * are three tiers of knowability, not two:
127
+ *
128
+ * always — a name declared in the config itself (see the virtual-field
129
+ * refusal in the derivation registry: "declared and never
130
+ * stored" needs no schema at all)
131
+ * at reg. — a validator whose `.shape` is readable synchronously: THIS
132
+ * at describe — a validator whose fields only exist after async JSON-Schema
133
+ * derivation (Zod 3 + `zod-to-json-schema`)
134
+ *
135
+ * The third tier is why `buildDescription` keeps its own call. Hoisting alone
136
+ * would move the check earlier for some collections and REMOVE it for others.
137
+ *
138
+ * Silent when the field set cannot be enumerated, exactly as the describe-time
139
+ * check is: a TS-generic collection names real fields that appear in no runtime
140
+ * config, and rejecting those teaches people to stop declaring `fieldMeta`.
141
+ */
142
+ export declare function validateFieldMetaAtRegistration(input: {
143
+ readonly collection: string;
144
+ readonly schema?: unknown;
145
+ readonly fieldMeta?: Record<string, unknown> | undefined;
146
+ readonly configKeys: readonly string[];
147
+ }): void;
@@ -0,0 +1,27 @@
1
+ import {
2
+ FROZEN_SNAPSHOTS_COLLECTION,
3
+ freezeAndDeleteClosure,
4
+ freezeSnapshotOnly,
5
+ randomId,
6
+ withdrawAccessibleData
7
+ } from "./chunk-BSFNRLK2.js";
8
+ import "./chunk-L7CIOOBW.js";
9
+ import "./chunk-5WDXHNSW.js";
10
+ import "./chunk-EQEYOJBM.js";
11
+ import "./chunk-77K4PG6P.js";
12
+ import "./chunk-SZJ3DLZA.js";
13
+ import "./chunk-BOWNCWZT.js";
14
+ import "./chunk-YSRUYAVU.js";
15
+ import "./chunk-RMF67KCG.js";
16
+ import "./chunk-LP7BEXCT.js";
17
+ import "./chunk-SL3JAAKN.js";
18
+ import "./chunk-7MG7SJT7.js";
19
+ import "./chunk-7O3Y4PPD.js";
20
+ export {
21
+ FROZEN_SNAPSHOTS_COLLECTION,
22
+ freezeAndDeleteClosure,
23
+ freezeSnapshotOnly,
24
+ randomId,
25
+ withdrawAccessibleData
26
+ };
27
+ //# sourceMappingURL=withdraw-accessible-EL5GXZBS.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noy-db/hub",
3
- "version": "0.7.0-pre.9",
3
+ "version": "0.7.0",
4
4
  "description": "Zero-knowledge, offline-first, encrypted document store — core library with AES-256-GCM, PBKDF2, multi-user keyring, and sync engine",
5
5
  "license": "MIT",
6
6
  "author": "vLannaAi <vicio@lanna.ai>",
@@ -233,19 +233,24 @@
233
233
  "node": ">=22.0.0"
234
234
  },
235
235
  "dependencies": {
236
- "@noy-db/attestation": "0.7.0-pre.9"
236
+ "@noy-db/attestation": "0.7.0"
237
237
  },
238
238
  "devDependencies": {
239
239
  "@types/node": "^22.0.0",
240
240
  "esbuild": "^0.25.0",
241
+ "happy-dom": "^18.0.0",
241
242
  "zod": "^4.0.0",
242
243
  "zod-to-json-schema": "^3.25.2",
243
- "@noy-db/on-shamir": "0.7.0-pre.9"
244
+ "@noy-db/on-shamir": "0.7.0"
244
245
  },
245
246
  "peerDependencies": {
247
+ "zod": "^3.0.0 || ^4.0.0",
246
248
  "zod-to-json-schema": "^3.25.0"
247
249
  },
248
250
  "peerDependenciesMeta": {
251
+ "zod": {
252
+ "optional": true
253
+ },
249
254
  "zod-to-json-schema": {
250
255
  "optional": true
251
256
  }
@@ -1,20 +0,0 @@
1
- import {
2
- UserApi,
3
- createUserApi
4
- } from "./chunk-357ECVLE.js";
5
- import "./chunk-MV2OEK3K.js";
6
- import "./chunk-DOPZWTMJ.js";
7
- import "./chunk-4RUFYGWG.js";
8
- import "./chunk-XGXVPCYW.js";
9
- import "./chunk-CWFH36SI.js";
10
- import "./chunk-KZTPL7NL.js";
11
- import "./chunk-LP7BEXCT.js";
12
- import "./chunk-USKHHOIV.js";
13
- import "./chunk-N4CHCXDL.js";
14
- import "./chunk-SW4TOSJL.js";
15
- import "./chunk-PZ5AY32C.js";
16
- export {
17
- UserApi,
18
- createUserApi
19
- };
20
- //# sourceMappingURL=api-GJQF7OAJ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/with-formula/derivations/with-derivation.ts","../src/with-formula/derivations/with-rollup.ts"],"sourcesContent":["import { ValidationError } from '../../kernel/errors.js'\nimport type { DerivationSpec, DerivationStrategy } from './types.js'\n\n/**\n * Register a deterministic derivation: one source collection → one or\n * more typed outputs, computed by the user's `derive` function on\n * plaintext after DEK unwrap. Outputs are encrypted with the same DEK\n * as the source and written via the standard `Collection.put` path.\n *\n * See design-history/2026-05-01-dim14-derivation-v1-design.md.\n */\nexport function withDerivation<\n TSource extends Record<string, unknown>,\n TOutputs extends Record<string, Record<string, unknown> | ReadonlyArray<Record<string, unknown>>>,\n>(spec: DerivationSpec<TSource, TOutputs>): DerivationStrategy {\n if (!spec.source || spec.source.length === 0) {\n throw new ValidationError('withDerivation: source collection name is required')\n }\n if (!spec.outputs || Object.keys(spec.outputs).length === 0) {\n throw new ValidationError('withDerivation: outputs map must declare at least one output')\n }\n if (spec.deterministic !== true) {\n throw new ValidationError('withDerivation: v1 only supports deterministic derivations')\n }\n if (typeof spec.derive !== 'function') {\n throw new ValidationError('withDerivation: derive must be a function')\n }\n\n // Validate declared sibling sources. Each must be a non-empty\n // string and must differ from the primary source — a self-reference\n // would double-register the strategy under the same `_bySource` key.\n if (spec.sources !== undefined) {\n for (const extra of spec.sources) {\n if (typeof extra !== 'string' || extra.length === 0) {\n throw new ValidationError('withDerivation: each entry in sources[] must be a non-empty string')\n }\n if (extra === spec.source) {\n throw new ValidationError(\n `withDerivation: sources[] must not contain the primary source \"${spec.source}\"`,\n )\n }\n }\n }\n\n // Validate FK triggers. Each `collection` must be a non-empty\n // string differing from the primary source, and `on` a non-empty field.\n if (spec.triggerBy !== undefined) {\n for (const t of spec.triggerBy) {\n if (typeof t?.collection !== 'string' || t.collection.length === 0) {\n throw new ValidationError('withDerivation: each triggerBy entry needs a non-empty `collection`')\n }\n if (t.collection === spec.source) {\n throw new ValidationError(\n `withDerivation: triggerBy.collection must not equal the source \"${spec.source}\" (use sources[] for same-id triggers)`,\n )\n }\n if (typeof t.on !== 'string' || t.on.length === 0) {\n throw new ValidationError(\n `withDerivation: triggerBy on \"${t.collection}\" needs a non-empty \\`on\\` (the FK field on the source)`,\n )\n }\n if (t.maxFanout !== undefined && (!Number.isInteger(t.maxFanout) || t.maxFanout < 1)) {\n throw new ValidationError(\n `withDerivation: triggerBy maxFanout on \"${t.collection}\" must be a positive integer (got ${String(t.maxFanout)}).`,\n )\n }\n }\n }\n\n // Validate array-shape outputs.\n const lifecycleMode = typeof spec.lifecycle === 'string' ? spec.lifecycle : spec.lifecycle.mode\n for (const [outputKey, outputSpec] of Object.entries(spec.outputs)) {\n // Self-write output (collection === source): reverse-denorm must declare\n // `denorm` (the fields it owns) — field-level provenance.\n if (outputSpec.shape === 'record' && outputSpec.collection === spec.source) {\n if (!outputSpec.denorm || outputSpec.denorm.length === 0) {\n throw new ValidationError(\n `withDerivation: self-write output \"${outputKey}\" (collection === source \"${spec.source}\") `\n + 'must declare `denorm: [...]` naming the fields it maintains.',\n )\n }\n }\n if (outputSpec.shape === 'array') {\n if (lifecycleMode !== 'eager') {\n throw new ValidationError(\n `withDerivation: shape 'array' supports lifecycle 'eager' only in this release `\n + `Output \"${outputKey}\" declared lifecycle '${lifecycleMode}'. `\n + 'Switch to `lifecycle: \"eager\"` or use shape: \"record\".',\n )\n }\n if (typeof outputSpec.key !== 'function') {\n throw new ValidationError(\n `withDerivation: shape 'array' output \"${outputKey}\" requires \\`key: (out) => string\\`.`,\n )\n }\n if (outputSpec.maxFanout !== undefined) {\n if (!Number.isInteger(outputSpec.maxFanout) || outputSpec.maxFanout < 1) {\n throw new ValidationError(\n `withDerivation: maxFanout for output \"${outputKey}\" must be a positive integer `\n + `(got ${String(outputSpec.maxFanout)}).`,\n )\n }\n }\n }\n }\n\n return {\n __noydb_strategy: 'derivation',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n spec: spec as DerivationSpec<any, any>,\n }\n}\n","import { ValidationError } from '../../kernel/errors.js'\nimport type { DerivationSpec, DerivationStrategy } from './types.js'\n\n/** Options for {@link withRollup} (#844b — was an inline literal, so unnameable). */\nexport interface WithRollupOptions<\n TChild extends Record<string, unknown> = Record<string, unknown>,\n TParent extends Record<string, unknown> = Record<string, unknown>,\n> {\n /** Child collection — the trigger. */\n readonly from: string\n /** FK field on the child pointing at the parent id. */\n readonly key: keyof TChild & string\n /** Parent collection carrying the maintained summary. */\n readonly into: string\n /** Field on the parent to maintain. */\n readonly field: keyof TParent & string\n /** Reduces the matching children to the value written at `field`. */\n readonly compute: (children: TChild[]) => unknown\n}\n\n/**\n * `withRollup` — aggregate many child records onto a single field of their\n * parent. The reverse of a join: instead of reading children\n * on demand, the parent carries a maintained summary.\n *\n * ```ts\n * withRollup<Sale, Buyer>({\n * from: 'sales', // child collection (the trigger)\n * key: 'buyerId', // FK on the child → parent id\n * into: 'buyers', // parent collection\n * field: 'revenueByYear', // field on the parent to maintain\n * compute: (sales) => groupSumByYear(sales, 'total'),\n * })\n * ```\n *\n * On every write OR delete of a `from` record, the parent at id `child[key]`\n * is recomputed: `compute(allChildren where child[key] === parentId)` is\n * patched onto `parent[field]`. A parent write also recomputes its own\n * aggregate (so a parent created after its children still fills in). Only the\n * `field` is touched — the rest of the parent record is never clobbered — and\n * a value-equality guard suppresses no-op writes. The aggregate is gap-free\n * with respect to child inserts, updates, and deletes.\n *\n * Desugars to a `withDerivation` strategy carrying a `rollup` marker; dispatch\n * handles it without invoking the executor. Eager-only in this slice.\n */\nexport function withRollup<\n TChild extends Record<string, unknown> = Record<string, unknown>,\n TParent extends Record<string, unknown> = Record<string, unknown>,\n>(opts: WithRollupOptions<TChild, TParent>): DerivationStrategy {\n const { from, key, into, field, compute } = opts\n if (!from || from.length === 0) {\n throw new ValidationError('withRollup: `from` (child collection) is required')\n }\n if (!into || into.length === 0) {\n throw new ValidationError('withRollup: `into` (parent collection) is required')\n }\n if (from === into) {\n throw new ValidationError('withRollup: `from` and `into` must be different collections')\n }\n if (!key || key.length === 0) {\n throw new ValidationError('withRollup: `key` (FK field on the child) is required')\n }\n if (!field || field.length === 0) {\n throw new ValidationError('withRollup: `field` (target field on the parent) is required')\n }\n if (typeof compute !== 'function') {\n throw new ValidationError('withRollup: `compute` must be a function')\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const spec: DerivationSpec<any, any> = {\n source: into, // the parent record is what carries the rolled-up field\n deterministic: true,\n rollup: { from, key, field, compute: compute as (children: unknown[]) => unknown },\n // Synthetic self-write output for registry / cycle bookkeeping. Dispatch\n // patches `field` directly (value-equality guarded); the executor is not run.\n outputs: { value: { shape: 'record', collection: into, denorm: [field] } },\n derive: () => ({ value: {} }), // never invoked for a rollup strategy\n lifecycle: 'eager',\n }\n\n return { __noydb_strategy: 'derivation', spec }\n}\n"],"mappings":"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","names":[]}