@noy-db/hub 0.3.0-pre.1 → 0.3.0-pre.3
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.
- package/dist/adapter/index.d.ts +2 -2
- package/dist/adapter/index.js +1 -1
- package/dist/aggregate/index.d.ts +3 -3
- package/dist/aggregate/index.js +4 -4
- package/dist/api-LORZ2EZU.js +17 -0
- package/dist/as/index.d.ts +4 -4
- package/dist/as/index.js +9 -6
- package/dist/at/index.d.ts +2 -2
- package/dist/attestation/index.d.ts +3 -3
- package/dist/attestation/index.js +18 -15
- package/dist/attestation/index.js.map +1 -1
- package/dist/{backup-XV3IOEGB.js → backup-NGRJ46SH.js} +11 -6
- package/dist/backup-NGRJ46SH.js.map +1 -0
- package/dist/blobs/index.d.ts +4 -4
- package/dist/blobs/index.js +8 -5
- package/dist/blobs/index.js.map +1 -1
- package/dist/bundle/index.d.ts +5 -5
- package/dist/bundle/index.js +18 -15
- package/dist/bundle/index.js.map +1 -1
- package/dist/{bundle-CH-H06dp.d.ts → bundle-B-P3_Jvb.d.ts} +1 -1
- package/dist/by/index.js +2 -2
- package/dist/cargo/index.d.ts +4 -4
- package/dist/cargo/index.js +20 -17
- package/dist/{chunk-Y22T3KQE.js → chunk-2KSPDSWI.js} +3 -3
- package/dist/{chunk-ITNUCOXM.js → chunk-2N4MUSF3.js} +7 -5
- package/dist/{chunk-ITNUCOXM.js.map → chunk-2N4MUSF3.js.map} +1 -1
- package/dist/{chunk-5N6CZTCY.js → chunk-2ZORB5RW.js} +3 -3
- package/dist/{chunk-FISN7WE4.js → chunk-3UDPDRUC.js} +4 -4
- package/dist/{chunk-TA66UMI4.js → chunk-46YGCU6Z.js} +2 -2
- package/dist/{chunk-IPB7FTQX.js → chunk-4DZGZ7II.js} +8 -6
- package/dist/{chunk-IPB7FTQX.js.map → chunk-4DZGZ7II.js.map} +1 -1
- package/dist/{chunk-SKF73JOP.js → chunk-4NMFWOS2.js} +3 -3
- package/dist/{chunk-IAGBDSCS.js → chunk-4NZCZUGL.js} +2 -2
- package/dist/{chunk-DFEMTNPJ.js → chunk-55HDKLI3.js} +8 -6
- package/dist/{chunk-DFEMTNPJ.js.map → chunk-55HDKLI3.js.map} +1 -1
- package/dist/{chunk-WWGT2MDV.js → chunk-5A6TC3RQ.js} +5 -5
- package/dist/{chunk-5O3AOPDT.js → chunk-5EZAJEES.js} +151 -432
- package/dist/chunk-5EZAJEES.js.map +1 -0
- package/dist/{chunk-62QYRORB.js → chunk-5Z3RNFJC.js} +3 -3
- package/dist/{chunk-M6OST55S.js → chunk-5ZPWVNL3.js} +2 -2
- package/dist/{chunk-PSMV73A5.js → chunk-6CNLU4TO.js} +5 -5
- package/dist/{chunk-2P2HZEXU.js → chunk-6DP5HBQD.js} +11 -9
- package/dist/{chunk-2P2HZEXU.js.map → chunk-6DP5HBQD.js.map} +1 -1
- package/dist/{chunk-AIWULCUO.js → chunk-6EVZXETK.js} +5 -3
- package/dist/{chunk-AIWULCUO.js.map → chunk-6EVZXETK.js.map} +1 -1
- package/dist/{chunk-GYGWYIOZ.js → chunk-6I2YPLAG.js} +7 -5
- package/dist/{chunk-GYGWYIOZ.js.map → chunk-6I2YPLAG.js.map} +1 -1
- package/dist/{chunk-SRB2XEWB.js → chunk-6OQ7NKMZ.js} +6 -4
- package/dist/{chunk-SRB2XEWB.js.map → chunk-6OQ7NKMZ.js.map} +1 -1
- package/dist/chunk-6RASM2J4.js +25 -0
- package/dist/chunk-6RASM2J4.js.map +1 -0
- package/dist/{chunk-5LUY7UTV.js → chunk-7IP75FP2.js} +2 -2
- package/dist/{chunk-HCIPRAGS.js → chunk-7MHVHGQZ.js} +2 -2
- package/dist/{chunk-5R5JW2JT.js → chunk-ADBMJDBW.js} +380 -85
- package/dist/chunk-ADBMJDBW.js.map +1 -0
- package/dist/{chunk-ZCGAHGUS.js → chunk-AY4P6PHN.js} +2 -2
- package/dist/{chunk-ZYUC53LT.js → chunk-BLZRNHMG.js} +51 -2
- package/dist/{chunk-ZYUC53LT.js.map → chunk-BLZRNHMG.js.map} +1 -1
- package/dist/{chunk-KXGNJJXB.js → chunk-BV7KNFJY.js} +7 -7
- package/dist/{chunk-BG3SPSR4.js → chunk-BYW7EU5L.js} +2 -2
- package/dist/{chunk-NF5JWERG.js → chunk-BZIWKN74.js} +2 -2
- package/dist/chunk-CPAROOKP.js +124 -0
- package/dist/chunk-CPAROOKP.js.map +1 -0
- package/dist/{chunk-AQTBSL7R.js → chunk-CVXLJIAV.js} +5 -5
- package/dist/{chunk-CWPPNPOH.js → chunk-DA34OEZU.js} +2 -2
- package/dist/{chunk-RUEKROOS.js → chunk-DGUR3CC4.js} +2 -2
- package/dist/{chunk-LXQT4WMP.js → chunk-DHIN36UC.js} +8 -6
- package/dist/{chunk-LXQT4WMP.js.map → chunk-DHIN36UC.js.map} +1 -1
- package/dist/{chunk-JNUWZ6D3.js → chunk-E4YJUNPU.js} +7 -5
- package/dist/{chunk-JNUWZ6D3.js.map → chunk-E4YJUNPU.js.map} +1 -1
- package/dist/{chunk-UV5MFVO3.js → chunk-FELHYKIO.js} +2 -2
- package/dist/{chunk-KVOXU4T5.js → chunk-HGQG3VIP.js} +2 -2
- package/dist/{chunk-XXYIOFUB.js → chunk-IIK7W3AN.js} +5 -5
- package/dist/{chunk-IGUYVGGI.js → chunk-IJW6K6UX.js} +3 -3
- package/dist/{chunk-76722EBH.js → chunk-IWVWB7BZ.js} +11 -9
- package/dist/{chunk-76722EBH.js.map → chunk-IWVWB7BZ.js.map} +1 -1
- package/dist/{chunk-QHJW5EXU.js → chunk-JFYIHLU3.js} +2 -2
- package/dist/chunk-L4IRFTIF.js +424 -0
- package/dist/chunk-L4IRFTIF.js.map +1 -0
- package/dist/{chunk-SM3AVUHC.js → chunk-LES2Z7B4.js} +2 -2
- package/dist/{chunk-IUEN57TV.js → chunk-LHYQE3BP.js} +4 -4
- package/dist/{chunk-V7RWQRG7.js → chunk-LKBLAUOB.js} +3 -3
- package/dist/{chunk-UDRIWL7A.js → chunk-MCJAUQGE.js} +3 -3
- package/dist/chunk-MIOLJG2R.js +105 -0
- package/dist/chunk-MIOLJG2R.js.map +1 -0
- package/dist/{chunk-UIU2THRG.js → chunk-N2FP26NH.js} +5 -5
- package/dist/{chunk-DGDI2D4M.js → chunk-NIA5VQ7G.js} +8 -6
- package/dist/{chunk-DGDI2D4M.js.map → chunk-NIA5VQ7G.js.map} +1 -1
- package/dist/{chunk-CMGR4ZEW.js → chunk-NMRKAGHE.js} +2 -2
- package/dist/{chunk-LV7M27WM.js → chunk-NPVICKZE.js} +4 -4
- package/dist/chunk-NTHKOFVL.js +195 -0
- package/dist/chunk-NTHKOFVL.js.map +1 -0
- package/dist/{chunk-IO6GRPT6.js → chunk-O5DNEXQC.js} +2 -2
- package/dist/{chunk-5TDJ56JE.js → chunk-OCDUQUAP.js} +1 -1
- package/dist/chunk-OCDUQUAP.js.map +1 -0
- package/dist/{chunk-UPJNJGGA.js → chunk-OVIVYAQL.js} +10 -8
- package/dist/{chunk-UPJNJGGA.js.map → chunk-OVIVYAQL.js.map} +1 -1
- package/dist/{chunk-I2NOIW44.js → chunk-P6DN5QU7.js} +8 -6
- package/dist/{chunk-I2NOIW44.js.map → chunk-P6DN5QU7.js.map} +1 -1
- package/dist/{chunk-Q7SS3IME.js → chunk-P6UXDALK.js} +3 -3
- package/dist/{chunk-UAG5KWVA.js → chunk-PJDK2PPQ.js} +3 -3
- package/dist/{chunk-AXRXJTE2.js → chunk-PUNJAEY6.js} +5 -5
- package/dist/{chunk-LFLXAY2W.js → chunk-PYWW4KLO.js} +9 -7
- package/dist/{chunk-LFLXAY2W.js.map → chunk-PYWW4KLO.js.map} +1 -1
- package/dist/{chunk-M2YKN37S.js → chunk-QLQS5A7X.js} +2 -2
- package/dist/{chunk-I3TIKTJO.js → chunk-TICO2I2O.js} +2 -2
- package/dist/{chunk-3YFXJ3ZP.js → chunk-U5DWHU3S.js} +2 -2
- package/dist/{chunk-26LGBE4T.js → chunk-U6OM4E67.js} +6 -4
- package/dist/{chunk-26LGBE4T.js.map → chunk-U6OM4E67.js.map} +1 -1
- package/dist/{chunk-TEILUWOI.js → chunk-UP6EMMDI.js} +10 -10
- package/dist/{chunk-SMXWYP24.js → chunk-VBYVKOMJ.js} +3 -3
- package/dist/{chunk-AZAOEIKW.js → chunk-VHEEU4ZO.js} +2 -2
- package/dist/{chunk-MD3Y6J3L.js → chunk-WVIIJPTJ.js} +7 -5
- package/dist/{chunk-MD3Y6J3L.js.map → chunk-WVIIJPTJ.js.map} +1 -1
- package/dist/{chunk-EIZUR2XW.js → chunk-XRE4JOEO.js} +2 -2
- package/dist/{chunk-VFQGRQIH.js → chunk-YDP2SA5K.js} +7 -5
- package/dist/{chunk-VFQGRQIH.js.map → chunk-YDP2SA5K.js.map} +1 -1
- package/dist/{chunk-5R3ERCDH.js → chunk-YN66UOXT.js} +3 -3
- package/dist/{chunk-IELYAOGG.js → chunk-YTIAXSUE.js} +4 -4
- package/dist/{chunk-TJYQIGAP.js → chunk-Z44OY24N.js} +3 -3
- package/dist/{chunk-VCTFO5CO.js → chunk-ZAWD6O46.js} +2 -2
- package/dist/{chunk-PKHL44ER.js → chunk-ZD4D7UM6.js} +2 -2
- package/dist/{chunk-MTMJVJ5W.js → chunk-ZFME46HJ.js} +5 -3
- package/dist/chunk-ZFME46HJ.js.map +1 -0
- package/dist/{chunk-LMTH2RM6.js → chunk-ZNI3RTFV.js} +2 -2
- package/dist/{chunk-WYSO2NIH.js → chunk-ZRDYQZYH.js} +2 -2
- package/dist/classified/index.d.ts +17 -0
- package/dist/classified/index.js +38 -0
- package/dist/collection-facade-XPVRHBGU.js +36 -0
- package/dist/consent/index.d.ts +3 -3
- package/dist/consent/index.js +7 -4
- package/dist/consent/index.js.map +1 -1
- package/dist/crdt/index.d.ts +3 -3
- package/dist/delegation-4HUHUE6T.js +22 -0
- package/dist/derivations/index.d.ts +4 -4
- package/dist/derivations/index.js +9 -6
- package/dist/describe/index.d.ts +1 -1
- package/dist/{describe-aBkJR2sd.d.ts → describe-0tiXAjoO.d.ts} +22 -0
- package/dist/{dev-unlock-C9Ro3v_O.d.ts → dev-unlock-B_s9DUWa.d.ts} +1 -1
- package/dist/{enclave-UL5LW66V.js → enclave-IS7HZSQ7.js} +34 -18
- package/dist/executor-ANFBCOYA.js +9 -0
- package/dist/executor-IKT47SH2.js +9 -0
- package/dist/executor-OIECZXTV.js +18 -0
- package/dist/export-accessible-NZWCFZHL.js +20 -0
- package/dist/extract-partition-52LX6RQH.js +33 -0
- package/dist/{fanout-sidecar-GF3DJ6KR.js → fanout-sidecar-DDKRG2MX.js} +14 -14
- package/dist/fanout-sidecar-DDKRG2MX.js.map +1 -0
- package/dist/forget/index.js +7 -4
- package/dist/forget/index.js.map +1 -1
- package/dist/guards/index.d.ts +4 -4
- package/dist/guards/index.js +3 -3
- package/dist/{hash-Cp5uwiox.d.ts → hash-CWxn7sf6.d.ts} +7 -2
- package/dist/history/index.d.ts +4 -4
- package/dist/history/index.js +9 -6
- package/dist/history/index.js.map +1 -1
- package/dist/i18n/index.d.ts +3 -3
- package/dist/i18n/index.js +11 -8
- package/dist/i18n/index.js.map +1 -1
- package/dist/in/index.d.ts +2 -2
- package/dist/{index-BzUo1B6n.d.ts → index-D05bV0_g.d.ts} +245 -5
- package/dist/{index-BF9_96A5.d.ts → index-DTMUUwwW.d.ts} +3 -3
- package/dist/index.d.ts +30 -14
- package/dist/index.js +136 -75
- package/dist/index.js.map +1 -1
- package/dist/indexing/index.d.ts +3 -3
- package/dist/indexing/index.js +4 -4
- package/dist/issue-F4SYPJGJ.js +16 -0
- package/dist/kernel/index.d.ts +3 -3
- package/dist/kernel/index.js +10 -7
- package/dist/{ledger-RYI35CDS.js → ledger-YUAJUNFP.js} +9 -6
- package/dist/liberate-6LDETRIW.js +21 -0
- package/dist/materialized-views/index.d.ts +4 -4
- package/dist/materialized-views/index.js +13 -10
- package/dist/{mime-magic-CGhw37_E.d.ts → mime-magic-Qr_4HjP6.d.ts} +1 -1
- package/dist/noydb-WQNBVJIG.js +54 -0
- package/dist/on/index.d.ts +2 -2
- package/dist/on/index.js +7 -4
- package/dist/overlay-views/index.d.ts +4 -4
- package/dist/overlay-views/index.js +4 -4
- package/dist/periods/index.d.ts +3 -3
- package/dist/periods/index.js +10 -7
- package/dist/pod/index.d.ts +3 -3
- package/dist/pod/index.js +9 -6
- package/dist/{policy-IXK4FVXP.js → policy-LRE6HTO5.js} +5 -5
- package/dist/portability/index.d.ts +3 -3
- package/dist/portability/index.js +8 -8
- package/dist/{public-envelope-JHDQCPSX.js → public-envelope-WVRRUVAJ.js} +4 -4
- package/dist/query/index.d.ts +2 -2
- package/dist/query/index.js +6 -6
- package/dist/registry-6HZ2JSQ7.js +14 -0
- package/dist/registry-GPXZQ7DT.js +9 -0
- package/dist/registry-USYD2ECC.js +16 -0
- package/dist/request-withdrawal-54V4L6CR.js +28 -0
- package/dist/reveal-WSUHXCSS.js +37 -0
- package/dist/reveal-WSUHXCSS.js.map +1 -0
- package/dist/revoke-JV26NTQD.js +21 -0
- package/dist/sealed-record/index.d.ts +3 -3
- package/dist/sealed-record/index.js +10 -7
- package/dist/sealed-record/index.js.map +1 -1
- package/dist/session/index.d.ts +4 -4
- package/dist/session/index.js +7 -4
- package/dist/session/index.js.map +1 -1
- package/dist/shadow/index.d.ts +3 -3
- package/dist/shadow/index.js +2 -2
- package/dist/{signer-PNKTBVF7.js → signer-AE56T5HE.js} +8 -5
- package/dist/snapshots/index.d.ts +3 -3
- package/dist/snapshots/index.js +8 -5
- package/dist/snapshots/index.js.map +1 -1
- package/dist/{stale-3JWHNDIY.js → stale-LX4BR43V.js} +2 -2
- package/dist/{store-coordination-provider-3I7XWZZK.js → store-coordination-provider-KTRIC6PR.js} +3 -3
- package/dist/sync/index.d.ts +2 -2
- package/dist/sync/index.js +7 -4
- package/dist/sync/index.js.map +1 -1
- package/dist/team/index.d.ts +3 -3
- package/dist/team/index.js +13 -10
- package/dist/tiers/index.d.ts +2 -2
- package/dist/tiers/index.js +8 -5
- package/dist/to/index.d.ts +2 -2
- package/dist/to/index.js +1 -1
- package/dist/{transition-guard-C7ol6oPw.d.ts → transition-guard-C1Pyz8nH.d.ts} +1 -1
- package/dist/tx/index.d.ts +3 -3
- package/dist/tx/index.js +3 -3
- package/dist/ui/index.d.ts +1 -1
- package/dist/util/index.js +1 -1
- package/dist/validators-Dzn7T-3x.d.ts +62 -0
- package/dist/{vault-diff-B5fYNBL7.d.ts → vault-diff-Fn0WeY2w.d.ts} +1 -1
- package/dist/verify-SW6J63Q2.js +135 -0
- package/dist/verify-SW6J63Q2.js.map +1 -0
- package/dist/with/index.d.ts +3 -3
- package/dist/with/index.js +9 -6
- package/dist/{with-materialized-view-6p0Fk8bL.d.ts → with-materialized-view-NKxs6iK5.d.ts} +1 -1
- package/dist/{with-overlayed-view-BJ6mXGMd.d.ts → with-overlayed-view-B4fPYHwV.d.ts} +1 -1
- package/dist/{with-rollup-BvQo3ROo.d.ts → with-rollup-Bl0sRFEt.d.ts} +1 -1
- package/dist/withdraw-accessible-DGA4V2TP.js +25 -0
- package/dist/withdraw-accessible-DGA4V2TP.js.map +1 -0
- package/package.json +7 -3
- package/dist/api-RW3KP7WU.js +0 -14
- package/dist/backup-XV3IOEGB.js.map +0 -1
- package/dist/chunk-5O3AOPDT.js.map +0 -1
- package/dist/chunk-5R5JW2JT.js.map +0 -1
- package/dist/chunk-5TDJ56JE.js.map +0 -1
- package/dist/chunk-MTMJVJ5W.js.map +0 -1
- package/dist/collection-facade-GQAOGJP2.js +0 -33
- package/dist/delegation-UL5HKLER.js +0 -19
- package/dist/executor-2FWQRLMG.js +0 -15
- package/dist/executor-QZ7BXICW.js +0 -9
- package/dist/executor-Z5ZLJVTV.js +0 -9
- package/dist/export-accessible-KRV5W4GH.js +0 -17
- package/dist/extract-partition-GLKBOXFQ.js +0 -30
- package/dist/fanout-sidecar-GF3DJ6KR.js.map +0 -1
- package/dist/issue-Y6UVIR43.js +0 -13
- package/dist/liberate-CRPZEV7O.js +0 -18
- package/dist/noydb-367AM4HT.js +0 -50
- package/dist/registry-45RJNWGU.js +0 -9
- package/dist/registry-5GRV5VXI.js +0 -13
- package/dist/registry-WEUCHBO4.js +0 -11
- package/dist/request-withdrawal-GBPH2FDY.js +0 -25
- package/dist/revoke-TUFRGI6S.js +0 -18
- package/dist/withdraw-accessible-FFS46EOD.js +0 -22
- /package/dist/{api-RW3KP7WU.js.map → api-LORZ2EZU.js.map} +0 -0
- /package/dist/{chunk-Y22T3KQE.js.map → chunk-2KSPDSWI.js.map} +0 -0
- /package/dist/{chunk-5N6CZTCY.js.map → chunk-2ZORB5RW.js.map} +0 -0
- /package/dist/{chunk-FISN7WE4.js.map → chunk-3UDPDRUC.js.map} +0 -0
- /package/dist/{chunk-TA66UMI4.js.map → chunk-46YGCU6Z.js.map} +0 -0
- /package/dist/{chunk-SKF73JOP.js.map → chunk-4NMFWOS2.js.map} +0 -0
- /package/dist/{chunk-IAGBDSCS.js.map → chunk-4NZCZUGL.js.map} +0 -0
- /package/dist/{chunk-WWGT2MDV.js.map → chunk-5A6TC3RQ.js.map} +0 -0
- /package/dist/{chunk-62QYRORB.js.map → chunk-5Z3RNFJC.js.map} +0 -0
- /package/dist/{chunk-M6OST55S.js.map → chunk-5ZPWVNL3.js.map} +0 -0
- /package/dist/{chunk-PSMV73A5.js.map → chunk-6CNLU4TO.js.map} +0 -0
- /package/dist/{chunk-5LUY7UTV.js.map → chunk-7IP75FP2.js.map} +0 -0
- /package/dist/{chunk-HCIPRAGS.js.map → chunk-7MHVHGQZ.js.map} +0 -0
- /package/dist/{chunk-ZCGAHGUS.js.map → chunk-AY4P6PHN.js.map} +0 -0
- /package/dist/{chunk-KXGNJJXB.js.map → chunk-BV7KNFJY.js.map} +0 -0
- /package/dist/{chunk-BG3SPSR4.js.map → chunk-BYW7EU5L.js.map} +0 -0
- /package/dist/{chunk-NF5JWERG.js.map → chunk-BZIWKN74.js.map} +0 -0
- /package/dist/{chunk-AQTBSL7R.js.map → chunk-CVXLJIAV.js.map} +0 -0
- /package/dist/{chunk-CWPPNPOH.js.map → chunk-DA34OEZU.js.map} +0 -0
- /package/dist/{chunk-RUEKROOS.js.map → chunk-DGUR3CC4.js.map} +0 -0
- /package/dist/{chunk-UV5MFVO3.js.map → chunk-FELHYKIO.js.map} +0 -0
- /package/dist/{chunk-KVOXU4T5.js.map → chunk-HGQG3VIP.js.map} +0 -0
- /package/dist/{chunk-XXYIOFUB.js.map → chunk-IIK7W3AN.js.map} +0 -0
- /package/dist/{chunk-IGUYVGGI.js.map → chunk-IJW6K6UX.js.map} +0 -0
- /package/dist/{chunk-QHJW5EXU.js.map → chunk-JFYIHLU3.js.map} +0 -0
- /package/dist/{chunk-SM3AVUHC.js.map → chunk-LES2Z7B4.js.map} +0 -0
- /package/dist/{chunk-IUEN57TV.js.map → chunk-LHYQE3BP.js.map} +0 -0
- /package/dist/{chunk-V7RWQRG7.js.map → chunk-LKBLAUOB.js.map} +0 -0
- /package/dist/{chunk-UDRIWL7A.js.map → chunk-MCJAUQGE.js.map} +0 -0
- /package/dist/{chunk-UIU2THRG.js.map → chunk-N2FP26NH.js.map} +0 -0
- /package/dist/{chunk-CMGR4ZEW.js.map → chunk-NMRKAGHE.js.map} +0 -0
- /package/dist/{chunk-LV7M27WM.js.map → chunk-NPVICKZE.js.map} +0 -0
- /package/dist/{chunk-IO6GRPT6.js.map → chunk-O5DNEXQC.js.map} +0 -0
- /package/dist/{chunk-Q7SS3IME.js.map → chunk-P6UXDALK.js.map} +0 -0
- /package/dist/{chunk-UAG5KWVA.js.map → chunk-PJDK2PPQ.js.map} +0 -0
- /package/dist/{chunk-AXRXJTE2.js.map → chunk-PUNJAEY6.js.map} +0 -0
- /package/dist/{chunk-M2YKN37S.js.map → chunk-QLQS5A7X.js.map} +0 -0
- /package/dist/{chunk-I3TIKTJO.js.map → chunk-TICO2I2O.js.map} +0 -0
- /package/dist/{chunk-3YFXJ3ZP.js.map → chunk-U5DWHU3S.js.map} +0 -0
- /package/dist/{chunk-TEILUWOI.js.map → chunk-UP6EMMDI.js.map} +0 -0
- /package/dist/{chunk-SMXWYP24.js.map → chunk-VBYVKOMJ.js.map} +0 -0
- /package/dist/{chunk-AZAOEIKW.js.map → chunk-VHEEU4ZO.js.map} +0 -0
- /package/dist/{chunk-EIZUR2XW.js.map → chunk-XRE4JOEO.js.map} +0 -0
- /package/dist/{chunk-5R3ERCDH.js.map → chunk-YN66UOXT.js.map} +0 -0
- /package/dist/{chunk-IELYAOGG.js.map → chunk-YTIAXSUE.js.map} +0 -0
- /package/dist/{chunk-TJYQIGAP.js.map → chunk-Z44OY24N.js.map} +0 -0
- /package/dist/{chunk-VCTFO5CO.js.map → chunk-ZAWD6O46.js.map} +0 -0
- /package/dist/{chunk-PKHL44ER.js.map → chunk-ZD4D7UM6.js.map} +0 -0
- /package/dist/{chunk-LMTH2RM6.js.map → chunk-ZNI3RTFV.js.map} +0 -0
- /package/dist/{chunk-WYSO2NIH.js.map → chunk-ZRDYQZYH.js.map} +0 -0
- /package/dist/{collection-facade-GQAOGJP2.js.map → classified/index.js.map} +0 -0
- /package/dist/{delegation-UL5HKLER.js.map → collection-facade-XPVRHBGU.js.map} +0 -0
- /package/dist/{enclave-UL5LW66V.js.map → delegation-4HUHUE6T.js.map} +0 -0
- /package/dist/{executor-2FWQRLMG.js.map → enclave-IS7HZSQ7.js.map} +0 -0
- /package/dist/{executor-QZ7BXICW.js.map → executor-ANFBCOYA.js.map} +0 -0
- /package/dist/{executor-Z5ZLJVTV.js.map → executor-IKT47SH2.js.map} +0 -0
- /package/dist/{export-accessible-KRV5W4GH.js.map → executor-OIECZXTV.js.map} +0 -0
- /package/dist/{extract-partition-GLKBOXFQ.js.map → export-accessible-NZWCFZHL.js.map} +0 -0
- /package/dist/{issue-Y6UVIR43.js.map → extract-partition-52LX6RQH.js.map} +0 -0
- /package/dist/{ledger-RYI35CDS.js.map → issue-F4SYPJGJ.js.map} +0 -0
- /package/dist/{liberate-CRPZEV7O.js.map → ledger-YUAJUNFP.js.map} +0 -0
- /package/dist/{noydb-367AM4HT.js.map → liberate-6LDETRIW.js.map} +0 -0
- /package/dist/{policy-IXK4FVXP.js.map → noydb-WQNBVJIG.js.map} +0 -0
- /package/dist/{public-envelope-JHDQCPSX.js.map → policy-LRE6HTO5.js.map} +0 -0
- /package/dist/{registry-45RJNWGU.js.map → public-envelope-WVRRUVAJ.js.map} +0 -0
- /package/dist/{registry-5GRV5VXI.js.map → registry-6HZ2JSQ7.js.map} +0 -0
- /package/dist/{registry-WEUCHBO4.js.map → registry-GPXZQ7DT.js.map} +0 -0
- /package/dist/{request-withdrawal-GBPH2FDY.js.map → registry-USYD2ECC.js.map} +0 -0
- /package/dist/{revoke-TUFRGI6S.js.map → request-withdrawal-54V4L6CR.js.map} +0 -0
- /package/dist/{signer-PNKTBVF7.js.map → revoke-JV26NTQD.js.map} +0 -0
- /package/dist/{stale-3JWHNDIY.js.map → signer-AE56T5HE.js.map} +0 -0
- /package/dist/{withdraw-accessible-FFS46EOD.js.map → stale-LX4BR43V.js.map} +0 -0
- /package/dist/{store-coordination-provider-3I7XWZZK.js.map → store-coordination-provider-KTRIC6PR.js.map} +0 -0
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
2
|
loadVaultPolicy
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-LES2Z7B4.js";
|
|
4
4
|
import {
|
|
5
5
|
NO_SEQUENCE,
|
|
6
6
|
SEQUENCE_COLLECTION,
|
|
7
7
|
compileSequenceFormat,
|
|
8
8
|
resolveSequenceKey
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-6I2YPLAG.js";
|
|
10
10
|
import {
|
|
11
11
|
loadFence
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-4NZCZUGL.js";
|
|
13
13
|
import {
|
|
14
14
|
InvertedIndex,
|
|
15
15
|
MemoryIndexStore,
|
|
16
16
|
NO_SEARCH,
|
|
17
17
|
VectorSet,
|
|
18
18
|
buildPersistedIndexCallbacks
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-UP6EMMDI.js";
|
|
20
20
|
import {
|
|
21
21
|
ServiceBus,
|
|
22
22
|
WriteHookRegistry,
|
|
@@ -24,57 +24,62 @@ import {
|
|
|
24
24
|
assertCanImport,
|
|
25
25
|
canExport,
|
|
26
26
|
canImport
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-YN66UOXT.js";
|
|
28
28
|
import {
|
|
29
29
|
NO_ATTESTATION
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-ZRDYQZYH.js";
|
|
31
|
+
import {
|
|
32
|
+
NO_CLASSIFIED,
|
|
33
|
+
enforceClassifiedWrite,
|
|
34
|
+
resolveClassifiedFields
|
|
35
|
+
} from "./chunk-MIOLJG2R.js";
|
|
31
36
|
import {
|
|
32
37
|
NO_TIERS,
|
|
33
38
|
classifySealedShred
|
|
34
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-4DZGZ7II.js";
|
|
35
40
|
import {
|
|
36
41
|
NO_PORTABILITY
|
|
37
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-HGQG3VIP.js";
|
|
38
43
|
import {
|
|
39
44
|
CustodyApi,
|
|
40
45
|
NO_CARGO,
|
|
41
46
|
NO_CUSTODY
|
|
42
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-Z44OY24N.js";
|
|
43
48
|
import {
|
|
44
49
|
runDrainBarrier
|
|
45
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-JFYIHLU3.js";
|
|
46
51
|
import {
|
|
47
52
|
TxContext,
|
|
48
53
|
revertExecuted
|
|
49
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-4NMFWOS2.js";
|
|
50
55
|
import {
|
|
51
56
|
OverlayedCollection
|
|
52
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-NMRKAGHE.js";
|
|
53
58
|
import {
|
|
54
59
|
EXPORT_AUDIT_COLLECTION,
|
|
55
60
|
createExportBlobsHandle,
|
|
56
61
|
runCompaction
|
|
57
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-2KSPDSWI.js";
|
|
58
63
|
import {
|
|
59
64
|
LazyQuery,
|
|
60
65
|
decodeIdxId,
|
|
61
66
|
encodeIdxId
|
|
62
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-LKBLAUOB.js";
|
|
63
68
|
import {
|
|
64
69
|
loadPersistedSchema,
|
|
65
70
|
savePersistedSchema
|
|
66
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-U6OM4E67.js";
|
|
67
72
|
import {
|
|
68
73
|
resolveManagedSecret,
|
|
69
74
|
saveSealedPassphrase
|
|
70
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-AY4P6PHN.js";
|
|
71
76
|
import {
|
|
72
77
|
PERIODS_COLLECTION
|
|
73
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-YTIAXSUE.js";
|
|
74
79
|
import {
|
|
75
80
|
isDictCollectionName,
|
|
76
81
|
isStaticDictDescriptor
|
|
77
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-PYWW4KLO.js";
|
|
78
83
|
import {
|
|
79
84
|
enrollAuthenticator,
|
|
80
85
|
findAuthenticator,
|
|
@@ -84,7 +89,7 @@ import {
|
|
|
84
89
|
rotatePassphrase,
|
|
85
90
|
updateAuthenticator,
|
|
86
91
|
writeMagicLinkGrant
|
|
87
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-OVIVYAQL.js";
|
|
88
93
|
import {
|
|
89
94
|
hasRecoveryEnrolled,
|
|
90
95
|
hasStrongRecoveryEnrolled,
|
|
@@ -94,7 +99,7 @@ import {
|
|
|
94
99
|
mintShamirRecoveryEntry,
|
|
95
100
|
savePaperRecoveryEntries,
|
|
96
101
|
saveShamirRecoveryEntries
|
|
97
|
-
} from "./chunk-
|
|
102
|
+
} from "./chunk-IJW6K6UX.js";
|
|
98
103
|
import {
|
|
99
104
|
INDEXED_STORE_POLICY
|
|
100
105
|
} from "./chunk-VQNJ7UZL.js";
|
|
@@ -112,17 +117,17 @@ import {
|
|
|
112
117
|
revoke,
|
|
113
118
|
rotateKeys,
|
|
114
119
|
updateKeyringIdentity
|
|
115
|
-
} from "./chunk-
|
|
120
|
+
} from "./chunk-5A6TC3RQ.js";
|
|
116
121
|
import {
|
|
117
122
|
persistDirectoryConfig,
|
|
118
123
|
readDirectoryConfig
|
|
119
|
-
} from "./chunk-
|
|
124
|
+
} from "./chunk-2N4MUSF3.js";
|
|
120
125
|
import {
|
|
121
126
|
generateULID
|
|
122
127
|
} from "./chunk-ZJADGNYF.js";
|
|
123
128
|
import {
|
|
124
129
|
sha256Hex as sha256Hex2
|
|
125
|
-
} from "./chunk-
|
|
130
|
+
} from "./chunk-6EVZXETK.js";
|
|
126
131
|
import {
|
|
127
132
|
NO_FORGET,
|
|
128
133
|
addSubjectRef,
|
|
@@ -131,27 +136,31 @@ import {
|
|
|
131
136
|
readDottedPath,
|
|
132
137
|
rebuildSubjectIndex,
|
|
133
138
|
removeSubjectRef
|
|
134
|
-
} from "./chunk-
|
|
139
|
+
} from "./chunk-6OQ7NKMZ.js";
|
|
135
140
|
import {
|
|
136
141
|
NO_SEALED_RECORD
|
|
137
|
-
} from "./chunk-
|
|
142
|
+
} from "./chunk-FELHYKIO.js";
|
|
138
143
|
import {
|
|
139
144
|
RecordCodec,
|
|
140
145
|
SEALED_CEK_NS,
|
|
141
|
-
buildTombstone,
|
|
142
|
-
encrypt,
|
|
143
146
|
findByDet,
|
|
144
147
|
hasPerRecordKey,
|
|
145
|
-
isTombstone,
|
|
146
148
|
openEnvelopeJson,
|
|
147
149
|
queryByDet,
|
|
148
150
|
resolveStableCek,
|
|
149
|
-
sha256Hex,
|
|
150
151
|
validateSchemaInput
|
|
151
|
-
} from "./chunk-
|
|
152
|
+
} from "./chunk-5EZAJEES.js";
|
|
153
|
+
import {
|
|
154
|
+
buildTombstone,
|
|
155
|
+
isTombstone
|
|
156
|
+
} from "./chunk-6RASM2J4.js";
|
|
157
|
+
import {
|
|
158
|
+
encrypt,
|
|
159
|
+
sha256Hex
|
|
160
|
+
} from "./chunk-L4IRFTIF.js";
|
|
152
161
|
import {
|
|
153
162
|
NOYDB_FORMAT_VERSION
|
|
154
|
-
} from "./chunk-
|
|
163
|
+
} from "./chunk-OCDUQUAP.js";
|
|
155
164
|
import {
|
|
156
165
|
NO_AGGREGATE,
|
|
157
166
|
Query,
|
|
@@ -161,22 +170,25 @@ import {
|
|
|
161
170
|
decodeMoneyFields,
|
|
162
171
|
quantizeMoneyFields,
|
|
163
172
|
validateMoneyFieldPaths
|
|
164
|
-
} from "./chunk-
|
|
173
|
+
} from "./chunk-N2FP26NH.js";
|
|
165
174
|
import {
|
|
166
175
|
canonicalGroupKey
|
|
167
|
-
} from "./chunk-
|
|
176
|
+
} from "./chunk-NPVICKZE.js";
|
|
168
177
|
import {
|
|
169
178
|
readPath
|
|
170
|
-
} from "./chunk-
|
|
179
|
+
} from "./chunk-QLQS5A7X.js";
|
|
171
180
|
import {
|
|
172
181
|
getAtPath,
|
|
173
182
|
resolvePolicy,
|
|
174
183
|
setAtPathInPlace,
|
|
175
184
|
stripI18nFilled
|
|
176
|
-
} from "./chunk-
|
|
185
|
+
} from "./chunk-7IP75FP2.js";
|
|
177
186
|
import {
|
|
178
187
|
AlreadyElevatedError,
|
|
179
188
|
AttestationError,
|
|
189
|
+
ClassifiedConfigError,
|
|
190
|
+
ClassifiedRevealError,
|
|
191
|
+
ClassifiedVerifyError,
|
|
180
192
|
ConflictError,
|
|
181
193
|
DebugPlaintextError,
|
|
182
194
|
DerivationCapExceededError,
|
|
@@ -207,14 +219,66 @@ import {
|
|
|
207
219
|
UnknownDictCodeError,
|
|
208
220
|
UnsupportedIndexOptionError,
|
|
209
221
|
ValidationError
|
|
210
|
-
} from "./chunk-
|
|
222
|
+
} from "./chunk-BLZRNHMG.js";
|
|
211
223
|
|
|
212
224
|
// src/port/by/default-provider.ts
|
|
213
225
|
async function createDefaultCoordinationProvider(store) {
|
|
214
|
-
const { StoreCoordinationProvider } = await import("./store-coordination-provider-
|
|
226
|
+
const { StoreCoordinationProvider } = await import("./store-coordination-provider-KTRIC6PR.js");
|
|
215
227
|
return new StoreCoordinationProvider(store);
|
|
216
228
|
}
|
|
217
229
|
|
|
230
|
+
// src/with-shape/classified/guards.ts
|
|
231
|
+
function guardClassifiedCompat(collection, byField, ctx) {
|
|
232
|
+
const digestOnly = Object.entries(byField).filter(([, s]) => s.storage === "digest-only");
|
|
233
|
+
const protectedForms = Object.values(byField).filter((s) => s.storage === "digest-only" || s.storage === "recoverable");
|
|
234
|
+
if (protectedForms.length > 0 && (ctx.crdt || ctx.hasConflictPolicy)) {
|
|
235
|
+
throw new ClassifiedConfigError(
|
|
236
|
+
collection,
|
|
237
|
+
"digest-only/recoverable classified fields cannot combine with a crdt mode or a conflictPolicy resolver \u2014 merge paths bypass write enforcement (R2)"
|
|
238
|
+
);
|
|
239
|
+
}
|
|
240
|
+
if (digestOnly.length === 0) return;
|
|
241
|
+
if (!ctx.storeCiphertext) {
|
|
242
|
+
throw new ClassifiedConfigError(
|
|
243
|
+
collection,
|
|
244
|
+
`storage:'digest-only' requires an encrypted collection \u2014 with encrypt: false the write path skips the digest slot entirely and the secret would persist as raw plaintext`
|
|
245
|
+
);
|
|
246
|
+
}
|
|
247
|
+
if (!ctx.perRecordKeys) {
|
|
248
|
+
throw new ClassifiedConfigError(
|
|
249
|
+
collection,
|
|
250
|
+
`storage:'digest-only' requires perRecordKeys: true \u2014 vdig keys derive from the per-record CEK so forget() shreds them (R1)`
|
|
251
|
+
);
|
|
252
|
+
}
|
|
253
|
+
for (const [f, spec] of digestOnly) {
|
|
254
|
+
const n = spec.notLastN ?? 0;
|
|
255
|
+
if (!Number.isInteger(n) || n < 0 || n > 8) {
|
|
256
|
+
throw new ClassifiedConfigError(
|
|
257
|
+
collection,
|
|
258
|
+
`digest-only field "${f}" declares notLastN ${n} \u2014 must be an integer 0..8 (write cost is n \xD7 600K PBKDF2; ring blast radius is documented)`
|
|
259
|
+
);
|
|
260
|
+
}
|
|
261
|
+
if (ctx.bareSensitiveFields.has(f)) {
|
|
262
|
+
throw new ClassifiedConfigError(
|
|
263
|
+
collection,
|
|
264
|
+
`field "${f}" is digest-only AND listed in sensitive[] \u2014 storage forms are mutually exclusive per field (R5)`
|
|
265
|
+
);
|
|
266
|
+
}
|
|
267
|
+
if (ctx.deterministicFields?.has(f)) {
|
|
268
|
+
throw new ClassifiedConfigError(
|
|
269
|
+
collection,
|
|
270
|
+
`digest-only field "${f}" cannot be deterministic \u2014 equality-correlatable ciphertext defeats per-write salts (R3)`
|
|
271
|
+
);
|
|
272
|
+
}
|
|
273
|
+
if (ctx.indexedFields.has(f) || ctx.textIndexFields.has(f) || ctx.vectorSourceFields.has(f) || ctx.subjectKeyField === f) {
|
|
274
|
+
throw new ClassifiedConfigError(
|
|
275
|
+
collection,
|
|
276
|
+
`digest-only field "${f}" cannot be indexed, text-indexed, embedded, or a forget-subject key (R4)`
|
|
277
|
+
);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
218
282
|
// src/with-formula/computed/index.ts
|
|
219
283
|
var ComputedFieldError = class extends NoydbError {
|
|
220
284
|
constructor(field, id, cause) {
|
|
@@ -808,6 +872,8 @@ function resolveFieldMeta(key, inputs) {
|
|
|
808
872
|
const aliases = pick("aliases");
|
|
809
873
|
const displayFor = pick("displayFor");
|
|
810
874
|
const widget = pick("widget");
|
|
875
|
+
const group = pick("group");
|
|
876
|
+
const order = pick("order");
|
|
811
877
|
return {
|
|
812
878
|
label: pick("label") ?? humanizeFieldKey(key),
|
|
813
879
|
...description !== void 0 ? { description } : {},
|
|
@@ -817,7 +883,9 @@ function resolveFieldMeta(key, inputs) {
|
|
|
817
883
|
...aggregate !== void 0 ? { aggregate } : {},
|
|
818
884
|
...aliases !== void 0 ? { aliases } : {},
|
|
819
885
|
...displayFor !== void 0 ? { displayFor } : {},
|
|
820
|
-
...widget !== void 0 ? { widget } : {}
|
|
886
|
+
...widget !== void 0 ? { widget } : {},
|
|
887
|
+
...group !== void 0 ? { group } : {},
|
|
888
|
+
...order !== void 0 ? { order } : {}
|
|
821
889
|
};
|
|
822
890
|
}
|
|
823
891
|
|
|
@@ -921,7 +989,9 @@ var ZOD_META_KEYS = /* @__PURE__ */ new Set([
|
|
|
921
989
|
"sensitivity",
|
|
922
990
|
"aggregate",
|
|
923
991
|
"aliases",
|
|
924
|
-
"displayFor"
|
|
992
|
+
"displayFor",
|
|
993
|
+
"group",
|
|
994
|
+
"order"
|
|
925
995
|
]);
|
|
926
996
|
async function deriveZodFields(schema) {
|
|
927
997
|
const envelope = await derivePersistedSchema(schema);
|
|
@@ -979,7 +1049,7 @@ function deriveWidget(opts) {
|
|
|
979
1049
|
return "text";
|
|
980
1050
|
}
|
|
981
1051
|
function buildDescription(input) {
|
|
982
|
-
const { collection, fieldMeta, moneyFields, dictKeyFields, computed, refs, zodFields, dictLabels, meta, i18nFields } = input;
|
|
1052
|
+
const { collection, fieldMeta, moneyFields, dictKeyFields, computed, refs, zodFields, dictLabels, meta, i18nFields, classified } = input;
|
|
983
1053
|
if (zodFields !== void 0 && Object.keys(zodFields).length > 0 && fieldMeta !== void 0) {
|
|
984
1054
|
const knownFields = /* @__PURE__ */ new Set([
|
|
985
1055
|
...Object.keys(moneyFields ?? {}),
|
|
@@ -998,7 +1068,8 @@ function buildDescription(input) {
|
|
|
998
1068
|
...Object.keys(computed ?? {}),
|
|
999
1069
|
...Object.keys(fieldMeta ?? {}),
|
|
1000
1070
|
...Object.keys(zodFields ?? {}),
|
|
1001
|
-
...Object.keys(i18nFields ?? {})
|
|
1071
|
+
...Object.keys(i18nFields ?? {}),
|
|
1072
|
+
...Object.keys(classified ?? {})
|
|
1002
1073
|
]);
|
|
1003
1074
|
const fields = [];
|
|
1004
1075
|
for (const key of [...allKeys].sort()) {
|
|
@@ -1008,6 +1079,7 @@ function buildDescription(input) {
|
|
|
1008
1079
|
const refDesc = refs[key];
|
|
1009
1080
|
const isComputed = computed !== void 0 && key in computed;
|
|
1010
1081
|
const i18nDesc = i18nFields?.[key];
|
|
1082
|
+
const cls = classified?.[key];
|
|
1011
1083
|
let type = zod?.type ?? "unknown";
|
|
1012
1084
|
const inferred = {};
|
|
1013
1085
|
let moneyBlock;
|
|
@@ -1063,6 +1135,7 @@ function buildDescription(input) {
|
|
|
1063
1135
|
type = "string";
|
|
1064
1136
|
} else if (isComputed) {
|
|
1065
1137
|
}
|
|
1138
|
+
if (cls !== void 0) inferred.sensitivity = cls.sensitivity;
|
|
1066
1139
|
const channelEntry = fieldMeta?.[key];
|
|
1067
1140
|
const zodMeta = zod?.meta;
|
|
1068
1141
|
const resolved = resolveFieldMeta(key, {
|
|
@@ -1090,8 +1163,11 @@ function buildDescription(input) {
|
|
|
1090
1163
|
key,
|
|
1091
1164
|
type,
|
|
1092
1165
|
optional: zod?.optional ?? false,
|
|
1166
|
+
...zod?.constraints !== void 0 ? { constraints: zod.constraints } : {},
|
|
1093
1167
|
label: resolved.label,
|
|
1094
1168
|
...resolved.description !== void 0 ? { description: resolved.description } : {},
|
|
1169
|
+
...resolved.group !== void 0 ? { group: resolved.group } : {},
|
|
1170
|
+
...resolved.order !== void 0 ? { order: resolved.order } : {},
|
|
1095
1171
|
...resolved.semanticType !== void 0 ? { semanticType: resolved.semanticType } : {},
|
|
1096
1172
|
...resolved.unit !== void 0 ? { unit: resolved.unit } : {},
|
|
1097
1173
|
...resolved.sensitivity !== void 0 ? { sensitivity: resolved.sensitivity } : {},
|
|
@@ -1104,7 +1180,14 @@ function buildDescription(input) {
|
|
|
1104
1180
|
...isComputed ? { computed: true } : {},
|
|
1105
1181
|
...i18nBlock !== void 0 ? { i18n: i18nBlock } : {},
|
|
1106
1182
|
widget,
|
|
1107
|
-
editable
|
|
1183
|
+
editable,
|
|
1184
|
+
...cls !== void 0 ? {
|
|
1185
|
+
classified: {
|
|
1186
|
+
preset: cls.preset,
|
|
1187
|
+
storage: cls.storage,
|
|
1188
|
+
list: cls.list.kind === "omit" ? "omit" : cls.list.kind === "mask" ? { mask: cls.list.pattern } : { rider: cls.list.rider }
|
|
1189
|
+
}
|
|
1190
|
+
} : {}
|
|
1108
1191
|
};
|
|
1109
1192
|
fields.push(field);
|
|
1110
1193
|
}
|
|
@@ -1152,6 +1235,7 @@ function buildJsonSchema(desc, base) {
|
|
|
1152
1235
|
for (const v of f.dict.values) if (v.label !== void 0) labels[v.value] = v.label;
|
|
1153
1236
|
if (Object.keys(labels).length) prop["x-enumLabels"] = labels;
|
|
1154
1237
|
}
|
|
1238
|
+
if (f.classified !== void 0) prop["x-classified"] = f.classified;
|
|
1155
1239
|
properties[f.key] = prop;
|
|
1156
1240
|
}
|
|
1157
1241
|
return base != null && typeof base === "object" ? { ...base, properties } : { type: "object", properties };
|
|
@@ -1352,7 +1436,7 @@ async function resolveStaleOnRead(accessor, outputCollection, id) {
|
|
|
1352
1436
|
}
|
|
1353
1437
|
const sourceWithId = { ...source, id };
|
|
1354
1438
|
if (DerivationExecutor === null) {
|
|
1355
|
-
({ DerivationExecutor } = await import("./executor-
|
|
1439
|
+
({ DerivationExecutor } = await import("./executor-ANFBCOYA.js"));
|
|
1356
1440
|
}
|
|
1357
1441
|
const ctx = { vault: accessor.getReadOnlyFacade() };
|
|
1358
1442
|
const result = await DerivationExecutor.run(spec, sourceWithId, 0, strategyHash, ctx);
|
|
@@ -1510,6 +1594,16 @@ function resolveCollectionConfig(opts) {
|
|
|
1510
1594
|
);
|
|
1511
1595
|
}
|
|
1512
1596
|
if (opts.moneyFields) validateMoneyFieldPaths(opts.moneyFields);
|
|
1597
|
+
const resolvedClassified = opts.classifiedFields !== void 0 ? resolveClassifiedFields(opts.name, opts.classifiedFields) : void 0;
|
|
1598
|
+
let mergedComputed = opts.computed;
|
|
1599
|
+
if (resolvedClassified !== void 0) {
|
|
1600
|
+
for (const key of Object.keys(opts.computed ?? {})) {
|
|
1601
|
+
if (resolvedClassified.riderComputed[key] !== void 0) {
|
|
1602
|
+
throw new ClassifiedConfigError(opts.name, `computed field "${key}" collides with a rider companion`);
|
|
1603
|
+
}
|
|
1604
|
+
}
|
|
1605
|
+
mergedComputed = { ...resolvedClassified.riderComputed, ...opts.computed ?? {} };
|
|
1606
|
+
}
|
|
1513
1607
|
let deterministicFields;
|
|
1514
1608
|
if (opts.deterministicFields && opts.deterministicFields.length > 0) {
|
|
1515
1609
|
if (opts.acknowledgeDeterministicRisk !== true) {
|
|
@@ -1525,7 +1619,37 @@ function resolveCollectionConfig(opts) {
|
|
|
1525
1619
|
Object.entries(opts.i18nFields).filter(([, d]) => d.options.densifyOnWrite === true)
|
|
1526
1620
|
) : {};
|
|
1527
1621
|
const i18nDensifyFields = Object.keys(densifyFields).length > 0 ? densifyFields : void 0;
|
|
1528
|
-
const
|
|
1622
|
+
const guardIndexedFields = /* @__PURE__ */ new Set();
|
|
1623
|
+
for (const ix of opts.indexes ?? []) {
|
|
1624
|
+
if (typeof ix === "string") guardIndexedFields.add(ix);
|
|
1625
|
+
else if (Array.isArray(ix)) for (const f of ix) guardIndexedFields.add(f);
|
|
1626
|
+
else for (const f of ix.fields) guardIndexedFields.add(f);
|
|
1627
|
+
}
|
|
1628
|
+
const embeddingSources = opts.embeddings === void 0 ? [] : typeof opts.embeddings.source === "string" ? [opts.embeddings.source] : [...opts.embeddings.source];
|
|
1629
|
+
const classifiedGuardCtx = {
|
|
1630
|
+
perRecordKeys: opts.perRecordKeys === true,
|
|
1631
|
+
crdt: opts.crdt !== void 0,
|
|
1632
|
+
hasConflictPolicy: opts.conflictPolicy !== void 0,
|
|
1633
|
+
storeCiphertext: opts.encrypted,
|
|
1634
|
+
deterministicFields,
|
|
1635
|
+
indexedFields: guardIndexedFields,
|
|
1636
|
+
textIndexFields: new Set(opts.textIndexes ?? []),
|
|
1637
|
+
vectorSourceFields: new Set(embeddingSources),
|
|
1638
|
+
subjectKeyField: opts.subjectKeyField,
|
|
1639
|
+
bareSensitiveFields: new Set(opts.sensitive ?? [])
|
|
1640
|
+
};
|
|
1641
|
+
if (resolvedClassified !== void 0) {
|
|
1642
|
+
guardClassifiedCompat(opts.name, resolvedClassified.byField, classifiedGuardCtx);
|
|
1643
|
+
}
|
|
1644
|
+
const classifiedSensitive = resolvedClassified === void 0 ? [] : Object.entries(resolvedClassified.byField).filter(([, s]) => s.storage === "recoverable").map(([f]) => f);
|
|
1645
|
+
const sensitiveList = [...opts.sensitive ?? [], ...classifiedSensitive];
|
|
1646
|
+
const sensitiveFields = sensitiveList.length > 0 ? Object.freeze(new Set(sensitiveList)) : Object.freeze(/* @__PURE__ */ new Set());
|
|
1647
|
+
const vdigEntries = resolvedClassified === void 0 ? [] : Object.entries(resolvedClassified.byField).filter(([, s]) => s.storage === "digest-only").map(([f, s]) => [f, {
|
|
1648
|
+
normalize: s.verifyNormalize ?? "password",
|
|
1649
|
+
notLastN: s.notLastN ?? 0,
|
|
1650
|
+
...s.rotateDays !== void 0 ? { rotateDays: s.rotateDays } : {}
|
|
1651
|
+
}]);
|
|
1652
|
+
const vdigFields = vdigEntries.length > 0 ? new Map(vdigEntries) : null;
|
|
1529
1653
|
const perRecordCek = opts.perRecordKeys === true;
|
|
1530
1654
|
const cekCache = perRecordCek ? new Lru({ maxRecords: 4096 }) : null;
|
|
1531
1655
|
return {
|
|
@@ -1569,7 +1693,10 @@ function resolveCollectionConfig(opts) {
|
|
|
1569
1693
|
meta: opts.meta,
|
|
1570
1694
|
_refs: opts.declaredRefs ?? {},
|
|
1571
1695
|
moneyFields: opts.moneyFields,
|
|
1572
|
-
|
|
1696
|
+
classified: resolvedClassified,
|
|
1697
|
+
classifiedGuardCtx,
|
|
1698
|
+
classifiedStrategy: opts.classifiedStrategy ?? NO_CLASSIFIED,
|
|
1699
|
+
computed: mergedComputed,
|
|
1573
1700
|
dictLabelResolver: opts.dictLabelResolver,
|
|
1574
1701
|
getDictionary: opts.getDictionary,
|
|
1575
1702
|
i18nPutValidator: opts.i18nPutValidator,
|
|
@@ -1587,6 +1714,7 @@ function resolveCollectionConfig(opts) {
|
|
|
1587
1714
|
onCrossTierAccess: opts.onCrossTierAccess,
|
|
1588
1715
|
deterministicFields,
|
|
1589
1716
|
sensitiveFields,
|
|
1717
|
+
vdigFields,
|
|
1590
1718
|
perRecordCek,
|
|
1591
1719
|
cekCache,
|
|
1592
1720
|
provenance: opts.provenance === true
|
|
@@ -1819,6 +1947,32 @@ var Collection = class {
|
|
|
1819
1947
|
* the same MV-pre-creation reconcile as {@link moneyFields}.
|
|
1820
1948
|
*/
|
|
1821
1949
|
computed;
|
|
1950
|
+
/**
|
|
1951
|
+
* Resolved classified() sensitive-field descriptors, declared via the
|
|
1952
|
+
* `classifiedFields` collection option. Mutable so {@link _applyClassifiedFields}
|
|
1953
|
+
* can attach a declaration to a collection MV-analysis pre-created.
|
|
1954
|
+
*/
|
|
1955
|
+
classified;
|
|
1956
|
+
/**
|
|
1957
|
+
* Frozen construction-time facts the refusal matrix (R1-R5) checks against.
|
|
1958
|
+
* Stored so {@link _applyClassifiedFields} — door 2, the reconcile seam —
|
|
1959
|
+
* can re-run the SAME guard the config resolver ran at door 1 (C5's lesson:
|
|
1960
|
+
* crdt/conflictPolicy/perRecordKeys are construction-only but
|
|
1961
|
+
* classifiedFields can attach later).
|
|
1962
|
+
*/
|
|
1963
|
+
classifiedGuardCtx;
|
|
1964
|
+
/**
|
|
1965
|
+
* Digest-only classified fields (`storage: 'digest-only'`), keyed by field
|
|
1966
|
+
* name — the enclave-consumable policy map the codec's write path carries
|
|
1967
|
+
* `_vdig` forward under (C6). `null` when the collection declares none.
|
|
1968
|
+
*/
|
|
1969
|
+
vdigFields;
|
|
1970
|
+
/**
|
|
1971
|
+
* Tree-shake seam for `reveal()` — defaults to `NO_CLASSIFIED`, which
|
|
1972
|
+
* throws `ClassifiedNotEnabledError`. Set via the `classifiedStrategy`
|
|
1973
|
+
* `createNoydb()` option (opt in with `withClassified()`).
|
|
1974
|
+
*/
|
|
1975
|
+
classifiedStrategy;
|
|
1822
1976
|
/**
|
|
1823
1977
|
* Async callback provided by the Vault that resolves a dict key
|
|
1824
1978
|
* to its label for a given locale. Used by the locale-read path for
|
|
@@ -2023,6 +2177,10 @@ var Collection = class {
|
|
|
2023
2177
|
this.meta = cfg.meta;
|
|
2024
2178
|
this._refs = cfg._refs;
|
|
2025
2179
|
this.moneyFields = cfg.moneyFields;
|
|
2180
|
+
this.classified = cfg.classified;
|
|
2181
|
+
this.classifiedGuardCtx = cfg.classifiedGuardCtx;
|
|
2182
|
+
this.vdigFields = cfg.vdigFields;
|
|
2183
|
+
this.classifiedStrategy = cfg.classifiedStrategy;
|
|
2026
2184
|
this.computed = cfg.computed;
|
|
2027
2185
|
this.dictLabelResolver = cfg.dictLabelResolver;
|
|
2028
2186
|
this.getDictionary = cfg.getDictionary;
|
|
@@ -2069,6 +2227,7 @@ var Collection = class {
|
|
|
2069
2227
|
provenance: this.provenance,
|
|
2070
2228
|
sensitiveFields: this.sensitiveFields,
|
|
2071
2229
|
deterministicFields: this.deterministicFields,
|
|
2230
|
+
vdigFields: this.vdigFields,
|
|
2072
2231
|
crdtMode: this.crdtMode,
|
|
2073
2232
|
crdtStrategy: this.crdtStrategy,
|
|
2074
2233
|
schema: this.schema,
|
|
@@ -2240,7 +2399,8 @@ var Collection = class {
|
|
|
2240
2399
|
refs: this._refs,
|
|
2241
2400
|
zodFields: void 0,
|
|
2242
2401
|
...this.meta !== void 0 ? { meta: this.meta } : {},
|
|
2243
|
-
...this.i18nFields !== void 0 ? { i18nFields: this.i18nFields } : {}
|
|
2402
|
+
...this.i18nFields !== void 0 ? { i18nFields: this.i18nFields } : {},
|
|
2403
|
+
...this.classified !== void 0 ? { classified: this.classified.byField } : {}
|
|
2244
2404
|
});
|
|
2245
2405
|
}
|
|
2246
2406
|
/**
|
|
@@ -2277,7 +2437,8 @@ var Collection = class {
|
|
|
2277
2437
|
zodFields,
|
|
2278
2438
|
...dictLabels !== void 0 ? { dictLabels } : {},
|
|
2279
2439
|
...this.meta !== void 0 ? { meta: this.meta } : {},
|
|
2280
|
-
...this.i18nFields !== void 0 ? { i18nFields: this.i18nFields } : {}
|
|
2440
|
+
...this.i18nFields !== void 0 ? { i18nFields: this.i18nFields } : {},
|
|
2441
|
+
...this.classified !== void 0 ? { classified: this.classified.byField } : {}
|
|
2281
2442
|
});
|
|
2282
2443
|
}
|
|
2283
2444
|
/** JSON Schema for this collection with describe() metadata as x- extensions. */
|
|
@@ -2290,6 +2451,61 @@ var Collection = class {
|
|
|
2290
2451
|
}
|
|
2291
2452
|
return buildJsonSchema(desc, base);
|
|
2292
2453
|
}
|
|
2454
|
+
/** Single-point audited reveal of one classified field. Requires withClassified(). */
|
|
2455
|
+
async reveal(id, field) {
|
|
2456
|
+
const spec = this.classified?.byField[field];
|
|
2457
|
+
if (spec === void 0) throw new ClassifiedRevealError(this.name, field, "field is not classified");
|
|
2458
|
+
if (spec.storage === "never") {
|
|
2459
|
+
throw new ClassifiedRevealError(this.name, field, `storage:'never' \u2014 nothing is stored to reveal`);
|
|
2460
|
+
}
|
|
2461
|
+
if (spec.storage === "digest-only") {
|
|
2462
|
+
throw new ClassifiedRevealError(this.name, field, `storage:'digest-only' \u2014 verify-only; nothing recoverable to reveal`);
|
|
2463
|
+
}
|
|
2464
|
+
return this.classifiedStrategy.reveal({
|
|
2465
|
+
collection: this.name,
|
|
2466
|
+
spec,
|
|
2467
|
+
encrypted: this.storeCiphertext,
|
|
2468
|
+
getEnvelope: (rid) => this.adapter.get(this.vault, this.name, rid),
|
|
2469
|
+
resolveCek: (env) => this.codec.resolveEnvelopeCek(env),
|
|
2470
|
+
getDEK: () => this.getDEK(this.name),
|
|
2471
|
+
...this.onAccess !== void 0 ? { onAccess: async (_op, rid) => {
|
|
2472
|
+
await this.onAccess("reveal", rid);
|
|
2473
|
+
} } : {}
|
|
2474
|
+
}, id, field);
|
|
2475
|
+
}
|
|
2476
|
+
/** Verify-without-reveal: verdict-only oracle for one classified field. Requires withClassified(). */
|
|
2477
|
+
async verify(id, field, candidate) {
|
|
2478
|
+
const spec = this.classified?.byField[field];
|
|
2479
|
+
if (spec === void 0) throw new ClassifiedVerifyError(this.name, field, "field is not classified");
|
|
2480
|
+
if (spec.storage === "never") {
|
|
2481
|
+
throw new ClassifiedVerifyError(this.name, field, `storage:'never' \u2014 nothing is stored to verify against`);
|
|
2482
|
+
}
|
|
2483
|
+
const ctx = this._classifiedVerifyCtx(spec);
|
|
2484
|
+
return spec.storage === "digest-only" ? this.classifiedStrategy.verify(ctx, id, field, candidate) : this.classifiedStrategy.verifyText(ctx, id, field, candidate);
|
|
2485
|
+
}
|
|
2486
|
+
/** k-of-n challenge over the collection's secretAnswer members. Requires withClassified(). */
|
|
2487
|
+
async verifyGroup(id, answers, opts) {
|
|
2488
|
+
const members = Object.entries(this.classified?.byField ?? {}).filter(([, s]) => s.storage === "digest-only" && s.verifyGroupMember === true).map(([field, spec]) => ({ field, spec }));
|
|
2489
|
+
if (members.length === 0) {
|
|
2490
|
+
throw new ClassifiedVerifyError(this.name, "*", "no groupable digest-only (secretAnswer) fields declared");
|
|
2491
|
+
}
|
|
2492
|
+
const ctx = { ...this._classifiedVerifyCtx(members[0].spec), groupMembers: members };
|
|
2493
|
+
return this.classifiedStrategy.matchGroup(ctx, id, answers, opts);
|
|
2494
|
+
}
|
|
2495
|
+
_classifiedVerifyCtx(spec) {
|
|
2496
|
+
return {
|
|
2497
|
+
collection: this.name,
|
|
2498
|
+
spec,
|
|
2499
|
+
getEnvelope: (rid) => this.adapter.get(this.vault, this.name, rid),
|
|
2500
|
+
resolveCek: (env) => this.codec.resolveEnvelopeCek(env),
|
|
2501
|
+
getDEK: () => this.getDEK(this.name),
|
|
2502
|
+
now: () => Date.now(),
|
|
2503
|
+
// Q7: injected here; engine tests inject their own
|
|
2504
|
+
...this.onAccess !== void 0 ? { onAccess: async (_op, rid) => {
|
|
2505
|
+
await this.onAccess("verify", rid);
|
|
2506
|
+
} } : {}
|
|
2507
|
+
};
|
|
2508
|
+
}
|
|
2293
2509
|
/**
|
|
2294
2510
|
* @internal — attach money descriptors post-construction. MV dependency
|
|
2295
2511
|
* analysis auto-creates a source collection (without options) during
|
|
@@ -2313,6 +2529,52 @@ var Collection = class {
|
|
|
2313
2529
|
_applyMeta(meta) {
|
|
2314
2530
|
if (this.meta === void 0) this.meta = meta;
|
|
2315
2531
|
}
|
|
2532
|
+
/**
|
|
2533
|
+
* @internal — attach classified fields post-construction. See {@link _applyMoneyFields}.
|
|
2534
|
+
* First-wins. Note: unlike money/computed/meta, this cannot retro-seal a
|
|
2535
|
+
* collection that was already auto-created — `sensitiveFields` is frozen at
|
|
2536
|
+
* construction time. A reconciled declaration is only accepted when none of
|
|
2537
|
+
* its members are `storage: 'recoverable'` (those require sealing at first
|
|
2538
|
+
* open); otherwise this throws rather than silently persisting the value as
|
|
2539
|
+
* inline plaintext while `describe()` advertises protection.
|
|
2540
|
+
*/
|
|
2541
|
+
_applyClassifiedFields(classifiedFields) {
|
|
2542
|
+
const resolved = resolveClassifiedFields(this.name, classifiedFields);
|
|
2543
|
+
if (this.classified !== void 0) {
|
|
2544
|
+
for (const [field, spec] of Object.entries(resolved.byField)) {
|
|
2545
|
+
const prior = this.classified.byField[field];
|
|
2546
|
+
if (prior !== void 0 && prior.storage !== spec.storage) {
|
|
2547
|
+
throw new ClassifiedConfigError(
|
|
2548
|
+
this.name,
|
|
2549
|
+
`field "${field}" was already declared storage:'${prior.storage}' \u2014 storage-form transitions are refused (R6); migrate explicitly`
|
|
2550
|
+
);
|
|
2551
|
+
}
|
|
2552
|
+
}
|
|
2553
|
+
return;
|
|
2554
|
+
}
|
|
2555
|
+
guardClassifiedCompat(this.name, resolved.byField, this.classifiedGuardCtx);
|
|
2556
|
+
for (const key of Object.keys(resolved.riderComputed)) {
|
|
2557
|
+
if (this.computed?.[key] !== void 0) {
|
|
2558
|
+
throw new ClassifiedConfigError(this.name, `rider companion "${key}" collides with a declared field`);
|
|
2559
|
+
}
|
|
2560
|
+
}
|
|
2561
|
+
const retroDigest = Object.entries(resolved.byField).filter(([, spec]) => spec.storage === "digest-only").map(([field]) => field);
|
|
2562
|
+
if (retroDigest.length > 0) {
|
|
2563
|
+
throw new ClassifiedConfigError(
|
|
2564
|
+
this.name,
|
|
2565
|
+
`digest-only classified field(s) ${retroDigest.map((f) => `"${f}"`).join(", ")} were declared after the collection was first opened without them \u2014 the digest write path is fixed at first open, so these values would persist recoverably in _data. Declare classifiedFields at the collection's first vault.collection() call.`
|
|
2566
|
+
);
|
|
2567
|
+
}
|
|
2568
|
+
const unsealable = Object.entries(resolved.byField).filter(([field, spec]) => spec.storage === "recoverable" && !this.sensitiveFields.has(field)).map(([field]) => field);
|
|
2569
|
+
if (unsealable.length > 0) {
|
|
2570
|
+
throw new ClassifiedConfigError(
|
|
2571
|
+
this.name,
|
|
2572
|
+
`recoverable classified field(s) ${unsealable.map((f) => `"${f}"`).join(", ")} were declared after the collection was first opened without them \u2014 sealing is fixed at first open, so these values would persist as inline plaintext. Declare classifiedFields at the collection's first vault.collection() call (for materialized-view sources this means recoverable classified fields are not supported in stage 1).`
|
|
2573
|
+
);
|
|
2574
|
+
}
|
|
2575
|
+
this.classified = resolved;
|
|
2576
|
+
this.computed = { ...resolved.riderComputed, ...this.computed ?? {} };
|
|
2577
|
+
}
|
|
2316
2578
|
/** @internal — used only in tests; do not read in production code. */
|
|
2317
2579
|
get _ramCiphertext() {
|
|
2318
2580
|
return this.ramCiphertext;
|
|
@@ -2338,7 +2600,7 @@ var Collection = class {
|
|
|
2338
2600
|
}
|
|
2339
2601
|
}
|
|
2340
2602
|
if (this.materializedViewSource !== void 0) {
|
|
2341
|
-
const { resolveStaleMVOnRead } = await import("./stale-
|
|
2603
|
+
const { resolveStaleMVOnRead } = await import("./stale-LX4BR43V.js");
|
|
2342
2604
|
await resolveStaleMVOnRead(this.materializedViewSource, this.name);
|
|
2343
2605
|
}
|
|
2344
2606
|
let record;
|
|
@@ -2570,6 +2832,21 @@ var Collection = class {
|
|
|
2570
2832
|
const cached = this.cache.get(id);
|
|
2571
2833
|
return cached ? { record: cached.record, version: cached.version } : void 0;
|
|
2572
2834
|
}
|
|
2835
|
+
/**
|
|
2836
|
+
* Wraps {@link RecordCodec.toCacheRecord} with an additional strip for
|
|
2837
|
+
* digest-only classified fields: the codec already omits them from `_data`
|
|
2838
|
+
* on write, but the write path caches the pre-encrypt `record` object
|
|
2839
|
+
* directly (to skip a redundant decrypt) — without this, a vdig field's
|
|
2840
|
+
* plaintext would sit in the working-set cache and `get()` would leak it
|
|
2841
|
+
* right back out, defeating C6.
|
|
2842
|
+
*/
|
|
2843
|
+
async _toCacheableRecord(record, envelope, id) {
|
|
2844
|
+
const base = await this.codec.toCacheRecord(record, envelope, id);
|
|
2845
|
+
if (this.vdigFields === null) return base;
|
|
2846
|
+
const clone = { ...base };
|
|
2847
|
+
for (const field of this.vdigFields.keys()) delete clone[field];
|
|
2848
|
+
return clone;
|
|
2849
|
+
}
|
|
2573
2850
|
/** @internal Untracked put body — call {@link put}, not this. */
|
|
2574
2851
|
async _putInternal(id, record, options) {
|
|
2575
2852
|
if (!hasWritePermission(this.keyring, this.name)) {
|
|
@@ -2601,6 +2878,9 @@ var Collection = class {
|
|
|
2601
2878
|
};
|
|
2602
2879
|
await this.subsystemBus.dispatchGate("beforePut", gateEvent);
|
|
2603
2880
|
}
|
|
2881
|
+
if (this.classified !== void 0) {
|
|
2882
|
+
enforceClassifiedWrite(record, this.classified.byField, this.name);
|
|
2883
|
+
}
|
|
2604
2884
|
if (this.computed !== void 0) {
|
|
2605
2885
|
record = evalComputedFields(record, this.computed, id);
|
|
2606
2886
|
}
|
|
@@ -2736,7 +3016,8 @@ var Collection = class {
|
|
|
2736
3016
|
const existingResolvedRecord = existingEnvelope ? await this.codec.decryptRecord(existingEnvelope, { skipValidation: true }) : null;
|
|
2737
3017
|
const existingResolved = existingResolvedRecord !== null ? { record: existingResolvedRecord, version: existingVersion } : void 0;
|
|
2738
3018
|
if (existingResolved && this.historyConfig.enabled !== false) {
|
|
2739
|
-
const
|
|
3019
|
+
const vdigCtx2 = this.vdigFields !== null ? { id, prev: existingEnvelope } : void 0;
|
|
3020
|
+
const histEnvelope = await this.codec.encryptRecord(existingResolved.record, existingResolved.version, cek2, void 0, void 0, vdigCtx2);
|
|
2740
3021
|
await this.historyStrategy.saveHistory(this.adapter, this.vault, this.name, id, histEnvelope);
|
|
2741
3022
|
this.emitter.emit("history:save", { vault: this.vault, collection: this.name, id, version: existingResolved.version });
|
|
2742
3023
|
if (this.historyConfig.maxVersions) {
|
|
@@ -2795,8 +3076,9 @@ var Collection = class {
|
|
|
2795
3076
|
const version = existing ? existing.version + 1 : 1;
|
|
2796
3077
|
this.uniqueConstraints?.check(id, record);
|
|
2797
3078
|
const cek = this.perRecordCek ? await this.resolveRecordCek(id) : void 0;
|
|
3079
|
+
const vdigCtx = this.vdigFields !== null ? { id, prev: await this.adapter.get(this.vault, this.name, id) } : void 0;
|
|
2798
3080
|
if (existing && this.historyConfig.enabled !== false) {
|
|
2799
|
-
const historyEnvelope = await this.codec.encryptRecord(existing.record, existing.version, cek);
|
|
3081
|
+
const historyEnvelope = await this.codec.encryptRecord(existing.record, existing.version, cek, void 0, void 0, vdigCtx);
|
|
2800
3082
|
await this.historyStrategy.saveHistory(this.adapter, this.vault, this.name, id, historyEnvelope);
|
|
2801
3083
|
this.emitter.emit("history:save", {
|
|
2802
3084
|
vault: this.vault,
|
|
@@ -2810,7 +3092,7 @@ var Collection = class {
|
|
|
2810
3092
|
});
|
|
2811
3093
|
}
|
|
2812
3094
|
}
|
|
2813
|
-
const envelope = await this.codec.encryptRecord(record, version, cek, options?.source, options?.sourceTs);
|
|
3095
|
+
const envelope = await this.codec.encryptRecord(record, version, cek, options?.source, options?.sourceTs, vdigCtx);
|
|
2814
3096
|
await this.adapter.put(this.vault, this.name, id, envelope);
|
|
2815
3097
|
if (this.embeddings) {
|
|
2816
3098
|
await this.searchStrategy.embedOnWrite(this.searchContext(), id, record, version);
|
|
@@ -2831,10 +3113,10 @@ var Collection = class {
|
|
|
2831
3113
|
await this.ledger.append(appendInput);
|
|
2832
3114
|
}
|
|
2833
3115
|
if (this.lazy && this.lru) {
|
|
2834
|
-
this.lru.set(id, { record: await this.
|
|
3116
|
+
this.lru.set(id, { record: await this._toCacheableRecord(record, envelope, id), version }, estimateRecordBytes(record));
|
|
2835
3117
|
await this.maintainPersistedIndexesOnPut(id, record, existing ? existing.record : null, version);
|
|
2836
3118
|
} else {
|
|
2837
|
-
this.cache.set(id, { record: await this.
|
|
3119
|
+
this.cache.set(id, { record: await this._toCacheableRecord(record, envelope, id), version });
|
|
2838
3120
|
this.indexes?.upsert(id, record, existing ? existing.record : null);
|
|
2839
3121
|
this.uniqueConstraints?.upsert(id, record, existing?.record);
|
|
2840
3122
|
}
|
|
@@ -2877,7 +3159,7 @@ var Collection = class {
|
|
|
2877
3159
|
if (mode === "eager") {
|
|
2878
3160
|
if (executor === null) {
|
|
2879
3161
|
;
|
|
2880
|
-
({ MaterializedViewExecutor: executor } = await import("./executor-
|
|
3162
|
+
({ MaterializedViewExecutor: executor } = await import("./executor-OIECZXTV.js"));
|
|
2881
3163
|
}
|
|
2882
3164
|
await executor.refresh(reg, {
|
|
2883
3165
|
getCollection: (name) => this.materializedViewSource.getCollection(name),
|
|
@@ -2886,7 +3168,7 @@ var Collection = class {
|
|
|
2886
3168
|
});
|
|
2887
3169
|
} else if (mode === "lazy") {
|
|
2888
3170
|
if (staleHelpers === null) {
|
|
2889
|
-
staleHelpers = await import("./stale-
|
|
3171
|
+
staleHelpers = await import("./stale-LX4BR43V.js");
|
|
2890
3172
|
}
|
|
2891
3173
|
staleHelpers.markMVStale(registry, reg.spec.name);
|
|
2892
3174
|
}
|
|
@@ -3071,7 +3353,7 @@ var Collection = class {
|
|
|
3071
3353
|
continue;
|
|
3072
3354
|
}
|
|
3073
3355
|
if (DerivationExecutor === null) {
|
|
3074
|
-
({ DerivationExecutor } = await import("./executor-
|
|
3356
|
+
({ DerivationExecutor } = await import("./executor-ANFBCOYA.js"));
|
|
3075
3357
|
}
|
|
3076
3358
|
for (const run of runs) {
|
|
3077
3359
|
const ctx = { vault: this.derivationSource.getReadOnlyFacade() };
|
|
@@ -3090,7 +3372,7 @@ var Collection = class {
|
|
|
3090
3372
|
const outputCollection = this.derivationSource.getCollection(outSpec.collection);
|
|
3091
3373
|
const txCtx = this.derivationSource.getActiveTxContext();
|
|
3092
3374
|
if (out.kind === "array") {
|
|
3093
|
-
const { loadFanoutSidecar, saveFanoutSidecar } = await import("./fanout-sidecar-
|
|
3375
|
+
const { loadFanoutSidecar, saveFanoutSidecar } = await import("./fanout-sidecar-DDKRG2MX.js");
|
|
3094
3376
|
const prior = await loadFanoutSidecar(this.adapter, this.vault, spec.source, run.runId, key, this.getDEK, this.storeCiphertext);
|
|
3095
3377
|
const prevKeys = new Set(prior?.keys ?? []);
|
|
3096
3378
|
const newKeysList = out.entries.map((e) => e.key);
|
|
@@ -3217,7 +3499,7 @@ var Collection = class {
|
|
|
3217
3499
|
const next = transform(record);
|
|
3218
3500
|
const nextVersion = (env._v ?? 0) + 1;
|
|
3219
3501
|
const cek = this.perRecordCek ? await this.resolveRecordCek(id) : void 0;
|
|
3220
|
-
const newEnv = await this.codec.encryptRecord(next, nextVersion, cek);
|
|
3502
|
+
const newEnv = await this.codec.encryptRecord(next, nextVersion, cek, void 0, void 0, this.vdigFields !== null ? { id, prev: env } : void 0);
|
|
3221
3503
|
await this.adapter.put(this.vault, this.name, id, newEnv);
|
|
3222
3504
|
await this._invalidateCacheEntry(id);
|
|
3223
3505
|
if (this.ledger) {
|
|
@@ -3339,7 +3621,8 @@ var Collection = class {
|
|
|
3339
3621
|
}
|
|
3340
3622
|
if (existing && this.historyConfig.enabled !== false) {
|
|
3341
3623
|
const cek = this.perRecordCek ? await this.resolveRecordCek(id) : void 0;
|
|
3342
|
-
const
|
|
3624
|
+
const prevForVdig = this.vdigFields !== null ? await this.adapter.get(this.vault, this.name, id) : null;
|
|
3625
|
+
const historyEnvelope = await this.codec.encryptRecord(existing.record, existing.version, cek, void 0, void 0, this.vdigFields !== null ? { id, prev: prevForVdig } : void 0);
|
|
3343
3626
|
await this.historyStrategy.saveHistory(this.adapter, this.vault, this.name, id, historyEnvelope);
|
|
3344
3627
|
}
|
|
3345
3628
|
const previousEnvelope = await this.adapter.get(this.vault, this.name, id);
|
|
@@ -3448,7 +3731,7 @@ var Collection = class {
|
|
|
3448
3731
|
for (const [outputKey, outSpec] of Object.entries(spec.outputs)) {
|
|
3449
3732
|
if (outSpec.shape !== "array") continue;
|
|
3450
3733
|
if (helpers === null) {
|
|
3451
|
-
helpers = await import("./fanout-sidecar-
|
|
3734
|
+
helpers = await import("./fanout-sidecar-DDKRG2MX.js");
|
|
3452
3735
|
}
|
|
3453
3736
|
const sidecar = await helpers.loadFanoutSidecar(this.adapter, this.vault, spec.source, id, outputKey, this.getDEK, this.storeCiphertext);
|
|
3454
3737
|
if (!sidecar) continue;
|
|
@@ -3482,7 +3765,7 @@ var Collection = class {
|
|
|
3482
3765
|
if (mode === "eager") {
|
|
3483
3766
|
if (executor === null) {
|
|
3484
3767
|
;
|
|
3485
|
-
({ MaterializedViewExecutor: executor } = await import("./executor-
|
|
3768
|
+
({ MaterializedViewExecutor: executor } = await import("./executor-OIECZXTV.js"));
|
|
3486
3769
|
}
|
|
3487
3770
|
await executor.refresh(reg, {
|
|
3488
3771
|
getCollection: (name) => this.materializedViewSource.getCollection(name),
|
|
@@ -3491,7 +3774,7 @@ var Collection = class {
|
|
|
3491
3774
|
});
|
|
3492
3775
|
} else if (mode === "lazy") {
|
|
3493
3776
|
if (staleHelpers === null) {
|
|
3494
|
-
staleHelpers = await import("./stale-
|
|
3777
|
+
staleHelpers = await import("./stale-LX4BR43V.js");
|
|
3495
3778
|
}
|
|
3496
3779
|
staleHelpers.markMVStale(registry, reg.spec.name);
|
|
3497
3780
|
}
|
|
@@ -3514,7 +3797,7 @@ var Collection = class {
|
|
|
3514
3797
|
);
|
|
3515
3798
|
}
|
|
3516
3799
|
if (this.materializedViewSource !== void 0) {
|
|
3517
|
-
const { resolveStaleMVOnRead } = await import("./stale-
|
|
3800
|
+
const { resolveStaleMVOnRead } = await import("./stale-LX4BR43V.js");
|
|
3518
3801
|
await resolveStaleMVOnRead(this.materializedViewSource, this.name);
|
|
3519
3802
|
}
|
|
3520
3803
|
await this.ensureHydrated();
|
|
@@ -4343,7 +4626,8 @@ var Collection = class {
|
|
|
4343
4626
|
const result = {};
|
|
4344
4627
|
for (const [id, entry] of this.cache) {
|
|
4345
4628
|
const cek = this.perRecordCek ? await this.resolveRecordCek(id) : void 0;
|
|
4346
|
-
|
|
4629
|
+
const prevForVdig = this.vdigFields !== null ? await this.adapter.get(this.vault, this.name, id) : null;
|
|
4630
|
+
result[id] = await this.codec.encryptRecord(entry.record, entry.version, cek, void 0, void 0, this.vdigFields !== null ? { id, prev: prevForVdig } : void 0);
|
|
4347
4631
|
}
|
|
4348
4632
|
return result;
|
|
4349
4633
|
}
|
|
@@ -6440,6 +6724,7 @@ var Vault = class {
|
|
|
6440
6724
|
forgetStrategy;
|
|
6441
6725
|
i18nStrategy;
|
|
6442
6726
|
syncStrategy;
|
|
6727
|
+
classifiedStrategy;
|
|
6443
6728
|
/**
|
|
6444
6729
|
* Per-vault guard registry. `null` until `_initGuards()` runs; stays
|
|
6445
6730
|
* `null` for vaults that never register any guard strategy. The
|
|
@@ -6705,6 +6990,7 @@ var Vault = class {
|
|
|
6705
6990
|
this.forgetStrategy = opts.forgetStrategy ?? NO_FORGET;
|
|
6706
6991
|
this.i18nStrategy = opts.i18nStrategy ?? NO_I18N;
|
|
6707
6992
|
this.syncStrategy = opts.syncStrategy ?? NO_SYNC;
|
|
6993
|
+
this.classifiedStrategy = opts.classifiedStrategy ?? NO_CLASSIFIED;
|
|
6708
6994
|
void opts.guardStrategies;
|
|
6709
6995
|
this.historyConfig = opts.historyConfig ?? { enabled: true };
|
|
6710
6996
|
this.reloadKeyring = opts.reloadKeyring;
|
|
@@ -6817,6 +7103,9 @@ var Vault = class {
|
|
|
6817
7103
|
if (coll && options?.meta) {
|
|
6818
7104
|
coll._applyMeta(options.meta);
|
|
6819
7105
|
}
|
|
7106
|
+
if (coll && options?.classifiedFields) {
|
|
7107
|
+
coll._applyClassifiedFields(options.classifiedFields);
|
|
7108
|
+
}
|
|
6820
7109
|
if (!coll) {
|
|
6821
7110
|
if (options?.refs) {
|
|
6822
7111
|
this.refRegistry.register(collectionName, options.refs);
|
|
@@ -6913,6 +7202,7 @@ var Vault = class {
|
|
|
6913
7202
|
historyStrategy: this.historyStrategy,
|
|
6914
7203
|
i18nStrategy: this.i18nStrategy,
|
|
6915
7204
|
syncStrategy: this.syncStrategy,
|
|
7205
|
+
classifiedStrategy: this.classifiedStrategy,
|
|
6916
7206
|
// Per-collection ledger opt-out: when this collection sets
|
|
6917
7207
|
// `historyConfig.ledger: false`, withhold the ledger reference so all
|
|
6918
7208
|
// four `if (this.ledger)` append sites in Collection no-op. The chain
|
|
@@ -6968,13 +7258,15 @@ var Vault = class {
|
|
|
6968
7258
|
if (options?.perRecordKeys !== void 0) {
|
|
6969
7259
|
collOpts.perRecordKeys = options.perRecordKeys;
|
|
6970
7260
|
}
|
|
6971
|
-
|
|
7261
|
+
const subjectKey = this.forgetStrategy.subjects[collectionName];
|
|
7262
|
+
if (subjectKey !== void 0) {
|
|
6972
7263
|
if (options?.perRecordKeys === false) {
|
|
6973
7264
|
console.warn(
|
|
6974
7265
|
`[noy-db] Collection "${collectionName}" is declared in withForgetCascade but opened with perRecordKeys: false. Forcing perRecordKeys: true \u2014 GDPR crypto-shred requires per-record CEKs.`
|
|
6975
7266
|
);
|
|
6976
7267
|
}
|
|
6977
7268
|
collOpts.perRecordKeys = true;
|
|
7269
|
+
collOpts.subjectKeyField = subjectKey;
|
|
6978
7270
|
}
|
|
6979
7271
|
if (options?.provenance !== void 0) collOpts.provenance = options.provenance;
|
|
6980
7272
|
if (options?.ramCiphertext !== void 0) collOpts.ramCiphertext = options.ramCiphertext;
|
|
@@ -6989,6 +7281,7 @@ var Vault = class {
|
|
|
6989
7281
|
if (options?.textIndexPersist !== void 0) collOpts.textIndexPersist = options.textIndexPersist;
|
|
6990
7282
|
if (options?.moneyFields !== void 0) collOpts.moneyFields = options.moneyFields;
|
|
6991
7283
|
if (options?.computed !== void 0) collOpts.computed = options.computed;
|
|
7284
|
+
if (options?.classifiedFields !== void 0) collOpts.classifiedFields = options.classifiedFields;
|
|
6992
7285
|
if (options?.dictKeyFields !== void 0) {
|
|
6993
7286
|
collOpts.dictLabelResolver = async (dictName, key, locale, fallback) => {
|
|
6994
7287
|
const stat = this.staticByName.get(dictName);
|
|
@@ -8106,7 +8399,7 @@ var Vault = class {
|
|
|
8106
8399
|
async _initDerivations(handles) {
|
|
8107
8400
|
if (handles.length === 0) return;
|
|
8108
8401
|
const [{ DerivationRegistry }, { ReadOnlyVaultFacade }] = await Promise.all([
|
|
8109
|
-
import("./registry-
|
|
8402
|
+
import("./registry-6HZ2JSQ7.js"),
|
|
8110
8403
|
import("./read-only-facade-5ADRJVTM.js")
|
|
8111
8404
|
]);
|
|
8112
8405
|
const registry = new DerivationRegistry();
|
|
@@ -8137,7 +8430,7 @@ var Vault = class {
|
|
|
8137
8430
|
*/
|
|
8138
8431
|
async _initMaterializedViews(handles) {
|
|
8139
8432
|
if (handles.length === 0) return;
|
|
8140
|
-
const { MaterializedViewRegistry } = await import("./registry-
|
|
8433
|
+
const { MaterializedViewRegistry } = await import("./registry-USYD2ECC.js");
|
|
8141
8434
|
const registry = new MaterializedViewRegistry();
|
|
8142
8435
|
this.materializedViewRegistry = registry;
|
|
8143
8436
|
const db = this;
|
|
@@ -8161,7 +8454,7 @@ var Vault = class {
|
|
|
8161
8454
|
*/
|
|
8162
8455
|
async _initOverlayedViews(handles) {
|
|
8163
8456
|
if (handles.length === 0) return;
|
|
8164
|
-
const { OverlayedViewRegistry } = await import("./registry-
|
|
8457
|
+
const { OverlayedViewRegistry } = await import("./registry-GPXZQ7DT.js");
|
|
8165
8458
|
const registry = new OverlayedViewRegistry();
|
|
8166
8459
|
const mvRegistry = this.materializedViewRegistry;
|
|
8167
8460
|
const overlayNames = /* @__PURE__ */ new Set();
|
|
@@ -8208,13 +8501,13 @@ var Vault = class {
|
|
|
8208
8501
|
if (!reg) {
|
|
8209
8502
|
throw new Error(`refreshView: no MV registered with name "${name}"`);
|
|
8210
8503
|
}
|
|
8211
|
-
const { MaterializedViewExecutor } = await import("./executor-
|
|
8504
|
+
const { MaterializedViewExecutor } = await import("./executor-OIECZXTV.js");
|
|
8212
8505
|
const result = await MaterializedViewExecutor.refresh(reg, {
|
|
8213
8506
|
getCollection: (n) => this.collection(n),
|
|
8214
8507
|
getActiveTxContext: () => this.noydb._activeTxContextOrNull,
|
|
8215
8508
|
getQueryContext: () => this
|
|
8216
8509
|
});
|
|
8217
|
-
const { clearMVStale } = await import("./stale-
|
|
8510
|
+
const { clearMVStale } = await import("./stale-LX4BR43V.js");
|
|
8218
8511
|
clearMVStale(registry, name);
|
|
8219
8512
|
return result;
|
|
8220
8513
|
}
|
|
@@ -8230,7 +8523,7 @@ var Vault = class {
|
|
|
8230
8523
|
if (registry === null) return { derived: 0, failed: 0 };
|
|
8231
8524
|
const strategies = registry.strategiesForSource(sourceCollection);
|
|
8232
8525
|
if (strategies.length === 0) return { derived: 0, failed: 0 };
|
|
8233
|
-
const { DerivationExecutor } = await import("./executor-
|
|
8526
|
+
const { DerivationExecutor } = await import("./executor-ANFBCOYA.js");
|
|
8234
8527
|
const sourceColl = this.collection(sourceCollection);
|
|
8235
8528
|
const records = await sourceColl.list();
|
|
8236
8529
|
const ctx = { vault: this.derivationFacade ?? new (await import("./read-only-facade-5ADRJVTM.js")).ReadOnlyVaultFacade(this, "derivation") };
|
|
@@ -8255,7 +8548,7 @@ var Vault = class {
|
|
|
8255
8548
|
if (!outSpec) continue;
|
|
8256
8549
|
const outputColl = this.collection(outSpec.collection);
|
|
8257
8550
|
if (out.kind === "array") {
|
|
8258
|
-
const { loadFanoutSidecar, saveFanoutSidecar } = await import("./fanout-sidecar-
|
|
8551
|
+
const { loadFanoutSidecar, saveFanoutSidecar } = await import("./fanout-sidecar-DDKRG2MX.js");
|
|
8259
8552
|
const prior = await loadFanoutSidecar(this.adapter, this.name, spec.source, id, key, this.getDEK, this.encrypted);
|
|
8260
8553
|
const prevKeys = new Set(prior?.keys ?? []);
|
|
8261
8554
|
const newKeysList = out.entries.map((e) => e.key);
|
|
@@ -8477,7 +8770,7 @@ var Vault = class {
|
|
|
8477
8770
|
* collection.
|
|
8478
8771
|
*/
|
|
8479
8772
|
async delegate(opts) {
|
|
8480
|
-
const { issueDelegation, DELEGATIONS_COLLECTION } = await import("./delegation-
|
|
8773
|
+
const { issueDelegation, DELEGATIONS_COLLECTION } = await import("./delegation-4HUHUE6T.js");
|
|
8481
8774
|
if (!this.keyring.kek) {
|
|
8482
8775
|
throw new ValidationError(
|
|
8483
8776
|
"issueDelegation: keyring.kek is null \u2014 issuing a delegation requires a tier-1 unlock. Re-authenticate at tier 1 (passphrase) first."
|
|
@@ -8499,7 +8792,7 @@ var Vault = class {
|
|
|
8499
8792
|
* if the id does not exist.
|
|
8500
8793
|
*/
|
|
8501
8794
|
async revokeDelegation(id) {
|
|
8502
|
-
const { revokeDelegation, DELEGATIONS_COLLECTION } = await import("./delegation-
|
|
8795
|
+
const { revokeDelegation, DELEGATIONS_COLLECTION } = await import("./delegation-4HUHUE6T.js");
|
|
8503
8796
|
await revokeDelegation(this.adapter, this.name, id);
|
|
8504
8797
|
void DELEGATIONS_COLLECTION;
|
|
8505
8798
|
}
|
|
@@ -8849,7 +9142,7 @@ var Vault = class {
|
|
|
8849
9142
|
* @see https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/public-envelope.md
|
|
8850
9143
|
*/
|
|
8851
9144
|
async getPublicEnvelope(opts = {}) {
|
|
8852
|
-
const { readPublicEnvelope } = await import("./public-envelope-
|
|
9145
|
+
const { readPublicEnvelope } = await import("./public-envelope-WVRRUVAJ.js");
|
|
8853
9146
|
return readPublicEnvelope(this.adapter, this.name, opts);
|
|
8854
9147
|
}
|
|
8855
9148
|
/**
|
|
@@ -8864,7 +9157,7 @@ var Vault = class {
|
|
|
8864
9157
|
* both modes round-trip cleanly.
|
|
8865
9158
|
*/
|
|
8866
9159
|
async dump() {
|
|
8867
|
-
const { dumpVault } = await import("./backup-
|
|
9160
|
+
const { dumpVault } = await import("./backup-NGRJ46SH.js");
|
|
8868
9161
|
return dumpVault(this.backupContext());
|
|
8869
9162
|
}
|
|
8870
9163
|
/**
|
|
@@ -8916,7 +9209,7 @@ var Vault = class {
|
|
|
8916
9209
|
* — there's no chain to verify against.
|
|
8917
9210
|
*/
|
|
8918
9211
|
async load(backupJson) {
|
|
8919
|
-
const { loadVault } = await import("./backup-
|
|
9212
|
+
const { loadVault } = await import("./backup-NGRJ46SH.js");
|
|
8920
9213
|
return loadVault(this.backupContext(), backupJson);
|
|
8921
9214
|
}
|
|
8922
9215
|
/**
|
|
@@ -8948,7 +9241,7 @@ var Vault = class {
|
|
|
8948
9241
|
* way to detect tampering of an in-place vault.
|
|
8949
9242
|
*/
|
|
8950
9243
|
async verifyBackupIntegrity() {
|
|
8951
|
-
const { verifyBackupIntegrity } = await import("./backup-
|
|
9244
|
+
const { verifyBackupIntegrity } = await import("./backup-NGRJ46SH.js");
|
|
8952
9245
|
return verifyBackupIntegrity(this.backupContext());
|
|
8953
9246
|
}
|
|
8954
9247
|
/**
|
|
@@ -9166,7 +9459,7 @@ var Vault = class {
|
|
|
9166
9459
|
* is the live validator object, not a serialization of it).
|
|
9167
9460
|
*/
|
|
9168
9461
|
async exportJSON(opts = {}) {
|
|
9169
|
-
const { exportVaultJSON } = await import("./backup-
|
|
9462
|
+
const { exportVaultJSON } = await import("./backup-NGRJ46SH.js");
|
|
9170
9463
|
return exportVaultJSON(this.backupContext(), opts);
|
|
9171
9464
|
}
|
|
9172
9465
|
};
|
|
@@ -10993,7 +11286,7 @@ var Noydb = class {
|
|
|
10993
11286
|
if (!facade) return;
|
|
10994
11287
|
const ctx = { existing, vault: facade, userId: e.userId, role: e.role };
|
|
10995
11288
|
await registry.runChecks(e.collection, incoming, ctx);
|
|
10996
|
-
const { GuardExecutor } = await import("./executor-
|
|
11289
|
+
const { GuardExecutor } = await import("./executor-IKT47SH2.js");
|
|
10997
11290
|
for (const g of guards) {
|
|
10998
11291
|
await GuardExecutor.checkFrozenFields(g, e.docId, existing, incoming, e.computedFieldNames);
|
|
10999
11292
|
}
|
|
@@ -11170,6 +11463,7 @@ var Noydb = class {
|
|
|
11170
11463
|
...this.options.numbering !== void 0 ? { numberingConfigs: this.options.numbering } : {},
|
|
11171
11464
|
forgetStrategy: this.forgetStrategy,
|
|
11172
11465
|
...this.options.attestationStrategy !== void 0 ? { attestationStrategy: this.options.attestationStrategy } : {},
|
|
11466
|
+
...this.options.classifiedStrategy !== void 0 ? { classifiedStrategy: this.options.classifiedStrategy } : {},
|
|
11173
11467
|
...this.options.sealedRecordStrategy !== void 0 ? { sealedRecordStrategy: this.options.sealedRecordStrategy } : {},
|
|
11174
11468
|
...this.options.portabilityStrategy !== void 0 ? { portabilityStrategy: this.options.portabilityStrategy } : {},
|
|
11175
11469
|
...this.options.sequenceStrategy !== void 0 ? { sequenceStrategy: this.options.sequenceStrategy } : {},
|
|
@@ -11235,6 +11529,7 @@ var Noydb = class {
|
|
|
11235
11529
|
...this.options.numbering !== void 0 ? { numberingConfigs: this.options.numbering } : {},
|
|
11236
11530
|
forgetStrategy: this.forgetStrategy,
|
|
11237
11531
|
...this.options.attestationStrategy !== void 0 ? { attestationStrategy: this.options.attestationStrategy } : {},
|
|
11532
|
+
...this.options.classifiedStrategy !== void 0 ? { classifiedStrategy: this.options.classifiedStrategy } : {},
|
|
11238
11533
|
...this.options.sealedRecordStrategy !== void 0 ? { sealedRecordStrategy: this.options.sealedRecordStrategy } : {},
|
|
11239
11534
|
...this.options.portabilityStrategy !== void 0 ? { portabilityStrategy: this.options.portabilityStrategy } : {},
|
|
11240
11535
|
...this.options.sequenceStrategy !== void 0 ? { sequenceStrategy: this.options.sequenceStrategy } : {}
|
|
@@ -12231,7 +12526,7 @@ var Noydb = class {
|
|
|
12231
12526
|
"setPublicEnvelope: the public-envelope feature is not enabled. Pass `publicEnvelope: true` (or a schema object) to `createNoydb`."
|
|
12232
12527
|
);
|
|
12233
12528
|
}
|
|
12234
|
-
const { loadPublicEnvelope, savePublicEnvelope, resolveSchema, validatePublicEnvelopeInput } = await import("./public-envelope-
|
|
12529
|
+
const { loadPublicEnvelope, savePublicEnvelope, resolveSchema, validatePublicEnvelopeInput } = await import("./public-envelope-WVRRUVAJ.js");
|
|
12235
12530
|
const schema = resolveSchema(this.options.publicEnvelope);
|
|
12236
12531
|
validatePublicEnvelopeInput(input, schema);
|
|
12237
12532
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -12260,7 +12555,7 @@ var Noydb = class {
|
|
|
12260
12555
|
* regardless).
|
|
12261
12556
|
*/
|
|
12262
12557
|
async getPublicEnvelope(vault, opts = {}) {
|
|
12263
|
-
const { readPublicEnvelope } = await import("./public-envelope-
|
|
12558
|
+
const { readPublicEnvelope } = await import("./public-envelope-WVRRUVAJ.js");
|
|
12264
12559
|
return readPublicEnvelope(this.options.store, vault, opts);
|
|
12265
12560
|
}
|
|
12266
12561
|
// ─── Auth introspection ─────────────────────────────────────────
|
|
@@ -12451,9 +12746,9 @@ async function createNoydb(options) {
|
|
|
12451
12746
|
throw new ValidationError("A secret (passphrase) or getKeyring callback is required when encryption is enabled");
|
|
12452
12747
|
}
|
|
12453
12748
|
if (!options.coordinationStrategy) options = { ...options, coordinationStrategy: await createDefaultCoordinationProvider(options.store) };
|
|
12454
|
-
if (!options.userApiFactory) options = { ...options, userApiFactory: (await import("./api-
|
|
12749
|
+
if (!options.userApiFactory) options = { ...options, userApiFactory: (await import("./api-LORZ2EZU.js")).createUserApi };
|
|
12455
12750
|
if (!options.policyFactory) {
|
|
12456
|
-
const policyModule = await import("./policy-
|
|
12751
|
+
const policyModule = await import("./policy-LRE6HTO5.js");
|
|
12457
12752
|
options = { ...options, policyFactory: policyModule.createNoydbPolicy, policyCheckGateFn: policyModule.checkGate };
|
|
12458
12753
|
}
|
|
12459
12754
|
return new Noydb(options);
|
|
@@ -12499,4 +12794,4 @@ export {
|
|
|
12499
12794
|
Noydb,
|
|
12500
12795
|
createNoydb
|
|
12501
12796
|
};
|
|
12502
|
-
//# sourceMappingURL=chunk-
|
|
12797
|
+
//# sourceMappingURL=chunk-ADBMJDBW.js.map
|