@struktoai/mirage-node 0.0.4 → 0.0.5-alpha.1
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/README.md +2 -1
- package/dist/aliyun-S62BR3TB.js +11 -0
- package/dist/append.lua +17 -0
- package/dist/backblaze-4EKSW63F.js +11 -0
- package/dist/box-ZPLZAGMK.js +8 -0
- package/dist/ceph-ALKLD3MO.js +11 -0
- package/dist/{chunk-VLRSOWHP.js → chunk-2A4YGVBM.js} +5 -14
- package/dist/chunk-2A4YGVBM.js.map +1 -0
- package/dist/chunk-2HCYLVGY.js +28 -0
- package/dist/chunk-2HCYLVGY.js.map +1 -0
- package/dist/chunk-2VPZAH5Q.js +20 -0
- package/dist/chunk-2VPZAH5Q.js.map +1 -0
- package/dist/{chunk-HCU3B6FW.js → chunk-3JZQ6VSZ.js} +5 -4
- package/dist/chunk-3JZQ6VSZ.js.map +1 -0
- package/dist/chunk-4IF4TGAI.js +11 -0
- package/dist/chunk-4IF4TGAI.js.map +1 -0
- package/dist/{chunk-L7FEZ7LU.js → chunk-5H6KNEPP.js} +4 -5
- package/dist/{chunk-L7FEZ7LU.js.map → chunk-5H6KNEPP.js.map} +1 -1
- package/dist/{chunk-25W4XQJZ.js → chunk-5K2MWDCE.js} +4 -5
- package/dist/{chunk-25W4XQJZ.js.map → chunk-5K2MWDCE.js.map} +1 -1
- package/dist/{chunk-L4GMDSMB.js → chunk-6SVXWRKX.js} +4 -5
- package/dist/{chunk-L4GMDSMB.js.map → chunk-6SVXWRKX.js.map} +1 -1
- package/dist/{chunk-H62XQZUM.js → chunk-6VOIUGAD.js} +22 -10
- package/dist/chunk-6VOIUGAD.js.map +1 -0
- package/dist/{chunk-SI4GMRXD.js → chunk-7JYHFXXC.js} +4 -8
- package/dist/chunk-7JYHFXXC.js.map +1 -0
- package/dist/chunk-7VQQFWV6.js +20 -0
- package/dist/chunk-7VQQFWV6.js.map +1 -0
- package/dist/chunk-7ZP6TPHX.js +87 -0
- package/dist/chunk-7ZP6TPHX.js.map +1 -0
- package/dist/{chunk-HWQPEBID.js → chunk-ADEXNSYU.js} +6 -12
- package/dist/chunk-ADEXNSYU.js.map +1 -0
- package/dist/chunk-AQSYAXL4.js +16 -0
- package/dist/chunk-AQSYAXL4.js.map +1 -0
- package/dist/{chunk-NJ42VNXG.js → chunk-ATLXMNKD.js} +8 -3
- package/dist/chunk-ATLXMNKD.js.map +1 -0
- package/dist/{chunk-CB76WPUS.js → chunk-BYCUGFRF.js} +5 -4
- package/dist/chunk-BYCUGFRF.js.map +1 -0
- package/dist/{chunk-4M73WHIE.js → chunk-BZTVYOES.js} +3 -3
- package/dist/{chunk-CQCTCW4S.js → chunk-CRC4YWXB.js} +28 -9
- package/dist/chunk-CRC4YWXB.js.map +1 -0
- package/dist/{chunk-C7TNKIK5.js → chunk-CTGXJHO5.js} +1 -1
- package/dist/chunk-CTGXJHO5.js.map +1 -0
- package/dist/{chunk-HSD24IP2.js → chunk-DCDBIXVZ.js} +7 -2
- package/dist/chunk-DCDBIXVZ.js.map +1 -0
- package/dist/{chunk-HEDE2377.js → chunk-DDAFNROK.js} +318 -322
- package/dist/chunk-DDAFNROK.js.map +1 -0
- package/dist/chunk-DQIEWEAW.js +85 -0
- package/dist/chunk-DQIEWEAW.js.map +1 -0
- package/dist/{chunk-2ERLWAGG.js → chunk-EBI4IHDC.js} +20 -11
- package/dist/chunk-EBI4IHDC.js.map +1 -0
- package/dist/{chunk-RHUEV4I7.js → chunk-EIUTZ6N7.js} +10 -24
- package/dist/chunk-EIUTZ6N7.js.map +1 -0
- package/dist/{chunk-IUXXZHY3.js → chunk-EJZG5VUF.js} +24 -12
- package/dist/chunk-EJZG5VUF.js.map +1 -0
- package/dist/{chunk-BWWU5T2D.js → chunk-ENW5BVYN.js} +3 -3
- package/dist/{chunk-F5NWRF32.js → chunk-ETIAW4YD.js} +3 -3
- package/dist/chunk-EUPXAYPB.js +20 -0
- package/dist/chunk-EUPXAYPB.js.map +1 -0
- package/dist/{chunk-EGZNOUMH.js → chunk-FA6YNU75.js} +4 -5
- package/dist/{chunk-EGZNOUMH.js.map → chunk-FA6YNU75.js.map} +1 -1
- package/dist/{chunk-XUUSWR4U.js → chunk-FFH6R5VQ.js} +7 -2
- package/dist/{chunk-XUUSWR4U.js.map → chunk-FFH6R5VQ.js.map} +1 -1
- package/dist/{chunk-JEBH5APX.js → chunk-GE6H2COM.js} +5 -13
- package/dist/chunk-GE6H2COM.js.map +1 -0
- package/dist/{chunk-TUNR4VUM.js → chunk-GMMQ3ZK4.js} +3 -3
- package/dist/{chunk-SAOQW6ZJ.js → chunk-GSGE3M5P.js} +5 -13
- package/dist/chunk-GSGE3M5P.js.map +1 -0
- package/dist/{chunk-FRGTDZQT.js → chunk-H64SB6VO.js} +19 -5
- package/dist/chunk-H64SB6VO.js.map +1 -0
- package/dist/{chunk-DXU7NZPH.js → chunk-HCRYAFBI.js} +3 -3
- package/dist/{chunk-OSVZKYXS.js → chunk-HOPUP6LA.js} +192 -156
- package/dist/chunk-HOPUP6LA.js.map +1 -0
- package/dist/chunk-HS24BL6W.js +160 -0
- package/dist/chunk-HS24BL6W.js.map +1 -0
- package/dist/chunk-HVYVG5KQ.js +16 -0
- package/dist/chunk-HVYVG5KQ.js.map +1 -0
- package/dist/{chunk-XEMLYWHK.js → chunk-I7CPLZNW.js} +4 -5
- package/dist/{chunk-XEMLYWHK.js.map → chunk-I7CPLZNW.js.map} +1 -1
- package/dist/{chunk-AULFV3KY.js → chunk-IFUCGI4I.js} +7 -2
- package/dist/chunk-IFUCGI4I.js.map +1 -0
- package/dist/{chunk-HGIPWY5Y.js → chunk-IFYXSSKR.js} +6 -6
- package/dist/chunk-IFYXSSKR.js.map +1 -0
- package/dist/chunk-IXA4DQE4.js +20 -0
- package/dist/chunk-IXA4DQE4.js.map +1 -0
- package/dist/chunk-IZMKMD3O.js +11 -0
- package/dist/chunk-IZMKMD3O.js.map +1 -0
- package/dist/{chunk-4X6CLF4F.js → chunk-JJERW2BI.js} +4 -5
- package/dist/{chunk-4X6CLF4F.js.map → chunk-JJERW2BI.js.map} +1 -1
- package/dist/{chunk-M6E7VK4D.js → chunk-JQR4HVUX.js} +2 -5
- package/dist/chunk-JQR4HVUX.js.map +1 -0
- package/dist/{chunk-BWLUBJQG.js → chunk-JXOMDLFS.js} +6 -15
- package/dist/chunk-JXOMDLFS.js.map +1 -0
- package/dist/{chunk-5ZHNPNDD.js → chunk-KIX6N7NT.js} +198 -141
- package/dist/chunk-KIX6N7NT.js.map +1 -0
- package/dist/{chunk-XFSEADPC.js → chunk-L42UTDFK.js} +7 -2
- package/dist/chunk-L42UTDFK.js.map +1 -0
- package/dist/chunk-M2UF2JHJ.js +11 -0
- package/dist/chunk-M2UF2JHJ.js.map +1 -0
- package/dist/{chunk-LPLZLSMK.js → chunk-MONC734W.js} +7 -2
- package/dist/chunk-MONC734W.js.map +1 -0
- package/dist/{chunk-XADEMW6B.js → chunk-N72RLCMU.js} +4 -5
- package/dist/{chunk-XADEMW6B.js.map → chunk-N72RLCMU.js.map} +1 -1
- package/dist/{chunk-ZPB3SLPK.js → chunk-ND4IWJ4V.js} +7 -2
- package/dist/chunk-ND4IWJ4V.js.map +1 -0
- package/dist/{chunk-ZPZQXHW2.js → chunk-NZ3EKGW4.js} +260 -178
- package/dist/chunk-NZ3EKGW4.js.map +1 -0
- package/dist/{chunk-E3KXVEYI.js → chunk-OAE57MNL.js} +22 -10
- package/dist/chunk-OAE57MNL.js.map +1 -0
- package/dist/{chunk-JBDFYIN2.js → chunk-OHKGIQB4.js} +2 -5
- package/dist/chunk-OHKGIQB4.js.map +1 -0
- package/dist/{chunk-V7JVMG63.js → chunk-OXEQSPND.js} +3 -3
- package/dist/{chunk-YRJICL2Q.js → chunk-PKNE5J2B.js} +5 -13
- package/dist/chunk-PKNE5J2B.js.map +1 -0
- package/dist/chunk-PSXXEGYQ.js +16 -0
- package/dist/chunk-PSXXEGYQ.js.map +1 -0
- package/dist/{chunk-KAWDDS27.js → chunk-QAOVABCR.js} +7 -2
- package/dist/chunk-QAOVABCR.js.map +1 -0
- package/dist/{chunk-SYMNWNC3.js → chunk-QQ7FP4GD.js} +4 -5
- package/dist/{chunk-SYMNWNC3.js.map → chunk-QQ7FP4GD.js.map} +1 -1
- package/dist/{chunk-3JZN3GYO.js → chunk-QYLVMC6B.js} +2 -5
- package/dist/chunk-QYLVMC6B.js.map +1 -0
- package/dist/{chunk-CXQGMFI7.js → chunk-RX3XR65X.js} +4 -5
- package/dist/{chunk-CXQGMFI7.js.map → chunk-RX3XR65X.js.map} +1 -1
- package/dist/{chunk-MRXTUFBZ.js → chunk-RYQJJB4C.js} +1 -1
- package/dist/chunk-RYQJJB4C.js.map +1 -0
- package/dist/{chunk-5I7Q7RHW.js → chunk-TUF7TCN7.js} +4 -5
- package/dist/{chunk-5I7Q7RHW.js.map → chunk-TUF7TCN7.js.map} +1 -1
- package/dist/{chunk-NLXJMXVE.js → chunk-TUX36JY5.js} +4 -5
- package/dist/{chunk-NLXJMXVE.js.map → chunk-TUX36JY5.js.map} +1 -1
- package/dist/{chunk-4GYB7DGC.js → chunk-TWRQCQWU.js} +327 -558
- package/dist/chunk-TWRQCQWU.js.map +1 -0
- package/dist/chunk-U6DFQRG3.js +20 -0
- package/dist/chunk-U6DFQRG3.js.map +1 -0
- package/dist/chunk-VI5YTKNY.js +20 -0
- package/dist/chunk-VI5YTKNY.js.map +1 -0
- package/dist/{chunk-W5ZLIQFR.js → chunk-WG5YS6TC.js} +308 -200
- package/dist/chunk-WG5YS6TC.js.map +1 -0
- package/dist/{chunk-ZM44MGC5.js → chunk-WMJJ4WGF.js} +4 -5
- package/dist/{chunk-ZM44MGC5.js.map → chunk-WMJJ4WGF.js.map} +1 -1
- package/dist/{chunk-5YRWF5RP.js → chunk-WY4FNH42.js} +6 -5
- package/dist/chunk-WY4FNH42.js.map +1 -0
- package/dist/{chunk-VBYIDRNU.js → chunk-XIG5BWWH.js} +19 -10
- package/dist/chunk-XIG5BWWH.js.map +1 -0
- package/dist/chunk-XJBC3OYX.js +11 -0
- package/dist/chunk-XJBC3OYX.js.map +1 -0
- package/dist/{chunk-ZMREYTHA.js → chunk-XPRDXWK7.js} +8 -8
- package/dist/chunk-XPRDXWK7.js.map +1 -0
- package/dist/chunk-YKRQSZS7.js +96 -0
- package/dist/chunk-YKRQSZS7.js.map +1 -0
- package/dist/{chunk-IEVLWEBO.js → chunk-YMBL3VJB.js} +9 -8
- package/dist/chunk-YMBL3VJB.js.map +1 -0
- package/dist/{chunk-CGGO5NKD.js → chunk-YUJBXFYK.js} +357 -346
- package/dist/chunk-YUJBXFYK.js.map +1 -0
- package/dist/{chunk-S4KVLPBR.js → chunk-YZ4ZJNOL.js} +22 -10
- package/dist/chunk-YZ4ZJNOL.js.map +1 -0
- package/dist/chunk-ZTHVEXIV.js +11 -0
- package/dist/chunk-ZTHVEXIV.js.map +1 -0
- package/dist/{chunk-VHED2STW.js → chunk-ZVSYUCYS.js} +2 -1
- package/dist/chunk-ZVSYUCYS.js.map +1 -0
- package/dist/{config-T2IUIU5C.js → config-2YBCHU2W.js} +2 -2
- package/dist/{config-M3Z47VYU.js → config-3YRGRW72.js} +3 -2
- package/dist/config-4GSOMUMF.js +9 -0
- package/dist/config-5YBUWFUP.js +9 -0
- package/dist/{config-2LASFFRD.js → config-5ZRKJTKG.js} +3 -2
- package/dist/{config-W7EVPJNK.js → config-A25LTL5W.js} +2 -2
- package/dist/{config-WKQ3FGTZ.js → config-CLU7JABG.js} +2 -2
- package/dist/{config-E22XAGYN.js → config-D2RF7L3N.js} +2 -2
- package/dist/{config-HQXNFQZS.js → config-E55TKM6K.js} +2 -2
- package/dist/config-ELDOFRJW.js +9 -0
- package/dist/{config-EX3ZJTZI.js → config-FPC3RBFD.js} +2 -2
- package/dist/config-FPM3LAW7.js +9 -0
- package/dist/{config-IPNWAJHH.js → config-G3F54CS4.js} +3 -2
- package/dist/{config-BBOLI7VE.js → config-G43HRUI3.js} +2 -2
- package/dist/{config-QO2XUME4.js → config-GG3WO5PB.js} +3 -2
- package/dist/{config-QWQGOXQ5.js → config-JUYBWAZE.js} +2 -2
- package/dist/{config-SPW6NESU.js → config-LJ5T6TVA.js} +2 -2
- package/dist/{config-WVILHDFV.js → config-MDSAE4O3.js} +2 -2
- package/dist/{config-MZM3IPFM.js → config-NRIOKK5T.js} +2 -2
- package/dist/{config-L7SBSH5L.js → config-OYK2BSJK.js} +2 -2
- package/dist/config-PB3KA2CE.js +9 -0
- package/dist/{config-54USUVSE.js → config-QY4IL3PH.js} +3 -2
- package/dist/{config-VKKZGC7V.js → config-R4LAOEDS.js} +2 -2
- package/dist/{config-FRK7ZL37.js → config-RIAAD6RW.js} +3 -2
- package/dist/{config-J2C53GOT.js → config-SYNEQAUB.js} +2 -2
- package/dist/{config-XU6D5C7E.js → config-TJKGYA2B.js} +3 -2
- package/dist/{config-DWSJL3NH.js → config-UURRGA7U.js} +4 -2
- package/dist/{config-BIBFLUIR.js → config-VPLHQXVE.js} +2 -2
- package/dist/config-WRACCRPN.js +9 -0
- package/dist/{config-OJ2BPESH.js → config-WVHKXEVE.js} +3 -2
- package/dist/{config-CPYFOUQO.js → config-XU7R36IE.js} +3 -2
- package/dist/{config-A2GQYJDB.js → config-Y2KOUYSS.js} +2 -2
- package/dist/databricks_volume-CNCPTZHS.js +7 -0
- package/dist/digitalocean-DJZOUB6Q.js +11 -0
- package/dist/discord-ETB2CADR.js +7 -0
- package/dist/disk-WEHSTK3F.js +7 -0
- package/dist/dropbox-XN6PGLNE.js +8 -0
- package/dist/email-OV7XCP3T.js +8 -0
- package/dist/gcal-P56MRCGU.js +8 -0
- package/dist/gcs-HFBIAE2C.js +10 -0
- package/dist/gdocs-LQ3UXP3J.js +8 -0
- package/dist/gdrive-N6UBYLON.js +8 -0
- package/dist/github-BPZREGPI.js +8 -0
- package/dist/github_ci-7A4LUIZ7.js +8 -0
- package/dist/{gmail-2TBT4CVH.js → gmail-YED2MF6H.js} +2 -2
- package/dist/gridfs-CPLQ4G62.js +9 -0
- package/dist/gsheets-4BNIJPQ6.js +8 -0
- package/dist/gslides-GDBYLO5A.js +8 -0
- package/dist/hf_buckets-FTJITQ3P.js +10 -0
- package/dist/hf_datasets-6GXVKQD7.js +10 -0
- package/dist/hf_models-PJPGZAC5.js +10 -0
- package/dist/hf_spaces-LFNFOLBF.js +10 -0
- package/dist/index.d.ts +897 -609
- package/dist/index.js +2371 -781
- package/dist/index.js.map +1 -1
- package/dist/jaeger-GCA6MJ6E.js +8 -0
- package/dist/lancedb-TJ5YSJY5.js +7 -0
- package/dist/langfuse-RUMTUMXS.js +8 -0
- package/dist/linear-BCE4KEAC.js +7 -0
- package/dist/minio-5SO6KBTK.js +11 -0
- package/dist/mongodb-L5CMN2EE.js +7 -0
- package/dist/nextcloud-4O2LZVW2.js +9 -0
- package/dist/notion-RVKEAQ2M.js +7 -0
- package/dist/oci-OQXOIC62.js +10 -0
- package/dist/postgres-AV45GNRS.js +7 -0
- package/dist/qingstor-W277YA4K.js +11 -0
- package/dist/r2-FUA4IORE.js +10 -0
- package/dist/{redis-6D55Q2WB.js → redis-LPS357NF.js} +2 -2
- package/dist/s3-FPNWWIVM.js +8 -0
- package/dist/scaleway-BP3732U7.js +11 -0
- package/dist/seaweedfs-MC6HIEP4.js +11 -0
- package/dist/slack-JFGW7VLN.js +7 -0
- package/dist/ssh-UYPG42LM.js +8 -0
- package/dist/supabase-A3KUFMDC.js +10 -0
- package/dist/tencent-5464UQ2X.js +11 -0
- package/dist/trello-O2KB3FUO.js +8 -0
- package/dist/wasabi-2IKBIWNO.js +10 -0
- package/dist/wasabi-2IKBIWNO.js.map +1 -0
- package/package.json +15 -3
- package/dist/aliyun-PGI57A43.js +0 -10
- package/dist/backblaze-TSPL6Y56.js +0 -10
- package/dist/box-7XTZYDSO.js +0 -8
- package/dist/ceph-C265UI5T.js +0 -10
- package/dist/chunk-2ERLWAGG.js.map +0 -1
- package/dist/chunk-2QNPKPZZ.js +0 -59
- package/dist/chunk-2QNPKPZZ.js.map +0 -1
- package/dist/chunk-3ASOQTZB.js +0 -59
- package/dist/chunk-3ASOQTZB.js.map +0 -1
- package/dist/chunk-3JZN3GYO.js.map +0 -1
- package/dist/chunk-4GYB7DGC.js.map +0 -1
- package/dist/chunk-5YRWF5RP.js.map +0 -1
- package/dist/chunk-5ZHNPNDD.js.map +0 -1
- package/dist/chunk-AULFV3KY.js.map +0 -1
- package/dist/chunk-BWLUBJQG.js.map +0 -1
- package/dist/chunk-C7TNKIK5.js.map +0 -1
- package/dist/chunk-CB76WPUS.js.map +0 -1
- package/dist/chunk-CGGO5NKD.js.map +0 -1
- package/dist/chunk-CQCTCW4S.js.map +0 -1
- package/dist/chunk-D3U7VQCG.js +0 -25
- package/dist/chunk-D3U7VQCG.js.map +0 -1
- package/dist/chunk-E3KXVEYI.js.map +0 -1
- package/dist/chunk-EVK6HH6Z.js +0 -17
- package/dist/chunk-EVK6HH6Z.js.map +0 -1
- package/dist/chunk-FRGTDZQT.js.map +0 -1
- package/dist/chunk-GF75O2EN.js +0 -54
- package/dist/chunk-GF75O2EN.js.map +0 -1
- package/dist/chunk-GTAS3QVC.js +0 -25
- package/dist/chunk-GTAS3QVC.js.map +0 -1
- package/dist/chunk-H62XQZUM.js.map +0 -1
- package/dist/chunk-HCU3B6FW.js.map +0 -1
- package/dist/chunk-HEDE2377.js.map +0 -1
- package/dist/chunk-HGIPWY5Y.js.map +0 -1
- package/dist/chunk-HSD24IP2.js.map +0 -1
- package/dist/chunk-HWQPEBID.js.map +0 -1
- package/dist/chunk-IEHPTILN.js +0 -21
- package/dist/chunk-IEHPTILN.js.map +0 -1
- package/dist/chunk-IEVLWEBO.js.map +0 -1
- package/dist/chunk-IKJQOYI4.js +0 -26
- package/dist/chunk-IKJQOYI4.js.map +0 -1
- package/dist/chunk-IUXXZHY3.js.map +0 -1
- package/dist/chunk-JBDFYIN2.js.map +0 -1
- package/dist/chunk-JEBH5APX.js.map +0 -1
- package/dist/chunk-JHI2PHHD.js +0 -25
- package/dist/chunk-JHI2PHHD.js.map +0 -1
- package/dist/chunk-KAWDDS27.js.map +0 -1
- package/dist/chunk-KGC2OGXI.js +0 -27
- package/dist/chunk-KGC2OGXI.js.map +0 -1
- package/dist/chunk-LPLZLSMK.js.map +0 -1
- package/dist/chunk-M6E7VK4D.js.map +0 -1
- package/dist/chunk-MIQ3ECZM.js +0 -54
- package/dist/chunk-MIQ3ECZM.js.map +0 -1
- package/dist/chunk-MRXTUFBZ.js.map +0 -1
- package/dist/chunk-NJ42VNXG.js.map +0 -1
- package/dist/chunk-OSVZKYXS.js.map +0 -1
- package/dist/chunk-RHUEV4I7.js.map +0 -1
- package/dist/chunk-S4KVLPBR.js.map +0 -1
- package/dist/chunk-SAOQW6ZJ.js.map +0 -1
- package/dist/chunk-SI4GMRXD.js.map +0 -1
- package/dist/chunk-UAJYJP5C.js +0 -59
- package/dist/chunk-UAJYJP5C.js.map +0 -1
- package/dist/chunk-UYA3XL3J.js +0 -54
- package/dist/chunk-UYA3XL3J.js.map +0 -1
- package/dist/chunk-VBYIDRNU.js.map +0 -1
- package/dist/chunk-VHED2STW.js.map +0 -1
- package/dist/chunk-VIICUPWQ.js +0 -23
- package/dist/chunk-VIICUPWQ.js.map +0 -1
- package/dist/chunk-VLRSOWHP.js.map +0 -1
- package/dist/chunk-W5ZLIQFR.js.map +0 -1
- package/dist/chunk-WTSSEUOZ.js +0 -59
- package/dist/chunk-WTSSEUOZ.js.map +0 -1
- package/dist/chunk-WWP2STF5.js +0 -59
- package/dist/chunk-WWP2STF5.js.map +0 -1
- package/dist/chunk-XFSEADPC.js.map +0 -1
- package/dist/chunk-YBVMZ7SR.js +0 -59
- package/dist/chunk-YBVMZ7SR.js.map +0 -1
- package/dist/chunk-YRJICL2Q.js.map +0 -1
- package/dist/chunk-ZMREYTHA.js.map +0 -1
- package/dist/chunk-ZPB3SLPK.js.map +0 -1
- package/dist/chunk-ZPZQXHW2.js.map +0 -1
- package/dist/config-3WDIJPTG.js +0 -9
- package/dist/config-4QV4QYI5.js +0 -9
- package/dist/config-5ZXN2T2H.js +0 -9
- package/dist/config-EHE52ZTK.js +0 -9
- package/dist/config-HTXOOAOD.js +0 -9
- package/dist/config-K63RX6EU.js +0 -9
- package/dist/config-LEALEMKA.js +0 -9
- package/dist/config-RI7IEZUF.js +0 -9
- package/dist/databricks_volume-ETRDJVVQ.js +0 -7
- package/dist/digitalocean-QP72DR4J.js +0 -10
- package/dist/discord-BSN5RB3E.js +0 -8
- package/dist/disk-24NWTN2I.js +0 -7
- package/dist/dropbox-OSTZXSIE.js +0 -8
- package/dist/email-4ZFPSWIN.js +0 -8
- package/dist/gcs-PFWR6MIW.js +0 -10
- package/dist/gdocs-GPAZRQG5.js +0 -8
- package/dist/gdrive-XSX6A7B3.js +0 -8
- package/dist/github-EQ4NXUTA.js +0 -8
- package/dist/github_ci-QL5B2Q2N.js +0 -8
- package/dist/gridfs-KZRZ6SIB.js +0 -9
- package/dist/gsheets-N53WEXN2.js +0 -8
- package/dist/gslides-TATSARTH.js +0 -8
- package/dist/hf_buckets-BK7NGJWS.js +0 -10
- package/dist/hf_datasets-UQ5QGM4L.js +0 -10
- package/dist/hf_models-75LFCQCS.js +0 -10
- package/dist/hf_spaces-6T2KB3UC.js +0 -10
- package/dist/langfuse-AMQCQWNE.js +0 -8
- package/dist/linear-V3TXO6CV.js +0 -8
- package/dist/minio-IZRZY4C5.js +0 -10
- package/dist/mongodb-VMKPQCPX.js +0 -7
- package/dist/nextcloud-5RHQCGDO.js +0 -9
- package/dist/notion-6PPNTQFM.js +0 -8
- package/dist/oci-CKYBSFZJ.js +0 -10
- package/dist/postgres-WIQBVL5M.js +0 -7
- package/dist/qingstor-AP4IIPLY.js +0 -10
- package/dist/r2-C4XGEWQY.js +0 -10
- package/dist/s3-XQBI2CXN.js +0 -8
- package/dist/scaleway-SEZJVURB.js +0 -10
- package/dist/seaweedfs-3XYIAFU2.js +0 -10
- package/dist/slack-ZHXDJQY4.js +0 -8
- package/dist/ssh-X2MO7JOV.js +0 -8
- package/dist/supabase-BBM44UTM.js +0 -10
- package/dist/tencent-X72USLJ7.js +0 -10
- package/dist/trello-EER5NG7L.js +0 -8
- package/dist/wasabi-O4MVIUFG.js +0 -10
- /package/dist/{aliyun-PGI57A43.js.map → aliyun-S62BR3TB.js.map} +0 -0
- /package/dist/{backblaze-TSPL6Y56.js.map → backblaze-4EKSW63F.js.map} +0 -0
- /package/dist/{box-7XTZYDSO.js.map → box-ZPLZAGMK.js.map} +0 -0
- /package/dist/{ceph-C265UI5T.js.map → ceph-ALKLD3MO.js.map} +0 -0
- /package/dist/{chunk-4M73WHIE.js.map → chunk-BZTVYOES.js.map} +0 -0
- /package/dist/{chunk-BWWU5T2D.js.map → chunk-ENW5BVYN.js.map} +0 -0
- /package/dist/{chunk-F5NWRF32.js.map → chunk-ETIAW4YD.js.map} +0 -0
- /package/dist/{chunk-TUNR4VUM.js.map → chunk-GMMQ3ZK4.js.map} +0 -0
- /package/dist/{chunk-DXU7NZPH.js.map → chunk-HCRYAFBI.js.map} +0 -0
- /package/dist/{chunk-V7JVMG63.js.map → chunk-OXEQSPND.js.map} +0 -0
- /package/dist/{config-2LASFFRD.js.map → config-2YBCHU2W.js.map} +0 -0
- /package/dist/{config-3WDIJPTG.js.map → config-3YRGRW72.js.map} +0 -0
- /package/dist/{config-4QV4QYI5.js.map → config-4GSOMUMF.js.map} +0 -0
- /package/dist/{config-54USUVSE.js.map → config-5YBUWFUP.js.map} +0 -0
- /package/dist/{config-5ZXN2T2H.js.map → config-5ZRKJTKG.js.map} +0 -0
- /package/dist/{config-A2GQYJDB.js.map → config-A25LTL5W.js.map} +0 -0
- /package/dist/{config-BBOLI7VE.js.map → config-CLU7JABG.js.map} +0 -0
- /package/dist/{config-BIBFLUIR.js.map → config-D2RF7L3N.js.map} +0 -0
- /package/dist/{config-CPYFOUQO.js.map → config-E55TKM6K.js.map} +0 -0
- /package/dist/{config-DWSJL3NH.js.map → config-ELDOFRJW.js.map} +0 -0
- /package/dist/{config-E22XAGYN.js.map → config-FPC3RBFD.js.map} +0 -0
- /package/dist/{config-EHE52ZTK.js.map → config-FPM3LAW7.js.map} +0 -0
- /package/dist/{config-EX3ZJTZI.js.map → config-G3F54CS4.js.map} +0 -0
- /package/dist/{config-FRK7ZL37.js.map → config-G43HRUI3.js.map} +0 -0
- /package/dist/{config-HQXNFQZS.js.map → config-GG3WO5PB.js.map} +0 -0
- /package/dist/{config-HTXOOAOD.js.map → config-JUYBWAZE.js.map} +0 -0
- /package/dist/{config-IPNWAJHH.js.map → config-LJ5T6TVA.js.map} +0 -0
- /package/dist/{config-J2C53GOT.js.map → config-MDSAE4O3.js.map} +0 -0
- /package/dist/{config-K63RX6EU.js.map → config-NRIOKK5T.js.map} +0 -0
- /package/dist/{config-L7SBSH5L.js.map → config-OYK2BSJK.js.map} +0 -0
- /package/dist/{config-LEALEMKA.js.map → config-PB3KA2CE.js.map} +0 -0
- /package/dist/{config-M3Z47VYU.js.map → config-QY4IL3PH.js.map} +0 -0
- /package/dist/{config-MZM3IPFM.js.map → config-R4LAOEDS.js.map} +0 -0
- /package/dist/{config-OJ2BPESH.js.map → config-RIAAD6RW.js.map} +0 -0
- /package/dist/{config-QO2XUME4.js.map → config-SYNEQAUB.js.map} +0 -0
- /package/dist/{config-QWQGOXQ5.js.map → config-TJKGYA2B.js.map} +0 -0
- /package/dist/{config-RI7IEZUF.js.map → config-UURRGA7U.js.map} +0 -0
- /package/dist/{config-SPW6NESU.js.map → config-VPLHQXVE.js.map} +0 -0
- /package/dist/{config-T2IUIU5C.js.map → config-WRACCRPN.js.map} +0 -0
- /package/dist/{config-VKKZGC7V.js.map → config-WVHKXEVE.js.map} +0 -0
- /package/dist/{config-W7EVPJNK.js.map → config-XU7R36IE.js.map} +0 -0
- /package/dist/{config-WKQ3FGTZ.js.map → config-Y2KOUYSS.js.map} +0 -0
- /package/dist/{config-WVILHDFV.js.map → databricks_volume-CNCPTZHS.js.map} +0 -0
- /package/dist/{config-XU6D5C7E.js.map → digitalocean-DJZOUB6Q.js.map} +0 -0
- /package/dist/{databricks_volume-ETRDJVVQ.js.map → discord-ETB2CADR.js.map} +0 -0
- /package/dist/{digitalocean-QP72DR4J.js.map → disk-WEHSTK3F.js.map} +0 -0
- /package/dist/{discord-BSN5RB3E.js.map → dropbox-XN6PGLNE.js.map} +0 -0
- /package/dist/{disk-24NWTN2I.js.map → email-OV7XCP3T.js.map} +0 -0
- /package/dist/{dropbox-OSTZXSIE.js.map → gcal-P56MRCGU.js.map} +0 -0
- /package/dist/{email-4ZFPSWIN.js.map → gcs-HFBIAE2C.js.map} +0 -0
- /package/dist/{gcs-PFWR6MIW.js.map → gdocs-LQ3UXP3J.js.map} +0 -0
- /package/dist/{gdocs-GPAZRQG5.js.map → gdrive-N6UBYLON.js.map} +0 -0
- /package/dist/{gdrive-XSX6A7B3.js.map → github-BPZREGPI.js.map} +0 -0
- /package/dist/{github-EQ4NXUTA.js.map → github_ci-7A4LUIZ7.js.map} +0 -0
- /package/dist/{github_ci-QL5B2Q2N.js.map → gmail-YED2MF6H.js.map} +0 -0
- /package/dist/{gmail-2TBT4CVH.js.map → gridfs-CPLQ4G62.js.map} +0 -0
- /package/dist/{gridfs-KZRZ6SIB.js.map → gsheets-4BNIJPQ6.js.map} +0 -0
- /package/dist/{gsheets-N53WEXN2.js.map → gslides-GDBYLO5A.js.map} +0 -0
- /package/dist/{gslides-TATSARTH.js.map → hf_buckets-FTJITQ3P.js.map} +0 -0
- /package/dist/{hf_buckets-BK7NGJWS.js.map → hf_datasets-6GXVKQD7.js.map} +0 -0
- /package/dist/{hf_datasets-UQ5QGM4L.js.map → hf_models-PJPGZAC5.js.map} +0 -0
- /package/dist/{hf_models-75LFCQCS.js.map → hf_spaces-LFNFOLBF.js.map} +0 -0
- /package/dist/{hf_spaces-6T2KB3UC.js.map → jaeger-GCA6MJ6E.js.map} +0 -0
- /package/dist/{langfuse-AMQCQWNE.js.map → lancedb-TJ5YSJY5.js.map} +0 -0
- /package/dist/{linear-V3TXO6CV.js.map → langfuse-RUMTUMXS.js.map} +0 -0
- /package/dist/{minio-IZRZY4C5.js.map → linear-BCE4KEAC.js.map} +0 -0
- /package/dist/{mongodb-VMKPQCPX.js.map → minio-5SO6KBTK.js.map} +0 -0
- /package/dist/{nextcloud-5RHQCGDO.js.map → mongodb-L5CMN2EE.js.map} +0 -0
- /package/dist/{notion-6PPNTQFM.js.map → nextcloud-4O2LZVW2.js.map} +0 -0
- /package/dist/{oci-CKYBSFZJ.js.map → notion-RVKEAQ2M.js.map} +0 -0
- /package/dist/{postgres-WIQBVL5M.js.map → oci-OQXOIC62.js.map} +0 -0
- /package/dist/{qingstor-AP4IIPLY.js.map → postgres-AV45GNRS.js.map} +0 -0
- /package/dist/{r2-C4XGEWQY.js.map → qingstor-W277YA4K.js.map} +0 -0
- /package/dist/{redis-6D55Q2WB.js.map → r2-FUA4IORE.js.map} +0 -0
- /package/dist/{s3-XQBI2CXN.js.map → redis-LPS357NF.js.map} +0 -0
- /package/dist/{scaleway-SEZJVURB.js.map → s3-FPNWWIVM.js.map} +0 -0
- /package/dist/{seaweedfs-3XYIAFU2.js.map → scaleway-BP3732U7.js.map} +0 -0
- /package/dist/{slack-ZHXDJQY4.js.map → seaweedfs-MC6HIEP4.js.map} +0 -0
- /package/dist/{ssh-X2MO7JOV.js.map → slack-JFGW7VLN.js.map} +0 -0
- /package/dist/{supabase-BBM44UTM.js.map → ssh-UYPG42LM.js.map} +0 -0
- /package/dist/{tencent-X72USLJ7.js.map → supabase-A3KUFMDC.js.map} +0 -0
- /package/dist/{trello-EER5NG7L.js.map → tencent-5464UQ2X.js.map} +0 -0
- /package/dist/{wasabi-O4MVIUFG.js.map → trello-O2KB3FUO.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/accessor/hf.ts","../src/commands/builtin/hf/index.ts","../src/core/hf/read.ts","../src/core/hf/util.ts","../src/core/hf/stat.ts","../src/commands/builtin/hf/du.ts","../src/core/hf/du.ts","../src/core/hf/constants.ts","../src/core/hf/write.ts","../src/core/hf/create.ts","../src/core/hf/mkdir.ts","../src/core/hf/unlink.ts","../src/core/hf/readdir.ts","../src/core/hf/rm.ts","../src/core/hf/stream.ts","../src/core/hf/exists.ts","../src/commands/builtin/hf/io.ts","../src/commands/builtin/hf/find.ts","../src/core/hf/find.ts","../src/ops/hf/index.ts","../src/resource/hf_buckets/base.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport type { Operator } from 'opendal'\nimport { Accessor, ResourceName } from '@struktoai/mirage-core'\nimport { loadOptionalPeer } from '../optional_peer.ts'\nimport type { HfBucketsConfig, HfRepoConfig } from '../resource/hf_buckets/config.ts'\n\nexport const HF_RESOURCES = [\n ResourceName.HF_BUCKETS,\n ResourceName.HF_DATASETS,\n ResourceName.HF_MODELS,\n ResourceName.HF_SPACES,\n] as const\n\nexport abstract class HfAccessor extends Accessor {\n abstract readonly repoType: string\n abstract readonly resourceName: ResourceName\n private operatorPromise: Promise<Operator> | null = null\n\n constructor(public readonly config: HfBucketsConfig | HfRepoConfig) {\n super()\n }\n\n get repoId(): string {\n const config = this.config as { bucket?: string; repoId?: string }\n return config.repoId ?? config.bucket ?? ''\n }\n\n abstract get bucketUri(): string\n\n operatorOptions(): Record<string, string> {\n const options: Record<string, string> = {\n repo_type: this.repoType,\n repo_id: this.repoId,\n }\n if (this.config.token !== undefined && this.config.token !== '') {\n options.token = this.config.token\n }\n if (this.config.endpoint !== undefined && this.config.endpoint !== '') {\n options.endpoint = this.config.endpoint\n }\n const keyPrefix = this.config.keyPrefix\n if (keyPrefix !== undefined && keyPrefix !== '') {\n options.root = `/${stripSlashes(keyPrefix)}/`\n }\n const revision = (this.config as { revision?: string }).revision\n if (revision !== undefined && revision !== '') {\n options.revision = revision\n }\n return options\n }\n\n operator(): Promise<Operator> {\n this.operatorPromise ??= this.createOperator()\n return this.operatorPromise\n }\n\n private async createOperator(): Promise<Operator> {\n const mod = await loadOptionalPeer(\n () => import('opendal') as Promise<{ Operator: typeof Operator }>,\n { feature: 'HuggingFace resources', packageName: 'opendal' },\n )\n return new mod.Operator('hf', this.operatorOptions())\n }\n}\n\nfunction stripSlashes(value: string): string {\n let start = 0\n let end = value.length\n while (start < end && value[start] === '/') start += 1\n while (end > start && value[end - 1] === '/') end -= 1\n return value.slice(start, end)\n}\n\nexport class HfBucketsAccessor extends HfAccessor {\n readonly repoType: string = 'bucket'\n readonly resourceName: ResourceName = ResourceName.HF_BUCKETS\n\n get bucketUri(): string {\n return `hf://buckets/${this.repoId}`\n }\n}\n\nexport class HfDatasetsAccessor extends HfAccessor {\n readonly repoType: string = 'dataset'\n readonly resourceName: ResourceName = ResourceName.HF_DATASETS\n\n get bucketUri(): string {\n return `hf://datasets/${this.repoId}`\n }\n}\n\nexport class HfModelsAccessor extends HfAccessor {\n readonly repoType: string = 'model'\n readonly resourceName: ResourceName = ResourceName.HF_MODELS\n\n get bucketUri(): string {\n return `hf://models/${this.repoId}`\n }\n}\n\nexport class HfSpacesAccessor extends HfAccessor {\n readonly repoType: string = 'space'\n readonly resourceName: ResourceName = ResourceName.HF_SPACES\n\n get bucketUri(): string {\n return `hf://spaces/${this.repoId}`\n }\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n type RegisteredCommand,\n makeFiletypeCommands,\n makeGenericCommands,\n} from '@struktoai/mirage-core'\nimport { HF_RESOURCES, type HfAccessor } from '../../../accessor/hf.ts'\nimport { read as hfRead } from '../../../core/hf/read.ts'\nimport { stat as hfStat } from '../../../core/hf/stat.ts'\nimport { HF_DU } from './du.ts'\nimport { HF_FIND } from './find.ts'\nimport { HF_IO } from './io.ts'\n\nconst HF_OVERRIDES = new Set(['cp', 'mv', 'du', 'find'])\n\nexport const HF_COMMANDS: readonly RegisteredCommand[] = [\n ...HF_RESOURCES.flatMap((resource) =>\n makeFiletypeCommands<HfAccessor>({\n resource,\n readBytes: hfRead,\n statEntry: hfStat,\n }),\n ),\n ...HF_RESOURCES.flatMap((resource) =>\n makeGenericCommands<HfAccessor>(resource, HF_IO, {\n overrides: HF_OVERRIDES,\n }),\n ),\n ...HF_DU,\n ...HF_FIND,\n]\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { type IndexCacheStore, type PathSpec, record } from '@struktoai/mirage-core'\nimport type { HfAccessor } from '../../accessor/hf.ts'\nimport { hfKey, isNotFound, rawPathOf } from './util.ts'\nimport { enoent } from '@struktoai/mirage-core'\n\nexport interface HfReadOptions {\n offset?: number\n size?: number\n}\n\nexport async function read(\n accessor: HfAccessor,\n path: PathSpec,\n _index?: IndexCacheStore,\n options: HfReadOptions = {},\n): Promise<Uint8Array> {\n const virtual = path.virtual\n const rawPath = rawPathOf(path)\n const key = hfKey(rawPath)\n const op = await accessor.operator()\n const readOptions: { offset?: bigint; size?: bigint } = {}\n if (options.offset !== undefined && options.offset > 0) {\n readOptions.offset = BigInt(options.offset)\n }\n if (options.size !== undefined) {\n readOptions.offset ??= 0n\n readOptions.size = BigInt(options.size)\n }\n const startMs = performance.now()\n let data: Buffer\n try {\n data =\n readOptions.offset !== undefined || readOptions.size !== undefined\n ? await op.read(key, readOptions)\n : await op.read(key)\n } catch (err) {\n if (isNotFound(err)) throw enoent(path)\n throw err\n }\n const bytes = new Uint8Array(data)\n record('read', virtual, accessor.resourceName, bytes.byteLength, startMs)\n return bytes\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { mountPrefixOf } from '@struktoai/mirage-core'\nimport type { PathSpec } from '@struktoai/mirage-core'\n\nexport function rawPathOf(path: PathSpec): string {\n const prefix = mountPrefixOf(path.virtual, path.resourcePath)\n return prefix !== '' && path.virtual.startsWith(prefix)\n ? path.virtual.slice(prefix.length) || '/'\n : path.virtual\n}\n\nexport function hfKey(rawPath: string): string {\n let start = 0\n while (start < rawPath.length && rawPath[start] === '/') start += 1\n return rawPath.slice(start)\n}\n\nexport function isNotFound(err: unknown): boolean {\n return err instanceof Error && err.message.startsWith('NotFound')\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n FileStat,\n FileType,\n guessType,\n mountPrefixOf,\n stripSlash,\n type IndexCacheStore,\n type PathSpec,\n} from '@struktoai/mirage-core'\nimport type { Metadata } from 'opendal'\nimport type { HfAccessor } from '../../accessor/hf.ts'\nimport { isNotFound, rawPathOf } from './util.ts'\nimport { enoent } from '@struktoai/mirage-core'\n\nexport async function stat(\n accessor: HfAccessor,\n path: PathSpec,\n index?: IndexCacheStore,\n): Promise<FileStat> {\n const prefix = mountPrefixOf(path.virtual, path.resourcePath)\n const rawPath = rawPathOf(path)\n const stripped = stripSlash(rawPath)\n if (stripped === '') {\n return new FileStat({ name: '/', type: FileType.DIRECTORY })\n }\n if (index !== undefined) {\n const virtualKey = prefix !== '' ? `${prefix}/${stripped}` : `/${stripped}`\n const lookup = await index.get(virtualKey)\n if (lookup.entry !== undefined && lookup.entry !== null) {\n const entry = lookup.entry\n if (entry.resourceType === 'folder') {\n return new FileStat({ name: entry.name, type: FileType.DIRECTORY })\n }\n return new FileStat({\n name: entry.name,\n size: entry.size ?? null,\n type: guessType(entry.name),\n })\n }\n const parent = virtualKey.slice(0, virtualKey.lastIndexOf('/')) || '/'\n const parentListing = await index.listDir(parent)\n if (parentListing.entries !== undefined && parentListing.entries !== null) {\n throw enoent(path)\n }\n }\n const op = await accessor.operator()\n let md: Metadata | null = null\n try {\n md = await op.stat(stripped)\n } catch (err) {\n if (!isNotFound(err)) throw err\n }\n if (md !== null && !md.isDirectory()) {\n const etag = md.etag\n return new FileStat({\n name: stripped.split('/').pop() ?? stripped,\n size: md.contentLength !== null ? Number(md.contentLength) : null,\n modified: md.lastModified,\n type: guessType(rawPath),\n fingerprint: etag,\n extra: etag !== null && etag !== '' ? { etag } : {},\n })\n }\n // Buckets have no dir objects and opendal's trailing-slash stat\n // short-circuits to DIR client-side, so a directory exists iff\n // something lists under its prefix (object-store semantics).\n try {\n const children = await op.list(`${stripped}/`)\n if (children.length > 0) {\n return new FileStat({\n name: stripped.split('/').pop() ?? '/',\n type: FileType.DIRECTORY,\n })\n }\n } catch (err) {\n if (!isNotFound(err)) throw err\n }\n throw enoent(path)\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n command,\n duGeneric,\n resolveGlobOf,\n specOf,\n type CommandFnResult,\n type CommandOpts,\n type PathSpec,\n} from '@struktoai/mirage-core'\nimport { HF_RESOURCES, type HfAccessor } from '../../../accessor/hf.ts'\nimport { du as hfDu, duAll as hfDuAll } from '../../../core/hf/du.ts'\nimport { HF_IO } from './io.ts'\n\nconst resolveGlob = resolveGlobOf(HF_IO)\n\nasync function duCommand(\n accessor: HfAccessor,\n paths: PathSpec[],\n _texts: string[],\n opts: CommandOpts,\n): Promise<CommandFnResult> {\n const resolved =\n paths.length > 0 ? await resolveGlob(accessor, paths, opts.index ?? undefined) : []\n return duGeneric(\n resolved,\n opts,\n (p) => hfDu(accessor, p),\n (p) => hfDuAll(accessor, p),\n )\n}\n\nexport const HF_DU = command({\n name: 'du',\n resource: [...HF_RESOURCES],\n spec: specOf('du'),\n fn: duCommand,\n})\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { FileType, type FileStat, type PathSpec, stripSlash } from '@struktoai/mirage-core'\nimport type { HfAccessor } from '../../accessor/hf.ts'\nimport { stat } from './stat.ts'\nimport { isNotFound, rawPathOf } from './util.ts'\n\nasync function statOrNull(accessor: HfAccessor, path: PathSpec): Promise<FileStat | null> {\n try {\n return await stat(accessor, path)\n } catch (err) {\n if ((err as { code?: string } | null)?.code === 'ENOENT') return null\n throw err\n }\n}\n\nexport async function du(accessor: HfAccessor, path: PathSpec): Promise<number> {\n const info = await statOrNull(accessor, path)\n if (info !== null && info.type !== FileType.DIRECTORY) return info.size ?? 0\n const target = rawPathOf(path)\n const pfx = stripSlash(target)\n const scanPath = pfx !== '' ? `${pfx}/` : '/'\n const op = await accessor.operator()\n let total = 0\n try {\n for (const entry of await op.list(scanPath, { recursive: true })) {\n if (entry.path().endsWith('/')) continue\n const length = entry.metadata().contentLength\n total += length !== null ? Number(length) : 0\n }\n } catch (err) {\n if (isNotFound(err)) return 0\n throw err\n }\n return total\n}\n\nexport async function duAll(\n accessor: HfAccessor,\n path: PathSpec,\n): Promise<[[string, number][], number]> {\n const info = await statOrNull(accessor, path)\n if (info !== null && info.type !== FileType.DIRECTORY) return [[], info.size ?? 0]\n const target = rawPathOf(path)\n const pfx = stripSlash(target)\n const scanPath = pfx !== '' ? `${pfx}/` : '/'\n const op = await accessor.operator()\n const results: [string, number][] = []\n let total = 0\n try {\n for (const entry of await op.list(scanPath, { recursive: true })) {\n const rel = entry.path()\n if (rel === '' || rel.endsWith('/')) continue\n const length = entry.metadata().contentLength\n const size = length !== null ? Number(length) : 0\n results.push([`/${lstrip(rel)}`, size])\n total += size\n }\n } catch (err) {\n if (!isNotFound(err)) throw err\n }\n results.sort((a, b) => (a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0))\n return [results, total]\n}\n\nfunction lstrip(value: string): string {\n let start = 0\n while (start < value.length && value[start] === '/') start += 1\n return value.slice(start)\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nexport const SCOPE_ERROR = 10000\nexport const DEFAULT_CHUNK_SIZE = 8192\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { invalidateAfterWrite } from '@struktoai/mirage-core'\nimport { invalidateAncestors } from '@struktoai/mirage-core'\nimport { type IndexCacheStore, type PathSpec, record } from '@struktoai/mirage-core'\nimport type { HfAccessor } from '../../accessor/hf.ts'\nimport { hfKey, isNotFound, rawPathOf } from './util.ts'\nimport { enoent } from '@struktoai/mirage-core'\n\nexport async function write(\n accessor: HfAccessor,\n path: PathSpec,\n data: Uint8Array,\n _index?: IndexCacheStore,\n): Promise<void> {\n const rawPath = rawPathOf(path)\n const key = hfKey(rawPath)\n const op = await accessor.operator()\n const startMs = performance.now()\n try {\n await op.write(key, Buffer.from(data))\n } catch (err) {\n if (isNotFound(err)) throw enoent(path)\n throw err\n }\n record('write', path.virtual, accessor.resourceName, data.byteLength, startMs)\n await invalidateAfterWrite(path)\n await invalidateAncestors(path)\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport type { IndexCacheStore, PathSpec } from '@struktoai/mirage-core'\nimport type { HfAccessor } from '../../accessor/hf.ts'\nimport { write } from './write.ts'\n\nexport async function create(\n accessor: HfAccessor,\n path: PathSpec,\n index?: IndexCacheStore,\n): Promise<void> {\n await write(accessor, path, new Uint8Array(), index)\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport type { IndexCacheStore, PathSpec } from '@struktoai/mirage-core'\nimport type { HfAccessor } from '../../accessor/hf.ts'\n\nexport async function mkdir(\n _accessor: HfAccessor,\n _path: PathSpec,\n _index?: IndexCacheStore,\n): Promise<void> {\n // Object stores don't have real directories; mkdir is a no-op.\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { invalidateAfterUnlink } from '@struktoai/mirage-core'\nimport { FileType, type IndexCacheStore, type PathSpec, record } from '@struktoai/mirage-core'\nimport type { HfAccessor } from '../../accessor/hf.ts'\nimport { invalidateAncestors } from '@struktoai/mirage-core'\nimport { stat } from './stat.ts'\nimport { hfKey, isNotFound, rawPathOf } from './util.ts'\nimport { enoent } from '@struktoai/mirage-core'\n\nexport async function unlink(\n accessor: HfAccessor,\n path: PathSpec,\n index?: IndexCacheStore,\n): Promise<void> {\n const fileStat = await stat(accessor, path, index)\n const rawPath = rawPathOf(path)\n if (fileStat.type === FileType.DIRECTORY) {\n const e = new Error(`EISDIR: ${rawPath}`) as Error & { code: string }\n e.code = 'EISDIR'\n throw e\n }\n const key = hfKey(rawPath)\n const op = await accessor.operator()\n const startMs = performance.now()\n try {\n await op.delete(key)\n } catch (err) {\n if (isNotFound(err)) throw enoent(path)\n throw err\n }\n record('unlink', path.virtual, accessor.resourceName, 0, startMs)\n await invalidateAfterUnlink(path)\n await invalidateAncestors(path)\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n IndexEntry,\n ResourceType,\n mountPrefixOf,\n rstripSlash,\n stripSlash,\n type IndexCacheStore,\n type PathSpec,\n} from '@struktoai/mirage-core'\nimport type { HfAccessor } from '../../accessor/hf.ts'\nimport { SCOPE_ERROR } from './constants.ts'\nimport { isNotFound } from './util.ts'\nimport { enoent } from '@struktoai/mirage-core'\n\nexport async function readdir(\n accessor: HfAccessor,\n path: PathSpec,\n index?: IndexCacheStore,\n): Promise<string[]> {\n const prefix = mountPrefixOf(path.virtual, path.resourcePath)\n let target = path.pattern !== null ? path.directory : path.virtual\n if (prefix !== '' && target.startsWith(prefix)) {\n const rest = target.slice(prefix.length)\n if (prefix.endsWith('/') || rest === '' || rest.startsWith('/')) {\n target = rest || '/'\n }\n }\n const virtualKey = rstripSlash(prefix !== '' ? `${prefix}${target}` : target) || '/'\n if (index !== undefined) {\n const listing = await index.listDir(virtualKey)\n if (listing.entries !== undefined && listing.entries !== null) {\n return listing.entries\n }\n }\n const strippedTarget = stripSlash(target)\n const listPath = strippedTarget !== '' ? `${strippedTarget}/` : '/'\n const op = await accessor.operator()\n const names: string[] = []\n const dirKeys = new Set<string>()\n const sizes = new Map<string, number | null>()\n let entries\n try {\n entries = await op.list(listPath)\n } catch (err) {\n if (isNotFound(err)) throw enoent(path)\n throw err\n }\n for (const entry of entries) {\n const relative = entry.path()\n if (relative === '' || relative === listPath) continue\n const isDir = relative.endsWith('/')\n const base = `/${rstripSlash(relative)}`\n names.push(base)\n if (isDir) {\n dirKeys.add(base)\n } else {\n const meta = entry.metadata()\n const length = meta.contentLength\n sizes.set(base, length !== null ? Number(length) : null)\n }\n }\n names.sort()\n if (names.length > SCOPE_ERROR) {\n console.warn(\n `hf readdir: ${virtualKey} returned ${String(names.length)} entries (limit ${String(SCOPE_ERROR)})`,\n )\n }\n const virtualEntries = names.map((e) => (prefix !== '' ? `${prefix}${e}` : e)).sort()\n if (index !== undefined) {\n const indexEntries: [string, IndexEntry][] = names.map((e) => {\n const name = e.split('/').pop() ?? e\n if (dirKeys.has(e)) {\n return [name, new IndexEntry({ id: e, name, resourceType: ResourceType.FOLDER })]\n }\n return [\n name,\n new IndexEntry({\n id: e,\n name,\n resourceType: ResourceType.FILE,\n size: sizes.get(e) ?? null,\n }),\n ]\n })\n await index.setDir(virtualKey, indexEntries)\n }\n return virtualEntries\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { invalidateAfterUnlink, record, stripSlash, type PathSpec } from '@struktoai/mirage-core'\nimport type { HfAccessor } from '../../accessor/hf.ts'\nimport { invalidateAncestors } from '@struktoai/mirage-core'\nimport { rawPathOf } from './util.ts'\n\nexport async function rmR(accessor: HfAccessor, path: PathSpec): Promise<void> {\n const stripped = stripSlash(rawPathOf(path))\n const scanPath = stripped !== '' ? `${stripped}/` : '/'\n const op = await accessor.operator()\n const startMs = performance.now()\n const entries = await op.list(scanPath, { recursive: true })\n for (const entry of entries) {\n const key = entry.path()\n if (key.endsWith('/')) continue\n await op.delete(key)\n }\n record('rm_r', path.virtual, accessor.resourceName, 0, startMs)\n await invalidateAfterUnlink(path)\n await invalidateAncestors(path)\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { type IndexCacheStore, type PathSpec, recordStream } from '@struktoai/mirage-core'\nimport type { HfAccessor } from '../../accessor/hf.ts'\nimport { DEFAULT_CHUNK_SIZE } from './constants.ts'\nimport { read } from './read.ts'\nimport { hfKey, isNotFound, rawPathOf } from './util.ts'\nimport { enoent } from '@struktoai/mirage-core'\n\nexport async function rangeRead(\n accessor: HfAccessor,\n path: PathSpec,\n start: number,\n end: number,\n): Promise<Uint8Array> {\n return read(accessor, path, undefined, { offset: start, size: end - start })\n}\n\nexport async function* stream(\n accessor: HfAccessor,\n path: PathSpec,\n _index?: IndexCacheStore,\n chunkSize: number = DEFAULT_CHUNK_SIZE,\n): AsyncIterable<Uint8Array> {\n const virtual = path.virtual\n const rawPath = rawPathOf(path)\n const key = hfKey(rawPath)\n const op = await accessor.operator()\n const rec = recordStream('read', virtual, accessor.resourceName)\n let reader\n try {\n reader = await op.reader(key)\n } catch (err) {\n if (isNotFound(err)) throw enoent(path)\n throw err\n }\n const buf = Buffer.alloc(chunkSize)\n for (;;) {\n const n = Number(await reader.read(buf))\n if (n <= 0) break\n const chunk = new Uint8Array(buf.subarray(0, n))\n if (rec !== null) rec.bytes += chunk.byteLength\n yield chunk\n }\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport type { PathSpec } from '@struktoai/mirage-core'\nimport type { HfAccessor } from '../../accessor/hf.ts'\nimport { stat } from './stat.ts'\n\nexport async function exists(accessor: HfAccessor, path: PathSpec): Promise<boolean> {\n try {\n await stat(accessor, path)\n return true\n } catch (err) {\n if ((err as { code?: string } | null)?.code === 'ENOENT') return false\n throw err\n }\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport type { CommandIO } from '@struktoai/mirage-core'\nimport type { HfAccessor } from '../../../accessor/hf.ts'\nimport { SCOPE_ERROR } from '../../../core/hf/constants.ts'\nimport { create as hfCreate } from '../../../core/hf/create.ts'\nimport { mkdir as hfMkdir } from '../../../core/hf/mkdir.ts'\nimport { unlink as hfUnlink } from '../../../core/hf/unlink.ts'\nimport { read as hfRead } from '../../../core/hf/read.ts'\nimport { readdir as hfReaddir } from '../../../core/hf/readdir.ts'\nimport { rmR as hfRmR } from '../../../core/hf/rm.ts'\nimport { stat as hfStat } from '../../../core/hf/stat.ts'\nimport { stream as hfStream } from '../../../core/hf/stream.ts'\nimport { exists as hfExists } from '../../../core/hf/exists.ts'\nimport { write as hfWrite } from '../../../core/hf/write.ts'\n\nexport const HF_IO: CommandIO<HfAccessor> = {\n readdir: hfReaddir,\n readBytes: hfRead,\n readStream: hfStream,\n stat: hfStat,\n isMounted: () => true,\n local: false,\n maxGlobMatches: SCOPE_ERROR,\n write: hfWrite,\n exists: hfExists,\n mkdir: (accessor, path) => hfMkdir(accessor, path),\n unlink: hfUnlink,\n rmR: hfRmR,\n create: hfCreate,\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { command, findGeneric, metadataProvision, specOf } from '@struktoai/mirage-core'\nimport { HF_RESOURCES, type HfAccessor } from '../../../accessor/hf.ts'\nimport { find as hfFind } from '../../../core/hf/find.ts'\n\nexport const HF_FIND = command({\n name: 'find',\n resource: [...HF_RESOURCES],\n spec: specOf('find'),\n provision: metadataProvision,\n fn: (accessor: HfAccessor, paths, texts, opts) =>\n findGeneric(paths, texts, opts, (root, options) => hfFind(accessor, root, options)),\n})\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n buildTree,\n emitStartPath,\n type FindOptions,\n keep,\n type PathSpec,\n type PredNode,\n rstripSlash,\n startBasename,\n stripSlash,\n} from '@struktoai/mirage-core'\nimport type { HfAccessor } from '../../accessor/hf.ts'\nimport { isNotFound, rawPathOf } from './util.ts'\n\n// -mtime is accepted for signature parity but not applied: buckets carry no\n// per-object mtime, so filtering would drop everything (matches s3/onedrive).\nfunction matchesFilters(\n entryPath: string,\n kind: 'f' | 'd',\n size: number,\n isEmpty: boolean | null,\n baseDepth: number,\n options: FindOptions,\n tree: PredNode,\n): boolean {\n const entryName = entryPath.split('/').pop() ?? ''\n const depth = (entryPath.match(/\\//g) ?? []).length - baseDepth\n if (options.maxDepth !== null && options.maxDepth !== undefined && depth > options.maxDepth) {\n return false\n }\n if (!keep({ key: entryPath, name: entryName, kind, depth, isEmpty }, tree, options.minDepth)) {\n return false\n }\n if (options.minSize != null || options.maxSize != null) {\n // Directories count as size 0 for -size (deliberate GNU divergence).\n const effective = kind === 'f' ? size : 0\n if (options.minSize != null && effective < options.minSize) {\n return false\n }\n if (options.maxSize != null && effective > options.maxSize) {\n return false\n }\n }\n return true\n}\n\nexport async function find(\n accessor: HfAccessor,\n path: PathSpec,\n options: FindOptions = {},\n): Promise<string[]> {\n const target = rawPathOf(path)\n const pfx = stripSlash(target)\n const scanPath = pfx !== '' ? `${pfx}/` : '/'\n const base = pfx !== '' ? `/${pfx}` : '/'\n const baseDepth = base === '/' ? 0 : (base.match(/\\//g) ?? []).length\n const startName = startBasename(path.virtual)\n const empty = options.empty === true\n const op = await accessor.operator()\n const results: string[] = []\n const seenDirs = new Set<string>()\n let sawDescendant = false\n let dirExists = false\n const tree =\n options.tree ??\n buildTree({\n name: options.name,\n iname: options.iname,\n pathPattern: options.pathPattern,\n type: options.type,\n nameExclude: options.nameExclude,\n orNames: options.orNames,\n })\n let entries\n try {\n entries = await op.list(scanPath, { recursive: true })\n } catch (err) {\n if (isNotFound(err)) return []\n throw err\n }\n for (const entry of entries) {\n const rel = entry.path()\n if (rel === '') continue\n const meta = entry.metadata()\n const isDir = rel.endsWith('/') || meta.isDirectory()\n const entryPath = `/${stripSlash(rel)}`\n if (entryPath === base) {\n dirExists = true\n continue\n }\n sawDescendant = true\n const kind: 'f' | 'd' = isDir ? 'd' : 'f'\n const length = meta.contentLength\n const size = length !== null ? Number(length) : 0\n const fileEntries: [string, 'f' | 'd'][] = [[entryPath, kind]]\n if (!isDir) {\n let parent = rstripSlash(entryPath.slice(0, entryPath.lastIndexOf('/'))) || '/'\n while (parent !== '' && parent !== base && parent !== '/') {\n if (!seenDirs.has(parent)) {\n seenDirs.add(parent)\n fileEntries.push([parent, 'd'])\n }\n parent = parent.slice(0, parent.lastIndexOf('/')) || '/'\n }\n }\n for (const [ep, k] of fileEntries) {\n const isEmpty = !empty ? null : k === 'd' ? false : size === 0\n if (matchesFilters(ep, k, size, isEmpty, baseDepth, options, tree)) {\n results.push(ep)\n }\n }\n }\n if (sawDescendant || dirExists) {\n emitStartPath(results, base, startName, {\n kind: 'd',\n isEmpty: !sawDescendant,\n exists: true,\n tree,\n maxDepth: options.maxDepth,\n minDepth: options.minDepth,\n minSize: options.minSize,\n maxSize: options.maxSize,\n })\n }\n return [...new Set(results)].sort()\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport type { RegisteredOp } from '@struktoai/mirage-core'\nimport { makeGenericOps } from '@struktoai/mirage-core'\nimport { HF_RESOURCES } from '../../accessor/hf.ts'\nimport { HF_IO } from '../../commands/builtin/hf/io.ts'\n\nexport const HF_OPS: readonly RegisteredOp[] = makeGenericOps(HF_RESOURCES, HF_IO, {\n filetypeRead: ['.feather', '.hdf5', '.parquet'],\n})\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n BaseResource,\n PathSpec,\n makeResolveGlob,\n mountKey,\n mountPrefixOf,\n type FileStat,\n type FindOptions,\n type RegisteredCommand,\n type RegisteredOp,\n type Resource,\n} from '@struktoai/mirage-core'\nimport type { HfAccessor } from '../../accessor/hf.ts'\nimport { HF_COMMANDS } from '../../commands/builtin/hf/index.ts'\nimport { SCOPE_ERROR } from '../../core/hf/constants.ts'\nimport { create as createCore } from '../../core/hf/create.ts'\nimport { du as duCore, duAll as duAllCore } from '../../core/hf/du.ts'\nimport { exists as existsCore } from '../../core/hf/exists.ts'\nimport { find as findCore } from '../../core/hf/find.ts'\nimport { mkdir as mkdirCore } from '../../core/hf/mkdir.ts'\nimport { read as readCore } from '../../core/hf/read.ts'\nimport { readdir as readdirCore } from '../../core/hf/readdir.ts'\nimport { stat as statCore } from '../../core/hf/stat.ts'\nimport { rangeRead as rangeReadCore, stream as streamCore } from '../../core/hf/stream.ts'\nimport { unlink as unlinkCore } from '../../core/hf/unlink.ts'\nimport { write as writeCore } from '../../core/hf/write.ts'\nimport { HF_OPS } from '../../ops/hf/index.ts'\n\nconst globCore = makeResolveGlob(readdirCore, SCOPE_ERROR)\n\nexport abstract class HfResource extends BaseResource implements Resource {\n abstract readonly kind: string\n abstract readonly prompt: string\n abstract readonly accessor: HfAccessor\n readonly cachesReads: boolean = true\n readonly supportsSnapshot: boolean = true\n readonly opsMap: Record<string, unknown> = {\n read_bytes: readCore,\n readdir: readdirCore,\n stat: statCore,\n read_stream: streamCore,\n range_read: rangeReadCore,\n du_total: duCore,\n du_all: duAllCore,\n exists: existsCore,\n find_flat: findCore,\n write: writeCore,\n create: createCore,\n unlink: unlinkCore,\n mkdir: mkdirCore,\n }\n\n open(): Promise<void> {\n return Promise.resolve()\n }\n\n close(): Promise<void> {\n return Promise.resolve()\n }\n\n commands(): readonly RegisteredCommand[] {\n return HF_COMMANDS\n }\n\n ops(): readonly RegisteredOp[] {\n return HF_OPS\n }\n\n streamPath(p: PathSpec): AsyncIterable<Uint8Array> {\n return streamCore(this.accessor, p)\n }\n\n readFile(p: PathSpec): Promise<Uint8Array> {\n return readCore(this.accessor, p, this.index)\n }\n\n writeFile(p: PathSpec, data: Uint8Array): Promise<void> {\n return writeCore(this.accessor, p, data, this.index)\n }\n\n readdir(p: PathSpec): Promise<string[]> {\n return readdirCore(this.accessor, p, this.index)\n }\n\n stat(p: PathSpec): Promise<FileStat> {\n return statCore(this.accessor, p, this.index)\n }\n\n exists(p: PathSpec): Promise<boolean> {\n return existsCore(this.accessor, p)\n }\n\n mkdir(p: PathSpec): Promise<void> {\n return mkdirCore(this.accessor, p)\n }\n\n unlink(p: PathSpec): Promise<void> {\n return unlinkCore(this.accessor, p, this.index)\n }\n\n du(p: PathSpec): Promise<number> {\n return duCore(this.accessor, p)\n }\n\n find(p: PathSpec, options: FindOptions = {}): Promise<string[]> {\n return findCore(this.accessor, p, options)\n }\n\n glob(paths: readonly PathSpec[], prefix = ''): Promise<PathSpec[]> {\n const effective = prefix\n ? paths.map((p) =>\n mountPrefixOf(p.virtual, p.resourcePath)\n ? p\n : new PathSpec({\n virtual: p.virtual,\n directory: p.directory,\n ...(p.pattern !== null ? { pattern: p.pattern } : {}),\n resolved: p.resolved,\n resourcePath: mountKey(p.virtual, prefix),\n }),\n )\n : paths\n return globCore(this.accessor, effective, this.index)\n }\n\n loadState(_state: unknown): Promise<void> {\n return Promise.resolve()\n }\n}\n"],"mappings":"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","names":["mountPrefixOf","enoent","mountPrefixOf","FileType","stripSlash","FileType","stripSlash","record","enoent","record","FileType","record","invalidateAncestors","enoent","FileType","record","invalidateAncestors","mountPrefixOf","stripSlash","enoent","mountPrefixOf","stripSlash","invalidateAfterUnlink","record","stripSlash","invalidateAncestors","stripSlash","record","invalidateAfterUnlink","invalidateAncestors","enoent","command","specOf","rstripSlash","stripSlash","stripSlash","rstripSlash","command","specOf","mountPrefixOf","mountPrefixOf"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/databricks_volume/databricks_volume.ts","../src/resource/databricks_volume/config.ts","../src/resource/databricks_volume/profile.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n BaseResource,\n DATABRICKS_VOLUME_COMMANDS,\n DATABRICKS_VOLUME_OPS,\n DATABRICKS_VOLUME_PROMPT,\n DatabricksVolumeAccessor,\n PathSpec,\n ResourceName,\n databricksVolumeCopy,\n databricksVolumeCreate,\n databricksVolumeExists,\n databricksVolumeMkdir,\n databricksVolumeRangeRead,\n databricksVolumeRead,\n databricksVolumeReadStream,\n databricksVolumeReaddir,\n databricksVolumeRename,\n databricksVolumeRmRecursive,\n databricksVolumeRmdir,\n databricksVolumeStat,\n databricksVolumeUnlink,\n databricksVolumeWrite,\n mountKey,\n mountPrefixOf,\n makeResolveGlob,\n type FileStat,\n type FindOptions,\n type RegisteredCommand,\n type RegisteredOp,\n type Resource,\n walkFind,\n} from '@struktoai/mirage-core'\nimport {\n redactDatabricksVolumeConfig,\n type DatabricksVolumeConfig,\n type DatabricksVolumeConfigRedacted,\n} from './config.ts'\nimport { loadDatabricksProfile } from './profile.ts'\n\nconst resolveDatabricksVolumeGlob = makeResolveGlob(databricksVolumeReaddir)\n\nexport interface DatabricksVolumeResourceState {\n type: string\n config: DatabricksVolumeConfigRedacted\n}\n\nasync function resolveAuth(config: DatabricksVolumeConfig): Promise<[string, string]> {\n let host = config.host ?? process.env.DATABRICKS_HOST\n let token = config.token ?? process.env.DATABRICKS_TOKEN\n if (host === undefined || host === '' || token === undefined || token === '') {\n const profileName = config.profile ?? process.env.DATABRICKS_CONFIG_PROFILE ?? 'DEFAULT'\n const profile = await loadDatabricksProfile(profileName)\n host = host !== undefined && host !== '' ? host : profile.host\n token = token !== undefined && token !== '' ? token : profile.token\n }\n if (host === undefined || host === '' || token === undefined || token === '') {\n throw new Error(\n 'databricks_volume: missing credentials; set host/token in the config, ' +\n 'DATABRICKS_HOST/DATABRICKS_TOKEN env vars, or a ~/.databrickscfg profile',\n )\n }\n return [host, token]\n}\n\nexport class DatabricksVolumeResource extends BaseResource implements Resource {\n readonly kind: string = ResourceName.DATABRICKS_VOLUME\n readonly cachesReads: boolean = true\n override readonly indexTtl: number = 600\n readonly prompt: string = DATABRICKS_VOLUME_PROMPT\n readonly config: DatabricksVolumeConfig\n readonly accessor: DatabricksVolumeAccessor\n readonly opsMap: Record<string, unknown> = {\n read_bytes: databricksVolumeRead,\n write: databricksVolumeWrite,\n readdir: databricksVolumeReaddir,\n stat: databricksVolumeStat,\n read_stream: databricksVolumeReadStream,\n range_read: databricksVolumeRangeRead,\n exists: databricksVolumeExists,\n create: databricksVolumeCreate,\n unlink: databricksVolumeUnlink,\n mkdir: databricksVolumeMkdir,\n rmdir: databricksVolumeRmdir,\n copy: databricksVolumeCopy,\n rename: databricksVolumeRename,\n rm_recursive: databricksVolumeRmRecursive,\n }\n\n private constructor(config: DatabricksVolumeConfig, accessor: DatabricksVolumeAccessor) {\n super()\n this.config = config\n this.accessor = accessor\n }\n\n static async create(config: DatabricksVolumeConfig): Promise<DatabricksVolumeResource> {\n const [host, token] = await resolveAuth(config)\n const accessor = new DatabricksVolumeAccessor(config, host, token)\n return new DatabricksVolumeResource(config, accessor)\n }\n\n open(): Promise<void> {\n return Promise.resolve()\n }\n\n close(): Promise<void> {\n return Promise.resolve()\n }\n\n commands(): readonly RegisteredCommand[] {\n return DATABRICKS_VOLUME_COMMANDS\n }\n\n ops(): readonly RegisteredOp[] {\n return DATABRICKS_VOLUME_OPS\n }\n\n streamPath(p: PathSpec): AsyncIterable<Uint8Array> {\n return databricksVolumeReadStream(this.accessor, p)\n }\n\n readFile(p: PathSpec): Promise<Uint8Array> {\n return databricksVolumeRead(this.accessor, p)\n }\n\n writeFile(p: PathSpec, data: Uint8Array): Promise<void> {\n return databricksVolumeWrite(this.accessor, p, data)\n }\n\n async appendFile(p: PathSpec, data: Uint8Array): Promise<void> {\n let existing: Uint8Array\n try {\n existing = await databricksVolumeRead(this.accessor, p)\n } catch (err) {\n if ((err as { code?: string } | null)?.code === 'ENOENT') {\n existing = new Uint8Array()\n } else {\n throw err\n }\n }\n const merged = new Uint8Array(existing.byteLength + data.byteLength)\n merged.set(existing, 0)\n merged.set(data, existing.byteLength)\n await databricksVolumeWrite(this.accessor, p, merged)\n }\n\n readdir(p: PathSpec): Promise<string[]> {\n return databricksVolumeReaddir(this.accessor, p, this.index)\n }\n\n stat(p: PathSpec): Promise<FileStat> {\n return databricksVolumeStat(this.accessor, p)\n }\n\n exists(p: PathSpec): Promise<boolean> {\n return databricksVolumeExists(this.accessor, p)\n }\n\n mkdir(p: PathSpec): Promise<void> {\n return databricksVolumeMkdir(this.accessor, p, undefined, true)\n }\n\n rmdir(p: PathSpec): Promise<void> {\n return databricksVolumeRmdir(this.accessor, p)\n }\n\n unlink(p: PathSpec): Promise<void> {\n return databricksVolumeUnlink(this.accessor, p)\n }\n\n rename(src: PathSpec, dst: PathSpec): Promise<void> {\n return databricksVolumeRename(this.accessor, src, dst)\n }\n\n copy(src: PathSpec, dst: PathSpec): Promise<void> {\n return databricksVolumeCopy(this.accessor, src, dst)\n }\n\n async rmR(p: PathSpec): Promise<void> {\n await databricksVolumeRmRecursive(this.accessor, p)\n }\n\n find(p: PathSpec, options: FindOptions = {}): Promise<string[]> {\n // Databricks readdir returns slash-less paths, so classification always\n // falls back to stat (which the walker resolves via the index cache).\n return walkFind(\n p,\n {\n readdir: (spec, idx) => databricksVolumeReaddir(this.accessor, spec, idx),\n stat: (spec, idx) => databricksVolumeStat(this.accessor, spec, idx),\n isDirName: () => null,\n },\n options,\n this.index,\n )\n }\n\n glob(paths: readonly PathSpec[], prefix = ''): Promise<PathSpec[]> {\n const effective = prefix\n ? paths.map((p) =>\n mountPrefixOf(p.virtual, p.resourcePath)\n ? p\n : new PathSpec({\n virtual: p.virtual,\n directory: p.directory,\n ...(p.pattern !== null ? { pattern: p.pattern } : {}),\n resolved: p.resolved,\n resourcePath: mountKey(p.virtual, prefix),\n }),\n )\n : paths\n return resolveDatabricksVolumeGlob(this.accessor, effective, this.index)\n }\n\n getState(): Promise<DatabricksVolumeResourceState> {\n return Promise.resolve({\n type: this.kind,\n config: redactDatabricksVolumeConfig(this.config),\n })\n }\n\n loadState(_state: DatabricksVolumeResourceState): Promise<void> {\n return Promise.resolve()\n }\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nexport {\n normalizeDatabricksVolumeConfig,\n redactDatabricksVolumeConfig,\n type DatabricksVolumeConfig,\n type DatabricksVolumeConfigRedacted,\n} from '@struktoai/mirage-core'\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { readFile } from 'node:fs/promises'\nimport { homedir } from 'node:os'\nimport { join } from 'node:path'\n\nexport interface DatabricksProfile {\n host?: string\n token?: string\n}\n\nexport function parseDatabricksCfg(content: string, profile: string): DatabricksProfile {\n const result: DatabricksProfile = {}\n let inSection = false\n for (const rawLine of content.split('\\n')) {\n const line = rawLine.trim()\n if (line === '' || line.startsWith('#') || line.startsWith(';')) continue\n if (line.startsWith('[') && line.endsWith(']')) {\n inSection = line.slice(1, -1).trim() === profile\n continue\n }\n if (!inSection) continue\n const eq = line.indexOf('=')\n if (eq === -1) continue\n const key = line.slice(0, eq).trim()\n const value = line.slice(eq + 1).trim()\n if (key === 'host') result.host = value\n if (key === 'token') result.token = value\n }\n return result\n}\n\nexport async function loadDatabricksProfile(profile: string): Promise<DatabricksProfile> {\n const cfgPath = process.env.DATABRICKS_CONFIG_FILE ?? join(homedir(), '.databrickscfg')\n let content: string\n try {\n content = await readFile(cfgPath, 'utf-8')\n } catch (err) {\n if ((err as { code?: string } | null)?.code === 'ENOENT') return {}\n throw err\n }\n return parseDatabricksCfg(content, profile)\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/dropbox/config.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { normalizeFields, redactConfigWithSchema, secretStr, z } from '@struktoai/mirage-core'\n\nexport interface DropboxConfig {\n clientId: string\n clientSecret: string\n refreshToken: string\n rootPath?: string\n contentSearch?: boolean\n endpoint?: string\n refreshFn?: (refreshToken: string) => Promise<{ accessToken: string; expiresIn: number }>\n}\n\nexport interface DropboxConfigRedacted {\n clientId: string\n clientSecret: '<REDACTED>'\n refreshToken: '<REDACTED>'\n rootPath?: string\n contentSearch?: boolean\n endpoint?: string\n}\n\nconst DropboxConfigSchema = z.object({\n clientId: z.string(),\n clientSecret: secretStr(),\n refreshToken: secretStr(),\n rootPath: z.string().optional(),\n contentSearch: z.boolean().optional(),\n endpoint: z.string().optional(),\n})\n\nexport function redactDropboxConfig(config: DropboxConfig): DropboxConfigRedacted {\n return redactConfigWithSchema(DropboxConfigSchema, config) as unknown as DropboxConfigRedacted\n}\n\nexport function normalizeDropboxConfig(input: Record<string, unknown>): DropboxConfig {\n return normalizeFields(input, {\n rename: {\n client_id: 'clientId',\n client_secret: 'clientSecret',\n refresh_token: 'refreshToken',\n root_path: 'rootPath',\n content_search: 'contentSearch',\n },\n }) as unknown as DropboxConfig\n}\n"],"mappings":";AAcA,SAAS,iBAAiB,wBAAwB,WAAW,SAAS;AAqBtE,IAAM,sBAAsB,EAAE,OAAO;AAAA,EACnC,UAAU,EAAE,OAAO;AAAA,EACnB,cAAc,UAAU;AAAA,EACxB,cAAc,UAAU;AAAA,EACxB,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,eAAe,EAAE,QAAQ,EAAE,SAAS;AAAA,EACpC,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,SAAS,oBAAoB,QAA8C;AAChF,SAAO,uBAAuB,qBAAqB,MAAM;AAC3D;AAEO,SAAS,uBAAuB,OAA+C;AACpF,SAAO,gBAAgB,OAAO;AAAA,IAC5B,QAAQ;AAAA,MACN,WAAW;AAAA,MACX,eAAe;AAAA,MACf,eAAe;AAAA,MACf,WAAW;AAAA,MACX,gBAAgB;AAAA,IAClB;AAAA,EACF,CAAC;AACH;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/dropbox/dropbox.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n BaseResource,\n DROPBOX_COMMANDS,\n DROPBOX_PROMPT,\n DROPBOX_OPS,\n DropboxAccessor,\n DropboxTokenManager,\n PathSpec,\n ResourceName,\n dropboxRead,\n dropboxReaddir,\n makeResolveGlob,\n dropboxStat,\n mountKey,\n mountPrefixOf,\n type FileStat,\n type RegisteredCommand,\n type RegisteredOp,\n type Resource,\n} from '@struktoai/mirage-core'\nimport { redactDropboxConfig, type DropboxConfig, type DropboxConfigRedacted } from './config.ts'\n\nconst dropboxResolveGlob = makeResolveGlob(dropboxReaddir)\n\nexport interface DropboxResourceState {\n type: string\n config: DropboxConfigRedacted\n}\n\nexport class DropboxResource extends BaseResource implements Resource {\n readonly kind: string = ResourceName.DROPBOX\n readonly cachesReads: boolean = true\n override readonly indexTtl: number = 86_400\n readonly prompt: string = DROPBOX_PROMPT\n readonly config: DropboxConfig\n readonly accessor: DropboxAccessor\n\n constructor(config: DropboxConfig) {\n super()\n this.config = config\n const tm = new DropboxTokenManager({\n clientId: config.clientId,\n clientSecret: config.clientSecret,\n refreshToken: config.refreshToken,\n ...(config.endpoint !== undefined ? { endpoint: config.endpoint } : {}),\n ...(config.refreshFn !== undefined ? { refreshFn: config.refreshFn } : {}),\n })\n this.accessor = new DropboxAccessor({\n tokenManager: tm,\n ...(config.rootPath !== undefined ? { rootPath: config.rootPath } : {}),\n ...(config.contentSearch !== undefined ? { contentSearch: config.contentSearch } : {}),\n })\n }\n\n open(): Promise<void> {\n return Promise.resolve()\n }\n\n close(): Promise<void> {\n return Promise.resolve()\n }\n\n commands(): readonly RegisteredCommand[] {\n return DROPBOX_COMMANDS\n }\n\n ops(): readonly RegisteredOp[] {\n return DROPBOX_OPS\n }\n\n readFile(p: PathSpec): Promise<Uint8Array> {\n return dropboxRead(this.accessor, p, this.index)\n }\n\n readdir(p: PathSpec): Promise<string[]> {\n return dropboxReaddir(this.accessor, p, this.index)\n }\n\n stat(p: PathSpec): Promise<FileStat> {\n return dropboxStat(this.accessor, p, this.index)\n }\n\n glob(paths: readonly PathSpec[], prefix = ''): Promise<PathSpec[]> {\n const effective =\n prefix !== ''\n ? paths.map((p) =>\n mountPrefixOf(p.virtual, p.resourcePath) !== ''\n ? p\n : new PathSpec({\n virtual: p.virtual,\n directory: p.directory,\n ...(p.pattern !== null ? { pattern: p.pattern } : {}),\n resolved: p.resolved,\n resourcePath: mountKey(p.virtual, prefix),\n }),\n )\n : paths\n return dropboxResolveGlob(this.accessor, effective, this.index)\n }\n\n getState(): Promise<DropboxResourceState> {\n return Promise.resolve({\n type: this.kind,\n config: redactDropboxConfig(this.config),\n })\n }\n\n loadState(_state: DropboxResourceState): Promise<void> {\n return Promise.resolve()\n }\n}\n"],"mappings":";;;;;AAcA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAKK;AAGP,IAAM,qBAAqB,gBAAgB,cAAc;AAOlD,IAAM,kBAAN,cAA8B,aAAiC;AAAA,EAC3D,OAAe,aAAa;AAAA,EAC5B,cAAuB;AAAA,EACd,WAAmB;AAAA,EAC5B,SAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EAET,YAAY,QAAuB;AACjC,UAAM;AACN,SAAK,SAAS;AACd,UAAM,KAAK,IAAI,oBAAoB;AAAA,MACjC,UAAU,OAAO;AAAA,MACjB,cAAc,OAAO;AAAA,MACrB,cAAc,OAAO;AAAA,MACrB,GAAI,OAAO,aAAa,SAAY,EAAE,UAAU,OAAO,SAAS,IAAI,CAAC;AAAA,MACrE,GAAI,OAAO,cAAc,SAAY,EAAE,WAAW,OAAO,UAAU,IAAI,CAAC;AAAA,IAC1E,CAAC;AACD,SAAK,WAAW,IAAI,gBAAgB;AAAA,MAClC,cAAc;AAAA,MACd,GAAI,OAAO,aAAa,SAAY,EAAE,UAAU,OAAO,SAAS,IAAI,CAAC;AAAA,MACrE,GAAI,OAAO,kBAAkB,SAAY,EAAE,eAAe,OAAO,cAAc,IAAI,CAAC;AAAA,IACtF,CAAC;AAAA,EACH;AAAA,EAEA,OAAsB;AACpB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,QAAuB;AACrB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,WAAyC;AACvC,WAAO;AAAA,EACT;AAAA,EAEA,MAA+B;AAC7B,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,GAAkC;AACzC,WAAO,YAAY,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EACjD;AAAA,EAEA,QAAQ,GAAgC;AACtC,WAAO,eAAe,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EACpD;AAAA,EAEA,KAAK,GAAgC;AACnC,WAAO,YAAY,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EACjD;AAAA,EAEA,KAAK,OAA4B,SAAS,IAAyB;AACjE,UAAM,YACJ,WAAW,KACP,MAAM;AAAA,MAAI,CAAC,MACT,cAAc,EAAE,SAAS,EAAE,YAAY,MAAM,KACzC,IACA,IAAI,SAAS;AAAA,QACX,SAAS,EAAE;AAAA,QACX,WAAW,EAAE;AAAA,QACb,GAAI,EAAE,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC;AAAA,QACnD,UAAU,EAAE;AAAA,QACZ,cAAc,SAAS,EAAE,SAAS,MAAM;AAAA,MAC1C,CAAC;AAAA,IACP,IACA;AACN,WAAO,mBAAmB,KAAK,UAAU,WAAW,KAAK,KAAK;AAAA,EAChE;AAAA,EAEA,WAA0C;AACxC,WAAO,QAAQ,QAAQ;AAAA,MACrB,MAAM,KAAK;AAAA,MACX,QAAQ,oBAAoB,KAAK,MAAM;AAAA,IACzC,CAAC;AAAA,EACH;AAAA,EAEA,UAAU,QAA6C;AACrD,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACF;","names":[]}
|
package/dist/chunk-IEHPTILN.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// src/resource/slack/config.ts
|
|
2
|
-
import { normalizeFields, redactConfigWithSchema, secretStr, z } from "@struktoai/mirage-core";
|
|
3
|
-
var SlackConfigSchema = z.object({
|
|
4
|
-
token: secretStr(),
|
|
5
|
-
searchToken: secretStr().optional(),
|
|
6
|
-
baseUrl: z.string().optional()
|
|
7
|
-
});
|
|
8
|
-
function redactSlackConfig(config) {
|
|
9
|
-
return redactConfigWithSchema(SlackConfigSchema, config);
|
|
10
|
-
}
|
|
11
|
-
function normalizeSlackConfig(input) {
|
|
12
|
-
return normalizeFields(input, {
|
|
13
|
-
rename: { search_token: "searchToken", base_url: "baseUrl" }
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export {
|
|
18
|
-
redactSlackConfig,
|
|
19
|
-
normalizeSlackConfig
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=chunk-IEHPTILN.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/slack/config.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { normalizeFields, redactConfigWithSchema, secretStr, z } from '@struktoai/mirage-core'\n\nexport interface SlackConfig {\n token: string\n searchToken?: string\n baseUrl?: string\n}\n\nexport interface SlackConfigRedacted {\n token: '<REDACTED>'\n searchToken?: '<REDACTED>'\n baseUrl?: string\n}\n\nconst SlackConfigSchema = z.object({\n token: secretStr(),\n searchToken: secretStr().optional(),\n baseUrl: z.string().optional(),\n})\n\nexport function redactSlackConfig(config: SlackConfig): SlackConfigRedacted {\n return redactConfigWithSchema(SlackConfigSchema, config) as unknown as SlackConfigRedacted\n}\n\nexport function normalizeSlackConfig(input: Record<string, unknown>): SlackConfig {\n return normalizeFields(input, {\n rename: { search_token: 'searchToken', base_url: 'baseUrl' },\n }) as unknown as SlackConfig\n}\n"],"mappings":";AAcA,SAAS,iBAAiB,wBAAwB,WAAW,SAAS;AActE,IAAM,oBAAoB,EAAE,OAAO;AAAA,EACjC,OAAO,UAAU;AAAA,EACjB,aAAa,UAAU,EAAE,SAAS;AAAA,EAClC,SAAS,EAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAEM,SAAS,kBAAkB,QAA0C;AAC1E,SAAO,uBAAuB,mBAAmB,MAAM;AACzD;AAEO,SAAS,qBAAqB,OAA6C;AAChF,SAAO,gBAAgB,OAAO;AAAA,IAC5B,QAAQ,EAAE,cAAc,eAAe,UAAU,UAAU;AAAA,EAC7D,CAAC;AACH;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/slack/slack.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n BaseResource,\n NodeSlackTransport,\n PathSpec,\n ResourceName,\n SLACK_COMMANDS,\n SLACK_PROMPT,\n SLACK_OPS,\n SLACK_WRITE_PROMPT,\n SlackAccessor,\n mountKey,\n mountPrefixOf,\n makeResolveGlob,\n slackRead,\n slackReaddir,\n slackStat,\n type FileStat,\n type RegisteredCommand,\n type RegisteredOp,\n type Resource,\n} from '@struktoai/mirage-core'\nimport { redactSlackConfig, type SlackConfig, type SlackConfigRedacted } from './config.ts'\n\nconst resolveSlackGlob = makeResolveGlob(slackReaddir)\n\nexport interface SlackResourceState {\n type: string\n config: SlackConfigRedacted\n}\n\nexport class SlackResource extends BaseResource implements Resource {\n readonly kind: string = ResourceName.SLACK\n readonly cachesReads: boolean = true\n override readonly indexTtl: number = 600\n readonly prompt: string = SLACK_PROMPT\n readonly writePrompt: string = SLACK_WRITE_PROMPT\n readonly config: SlackConfig\n readonly accessor: SlackAccessor\n\n constructor(config: SlackConfig) {\n super()\n this.config = config\n this.accessor = new SlackAccessor(\n new NodeSlackTransport(config.token, config.searchToken, config.baseUrl),\n )\n }\n\n open(): Promise<void> {\n return Promise.resolve()\n }\n\n close(): Promise<void> {\n return Promise.resolve()\n }\n\n commands(): readonly RegisteredCommand[] {\n return SLACK_COMMANDS\n }\n\n ops(): readonly RegisteredOp[] {\n return SLACK_OPS\n }\n\n readFile(p: PathSpec): Promise<Uint8Array> {\n return slackRead(this.accessor, p, this.index)\n }\n\n readdir(p: PathSpec): Promise<string[]> {\n return slackReaddir(this.accessor, p, this.index)\n }\n\n stat(p: PathSpec): Promise<FileStat> {\n return slackStat(this.accessor, p, this.index)\n }\n\n glob(paths: readonly PathSpec[], prefix = ''): Promise<PathSpec[]> {\n const effective =\n prefix !== ''\n ? paths.map((p) =>\n mountPrefixOf(p.virtual, p.resourcePath) !== ''\n ? p\n : new PathSpec({\n virtual: p.virtual,\n directory: p.directory,\n ...(p.pattern !== null ? { pattern: p.pattern } : {}),\n resolved: p.resolved,\n resourcePath: mountKey(p.virtual, prefix),\n }),\n )\n : paths\n return resolveSlackGlob(this.accessor, effective, this.index)\n }\n\n getState(): Promise<SlackResourceState> {\n return Promise.resolve({\n type: this.kind,\n config: redactSlackConfig(this.config),\n })\n }\n\n loadState(_state: SlackResourceState): Promise<void> {\n return Promise.resolve()\n }\n}\n"],"mappings":";;;;;AAcA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAKK;AAGP,IAAM,mBAAmB,gBAAgB,YAAY;AAO9C,IAAM,gBAAN,cAA4B,aAAiC;AAAA,EACzD,OAAe,aAAa;AAAA,EAC5B,cAAuB;AAAA,EACd,WAAmB;AAAA,EAC5B,SAAiB;AAAA,EACjB,cAAsB;AAAA,EACtB;AAAA,EACA;AAAA,EAET,YAAY,QAAqB;AAC/B,UAAM;AACN,SAAK,SAAS;AACd,SAAK,WAAW,IAAI;AAAA,MAClB,IAAI,mBAAmB,OAAO,OAAO,OAAO,aAAa,OAAO,OAAO;AAAA,IACzE;AAAA,EACF;AAAA,EAEA,OAAsB;AACpB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,QAAuB;AACrB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,WAAyC;AACvC,WAAO;AAAA,EACT;AAAA,EAEA,MAA+B;AAC7B,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,GAAkC;AACzC,WAAO,UAAU,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAC/C;AAAA,EAEA,QAAQ,GAAgC;AACtC,WAAO,aAAa,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAClD;AAAA,EAEA,KAAK,GAAgC;AACnC,WAAO,UAAU,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAC/C;AAAA,EAEA,KAAK,OAA4B,SAAS,IAAyB;AACjE,UAAM,YACJ,WAAW,KACP,MAAM;AAAA,MAAI,CAAC,MACT,cAAc,EAAE,SAAS,EAAE,YAAY,MAAM,KACzC,IACA,IAAI,SAAS;AAAA,QACX,SAAS,EAAE;AAAA,QACX,WAAW,EAAE;AAAA,QACb,GAAI,EAAE,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC;AAAA,QACnD,UAAU,EAAE;AAAA,QACZ,cAAc,SAAS,EAAE,SAAS,MAAM;AAAA,MAC1C,CAAC;AAAA,IACP,IACA;AACN,WAAO,iBAAiB,KAAK,UAAU,WAAW,KAAK,KAAK;AAAA,EAC9D;AAAA,EAEA,WAAwC;AACtC,WAAO,QAAQ,QAAQ;AAAA,MACrB,MAAM,KAAK;AAAA,MACX,QAAQ,kBAAkB,KAAK,MAAM;AAAA,IACvC,CAAC;AAAA,EACH;AAAA,EAEA,UAAU,QAA2C;AACnD,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACF;","names":[]}
|
package/dist/chunk-IKJQOYI4.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// src/resource/linear/config.ts
|
|
2
|
-
import { normalizeFields, redactConfigWithSchema, secretStr, z } from "@struktoai/mirage-core";
|
|
3
|
-
var LinearConfigSchema = z.object({
|
|
4
|
-
apiKey: secretStr(),
|
|
5
|
-
workspace: z.string().optional(),
|
|
6
|
-
teamIds: z.array(z.string()).optional(),
|
|
7
|
-
baseUrl: z.string().optional()
|
|
8
|
-
});
|
|
9
|
-
function redactLinearConfig(config) {
|
|
10
|
-
return redactConfigWithSchema(LinearConfigSchema, config);
|
|
11
|
-
}
|
|
12
|
-
function normalizeLinearConfig(input) {
|
|
13
|
-
return normalizeFields(input, {
|
|
14
|
-
rename: {
|
|
15
|
-
api_key: "apiKey",
|
|
16
|
-
team_ids: "teamIds",
|
|
17
|
-
base_url: "baseUrl"
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export {
|
|
23
|
-
redactLinearConfig,
|
|
24
|
-
normalizeLinearConfig
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=chunk-IKJQOYI4.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/linear/config.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { normalizeFields, redactConfigWithSchema, secretStr, z } from '@struktoai/mirage-core'\n\nexport interface LinearConfig {\n apiKey: string\n workspace?: string\n teamIds?: readonly string[]\n baseUrl?: string\n}\n\nexport interface LinearConfigRedacted {\n apiKey: '<REDACTED>'\n workspace?: string\n teamIds?: readonly string[]\n baseUrl?: string\n}\n\nconst LinearConfigSchema = z.object({\n apiKey: secretStr(),\n workspace: z.string().optional(),\n teamIds: z.array(z.string()).optional(),\n baseUrl: z.string().optional(),\n})\n\nexport function redactLinearConfig(config: LinearConfig): LinearConfigRedacted {\n return redactConfigWithSchema(LinearConfigSchema, config) as unknown as LinearConfigRedacted\n}\n\nexport function normalizeLinearConfig(input: Record<string, unknown>): LinearConfig {\n return normalizeFields(input, {\n rename: {\n api_key: 'apiKey',\n team_ids: 'teamIds',\n base_url: 'baseUrl',\n },\n }) as unknown as LinearConfig\n}\n"],"mappings":";AAcA,SAAS,iBAAiB,wBAAwB,WAAW,SAAS;AAgBtE,IAAM,qBAAqB,EAAE,OAAO;AAAA,EAClC,QAAQ,UAAU;AAAA,EAClB,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACtC,SAAS,EAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAEM,SAAS,mBAAmB,QAA4C;AAC7E,SAAO,uBAAuB,oBAAoB,MAAM;AAC1D;AAEO,SAAS,sBAAsB,OAA8C;AAClF,SAAO,gBAAgB,OAAO;AAAA,IAC5B,QAAQ;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,UAAU;AAAA,IACZ;AAAA,EACF,CAAC;AACH;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/s3/s3.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n BaseResource,\n PathSpec,\n ResourceName,\n S3Accessor,\n S3_COMMANDS,\n S3_OPS,\n S3_PROMPT,\n copy as copyCore,\n create as createCore,\n du as duCore,\n duAll as duAllCore,\n exists as existsCore,\n find as findCore,\n makeResolveGlob,\n mkdir as mkdirCore,\n mountKey,\n mountPrefixOf,\n normalizeKeyPrefix,\n rangeRead as rangeReadCore,\n read as readCore,\n readdir as readdirCore,\n rename as renameCore,\n S3_SCOPE_ERROR,\n rmR as rmRCore,\n rmdir as rmdirCore,\n stat as statCore,\n stream as streamCore,\n truncate as truncateCore,\n type FileStat,\n type FindOptions,\n type RegisteredCommand,\n type RegisteredOp,\n type Resource,\n unlink as unlinkCore,\n write as writeCore,\n} from '@struktoai/mirage-core'\nimport { redactConfig, type S3Config, type S3ConfigRedacted } from './config.ts'\n\nconst globCore = makeResolveGlob(readdirCore, S3_SCOPE_ERROR)\n\nexport interface S3ResourceState {\n type: string\n config: S3ConfigRedacted\n}\n\nexport class S3Resource extends BaseResource implements Resource {\n readonly kind: string = ResourceName.S3\n readonly cachesReads: boolean = true\n readonly supportsSnapshot: boolean = true\n override readonly indexTtl: number = 600\n readonly prompt: string = S3_PROMPT\n readonly config: S3Config\n readonly accessor: S3Accessor\n readonly opsMap: Record<string, unknown> = {\n read_bytes: readCore,\n write: writeCore,\n readdir: readdirCore,\n stat: statCore,\n unlink: unlinkCore,\n rmdir: rmdirCore,\n copy: copyCore,\n rename: renameCore,\n mkdir: mkdirCore,\n read_stream: streamCore,\n range_read: rangeReadCore,\n rm_recursive: rmRCore,\n du_total: duCore,\n du_all: duAllCore,\n create: createCore,\n truncate: truncateCore,\n exists: existsCore,\n find_flat: findCore,\n }\n\n constructor(config: S3Config) {\n super()\n const normalized = normalizeKeyPrefix(config.keyPrefix)\n const cfg: S3Config = { ...config }\n if (normalized !== undefined) {\n cfg.keyPrefix = normalized\n } else {\n delete cfg.keyPrefix\n }\n this.config = cfg\n this.accessor = new S3Accessor(this.config)\n }\n\n open(): Promise<void> {\n return Promise.resolve()\n }\n\n close(): Promise<void> {\n return Promise.resolve()\n }\n\n commands(): readonly RegisteredCommand[] {\n return S3_COMMANDS\n }\n\n ops(): readonly RegisteredOp[] {\n return S3_OPS\n }\n\n streamPath(p: PathSpec): AsyncIterable<Uint8Array> {\n return streamCore(this.accessor, p)\n }\n\n readFile(p: PathSpec): Promise<Uint8Array> {\n return readCore(this.accessor, p)\n }\n\n writeFile(p: PathSpec, data: Uint8Array): Promise<void> {\n return writeCore(this.accessor, p, data)\n }\n\n async appendFile(p: PathSpec, data: Uint8Array): Promise<void> {\n let existing: Uint8Array\n try {\n existing = await readCore(this.accessor, p)\n } catch (err) {\n if ((err as { code?: string } | null)?.code === 'ENOENT') {\n existing = new Uint8Array()\n } else {\n throw err\n }\n }\n const merged = new Uint8Array(existing.byteLength + data.byteLength)\n merged.set(existing, 0)\n merged.set(data, existing.byteLength)\n await writeCore(this.accessor, p, merged)\n }\n\n readdir(p: PathSpec): Promise<string[]> {\n return readdirCore(this.accessor, p, this.index)\n }\n\n stat(p: PathSpec): Promise<FileStat> {\n return statCore(this.accessor, p)\n }\n\n exists(p: PathSpec): Promise<boolean> {\n return existsCore(this.accessor, p)\n }\n\n mkdir(p: PathSpec): Promise<void> {\n return mkdirCore(this.accessor, p)\n }\n\n rmdir(p: PathSpec): Promise<void> {\n return rmdirCore(this.accessor, p)\n }\n\n unlink(p: PathSpec): Promise<void> {\n return unlinkCore(this.accessor, p)\n }\n\n rename(src: PathSpec, dst: PathSpec): Promise<void> {\n return renameCore(this.accessor, src, dst)\n }\n\n truncate(p: PathSpec, length: number): Promise<void> {\n return truncateCore(this.accessor, p, length)\n }\n\n copy(src: PathSpec, dst: PathSpec): Promise<void> {\n return copyCore(this.accessor, src, dst)\n }\n\n rmR(p: PathSpec): Promise<void> {\n return rmRCore(this.accessor, p)\n }\n\n du(p: PathSpec): Promise<number> {\n return duCore(this.accessor, p)\n }\n\n find(p: PathSpec, options: FindOptions = {}): Promise<string[]> {\n return findCore(this.accessor, p, options)\n }\n\n glob(paths: readonly PathSpec[], prefix = ''): Promise<PathSpec[]> {\n const effective = prefix\n ? paths.map((p) =>\n mountPrefixOf(p.virtual, p.resourcePath)\n ? p\n : new PathSpec({\n virtual: p.virtual,\n directory: p.directory,\n ...(p.pattern !== null ? { pattern: p.pattern } : {}),\n resolved: p.resolved,\n resourcePath: mountKey(p.virtual, prefix),\n }),\n )\n : paths\n return globCore(this.accessor, effective, this.index)\n }\n\n getState(): Promise<S3ResourceState> {\n return Promise.resolve({\n type: this.kind,\n config: redactConfig(this.config),\n })\n }\n\n loadState(_state: S3ResourceState): Promise<void> {\n return Promise.resolve()\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/github_ci/github_ci.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n BaseResource,\n GITHUB_CI_COMMANDS,\n GITHUB_CI_PROMPT,\n GITHUB_CI_OPS,\n GitHubCIAccessor,\n HttpCITransport,\n PathSpec,\n ResourceName,\n githubCiRead,\n githubCiReaddir,\n makeResolveGlob,\n githubCiStat,\n mountKey,\n mountPrefixOf,\n type FileStat,\n type RegisteredCommand,\n type RegisteredOp,\n type Resource,\n} from '@struktoai/mirage-core'\nimport { redactGitHubCIConfig, type GitHubCIConfig, type GitHubCIConfigRedacted } from './config.ts'\n\nconst githubCiResolveGlob = makeResolveGlob(githubCiReaddir)\n\nexport interface GitHubCIResourceState {\n type: string\n config: GitHubCIConfigRedacted\n}\n\nexport class GitHubCIResource extends BaseResource implements Resource {\n readonly kind: string = ResourceName.GITHUB_CI\n readonly cachesReads: boolean = true\n override readonly indexTtl: number = 86_400\n readonly prompt: string = GITHUB_CI_PROMPT\n readonly config: GitHubCIConfig\n readonly accessor: GitHubCIAccessor\n\n constructor(config: GitHubCIConfig) {\n super()\n this.config = config\n const transportOpts: { token: string; baseUrl?: string } = { token: config.token }\n if (config.baseUrl !== undefined) transportOpts.baseUrl = config.baseUrl\n this.accessor = new GitHubCIAccessor({\n transport: new HttpCITransport(transportOpts),\n owner: config.owner,\n repo: config.repo,\n days: config.days ?? 30,\n maxRuns: config.maxRuns ?? 300,\n })\n }\n\n open(): Promise<void> {\n return Promise.resolve()\n }\n\n close(): Promise<void> {\n return Promise.resolve()\n }\n\n commands(): readonly RegisteredCommand[] {\n return GITHUB_CI_COMMANDS\n }\n\n ops(): readonly RegisteredOp[] {\n return GITHUB_CI_OPS\n }\n\n readFile(p: PathSpec): Promise<Uint8Array> {\n return githubCiRead(this.accessor, p, this.index)\n }\n\n readdir(p: PathSpec): Promise<string[]> {\n return githubCiReaddir(this.accessor, p, this.index)\n }\n\n stat(p: PathSpec): Promise<FileStat> {\n return githubCiStat(this.accessor, p, this.index)\n }\n\n glob(paths: readonly PathSpec[], prefix = ''): Promise<PathSpec[]> {\n const effective =\n prefix !== ''\n ? paths.map((p) =>\n mountPrefixOf(p.virtual, p.resourcePath) !== ''\n ? p\n : new PathSpec({\n virtual: p.virtual,\n directory: p.directory,\n ...(p.pattern !== null ? { pattern: p.pattern } : {}),\n resolved: p.resolved,\n resourcePath: mountKey(p.virtual, prefix),\n }),\n )\n : paths\n return githubCiResolveGlob(this.accessor, effective, this.index)\n }\n\n getState(): Promise<GitHubCIResourceState> {\n return Promise.resolve({\n type: this.kind,\n config: redactGitHubCIConfig(this.config),\n })\n }\n\n loadState(_state: GitHubCIResourceState): Promise<void> {\n return Promise.resolve()\n }\n}\n"],"mappings":";;;;;AAcA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAKK;AAGP,IAAM,sBAAsB,gBAAgB,eAAe;AAOpD,IAAM,mBAAN,cAA+B,aAAiC;AAAA,EAC5D,OAAe,aAAa;AAAA,EAC5B,cAAuB;AAAA,EACd,WAAmB;AAAA,EAC5B,SAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EAET,YAAY,QAAwB;AAClC,UAAM;AACN,SAAK,SAAS;AACd,UAAM,gBAAqD,EAAE,OAAO,OAAO,MAAM;AACjF,QAAI,OAAO,YAAY,OAAW,eAAc,UAAU,OAAO;AACjE,SAAK,WAAW,IAAI,iBAAiB;AAAA,MACnC,WAAW,IAAI,gBAAgB,aAAa;AAAA,MAC5C,OAAO,OAAO;AAAA,MACd,MAAM,OAAO;AAAA,MACb,MAAM,OAAO,QAAQ;AAAA,MACrB,SAAS,OAAO,WAAW;AAAA,IAC7B,CAAC;AAAA,EACH;AAAA,EAEA,OAAsB;AACpB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,QAAuB;AACrB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,WAAyC;AACvC,WAAO;AAAA,EACT;AAAA,EAEA,MAA+B;AAC7B,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,GAAkC;AACzC,WAAO,aAAa,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAClD;AAAA,EAEA,QAAQ,GAAgC;AACtC,WAAO,gBAAgB,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EACrD;AAAA,EAEA,KAAK,GAAgC;AACnC,WAAO,aAAa,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAClD;AAAA,EAEA,KAAK,OAA4B,SAAS,IAAyB;AACjE,UAAM,YACJ,WAAW,KACP,MAAM;AAAA,MAAI,CAAC,MACT,cAAc,EAAE,SAAS,EAAE,YAAY,MAAM,KACzC,IACA,IAAI,SAAS;AAAA,QACX,SAAS,EAAE;AAAA,QACX,WAAW,EAAE;AAAA,QACb,GAAI,EAAE,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC;AAAA,QACnD,UAAU,EAAE;AAAA,QACZ,cAAc,SAAS,EAAE,SAAS,MAAM;AAAA,MAC1C,CAAC;AAAA,IACP,IACA;AACN,WAAO,oBAAoB,KAAK,UAAU,WAAW,KAAK,KAAK;AAAA,EACjE;AAAA,EAEA,WAA2C;AACzC,WAAO,QAAQ,QAAQ;AAAA,MACrB,MAAM,KAAK;AAAA,MACX,QAAQ,qBAAqB,KAAK,MAAM;AAAA,IAC1C,CAAC;AAAA,EACH;AAAA,EAEA,UAAU,QAA8C;AACtD,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/gdocs/gdocs.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n BaseResource,\n GDOCS_COMMANDS,\n GDOCS_PROMPT,\n GDOCS_OPS,\n GDOCS_WRITE_PROMPT,\n GDocsAccessor,\n PathSpec,\n ResourceName,\n TokenManager,\n gdocsRead,\n gdocsReaddir,\n makeResolveGlob,\n gdocsStat,\n mountKey,\n mountPrefixOf,\n type FileStat,\n type RegisteredCommand,\n type RegisteredOp,\n type Resource,\n} from '@struktoai/mirage-core'\nimport { redactGDocsConfig, type GDocsConfig, type GDocsConfigRedacted } from './config.ts'\n\nconst gdocsResolveGlob = makeResolveGlob(gdocsReaddir)\n\nexport interface GDocsResourceState {\n type: string\n config: GDocsConfigRedacted\n}\n\nexport class GDocsResource extends BaseResource implements Resource {\n readonly kind: string = ResourceName.GDOCS\n readonly cachesReads: boolean = true\n override readonly indexTtl: number = 86_400\n readonly prompt: string = GDOCS_PROMPT\n readonly writePrompt: string = GDOCS_WRITE_PROMPT\n readonly config: GDocsConfig\n readonly accessor: GDocsAccessor\n\n constructor(config: GDocsConfig) {\n super()\n this.config = config\n const tm = new TokenManager({\n clientId: config.clientId,\n clientSecret: config.clientSecret,\n refreshToken: config.refreshToken,\n ...(config.refreshFn !== undefined ? { refreshFn: config.refreshFn } : {}),\n })\n this.accessor = new GDocsAccessor({ tokenManager: tm })\n }\n\n open(): Promise<void> {\n return Promise.resolve()\n }\n\n close(): Promise<void> {\n return Promise.resolve()\n }\n\n commands(): readonly RegisteredCommand[] {\n return GDOCS_COMMANDS\n }\n\n ops(): readonly RegisteredOp[] {\n return GDOCS_OPS\n }\n\n readFile(p: PathSpec): Promise<Uint8Array> {\n return gdocsRead(this.accessor, p, this.index)\n }\n\n readdir(p: PathSpec): Promise<string[]> {\n return gdocsReaddir(this.accessor, p, this.index)\n }\n\n stat(p: PathSpec): Promise<FileStat> {\n return gdocsStat(this.accessor, p, this.index)\n }\n\n glob(paths: readonly PathSpec[], prefix = ''): Promise<PathSpec[]> {\n const effective =\n prefix !== ''\n ? paths.map((p) =>\n mountPrefixOf(p.virtual, p.resourcePath) !== ''\n ? p\n : new PathSpec({\n virtual: p.virtual,\n directory: p.directory,\n ...(p.pattern !== null ? { pattern: p.pattern } : {}),\n resolved: p.resolved,\n resourcePath: mountKey(p.virtual, prefix),\n }),\n )\n : paths\n return gdocsResolveGlob(this.accessor, effective, this.index)\n }\n\n getState(): Promise<GDocsResourceState> {\n return Promise.resolve({\n type: this.kind,\n config: redactGDocsConfig(this.config),\n })\n }\n\n loadState(_state: GDocsResourceState): Promise<void> {\n return Promise.resolve()\n }\n}\n"],"mappings":";;;;;AAcA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAKK;AAGP,IAAM,mBAAmB,gBAAgB,YAAY;AAO9C,IAAM,gBAAN,cAA4B,aAAiC;AAAA,EACzD,OAAe,aAAa;AAAA,EAC5B,cAAuB;AAAA,EACd,WAAmB;AAAA,EAC5B,SAAiB;AAAA,EACjB,cAAsB;AAAA,EACtB;AAAA,EACA;AAAA,EAET,YAAY,QAAqB;AAC/B,UAAM;AACN,SAAK,SAAS;AACd,UAAM,KAAK,IAAI,aAAa;AAAA,MAC1B,UAAU,OAAO;AAAA,MACjB,cAAc,OAAO;AAAA,MACrB,cAAc,OAAO;AAAA,MACrB,GAAI,OAAO,cAAc,SAAY,EAAE,WAAW,OAAO,UAAU,IAAI,CAAC;AAAA,IAC1E,CAAC;AACD,SAAK,WAAW,IAAI,cAAc,EAAE,cAAc,GAAG,CAAC;AAAA,EACxD;AAAA,EAEA,OAAsB;AACpB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,QAAuB;AACrB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,WAAyC;AACvC,WAAO;AAAA,EACT;AAAA,EAEA,MAA+B;AAC7B,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,GAAkC;AACzC,WAAO,UAAU,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAC/C;AAAA,EAEA,QAAQ,GAAgC;AACtC,WAAO,aAAa,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAClD;AAAA,EAEA,KAAK,GAAgC;AACnC,WAAO,UAAU,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAC/C;AAAA,EAEA,KAAK,OAA4B,SAAS,IAAyB;AACjE,UAAM,YACJ,WAAW,KACP,MAAM;AAAA,MAAI,CAAC,MACT,cAAc,EAAE,SAAS,EAAE,YAAY,MAAM,KACzC,IACA,IAAI,SAAS;AAAA,QACX,SAAS,EAAE;AAAA,QACX,WAAW,EAAE;AAAA,QACb,GAAI,EAAE,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC;AAAA,QACnD,UAAU,EAAE;AAAA,QACZ,cAAc,SAAS,EAAE,SAAS,MAAM;AAAA,MAC1C,CAAC;AAAA,IACP,IACA;AACN,WAAO,iBAAiB,KAAK,UAAU,WAAW,KAAK,KAAK;AAAA,EAC9D;AAAA,EAEA,WAAwC;AACtC,WAAO,QAAQ,QAAQ;AAAA,MACrB,MAAM,KAAK;AAAA,MACX,QAAQ,kBAAkB,KAAK,MAAM;AAAA,IACvC,CAAC;AAAA,EACH;AAAA,EAEA,UAAU,QAA2C;AACnD,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACF;","names":[]}
|
package/dist/chunk-JHI2PHHD.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
// src/resource/gdocs/config.ts
|
|
2
|
-
import { normalizeFields, redactConfigWithSchema, secretStr, z } from "@struktoai/mirage-core";
|
|
3
|
-
var GDocsConfigSchema = z.object({
|
|
4
|
-
clientId: z.string(),
|
|
5
|
-
clientSecret: secretStr(),
|
|
6
|
-
refreshToken: secretStr()
|
|
7
|
-
});
|
|
8
|
-
function redactGDocsConfig(config) {
|
|
9
|
-
return redactConfigWithSchema(GDocsConfigSchema, config);
|
|
10
|
-
}
|
|
11
|
-
function normalizeGDocsConfig(input) {
|
|
12
|
-
return normalizeFields(input, {
|
|
13
|
-
rename: {
|
|
14
|
-
client_id: "clientId",
|
|
15
|
-
client_secret: "clientSecret",
|
|
16
|
-
refresh_token: "refreshToken"
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export {
|
|
22
|
-
redactGDocsConfig,
|
|
23
|
-
normalizeGDocsConfig
|
|
24
|
-
};
|
|
25
|
-
//# sourceMappingURL=chunk-JHI2PHHD.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/gdocs/config.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { normalizeFields, redactConfigWithSchema, secretStr, z } from '@struktoai/mirage-core'\n\nexport interface GDocsConfig {\n clientId: string\n clientSecret: string\n refreshToken: string\n refreshFn?: (refreshToken: string) => Promise<{ accessToken: string; expiresIn: number }>\n}\n\nexport interface GDocsConfigRedacted {\n clientId: string\n clientSecret: '<REDACTED>'\n refreshToken: '<REDACTED>'\n}\n\nconst GDocsConfigSchema = z.object({\n clientId: z.string(),\n clientSecret: secretStr(),\n refreshToken: secretStr(),\n})\n\nexport function redactGDocsConfig(config: GDocsConfig): GDocsConfigRedacted {\n return redactConfigWithSchema(GDocsConfigSchema, config) as unknown as GDocsConfigRedacted\n}\n\nexport function normalizeGDocsConfig(input: Record<string, unknown>): GDocsConfig {\n return normalizeFields(input, {\n rename: {\n client_id: 'clientId',\n client_secret: 'clientSecret',\n refresh_token: 'refreshToken',\n },\n }) as unknown as GDocsConfig\n}\n"],"mappings":";AAcA,SAAS,iBAAiB,wBAAwB,WAAW,SAAS;AAetE,IAAM,oBAAoB,EAAE,OAAO;AAAA,EACjC,UAAU,EAAE,OAAO;AAAA,EACnB,cAAc,UAAU;AAAA,EACxB,cAAc,UAAU;AAC1B,CAAC;AAEM,SAAS,kBAAkB,QAA0C;AAC1E,SAAO,uBAAuB,mBAAmB,MAAM;AACzD;AAEO,SAAS,qBAAqB,OAA6C;AAChF,SAAO,gBAAgB,OAAO;AAAA,IAC5B,QAAQ;AAAA,MACN,WAAW;AAAA,MACX,eAAe;AAAA,MACf,eAAe;AAAA,IACjB;AAAA,EACF,CAAC;AACH;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/hf_buckets/config.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { normalizeFields, redactConfigWithSchema, secretStr, z } from '@struktoai/mirage-core'\n\nexport const HF_ENDPOINT = 'https://huggingface.co'\n\nexport function assertHfRepoId(value: string, field: string): string {\n const parts = value.split('/')\n if (parts.length !== 2 || parts[0] === '' || parts[1] === '') {\n throw new Error(`${field} must be in 'namespace/name' form; got ${JSON.stringify(value)}`)\n }\n return value\n}\n\nexport interface HfBucketsConfig {\n bucket: string\n token?: string\n endpoint?: string\n timeoutMs?: number\n keyPrefix?: string\n}\n\nexport interface HfBucketsConfigRedacted {\n bucket: string\n token?: string\n endpoint: string\n timeoutMs?: number\n keyPrefix?: string\n}\n\nconst HfBucketsConfigSchema = z.object({\n bucket: z.string(),\n token: secretStr().optional(),\n endpoint: z.string(),\n timeoutMs: z.number().optional(),\n keyPrefix: z.string().optional(),\n})\n\nexport function redactHfBucketsConfig(config: HfBucketsConfig): HfBucketsConfigRedacted {\n return redactConfigWithSchema(HfBucketsConfigSchema, {\n ...config,\n endpoint: config.endpoint ?? HF_ENDPOINT,\n }) as unknown as HfBucketsConfigRedacted\n}\n\nexport function normalizeHfBucketsConfig(input: Record<string, unknown>): HfBucketsConfig {\n const config = normalizeFields(input, {\n rename: {\n key_prefix: 'keyPrefix',\n timeout: 'timeoutMs',\n },\n transform: {\n timeout: (v: unknown) => (typeof v === 'number' ? v * 1000 : v),\n },\n }) as unknown as HfBucketsConfig\n assertHfRepoId(config.bucket, 'bucket')\n return config\n}\n\nexport interface HfRepoConfig {\n repoId: string\n token?: string\n endpoint?: string\n timeoutMs?: number\n keyPrefix?: string\n revision?: string\n}\n\nexport interface HfRepoConfigRedacted {\n repoId: string\n token?: string\n endpoint: string\n timeoutMs?: number\n keyPrefix?: string\n revision?: string\n}\n\nconst HfRepoConfigSchema = z.object({\n repoId: z.string(),\n token: secretStr().optional(),\n endpoint: z.string(),\n timeoutMs: z.number().optional(),\n keyPrefix: z.string().optional(),\n revision: z.string().optional(),\n})\n\nexport function redactHfRepoConfig(config: HfRepoConfig): HfRepoConfigRedacted {\n return redactConfigWithSchema(HfRepoConfigSchema, {\n ...config,\n endpoint: config.endpoint ?? HF_ENDPOINT,\n }) as unknown as HfRepoConfigRedacted\n}\n\nexport function normalizeHfRepoConfig(input: Record<string, unknown>): HfRepoConfig {\n const config = normalizeFields(input, {\n rename: {\n repo_id: 'repoId',\n key_prefix: 'keyPrefix',\n timeout: 'timeoutMs',\n },\n transform: {\n timeout: (v: unknown) => (typeof v === 'number' ? v * 1000 : v),\n },\n }) as unknown as HfRepoConfig\n assertHfRepoId(config.repoId, 'repo_id')\n return config\n}\n"],"mappings":";AAcA,SAAS,iBAAiB,wBAAwB,WAAW,SAAS;AAE/D,IAAM,cAAc;AAEpB,SAAS,eAAe,OAAe,OAAuB;AACnE,QAAM,QAAQ,MAAM,MAAM,GAAG;AAC7B,MAAI,MAAM,WAAW,KAAK,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,MAAM,IAAI;AAC5D,UAAM,IAAI,MAAM,GAAG,KAAK,0CAA0C,KAAK,UAAU,KAAK,CAAC,EAAE;AAAA,EAC3F;AACA,SAAO;AACT;AAkBA,IAAM,wBAAwB,EAAE,OAAO;AAAA,EACrC,QAAQ,EAAE,OAAO;AAAA,EACjB,OAAO,UAAU,EAAE,SAAS;AAAA,EAC5B,UAAU,EAAE,OAAO;AAAA,EACnB,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,WAAW,EAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAEM,SAAS,sBAAsB,QAAkD;AACtF,SAAO,uBAAuB,uBAAuB;AAAA,IACnD,GAAG;AAAA,IACH,UAAU,OAAO,YAAY;AAAA,EAC/B,CAAC;AACH;AAEO,SAAS,yBAAyB,OAAiD;AACxF,QAAM,SAAS,gBAAgB,OAAO;AAAA,IACpC,QAAQ;AAAA,MACN,YAAY;AAAA,MACZ,SAAS;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACT,SAAS,CAAC,MAAgB,OAAO,MAAM,WAAW,IAAI,MAAO;AAAA,IAC/D;AAAA,EACF,CAAC;AACD,iBAAe,OAAO,QAAQ,QAAQ;AACtC,SAAO;AACT;AAoBA,IAAM,qBAAqB,EAAE,OAAO;AAAA,EAClC,QAAQ,EAAE,OAAO;AAAA,EACjB,OAAO,UAAU,EAAE,SAAS;AAAA,EAC5B,UAAU,EAAE,OAAO;AAAA,EACnB,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,SAAS,mBAAmB,QAA4C;AAC7E,SAAO,uBAAuB,oBAAoB;AAAA,IAChD,GAAG;AAAA,IACH,UAAU,OAAO,YAAY;AAAA,EAC/B,CAAC;AACH;AAEO,SAAS,sBAAsB,OAA8C;AAClF,QAAM,SAAS,gBAAgB,OAAO;AAAA,IACpC,QAAQ;AAAA,MACN,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,SAAS;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACT,SAAS,CAAC,MAAgB,OAAO,MAAM,WAAW,IAAI,MAAO;AAAA,IAC/D;AAAA,EACF,CAAC;AACD,iBAAe,OAAO,QAAQ,SAAS;AACvC,SAAO;AACT;","names":[]}
|
package/dist/chunk-KGC2OGXI.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
// src/resource/gdrive/config.ts
|
|
2
|
-
import { normalizeFields, redactConfigWithSchema, secretStr, z } from "@struktoai/mirage-core";
|
|
3
|
-
var GDriveConfigSchema = z.object({
|
|
4
|
-
clientId: z.string(),
|
|
5
|
-
clientSecret: secretStr(),
|
|
6
|
-
refreshToken: secretStr(),
|
|
7
|
-
folderId: z.string().optional()
|
|
8
|
-
});
|
|
9
|
-
function redactGDriveConfig(config) {
|
|
10
|
-
return redactConfigWithSchema(GDriveConfigSchema, config);
|
|
11
|
-
}
|
|
12
|
-
function normalizeGDriveConfig(input) {
|
|
13
|
-
return normalizeFields(input, {
|
|
14
|
-
rename: {
|
|
15
|
-
client_id: "clientId",
|
|
16
|
-
client_secret: "clientSecret",
|
|
17
|
-
refresh_token: "refreshToken",
|
|
18
|
-
folder_id: "folderId"
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export {
|
|
24
|
-
redactGDriveConfig,
|
|
25
|
-
normalizeGDriveConfig
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=chunk-KGC2OGXI.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/gdrive/config.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { normalizeFields, redactConfigWithSchema, secretStr, z } from '@struktoai/mirage-core'\n\nexport interface GDriveConfig {\n clientId: string\n clientSecret: string\n refreshToken: string\n refreshFn?: (refreshToken: string) => Promise<{ accessToken: string; expiresIn: number }>\n folderId?: string\n}\n\nexport interface GDriveConfigRedacted {\n clientId: string\n clientSecret: '<REDACTED>'\n refreshToken: '<REDACTED>'\n}\n\nconst GDriveConfigSchema = z.object({\n clientId: z.string(),\n clientSecret: secretStr(),\n refreshToken: secretStr(),\n folderId: z.string().optional(),\n})\n\nexport function redactGDriveConfig(config: GDriveConfig): GDriveConfigRedacted {\n return redactConfigWithSchema(GDriveConfigSchema, config) as unknown as GDriveConfigRedacted\n}\n\nexport function normalizeGDriveConfig(input: Record<string, unknown>): GDriveConfig {\n return normalizeFields(input, {\n rename: {\n client_id: 'clientId',\n client_secret: 'clientSecret',\n refresh_token: 'refreshToken',\n folder_id: 'folderId',\n },\n }) as unknown as GDriveConfig\n}\n"],"mappings":";AAcA,SAAS,iBAAiB,wBAAwB,WAAW,SAAS;AAgBtE,IAAM,qBAAqB,EAAE,OAAO;AAAA,EAClC,UAAU,EAAE,OAAO;AAAA,EACnB,cAAc,UAAU;AAAA,EACxB,cAAc,UAAU;AAAA,EACxB,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,SAAS,mBAAmB,QAA4C;AAC7E,SAAO,uBAAuB,oBAAoB,MAAM;AAC1D;AAEO,SAAS,sBAAsB,OAA8C;AAClF,SAAO,gBAAgB,OAAO;AAAA,IAC5B,QAAQ;AAAA,MACN,WAAW;AAAA,MACX,eAAe;AAAA,MACf,eAAe;AAAA,MACf,WAAW;AAAA,IACb;AAAA,EACF,CAAC;AACH;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/ssh/config.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { normalizeFields, redactConfigWithSchema, secretStr, z } from '@struktoai/mirage-core'\n\nexport interface SSHConfig {\n host: string\n hostname?: string\n port?: number\n username?: string\n password?: string\n identityFile?: string\n passphrase?: string\n root?: string\n timeout?: number\n knownHosts?: string\n}\n\nexport interface SSHConfigRedacted {\n host: string\n hostname?: string\n port?: number\n username?: string\n password?: '<REDACTED>'\n identityFile?: string\n passphrase?: '<REDACTED>'\n root?: string\n timeout?: number\n knownHosts?: string\n}\n\nconst SSHConfigSchema = z.object({\n host: z.string(),\n hostname: z.string().optional(),\n port: z.number().optional(),\n username: z.string().optional(),\n password: secretStr().optional(),\n identityFile: z.string().optional(),\n passphrase: secretStr().optional(),\n root: z.string().optional(),\n timeout: z.number().optional(),\n knownHosts: z.string().optional(),\n})\n\nexport function redactSshConfig(config: SSHConfig): SSHConfigRedacted {\n return redactConfigWithSchema(SSHConfigSchema, config) as unknown as SSHConfigRedacted\n}\n\nexport function normalizeSshConfig(input: Record<string, unknown>): SSHConfig {\n return normalizeFields(input, {\n rename: {\n identity_file: 'identityFile',\n known_hosts: 'knownHosts',\n },\n }) as unknown as SSHConfig\n}\n"],"mappings":";AAcA,SAAS,iBAAiB,wBAAwB,WAAW,SAAS;AA4BtE,IAAM,kBAAkB,EAAE,OAAO;AAAA,EAC/B,MAAM,EAAE,OAAO;AAAA,EACf,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,UAAU,UAAU,EAAE,SAAS;AAAA,EAC/B,cAAc,EAAE,OAAO,EAAE,SAAS;AAAA,EAClC,YAAY,UAAU,EAAE,SAAS;AAAA,EACjC,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,SAAS,EAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,YAAY,EAAE,OAAO,EAAE,SAAS;AAClC,CAAC;AAEM,SAAS,gBAAgB,QAAsC;AACpE,SAAO,uBAAuB,iBAAiB,MAAM;AACvD;AAEO,SAAS,mBAAmB,OAA2C;AAC5E,SAAO,gBAAgB,OAAO;AAAA,IAC5B,QAAQ;AAAA,MACN,eAAe;AAAA,MACf,aAAa;AAAA,IACf;AAAA,EACF,CAAC;AACH;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/langfuse/langfuse.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n BaseResource,\n HttpLangfuseTransport,\n LANGFUSE_COMMANDS,\n LANGFUSE_PROMPT,\n LANGFUSE_OPS,\n LangfuseAccessor,\n PathSpec,\n ResourceName,\n langfuseRead,\n langfuseReaddir,\n langfuseStat,\n mountKey,\n mountPrefixOf,\n makeResolveGlob,\n type FileStat,\n type RegisteredCommand,\n type RegisteredOp,\n type Resource,\n} from '@struktoai/mirage-core'\nimport { redactLangfuseConfig, type LangfuseConfig, type LangfuseConfigRedacted } from './config.ts'\n\nconst resolveLangfuseGlob = makeResolveGlob(langfuseReaddir)\n\nexport interface LangfuseResourceState {\n type: string\n config: LangfuseConfigRedacted\n}\n\nexport class LangfuseResource extends BaseResource implements Resource {\n readonly kind: string = ResourceName.LANGFUSE\n readonly cachesReads: boolean = true\n override readonly indexTtl: number = 600\n readonly prompt: string = LANGFUSE_PROMPT\n readonly config: LangfuseConfig\n readonly accessor: LangfuseAccessor\n\n constructor(config: LangfuseConfig) {\n super()\n this.config = config\n const transportOpts: { publicKey: string; secretKey: string; host?: string } = {\n publicKey: config.publicKey,\n secretKey: config.secretKey,\n }\n if (config.host !== undefined) transportOpts.host = config.host\n const accessorConfig: {\n defaultTraceLimit?: number\n defaultSearchLimit?: number\n defaultFromTimestamp?: string\n } = {}\n if (config.defaultTraceLimit !== undefined) {\n accessorConfig.defaultTraceLimit = config.defaultTraceLimit\n }\n if (config.defaultSearchLimit !== undefined) {\n accessorConfig.defaultSearchLimit = config.defaultSearchLimit\n }\n if (config.defaultFromTimestamp !== undefined) {\n accessorConfig.defaultFromTimestamp = config.defaultFromTimestamp\n }\n this.accessor = new LangfuseAccessor(new HttpLangfuseTransport(transportOpts), accessorConfig)\n }\n\n open(): Promise<void> {\n return Promise.resolve()\n }\n\n close(): Promise<void> {\n return Promise.resolve()\n }\n\n commands(): readonly RegisteredCommand[] {\n return LANGFUSE_COMMANDS\n }\n\n ops(): readonly RegisteredOp[] {\n return LANGFUSE_OPS\n }\n\n readFile(p: PathSpec): Promise<Uint8Array> {\n return langfuseRead(this.accessor, p, this.index)\n }\n\n readdir(p: PathSpec): Promise<string[]> {\n return langfuseReaddir(this.accessor, p, this.index)\n }\n\n stat(p: PathSpec): Promise<FileStat> {\n return langfuseStat(this.accessor, p, this.index)\n }\n\n glob(paths: readonly PathSpec[], prefix = ''): Promise<PathSpec[]> {\n const effective =\n prefix !== ''\n ? paths.map((p) =>\n mountPrefixOf(p.virtual, p.resourcePath) !== ''\n ? p\n : new PathSpec({\n virtual: p.virtual,\n directory: p.directory,\n ...(p.pattern !== null ? { pattern: p.pattern } : {}),\n resolved: p.resolved,\n resourcePath: mountKey(p.virtual, prefix),\n }),\n )\n : paths\n return resolveLangfuseGlob(this.accessor, effective, this.index)\n }\n\n getState(): Promise<LangfuseResourceState> {\n return Promise.resolve({\n type: this.kind,\n config: redactLangfuseConfig(this.config),\n })\n }\n\n loadState(_state: LangfuseResourceState): Promise<void> {\n return Promise.resolve()\n }\n}\n"],"mappings":";;;;;AAcA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAKK;AAGP,IAAM,sBAAsB,gBAAgB,eAAe;AAOpD,IAAM,mBAAN,cAA+B,aAAiC;AAAA,EAC5D,OAAe,aAAa;AAAA,EAC5B,cAAuB;AAAA,EACd,WAAmB;AAAA,EAC5B,SAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EAET,YAAY,QAAwB;AAClC,UAAM;AACN,SAAK,SAAS;AACd,UAAM,gBAAyE;AAAA,MAC7E,WAAW,OAAO;AAAA,MAClB,WAAW,OAAO;AAAA,IACpB;AACA,QAAI,OAAO,SAAS,OAAW,eAAc,OAAO,OAAO;AAC3D,UAAM,iBAIF,CAAC;AACL,QAAI,OAAO,sBAAsB,QAAW;AAC1C,qBAAe,oBAAoB,OAAO;AAAA,IAC5C;AACA,QAAI,OAAO,uBAAuB,QAAW;AAC3C,qBAAe,qBAAqB,OAAO;AAAA,IAC7C;AACA,QAAI,OAAO,yBAAyB,QAAW;AAC7C,qBAAe,uBAAuB,OAAO;AAAA,IAC/C;AACA,SAAK,WAAW,IAAI,iBAAiB,IAAI,sBAAsB,aAAa,GAAG,cAAc;AAAA,EAC/F;AAAA,EAEA,OAAsB;AACpB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,QAAuB;AACrB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,WAAyC;AACvC,WAAO;AAAA,EACT;AAAA,EAEA,MAA+B;AAC7B,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,GAAkC;AACzC,WAAO,aAAa,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAClD;AAAA,EAEA,QAAQ,GAAgC;AACtC,WAAO,gBAAgB,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EACrD;AAAA,EAEA,KAAK,GAAgC;AACnC,WAAO,aAAa,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAClD;AAAA,EAEA,KAAK,OAA4B,SAAS,IAAyB;AACjE,UAAM,YACJ,WAAW,KACP,MAAM;AAAA,MAAI,CAAC,MACT,cAAc,EAAE,SAAS,EAAE,YAAY,MAAM,KACzC,IACA,IAAI,SAAS;AAAA,QACX,SAAS,EAAE;AAAA,QACX,WAAW,EAAE;AAAA,QACb,GAAI,EAAE,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC;AAAA,QACnD,UAAU,EAAE;AAAA,QACZ,cAAc,SAAS,EAAE,SAAS,MAAM;AAAA,MAC1C,CAAC;AAAA,IACP,IACA;AACN,WAAO,oBAAoB,KAAK,UAAU,WAAW,KAAK,KAAK;AAAA,EACjE;AAAA,EAEA,WAA2C;AACzC,WAAO,QAAQ,QAAQ;AAAA,MACrB,MAAM,KAAK;AAAA,MACX,QAAQ,qBAAqB,KAAK,MAAM;AAAA,IAC1C,CAAC;AAAA,EACH;AAAA,EAEA,UAAU,QAA8C;AACtD,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACF;","names":[]}
|
package/dist/chunk-MIQ3ECZM.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
// src/resource/seaweedfs/config.ts
|
|
2
|
-
import { normalizeFields, redactConfigWithSchema, secretStr, z } from "@struktoai/mirage-core";
|
|
3
|
-
var SeaweedFSConfigSchema = z.object({
|
|
4
|
-
bucket: z.string(),
|
|
5
|
-
endpoint: z.string(),
|
|
6
|
-
accessKeyId: secretStr(),
|
|
7
|
-
secretAccessKey: secretStr(),
|
|
8
|
-
region: z.string(),
|
|
9
|
-
forcePathStyle: z.boolean(),
|
|
10
|
-
keyPrefix: z.string().optional(),
|
|
11
|
-
timeoutMs: z.number().optional()
|
|
12
|
-
});
|
|
13
|
-
function seaweedfsToS3Config(config) {
|
|
14
|
-
return {
|
|
15
|
-
bucket: config.bucket,
|
|
16
|
-
region: config.region ?? "us-east-1",
|
|
17
|
-
endpoint: config.endpoint,
|
|
18
|
-
accessKeyId: config.accessKeyId,
|
|
19
|
-
secretAccessKey: config.secretAccessKey,
|
|
20
|
-
forcePathStyle: config.forcePathStyle ?? true,
|
|
21
|
-
...config.keyPrefix !== void 0 ? { keyPrefix: config.keyPrefix } : {},
|
|
22
|
-
...config.timeoutMs !== void 0 ? { timeoutMs: config.timeoutMs } : {}
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
function redactSeaweedFSConfig(config) {
|
|
26
|
-
return redactConfigWithSchema(SeaweedFSConfigSchema, {
|
|
27
|
-
...config,
|
|
28
|
-
region: config.region ?? "us-east-1",
|
|
29
|
-
forcePathStyle: config.forcePathStyle ?? true
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
function normalizeSeaweedFSConfig(input) {
|
|
33
|
-
return normalizeFields(input, {
|
|
34
|
-
rename: {
|
|
35
|
-
access_key_id: "accessKeyId",
|
|
36
|
-
secret_access_key: "secretAccessKey",
|
|
37
|
-
endpoint_url: "endpoint",
|
|
38
|
-
path_style: "forcePathStyle",
|
|
39
|
-
key_prefix: "keyPrefix",
|
|
40
|
-
timeout: "timeoutMs"
|
|
41
|
-
},
|
|
42
|
-
transform: {
|
|
43
|
-
timeout: (v) => typeof v === "number" ? v * 1e3 : v
|
|
44
|
-
},
|
|
45
|
-
drop: ["proxy"]
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export {
|
|
50
|
-
seaweedfsToS3Config,
|
|
51
|
-
redactSeaweedFSConfig,
|
|
52
|
-
normalizeSeaweedFSConfig
|
|
53
|
-
};
|
|
54
|
-
//# sourceMappingURL=chunk-MIQ3ECZM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/seaweedfs/config.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { normalizeFields, redactConfigWithSchema, secretStr, z } from '@struktoai/mirage-core'\nimport type { S3Config } from '../s3/config.ts'\n\nexport interface SeaweedFSConfig {\n bucket: string\n endpoint: string\n accessKeyId: string\n secretAccessKey: string\n region?: string\n forcePathStyle?: boolean\n keyPrefix?: string\n timeoutMs?: number\n}\n\nexport interface SeaweedFSConfigRedacted {\n bucket: string\n endpoint: string\n accessKeyId: string\n secretAccessKey: string\n region: string\n forcePathStyle: boolean\n keyPrefix?: string\n timeoutMs?: number\n}\n\nconst SeaweedFSConfigSchema = z.object({\n bucket: z.string(),\n endpoint: z.string(),\n accessKeyId: secretStr(),\n secretAccessKey: secretStr(),\n region: z.string(),\n forcePathStyle: z.boolean(),\n keyPrefix: z.string().optional(),\n timeoutMs: z.number().optional(),\n})\n\nexport function seaweedfsToS3Config(config: SeaweedFSConfig): S3Config {\n return {\n bucket: config.bucket,\n region: config.region ?? 'us-east-1',\n endpoint: config.endpoint,\n accessKeyId: config.accessKeyId,\n secretAccessKey: config.secretAccessKey,\n forcePathStyle: config.forcePathStyle ?? true,\n ...(config.keyPrefix !== undefined ? { keyPrefix: config.keyPrefix } : {}),\n ...(config.timeoutMs !== undefined ? { timeoutMs: config.timeoutMs } : {}),\n }\n}\n\nexport function redactSeaweedFSConfig(config: SeaweedFSConfig): SeaweedFSConfigRedacted {\n return redactConfigWithSchema(SeaweedFSConfigSchema, {\n ...config,\n region: config.region ?? 'us-east-1',\n forcePathStyle: config.forcePathStyle ?? true,\n }) as unknown as SeaweedFSConfigRedacted\n}\n\nexport function normalizeSeaweedFSConfig(input: Record<string, unknown>): SeaweedFSConfig {\n return normalizeFields(input, {\n rename: {\n access_key_id: 'accessKeyId',\n secret_access_key: 'secretAccessKey',\n endpoint_url: 'endpoint',\n path_style: 'forcePathStyle',\n key_prefix: 'keyPrefix',\n timeout: 'timeoutMs',\n },\n transform: {\n timeout: (v: unknown) => (typeof v === 'number' ? v * 1000 : v),\n },\n drop: ['proxy'],\n }) as unknown as SeaweedFSConfig\n}\n"],"mappings":";AAcA,SAAS,iBAAiB,wBAAwB,WAAW,SAAS;AAyBtE,IAAM,wBAAwB,EAAE,OAAO;AAAA,EACrC,QAAQ,EAAE,OAAO;AAAA,EACjB,UAAU,EAAE,OAAO;AAAA,EACnB,aAAa,UAAU;AAAA,EACvB,iBAAiB,UAAU;AAAA,EAC3B,QAAQ,EAAE,OAAO;AAAA,EACjB,gBAAgB,EAAE,QAAQ;AAAA,EAC1B,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,WAAW,EAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAEM,SAAS,oBAAoB,QAAmC;AACrE,SAAO;AAAA,IACL,QAAQ,OAAO;AAAA,IACf,QAAQ,OAAO,UAAU;AAAA,IACzB,UAAU,OAAO;AAAA,IACjB,aAAa,OAAO;AAAA,IACpB,iBAAiB,OAAO;AAAA,IACxB,gBAAgB,OAAO,kBAAkB;AAAA,IACzC,GAAI,OAAO,cAAc,SAAY,EAAE,WAAW,OAAO,UAAU,IAAI,CAAC;AAAA,IACxE,GAAI,OAAO,cAAc,SAAY,EAAE,WAAW,OAAO,UAAU,IAAI,CAAC;AAAA,EAC1E;AACF;AAEO,SAAS,sBAAsB,QAAkD;AACtF,SAAO,uBAAuB,uBAAuB;AAAA,IACnD,GAAG;AAAA,IACH,QAAQ,OAAO,UAAU;AAAA,IACzB,gBAAgB,OAAO,kBAAkB;AAAA,EAC3C,CAAC;AACH;AAEO,SAAS,yBAAyB,OAAiD;AACxF,SAAO,gBAAgB,OAAO;AAAA,IAC5B,QAAQ;AAAA,MACN,eAAe;AAAA,MACf,mBAAmB;AAAA,MACnB,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,SAAS;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACT,SAAS,CAAC,MAAgB,OAAO,MAAM,WAAW,IAAI,MAAO;AAAA,IAC/D;AAAA,IACA,MAAM,CAAC,OAAO;AAAA,EAChB,CAAC;AACH;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/nextcloud/config.ts"],"sourcesContent":["export interface NextcloudConfig {\n url: string\n username?: string\n password?: string\n verifySsl?: boolean\n timeout?: number\n}\n\nexport interface NextcloudConfigRedacted extends Omit<NextcloudConfig, 'password'> {\n password?: '<REDACTED>'\n}\n\nexport function normalizeNextcloudConfig(config: Record<string, unknown>): NextcloudConfig {\n const url = config.url\n if (typeof url !== 'string' || url === '') {\n throw new TypeError('nextcloud config requires a non-empty url')\n }\n const normalized: NextcloudConfig = { url }\n const username = config.username\n const password = config.password\n const verifySsl = config.verifySsl ?? config.verify_ssl\n const timeout = config.timeout\n if (typeof username === 'string' && username !== '') normalized.username = username\n if (typeof password === 'string' && password !== '') normalized.password = password\n if (typeof verifySsl === 'boolean') normalized.verifySsl = verifySsl\n if (typeof timeout === 'number') normalized.timeout = timeout\n return normalized\n}\n\nexport function redactNextcloudConfig(config: NextcloudConfig): NextcloudConfigRedacted {\n const { password, ...visible } = config\n return {\n ...visible,\n ...(password !== undefined ? { password: '<REDACTED>' as const } : {}),\n }\n}\n"],"mappings":";AAYO,SAAS,yBAAyB,QAAkD;AACzF,QAAM,MAAM,OAAO;AACnB,MAAI,OAAO,QAAQ,YAAY,QAAQ,IAAI;AACzC,UAAM,IAAI,UAAU,2CAA2C;AAAA,EACjE;AACA,QAAM,aAA8B,EAAE,IAAI;AAC1C,QAAM,WAAW,OAAO;AACxB,QAAM,WAAW,OAAO;AACxB,QAAM,YAAY,OAAO,aAAa,OAAO;AAC7C,QAAM,UAAU,OAAO;AACvB,MAAI,OAAO,aAAa,YAAY,aAAa,GAAI,YAAW,WAAW;AAC3E,MAAI,OAAO,aAAa,YAAY,aAAa,GAAI,YAAW,WAAW;AAC3E,MAAI,OAAO,cAAc,UAAW,YAAW,YAAY;AAC3D,MAAI,OAAO,YAAY,SAAU,YAAW,UAAU;AACtD,SAAO;AACT;AAEO,SAAS,sBAAsB,QAAkD;AACtF,QAAM,EAAE,UAAU,GAAG,QAAQ,IAAI;AACjC,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAI,aAAa,SAAY,EAAE,UAAU,aAAsB,IAAI,CAAC;AAAA,EACtE;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resource/trello/config.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { normalizeFields, redactConfigWithSchema, secretStr, z } from '@struktoai/mirage-core'\n\nexport interface TrelloConfig {\n apiKey: string\n apiToken: string\n workspaceId?: string\n boardIds?: readonly string[]\n baseUrl?: string\n}\n\nexport interface TrelloConfigRedacted {\n apiKey: '<REDACTED>'\n apiToken: '<REDACTED>'\n workspaceId?: string\n boardIds?: readonly string[]\n baseUrl?: string\n}\n\nconst TrelloConfigSchema = z.object({\n apiKey: secretStr(),\n apiToken: secretStr(),\n workspaceId: z.string().optional(),\n boardIds: z.array(z.string()).optional(),\n baseUrl: z.string().optional(),\n})\n\nexport function redactTrelloConfig(config: TrelloConfig): TrelloConfigRedacted {\n return redactConfigWithSchema(TrelloConfigSchema, config) as unknown as TrelloConfigRedacted\n}\n\nexport function normalizeTrelloConfig(input: Record<string, unknown>): TrelloConfig {\n return normalizeFields(input, {\n rename: {\n api_key: 'apiKey',\n api_token: 'apiToken',\n workspace_id: 'workspaceId',\n board_ids: 'boardIds',\n base_url: 'baseUrl',\n },\n }) as unknown as TrelloConfig\n}\n"],"mappings":";AAcA,SAAS,iBAAiB,wBAAwB,WAAW,SAAS;AAkBtE,IAAM,qBAAqB,EAAE,OAAO;AAAA,EAClC,QAAQ,UAAU;AAAA,EAClB,UAAU,UAAU;AAAA,EACpB,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA,EACjC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACvC,SAAS,EAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAEM,SAAS,mBAAmB,QAA4C;AAC7E,SAAO,uBAAuB,oBAAoB,MAAM;AAC1D;AAEO,SAAS,sBAAsB,OAA8C;AAClF,SAAO,gBAAgB,OAAO;AAAA,IAC5B,QAAQ;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MACX,cAAc;AAAA,MACd,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF,CAAC;AACH;","names":[]}
|