@struktoai/mirage-node 0.0.3 → 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.
Files changed (465) hide show
  1. package/README.md +2 -1
  2. package/dist/aliyun-S62BR3TB.js +11 -0
  3. package/dist/append.lua +17 -0
  4. package/dist/backblaze-4EKSW63F.js +11 -0
  5. package/dist/box-ZPLZAGMK.js +8 -0
  6. package/dist/cas.lua +15 -0
  7. package/dist/ceph-ALKLD3MO.js +11 -0
  8. package/dist/{chunk-QCZ2XUKH.js → chunk-2A4YGVBM.js} +16 -23
  9. package/dist/chunk-2A4YGVBM.js.map +1 -0
  10. package/dist/chunk-2HCYLVGY.js +28 -0
  11. package/dist/chunk-2HCYLVGY.js.map +1 -0
  12. package/dist/chunk-2VPZAH5Q.js +20 -0
  13. package/dist/chunk-2VPZAH5Q.js.map +1 -0
  14. package/dist/{chunk-UT2OPSN4.js → chunk-3JZQ6VSZ.js} +5 -5
  15. package/dist/chunk-3JZQ6VSZ.js.map +1 -0
  16. package/dist/chunk-4IF4TGAI.js +11 -0
  17. package/dist/chunk-4IF4TGAI.js.map +1 -0
  18. package/dist/{chunk-47AVIIOT.js → chunk-5H6KNEPP.js} +4 -5
  19. package/dist/{chunk-47AVIIOT.js.map → chunk-5H6KNEPP.js.map} +1 -1
  20. package/dist/{chunk-I5THIMPP.js → chunk-5K2MWDCE.js} +6 -7
  21. package/dist/{chunk-I5THIMPP.js.map → chunk-5K2MWDCE.js.map} +1 -1
  22. package/dist/{chunk-3WIO7NBR.js → chunk-6SVXWRKX.js} +4 -5
  23. package/dist/{chunk-3WIO7NBR.js.map → chunk-6SVXWRKX.js.map} +1 -1
  24. package/dist/{chunk-RQK5UPMP.js → chunk-6VOIUGAD.js} +25 -12
  25. package/dist/chunk-6VOIUGAD.js.map +1 -0
  26. package/dist/{chunk-NOHWIBRX.js → chunk-7JYHFXXC.js} +15 -20
  27. package/dist/chunk-7JYHFXXC.js.map +1 -0
  28. package/dist/chunk-7VQQFWV6.js +20 -0
  29. package/dist/chunk-7VQQFWV6.js.map +1 -0
  30. package/dist/chunk-7ZP6TPHX.js +87 -0
  31. package/dist/chunk-7ZP6TPHX.js.map +1 -0
  32. package/dist/{chunk-SWCDFEUK.js → chunk-ADEXNSYU.js} +20 -22
  33. package/dist/chunk-ADEXNSYU.js.map +1 -0
  34. package/dist/chunk-AQSYAXL4.js +16 -0
  35. package/dist/chunk-AQSYAXL4.js.map +1 -0
  36. package/dist/{chunk-RO5IQEDQ.js → chunk-ATLXMNKD.js} +8 -4
  37. package/dist/chunk-ATLXMNKD.js.map +1 -0
  38. package/dist/{chunk-MPCCRRE6.js → chunk-BYCUGFRF.js} +16 -16
  39. package/dist/chunk-BYCUGFRF.js.map +1 -0
  40. package/dist/{chunk-HJJMP6IX.js → chunk-BZTVYOES.js} +3 -3
  41. package/dist/{chunk-B2ZOKNN4.js → chunk-CRC4YWXB.js} +27 -9
  42. package/dist/chunk-CRC4YWXB.js.map +1 -0
  43. package/dist/chunk-CTGXJHO5.js +39 -0
  44. package/dist/chunk-CTGXJHO5.js.map +1 -0
  45. package/dist/{chunk-Q2IAILVC.js → chunk-DCDBIXVZ.js} +14 -5
  46. package/dist/chunk-DCDBIXVZ.js.map +1 -0
  47. package/dist/chunk-DDAFNROK.js +750 -0
  48. package/dist/chunk-DDAFNROK.js.map +1 -0
  49. package/dist/chunk-DQIEWEAW.js +85 -0
  50. package/dist/chunk-DQIEWEAW.js.map +1 -0
  51. package/dist/{chunk-QGRDPSAH.js → chunk-EBI4IHDC.js} +23 -12
  52. package/dist/chunk-EBI4IHDC.js.map +1 -0
  53. package/dist/{chunk-JAGJTM3Q.js → chunk-EIUTZ6N7.js} +19 -34
  54. package/dist/chunk-EIUTZ6N7.js.map +1 -0
  55. package/dist/{chunk-TA3WMOMU.js → chunk-EJZG5VUF.js} +38 -32
  56. package/dist/chunk-EJZG5VUF.js.map +1 -0
  57. package/dist/{chunk-X5HF2OFP.js → chunk-ENW5BVYN.js} +3 -3
  58. package/dist/{chunk-HGCRXJGP.js → chunk-ETIAW4YD.js} +3 -3
  59. package/dist/chunk-EUPXAYPB.js +20 -0
  60. package/dist/chunk-EUPXAYPB.js.map +1 -0
  61. package/dist/{chunk-YAHRT6MB.js → chunk-FA6YNU75.js} +4 -5
  62. package/dist/{chunk-YAHRT6MB.js.map → chunk-FA6YNU75.js.map} +1 -1
  63. package/dist/{chunk-TWGVQLG2.js → chunk-FFH6R5VQ.js} +7 -3
  64. package/dist/chunk-FFH6R5VQ.js.map +1 -0
  65. package/dist/{chunk-JCC4CU2I.js → chunk-GE6H2COM.js} +15 -23
  66. package/dist/chunk-GE6H2COM.js.map +1 -0
  67. package/dist/{chunk-DM4GSE26.js → chunk-GMMQ3ZK4.js} +3 -3
  68. package/dist/{chunk-ZEGAMJO2.js → chunk-GSGE3M5P.js} +15 -23
  69. package/dist/chunk-GSGE3M5P.js.map +1 -0
  70. package/dist/{chunk-GCFYZSVR.js → chunk-H64SB6VO.js} +32 -13
  71. package/dist/chunk-H64SB6VO.js.map +1 -0
  72. package/dist/{chunk-N5FSLVKO.js → chunk-HCRYAFBI.js} +3 -3
  73. package/dist/{chunk-IDYHQQOH.js → chunk-HOPUP6LA.js} +358 -471
  74. package/dist/chunk-HOPUP6LA.js.map +1 -0
  75. package/dist/chunk-HS24BL6W.js +160 -0
  76. package/dist/chunk-HS24BL6W.js.map +1 -0
  77. package/dist/chunk-HVYVG5KQ.js +16 -0
  78. package/dist/chunk-HVYVG5KQ.js.map +1 -0
  79. package/dist/{chunk-FQ33BYFR.js → chunk-I7CPLZNW.js} +4 -5
  80. package/dist/{chunk-FQ33BYFR.js.map → chunk-I7CPLZNW.js.map} +1 -1
  81. package/dist/{chunk-VGLHY6BK.js → chunk-IFUCGI4I.js} +7 -3
  82. package/dist/chunk-IFUCGI4I.js.map +1 -0
  83. package/dist/{chunk-RNQN2FOU.js → chunk-IFYXSSKR.js} +24 -13
  84. package/dist/chunk-IFYXSSKR.js.map +1 -0
  85. package/dist/chunk-IXA4DQE4.js +20 -0
  86. package/dist/chunk-IXA4DQE4.js.map +1 -0
  87. package/dist/chunk-IZMKMD3O.js +11 -0
  88. package/dist/chunk-IZMKMD3O.js.map +1 -0
  89. package/dist/{chunk-7CW3BMPH.js → chunk-JJERW2BI.js} +4 -5
  90. package/dist/{chunk-7CW3BMPH.js.map → chunk-JJERW2BI.js.map} +1 -1
  91. package/dist/{chunk-EM4J5EQS.js → chunk-JQR4HVUX.js} +13 -16
  92. package/dist/chunk-JQR4HVUX.js.map +1 -0
  93. package/dist/{chunk-VWKUT4CW.js → chunk-JXOMDLFS.js} +21 -26
  94. package/dist/chunk-JXOMDLFS.js.map +1 -0
  95. package/dist/chunk-KIX6N7NT.js +1001 -0
  96. package/dist/chunk-KIX6N7NT.js.map +1 -0
  97. package/dist/{chunk-OZAEWZZ3.js → chunk-L42UTDFK.js} +12 -3
  98. package/dist/chunk-L42UTDFK.js.map +1 -0
  99. package/dist/{chunk-54NTYJEO.js → chunk-LPDLPRPS.js} +1 -3
  100. package/dist/{chunk-54NTYJEO.js.map → chunk-LPDLPRPS.js.map} +1 -1
  101. package/dist/chunk-M2UF2JHJ.js +11 -0
  102. package/dist/chunk-M2UF2JHJ.js.map +1 -0
  103. package/dist/{chunk-UGK4TAVK.js → chunk-MONC734W.js} +7 -3
  104. package/dist/chunk-MONC734W.js.map +1 -0
  105. package/dist/{chunk-IK2L4EN3.js → chunk-N72RLCMU.js} +4 -5
  106. package/dist/{chunk-IK2L4EN3.js.map → chunk-N72RLCMU.js.map} +1 -1
  107. package/dist/{chunk-H3I2KZIY.js → chunk-ND4IWJ4V.js} +7 -3
  108. package/dist/chunk-ND4IWJ4V.js.map +1 -0
  109. package/dist/chunk-NZ3EKGW4.js +1312 -0
  110. package/dist/chunk-NZ3EKGW4.js.map +1 -0
  111. package/dist/{chunk-XGJ2QERC.js → chunk-OAE57MNL.js} +27 -11
  112. package/dist/chunk-OAE57MNL.js.map +1 -0
  113. package/dist/{chunk-EZQ5HBAC.js → chunk-OHKGIQB4.js} +12 -16
  114. package/dist/chunk-OHKGIQB4.js.map +1 -0
  115. package/dist/{chunk-E2ISWXLB.js → chunk-OQKNDS66.js} +1 -1
  116. package/dist/{chunk-E2ISWXLB.js.map → chunk-OQKNDS66.js.map} +1 -1
  117. package/dist/{chunk-UINQOUZR.js → chunk-OXEQSPND.js} +3 -3
  118. package/dist/{chunk-A7IVFIOP.js → chunk-PKNE5J2B.js} +15 -23
  119. package/dist/chunk-PKNE5J2B.js.map +1 -0
  120. package/dist/chunk-PSXXEGYQ.js +16 -0
  121. package/dist/chunk-PSXXEGYQ.js.map +1 -0
  122. package/dist/{chunk-EGB7V74Z.js → chunk-QAOVABCR.js} +7 -4
  123. package/dist/chunk-QAOVABCR.js.map +1 -0
  124. package/dist/{chunk-X3G37FXT.js → chunk-QQ7FP4GD.js} +4 -5
  125. package/dist/{chunk-X3G37FXT.js.map → chunk-QQ7FP4GD.js.map} +1 -1
  126. package/dist/{chunk-WAR4Q2NM.js → chunk-QYLVMC6B.js} +13 -15
  127. package/dist/chunk-QYLVMC6B.js.map +1 -0
  128. package/dist/{chunk-KPULTUOK.js → chunk-RX3XR65X.js} +4 -5
  129. package/dist/{chunk-KPULTUOK.js.map → chunk-RX3XR65X.js.map} +1 -1
  130. package/dist/chunk-RYQJJB4C.js +30 -0
  131. package/dist/chunk-RYQJJB4C.js.map +1 -0
  132. package/dist/{chunk-QQBJC2FQ.js → chunk-TUF7TCN7.js} +4 -5
  133. package/dist/{chunk-QQBJC2FQ.js.map → chunk-TUF7TCN7.js.map} +1 -1
  134. package/dist/{chunk-AUHSTJJ3.js → chunk-TUX36JY5.js} +4 -5
  135. package/dist/{chunk-AUHSTJJ3.js.map → chunk-TUX36JY5.js.map} +1 -1
  136. package/dist/chunk-TWRQCQWU.js +1153 -0
  137. package/dist/chunk-TWRQCQWU.js.map +1 -0
  138. package/dist/chunk-U6DFQRG3.js +20 -0
  139. package/dist/chunk-U6DFQRG3.js.map +1 -0
  140. package/dist/chunk-VI5YTKNY.js +20 -0
  141. package/dist/chunk-VI5YTKNY.js.map +1 -0
  142. package/dist/chunk-WG5YS6TC.js +872 -0
  143. package/dist/chunk-WG5YS6TC.js.map +1 -0
  144. package/dist/{chunk-ZGSER5TG.js → chunk-WMJJ4WGF.js} +4 -5
  145. package/dist/{chunk-ZGSER5TG.js.map → chunk-WMJJ4WGF.js.map} +1 -1
  146. package/dist/{chunk-LV2G7VHL.js → chunk-WY4FNH42.js} +21 -18
  147. package/dist/chunk-WY4FNH42.js.map +1 -0
  148. package/dist/{chunk-LAJJPLEV.js → chunk-XIG5BWWH.js} +25 -12
  149. package/dist/chunk-XIG5BWWH.js.map +1 -0
  150. package/dist/chunk-XJBC3OYX.js +11 -0
  151. package/dist/chunk-XJBC3OYX.js.map +1 -0
  152. package/dist/{chunk-G2WCEUQL.js → chunk-XPRDXWK7.js} +21 -20
  153. package/dist/chunk-XPRDXWK7.js.map +1 -0
  154. package/dist/chunk-YKRQSZS7.js +96 -0
  155. package/dist/chunk-YKRQSZS7.js.map +1 -0
  156. package/dist/{chunk-M5FVUIYP.js → chunk-YMBL3VJB.js} +21 -19
  157. package/dist/chunk-YMBL3VJB.js.map +1 -0
  158. package/dist/chunk-YUJBXFYK.js +1205 -0
  159. package/dist/chunk-YUJBXFYK.js.map +1 -0
  160. package/dist/{chunk-JALIYI6M.js → chunk-YZ4ZJNOL.js} +28 -11
  161. package/dist/chunk-YZ4ZJNOL.js.map +1 -0
  162. package/dist/chunk-ZTHVEXIV.js +11 -0
  163. package/dist/chunk-ZTHVEXIV.js.map +1 -0
  164. package/dist/{chunk-GS5AUKUO.js → chunk-ZVSYUCYS.js} +11 -7
  165. package/dist/chunk-ZVSYUCYS.js.map +1 -0
  166. package/dist/{config-QAA646XB.js → config-2YBCHU2W.js} +2 -4
  167. package/dist/{config-IVY5EQQ2.js → config-3YRGRW72.js} +3 -4
  168. package/dist/config-4GSOMUMF.js +9 -0
  169. package/dist/config-5YBUWFUP.js +9 -0
  170. package/dist/{config-34LHOGLM.js → config-5ZRKJTKG.js} +3 -4
  171. package/dist/config-A25LTL5W.js +11 -0
  172. package/dist/config-CLU7JABG.js +9 -0
  173. package/dist/config-D2RF7L3N.js +9 -0
  174. package/dist/{config-LHFFXVYI.js → config-E55TKM6K.js} +2 -4
  175. package/dist/config-ELDOFRJW.js +9 -0
  176. package/dist/{config-GE4W4ZJC.js → config-FPC3RBFD.js} +2 -4
  177. package/dist/config-FPM3LAW7.js +9 -0
  178. package/dist/{config-HKRMKD76.js → config-G3F54CS4.js} +3 -4
  179. package/dist/config-G43HRUI3.js +9 -0
  180. package/dist/{config-WDAZFXYD.js → config-GG3WO5PB.js} +3 -4
  181. package/dist/config-JUYBWAZE.js +9 -0
  182. package/dist/{config-CVZ2AGCO.js → config-LJ5T6TVA.js} +2 -6
  183. package/dist/config-MDSAE4O3.js +11 -0
  184. package/dist/{config-EIHSP5DZ.js → config-NRIOKK5T.js} +2 -4
  185. package/dist/config-OYK2BSJK.js +9 -0
  186. package/dist/config-PB3KA2CE.js +9 -0
  187. package/dist/{config-ZFJYQZCH.js → config-QY4IL3PH.js} +3 -4
  188. package/dist/config-R4LAOEDS.js +9 -0
  189. package/dist/{config-QNMKWJ4M.js → config-RIAAD6RW.js} +3 -4
  190. package/dist/config-SYNEQAUB.js +9 -0
  191. package/dist/{config-Q45Y46YT.js → config-TJKGYA2B.js} +3 -4
  192. package/dist/{config-NV5WXP64.js → config-UU27ALAA.js} +2 -4
  193. package/dist/{config-3IVQJBNW.js → config-UURRGA7U.js} +2 -2
  194. package/dist/{config-VM526IKB.js → config-VPLHQXVE.js} +2 -4
  195. package/dist/config-WRACCRPN.js +9 -0
  196. package/dist/{config-GHRUKEQ6.js → config-WVHKXEVE.js} +3 -4
  197. package/dist/{config-EO23EY62.js → config-XU7R36IE.js} +3 -4
  198. package/dist/config-Y2KOUYSS.js +9 -0
  199. package/dist/databricks_volume-CNCPTZHS.js +7 -0
  200. package/dist/digitalocean-DJZOUB6Q.js +11 -0
  201. package/dist/discord-ETB2CADR.js +7 -0
  202. package/dist/disk-WEHSTK3F.js +7 -0
  203. package/dist/dropbox-XN6PGLNE.js +8 -0
  204. package/dist/email-OV7XCP3T.js +8 -0
  205. package/dist/gcal-P56MRCGU.js +8 -0
  206. package/dist/gcs-HFBIAE2C.js +10 -0
  207. package/dist/gdocs-LQ3UXP3J.js +8 -0
  208. package/dist/gdrive-N6UBYLON.js +8 -0
  209. package/dist/github-BPZREGPI.js +8 -0
  210. package/dist/github_ci-7A4LUIZ7.js +8 -0
  211. package/dist/gmail-YED2MF6H.js +8 -0
  212. package/dist/gridfs-CPLQ4G62.js +9 -0
  213. package/dist/gsheets-4BNIJPQ6.js +8 -0
  214. package/dist/gslides-GDBYLO5A.js +8 -0
  215. package/dist/hf_buckets-FTJITQ3P.js +10 -0
  216. package/dist/hf_datasets-6GXVKQD7.js +10 -0
  217. package/dist/hf_models-PJPGZAC5.js +10 -0
  218. package/dist/hf_spaces-LFNFOLBF.js +10 -0
  219. package/dist/index.d.ts +1311 -569
  220. package/dist/index.js +3359 -964
  221. package/dist/index.js.map +1 -1
  222. package/dist/jaeger-GCA6MJ6E.js +8 -0
  223. package/dist/lancedb-TJ5YSJY5.js +7 -0
  224. package/dist/langfuse-RUMTUMXS.js +8 -0
  225. package/dist/linear-BCE4KEAC.js +7 -0
  226. package/dist/minio-5SO6KBTK.js +11 -0
  227. package/dist/mongodb-L5CMN2EE.js +7 -0
  228. package/dist/nextcloud-4O2LZVW2.js +9 -0
  229. package/dist/notion-RVKEAQ2M.js +7 -0
  230. package/dist/oci-OQXOIC62.js +10 -0
  231. package/dist/postgres-AV45GNRS.js +7 -0
  232. package/dist/qingstor-W277YA4K.js +11 -0
  233. package/dist/r2-FUA4IORE.js +10 -0
  234. package/dist/redis-LPS357NF.js +8 -0
  235. package/dist/s3-FPNWWIVM.js +8 -0
  236. package/dist/scaleway-BP3732U7.js +11 -0
  237. package/dist/seaweedfs-MC6HIEP4.js +11 -0
  238. package/dist/slack-JFGW7VLN.js +7 -0
  239. package/dist/ssh-UYPG42LM.js +8 -0
  240. package/dist/ssh-UYPG42LM.js.map +1 -0
  241. package/dist/supabase-A3KUFMDC.js +10 -0
  242. package/dist/supabase-A3KUFMDC.js.map +1 -0
  243. package/dist/tencent-5464UQ2X.js +11 -0
  244. package/dist/tencent-5464UQ2X.js.map +1 -0
  245. package/dist/trello-O2KB3FUO.js +8 -0
  246. package/dist/trello-O2KB3FUO.js.map +1 -0
  247. package/dist/wasabi-2IKBIWNO.js +10 -0
  248. package/dist/wasabi-2IKBIWNO.js.map +1 -0
  249. package/package.json +17 -3
  250. package/dist/aliyun-JMJ3PFYY.js +0 -10
  251. package/dist/backblaze-TDFD23QO.js +0 -10
  252. package/dist/box-GQ2U2R6R.js +0 -8
  253. package/dist/ceph-S2VOYO6G.js +0 -10
  254. package/dist/chunk-2CC5VW7K.js +0 -52
  255. package/dist/chunk-2CC5VW7K.js.map +0 -1
  256. package/dist/chunk-A7IVFIOP.js.map +0 -1
  257. package/dist/chunk-B2ZOKNN4.js.map +0 -1
  258. package/dist/chunk-DNBAMB5J.js +0 -18
  259. package/dist/chunk-DNBAMB5J.js.map +0 -1
  260. package/dist/chunk-DP2PP5V2.js +0 -26
  261. package/dist/chunk-DP2PP5V2.js.map +0 -1
  262. package/dist/chunk-DYXEITK3.js +0 -52
  263. package/dist/chunk-DYXEITK3.js.map +0 -1
  264. package/dist/chunk-EGB7V74Z.js.map +0 -1
  265. package/dist/chunk-EM4J5EQS.js.map +0 -1
  266. package/dist/chunk-EZQ5HBAC.js.map +0 -1
  267. package/dist/chunk-G2WCEUQL.js.map +0 -1
  268. package/dist/chunk-GCFYZSVR.js.map +0 -1
  269. package/dist/chunk-GS5AUKUO.js.map +0 -1
  270. package/dist/chunk-H3BST2LI.js +0 -26
  271. package/dist/chunk-H3BST2LI.js.map +0 -1
  272. package/dist/chunk-H3I2KZIY.js.map +0 -1
  273. package/dist/chunk-IDYHQQOH.js.map +0 -1
  274. package/dist/chunk-JAGJTM3Q.js.map +0 -1
  275. package/dist/chunk-JALIYI6M.js.map +0 -1
  276. package/dist/chunk-JCC4CU2I.js.map +0 -1
  277. package/dist/chunk-JZT4QGIP.js +0 -24
  278. package/dist/chunk-JZT4QGIP.js.map +0 -1
  279. package/dist/chunk-LAJJPLEV.js.map +0 -1
  280. package/dist/chunk-LV2G7VHL.js.map +0 -1
  281. package/dist/chunk-LW25LMIH.js +0 -26
  282. package/dist/chunk-LW25LMIH.js.map +0 -1
  283. package/dist/chunk-M5FVUIYP.js.map +0 -1
  284. package/dist/chunk-MPCCRRE6.js.map +0 -1
  285. package/dist/chunk-NJMGCT63.js +0 -54
  286. package/dist/chunk-NJMGCT63.js.map +0 -1
  287. package/dist/chunk-NOHWIBRX.js.map +0 -1
  288. package/dist/chunk-OHROA3FQ.js +0 -54
  289. package/dist/chunk-OHROA3FQ.js.map +0 -1
  290. package/dist/chunk-OPYQ5KIO.js +0 -52
  291. package/dist/chunk-OPYQ5KIO.js.map +0 -1
  292. package/dist/chunk-OZAEWZZ3.js.map +0 -1
  293. package/dist/chunk-Q2IAILVC.js.map +0 -1
  294. package/dist/chunk-QCZ2XUKH.js.map +0 -1
  295. package/dist/chunk-QGRDPSAH.js.map +0 -1
  296. package/dist/chunk-RNQN2FOU.js.map +0 -1
  297. package/dist/chunk-RO5IQEDQ.js.map +0 -1
  298. package/dist/chunk-RQK5UPMP.js.map +0 -1
  299. package/dist/chunk-S5OVP467.js +0 -1795
  300. package/dist/chunk-S5OVP467.js.map +0 -1
  301. package/dist/chunk-SFUCUARB.js +0 -21
  302. package/dist/chunk-SFUCUARB.js.map +0 -1
  303. package/dist/chunk-SWCDFEUK.js.map +0 -1
  304. package/dist/chunk-TA3WMOMU.js.map +0 -1
  305. package/dist/chunk-TURD42QO.js +0 -1782
  306. package/dist/chunk-TURD42QO.js.map +0 -1
  307. package/dist/chunk-TWGVQLG2.js.map +0 -1
  308. package/dist/chunk-U6QSXTUS.js +0 -7
  309. package/dist/chunk-U6QSXTUS.js.map +0 -1
  310. package/dist/chunk-UGK4TAVK.js.map +0 -1
  311. package/dist/chunk-UT2OPSN4.js.map +0 -1
  312. package/dist/chunk-VGLHY6BK.js.map +0 -1
  313. package/dist/chunk-VWKUT4CW.js.map +0 -1
  314. package/dist/chunk-W7FLHT65.js +0 -26
  315. package/dist/chunk-W7FLHT65.js.map +0 -1
  316. package/dist/chunk-WAR4Q2NM.js.map +0 -1
  317. package/dist/chunk-WHFUWWI6.js +0 -2097
  318. package/dist/chunk-WHFUWWI6.js.map +0 -1
  319. package/dist/chunk-XGJ2QERC.js.map +0 -1
  320. package/dist/chunk-XHCBHYN4.js +0 -54
  321. package/dist/chunk-XHCBHYN4.js.map +0 -1
  322. package/dist/chunk-XLQI4IT2.js +0 -54
  323. package/dist/chunk-XLQI4IT2.js.map +0 -1
  324. package/dist/chunk-XWVDS66D.js +0 -963
  325. package/dist/chunk-XWVDS66D.js.map +0 -1
  326. package/dist/chunk-YGZMVNN5.js +0 -54
  327. package/dist/chunk-YGZMVNN5.js.map +0 -1
  328. package/dist/chunk-YUK3X3B4.js +0 -27
  329. package/dist/chunk-YUK3X3B4.js.map +0 -1
  330. package/dist/chunk-ZEGAMJO2.js.map +0 -1
  331. package/dist/chunk-ZNWVJ6UW.js +0 -54
  332. package/dist/chunk-ZNWVJ6UW.js.map +0 -1
  333. package/dist/config-3BBWD5AB.js +0 -11
  334. package/dist/config-4UDVSUQJ.js +0 -11
  335. package/dist/config-CMDBAPDH.js +0 -11
  336. package/dist/config-D3RLSPNF.js +0 -11
  337. package/dist/config-DG65OEG3.js +0 -11
  338. package/dist/config-GCQK6NJY.js +0 -11
  339. package/dist/config-GVH27UPE.js +0 -11
  340. package/dist/config-HXVYIXP5.js +0 -11
  341. package/dist/config-IDZMEW73.js +0 -11
  342. package/dist/config-IJJXGLBQ.js +0 -11
  343. package/dist/config-KJOLGVB2.js +0 -11
  344. package/dist/config-KMVCVBYN.js +0 -15
  345. package/dist/config-KYTRXAB2.js +0 -15
  346. package/dist/config-OT2TQQCN.js +0 -11
  347. package/dist/config-QWCY3LBQ.js +0 -11
  348. package/dist/config-ZV6G2ZEC.js +0 -11
  349. package/dist/databricks_volume-7XOUYSTY.js +0 -7
  350. package/dist/digitalocean-3CQ4CPPZ.js +0 -10
  351. package/dist/discord-BG7OSRJG.js +0 -8
  352. package/dist/disk-XVLBCVKE.js +0 -8
  353. package/dist/dropbox-74GYLV3R.js +0 -8
  354. package/dist/email-5IZ7OBQ4.js +0 -8
  355. package/dist/gcs-EMEYU2XT.js +0 -10
  356. package/dist/gdocs-R67TDPON.js +0 -8
  357. package/dist/gdrive-PRN2ALRK.js +0 -8
  358. package/dist/github-DV7E6OFV.js +0 -8
  359. package/dist/github_ci-Q554V5PA.js +0 -8
  360. package/dist/gmail-OLN2LT4O.js +0 -8
  361. package/dist/gsheets-H4RYMQJ5.js +0 -8
  362. package/dist/gslides-YLCHKJOM.js +0 -8
  363. package/dist/hf_buckets-DTKXKKFF.js +0 -10
  364. package/dist/hf_datasets-55C4APKR.js +0 -10
  365. package/dist/hf_models-RO5JR36V.js +0 -10
  366. package/dist/hf_spaces-ZVZ3EDRX.js +0 -10
  367. package/dist/langfuse-ACASJZ7O.js +0 -8
  368. package/dist/linear-IC37LZV7.js +0 -8
  369. package/dist/minio-HZ576XFQ.js +0 -10
  370. package/dist/mongodb-JVR62OIO.js +0 -7
  371. package/dist/notion-HKRPQMJS.js +0 -8
  372. package/dist/oci-ZLVECXTW.js +0 -10
  373. package/dist/postgres-P36Z2YN4.js +0 -7
  374. package/dist/qingstor-YLP6K3L4.js +0 -10
  375. package/dist/r2-RPK25ANI.js +0 -10
  376. package/dist/redis-V5ULXULL.js +0 -8
  377. package/dist/s3-4OIOCAAT.js +0 -8
  378. package/dist/scaleway-CCWCLUHB.js +0 -10
  379. package/dist/seaweedfs-QSWKF2FN.js +0 -10
  380. package/dist/slack-YPS7PII3.js +0 -8
  381. package/dist/ssh-YFP3SMTJ.js +0 -9
  382. package/dist/supabase-6CFTOKGZ.js +0 -10
  383. package/dist/tencent-IWZZOSQ4.js +0 -10
  384. package/dist/trello-XYKWZD6P.js +0 -8
  385. package/dist/wasabi-6Z4DC5S5.js +0 -10
  386. /package/dist/{aliyun-JMJ3PFYY.js.map → aliyun-S62BR3TB.js.map} +0 -0
  387. /package/dist/{backblaze-TDFD23QO.js.map → backblaze-4EKSW63F.js.map} +0 -0
  388. /package/dist/{box-GQ2U2R6R.js.map → box-ZPLZAGMK.js.map} +0 -0
  389. /package/dist/{ceph-S2VOYO6G.js.map → ceph-ALKLD3MO.js.map} +0 -0
  390. /package/dist/{chunk-HJJMP6IX.js.map → chunk-BZTVYOES.js.map} +0 -0
  391. /package/dist/{chunk-X5HF2OFP.js.map → chunk-ENW5BVYN.js.map} +0 -0
  392. /package/dist/{chunk-HGCRXJGP.js.map → chunk-ETIAW4YD.js.map} +0 -0
  393. /package/dist/{chunk-DM4GSE26.js.map → chunk-GMMQ3ZK4.js.map} +0 -0
  394. /package/dist/{chunk-N5FSLVKO.js.map → chunk-HCRYAFBI.js.map} +0 -0
  395. /package/dist/{chunk-UINQOUZR.js.map → chunk-OXEQSPND.js.map} +0 -0
  396. /package/dist/{config-34LHOGLM.js.map → config-2YBCHU2W.js.map} +0 -0
  397. /package/dist/{config-3BBWD5AB.js.map → config-3YRGRW72.js.map} +0 -0
  398. /package/dist/{config-3IVQJBNW.js.map → config-4GSOMUMF.js.map} +0 -0
  399. /package/dist/{config-4UDVSUQJ.js.map → config-5YBUWFUP.js.map} +0 -0
  400. /package/dist/{config-CMDBAPDH.js.map → config-5ZRKJTKG.js.map} +0 -0
  401. /package/dist/{config-CVZ2AGCO.js.map → config-A25LTL5W.js.map} +0 -0
  402. /package/dist/{config-D3RLSPNF.js.map → config-CLU7JABG.js.map} +0 -0
  403. /package/dist/{config-DG65OEG3.js.map → config-D2RF7L3N.js.map} +0 -0
  404. /package/dist/{config-EIHSP5DZ.js.map → config-E55TKM6K.js.map} +0 -0
  405. /package/dist/{config-EO23EY62.js.map → config-ELDOFRJW.js.map} +0 -0
  406. /package/dist/{config-GCQK6NJY.js.map → config-FPC3RBFD.js.map} +0 -0
  407. /package/dist/{config-GE4W4ZJC.js.map → config-FPM3LAW7.js.map} +0 -0
  408. /package/dist/{config-GHRUKEQ6.js.map → config-G3F54CS4.js.map} +0 -0
  409. /package/dist/{config-GVH27UPE.js.map → config-G43HRUI3.js.map} +0 -0
  410. /package/dist/{config-HKRMKD76.js.map → config-GG3WO5PB.js.map} +0 -0
  411. /package/dist/{config-HXVYIXP5.js.map → config-JUYBWAZE.js.map} +0 -0
  412. /package/dist/{config-IDZMEW73.js.map → config-LJ5T6TVA.js.map} +0 -0
  413. /package/dist/{config-IJJXGLBQ.js.map → config-MDSAE4O3.js.map} +0 -0
  414. /package/dist/{config-IVY5EQQ2.js.map → config-NRIOKK5T.js.map} +0 -0
  415. /package/dist/{config-KJOLGVB2.js.map → config-OYK2BSJK.js.map} +0 -0
  416. /package/dist/{config-KMVCVBYN.js.map → config-PB3KA2CE.js.map} +0 -0
  417. /package/dist/{config-KYTRXAB2.js.map → config-QY4IL3PH.js.map} +0 -0
  418. /package/dist/{config-LHFFXVYI.js.map → config-R4LAOEDS.js.map} +0 -0
  419. /package/dist/{config-NV5WXP64.js.map → config-RIAAD6RW.js.map} +0 -0
  420. /package/dist/{config-OT2TQQCN.js.map → config-SYNEQAUB.js.map} +0 -0
  421. /package/dist/{config-Q45Y46YT.js.map → config-TJKGYA2B.js.map} +0 -0
  422. /package/dist/{config-QAA646XB.js.map → config-UU27ALAA.js.map} +0 -0
  423. /package/dist/{config-QNMKWJ4M.js.map → config-UURRGA7U.js.map} +0 -0
  424. /package/dist/{config-QWCY3LBQ.js.map → config-VPLHQXVE.js.map} +0 -0
  425. /package/dist/{config-VM526IKB.js.map → config-WRACCRPN.js.map} +0 -0
  426. /package/dist/{config-WDAZFXYD.js.map → config-WVHKXEVE.js.map} +0 -0
  427. /package/dist/{config-ZFJYQZCH.js.map → config-XU7R36IE.js.map} +0 -0
  428. /package/dist/{config-ZV6G2ZEC.js.map → config-Y2KOUYSS.js.map} +0 -0
  429. /package/dist/{databricks_volume-7XOUYSTY.js.map → databricks_volume-CNCPTZHS.js.map} +0 -0
  430. /package/dist/{digitalocean-3CQ4CPPZ.js.map → digitalocean-DJZOUB6Q.js.map} +0 -0
  431. /package/dist/{discord-BG7OSRJG.js.map → discord-ETB2CADR.js.map} +0 -0
  432. /package/dist/{disk-XVLBCVKE.js.map → disk-WEHSTK3F.js.map} +0 -0
  433. /package/dist/{dropbox-74GYLV3R.js.map → dropbox-XN6PGLNE.js.map} +0 -0
  434. /package/dist/{email-5IZ7OBQ4.js.map → email-OV7XCP3T.js.map} +0 -0
  435. /package/dist/{gcs-EMEYU2XT.js.map → gcal-P56MRCGU.js.map} +0 -0
  436. /package/dist/{gdocs-R67TDPON.js.map → gcs-HFBIAE2C.js.map} +0 -0
  437. /package/dist/{gdrive-PRN2ALRK.js.map → gdocs-LQ3UXP3J.js.map} +0 -0
  438. /package/dist/{github-DV7E6OFV.js.map → gdrive-N6UBYLON.js.map} +0 -0
  439. /package/dist/{github_ci-Q554V5PA.js.map → github-BPZREGPI.js.map} +0 -0
  440. /package/dist/{gmail-OLN2LT4O.js.map → github_ci-7A4LUIZ7.js.map} +0 -0
  441. /package/dist/{gsheets-H4RYMQJ5.js.map → gmail-YED2MF6H.js.map} +0 -0
  442. /package/dist/{gslides-YLCHKJOM.js.map → gridfs-CPLQ4G62.js.map} +0 -0
  443. /package/dist/{hf_buckets-DTKXKKFF.js.map → gsheets-4BNIJPQ6.js.map} +0 -0
  444. /package/dist/{hf_datasets-55C4APKR.js.map → gslides-GDBYLO5A.js.map} +0 -0
  445. /package/dist/{hf_models-RO5JR36V.js.map → hf_buckets-FTJITQ3P.js.map} +0 -0
  446. /package/dist/{hf_spaces-ZVZ3EDRX.js.map → hf_datasets-6GXVKQD7.js.map} +0 -0
  447. /package/dist/{langfuse-ACASJZ7O.js.map → hf_models-PJPGZAC5.js.map} +0 -0
  448. /package/dist/{linear-IC37LZV7.js.map → hf_spaces-LFNFOLBF.js.map} +0 -0
  449. /package/dist/{minio-HZ576XFQ.js.map → jaeger-GCA6MJ6E.js.map} +0 -0
  450. /package/dist/{mongodb-JVR62OIO.js.map → lancedb-TJ5YSJY5.js.map} +0 -0
  451. /package/dist/{notion-HKRPQMJS.js.map → langfuse-RUMTUMXS.js.map} +0 -0
  452. /package/dist/{oci-ZLVECXTW.js.map → linear-BCE4KEAC.js.map} +0 -0
  453. /package/dist/{postgres-P36Z2YN4.js.map → minio-5SO6KBTK.js.map} +0 -0
  454. /package/dist/{qingstor-YLP6K3L4.js.map → mongodb-L5CMN2EE.js.map} +0 -0
  455. /package/dist/{r2-RPK25ANI.js.map → nextcloud-4O2LZVW2.js.map} +0 -0
  456. /package/dist/{redis-V5ULXULL.js.map → notion-RVKEAQ2M.js.map} +0 -0
  457. /package/dist/{s3-4OIOCAAT.js.map → oci-OQXOIC62.js.map} +0 -0
  458. /package/dist/{scaleway-CCWCLUHB.js.map → postgres-AV45GNRS.js.map} +0 -0
  459. /package/dist/{seaweedfs-QSWKF2FN.js.map → qingstor-W277YA4K.js.map} +0 -0
  460. /package/dist/{slack-YPS7PII3.js.map → r2-FUA4IORE.js.map} +0 -0
  461. /package/dist/{ssh-YFP3SMTJ.js.map → redis-LPS357NF.js.map} +0 -0
  462. /package/dist/{supabase-6CFTOKGZ.js.map → s3-FPNWWIVM.js.map} +0 -0
  463. /package/dist/{tencent-IWZZOSQ4.js.map → scaleway-BP3732U7.js.map} +0 -0
  464. /package/dist/{trello-XYKWZD6P.js.map → seaweedfs-MC6HIEP4.js.map} +0 -0
  465. /package/dist/{wasabi-6Z4DC5S5.js.map → slack-JFGW7VLN.js.map} +0 -0
@@ -0,0 +1,872 @@
1
+ // src/resource/disk/disk.ts
2
+ import {
3
+ chmod as chmod2,
4
+ mkdir as mkdir2,
5
+ readdir as readdir4,
6
+ readFile as readFile3,
7
+ stat as fsStat4,
8
+ statfs as fsStatfs,
9
+ writeFile as writeFile3
10
+ } from "fs/promises";
11
+ import path5 from "path";
12
+ import {
13
+ BaseResource,
14
+ CapacityState,
15
+ PathSpec,
16
+ ResourceName as ResourceName8,
17
+ makeResolveGlob,
18
+ mountKey,
19
+ mountPrefixOf as mountPrefixOf2
20
+ } from "@struktoai/mirage-core";
21
+
22
+ // src/commands/builtin/disk/index.ts
23
+ import { ResourceName as ResourceName6, makeGenericCommands } from "@struktoai/mirage-core";
24
+
25
+ // src/core/disk/append.ts
26
+ import { appendFile } from "fs/promises";
27
+ import { ResourceName, invalidateAfterWrite, record } from "@struktoai/mirage-core";
28
+
29
+ // src/core/disk/errors.ts
30
+ function diskError(err, spec) {
31
+ const code = err.code;
32
+ if (typeof code !== "string") return err;
33
+ const out = new Error(spec.virtual);
34
+ out.code = code;
35
+ out.virtualPath = spec.virtual;
36
+ return out;
37
+ }
38
+
39
+ // src/core/disk/utils.ts
40
+ import path from "path";
41
+ import { lstripSlash } from "@struktoai/mirage-core";
42
+ import { norm, parent, gnuBasename } from "@struktoai/mirage-core";
43
+ function resolveSafe(root, virtual) {
44
+ const relative = lstripSlash(virtual);
45
+ const resolved = path.resolve(root, relative);
46
+ const rootResolved = path.resolve(root);
47
+ if (resolved !== rootResolved && !resolved.startsWith(rootResolved + path.sep)) {
48
+ throw new Error(`path escapes root: ${virtual}`);
49
+ }
50
+ return resolved;
51
+ }
52
+
53
+ // src/core/disk/append.ts
54
+ async function appendBytes(accessor, p, data) {
55
+ const start = performance.now();
56
+ const virtual = p.mountPath;
57
+ const full = resolveSafe(accessor.root, virtual);
58
+ try {
59
+ await appendFile(full, data);
60
+ } catch (err) {
61
+ throw diskError(err, p);
62
+ }
63
+ record("append", virtual, ResourceName.DISK, data.byteLength, start);
64
+ await invalidateAfterWrite(p);
65
+ }
66
+
67
+ // src/core/disk/constants.ts
68
+ var SCOPE_ERROR = 5e4;
69
+
70
+ // src/core/disk/copy.ts
71
+ import { copyFile, stat } from "fs/promises";
72
+ import { invalidateAfterWrite as invalidateAfterWrite2 } from "@struktoai/mirage-core";
73
+ async function copy(accessor, src, dst) {
74
+ const s = resolveSafe(accessor.root, src.mountPath);
75
+ const d = resolveSafe(accessor.root, dst.mountPath);
76
+ try {
77
+ await copyFile(s, d);
78
+ } catch (err) {
79
+ let blame = dst;
80
+ if (err.code === "ENOENT") {
81
+ const srcMissing = await stat(s).then(
82
+ () => false,
83
+ () => true
84
+ );
85
+ if (srcMissing) blame = src;
86
+ }
87
+ throw diskError(err, blame);
88
+ }
89
+ await invalidateAfterWrite2(dst);
90
+ }
91
+
92
+ // src/core/disk/write.ts
93
+ import { writeFile } from "fs/promises";
94
+ import { ResourceName as ResourceName2, invalidateAfterWrite as invalidateAfterWrite3, record as record2 } from "@struktoai/mirage-core";
95
+ async function writeBytes(accessor, p, data) {
96
+ const start = performance.now();
97
+ const virtual = p.mountPath;
98
+ const full = resolveSafe(accessor.root, virtual);
99
+ try {
100
+ await writeFile(full, data);
101
+ } catch (err) {
102
+ throw diskError(err, p);
103
+ }
104
+ record2("write", virtual, ResourceName2.DISK, data.byteLength, start);
105
+ await invalidateAfterWrite3(p);
106
+ }
107
+
108
+ // src/core/disk/create.ts
109
+ function create(accessor, path6) {
110
+ return writeBytes(accessor, path6, new Uint8Array());
111
+ }
112
+
113
+ // src/core/disk/du/walk.ts
114
+ import { readdir, stat as stat2 } from "fs/promises";
115
+ import path2 from "path";
116
+ async function walkSizes(full) {
117
+ let total = 0;
118
+ let st;
119
+ try {
120
+ st = await stat2(full);
121
+ } catch {
122
+ return 0;
123
+ }
124
+ if (st.isFile()) return st.size;
125
+ if (!st.isDirectory()) return 0;
126
+ const entries2 = await readdir(full, { withFileTypes: true });
127
+ for (const e of entries2) {
128
+ const child = path2.join(full, e.name);
129
+ if (e.isDirectory()) total += await walkSizes(child);
130
+ else if (e.isFile()) {
131
+ try {
132
+ const cst = await stat2(child);
133
+ total += cst.size;
134
+ } catch {
135
+ }
136
+ }
137
+ }
138
+ return total;
139
+ }
140
+ async function walkAll(accessor, full, entries2) {
141
+ let total = 0;
142
+ let st;
143
+ try {
144
+ st = await stat2(full);
145
+ } catch {
146
+ return 0;
147
+ }
148
+ if (st.isFile()) {
149
+ const rel = "/" + path2.relative(accessor.root, full).split(path2.sep).join("/");
150
+ entries2.push([rel, st.size]);
151
+ return st.size;
152
+ }
153
+ if (!st.isDirectory()) return 0;
154
+ const children = await readdir(full, { withFileTypes: true });
155
+ for (const e of children) {
156
+ const child = path2.join(full, e.name);
157
+ if (e.isDirectory()) {
158
+ total += await walkAll(accessor, child, entries2);
159
+ } else if (e.isFile()) {
160
+ try {
161
+ const cst = await stat2(child);
162
+ const rel = "/" + path2.relative(accessor.root, child).split(path2.sep).join("/");
163
+ entries2.push([rel, cst.size]);
164
+ total += cst.size;
165
+ } catch {
166
+ }
167
+ }
168
+ }
169
+ return total;
170
+ }
171
+
172
+ // src/core/disk/du/entries.ts
173
+ import { compareCodePoints } from "@struktoai/mirage-core";
174
+ async function entries(accessor, p) {
175
+ const virtual = norm(p.mountPath);
176
+ const full = resolveSafe(accessor.root, virtual);
177
+ const entries2 = [];
178
+ const total = await walkAll(accessor, full, entries2);
179
+ entries2.sort((a, b) => compareCodePoints(a[0], b[0]));
180
+ return [entries2, total];
181
+ }
182
+
183
+ // src/core/disk/du/size.ts
184
+ async function size(accessor, p) {
185
+ const virtual = p.mountPath;
186
+ const full = resolveSafe(accessor.root, virtual);
187
+ return walkSizes(full);
188
+ }
189
+
190
+ // src/core/disk/exists.ts
191
+ import { access } from "fs/promises";
192
+ async function exists(accessor, path6) {
193
+ const full = resolveSafe(accessor.root, path6.mountPath);
194
+ try {
195
+ await access(full);
196
+ return true;
197
+ } catch {
198
+ return false;
199
+ }
200
+ }
201
+
202
+ // src/core/disk/find.ts
203
+ import { readdir as readdir2, stat as stat3 } from "fs/promises";
204
+ import path3 from "path";
205
+ import {
206
+ buildTree,
207
+ emitStartPath,
208
+ keep,
209
+ startBasename,
210
+ compareCodePoints as compareCodePoints2
211
+ } from "@struktoai/mirage-core";
212
+ async function walk(ctx, full, current, depth) {
213
+ const opts = ctx.options;
214
+ if (opts.maxDepth !== null && opts.maxDepth !== void 0 && depth > opts.maxDepth) return;
215
+ let entries2;
216
+ try {
217
+ entries2 = await readdir2(full, { withFileTypes: true });
218
+ } catch {
219
+ return;
220
+ }
221
+ for (const e of entries2) {
222
+ const kind = e.isDirectory() ? "d" : "f";
223
+ const entryPath = current === "/" ? `/${e.name}` : `${current}/${e.name}`;
224
+ const entryName = e.name;
225
+ const entrySlashCount = (entryPath.match(/\//g) ?? []).length;
226
+ const entryDepth = entrySlashCount - ctx.baseDepth;
227
+ let accept = true;
228
+ if (opts.maxDepth !== null && opts.maxDepth !== void 0 && entryDepth > opts.maxDepth) {
229
+ accept = false;
230
+ }
231
+ let isEmpty = null;
232
+ if (accept && opts.empty === true) {
233
+ try {
234
+ isEmpty = kind === "f" ? (await stat3(path3.join(full, e.name))).size === 0 : (await readdir2(path3.join(full, e.name))).length === 0;
235
+ } catch {
236
+ isEmpty = null;
237
+ }
238
+ }
239
+ if (accept && !keep(
240
+ { key: entryPath, name: entryName, kind, depth: entryDepth, isEmpty },
241
+ ctx.tree,
242
+ opts.minDepth
243
+ )) {
244
+ accept = false;
245
+ }
246
+ if (accept && kind !== "f" && (opts.minSize != null || opts.maxSize != null)) {
247
+ if (opts.minSize != null && opts.minSize > 0) accept = false;
248
+ if (opts.maxSize != null && opts.maxSize < 0) accept = false;
249
+ }
250
+ if (accept && kind === "f" && (opts.minSize !== null || opts.maxSize !== null || opts.mtimeMin !== null || opts.mtimeMax !== null)) {
251
+ try {
252
+ const st = await stat3(path3.join(full, e.name));
253
+ if (opts.minSize !== null && opts.minSize !== void 0 && st.size < opts.minSize)
254
+ accept = false;
255
+ if (opts.maxSize !== null && opts.maxSize !== void 0 && st.size > opts.maxSize)
256
+ accept = false;
257
+ if (accept && (opts.mtimeMin !== void 0 || opts.mtimeMax !== void 0)) {
258
+ const mtime = st.mtime.getTime() / 1e3;
259
+ if (opts.mtimeMin !== null && opts.mtimeMin !== void 0 && mtime < opts.mtimeMin)
260
+ accept = false;
261
+ if (opts.mtimeMax !== null && opts.mtimeMax !== void 0 && mtime > opts.mtimeMax)
262
+ accept = false;
263
+ }
264
+ } catch {
265
+ accept = false;
266
+ }
267
+ }
268
+ if (accept) ctx.results.push(entryPath);
269
+ if (kind === "d") {
270
+ await walk(ctx, path3.join(full, e.name), entryPath, depth + 1);
271
+ }
272
+ }
273
+ }
274
+ async function find(accessor, p, options = {}) {
275
+ const virtual = norm(p.mountPath);
276
+ const startName = startBasename(p.virtual);
277
+ const full = resolveSafe(accessor.root, virtual);
278
+ const baseDepth = virtual === "/" ? 0 : (virtual.match(/\//g) ?? []).length;
279
+ const results = [];
280
+ const tree = options.tree ?? buildTree({
281
+ name: options.name,
282
+ iname: options.iname,
283
+ pathPattern: options.pathPattern,
284
+ type: options.type,
285
+ nameExclude: options.nameExclude,
286
+ orNames: options.orNames,
287
+ empty: options.empty
288
+ });
289
+ if (options.maxDepth == null || options.maxDepth >= 0) {
290
+ let isDir = false;
291
+ try {
292
+ isDir = (await stat3(full)).isDirectory();
293
+ } catch {
294
+ isDir = false;
295
+ }
296
+ let rootEmpty = null;
297
+ if (isDir && options.empty === true) {
298
+ try {
299
+ rootEmpty = (await readdir2(full)).length === 0;
300
+ } catch {
301
+ rootEmpty = null;
302
+ }
303
+ }
304
+ emitStartPath(results, virtual, startName, {
305
+ kind: "d",
306
+ isEmpty: rootEmpty,
307
+ exists: isDir,
308
+ tree,
309
+ maxDepth: options.maxDepth,
310
+ minDepth: options.minDepth,
311
+ minSize: options.minSize,
312
+ maxSize: options.maxSize
313
+ });
314
+ }
315
+ await walk({ accessor, base: virtual, baseDepth, options, tree, results }, full, virtual, 0);
316
+ results.sort(compareCodePoints2);
317
+ return results;
318
+ }
319
+
320
+ // src/core/disk/mkdir.ts
321
+ import { mkdir as fsMkdir } from "fs/promises";
322
+ import {
323
+ invalidateAfterWrite as invalidateAfterWrite4,
324
+ invalidateAncestors,
325
+ norm as norm2
326
+ } from "@struktoai/mirage-core";
327
+
328
+ // src/core/disk/dest.ts
329
+ import { stat as fsStat } from "fs/promises";
330
+ import {
331
+ ancestors,
332
+ enotdir,
333
+ mountedPath
334
+ } from "@struktoai/mirage-core";
335
+ async function mkdirComponentError(root, spec, key) {
336
+ for (const component of ancestors(key)) {
337
+ try {
338
+ const st = await fsStat(resolveSafe(root, component));
339
+ if (!st.isDirectory()) return enotdir(mountedPath(spec, component));
340
+ } catch {
341
+ return null;
342
+ }
343
+ }
344
+ return null;
345
+ }
346
+
347
+ // src/core/disk/mkdir.ts
348
+ async function mkdir(accessor, path6, parents = false) {
349
+ const root = accessor.root;
350
+ const full = resolveSafe(root, path6.mountPath);
351
+ if (parents) {
352
+ try {
353
+ await fsMkdir(full, { recursive: true });
354
+ } catch (err) {
355
+ const named = err.code === "ENOTDIR" ? await mkdirComponentError(root, path6, norm2(path6.mountPath)) : null;
356
+ throw named ?? diskError(err, path6);
357
+ }
358
+ await invalidateAfterWrite4(path6);
359
+ await invalidateAncestors(path6);
360
+ return;
361
+ }
362
+ try {
363
+ await fsMkdir(full);
364
+ } catch (err) {
365
+ throw diskError(err, path6);
366
+ }
367
+ await invalidateAfterWrite4(path6);
368
+ }
369
+
370
+ // src/core/disk/read.ts
371
+ import { open, readFile } from "fs/promises";
372
+ import { enoent, record as record3, ResourceName as ResourceName3 } from "@struktoai/mirage-core";
373
+ var CHUNK = 1 << 20;
374
+ async function read(accessor, path6) {
375
+ const start = performance.now();
376
+ const virtual = path6.mountPath;
377
+ const full = resolveSafe(accessor.root, virtual);
378
+ let data;
379
+ try {
380
+ data = await readFile(full);
381
+ } catch (err) {
382
+ if (err.code === "ENOENT") {
383
+ throw enoent(path6);
384
+ }
385
+ throw err;
386
+ }
387
+ record3("read", virtual, ResourceName3.DISK, data.byteLength, start);
388
+ return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
389
+ }
390
+ async function readRange(accessor, path6, _index, offset, size2) {
391
+ const start = performance.now();
392
+ const virtual = path6.mountPath;
393
+ const full = resolveSafe(accessor.root, virtual);
394
+ let handle;
395
+ try {
396
+ handle = await open(full, "r");
397
+ } catch (err) {
398
+ if (err.code === "ENOENT") {
399
+ throw enoent(path6);
400
+ }
401
+ throw err;
402
+ }
403
+ try {
404
+ if (size2 !== null) {
405
+ const buf = Buffer.allocUnsafe(size2);
406
+ const { bytesRead } = await handle.read(buf, 0, size2, offset);
407
+ const out = new Uint8Array(buf.buffer, buf.byteOffset, bytesRead);
408
+ record3("read", virtual, ResourceName3.DISK, bytesRead, start);
409
+ return out;
410
+ }
411
+ const parts = [];
412
+ let total = 0;
413
+ let at = offset;
414
+ for (; ; ) {
415
+ const buf = Buffer.allocUnsafe(CHUNK);
416
+ const { bytesRead } = await handle.read(buf, 0, CHUNK, at);
417
+ if (bytesRead === 0) break;
418
+ parts.push(buf.subarray(0, bytesRead));
419
+ total += bytesRead;
420
+ at += bytesRead;
421
+ }
422
+ const joined = Buffer.concat(parts, total);
423
+ record3("read", virtual, ResourceName3.DISK, total, start);
424
+ return new Uint8Array(joined.buffer, joined.byteOffset, joined.byteLength);
425
+ } finally {
426
+ await handle.close();
427
+ }
428
+ }
429
+
430
+ // src/core/disk/readdir.ts
431
+ import { readdir as fsReaddir } from "fs/promises";
432
+ import {
433
+ IndexEntry,
434
+ ResourceType,
435
+ enoent as enoent2,
436
+ enotdir as enotdir2,
437
+ mountPrefixOf,
438
+ rstripSlash,
439
+ compareCodePoints as compareCodePoints3
440
+ } from "@struktoai/mirage-core";
441
+ async function readdir3(accessor, path6, index) {
442
+ const virtual = path6.pattern !== null ? path6.directory : path6.mountPath;
443
+ const mountPrefix = mountPrefixOf(path6.virtual, path6.resourcePath);
444
+ const virtualKey = rstripSlash(mountPrefix + virtual) || "/";
445
+ if (index !== void 0) {
446
+ const cached = await index.listDir(virtualKey);
447
+ if (cached.entries !== void 0 && cached.entries !== null) {
448
+ return cached.entries;
449
+ }
450
+ }
451
+ const full = resolveSafe(accessor.root, virtual);
452
+ let entries2;
453
+ try {
454
+ entries2 = await fsReaddir(full);
455
+ } catch (err) {
456
+ const code = err.code;
457
+ if (code === "ENOTDIR") throw enotdir2(path6);
458
+ if (code === "ENOENT") throw enoent2(path6);
459
+ throw err;
460
+ }
461
+ const base = norm(virtual);
462
+ const dirPrefix = base === "/" ? "/" : `${base}/`;
463
+ const sorted = [...entries2].sort(compareCodePoints3);
464
+ const virtualEntries = sorted.map((e) => `${mountPrefix}${dirPrefix}${e}`);
465
+ if (index !== void 0) {
466
+ const indexEntries = sorted.map((name) => [
467
+ name,
468
+ new IndexEntry({
469
+ id: `${dirPrefix}${name}`,
470
+ name,
471
+ resourceType: ResourceType.FILE
472
+ })
473
+ ]);
474
+ await index.setDir(virtualKey, indexEntries);
475
+ }
476
+ return virtualEntries;
477
+ }
478
+
479
+ // src/core/disk/rename.ts
480
+ import { rename as fsRename } from "fs/promises";
481
+ import {
482
+ enoent as enoent3,
483
+ invalidateAfterUnlink,
484
+ invalidateAfterWrite as invalidateAfterWrite5
485
+ } from "@struktoai/mirage-core";
486
+ async function rename(accessor, src, dst) {
487
+ const s = resolveSafe(accessor.root, src.mountPath);
488
+ const d = resolveSafe(accessor.root, dst.mountPath);
489
+ try {
490
+ await fsRename(s, d);
491
+ } catch (err) {
492
+ if (err.code === "ENOENT") {
493
+ throw enoent3(src);
494
+ }
495
+ throw err;
496
+ }
497
+ await invalidateAfterUnlink(src);
498
+ await invalidateAfterWrite5(dst);
499
+ }
500
+
501
+ // src/core/disk/rm.ts
502
+ import { rm } from "fs/promises";
503
+ import { invalidateAfterUnlink as invalidateAfterUnlink2 } from "@struktoai/mirage-core";
504
+ async function rmR(accessor, path6) {
505
+ const full = resolveSafe(accessor.root, path6.mountPath);
506
+ await rm(full, { recursive: true, force: true });
507
+ await invalidateAfterUnlink2(path6);
508
+ }
509
+
510
+ // src/core/disk/rmdir.ts
511
+ import { rmdir as fsRmdir } from "fs/promises";
512
+ import { invalidateAfterUnlink as invalidateAfterUnlink3 } from "@struktoai/mirage-core";
513
+ async function rmdir(accessor, path6) {
514
+ const full = resolveSafe(accessor.root, path6.mountPath);
515
+ try {
516
+ await fsRmdir(full);
517
+ } catch (err) {
518
+ if (err.code === "ENOENT") return;
519
+ throw err;
520
+ }
521
+ await invalidateAfterUnlink3(path6);
522
+ }
523
+
524
+ // src/core/disk/set_attrs.ts
525
+ import { chmod, stat as fsStat2, utimes } from "fs/promises";
526
+ import { enoent as enoent4 } from "@struktoai/mirage-core";
527
+ async function setAttrs(accessor, path6, fields) {
528
+ const full = resolveSafe(accessor.root, path6.mountPath);
529
+ let st;
530
+ try {
531
+ st = await fsStat2(full);
532
+ } catch (err) {
533
+ if (err.code === "ENOENT") throw enoent4(path6);
534
+ throw err;
535
+ }
536
+ const residual = {};
537
+ if (fields.mode !== void 0) {
538
+ const keep2 = st.isDirectory() ? 448 : 384;
539
+ await chmod(full, fields.mode | keep2);
540
+ if ((fields.mode | keep2) !== fields.mode) residual.mode = fields.mode;
541
+ }
542
+ if (fields.uid !== void 0) residual.uid = fields.uid;
543
+ if (fields.gid !== void 0) residual.gid = fields.gid;
544
+ if (fields.atime !== void 0 || fields.mtime !== void 0) {
545
+ const newAtime = fields.atime !== void 0 ? new Date(fields.atime) : st.atime;
546
+ const newMtime = fields.mtime !== void 0 ? new Date(fields.mtime) : st.mtime;
547
+ await utimes(full, newAtime, newMtime);
548
+ }
549
+ return residual;
550
+ }
551
+
552
+ // src/core/disk/stat.ts
553
+ import { stat as fsStat3 } from "fs/promises";
554
+ import path4 from "path";
555
+ import { FileStat, FileType, guessType } from "@struktoai/mirage-core";
556
+ async function stat4(accessor, p) {
557
+ const virtual = p.mountPath;
558
+ const full = resolveSafe(accessor.root, virtual);
559
+ let st;
560
+ try {
561
+ st = await fsStat3(full);
562
+ } catch (err) {
563
+ throw diskError(err, p);
564
+ }
565
+ const modified = st.mtime.toISOString();
566
+ const name = path4.basename(full);
567
+ if (st.isDirectory()) {
568
+ return new FileStat({
569
+ name,
570
+ size: null,
571
+ modified,
572
+ type: FileType.DIRECTORY,
573
+ mode: st.mode & 4095,
574
+ atime: st.atime.toISOString()
575
+ });
576
+ }
577
+ return new FileStat({
578
+ name,
579
+ size: st.size,
580
+ modified,
581
+ fingerprint: modified,
582
+ type: guessType(name),
583
+ mode: st.mode & 4095,
584
+ atime: st.atime.toISOString()
585
+ });
586
+ }
587
+
588
+ // src/core/disk/stream.ts
589
+ import { createReadStream } from "fs";
590
+ import { enoent as enoent5, recordStream, ResourceName as ResourceName4 } from "@struktoai/mirage-core";
591
+ async function* stream(accessor, path6) {
592
+ const virtual = path6.mountPath;
593
+ const full = resolveSafe(accessor.root, virtual);
594
+ const rec = recordStream("read", virtual, ResourceName4.DISK);
595
+ const rs = createReadStream(full, { highWaterMark: 65536 });
596
+ try {
597
+ for await (const chunk of rs) {
598
+ const buf = chunk;
599
+ const u8 = new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);
600
+ if (rec !== null) rec.bytes += u8.byteLength;
601
+ yield u8;
602
+ }
603
+ } catch (err) {
604
+ if (err.code === "ENOENT") {
605
+ throw enoent5(path6);
606
+ }
607
+ throw err;
608
+ }
609
+ }
610
+
611
+ // src/core/disk/truncate.ts
612
+ import { readFile as readFile2, writeFile as writeFile2 } from "fs/promises";
613
+ import { ResourceName as ResourceName5, invalidateAfterWrite as invalidateAfterWrite6, record as record4 } from "@struktoai/mirage-core";
614
+ async function truncate(accessor, path6, length) {
615
+ const start = performance.now();
616
+ const full = resolveSafe(accessor.root, path6.mountPath);
617
+ let data;
618
+ try {
619
+ data = await readFile2(full);
620
+ } catch (err) {
621
+ if (err.code === "ENOENT") {
622
+ data = Buffer.alloc(0);
623
+ } else {
624
+ throw err;
625
+ }
626
+ }
627
+ const out = new Uint8Array(length);
628
+ out.set(data.subarray(0, Math.min(data.byteLength, length)));
629
+ await writeFile2(full, out);
630
+ record4("truncate", path6.mountPath, ResourceName5.DISK, 0, start);
631
+ await invalidateAfterWrite6(path6);
632
+ }
633
+
634
+ // src/core/disk/unlink.ts
635
+ import { unlink as fsUnlink } from "fs/promises";
636
+ import { invalidateAfterUnlink as invalidateAfterUnlink4 } from "@struktoai/mirage-core";
637
+ async function unlink(accessor, path6) {
638
+ const full = resolveSafe(accessor.root, path6.mountPath);
639
+ try {
640
+ await fsUnlink(full);
641
+ } catch (err) {
642
+ if (err.code === "ENOENT") return;
643
+ throw err;
644
+ }
645
+ await invalidateAfterUnlink4(path6);
646
+ }
647
+
648
+ // src/commands/builtin/disk/io.ts
649
+ var DISK_IO = {
650
+ readdir: readdir3,
651
+ readBytes: read,
652
+ readRange,
653
+ readStream: stream,
654
+ stat: stat4,
655
+ isMounted: (a) => a.root !== "",
656
+ local: true,
657
+ maxGlobMatches: SCOPE_ERROR,
658
+ write: writeBytes,
659
+ exists,
660
+ mkdir,
661
+ unlink,
662
+ rmdir,
663
+ rmR,
664
+ rename,
665
+ copy,
666
+ create,
667
+ truncate,
668
+ append: appendBytes,
669
+ setAttrs,
670
+ find,
671
+ du: { size, entries }
672
+ };
673
+
674
+ // src/commands/builtin/disk/index.ts
675
+ var DISK_COMMANDS = [
676
+ ...makeGenericCommands(ResourceName6.DISK, DISK_IO)
677
+ ];
678
+
679
+ // src/accessor/disk.ts
680
+ import { Accessor } from "@struktoai/mirage-core";
681
+ var DiskAccessor = class extends Accessor {
682
+ root;
683
+ constructor(root) {
684
+ super();
685
+ this.root = root;
686
+ }
687
+ };
688
+
689
+ // src/ops/disk/index.ts
690
+ import { ResourceName as ResourceName7, makeGenericOps } from "@struktoai/mirage-core";
691
+ var DISK_OPS = makeGenericOps(ResourceName7.DISK, DISK_IO, {
692
+ mkdirParents: true
693
+ });
694
+
695
+ // src/resource/disk/prompt.ts
696
+ var DISK_PROMPT = `{prefix}
697
+ Local disk filesystem. Mirrors the configured root directory.
698
+ Standard commands: ls, cat, head, tail, grep, wc, find, tree, mkdir, touch, cp, mv, rm, tee.`;
699
+
700
+ // src/resource/disk/disk.ts
701
+ var globCore = makeResolveGlob(readdir3, SCOPE_ERROR);
702
+ async function walkFiles(root, current, out) {
703
+ const entries2 = await readdir4(current, { withFileTypes: true });
704
+ for (const e of entries2) {
705
+ const child = path5.join(current, e.name);
706
+ if (e.isDirectory()) {
707
+ await walkFiles(root, child, out);
708
+ } else if (e.isFile()) {
709
+ out.push(child);
710
+ }
711
+ }
712
+ }
713
+ var DiskResource = class extends BaseResource {
714
+ kind = ResourceName8.DISK;
715
+ cachesReads = false;
716
+ // byte store: stat() sizes every file from metadata
717
+ sizesAlwaysKnown = true;
718
+ indexTtl = 60;
719
+ prompt = DISK_PROMPT;
720
+ root;
721
+ accessor;
722
+ opsMap = {
723
+ read_bytes: read,
724
+ write: writeBytes,
725
+ readdir: readdir3,
726
+ stat: stat4,
727
+ unlink,
728
+ rmdir,
729
+ copy,
730
+ rename,
731
+ mkdir,
732
+ read_stream: stream,
733
+ rm_recursive: rmR,
734
+ du_size: size,
735
+ du_entries: entries,
736
+ create,
737
+ truncate,
738
+ exists,
739
+ find_flat: find,
740
+ append: appendBytes
741
+ };
742
+ constructor(options) {
743
+ super();
744
+ this.root = path5.resolve(options.root);
745
+ this.accessor = new DiskAccessor(this.root);
746
+ }
747
+ // The resolved root is the storage: two DiskResources built on the same
748
+ // directory are one store, however they were spelled.
749
+ storageId() {
750
+ return `${this.kind}:${this.root}`;
751
+ }
752
+ async open() {
753
+ await mkdir2(this.root, { recursive: true });
754
+ }
755
+ // A real filesystem reports real numbers (QUOTA). GNU df: used counts
756
+ // reserved blocks (blocks - bfree), available excludes them (bavail).
757
+ async statfs() {
758
+ const st = await fsStatfs(this.root);
759
+ const bsize = st.bsize;
760
+ return {
761
+ state: CapacityState.QUOTA,
762
+ total: st.blocks * bsize,
763
+ used: (st.blocks - st.bfree) * bsize,
764
+ available: st.bavail * bsize,
765
+ inodes: st.files,
766
+ inodesUsed: st.files - st.ffree,
767
+ inodesFree: st.ffree
768
+ };
769
+ }
770
+ ops() {
771
+ return DISK_OPS;
772
+ }
773
+ commands() {
774
+ return DISK_COMMANDS;
775
+ }
776
+ streamPath(p) {
777
+ return stream(this.accessor, p);
778
+ }
779
+ readFile(p) {
780
+ return read(this.accessor, p);
781
+ }
782
+ writeFile(p, data) {
783
+ return writeBytes(this.accessor, p, data);
784
+ }
785
+ appendFile(p, data) {
786
+ return appendBytes(this.accessor, p, data);
787
+ }
788
+ readdir(p) {
789
+ return readdir3(this.accessor, p, this.index);
790
+ }
791
+ stat(p) {
792
+ return stat4(this.accessor, p);
793
+ }
794
+ exists(p) {
795
+ return exists(this.accessor, p);
796
+ }
797
+ mkdir(p, options) {
798
+ return mkdir(this.accessor, p, options?.recursive === true);
799
+ }
800
+ rmdir(p) {
801
+ return rmdir(this.accessor, p);
802
+ }
803
+ unlink(p) {
804
+ return unlink(this.accessor, p);
805
+ }
806
+ rename(src, dst) {
807
+ return rename(this.accessor, src, dst);
808
+ }
809
+ truncate(p, length) {
810
+ return truncate(this.accessor, p, length);
811
+ }
812
+ copy(src, dst) {
813
+ return copy(this.accessor, src, dst);
814
+ }
815
+ rmR(p) {
816
+ return rmR(this.accessor, p);
817
+ }
818
+ du(p) {
819
+ return size(this.accessor, p);
820
+ }
821
+ find(p, options = {}) {
822
+ return find(this.accessor, p, options);
823
+ }
824
+ glob(paths, prefix = "") {
825
+ const effective = prefix ? paths.map(
826
+ (p) => mountPrefixOf2(p.virtual, p.resourcePath) ? p : new PathSpec({
827
+ virtual: p.virtual,
828
+ directory: p.directory,
829
+ ...p.pattern !== null ? { pattern: p.pattern } : {},
830
+ resolved: p.resolved,
831
+ resourcePath: mountKey(p.virtual, prefix)
832
+ })
833
+ ) : paths;
834
+ return globCore(this.accessor, effective, this.index);
835
+ }
836
+ async getState() {
837
+ await mkdir2(this.root, { recursive: true });
838
+ const files = {};
839
+ const modes = {};
840
+ const fileList = [];
841
+ await walkFiles(this.root, this.root, fileList);
842
+ for (const full of fileList) {
843
+ const rel = path5.relative(this.root, full).split(path5.sep).join("/");
844
+ const data = await readFile3(full);
845
+ files[rel] = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
846
+ modes[rel] = (await fsStat4(full)).mode & 4095;
847
+ }
848
+ return {
849
+ type: this.kind,
850
+ files,
851
+ modes
852
+ };
853
+ }
854
+ async loadState(state) {
855
+ await mkdir2(this.root, { recursive: true });
856
+ for (const [rel, data] of Object.entries(state.files)) {
857
+ const full = path5.join(this.root, rel);
858
+ await mkdir2(path5.dirname(full), { recursive: true });
859
+ await writeFile3(full, data);
860
+ const mode = state.modes?.[rel];
861
+ if (mode !== void 0) await chmod2(full, mode);
862
+ }
863
+ }
864
+ };
865
+
866
+ export {
867
+ DISK_COMMANDS,
868
+ DISK_OPS,
869
+ DISK_PROMPT,
870
+ DiskResource
871
+ };
872
+ //# sourceMappingURL=chunk-WG5YS6TC.js.map