@struktoai/mirage-node 0.0.4 → 0.0.5

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 (447) 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/ceph-ALKLD3MO.js +11 -0
  7. package/dist/{chunk-VLRSOWHP.js → chunk-2A4YGVBM.js} +5 -14
  8. package/dist/chunk-2A4YGVBM.js.map +1 -0
  9. package/dist/chunk-2HCYLVGY.js +28 -0
  10. package/dist/chunk-2HCYLVGY.js.map +1 -0
  11. package/dist/chunk-2VPZAH5Q.js +20 -0
  12. package/dist/chunk-2VPZAH5Q.js.map +1 -0
  13. package/dist/{chunk-HCU3B6FW.js → chunk-3JZQ6VSZ.js} +5 -4
  14. package/dist/chunk-3JZQ6VSZ.js.map +1 -0
  15. package/dist/chunk-4IF4TGAI.js +11 -0
  16. package/dist/chunk-4IF4TGAI.js.map +1 -0
  17. package/dist/{chunk-L7FEZ7LU.js → chunk-5H6KNEPP.js} +4 -5
  18. package/dist/{chunk-L7FEZ7LU.js.map → chunk-5H6KNEPP.js.map} +1 -1
  19. package/dist/{chunk-25W4XQJZ.js → chunk-5K2MWDCE.js} +4 -5
  20. package/dist/{chunk-25W4XQJZ.js.map → chunk-5K2MWDCE.js.map} +1 -1
  21. package/dist/{chunk-L4GMDSMB.js → chunk-6SVXWRKX.js} +4 -5
  22. package/dist/{chunk-L4GMDSMB.js.map → chunk-6SVXWRKX.js.map} +1 -1
  23. package/dist/{chunk-H62XQZUM.js → chunk-6VOIUGAD.js} +22 -10
  24. package/dist/chunk-6VOIUGAD.js.map +1 -0
  25. package/dist/{chunk-SI4GMRXD.js → chunk-7JYHFXXC.js} +4 -8
  26. package/dist/chunk-7JYHFXXC.js.map +1 -0
  27. package/dist/chunk-7VQQFWV6.js +20 -0
  28. package/dist/chunk-7VQQFWV6.js.map +1 -0
  29. package/dist/chunk-7ZP6TPHX.js +87 -0
  30. package/dist/chunk-7ZP6TPHX.js.map +1 -0
  31. package/dist/{chunk-HWQPEBID.js → chunk-ADEXNSYU.js} +6 -12
  32. package/dist/chunk-ADEXNSYU.js.map +1 -0
  33. package/dist/chunk-AQSYAXL4.js +16 -0
  34. package/dist/chunk-AQSYAXL4.js.map +1 -0
  35. package/dist/{chunk-NJ42VNXG.js → chunk-ATLXMNKD.js} +8 -3
  36. package/dist/chunk-ATLXMNKD.js.map +1 -0
  37. package/dist/{chunk-CB76WPUS.js → chunk-BYCUGFRF.js} +5 -4
  38. package/dist/chunk-BYCUGFRF.js.map +1 -0
  39. package/dist/{chunk-4M73WHIE.js → chunk-BZTVYOES.js} +3 -3
  40. package/dist/{chunk-CQCTCW4S.js → chunk-CRC4YWXB.js} +28 -9
  41. package/dist/chunk-CRC4YWXB.js.map +1 -0
  42. package/dist/{chunk-C7TNKIK5.js → chunk-CTGXJHO5.js} +1 -1
  43. package/dist/chunk-CTGXJHO5.js.map +1 -0
  44. package/dist/{chunk-HSD24IP2.js → chunk-DCDBIXVZ.js} +7 -2
  45. package/dist/chunk-DCDBIXVZ.js.map +1 -0
  46. package/dist/{chunk-HEDE2377.js → chunk-DDAFNROK.js} +318 -322
  47. package/dist/chunk-DDAFNROK.js.map +1 -0
  48. package/dist/chunk-DQIEWEAW.js +85 -0
  49. package/dist/chunk-DQIEWEAW.js.map +1 -0
  50. package/dist/{chunk-2ERLWAGG.js → chunk-EBI4IHDC.js} +20 -11
  51. package/dist/chunk-EBI4IHDC.js.map +1 -0
  52. package/dist/{chunk-RHUEV4I7.js → chunk-EIUTZ6N7.js} +10 -24
  53. package/dist/chunk-EIUTZ6N7.js.map +1 -0
  54. package/dist/{chunk-IUXXZHY3.js → chunk-EJZG5VUF.js} +24 -12
  55. package/dist/chunk-EJZG5VUF.js.map +1 -0
  56. package/dist/{chunk-BWWU5T2D.js → chunk-ENW5BVYN.js} +3 -3
  57. package/dist/{chunk-F5NWRF32.js → chunk-ETIAW4YD.js} +3 -3
  58. package/dist/chunk-EUPXAYPB.js +20 -0
  59. package/dist/chunk-EUPXAYPB.js.map +1 -0
  60. package/dist/{chunk-EGZNOUMH.js → chunk-FA6YNU75.js} +4 -5
  61. package/dist/{chunk-EGZNOUMH.js.map → chunk-FA6YNU75.js.map} +1 -1
  62. package/dist/{chunk-XUUSWR4U.js → chunk-FFH6R5VQ.js} +7 -2
  63. package/dist/{chunk-XUUSWR4U.js.map → chunk-FFH6R5VQ.js.map} +1 -1
  64. package/dist/{chunk-JEBH5APX.js → chunk-GE6H2COM.js} +5 -13
  65. package/dist/chunk-GE6H2COM.js.map +1 -0
  66. package/dist/{chunk-TUNR4VUM.js → chunk-GMMQ3ZK4.js} +3 -3
  67. package/dist/{chunk-SAOQW6ZJ.js → chunk-GSGE3M5P.js} +5 -13
  68. package/dist/chunk-GSGE3M5P.js.map +1 -0
  69. package/dist/{chunk-DXU7NZPH.js → chunk-HCRYAFBI.js} +3 -3
  70. package/dist/{chunk-OSVZKYXS.js → chunk-HOPUP6LA.js} +192 -156
  71. package/dist/chunk-HOPUP6LA.js.map +1 -0
  72. package/dist/chunk-HS24BL6W.js +160 -0
  73. package/dist/chunk-HS24BL6W.js.map +1 -0
  74. package/dist/chunk-HVYVG5KQ.js +16 -0
  75. package/dist/chunk-HVYVG5KQ.js.map +1 -0
  76. package/dist/{chunk-XEMLYWHK.js → chunk-I7CPLZNW.js} +4 -5
  77. package/dist/{chunk-XEMLYWHK.js.map → chunk-I7CPLZNW.js.map} +1 -1
  78. package/dist/{chunk-AULFV3KY.js → chunk-IFUCGI4I.js} +7 -2
  79. package/dist/chunk-IFUCGI4I.js.map +1 -0
  80. package/dist/{chunk-HGIPWY5Y.js → chunk-IFYXSSKR.js} +6 -6
  81. package/dist/chunk-IFYXSSKR.js.map +1 -0
  82. package/dist/chunk-IXA4DQE4.js +20 -0
  83. package/dist/chunk-IXA4DQE4.js.map +1 -0
  84. package/dist/chunk-IZMKMD3O.js +11 -0
  85. package/dist/chunk-IZMKMD3O.js.map +1 -0
  86. package/dist/{chunk-4X6CLF4F.js → chunk-JJERW2BI.js} +4 -5
  87. package/dist/{chunk-4X6CLF4F.js.map → chunk-JJERW2BI.js.map} +1 -1
  88. package/dist/{chunk-M6E7VK4D.js → chunk-JQR4HVUX.js} +2 -5
  89. package/dist/chunk-JQR4HVUX.js.map +1 -0
  90. package/dist/{chunk-BWLUBJQG.js → chunk-JXOMDLFS.js} +6 -15
  91. package/dist/chunk-JXOMDLFS.js.map +1 -0
  92. package/dist/{chunk-5ZHNPNDD.js → chunk-KIX6N7NT.js} +198 -141
  93. package/dist/chunk-KIX6N7NT.js.map +1 -0
  94. package/dist/{chunk-XFSEADPC.js → chunk-L42UTDFK.js} +7 -2
  95. package/dist/chunk-L42UTDFK.js.map +1 -0
  96. package/dist/chunk-M2UF2JHJ.js +11 -0
  97. package/dist/chunk-M2UF2JHJ.js.map +1 -0
  98. package/dist/{chunk-LPLZLSMK.js → chunk-MONC734W.js} +7 -2
  99. package/dist/chunk-MONC734W.js.map +1 -0
  100. package/dist/{chunk-XADEMW6B.js → chunk-N72RLCMU.js} +4 -5
  101. package/dist/{chunk-XADEMW6B.js.map → chunk-N72RLCMU.js.map} +1 -1
  102. package/dist/{chunk-ZPB3SLPK.js → chunk-ND4IWJ4V.js} +7 -2
  103. package/dist/chunk-ND4IWJ4V.js.map +1 -0
  104. package/dist/{chunk-ZPZQXHW2.js → chunk-NZ3EKGW4.js} +260 -178
  105. package/dist/chunk-NZ3EKGW4.js.map +1 -0
  106. package/dist/{chunk-E3KXVEYI.js → chunk-OAE57MNL.js} +22 -10
  107. package/dist/chunk-OAE57MNL.js.map +1 -0
  108. package/dist/{chunk-JBDFYIN2.js → chunk-OHKGIQB4.js} +2 -5
  109. package/dist/chunk-OHKGIQB4.js.map +1 -0
  110. package/dist/{chunk-V7JVMG63.js → chunk-OXEQSPND.js} +3 -3
  111. package/dist/{chunk-YRJICL2Q.js → chunk-PKNE5J2B.js} +5 -13
  112. package/dist/chunk-PKNE5J2B.js.map +1 -0
  113. package/dist/chunk-PSXXEGYQ.js +16 -0
  114. package/dist/chunk-PSXXEGYQ.js.map +1 -0
  115. package/dist/{chunk-KAWDDS27.js → chunk-QAOVABCR.js} +7 -2
  116. package/dist/chunk-QAOVABCR.js.map +1 -0
  117. package/dist/{chunk-SYMNWNC3.js → chunk-QQ7FP4GD.js} +4 -5
  118. package/dist/{chunk-SYMNWNC3.js.map → chunk-QQ7FP4GD.js.map} +1 -1
  119. package/dist/{chunk-3JZN3GYO.js → chunk-QYLVMC6B.js} +2 -5
  120. package/dist/chunk-QYLVMC6B.js.map +1 -0
  121. package/dist/{chunk-CXQGMFI7.js → chunk-RX3XR65X.js} +4 -5
  122. package/dist/{chunk-CXQGMFI7.js.map → chunk-RX3XR65X.js.map} +1 -1
  123. package/dist/{chunk-MRXTUFBZ.js → chunk-RYQJJB4C.js} +1 -1
  124. package/dist/chunk-RYQJJB4C.js.map +1 -0
  125. package/dist/{chunk-5I7Q7RHW.js → chunk-TUF7TCN7.js} +4 -5
  126. package/dist/{chunk-5I7Q7RHW.js.map → chunk-TUF7TCN7.js.map} +1 -1
  127. package/dist/{chunk-NLXJMXVE.js → chunk-TUX36JY5.js} +4 -5
  128. package/dist/{chunk-NLXJMXVE.js.map → chunk-TUX36JY5.js.map} +1 -1
  129. package/dist/{chunk-4GYB7DGC.js → chunk-TWRQCQWU.js} +327 -558
  130. package/dist/chunk-TWRQCQWU.js.map +1 -0
  131. package/dist/chunk-U6DFQRG3.js +20 -0
  132. package/dist/chunk-U6DFQRG3.js.map +1 -0
  133. package/dist/chunk-VI5YTKNY.js +20 -0
  134. package/dist/chunk-VI5YTKNY.js.map +1 -0
  135. package/dist/{chunk-FRGTDZQT.js → chunk-VQDF2UH5.js} +19 -5
  136. package/dist/chunk-VQDF2UH5.js.map +1 -0
  137. package/dist/{chunk-W5ZLIQFR.js → chunk-WG5YS6TC.js} +308 -200
  138. package/dist/chunk-WG5YS6TC.js.map +1 -0
  139. package/dist/{chunk-ZM44MGC5.js → chunk-WMJJ4WGF.js} +4 -5
  140. package/dist/{chunk-ZM44MGC5.js.map → chunk-WMJJ4WGF.js.map} +1 -1
  141. package/dist/{chunk-5YRWF5RP.js → chunk-WY4FNH42.js} +6 -5
  142. package/dist/chunk-WY4FNH42.js.map +1 -0
  143. package/dist/{chunk-VBYIDRNU.js → chunk-XIG5BWWH.js} +19 -10
  144. package/dist/chunk-XIG5BWWH.js.map +1 -0
  145. package/dist/chunk-XJBC3OYX.js +11 -0
  146. package/dist/chunk-XJBC3OYX.js.map +1 -0
  147. package/dist/{chunk-ZMREYTHA.js → chunk-XPRDXWK7.js} +8 -8
  148. package/dist/chunk-XPRDXWK7.js.map +1 -0
  149. package/dist/chunk-YKRQSZS7.js +96 -0
  150. package/dist/chunk-YKRQSZS7.js.map +1 -0
  151. package/dist/{chunk-IEVLWEBO.js → chunk-YMBL3VJB.js} +9 -8
  152. package/dist/chunk-YMBL3VJB.js.map +1 -0
  153. package/dist/{chunk-CGGO5NKD.js → chunk-YUJBXFYK.js} +357 -346
  154. package/dist/chunk-YUJBXFYK.js.map +1 -0
  155. package/dist/{chunk-S4KVLPBR.js → chunk-YZ4ZJNOL.js} +22 -10
  156. package/dist/chunk-YZ4ZJNOL.js.map +1 -0
  157. package/dist/chunk-ZTHVEXIV.js +11 -0
  158. package/dist/chunk-ZTHVEXIV.js.map +1 -0
  159. package/dist/{chunk-VHED2STW.js → chunk-ZVSYUCYS.js} +2 -1
  160. package/dist/chunk-ZVSYUCYS.js.map +1 -0
  161. package/dist/{config-T2IUIU5C.js → config-2YBCHU2W.js} +2 -2
  162. package/dist/{config-M3Z47VYU.js → config-3YRGRW72.js} +3 -2
  163. package/dist/config-4GSOMUMF.js +9 -0
  164. package/dist/config-5YBUWFUP.js +9 -0
  165. package/dist/{config-2LASFFRD.js → config-5ZRKJTKG.js} +3 -2
  166. package/dist/{config-W7EVPJNK.js → config-A25LTL5W.js} +2 -2
  167. package/dist/{config-WKQ3FGTZ.js → config-CLU7JABG.js} +2 -2
  168. package/dist/{config-E22XAGYN.js → config-D2RF7L3N.js} +2 -2
  169. package/dist/{config-HQXNFQZS.js → config-E55TKM6K.js} +2 -2
  170. package/dist/config-ELDOFRJW.js +9 -0
  171. package/dist/{config-EX3ZJTZI.js → config-FPC3RBFD.js} +2 -2
  172. package/dist/config-FPM3LAW7.js +9 -0
  173. package/dist/{config-IPNWAJHH.js → config-G3F54CS4.js} +3 -2
  174. package/dist/{config-BBOLI7VE.js → config-G43HRUI3.js} +2 -2
  175. package/dist/{config-QO2XUME4.js → config-GG3WO5PB.js} +3 -2
  176. package/dist/{config-QWQGOXQ5.js → config-JUYBWAZE.js} +2 -2
  177. package/dist/{config-SPW6NESU.js → config-LJ5T6TVA.js} +2 -2
  178. package/dist/{config-WVILHDFV.js → config-MDSAE4O3.js} +2 -2
  179. package/dist/{config-MZM3IPFM.js → config-NRIOKK5T.js} +2 -2
  180. package/dist/{config-L7SBSH5L.js → config-OYK2BSJK.js} +2 -2
  181. package/dist/config-PB3KA2CE.js +9 -0
  182. package/dist/{config-54USUVSE.js → config-QY4IL3PH.js} +3 -2
  183. package/dist/{config-VKKZGC7V.js → config-R4LAOEDS.js} +2 -2
  184. package/dist/{config-FRK7ZL37.js → config-RIAAD6RW.js} +3 -2
  185. package/dist/{config-J2C53GOT.js → config-SYNEQAUB.js} +2 -2
  186. package/dist/{config-XU6D5C7E.js → config-TJKGYA2B.js} +3 -2
  187. package/dist/{config-DWSJL3NH.js → config-UURRGA7U.js} +4 -2
  188. package/dist/{config-BIBFLUIR.js → config-VPLHQXVE.js} +2 -2
  189. package/dist/config-WRACCRPN.js +9 -0
  190. package/dist/{config-OJ2BPESH.js → config-WVHKXEVE.js} +3 -2
  191. package/dist/{config-CPYFOUQO.js → config-XU7R36IE.js} +3 -2
  192. package/dist/{config-A2GQYJDB.js → config-Y2KOUYSS.js} +2 -2
  193. package/dist/databricks_volume-CNCPTZHS.js +7 -0
  194. package/dist/digitalocean-DJZOUB6Q.js +11 -0
  195. package/dist/discord-ETB2CADR.js +7 -0
  196. package/dist/disk-WEHSTK3F.js +7 -0
  197. package/dist/dropbox-XN6PGLNE.js +8 -0
  198. package/dist/email-OV7XCP3T.js +8 -0
  199. package/dist/gcal-P56MRCGU.js +8 -0
  200. package/dist/gcs-HFBIAE2C.js +10 -0
  201. package/dist/gdocs-LQ3UXP3J.js +8 -0
  202. package/dist/gdrive-N6UBYLON.js +8 -0
  203. package/dist/github-BPZREGPI.js +8 -0
  204. package/dist/github_ci-7A4LUIZ7.js +8 -0
  205. package/dist/{gmail-2TBT4CVH.js → gmail-YED2MF6H.js} +2 -2
  206. package/dist/gridfs-CPLQ4G62.js +9 -0
  207. package/dist/gsheets-4BNIJPQ6.js +8 -0
  208. package/dist/gslides-GDBYLO5A.js +8 -0
  209. package/dist/hf_buckets-FTJITQ3P.js +10 -0
  210. package/dist/hf_datasets-6GXVKQD7.js +10 -0
  211. package/dist/hf_models-PJPGZAC5.js +10 -0
  212. package/dist/hf_spaces-LFNFOLBF.js +10 -0
  213. package/dist/index.d.ts +897 -609
  214. package/dist/index.js +2371 -781
  215. package/dist/index.js.map +1 -1
  216. package/dist/jaeger-GCA6MJ6E.js +8 -0
  217. package/dist/lancedb-TJ5YSJY5.js +7 -0
  218. package/dist/langfuse-RUMTUMXS.js +8 -0
  219. package/dist/linear-BCE4KEAC.js +7 -0
  220. package/dist/minio-5SO6KBTK.js +11 -0
  221. package/dist/mongodb-7C5MBESV.js +7 -0
  222. package/dist/nextcloud-4O2LZVW2.js +9 -0
  223. package/dist/notion-RVKEAQ2M.js +7 -0
  224. package/dist/oci-OQXOIC62.js +10 -0
  225. package/dist/postgres-AV45GNRS.js +7 -0
  226. package/dist/qingstor-W277YA4K.js +11 -0
  227. package/dist/r2-FUA4IORE.js +10 -0
  228. package/dist/{redis-6D55Q2WB.js → redis-LPS357NF.js} +2 -2
  229. package/dist/s3-FPNWWIVM.js +8 -0
  230. package/dist/scaleway-BP3732U7.js +11 -0
  231. package/dist/seaweedfs-MC6HIEP4.js +11 -0
  232. package/dist/slack-JFGW7VLN.js +7 -0
  233. package/dist/ssh-UYPG42LM.js +8 -0
  234. package/dist/supabase-A3KUFMDC.js +10 -0
  235. package/dist/tencent-5464UQ2X.js +11 -0
  236. package/dist/trello-O2KB3FUO.js +8 -0
  237. package/dist/wasabi-2IKBIWNO.js +10 -0
  238. package/dist/wasabi-2IKBIWNO.js.map +1 -0
  239. package/package.json +15 -3
  240. package/dist/aliyun-PGI57A43.js +0 -10
  241. package/dist/backblaze-TSPL6Y56.js +0 -10
  242. package/dist/box-7XTZYDSO.js +0 -8
  243. package/dist/ceph-C265UI5T.js +0 -10
  244. package/dist/chunk-2ERLWAGG.js.map +0 -1
  245. package/dist/chunk-2QNPKPZZ.js +0 -59
  246. package/dist/chunk-2QNPKPZZ.js.map +0 -1
  247. package/dist/chunk-3ASOQTZB.js +0 -59
  248. package/dist/chunk-3ASOQTZB.js.map +0 -1
  249. package/dist/chunk-3JZN3GYO.js.map +0 -1
  250. package/dist/chunk-4GYB7DGC.js.map +0 -1
  251. package/dist/chunk-5YRWF5RP.js.map +0 -1
  252. package/dist/chunk-5ZHNPNDD.js.map +0 -1
  253. package/dist/chunk-AULFV3KY.js.map +0 -1
  254. package/dist/chunk-BWLUBJQG.js.map +0 -1
  255. package/dist/chunk-C7TNKIK5.js.map +0 -1
  256. package/dist/chunk-CB76WPUS.js.map +0 -1
  257. package/dist/chunk-CGGO5NKD.js.map +0 -1
  258. package/dist/chunk-CQCTCW4S.js.map +0 -1
  259. package/dist/chunk-D3U7VQCG.js +0 -25
  260. package/dist/chunk-D3U7VQCG.js.map +0 -1
  261. package/dist/chunk-E3KXVEYI.js.map +0 -1
  262. package/dist/chunk-EVK6HH6Z.js +0 -17
  263. package/dist/chunk-EVK6HH6Z.js.map +0 -1
  264. package/dist/chunk-FRGTDZQT.js.map +0 -1
  265. package/dist/chunk-GF75O2EN.js +0 -54
  266. package/dist/chunk-GF75O2EN.js.map +0 -1
  267. package/dist/chunk-GTAS3QVC.js +0 -25
  268. package/dist/chunk-GTAS3QVC.js.map +0 -1
  269. package/dist/chunk-H62XQZUM.js.map +0 -1
  270. package/dist/chunk-HCU3B6FW.js.map +0 -1
  271. package/dist/chunk-HEDE2377.js.map +0 -1
  272. package/dist/chunk-HGIPWY5Y.js.map +0 -1
  273. package/dist/chunk-HSD24IP2.js.map +0 -1
  274. package/dist/chunk-HWQPEBID.js.map +0 -1
  275. package/dist/chunk-IEHPTILN.js +0 -21
  276. package/dist/chunk-IEHPTILN.js.map +0 -1
  277. package/dist/chunk-IEVLWEBO.js.map +0 -1
  278. package/dist/chunk-IKJQOYI4.js +0 -26
  279. package/dist/chunk-IKJQOYI4.js.map +0 -1
  280. package/dist/chunk-IUXXZHY3.js.map +0 -1
  281. package/dist/chunk-JBDFYIN2.js.map +0 -1
  282. package/dist/chunk-JEBH5APX.js.map +0 -1
  283. package/dist/chunk-JHI2PHHD.js +0 -25
  284. package/dist/chunk-JHI2PHHD.js.map +0 -1
  285. package/dist/chunk-KAWDDS27.js.map +0 -1
  286. package/dist/chunk-KGC2OGXI.js +0 -27
  287. package/dist/chunk-KGC2OGXI.js.map +0 -1
  288. package/dist/chunk-LPLZLSMK.js.map +0 -1
  289. package/dist/chunk-M6E7VK4D.js.map +0 -1
  290. package/dist/chunk-MIQ3ECZM.js +0 -54
  291. package/dist/chunk-MIQ3ECZM.js.map +0 -1
  292. package/dist/chunk-MRXTUFBZ.js.map +0 -1
  293. package/dist/chunk-NJ42VNXG.js.map +0 -1
  294. package/dist/chunk-OSVZKYXS.js.map +0 -1
  295. package/dist/chunk-RHUEV4I7.js.map +0 -1
  296. package/dist/chunk-S4KVLPBR.js.map +0 -1
  297. package/dist/chunk-SAOQW6ZJ.js.map +0 -1
  298. package/dist/chunk-SI4GMRXD.js.map +0 -1
  299. package/dist/chunk-UAJYJP5C.js +0 -59
  300. package/dist/chunk-UAJYJP5C.js.map +0 -1
  301. package/dist/chunk-UYA3XL3J.js +0 -54
  302. package/dist/chunk-UYA3XL3J.js.map +0 -1
  303. package/dist/chunk-VBYIDRNU.js.map +0 -1
  304. package/dist/chunk-VHED2STW.js.map +0 -1
  305. package/dist/chunk-VIICUPWQ.js +0 -23
  306. package/dist/chunk-VIICUPWQ.js.map +0 -1
  307. package/dist/chunk-VLRSOWHP.js.map +0 -1
  308. package/dist/chunk-W5ZLIQFR.js.map +0 -1
  309. package/dist/chunk-WTSSEUOZ.js +0 -59
  310. package/dist/chunk-WTSSEUOZ.js.map +0 -1
  311. package/dist/chunk-WWP2STF5.js +0 -59
  312. package/dist/chunk-WWP2STF5.js.map +0 -1
  313. package/dist/chunk-XFSEADPC.js.map +0 -1
  314. package/dist/chunk-YBVMZ7SR.js +0 -59
  315. package/dist/chunk-YBVMZ7SR.js.map +0 -1
  316. package/dist/chunk-YRJICL2Q.js.map +0 -1
  317. package/dist/chunk-ZMREYTHA.js.map +0 -1
  318. package/dist/chunk-ZPB3SLPK.js.map +0 -1
  319. package/dist/chunk-ZPZQXHW2.js.map +0 -1
  320. package/dist/config-3WDIJPTG.js +0 -9
  321. package/dist/config-4QV4QYI5.js +0 -9
  322. package/dist/config-5ZXN2T2H.js +0 -9
  323. package/dist/config-EHE52ZTK.js +0 -9
  324. package/dist/config-HTXOOAOD.js +0 -9
  325. package/dist/config-K63RX6EU.js +0 -9
  326. package/dist/config-LEALEMKA.js +0 -9
  327. package/dist/config-RI7IEZUF.js +0 -9
  328. package/dist/databricks_volume-ETRDJVVQ.js +0 -7
  329. package/dist/digitalocean-QP72DR4J.js +0 -10
  330. package/dist/discord-BSN5RB3E.js +0 -8
  331. package/dist/disk-24NWTN2I.js +0 -7
  332. package/dist/dropbox-OSTZXSIE.js +0 -8
  333. package/dist/email-4ZFPSWIN.js +0 -8
  334. package/dist/gcs-PFWR6MIW.js +0 -10
  335. package/dist/gdocs-GPAZRQG5.js +0 -8
  336. package/dist/gdrive-XSX6A7B3.js +0 -8
  337. package/dist/github-EQ4NXUTA.js +0 -8
  338. package/dist/github_ci-QL5B2Q2N.js +0 -8
  339. package/dist/gridfs-KZRZ6SIB.js +0 -9
  340. package/dist/gsheets-N53WEXN2.js +0 -8
  341. package/dist/gslides-TATSARTH.js +0 -8
  342. package/dist/hf_buckets-BK7NGJWS.js +0 -10
  343. package/dist/hf_datasets-UQ5QGM4L.js +0 -10
  344. package/dist/hf_models-75LFCQCS.js +0 -10
  345. package/dist/hf_spaces-6T2KB3UC.js +0 -10
  346. package/dist/langfuse-AMQCQWNE.js +0 -8
  347. package/dist/linear-V3TXO6CV.js +0 -8
  348. package/dist/minio-IZRZY4C5.js +0 -10
  349. package/dist/mongodb-VMKPQCPX.js +0 -7
  350. package/dist/nextcloud-5RHQCGDO.js +0 -9
  351. package/dist/notion-6PPNTQFM.js +0 -8
  352. package/dist/oci-CKYBSFZJ.js +0 -10
  353. package/dist/postgres-WIQBVL5M.js +0 -7
  354. package/dist/qingstor-AP4IIPLY.js +0 -10
  355. package/dist/r2-C4XGEWQY.js +0 -10
  356. package/dist/s3-XQBI2CXN.js +0 -8
  357. package/dist/scaleway-SEZJVURB.js +0 -10
  358. package/dist/seaweedfs-3XYIAFU2.js +0 -10
  359. package/dist/slack-ZHXDJQY4.js +0 -8
  360. package/dist/ssh-X2MO7JOV.js +0 -8
  361. package/dist/supabase-BBM44UTM.js +0 -10
  362. package/dist/tencent-X72USLJ7.js +0 -10
  363. package/dist/trello-EER5NG7L.js +0 -8
  364. package/dist/wasabi-O4MVIUFG.js +0 -10
  365. /package/dist/{aliyun-PGI57A43.js.map → aliyun-S62BR3TB.js.map} +0 -0
  366. /package/dist/{backblaze-TSPL6Y56.js.map → backblaze-4EKSW63F.js.map} +0 -0
  367. /package/dist/{box-7XTZYDSO.js.map → box-ZPLZAGMK.js.map} +0 -0
  368. /package/dist/{ceph-C265UI5T.js.map → ceph-ALKLD3MO.js.map} +0 -0
  369. /package/dist/{chunk-4M73WHIE.js.map → chunk-BZTVYOES.js.map} +0 -0
  370. /package/dist/{chunk-BWWU5T2D.js.map → chunk-ENW5BVYN.js.map} +0 -0
  371. /package/dist/{chunk-F5NWRF32.js.map → chunk-ETIAW4YD.js.map} +0 -0
  372. /package/dist/{chunk-TUNR4VUM.js.map → chunk-GMMQ3ZK4.js.map} +0 -0
  373. /package/dist/{chunk-DXU7NZPH.js.map → chunk-HCRYAFBI.js.map} +0 -0
  374. /package/dist/{chunk-V7JVMG63.js.map → chunk-OXEQSPND.js.map} +0 -0
  375. /package/dist/{config-2LASFFRD.js.map → config-2YBCHU2W.js.map} +0 -0
  376. /package/dist/{config-3WDIJPTG.js.map → config-3YRGRW72.js.map} +0 -0
  377. /package/dist/{config-4QV4QYI5.js.map → config-4GSOMUMF.js.map} +0 -0
  378. /package/dist/{config-54USUVSE.js.map → config-5YBUWFUP.js.map} +0 -0
  379. /package/dist/{config-5ZXN2T2H.js.map → config-5ZRKJTKG.js.map} +0 -0
  380. /package/dist/{config-A2GQYJDB.js.map → config-A25LTL5W.js.map} +0 -0
  381. /package/dist/{config-BBOLI7VE.js.map → config-CLU7JABG.js.map} +0 -0
  382. /package/dist/{config-BIBFLUIR.js.map → config-D2RF7L3N.js.map} +0 -0
  383. /package/dist/{config-CPYFOUQO.js.map → config-E55TKM6K.js.map} +0 -0
  384. /package/dist/{config-DWSJL3NH.js.map → config-ELDOFRJW.js.map} +0 -0
  385. /package/dist/{config-E22XAGYN.js.map → config-FPC3RBFD.js.map} +0 -0
  386. /package/dist/{config-EHE52ZTK.js.map → config-FPM3LAW7.js.map} +0 -0
  387. /package/dist/{config-EX3ZJTZI.js.map → config-G3F54CS4.js.map} +0 -0
  388. /package/dist/{config-FRK7ZL37.js.map → config-G43HRUI3.js.map} +0 -0
  389. /package/dist/{config-HQXNFQZS.js.map → config-GG3WO5PB.js.map} +0 -0
  390. /package/dist/{config-HTXOOAOD.js.map → config-JUYBWAZE.js.map} +0 -0
  391. /package/dist/{config-IPNWAJHH.js.map → config-LJ5T6TVA.js.map} +0 -0
  392. /package/dist/{config-J2C53GOT.js.map → config-MDSAE4O3.js.map} +0 -0
  393. /package/dist/{config-K63RX6EU.js.map → config-NRIOKK5T.js.map} +0 -0
  394. /package/dist/{config-L7SBSH5L.js.map → config-OYK2BSJK.js.map} +0 -0
  395. /package/dist/{config-LEALEMKA.js.map → config-PB3KA2CE.js.map} +0 -0
  396. /package/dist/{config-M3Z47VYU.js.map → config-QY4IL3PH.js.map} +0 -0
  397. /package/dist/{config-MZM3IPFM.js.map → config-R4LAOEDS.js.map} +0 -0
  398. /package/dist/{config-OJ2BPESH.js.map → config-RIAAD6RW.js.map} +0 -0
  399. /package/dist/{config-QO2XUME4.js.map → config-SYNEQAUB.js.map} +0 -0
  400. /package/dist/{config-QWQGOXQ5.js.map → config-TJKGYA2B.js.map} +0 -0
  401. /package/dist/{config-RI7IEZUF.js.map → config-UURRGA7U.js.map} +0 -0
  402. /package/dist/{config-SPW6NESU.js.map → config-VPLHQXVE.js.map} +0 -0
  403. /package/dist/{config-T2IUIU5C.js.map → config-WRACCRPN.js.map} +0 -0
  404. /package/dist/{config-VKKZGC7V.js.map → config-WVHKXEVE.js.map} +0 -0
  405. /package/dist/{config-W7EVPJNK.js.map → config-XU7R36IE.js.map} +0 -0
  406. /package/dist/{config-WKQ3FGTZ.js.map → config-Y2KOUYSS.js.map} +0 -0
  407. /package/dist/{config-WVILHDFV.js.map → databricks_volume-CNCPTZHS.js.map} +0 -0
  408. /package/dist/{config-XU6D5C7E.js.map → digitalocean-DJZOUB6Q.js.map} +0 -0
  409. /package/dist/{databricks_volume-ETRDJVVQ.js.map → discord-ETB2CADR.js.map} +0 -0
  410. /package/dist/{digitalocean-QP72DR4J.js.map → disk-WEHSTK3F.js.map} +0 -0
  411. /package/dist/{discord-BSN5RB3E.js.map → dropbox-XN6PGLNE.js.map} +0 -0
  412. /package/dist/{disk-24NWTN2I.js.map → email-OV7XCP3T.js.map} +0 -0
  413. /package/dist/{dropbox-OSTZXSIE.js.map → gcal-P56MRCGU.js.map} +0 -0
  414. /package/dist/{email-4ZFPSWIN.js.map → gcs-HFBIAE2C.js.map} +0 -0
  415. /package/dist/{gcs-PFWR6MIW.js.map → gdocs-LQ3UXP3J.js.map} +0 -0
  416. /package/dist/{gdocs-GPAZRQG5.js.map → gdrive-N6UBYLON.js.map} +0 -0
  417. /package/dist/{gdrive-XSX6A7B3.js.map → github-BPZREGPI.js.map} +0 -0
  418. /package/dist/{github-EQ4NXUTA.js.map → github_ci-7A4LUIZ7.js.map} +0 -0
  419. /package/dist/{github_ci-QL5B2Q2N.js.map → gmail-YED2MF6H.js.map} +0 -0
  420. /package/dist/{gmail-2TBT4CVH.js.map → gridfs-CPLQ4G62.js.map} +0 -0
  421. /package/dist/{gridfs-KZRZ6SIB.js.map → gsheets-4BNIJPQ6.js.map} +0 -0
  422. /package/dist/{gsheets-N53WEXN2.js.map → gslides-GDBYLO5A.js.map} +0 -0
  423. /package/dist/{gslides-TATSARTH.js.map → hf_buckets-FTJITQ3P.js.map} +0 -0
  424. /package/dist/{hf_buckets-BK7NGJWS.js.map → hf_datasets-6GXVKQD7.js.map} +0 -0
  425. /package/dist/{hf_datasets-UQ5QGM4L.js.map → hf_models-PJPGZAC5.js.map} +0 -0
  426. /package/dist/{hf_models-75LFCQCS.js.map → hf_spaces-LFNFOLBF.js.map} +0 -0
  427. /package/dist/{hf_spaces-6T2KB3UC.js.map → jaeger-GCA6MJ6E.js.map} +0 -0
  428. /package/dist/{langfuse-AMQCQWNE.js.map → lancedb-TJ5YSJY5.js.map} +0 -0
  429. /package/dist/{linear-V3TXO6CV.js.map → langfuse-RUMTUMXS.js.map} +0 -0
  430. /package/dist/{minio-IZRZY4C5.js.map → linear-BCE4KEAC.js.map} +0 -0
  431. /package/dist/{mongodb-VMKPQCPX.js.map → minio-5SO6KBTK.js.map} +0 -0
  432. /package/dist/{nextcloud-5RHQCGDO.js.map → mongodb-7C5MBESV.js.map} +0 -0
  433. /package/dist/{notion-6PPNTQFM.js.map → nextcloud-4O2LZVW2.js.map} +0 -0
  434. /package/dist/{oci-CKYBSFZJ.js.map → notion-RVKEAQ2M.js.map} +0 -0
  435. /package/dist/{postgres-WIQBVL5M.js.map → oci-OQXOIC62.js.map} +0 -0
  436. /package/dist/{qingstor-AP4IIPLY.js.map → postgres-AV45GNRS.js.map} +0 -0
  437. /package/dist/{r2-C4XGEWQY.js.map → qingstor-W277YA4K.js.map} +0 -0
  438. /package/dist/{redis-6D55Q2WB.js.map → r2-FUA4IORE.js.map} +0 -0
  439. /package/dist/{s3-XQBI2CXN.js.map → redis-LPS357NF.js.map} +0 -0
  440. /package/dist/{scaleway-SEZJVURB.js.map → s3-FPNWWIVM.js.map} +0 -0
  441. /package/dist/{seaweedfs-3XYIAFU2.js.map → scaleway-BP3732U7.js.map} +0 -0
  442. /package/dist/{slack-ZHXDJQY4.js.map → seaweedfs-MC6HIEP4.js.map} +0 -0
  443. /package/dist/{ssh-X2MO7JOV.js.map → slack-JFGW7VLN.js.map} +0 -0
  444. /package/dist/{supabase-BBM44UTM.js.map → ssh-UYPG42LM.js.map} +0 -0
  445. /package/dist/{tencent-X72USLJ7.js.map → supabase-A3KUFMDC.js.map} +0 -0
  446. /package/dist/{trello-EER5NG7L.js.map → tencent-5464UQ2X.js.map} +0 -0
  447. /package/dist/{wasabi-O4MVIUFG.js.map → trello-O2KB3FUO.js.map} +0 -0
@@ -0,0 +1,87 @@
1
+ // src/resource/s3_alias.ts
2
+ import {
3
+ normalizeFields,
4
+ redactConfigWithSchema,
5
+ secretStr,
6
+ z
7
+ } from "@struktoai/mirage-core";
8
+ var RENAME = {
9
+ access_key_id: "accessKeyId",
10
+ secret_access_key: "secretAccessKey",
11
+ session_token: "sessionToken",
12
+ aws_profile: "profile",
13
+ endpoint_url: "endpoint",
14
+ path_style: "forcePathStyle",
15
+ key_prefix: "keyPrefix",
16
+ timeout: "timeoutMs"
17
+ };
18
+ var TRANSFORM = {
19
+ timeout: (v) => typeof v === "number" ? v * 1e3 : v
20
+ };
21
+ var ALIAS_SCHEMA = z.object({
22
+ bucket: z.string(),
23
+ accessKeyId: secretStr().optional(),
24
+ secretAccessKey: secretStr().optional(),
25
+ sessionToken: secretStr().optional(),
26
+ profile: z.string().optional(),
27
+ region: z.string(),
28
+ endpoint: z.string(),
29
+ forcePathStyle: z.boolean().optional(),
30
+ keyPrefix: z.string().optional(),
31
+ timeoutMs: z.number().optional(),
32
+ proxy: secretStr().optional()
33
+ });
34
+ var optional = (config) => ({
35
+ ...config.sessionToken !== void 0 ? { sessionToken: config.sessionToken } : {},
36
+ ...config.profile !== void 0 ? { profile: config.profile } : {},
37
+ ...config.keyPrefix !== void 0 ? { keyPrefix: config.keyPrefix } : {},
38
+ ...config.timeoutMs !== void 0 ? { timeoutMs: config.timeoutMs } : {},
39
+ ...config.proxy !== void 0 ? { proxy: config.proxy } : {}
40
+ });
41
+ function makeRegionAlias(endpointFor) {
42
+ const resolvedEndpoint = (config) => config.endpoint !== void 0 && config.endpoint !== "" ? config.endpoint : endpointFor(config);
43
+ return {
44
+ resolvedEndpoint,
45
+ toS3Config: (config) => ({
46
+ bucket: config.bucket,
47
+ region: config.region,
48
+ endpoint: resolvedEndpoint(config),
49
+ ...config.accessKeyId !== void 0 ? { accessKeyId: config.accessKeyId } : {},
50
+ ...config.secretAccessKey !== void 0 ? { secretAccessKey: config.secretAccessKey } : {},
51
+ ...config.forcePathStyle !== void 0 ? { forcePathStyle: config.forcePathStyle } : {},
52
+ ...optional(config)
53
+ }),
54
+ redact: (config) => redactConfigWithSchema(ALIAS_SCHEMA, {
55
+ ...config,
56
+ endpoint: resolvedEndpoint(config)
57
+ }),
58
+ normalize: (input) => normalizeFields(input, { rename: RENAME, transform: TRANSFORM })
59
+ };
60
+ }
61
+ function makeFixedAlias() {
62
+ const region = (config) => config.region ?? "us-east-1";
63
+ const pathStyle = (config) => config.forcePathStyle ?? true;
64
+ return {
65
+ toS3Config: (config) => ({
66
+ bucket: config.bucket,
67
+ region: region(config),
68
+ endpoint: config.endpoint,
69
+ ...config.accessKeyId !== void 0 ? { accessKeyId: config.accessKeyId } : {},
70
+ ...config.secretAccessKey !== void 0 ? { secretAccessKey: config.secretAccessKey } : {},
71
+ forcePathStyle: pathStyle(config),
72
+ ...optional(config)
73
+ }),
74
+ redact: (config) => redactConfigWithSchema(ALIAS_SCHEMA, {
75
+ ...config,
76
+ region: region(config),
77
+ forcePathStyle: pathStyle(config)
78
+ }),
79
+ normalize: (input) => normalizeFields(input, { rename: RENAME, transform: TRANSFORM })
80
+ };
81
+ }
82
+
83
+ export {
84
+ makeRegionAlias,
85
+ makeFixedAlias
86
+ };
87
+ //# sourceMappingURL=chunk-7ZP6TPHX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resource/s3_alias.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 type ConfigOf,\n normalizeFields,\n redactConfigWithSchema,\n type RedactedConfig,\n secretStr,\n z,\n} from '@struktoai/mirage-core'\nimport type { S3Config } from './s3/config.ts'\n\n/**\n * Shared shape for the S3-compatible providers.\n *\n * Every alias is the same credentials plus one endpoint rule, so the\n * fields, the zod schema that drives redaction, the snake_case mapping and\n * the conversion to S3Config live here once. A provider declares only its\n * endpoint rule and whatever it genuinely adds. Mirrors Python's\n * `mirage/resource/s3_alias.py`.\n *\n * Only `bucket` and whatever the endpoint genuinely needs are required.\n * Credentials are optional because `S3Config` leaves them optional too, so\n * omitting them falls through to the usual AWS resolution order: `profile`,\n * then the `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` environment\n * variables, then the shared credentials file, then an instance role.\n * `sessionToken` and `profile` live here rather than on the one provider\n * that first needed them, so every alias accepts them.\n */\nexport interface S3AliasConfig {\n bucket: string\n accessKeyId?: string\n secretAccessKey?: string\n sessionToken?: string\n profile?: string\n region?: string\n endpoint?: string\n forcePathStyle?: boolean\n keyPrefix?: string\n timeoutMs?: number\n proxy?: string\n}\n\n// Every provider accepts the same snake_case spelling of its fields, and\n// Python states timeouts in seconds where TypeScript uses milliseconds.\nconst RENAME: Record<string, string> = {\n access_key_id: 'accessKeyId',\n secret_access_key: 'secretAccessKey',\n session_token: 'sessionToken',\n aws_profile: 'profile',\n endpoint_url: 'endpoint',\n path_style: 'forcePathStyle',\n key_prefix: 'keyPrefix',\n timeout: 'timeoutMs',\n}\n\nconst TRANSFORM = {\n timeout: (v: unknown): unknown => (typeof v === 'number' ? v * 1000 : v),\n}\n\nconst ALIAS_SCHEMA = z.object({\n bucket: z.string(),\n accessKeyId: secretStr().optional(),\n secretAccessKey: secretStr().optional(),\n sessionToken: secretStr().optional(),\n profile: z.string().optional(),\n region: z.string(),\n endpoint: z.string(),\n forcePathStyle: z.boolean().optional(),\n keyPrefix: z.string().optional(),\n timeoutMs: z.number().optional(),\n proxy: secretStr().optional(),\n})\n\n// Only the redacted twin derives: the schema is the resolved shape, with\n// the region and endpoint each provider's rule fills in.\nexport type S3AliasConfigRedacted = RedactedConfig<\n ConfigOf<typeof ALIAS_SCHEMA>,\n 'accessKeyId' | 'secretAccessKey' | 'sessionToken' | 'proxy'\n>\n\nexport interface Alias<C extends S3AliasConfig, R> {\n toS3Config: (config: C) => S3Config\n redact: (config: C) => R\n normalize: (input: Record<string, unknown>) => C\n}\n\nconst optional = (config: S3AliasConfig): Partial<S3Config> => ({\n ...(config.sessionToken !== undefined ? { sessionToken: config.sessionToken } : {}),\n ...(config.profile !== undefined ? { profile: config.profile } : {}),\n ...(config.keyPrefix !== undefined ? { keyPrefix: config.keyPrefix } : {}),\n ...(config.timeoutMs !== undefined ? { timeoutMs: config.timeoutMs } : {}),\n ...(config.proxy !== undefined ? { proxy: config.proxy } : {}),\n})\n\n/**\n * A provider whose endpoint is derived from its (required) region.\n *\n * `forcePathStyle` stays absent from the S3Config when the caller did not\n * ask for it, which is what the hand-written providers did and what the\n * S3 client treats as virtual-hosted style.\n */\nexport function makeRegionAlias<C extends S3AliasConfig & { region: string }, R>(\n endpointFor: (config: C) => string,\n): Alias<C, R> & { resolvedEndpoint: (config: C) => string } {\n const resolvedEndpoint = (config: C): string =>\n config.endpoint !== undefined && config.endpoint !== '' ? config.endpoint : endpointFor(config)\n return {\n resolvedEndpoint,\n toS3Config: (config) => ({\n bucket: config.bucket,\n region: config.region,\n endpoint: resolvedEndpoint(config),\n ...(config.accessKeyId !== undefined ? { accessKeyId: config.accessKeyId } : {}),\n ...(config.secretAccessKey !== undefined ? { secretAccessKey: config.secretAccessKey } : {}),\n ...(config.forcePathStyle !== undefined ? { forcePathStyle: config.forcePathStyle } : {}),\n ...optional(config),\n }),\n redact: (config) =>\n redactConfigWithSchema(ALIAS_SCHEMA, {\n ...config,\n endpoint: resolvedEndpoint(config),\n }) as unknown as R,\n normalize: (input) =>\n normalizeFields(input, { rename: RENAME, transform: TRANSFORM }) as unknown as C,\n }\n}\n\n/**\n * A self-hosted gateway reachable only at a caller-supplied endpoint.\n *\n * ceph, minio and seaweedfs have no public region to derive from, so the\n * region and path-style defaults are materialized rather than omitted.\n */\nexport function makeFixedAlias<C extends S3AliasConfig & { endpoint: string }, R>(): Alias<C, R> {\n const region = (config: C): string => config.region ?? 'us-east-1'\n const pathStyle = (config: C): boolean => config.forcePathStyle ?? true\n return {\n toS3Config: (config) => ({\n bucket: config.bucket,\n region: region(config),\n endpoint: config.endpoint,\n ...(config.accessKeyId !== undefined ? { accessKeyId: config.accessKeyId } : {}),\n ...(config.secretAccessKey !== undefined ? { secretAccessKey: config.secretAccessKey } : {}),\n forcePathStyle: pathStyle(config),\n ...optional(config),\n }),\n redact: (config) =>\n redactConfigWithSchema(ALIAS_SCHEMA, {\n ...config,\n region: region(config),\n forcePathStyle: pathStyle(config),\n }) as unknown as R,\n normalize: (input) =>\n normalizeFields(input, { rename: RENAME, transform: TRANSFORM }) as unknown as C,\n }\n}\n"],"mappings":";AAcA;AAAA,EAEE;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AAoCP,IAAM,SAAiC;AAAA,EACrC,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,eAAe;AAAA,EACf,aAAa;AAAA,EACb,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,SAAS;AACX;AAEA,IAAM,YAAY;AAAA,EAChB,SAAS,CAAC,MAAyB,OAAO,MAAM,WAAW,IAAI,MAAO;AACxE;AAEA,IAAM,eAAe,EAAE,OAAO;AAAA,EAC5B,QAAQ,EAAE,OAAO;AAAA,EACjB,aAAa,UAAU,EAAE,SAAS;AAAA,EAClC,iBAAiB,UAAU,EAAE,SAAS;AAAA,EACtC,cAAc,UAAU,EAAE,SAAS;AAAA,EACnC,SAAS,EAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,QAAQ,EAAE,OAAO;AAAA,EACjB,UAAU,EAAE,OAAO;AAAA,EACnB,gBAAgB,EAAE,QAAQ,EAAE,SAAS;AAAA,EACrC,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,OAAO,UAAU,EAAE,SAAS;AAC9B,CAAC;AAeD,IAAM,WAAW,CAAC,YAA8C;AAAA,EAC9D,GAAI,OAAO,iBAAiB,SAAY,EAAE,cAAc,OAAO,aAAa,IAAI,CAAC;AAAA,EACjF,GAAI,OAAO,YAAY,SAAY,EAAE,SAAS,OAAO,QAAQ,IAAI,CAAC;AAAA,EAClE,GAAI,OAAO,cAAc,SAAY,EAAE,WAAW,OAAO,UAAU,IAAI,CAAC;AAAA,EACxE,GAAI,OAAO,cAAc,SAAY,EAAE,WAAW,OAAO,UAAU,IAAI,CAAC;AAAA,EACxE,GAAI,OAAO,UAAU,SAAY,EAAE,OAAO,OAAO,MAAM,IAAI,CAAC;AAC9D;AASO,SAAS,gBACd,aAC2D;AAC3D,QAAM,mBAAmB,CAAC,WACxB,OAAO,aAAa,UAAa,OAAO,aAAa,KAAK,OAAO,WAAW,YAAY,MAAM;AAChG,SAAO;AAAA,IACL;AAAA,IACA,YAAY,CAAC,YAAY;AAAA,MACvB,QAAQ,OAAO;AAAA,MACf,QAAQ,OAAO;AAAA,MACf,UAAU,iBAAiB,MAAM;AAAA,MACjC,GAAI,OAAO,gBAAgB,SAAY,EAAE,aAAa,OAAO,YAAY,IAAI,CAAC;AAAA,MAC9E,GAAI,OAAO,oBAAoB,SAAY,EAAE,iBAAiB,OAAO,gBAAgB,IAAI,CAAC;AAAA,MAC1F,GAAI,OAAO,mBAAmB,SAAY,EAAE,gBAAgB,OAAO,eAAe,IAAI,CAAC;AAAA,MACvF,GAAG,SAAS,MAAM;AAAA,IACpB;AAAA,IACA,QAAQ,CAAC,WACP,uBAAuB,cAAc;AAAA,MACnC,GAAG;AAAA,MACH,UAAU,iBAAiB,MAAM;AAAA,IACnC,CAAC;AAAA,IACH,WAAW,CAAC,UACV,gBAAgB,OAAO,EAAE,QAAQ,QAAQ,WAAW,UAAU,CAAC;AAAA,EACnE;AACF;AAQO,SAAS,iBAAiF;AAC/F,QAAM,SAAS,CAAC,WAAsB,OAAO,UAAU;AACvD,QAAM,YAAY,CAAC,WAAuB,OAAO,kBAAkB;AACnE,SAAO;AAAA,IACL,YAAY,CAAC,YAAY;AAAA,MACvB,QAAQ,OAAO;AAAA,MACf,QAAQ,OAAO,MAAM;AAAA,MACrB,UAAU,OAAO;AAAA,MACjB,GAAI,OAAO,gBAAgB,SAAY,EAAE,aAAa,OAAO,YAAY,IAAI,CAAC;AAAA,MAC9E,GAAI,OAAO,oBAAoB,SAAY,EAAE,iBAAiB,OAAO,gBAAgB,IAAI,CAAC;AAAA,MAC1F,gBAAgB,UAAU,MAAM;AAAA,MAChC,GAAG,SAAS,MAAM;AAAA,IACpB;AAAA,IACA,QAAQ,CAAC,WACP,uBAAuB,cAAc;AAAA,MACnC,GAAG;AAAA,MACH,QAAQ,OAAO,MAAM;AAAA,MACrB,gBAAgB,UAAU,MAAM;AAAA,IAClC,CAAC;AAAA,IACH,WAAW,CAAC,UACV,gBAAgB,OAAO,EAAE,QAAQ,QAAQ,WAAW,UAAU,CAAC;AAAA,EACnE;AACF;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  redactDropboxConfig
3
- } from "./chunk-HSD24IP2.js";
3
+ } from "./chunk-DCDBIXVZ.js";
4
4
 
5
5
  // src/resource/dropbox/dropbox.ts
6
6
  import {
@@ -23,6 +23,9 @@ var dropboxResolveGlob = makeResolveGlob(dropboxReaddir);
23
23
  var DropboxResource = class extends BaseResource {
24
24
  kind = ResourceName.DROPBOX;
25
25
  cachesReads = true;
26
+ // list_folder carries an exact byte `size` for every file (0 included).
27
+ // Paper docs 409 on raw download, a loud error, never a silent empty read.
28
+ sizesAlwaysKnown = true;
26
29
  indexTtl = 86400;
27
30
  prompt = DROPBOX_PROMPT;
28
31
  config;
@@ -30,13 +33,7 @@ var DropboxResource = class extends BaseResource {
30
33
  constructor(config) {
31
34
  super();
32
35
  this.config = config;
33
- const tm = new DropboxTokenManager({
34
- clientId: config.clientId,
35
- clientSecret: config.clientSecret,
36
- refreshToken: config.refreshToken,
37
- ...config.endpoint !== void 0 ? { endpoint: config.endpoint } : {},
38
- ...config.refreshFn !== void 0 ? { refreshFn: config.refreshFn } : {}
39
- });
36
+ const tm = new DropboxTokenManager(config);
40
37
  this.accessor = new DropboxAccessor({
41
38
  tokenManager: tm,
42
39
  ...config.rootPath !== void 0 ? { rootPath: config.rootPath } : {},
@@ -46,9 +43,6 @@ var DropboxResource = class extends BaseResource {
46
43
  open() {
47
44
  return Promise.resolve();
48
45
  }
49
- close() {
50
- return Promise.resolve();
51
- }
52
46
  commands() {
53
47
  return DROPBOX_COMMANDS;
54
48
  }
@@ -90,4 +84,4 @@ var DropboxResource = class extends BaseResource {
90
84
  export {
91
85
  DropboxResource
92
86
  };
93
- //# sourceMappingURL=chunk-HWQPEBID.js.map
87
+ //# sourceMappingURL=chunk-ADEXNSYU.js.map
@@ -0,0 +1 @@
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 // list_folder carries an exact byte `size` for every file (0 included).\n // Paper docs 409 on raw download, a loud error, never a silent empty read.\n readonly sizesAlwaysKnown: 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(config)\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 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;AAAA;AAAA,EAGvB,mBAA4B;AAAA,EACnB,WAAmB;AAAA,EAC5B,SAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EAET,YAAY,QAAuB;AACjC,UAAM;AACN,SAAK,SAAS;AACd,UAAM,KAAK,IAAI,oBAAoB,MAAM;AACzC,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,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":[]}
@@ -0,0 +1,16 @@
1
+ import {
2
+ makeFixedAlias
3
+ } from "./chunk-7ZP6TPHX.js";
4
+
5
+ // src/resource/seaweedfs/config.ts
6
+ var alias = makeFixedAlias();
7
+ var seaweedfsToS3Config = alias.toS3Config;
8
+ var redactSeaweedFSConfig = alias.redact;
9
+ var normalizeSeaweedFSConfig = alias.normalize;
10
+
11
+ export {
12
+ seaweedfsToS3Config,
13
+ redactSeaweedFSConfig,
14
+ normalizeSeaweedFSConfig
15
+ };
16
+ //# sourceMappingURL=chunk-AQSYAXL4.js.map
@@ -0,0 +1 @@
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 { makeFixedAlias, type S3AliasConfig, type S3AliasConfigRedacted } from '../s3_alias.ts'\n\nexport interface SeaweedFSConfig extends S3AliasConfig {\n endpoint: string\n}\n\nexport type SeaweedFSConfigRedacted = S3AliasConfigRedacted\n\nconst alias = makeFixedAlias<SeaweedFSConfig, SeaweedFSConfigRedacted>()\n\nexport const seaweedfsToS3Config = alias.toS3Config\nexport const redactSeaweedFSConfig = alias.redact\nexport const normalizeSeaweedFSConfig = alias.normalize\n"],"mappings":";;;;;AAsBA,IAAM,QAAQ,eAAyD;AAEhE,IAAM,sBAAsB,MAAM;AAClC,IAAM,wBAAwB,MAAM;AACpC,IAAM,2BAA2B,MAAM;","names":[]}
@@ -1,10 +1,15 @@
1
1
  // src/resource/trello/config.ts
2
- import { normalizeFields, redactConfigWithSchema, secretStr, z } from "@struktoai/mirage-core";
2
+ import {
3
+ normalizeFields,
4
+ redactConfigWithSchema,
5
+ secretStr,
6
+ z
7
+ } from "@struktoai/mirage-core";
3
8
  var TrelloConfigSchema = z.object({
4
9
  apiKey: secretStr(),
5
10
  apiToken: secretStr(),
6
11
  workspaceId: z.string().optional(),
7
- boardIds: z.array(z.string()).optional(),
12
+ boardIds: z.array(z.string()).readonly().optional(),
8
13
  baseUrl: z.string().optional()
9
14
  });
10
15
  function redactTrelloConfig(config) {
@@ -26,4 +31,4 @@ export {
26
31
  redactTrelloConfig,
27
32
  normalizeTrelloConfig
28
33
  };
29
- //# sourceMappingURL=chunk-NJ42VNXG.js.map
34
+ //# sourceMappingURL=chunk-ATLXMNKD.js.map
@@ -0,0 +1 @@
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 {\n normalizeFields,\n redactConfigWithSchema,\n type ConfigOf,\n type RedactedConfig,\n secretStr,\n z,\n} from '@struktoai/mirage-core'\n\nconst TrelloConfigSchema = z.object({\n apiKey: secretStr(),\n apiToken: secretStr(),\n workspaceId: z.string().optional(),\n boardIds: z.array(z.string()).readonly().optional(),\n baseUrl: z.string().optional(),\n})\n\nexport type TrelloConfig = ConfigOf<typeof TrelloConfigSchema>\n\nexport type TrelloConfigRedacted = RedactedConfig<TrelloConfig, 'apiKey' | 'apiToken'>\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;AAAA,EACE;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,OACK;AAEP,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,EAAE,SAAS;AAAA,EAClD,SAAS,EAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAMM,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":[]}
@@ -24,6 +24,10 @@ var gmailResolveGlob = makeResolveGlob(gmailReaddir);
24
24
  var GmailResource = class extends BaseResource {
25
25
  kind = ResourceName.GMAIL;
26
26
  cachesReads = true;
27
+ // Every listed file carries an exact size: .gmail.json is rendered at
28
+ // readdir from the full message the listing already fetched, and
29
+ // attachments carry the decoded byte count.
30
+ sizesAlwaysKnown = true;
27
31
  indexTtl = 86400;
28
32
  prompt = GMAIL_PROMPT;
29
33
  writePrompt = GMAIL_WRITE_PROMPT;
@@ -38,9 +42,6 @@ var GmailResource = class extends BaseResource {
38
42
  open() {
39
43
  return Promise.resolve();
40
44
  }
41
- close() {
42
- return Promise.resolve();
43
- }
44
45
  commands() {
45
46
  return GMAIL_COMMANDS;
46
47
  }
@@ -82,4 +83,4 @@ var GmailResource = class extends BaseResource {
82
83
  export {
83
84
  GmailResource
84
85
  };
85
- //# sourceMappingURL=chunk-CB76WPUS.js.map
86
+ //# sourceMappingURL=chunk-BYCUGFRF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resource/gmail/gmail.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 GMAIL_COMMANDS,\n GMAIL_PROMPT,\n GMAIL_OPS,\n GMAIL_WRITE_PROMPT,\n GmailAccessor,\n PathSpec,\n ResourceName,\n TokenManager,\n gmailRead,\n gmailReaddir,\n makeResolveGlob,\n gmailStat,\n mountKey,\n mountPrefixOf,\n type FileStat,\n type RegisteredCommand,\n type RegisteredOp,\n type Resource,\n} from '@struktoai/mirage-core'\nimport { redactGmailConfig, type GmailConfig, type GmailConfigRedacted } from './config.ts'\n\nconst gmailResolveGlob = makeResolveGlob(gmailReaddir)\n\nexport interface GmailResourceState {\n type: string\n config: GmailConfigRedacted\n}\n\nexport class GmailResource extends BaseResource implements Resource {\n readonly kind: string = ResourceName.GMAIL\n readonly cachesReads: boolean = true\n // Every listed file carries an exact size: .gmail.json is rendered at\n // readdir from the full message the listing already fetched, and\n // attachments carry the decoded byte count.\n readonly sizesAlwaysKnown: boolean = true\n override readonly indexTtl: number = 86_400\n readonly prompt: string = GMAIL_PROMPT\n readonly writePrompt: string = GMAIL_WRITE_PROMPT\n readonly config: GmailConfig\n readonly accessor: GmailAccessor\n\n constructor(config: GmailConfig) {\n super()\n this.config = config\n const tm = new TokenManager(config)\n this.accessor = new GmailAccessor({ tokenManager: tm })\n }\n\n open(): Promise<void> {\n return Promise.resolve()\n }\n\n commands(): readonly RegisteredCommand[] {\n return GMAIL_COMMANDS\n }\n\n ops(): readonly RegisteredOp[] {\n return GMAIL_OPS\n }\n\n readFile(p: PathSpec): Promise<Uint8Array> {\n return gmailRead(this.accessor, p, this.index)\n }\n\n readdir(p: PathSpec): Promise<string[]> {\n return gmailReaddir(this.accessor, p, this.index)\n }\n\n stat(p: PathSpec): Promise<FileStat> {\n return gmailStat(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 gmailResolveGlob(this.accessor, effective, this.index)\n }\n\n getState(): Promise<GmailResourceState> {\n return Promise.resolve({\n type: this.kind,\n config: redactGmailConfig(this.config),\n })\n }\n\n loadState(_state: GmailResourceState): 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;AAAA;AAAA;AAAA,EAIvB,mBAA4B;AAAA,EACnB,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,MAAM;AAClC,SAAK,WAAW,IAAI,cAAc,EAAE,cAAc,GAAG,CAAC;AAAA,EACxD;AAAA,EAEA,OAAsB;AACpB,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,mBAAkB,KAAK,MAAM;AAAA,IACvC,CAAC;AAAA,EACH;AAAA,EAEA,UAAU,QAA2C;AACnD,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACF;","names":[]}
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  HfBucketsAccessor,
3
3
  HfResource
4
- } from "./chunk-HEDE2377.js";
4
+ } from "./chunk-DDAFNROK.js";
5
5
  import {
6
6
  assertHfRepoId,
7
7
  redactHfBucketsConfig
8
- } from "./chunk-KAWDDS27.js";
8
+ } from "./chunk-QAOVABCR.js";
9
9
 
10
10
  // src/resource/hf_buckets/hf_buckets.ts
11
11
  import { normalizeKeyPrefix, ResourceName } from "@struktoai/mirage-core";
@@ -47,4 +47,4 @@ export {
47
47
  HF_BUCKETS_PROMPT,
48
48
  HfBucketsResource
49
49
  };
50
- //# sourceMappingURL=chunk-4M73WHIE.js.map
50
+ //# sourceMappingURL=chunk-BZTVYOES.js.map
@@ -1,17 +1,29 @@
1
- // src/resource/email/config.ts
2
- import { normalizeFields, redactConfigWithSchema, secretStr, z } from "@struktoai/mirage-core";
1
+ // src/core/email/config.ts
2
+ import {
3
+ normalizeFields,
4
+ redactConfigWithSchema,
5
+ secretStr,
6
+ z
7
+ } from "@struktoai/mirage-core";
3
8
  function asString(v) {
4
9
  return typeof v === "string" ? v : "";
5
10
  }
6
11
  var EmailConfigSchema = z.object({
7
12
  imapHost: z.string(),
8
- imapPort: z.number(),
13
+ imapPort: z.number().default(993),
9
14
  smtpHost: z.string(),
10
- smtpPort: z.number(),
15
+ smtpPort: z.number().default(587),
11
16
  username: z.string(),
12
17
  password: secretStr(),
13
- useSsl: z.boolean(),
14
- maxMessages: z.number()
18
+ useSsl: z.boolean().default(true),
19
+ maxMessages: z.number().default(200),
20
+ /**
21
+ * Upstream himalaya's message.send.save-copy, whose default is true
22
+ * since pimalaya/himalaya#536.
23
+ */
24
+ saveCopy: z.boolean().default(true),
25
+ /** Its folder.alias.sent: null means ask the server for its \Sent mailbox. */
26
+ sentFolder: z.string().nullable().default(null)
15
27
  });
16
28
  function redactEmailConfig(config) {
17
29
  return redactConfigWithSchema(EmailConfigSchema, config);
@@ -25,7 +37,9 @@ function buildEmailConfig(input) {
25
37
  username: input.username,
26
38
  password: input.password,
27
39
  useSsl: input.useSsl ?? true,
28
- maxMessages: input.maxMessages ?? 200
40
+ maxMessages: input.maxMessages ?? 200,
41
+ saveCopy: input.saveCopy ?? true,
42
+ sentFolder: input.sentFolder ?? null
29
43
  };
30
44
  }
31
45
  function normalizeEmailConfig(input) {
@@ -36,7 +50,9 @@ function normalizeEmailConfig(input) {
36
50
  smtp_host: "smtpHost",
37
51
  smtp_port: "smtpPort",
38
52
  use_ssl: "useSsl",
39
- max_messages: "maxMessages"
53
+ max_messages: "maxMessages",
54
+ save_copy: "saveCopy",
55
+ sent_folder: "sentFolder"
40
56
  }
41
57
  });
42
58
  const built = {
@@ -49,12 +65,15 @@ function normalizeEmailConfig(input) {
49
65
  if (typeof norm.smtpPort === "number") built.smtpPort = norm.smtpPort;
50
66
  if (typeof norm.useSsl === "boolean") built.useSsl = norm.useSsl;
51
67
  if (typeof norm.maxMessages === "number") built.maxMessages = norm.maxMessages;
68
+ if (typeof norm.saveCopy === "boolean") built.saveCopy = norm.saveCopy;
69
+ if (typeof norm.sentFolder === "string") built.sentFolder = norm.sentFolder;
52
70
  return buildEmailConfig(built);
53
71
  }
54
72
 
55
73
  export {
74
+ EmailConfigSchema,
56
75
  redactEmailConfig,
57
76
  buildEmailConfig,
58
77
  normalizeEmailConfig
59
78
  };
60
- //# sourceMappingURL=chunk-CQCTCW4S.js.map
79
+ //# sourceMappingURL=chunk-CRC4YWXB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/email/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 {\n type ConfigOf,\n normalizeFields,\n redactConfigWithSchema,\n type RedactedConfig,\n secretStr,\n z,\n} from '@struktoai/mirage-core'\n\nfunction asString(v: unknown): string {\n return typeof v === 'string' ? v : ''\n}\n\n// Doubles as the himalaya CLI's configModel: parse applies the same\n// defaults buildEmailConfig fills in, and secretStr marks the password\n// for snapshot redaction.\nexport const EmailConfigSchema = z.object({\n imapHost: z.string(),\n imapPort: z.number().default(993),\n smtpHost: z.string(),\n smtpPort: z.number().default(587),\n username: z.string(),\n password: secretStr(),\n useSsl: z.boolean().default(true),\n maxMessages: z.number().default(200),\n /**\n * Upstream himalaya's message.send.save-copy, whose default is true\n * since pimalaya/himalaya#536.\n */\n saveCopy: z.boolean().default(true),\n /** Its folder.alias.sent: null means ask the server for its \\Sent mailbox. */\n sentFolder: z.string().nullable().default(null),\n})\n\nexport type EmailConfig = ConfigOf<typeof EmailConfigSchema>\n\nexport type EmailConfigRedacted = RedactedConfig<EmailConfig, 'password'>\n\nexport function redactEmailConfig(config: EmailConfig): EmailConfigRedacted {\n return redactConfigWithSchema(EmailConfigSchema, config) as unknown as EmailConfigRedacted\n}\n\n// What a caller writes, which is the schema before its defaults land.\nexport type EmailConfigInput = z.input<typeof EmailConfigSchema>\n\nexport function buildEmailConfig(input: EmailConfigInput): EmailConfig {\n return {\n imapHost: input.imapHost,\n imapPort: input.imapPort ?? 993,\n smtpHost: input.smtpHost,\n smtpPort: input.smtpPort ?? 587,\n username: input.username,\n password: input.password,\n useSsl: input.useSsl ?? true,\n maxMessages: input.maxMessages ?? 200,\n saveCopy: input.saveCopy ?? true,\n sentFolder: input.sentFolder ?? null,\n }\n}\n\nexport function normalizeEmailConfig(input: Record<string, unknown>): EmailConfig {\n const norm = normalizeFields(input, {\n rename: {\n imap_host: 'imapHost',\n imap_port: 'imapPort',\n smtp_host: 'smtpHost',\n smtp_port: 'smtpPort',\n use_ssl: 'useSsl',\n max_messages: 'maxMessages',\n save_copy: 'saveCopy',\n sent_folder: 'sentFolder',\n },\n })\n const built: EmailConfigInput = {\n imapHost: asString(norm.imapHost),\n smtpHost: asString(norm.smtpHost),\n username: asString(norm.username),\n password: asString(norm.password),\n }\n if (typeof norm.imapPort === 'number') built.imapPort = norm.imapPort\n if (typeof norm.smtpPort === 'number') built.smtpPort = norm.smtpPort\n if (typeof norm.useSsl === 'boolean') built.useSsl = norm.useSsl\n if (typeof norm.maxMessages === 'number') built.maxMessages = norm.maxMessages\n if (typeof norm.saveCopy === 'boolean') built.saveCopy = norm.saveCopy\n if (typeof norm.sentFolder === 'string') built.sentFolder = norm.sentFolder\n return buildEmailConfig(built)\n}\n"],"mappings":";AAcA;AAAA,EAEE;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,SAAS,GAAoB;AACpC,SAAO,OAAO,MAAM,WAAW,IAAI;AACrC;AAKO,IAAM,oBAAoB,EAAE,OAAO;AAAA,EACxC,UAAU,EAAE,OAAO;AAAA,EACnB,UAAU,EAAE,OAAO,EAAE,QAAQ,GAAG;AAAA,EAChC,UAAU,EAAE,OAAO;AAAA,EACnB,UAAU,EAAE,OAAO,EAAE,QAAQ,GAAG;AAAA,EAChC,UAAU,EAAE,OAAO;AAAA,EACnB,UAAU,UAAU;AAAA,EACpB,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAChC,aAAa,EAAE,OAAO,EAAE,QAAQ,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKnC,UAAU,EAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA;AAAA,EAElC,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,IAAI;AAChD,CAAC;AAMM,SAAS,kBAAkB,QAA0C;AAC1E,SAAO,uBAAuB,mBAAmB,MAAM;AACzD;AAKO,SAAS,iBAAiB,OAAsC;AACrE,SAAO;AAAA,IACL,UAAU,MAAM;AAAA,IAChB,UAAU,MAAM,YAAY;AAAA,IAC5B,UAAU,MAAM;AAAA,IAChB,UAAU,MAAM,YAAY;AAAA,IAC5B,UAAU,MAAM;AAAA,IAChB,UAAU,MAAM;AAAA,IAChB,QAAQ,MAAM,UAAU;AAAA,IACxB,aAAa,MAAM,eAAe;AAAA,IAClC,UAAU,MAAM,YAAY;AAAA,IAC5B,YAAY,MAAM,cAAc;AAAA,EAClC;AACF;AAEO,SAAS,qBAAqB,OAA6C;AAChF,QAAM,OAAO,gBAAgB,OAAO;AAAA,IAClC,QAAQ;AAAA,MACN,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,MACX,SAAS;AAAA,MACT,cAAc;AAAA,MACd,WAAW;AAAA,MACX,aAAa;AAAA,IACf;AAAA,EACF,CAAC;AACD,QAAM,QAA0B;AAAA,IAC9B,UAAU,SAAS,KAAK,QAAQ;AAAA,IAChC,UAAU,SAAS,KAAK,QAAQ;AAAA,IAChC,UAAU,SAAS,KAAK,QAAQ;AAAA,IAChC,UAAU,SAAS,KAAK,QAAQ;AAAA,EAClC;AACA,MAAI,OAAO,KAAK,aAAa,SAAU,OAAM,WAAW,KAAK;AAC7D,MAAI,OAAO,KAAK,aAAa,SAAU,OAAM,WAAW,KAAK;AAC7D,MAAI,OAAO,KAAK,WAAW,UAAW,OAAM,SAAS,KAAK;AAC1D,MAAI,OAAO,KAAK,gBAAgB,SAAU,OAAM,cAAc,KAAK;AACnE,MAAI,OAAO,KAAK,aAAa,UAAW,OAAM,WAAW,KAAK;AAC9D,MAAI,OAAO,KAAK,eAAe,SAAU,OAAM,aAAa,KAAK;AACjE,SAAO,iBAAiB,KAAK;AAC/B;","names":[]}
@@ -36,4 +36,4 @@ export {
36
36
  redactConfig,
37
37
  normalizeGridFSConfig
38
38
  };
39
- //# sourceMappingURL=chunk-C7TNKIK5.js.map
39
+ //# sourceMappingURL=chunk-CTGXJHO5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resource/gridfs/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 {\n normalizeFields,\n normalizeKeyPrefix,\n redactConfigWithSchema,\n type ConfigOf,\n type RedactedConfig,\n secretStr,\n z,\n} from '@struktoai/mirage-core'\n\nconst GridFSConfigSchema = z.object({\n uri: secretStr(),\n database: z.string(),\n bucket: z.string().optional(),\n keyPrefix: z.string().optional(),\n chunkSizeBytes: z.number().optional(),\n})\n\nexport type GridFSConfig = ConfigOf<typeof GridFSConfigSchema>\n\nexport type GridFSConfigRedacted = RedactedConfig<GridFSConfig, 'uri'>\n\nexport function redactConfig(config: GridFSConfig): GridFSConfigRedacted {\n return redactConfigWithSchema(GridFSConfigSchema, config) as unknown as GridFSConfigRedacted\n}\n\n/**\n * Translate Python-style snake_case keys (as used in YAML configs and the\n * Python `GridFSConfig`) to the TS-idiomatic camelCase fields, and\n * normalize the key prefix the way the accessor expects.\n */\nexport function normalizeGridFSConfig(input: Record<string, unknown>): GridFSConfig {\n const norm = normalizeFields(input, {\n rename: {\n key_prefix: 'keyPrefix',\n chunk_size_bytes: 'chunkSizeBytes',\n },\n }) as unknown as GridFSConfig\n const prefix = normalizeKeyPrefix(norm.keyPrefix)\n if (prefix !== undefined) {\n norm.keyPrefix = prefix\n } else {\n delete norm.keyPrefix\n }\n return norm\n}\n"],"mappings":";AAcA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,OACK;AAEP,IAAM,qBAAqB,EAAE,OAAO;AAAA,EAClC,KAAK,UAAU;AAAA,EACf,UAAU,EAAE,OAAO;AAAA,EACnB,QAAQ,EAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,gBAAgB,EAAE,OAAO,EAAE,SAAS;AACtC,CAAC;AAMM,SAAS,aAAa,QAA4C;AACvE,SAAO,uBAAuB,oBAAoB,MAAM;AAC1D;AAOO,SAAS,sBAAsB,OAA8C;AAClF,QAAM,OAAO,gBAAgB,OAAO;AAAA,IAClC,QAAQ;AAAA,MACN,YAAY;AAAA,MACZ,kBAAkB;AAAA,IACpB;AAAA,EACF,CAAC;AACD,QAAM,SAAS,mBAAmB,KAAK,SAAS;AAChD,MAAI,WAAW,QAAW;AACxB,SAAK,YAAY;AAAA,EACnB,OAAO;AACL,WAAO,KAAK;AAAA,EACd;AACA,SAAO;AACT;","names":[]}
@@ -1,5 +1,10 @@
1
1
  // src/resource/dropbox/config.ts
2
- import { normalizeFields, redactConfigWithSchema, secretStr, z } from "@struktoai/mirage-core";
2
+ import {
3
+ normalizeFields,
4
+ redactConfigWithSchema,
5
+ secretStr,
6
+ z
7
+ } from "@struktoai/mirage-core";
3
8
  var DropboxConfigSchema = z.object({
4
9
  clientId: z.string(),
5
10
  clientSecret: secretStr(),
@@ -27,4 +32,4 @@ export {
27
32
  redactDropboxConfig,
28
33
  normalizeDropboxConfig
29
34
  };
30
- //# sourceMappingURL=chunk-HSD24IP2.js.map
35
+ //# sourceMappingURL=chunk-DCDBIXVZ.js.map
@@ -0,0 +1 @@
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 {\n normalizeFields,\n redactConfigWithSchema,\n type ConfigOf,\n type RedactedConfig,\n secretStr,\n z,\n} 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\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\n// Only the redacted twin derives: the schema deliberately omits\n// `refreshFn`, which no snapshot can carry.\nexport type DropboxConfigRedacted = RedactedConfig<\n ConfigOf<typeof DropboxConfigSchema>,\n 'clientSecret' | 'refreshToken'\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;AAAA,EACE;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,OACK;AAYP,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;AASM,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":[]}