@struktoai/mirage-browser 0.0.3 → 0.0.4

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 (241) hide show
  1. package/dist/aliyun-YEWHEWCL.js +8 -0
  2. package/dist/backblaze-LWE2HEDK.js +8 -0
  3. package/dist/box-GTWWIB6F.js +8 -0
  4. package/dist/ceph-ATSCSVGU.js +8 -0
  5. package/dist/{chunk-YGRKFONX.js → chunk-23NO22WD.js} +1 -2
  6. package/dist/{chunk-YGRKFONX.js.map → chunk-23NO22WD.js.map} +1 -1
  7. package/dist/{chunk-OSMEXGRN.js → chunk-2R7SPBTM.js} +10 -12
  8. package/dist/chunk-2R7SPBTM.js.map +1 -0
  9. package/dist/{chunk-SOF74I3T.js → chunk-37WKCB2E.js} +7 -5
  10. package/dist/chunk-37WKCB2E.js.map +1 -0
  11. package/dist/{chunk-NLBT6TBM.js → chunk-3FZ3GHZO.js} +6 -4
  12. package/dist/chunk-3FZ3GHZO.js.map +1 -0
  13. package/dist/{chunk-KV2DM5H6.js → chunk-4YUYQTRN.js} +616 -398
  14. package/dist/chunk-4YUYQTRN.js.map +1 -0
  15. package/dist/{chunk-KNJKYCTA.js → chunk-5ZNWDS5I.js} +9 -11
  16. package/dist/chunk-5ZNWDS5I.js.map +1 -0
  17. package/dist/{chunk-PV53AX35.js → chunk-6BXVYCIC.js} +9 -11
  18. package/dist/chunk-6BXVYCIC.js.map +1 -0
  19. package/dist/{chunk-BJHHL4UT.js → chunk-6ETIHSTA.js} +9 -10
  20. package/dist/chunk-6ETIHSTA.js.map +1 -0
  21. package/dist/{chunk-XBOJZZRT.js → chunk-AAJQ6AQT.js} +10 -12
  22. package/dist/chunk-AAJQ6AQT.js.map +1 -0
  23. package/dist/{chunk-DHZMC42C.js → chunk-AUKVYHNZ.js} +6 -4
  24. package/dist/chunk-AUKVYHNZ.js.map +1 -0
  25. package/dist/{chunk-DA5EW34P.js → chunk-AUXZEXCG.js} +11 -11
  26. package/dist/chunk-AUXZEXCG.js.map +1 -0
  27. package/dist/{chunk-2AEAISO2.js → chunk-CQERQTAZ.js} +16 -13
  28. package/dist/chunk-CQERQTAZ.js.map +1 -0
  29. package/dist/{chunk-RQ273N5K.js → chunk-DC6VA36O.js} +8 -15
  30. package/dist/chunk-DC6VA36O.js.map +1 -0
  31. package/dist/{chunk-HYUESAQS.js → chunk-DGP3N4WM.js} +1 -2
  32. package/dist/{chunk-HYUESAQS.js.map → chunk-DGP3N4WM.js.map} +1 -1
  33. package/dist/{chunk-ROHDW6KT.js → chunk-DKPDXQML.js} +6 -4
  34. package/dist/chunk-DKPDXQML.js.map +1 -0
  35. package/dist/{chunk-2H4KUUFP.js → chunk-DQK6H5LW.js} +1 -2
  36. package/dist/{chunk-2H4KUUFP.js.map → chunk-DQK6H5LW.js.map} +1 -1
  37. package/dist/{chunk-KTE5PB2D.js → chunk-E77ESWWV.js} +12 -12
  38. package/dist/chunk-E77ESWWV.js.map +1 -0
  39. package/dist/{chunk-F5QWZ7GM.js → chunk-EDS5Q5B7.js} +6 -4
  40. package/dist/chunk-EDS5Q5B7.js.map +1 -0
  41. package/dist/{chunk-K2S42IR4.js → chunk-EHTYPBGX.js} +6 -4
  42. package/dist/chunk-EHTYPBGX.js.map +1 -0
  43. package/dist/{chunk-DVXOMWD4.js → chunk-GENFT46X.js} +6 -4
  44. package/dist/chunk-GENFT46X.js.map +1 -0
  45. package/dist/{chunk-J54OBIJA.js → chunk-GQVJTQXU.js} +6 -2
  46. package/dist/chunk-GQVJTQXU.js.map +1 -0
  47. package/dist/{chunk-J7PLA5S3.js → chunk-GZFNGV55.js} +6 -4
  48. package/dist/chunk-GZFNGV55.js.map +1 -0
  49. package/dist/{chunk-DFHFILVF.js → chunk-HPID7BWJ.js} +10 -12
  50. package/dist/chunk-HPID7BWJ.js.map +1 -0
  51. package/dist/{chunk-57QQAM7V.js → chunk-HTQ4GBKM.js} +6 -4
  52. package/dist/chunk-HTQ4GBKM.js.map +1 -0
  53. package/dist/{chunk-NWZNQ3RC.js → chunk-JV4T5HNB.js} +6 -4
  54. package/dist/chunk-JV4T5HNB.js.map +1 -0
  55. package/dist/{chunk-BIIG7ZAQ.js → chunk-KL2VFYUV.js} +7 -5
  56. package/dist/chunk-KL2VFYUV.js.map +1 -0
  57. package/dist/{chunk-54NTYJEO.js → chunk-LPDLPRPS.js} +1 -3
  58. package/dist/{chunk-54NTYJEO.js.map → chunk-LPDLPRPS.js.map} +1 -1
  59. package/dist/{chunk-CGZGX2GO.js → chunk-LW56WZDS.js} +10 -12
  60. package/dist/chunk-LW56WZDS.js.map +1 -0
  61. package/dist/{chunk-QLLRQNOJ.js → chunk-MB4TUUJQ.js} +6 -4
  62. package/dist/chunk-MB4TUUJQ.js.map +1 -0
  63. package/dist/{chunk-O5ONB7QT.js → chunk-MQMUOJZ2.js} +8 -4
  64. package/dist/chunk-MQMUOJZ2.js.map +1 -0
  65. package/dist/{chunk-4NLXLDMV.js → chunk-N5VRBFRT.js} +10 -12
  66. package/dist/chunk-N5VRBFRT.js.map +1 -0
  67. package/dist/{chunk-LSURHXZH.js → chunk-NVGB3B7J.js} +6 -4
  68. package/dist/chunk-NVGB3B7J.js.map +1 -0
  69. package/dist/{chunk-HXQ7HDA6.js → chunk-NYTRDAWX.js} +16 -13
  70. package/dist/chunk-NYTRDAWX.js.map +1 -0
  71. package/dist/{chunk-CNDGXKMU.js → chunk-PCC6EZIE.js} +6 -4
  72. package/dist/chunk-PCC6EZIE.js.map +1 -0
  73. package/dist/{chunk-TQ6VRUEI.js → chunk-PDZSZ5CB.js} +9 -11
  74. package/dist/chunk-PDZSZ5CB.js.map +1 -0
  75. package/dist/{chunk-XYKNXGPR.js → chunk-POJ3IQMQ.js} +13 -13
  76. package/dist/chunk-POJ3IQMQ.js.map +1 -0
  77. package/dist/{chunk-X2CCEHOR.js → chunk-PSEXJ5S5.js} +12 -11
  78. package/dist/chunk-PSEXJ5S5.js.map +1 -0
  79. package/dist/{chunk-NMZBJOFW.js → chunk-QXJP6TWI.js} +5 -4
  80. package/dist/chunk-QXJP6TWI.js.map +1 -0
  81. package/dist/{chunk-6YP3B7UK.js → chunk-TCFD6YJ5.js} +6 -4
  82. package/dist/chunk-TCFD6YJ5.js.map +1 -0
  83. package/dist/{chunk-G26SGOFR.js → chunk-VASFK7V6.js} +6 -4
  84. package/dist/chunk-VASFK7V6.js.map +1 -0
  85. package/dist/{chunk-JSAQMYPK.js → chunk-ZLHC2CZ6.js} +1 -2
  86. package/dist/{chunk-JSAQMYPK.js.map → chunk-ZLHC2CZ6.js.map} +1 -1
  87. package/dist/config-22T7HJBJ.js +9 -0
  88. package/dist/config-A56HUM6C.js +9 -0
  89. package/dist/config-DIWQZBOK.js +9 -0
  90. package/dist/config-HGJ2MGAC.js +9 -0
  91. package/dist/{config-ET26F632.js → config-MHBKYS53.js} +2 -4
  92. package/dist/config-PAHALM2T.js +9 -0
  93. package/dist/config-PWZXYJOI.js +9 -0
  94. package/dist/{config-NV5WXP64.js → config-UU27ALAA.js} +2 -4
  95. package/dist/digitalocean-SQA6MJJQ.js +8 -0
  96. package/dist/discord-ASNFJP6A.js +7 -0
  97. package/dist/dropbox-VV2WZE6I.js +8 -0
  98. package/dist/gcs-2W6DDWM7.js +8 -0
  99. package/dist/gdocs-QPM7VXXE.js +8 -0
  100. package/dist/gdrive-KT6R7EVB.js +8 -0
  101. package/dist/github-3IFZGW6I.js +7 -0
  102. package/dist/github_ci-CKKF2Y4S.js +8 -0
  103. package/dist/gmail-HLZIMKQU.js +8 -0
  104. package/dist/gsheets-HF4YPIEF.js +8 -0
  105. package/dist/gslides-EV2JJH7I.js +8 -0
  106. package/dist/index.d.ts +28 -16
  107. package/dist/index.js +82 -82
  108. package/dist/langfuse-74ZCR6QL.js +7 -0
  109. package/dist/linear-XABGTU6E.js +7 -0
  110. package/dist/minio-JPNSX2NP.js +8 -0
  111. package/dist/mongodb-YZP643ZU.js +7 -0
  112. package/dist/notion-YJOTGH7J.js +7 -0
  113. package/dist/oci-R4VYQKGJ.js +8 -0
  114. package/dist/opfs-4RWMJBCI.js +7 -0
  115. package/dist/postgres-HPOMN2AR.js +7 -0
  116. package/dist/qingstor-ZWWK2ZGV.js +8 -0
  117. package/dist/r2-PZAN2YFG.js +8 -0
  118. package/dist/{s3-GI7SDKGR.js → s3-CSFY3PLT.js} +2 -2
  119. package/dist/scaleway-BFROPDBB.js +8 -0
  120. package/dist/seaweedfs-X6THZT26.js +8 -0
  121. package/dist/slack-O7BTJ4YR.js +7 -0
  122. package/dist/supabase-PHN3MIXW.js +8 -0
  123. package/dist/tencent-JGCJEKHV.js +8 -0
  124. package/dist/trello-QUDOP3M2.js +7 -0
  125. package/dist/wasabi-5VMNAFOC.js +8 -0
  126. package/package.json +2 -3
  127. package/dist/aliyun-GMNRT7BJ.js +0 -8
  128. package/dist/backblaze-O6CLR73B.js +0 -8
  129. package/dist/box-GXWDWZRN.js +0 -8
  130. package/dist/ceph-SM7MXDAY.js +0 -8
  131. package/dist/chunk-2AEAISO2.js.map +0 -1
  132. package/dist/chunk-4NLXLDMV.js.map +0 -1
  133. package/dist/chunk-57QQAM7V.js.map +0 -1
  134. package/dist/chunk-6YP3B7UK.js.map +0 -1
  135. package/dist/chunk-BIIG7ZAQ.js.map +0 -1
  136. package/dist/chunk-BJHHL4UT.js.map +0 -1
  137. package/dist/chunk-CGZGX2GO.js.map +0 -1
  138. package/dist/chunk-CNDGXKMU.js.map +0 -1
  139. package/dist/chunk-DA5EW34P.js.map +0 -1
  140. package/dist/chunk-DFHFILVF.js.map +0 -1
  141. package/dist/chunk-DHZMC42C.js.map +0 -1
  142. package/dist/chunk-DVXOMWD4.js.map +0 -1
  143. package/dist/chunk-F5QWZ7GM.js.map +0 -1
  144. package/dist/chunk-G26SGOFR.js.map +0 -1
  145. package/dist/chunk-HXQ7HDA6.js.map +0 -1
  146. package/dist/chunk-J54OBIJA.js.map +0 -1
  147. package/dist/chunk-J7PLA5S3.js.map +0 -1
  148. package/dist/chunk-K2S42IR4.js.map +0 -1
  149. package/dist/chunk-KNJKYCTA.js.map +0 -1
  150. package/dist/chunk-KTE5PB2D.js.map +0 -1
  151. package/dist/chunk-KV2DM5H6.js.map +0 -1
  152. package/dist/chunk-LSURHXZH.js.map +0 -1
  153. package/dist/chunk-NLBT6TBM.js.map +0 -1
  154. package/dist/chunk-NMZBJOFW.js.map +0 -1
  155. package/dist/chunk-NWZNQ3RC.js.map +0 -1
  156. package/dist/chunk-O5ONB7QT.js.map +0 -1
  157. package/dist/chunk-OSMEXGRN.js.map +0 -1
  158. package/dist/chunk-PV53AX35.js.map +0 -1
  159. package/dist/chunk-QLLRQNOJ.js.map +0 -1
  160. package/dist/chunk-ROHDW6KT.js.map +0 -1
  161. package/dist/chunk-RQ273N5K.js.map +0 -1
  162. package/dist/chunk-SOF74I3T.js.map +0 -1
  163. package/dist/chunk-TQ6VRUEI.js.map +0 -1
  164. package/dist/chunk-X2CCEHOR.js.map +0 -1
  165. package/dist/chunk-XBOJZZRT.js.map +0 -1
  166. package/dist/chunk-XYKNXGPR.js.map +0 -1
  167. package/dist/config-7IZCGWKX.js +0 -11
  168. package/dist/config-AT74FARJ.js +0 -11
  169. package/dist/config-C2AYHACT.js +0 -11
  170. package/dist/config-GHJOYNM6.js +0 -11
  171. package/dist/config-L55UXIF4.js +0 -11
  172. package/dist/config-V7BLK5WP.js +0 -11
  173. package/dist/digitalocean-XFH2V2A3.js +0 -8
  174. package/dist/discord-OQMSHM3L.js +0 -7
  175. package/dist/dropbox-IAOKM7G5.js +0 -8
  176. package/dist/gcs-JYZB6CVP.js +0 -8
  177. package/dist/gdocs-PHKQGLZL.js +0 -8
  178. package/dist/gdrive-4JQLGOOP.js +0 -8
  179. package/dist/github-DU7Z4RSU.js +0 -7
  180. package/dist/github_ci-XSAJDNXC.js +0 -8
  181. package/dist/gmail-DEQP2M7T.js +0 -8
  182. package/dist/gsheets-KCIHSMOK.js +0 -8
  183. package/dist/gslides-2KBUKKM5.js +0 -8
  184. package/dist/langfuse-FNCMKFSL.js +0 -7
  185. package/dist/linear-XTFO4WKD.js +0 -7
  186. package/dist/minio-NGPBAJY3.js +0 -8
  187. package/dist/mongodb-PGOX6QSY.js +0 -7
  188. package/dist/notion-HYYNQ7KI.js +0 -7
  189. package/dist/oci-EGDBSMLM.js +0 -8
  190. package/dist/opfs-5WGXB5OG.js +0 -7
  191. package/dist/postgres-5HYED4AC.js +0 -7
  192. package/dist/qingstor-2T4Y6MEG.js +0 -8
  193. package/dist/r2-3B45S2KV.js +0 -8
  194. package/dist/scaleway-ICCXVAY6.js +0 -8
  195. package/dist/seaweedfs-MF77EC33.js +0 -8
  196. package/dist/slack-6LGQERIU.js +0 -7
  197. package/dist/supabase-XTOVMHXU.js +0 -8
  198. package/dist/tencent-FXFKSOTN.js +0 -8
  199. package/dist/trello-DZK4NEVY.js +0 -7
  200. package/dist/wasabi-KVE2B6RB.js +0 -8
  201. /package/dist/{aliyun-GMNRT7BJ.js.map → aliyun-YEWHEWCL.js.map} +0 -0
  202. /package/dist/{backblaze-O6CLR73B.js.map → backblaze-LWE2HEDK.js.map} +0 -0
  203. /package/dist/{box-GXWDWZRN.js.map → box-GTWWIB6F.js.map} +0 -0
  204. /package/dist/{ceph-SM7MXDAY.js.map → ceph-ATSCSVGU.js.map} +0 -0
  205. /package/dist/{config-7IZCGWKX.js.map → config-22T7HJBJ.js.map} +0 -0
  206. /package/dist/{config-AT74FARJ.js.map → config-A56HUM6C.js.map} +0 -0
  207. /package/dist/{config-C2AYHACT.js.map → config-DIWQZBOK.js.map} +0 -0
  208. /package/dist/{config-ET26F632.js.map → config-HGJ2MGAC.js.map} +0 -0
  209. /package/dist/{config-GHJOYNM6.js.map → config-MHBKYS53.js.map} +0 -0
  210. /package/dist/{config-L55UXIF4.js.map → config-PAHALM2T.js.map} +0 -0
  211. /package/dist/{config-NV5WXP64.js.map → config-PWZXYJOI.js.map} +0 -0
  212. /package/dist/{config-V7BLK5WP.js.map → config-UU27ALAA.js.map} +0 -0
  213. /package/dist/{digitalocean-XFH2V2A3.js.map → digitalocean-SQA6MJJQ.js.map} +0 -0
  214. /package/dist/{discord-OQMSHM3L.js.map → discord-ASNFJP6A.js.map} +0 -0
  215. /package/dist/{dropbox-IAOKM7G5.js.map → dropbox-VV2WZE6I.js.map} +0 -0
  216. /package/dist/{gcs-JYZB6CVP.js.map → gcs-2W6DDWM7.js.map} +0 -0
  217. /package/dist/{gdocs-PHKQGLZL.js.map → gdocs-QPM7VXXE.js.map} +0 -0
  218. /package/dist/{gdrive-4JQLGOOP.js.map → gdrive-KT6R7EVB.js.map} +0 -0
  219. /package/dist/{github-DU7Z4RSU.js.map → github-3IFZGW6I.js.map} +0 -0
  220. /package/dist/{github_ci-XSAJDNXC.js.map → github_ci-CKKF2Y4S.js.map} +0 -0
  221. /package/dist/{gmail-DEQP2M7T.js.map → gmail-HLZIMKQU.js.map} +0 -0
  222. /package/dist/{gsheets-KCIHSMOK.js.map → gsheets-HF4YPIEF.js.map} +0 -0
  223. /package/dist/{gslides-2KBUKKM5.js.map → gslides-EV2JJH7I.js.map} +0 -0
  224. /package/dist/{langfuse-FNCMKFSL.js.map → langfuse-74ZCR6QL.js.map} +0 -0
  225. /package/dist/{linear-XTFO4WKD.js.map → linear-XABGTU6E.js.map} +0 -0
  226. /package/dist/{minio-NGPBAJY3.js.map → minio-JPNSX2NP.js.map} +0 -0
  227. /package/dist/{mongodb-PGOX6QSY.js.map → mongodb-YZP643ZU.js.map} +0 -0
  228. /package/dist/{notion-HYYNQ7KI.js.map → notion-YJOTGH7J.js.map} +0 -0
  229. /package/dist/{oci-EGDBSMLM.js.map → oci-R4VYQKGJ.js.map} +0 -0
  230. /package/dist/{opfs-5WGXB5OG.js.map → opfs-4RWMJBCI.js.map} +0 -0
  231. /package/dist/{postgres-5HYED4AC.js.map → postgres-HPOMN2AR.js.map} +0 -0
  232. /package/dist/{qingstor-2T4Y6MEG.js.map → qingstor-ZWWK2ZGV.js.map} +0 -0
  233. /package/dist/{r2-3B45S2KV.js.map → r2-PZAN2YFG.js.map} +0 -0
  234. /package/dist/{s3-GI7SDKGR.js.map → s3-CSFY3PLT.js.map} +0 -0
  235. /package/dist/{scaleway-ICCXVAY6.js.map → scaleway-BFROPDBB.js.map} +0 -0
  236. /package/dist/{seaweedfs-MF77EC33.js.map → seaweedfs-X6THZT26.js.map} +0 -0
  237. /package/dist/{slack-6LGQERIU.js.map → slack-O7BTJ4YR.js.map} +0 -0
  238. /package/dist/{supabase-XTOVMHXU.js.map → supabase-PHN3MIXW.js.map} +0 -0
  239. /package/dist/{tencent-FXFKSOTN.js.map → tencent-JGCJEKHV.js.map} +0 -0
  240. /package/dist/{trello-DZK4NEVY.js.map → trello-QUDOP3M2.js.map} +0 -0
  241. /package/dist/{wasabi-KVE2B6RB.js.map → wasabi-5VMNAFOC.js.map} +0 -0
@@ -0,0 +1,8 @@
1
+ import {
2
+ AliyunResource
3
+ } from "./chunk-3FZ3GHZO.js";
4
+ import "./chunk-DC6VA36O.js";
5
+ export {
6
+ AliyunResource
7
+ };
8
+ //# sourceMappingURL=aliyun-YEWHEWCL.js.map
@@ -0,0 +1,8 @@
1
+ import {
2
+ BackblazeResource
3
+ } from "./chunk-NVGB3B7J.js";
4
+ import "./chunk-DC6VA36O.js";
5
+ export {
6
+ BackblazeResource
7
+ };
8
+ //# sourceMappingURL=backblaze-LWE2HEDK.js.map
@@ -0,0 +1,8 @@
1
+ import {
2
+ BoxResource
3
+ } from "./chunk-NYTRDAWX.js";
4
+ import "./chunk-GQVJTQXU.js";
5
+ export {
6
+ BoxResource
7
+ };
8
+ //# sourceMappingURL=box-GTWWIB6F.js.map
@@ -0,0 +1,8 @@
1
+ import {
2
+ CephResource
3
+ } from "./chunk-GZFNGV55.js";
4
+ import "./chunk-DC6VA36O.js";
5
+ export {
6
+ CephResource
7
+ };
8
+ //# sourceMappingURL=ceph-ATSCSVGU.js.map
@@ -19,8 +19,7 @@ function normalizeGSheetsConfig(input) {
19
19
  }
20
20
 
21
21
  export {
22
- GSheetsConfigSchema,
23
22
  redactGSheetsConfig,
24
23
  normalizeGSheetsConfig
25
24
  };
26
- //# sourceMappingURL=chunk-YGRKFONX.js.map
25
+ //# sourceMappingURL=chunk-23NO22WD.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/resource/gsheets/config.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { normalizeFields, redactConfigWithSchema, secretStr, z } from '@struktoai/mirage-core'\n\nexport interface GSheetsConfig {\n clientId: string\n clientSecret?: string\n refreshToken: string\n refreshFn?: (refreshToken: string) => Promise<{ accessToken: string; expiresIn: number }>\n}\n\nexport interface GSheetsConfigRedacted {\n clientId: string\n clientSecret?: '<REDACTED>'\n refreshToken: '<REDACTED>'\n}\n\nexport const GSheetsConfigSchema = z.object({\n clientId: z.string(),\n clientSecret: secretStr().optional(),\n refreshToken: secretStr(),\n})\n\nexport function redactGSheetsConfig(config: GSheetsConfig): GSheetsConfigRedacted {\n return redactConfigWithSchema(GSheetsConfigSchema, config) as unknown as GSheetsConfigRedacted\n}\n\nexport function normalizeGSheetsConfig(input: Record<string, unknown>): GSheetsConfig {\n return normalizeFields(input, {\n rename: {\n client_id: 'clientId',\n client_secret: 'clientSecret',\n refresh_token: 'refreshToken',\n },\n }) as unknown as GSheetsConfig\n}\n"],"mappings":";AAcA,SAAS,iBAAiB,wBAAwB,WAAW,SAAS;AAe/D,IAAM,sBAAsB,EAAE,OAAO;AAAA,EAC1C,UAAU,EAAE,OAAO;AAAA,EACnB,cAAc,UAAU,EAAE,SAAS;AAAA,EACnC,cAAc,UAAU;AAC1B,CAAC;AAEM,SAAS,oBAAoB,QAA8C;AAChF,SAAO,uBAAuB,qBAAqB,MAAM;AAC3D;AAEO,SAAS,uBAAuB,OAA+C;AACpF,SAAO,gBAAgB,OAAO;AAAA,IAC5B,QAAQ;AAAA,MACN,WAAW;AAAA,MACX,eAAe;AAAA,MACf,eAAe;AAAA,IACjB;AAAA,EACF,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../src/resource/gsheets/config.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { normalizeFields, redactConfigWithSchema, secretStr, z } from '@struktoai/mirage-core'\n\nexport interface GSheetsConfig {\n clientId: string\n clientSecret?: string\n refreshToken: string\n refreshFn?: (refreshToken: string) => Promise<{ accessToken: string; expiresIn: number }>\n}\n\nexport interface GSheetsConfigRedacted {\n clientId: string\n clientSecret?: '<REDACTED>'\n refreshToken: '<REDACTED>'\n}\n\nconst GSheetsConfigSchema = z.object({\n clientId: z.string(),\n clientSecret: secretStr().optional(),\n refreshToken: secretStr(),\n})\n\nexport function redactGSheetsConfig(config: GSheetsConfig): GSheetsConfigRedacted {\n return redactConfigWithSchema(GSheetsConfigSchema, config) as unknown as GSheetsConfigRedacted\n}\n\nexport function normalizeGSheetsConfig(input: Record<string, unknown>): GSheetsConfig {\n return normalizeFields(input, {\n rename: {\n client_id: 'clientId',\n client_secret: 'clientSecret',\n refresh_token: 'refreshToken',\n },\n }) as unknown as GSheetsConfig\n}\n"],"mappings":";AAcA,SAAS,iBAAiB,wBAAwB,WAAW,SAAS;AAetE,IAAM,sBAAsB,EAAE,OAAO;AAAA,EACnC,UAAU,EAAE,OAAO;AAAA,EACnB,cAAc,UAAU,EAAE,SAAS;AAAA,EACnC,cAAc,UAAU;AAC1B,CAAC;AAEM,SAAS,oBAAoB,QAA8C;AAChF,SAAO,uBAAuB,qBAAqB,MAAM;AAC3D;AAEO,SAAS,uBAAuB,OAA+C;AACpF,SAAO,gBAAgB,OAAO;AAAA,IAC5B,QAAQ;AAAA,MACN,WAAW;AAAA,MACX,eAAe;AAAA,MACf,eAAe;AAAA,IACjB;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  redactGSlidesConfig
3
- } from "./chunk-JSAQMYPK.js";
3
+ } from "./chunk-ZLHC2CZ6.js";
4
4
 
5
5
  // src/resource/gslides/gslides.ts
6
+ import { mountKey, mountPrefixOf } from "@struktoai/mirage-core";
6
7
  import {
7
8
  GSLIDES_COMMANDS,
8
9
  GSLIDES_PROMPT,
9
- GSLIDES_VFS_OPS,
10
+ GSLIDES_OPS,
10
11
  GSLIDES_WRITE_PROMPT,
11
12
  GSlidesAccessor,
12
13
  PathSpec,
@@ -15,9 +16,10 @@ import {
15
16
  TokenManager,
16
17
  gslidesRead,
17
18
  gslidesReaddir,
18
- gslidesResolveGlob,
19
+ makeResolveGlob,
19
20
  gslidesStat
20
21
  } from "@struktoai/mirage-core";
22
+ var gslidesResolveGlob = makeResolveGlob(gslidesReaddir);
21
23
  var GSlidesResource = class {
22
24
  kind = ResourceName.GSLIDES;
23
25
  cachesReads = true;
@@ -48,7 +50,7 @@ var GSlidesResource = class {
48
50
  return GSLIDES_COMMANDS;
49
51
  }
50
52
  ops() {
51
- return GSLIDES_VFS_OPS;
53
+ return GSLIDES_OPS;
52
54
  }
53
55
  readFile(p) {
54
56
  return gslidesRead(this.accessor, p, this.index);
@@ -59,18 +61,14 @@ var GSlidesResource = class {
59
61
  stat(p) {
60
62
  return gslidesStat(this.accessor, p, this.index);
61
63
  }
62
- async fingerprint(p) {
63
- const lookup = await this.index.get(p.original);
64
- return lookup.entry?.remoteTime ?? null;
65
- }
66
64
  glob(paths, prefix = "") {
67
65
  const effective = prefix !== "" ? paths.map(
68
- (p) => p.prefix !== "" ? p : new PathSpec({
69
- original: p.original,
66
+ (p) => mountPrefixOf(p.virtual, p.resourcePath) !== "" ? p : new PathSpec({
67
+ virtual: p.virtual,
70
68
  directory: p.directory,
71
69
  ...p.pattern !== null ? { pattern: p.pattern } : {},
72
70
  resolved: p.resolved,
73
- prefix
71
+ resourcePath: mountKey(p.virtual, prefix)
74
72
  })
75
73
  ) : paths;
76
74
  return gslidesResolveGlob(this.accessor, effective, this.index);
@@ -89,4 +87,4 @@ var GSlidesResource = class {
89
87
  export {
90
88
  GSlidesResource
91
89
  };
92
- //# sourceMappingURL=chunk-OSMEXGRN.js.map
90
+ //# sourceMappingURL=chunk-2R7SPBTM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resource/gslides/gslides.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 { mountKey, mountPrefixOf } from '@struktoai/mirage-core'\nimport {\n type FileStat,\n GSLIDES_COMMANDS,\n GSLIDES_PROMPT,\n GSLIDES_OPS,\n GSLIDES_WRITE_PROMPT,\n GSlidesAccessor,\n type IndexCacheStore,\n PathSpec,\n RAMIndexCacheStore,\n type RegisteredCommand,\n type RegisteredOp,\n type Resource,\n ResourceName,\n TokenManager,\n gslidesRead,\n gslidesReaddir,\n makeResolveGlob,\n gslidesStat,\n} from '@struktoai/mirage-core'\nimport { redactGSlidesConfig, type GSlidesConfig, type GSlidesConfigRedacted } from './config.ts'\n\nconst gslidesResolveGlob = makeResolveGlob(gslidesReaddir)\n\nexport interface GSlidesResourceState {\n type: string\n config: GSlidesConfigRedacted\n}\n\nexport class GSlidesResource implements Resource {\n readonly kind: string = ResourceName.GSLIDES\n readonly cachesReads: boolean = true\n readonly indexTtl: number = 86_400\n readonly prompt: string = GSLIDES_PROMPT\n readonly writePrompt: string = GSLIDES_WRITE_PROMPT\n readonly config: GSlidesConfig\n readonly accessor: GSlidesAccessor\n readonly index: IndexCacheStore\n\n constructor(config: GSlidesConfig) {\n this.config = config\n const tm = new TokenManager({\n clientId: config.clientId,\n ...(config.clientSecret !== undefined ? { clientSecret: config.clientSecret } : {}),\n refreshToken: config.refreshToken,\n ...(config.refreshFn !== undefined ? { refreshFn: config.refreshFn } : {}),\n })\n this.accessor = new GSlidesAccessor({ tokenManager: tm })\n this.index = new RAMIndexCacheStore({ ttl: 86_400 })\n }\n\n open(): Promise<void> {\n return Promise.resolve()\n }\n\n close(): Promise<void> {\n return Promise.resolve()\n }\n\n commands(): readonly RegisteredCommand[] {\n return GSLIDES_COMMANDS\n }\n\n ops(): readonly RegisteredOp[] {\n return GSLIDES_OPS\n }\n\n readFile(p: PathSpec): Promise<Uint8Array> {\n return gslidesRead(this.accessor, p, this.index)\n }\n\n readdir(p: PathSpec): Promise<string[]> {\n return gslidesReaddir(this.accessor, p, this.index)\n }\n\n stat(p: PathSpec): Promise<FileStat> {\n return gslidesStat(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 gslidesResolveGlob(this.accessor, effective, this.index)\n }\n\n getState(): Promise<GSlidesResourceState> {\n return Promise.resolve({\n type: this.kind,\n config: redactGSlidesConfig(this.config),\n })\n }\n\n loadState(_state: GSlidesResourceState): Promise<void> {\n return Promise.resolve()\n }\n}\n"],"mappings":";;;;;AAcA,SAAS,UAAU,qBAAqB;AACxC;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,IAAM,qBAAqB,gBAAgB,cAAc;AAOlD,IAAM,kBAAN,MAA0C;AAAA,EACtC,OAAe,aAAa;AAAA,EAC5B,cAAuB;AAAA,EACvB,WAAmB;AAAA,EACnB,SAAiB;AAAA,EACjB,cAAsB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,QAAuB;AACjC,SAAK,SAAS;AACd,UAAM,KAAK,IAAI,aAAa;AAAA,MAC1B,UAAU,OAAO;AAAA,MACjB,GAAI,OAAO,iBAAiB,SAAY,EAAE,cAAc,OAAO,aAAa,IAAI,CAAC;AAAA,MACjF,cAAc,OAAO;AAAA,MACrB,GAAI,OAAO,cAAc,SAAY,EAAE,WAAW,OAAO,UAAU,IAAI,CAAC;AAAA,IAC1E,CAAC;AACD,SAAK,WAAW,IAAI,gBAAgB,EAAE,cAAc,GAAG,CAAC;AACxD,SAAK,QAAQ,IAAI,mBAAmB,EAAE,KAAK,MAAO,CAAC;AAAA,EACrD;AAAA,EAEA,OAAsB;AACpB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,QAAuB;AACrB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,WAAyC;AACvC,WAAO;AAAA,EACT;AAAA,EAEA,MAA+B;AAC7B,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,GAAkC;AACzC,WAAO,YAAY,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EACjD;AAAA,EAEA,QAAQ,GAAgC;AACtC,WAAO,eAAe,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EACpD;AAAA,EAEA,KAAK,GAAgC;AACnC,WAAO,YAAY,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EACjD;AAAA,EAEA,KAAK,OAA4B,SAAS,IAAyB;AACjE,UAAM,YACJ,WAAW,KACP,MAAM;AAAA,MAAI,CAAC,MACT,cAAc,EAAE,SAAS,EAAE,YAAY,MAAM,KACzC,IACA,IAAI,SAAS;AAAA,QACX,SAAS,EAAE;AAAA,QACX,WAAW,EAAE;AAAA,QACb,GAAI,EAAE,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC;AAAA,QACnD,UAAU,EAAE;AAAA,QACZ,cAAc,SAAS,EAAE,SAAS,MAAM;AAAA,MAC1C,CAAC;AAAA,IACP,IACA;AACN,WAAO,mBAAmB,KAAK,UAAU,WAAW,KAAK,KAAK;AAAA,EAChE;AAAA,EAEA,WAA0C;AACxC,WAAO,QAAQ,QAAQ;AAAA,MACrB,MAAM,KAAK;AAAA,MACX,QAAQ,oBAAoB,KAAK,MAAM;AAAA,IACzC,CAAC;AAAA,EACH;AAAA,EAEA,UAAU,QAA6C;AACrD,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACF;","names":[]}
@@ -1,4 +1,5 @@
1
1
  // src/resource/postgres/postgres.ts
2
+ import { mountKey, mountPrefixOf } from "@struktoai/mirage-core";
2
3
  import {
3
4
  PathSpec,
4
5
  POSTGRES_COMMANDS,
@@ -11,7 +12,7 @@ import {
11
12
  RAMIndexCacheStore,
12
13
  ResourceName,
13
14
  resolvePostgresConfig,
14
- resolvePostgresGlob
15
+ makeResolveGlob
15
16
  } from "@struktoai/mirage-core";
16
17
 
17
18
  // src/resource/postgres/neon_driver.ts
@@ -34,6 +35,7 @@ var NeonPgDriver = class {
34
35
  };
35
36
 
36
37
  // src/resource/postgres/postgres.ts
38
+ var resolvePostgresGlob = makeResolveGlob(postgresReaddir);
37
39
  var PostgresResource = class {
38
40
  kind = ResourceName.POSTGRES;
39
41
  cachesReads = false;
@@ -74,12 +76,12 @@ var PostgresResource = class {
74
76
  }
75
77
  glob(paths, prefix = "") {
76
78
  const effective = prefix !== "" ? paths.map(
77
- (p) => p.prefix !== "" ? p : new PathSpec({
78
- original: p.original,
79
+ (p) => mountPrefixOf(p.virtual, p.resourcePath) !== "" ? p : new PathSpec({
80
+ virtual: p.virtual,
79
81
  directory: p.directory,
80
82
  ...p.pattern !== null ? { pattern: p.pattern } : {},
81
83
  resolved: p.resolved,
82
- prefix
84
+ resourcePath: mountKey(p.virtual, prefix)
83
85
  })
84
86
  ) : paths;
85
87
  return resolvePostgresGlob(this.accessor, effective, this.index);
@@ -90,4 +92,4 @@ export {
90
92
  NeonPgDriver,
91
93
  PostgresResource
92
94
  };
93
- //# sourceMappingURL=chunk-SOF74I3T.js.map
95
+ //# sourceMappingURL=chunk-37WKCB2E.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resource/postgres/postgres.ts","../src/resource/postgres/neon_driver.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 { mountKey, mountPrefixOf } from '@struktoai/mirage-core'\nimport {\n type FileStat,\n type IndexCacheStore,\n PathSpec,\n type PgDriver,\n POSTGRES_COMMANDS,\n POSTGRES_OPS,\n POSTGRES_PROMPT,\n PostgresAccessor,\n type PostgresConfig,\n type PostgresConfigResolved,\n postgresRead,\n postgresReaddir,\n postgresStat,\n RAMIndexCacheStore,\n type RegisteredCommand,\n type RegisteredOp,\n type Resource,\n ResourceName,\n resolvePostgresConfig,\n makeResolveGlob,\n} from '@struktoai/mirage-core'\nimport { NeonPgDriver } from './neon_driver.ts'\n\nconst resolvePostgresGlob = makeResolveGlob(postgresReaddir)\n\nexport interface PostgresResourceOptions {\n config: PostgresConfig\n prefix?: string\n driver?: PgDriver\n}\n\nexport class PostgresResource implements Resource {\n readonly kind: string = ResourceName.POSTGRES\n readonly cachesReads: boolean = false\n readonly indexTtl: number = 0\n readonly prompt: string\n readonly config: PostgresConfigResolved\n readonly driver: PgDriver\n readonly accessor: PostgresAccessor\n readonly index: IndexCacheStore\n\n constructor(options: PostgresResourceOptions | PostgresConfig) {\n const { config, prefix, driver } =\n 'config' in options ? options : { config: options, prefix: undefined, driver: undefined }\n this.config = resolvePostgresConfig(config)\n this.driver = driver ?? new NeonPgDriver(this.config.dsn)\n this.accessor = new PostgresAccessor(this.driver, this.config)\n this.index = new RAMIndexCacheStore({ ttl: this.indexTtl })\n this.prompt = POSTGRES_PROMPT.replace('{prefix}', prefix ?? '')\n }\n\n open(): Promise<void> {\n return Promise.resolve()\n }\n\n async close(): Promise<void> {\n await this.driver.close()\n }\n\n ops(): readonly RegisteredOp[] {\n return POSTGRES_OPS\n }\n\n commands(): readonly RegisteredCommand[] {\n return POSTGRES_COMMANDS\n }\n\n readFile(p: PathSpec): Promise<Uint8Array> {\n return postgresRead(this.accessor, p, this.index)\n }\n\n readdir(p: PathSpec): Promise<string[]> {\n return postgresReaddir(this.accessor, p, this.index)\n }\n\n stat(p: PathSpec): Promise<FileStat> {\n return postgresStat(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 resolvePostgresGlob(this.accessor, effective, this.index)\n }\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { neon, type NeonQueryFunction } from '@neondatabase/serverless'\nimport type { PgDriver, PgQueryResult } from '@struktoai/mirage-core'\n\ninterface FullResultsRow<R> {\n rows: R[]\n rowCount: number | null\n}\n\nexport class NeonPgDriver implements PgDriver {\n private readonly sql: NeonQueryFunction<false, true>\n\n constructor(dsn: string) {\n this.sql = neon(dsn, { fullResults: true })\n }\n\n async query<R = Record<string, unknown>>(\n text: string,\n params?: readonly unknown[],\n ): Promise<PgQueryResult<R>> {\n const result = (await this.sql.query(\n text,\n params as unknown[] | undefined,\n )) as unknown as FullResultsRow<R>\n return { rows: result.rows, rowCount: result.rowCount ?? result.rows.length }\n }\n\n close(): Promise<void> {\n return Promise.resolve()\n }\n}\n"],"mappings":";AAcA,SAAS,UAAU,qBAAqB;AACxC;AAAA,EAGE;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AAAA,OACK;;;ACtBP,SAAS,YAAoC;AAQtC,IAAM,eAAN,MAAuC;AAAA,EAC3B;AAAA,EAEjB,YAAY,KAAa;AACvB,SAAK,MAAM,KAAK,KAAK,EAAE,aAAa,KAAK,CAAC;AAAA,EAC5C;AAAA,EAEA,MAAM,MACJ,MACA,QAC2B;AAC3B,UAAM,SAAU,MAAM,KAAK,IAAI;AAAA,MAC7B;AAAA,MACA;AAAA,IACF;AACA,WAAO,EAAE,MAAM,OAAO,MAAM,UAAU,OAAO,YAAY,OAAO,KAAK,OAAO;AAAA,EAC9E;AAAA,EAEA,QAAuB;AACrB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACF;;;ADJA,IAAM,sBAAsB,gBAAgB,eAAe;AAQpD,IAAM,mBAAN,MAA2C;AAAA,EACvC,OAAe,aAAa;AAAA,EAC5B,cAAuB;AAAA,EACvB,WAAmB;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,SAAmD;AAC7D,UAAM,EAAE,QAAQ,QAAQ,OAAO,IAC7B,YAAY,UAAU,UAAU,EAAE,QAAQ,SAAS,QAAQ,QAAW,QAAQ,OAAU;AAC1F,SAAK,SAAS,sBAAsB,MAAM;AAC1C,SAAK,SAAS,UAAU,IAAI,aAAa,KAAK,OAAO,GAAG;AACxD,SAAK,WAAW,IAAI,iBAAiB,KAAK,QAAQ,KAAK,MAAM;AAC7D,SAAK,QAAQ,IAAI,mBAAmB,EAAE,KAAK,KAAK,SAAS,CAAC;AAC1D,SAAK,SAAS,gBAAgB,QAAQ,YAAY,UAAU,EAAE;AAAA,EAChE;AAAA,EAEA,OAAsB;AACpB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,MAAM,QAAuB;AAC3B,UAAM,KAAK,OAAO,MAAM;AAAA,EAC1B;AAAA,EAEA,MAA+B;AAC7B,WAAO;AAAA,EACT;AAAA,EAEA,WAAyC;AACvC,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,GAAkC;AACzC,WAAO,aAAa,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAClD;AAAA,EAEA,QAAQ,GAAgC;AACtC,WAAO,gBAAgB,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EACrD;AAAA,EAEA,KAAK,GAAgC;AACnC,WAAO,aAAa,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAClD;AAAA,EAEA,KAAK,OAA4B,SAAS,IAAyB;AACjE,UAAM,YACJ,WAAW,KACP,MAAM;AAAA,MAAI,CAAC,MACT,cAAc,EAAE,SAAS,EAAE,YAAY,MAAM,KACzC,IACA,IAAI,SAAS;AAAA,QACX,SAAS,EAAE;AAAA,QACX,WAAW,EAAE;AAAA,QACb,GAAI,EAAE,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC;AAAA,QACnD,UAAU,EAAE;AAAA,QACZ,cAAc,SAAS,EAAE,SAAS,MAAM;AAAA,MAC1C,CAAC;AAAA,IACP,IACA;AACN,WAAO,oBAAoB,KAAK,UAAU,WAAW,KAAK,KAAK;AAAA,EACjE;AACF;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  S3Resource
3
- } from "./chunk-RQ273N5K.js";
3
+ } from "./chunk-DC6VA36O.js";
4
4
 
5
5
  // src/resource/aliyun/aliyun.ts
6
6
  import {
@@ -18,7 +18,8 @@ var AliyunConfigSchema = z.object({
18
18
  ),
19
19
  region: z.string().optional(),
20
20
  endpoint: z.string().optional(),
21
- defaultContentType: z.string().optional()
21
+ defaultContentType: z.string().optional(),
22
+ keyPrefix: z.string().optional()
22
23
  });
23
24
  function resolvedAliyunEndpoint(config) {
24
25
  if (config.endpoint !== void 0 && config.endpoint !== "") return config.endpoint;
@@ -35,7 +36,8 @@ function aliyunToS3Config(config) {
35
36
  presignedUrlProvider: config.presignedUrlProvider,
36
37
  ...config.region !== void 0 ? { region: config.region } : {},
37
38
  ...endpoint !== void 0 ? { endpoint } : {},
38
- ...config.defaultContentType !== void 0 ? { defaultContentType: config.defaultContentType } : {}
39
+ ...config.defaultContentType !== void 0 ? { defaultContentType: config.defaultContentType } : {},
40
+ ...config.keyPrefix !== void 0 ? { keyPrefix: config.keyPrefix } : {}
39
41
  };
40
42
  }
41
43
  function redactAliyunConfig(config) {
@@ -86,4 +88,4 @@ export {
86
88
  ALIYUN_BROWSER_PROMPT,
87
89
  AliyunResource
88
90
  };
89
- //# sourceMappingURL=chunk-NLBT6TBM.js.map
91
+ //# sourceMappingURL=chunk-3FZ3GHZO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resource/aliyun/aliyun.ts","../src/resource/aliyun/config.ts","../src/resource/aliyun/prompt.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 remapCommandsResource,\n remapOpsResource,\n ResourceName,\n type RegisteredCommand,\n type RegisteredOp,\n} from '@struktoai/mirage-core'\nimport { S3Resource } from '../s3/s3.ts'\nimport {\n aliyunToS3Config,\n redactAliyunConfig,\n type AliyunConfig,\n type AliyunConfigRedacted,\n} from './config.ts'\nimport { ALIYUN_BROWSER_PROMPT } from './prompt.ts'\n\nexport interface AliyunResourceState {\n type: string\n config: AliyunConfigRedacted\n}\n\nexport class AliyunResource extends S3Resource {\n override readonly kind: string = ResourceName.ALIYUN\n override readonly prompt: string = ALIYUN_BROWSER_PROMPT\n readonly aliyunConfig: AliyunConfig\n private readonly aliyunOps: readonly RegisteredOp[]\n private readonly aliyunCommands: readonly RegisteredCommand[]\n\n constructor(config: AliyunConfig) {\n super(aliyunToS3Config(config))\n this.aliyunConfig = config\n this.aliyunOps = remapOpsResource(super.ops(), ResourceName.ALIYUN)\n this.aliyunCommands = remapCommandsResource(super.commands(), ResourceName.ALIYUN)\n }\n\n override ops(): readonly RegisteredOp[] {\n return this.aliyunOps\n }\n\n override commands(): readonly RegisteredCommand[] {\n return this.aliyunCommands\n }\n\n override getState(): Promise<AliyunResourceState> {\n return Promise.resolve({\n type: this.kind,\n config: redactAliyunConfig(this.aliyunConfig),\n })\n }\n\n override loadState(_state: AliyunResourceState): Promise<void> {\n return Promise.resolve()\n }\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { redactConfigWithSchema, secretSchema, z } from '@struktoai/mirage-core'\nimport type { S3BrowserPresignedUrlProvider, S3Config } from '../s3/config.ts'\n\nexport interface AliyunConfig {\n bucket: string\n presignedUrlProvider: S3BrowserPresignedUrlProvider\n region?: string\n endpoint?: string\n defaultContentType?: string\n keyPrefix?: string\n}\n\nexport interface AliyunConfigRedacted extends Omit<AliyunConfig, 'presignedUrlProvider'> {\n presignedUrlProvider: '<REDACTED>'\n}\n\nconst AliyunConfigSchema = z.object({\n bucket: z.string(),\n presignedUrlProvider: secretSchema(\n z.custom<S3BrowserPresignedUrlProvider>((value) => typeof value === 'function'),\n ),\n region: z.string().optional(),\n endpoint: z.string().optional(),\n defaultContentType: z.string().optional(),\n keyPrefix: z.string().optional(),\n})\n\nexport function resolvedAliyunEndpoint(config: AliyunConfig): string | undefined {\n if (config.endpoint !== undefined && config.endpoint !== '') return config.endpoint\n if (config.region !== undefined && config.region !== '') {\n const region = config.region\n return `https://s3.oss-${region}.aliyuncs.com`\n }\n return undefined\n}\n\nexport function aliyunToS3Config(config: AliyunConfig): S3Config {\n const endpoint = resolvedAliyunEndpoint(config)\n return {\n bucket: config.bucket,\n presignedUrlProvider: config.presignedUrlProvider,\n ...(config.region !== undefined ? { region: config.region } : {}),\n ...(endpoint !== undefined ? { endpoint } : {}),\n ...(config.defaultContentType !== undefined\n ? { defaultContentType: config.defaultContentType }\n : {}),\n ...(config.keyPrefix !== undefined ? { keyPrefix: config.keyPrefix } : {}),\n }\n}\n\nexport function redactAliyunConfig(config: AliyunConfig): AliyunConfigRedacted {\n return redactConfigWithSchema(AliyunConfigSchema, config) as unknown as AliyunConfigRedacted\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nexport const ALIYUN_BROWSER_PROMPT = `{prefix}\n Remote Alibaba Cloud OSS bucket (S3-compatible) accessed via presigned URLs (browser runtime).\n Supports the full filesystem command set: ls/tree/cat/grep/find/du/cp/mv/rm/etc.\n Listing operations require the presigner to sign LIST/COPY operations in\n addition to GET/PUT/HEAD/DELETE — see S3BrowserPresignedUrlProvider docs.`\n"],"mappings":";;;;;AAcA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAGK;;;ACNP,SAAS,wBAAwB,cAAc,SAAS;AAgBxD,IAAM,qBAAqB,EAAE,OAAO;AAAA,EAClC,QAAQ,EAAE,OAAO;AAAA,EACjB,sBAAsB;AAAA,IACpB,EAAE,OAAsC,CAAC,UAAU,OAAO,UAAU,UAAU;AAAA,EAChF;AAAA,EACA,QAAQ,EAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,oBAAoB,EAAE,OAAO,EAAE,SAAS;AAAA,EACxC,WAAW,EAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAEM,SAAS,uBAAuB,QAA0C;AAC/E,MAAI,OAAO,aAAa,UAAa,OAAO,aAAa,GAAI,QAAO,OAAO;AAC3E,MAAI,OAAO,WAAW,UAAa,OAAO,WAAW,IAAI;AACvD,UAAM,SAAS,OAAO;AACtB,WAAO,kBAAkB,MAAM;AAAA,EACjC;AACA,SAAO;AACT;AAEO,SAAS,iBAAiB,QAAgC;AAC/D,QAAM,WAAW,uBAAuB,MAAM;AAC9C,SAAO;AAAA,IACL,QAAQ,OAAO;AAAA,IACf,sBAAsB,OAAO;AAAA,IAC7B,GAAI,OAAO,WAAW,SAAY,EAAE,QAAQ,OAAO,OAAO,IAAI,CAAC;AAAA,IAC/D,GAAI,aAAa,SAAY,EAAE,SAAS,IAAI,CAAC;AAAA,IAC7C,GAAI,OAAO,uBAAuB,SAC9B,EAAE,oBAAoB,OAAO,mBAAmB,IAChD,CAAC;AAAA,IACL,GAAI,OAAO,cAAc,SAAY,EAAE,WAAW,OAAO,UAAU,IAAI,CAAC;AAAA,EAC1E;AACF;AAEO,SAAS,mBAAmB,QAA4C;AAC7E,SAAO,uBAAuB,oBAAoB,MAAM;AAC1D;;;ACpDO,IAAM,wBAAwB;AAAA;AAAA;AAAA;AAAA;;;AFqB9B,IAAM,iBAAN,cAA6B,WAAW;AAAA,EAC3B,OAAe,aAAa;AAAA,EAC5B,SAAiB;AAAA,EAC1B;AAAA,EACQ;AAAA,EACA;AAAA,EAEjB,YAAY,QAAsB;AAChC,UAAM,iBAAiB,MAAM,CAAC;AAC9B,SAAK,eAAe;AACpB,SAAK,YAAY,iBAAiB,MAAM,IAAI,GAAG,aAAa,MAAM;AAClE,SAAK,iBAAiB,sBAAsB,MAAM,SAAS,GAAG,aAAa,MAAM;AAAA,EACnF;AAAA,EAES,MAA+B;AACtC,WAAO,KAAK;AAAA,EACd;AAAA,EAES,WAAyC;AAChD,WAAO,KAAK;AAAA,EACd;AAAA,EAES,WAAyC;AAChD,WAAO,QAAQ,QAAQ;AAAA,MACrB,MAAM,KAAK;AAAA,MACX,QAAQ,mBAAmB,KAAK,YAAY;AAAA,IAC9C,CAAC;AAAA,EACH;AAAA,EAES,UAAU,QAA4C;AAC7D,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACF;","names":[]}