@struktoai/mirage-browser 0.0.5 → 0.0.7-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (610) hide show
  1. package/README.md +138 -80
  2. package/dist/accessor/opfs.d.ts +10 -0
  3. package/dist/accessor/opfs.d.ts.map +1 -0
  4. package/dist/accessor/opfs.js +25 -0
  5. package/dist/accessor/opfs.js.map +1 -0
  6. package/dist/commands/builtin/opfs/index.d.ts +3 -0
  7. package/dist/commands/builtin/opfs/index.d.ts.map +1 -0
  8. package/dist/commands/builtin/opfs/index.js +20 -0
  9. package/dist/commands/builtin/opfs/index.js.map +1 -0
  10. package/dist/commands/builtin/opfs/io.d.ts +4 -0
  11. package/dist/commands/builtin/opfs/io.d.ts.map +1 -0
  12. package/dist/commands/builtin/opfs/io.js +56 -0
  13. package/dist/commands/builtin/opfs/io.js.map +1 -0
  14. package/dist/core/opfs/append.d.ts +4 -0
  15. package/dist/core/opfs/append.d.ts.map +1 -0
  16. package/dist/core/opfs/append.js +38 -0
  17. package/dist/core/opfs/append.js.map +1 -0
  18. package/dist/core/opfs/constants.d.ts +3 -0
  19. package/dist/core/opfs/constants.d.ts.map +1 -0
  20. package/dist/core/opfs/constants.js +16 -0
  21. package/dist/core/opfs/constants.js.map +1 -0
  22. package/dist/core/opfs/copy.d.ts +4 -0
  23. package/dist/core/opfs/copy.d.ts.map +1 -0
  24. package/dist/core/opfs/copy.js +40 -0
  25. package/dist/core/opfs/copy.js.map +1 -0
  26. package/dist/core/opfs/create.d.ts +4 -0
  27. package/dist/core/opfs/create.d.ts.map +1 -0
  28. package/dist/core/opfs/create.js +18 -0
  29. package/dist/core/opfs/create.js.map +1 -0
  30. package/dist/core/opfs/du/entries.d.ts +4 -0
  31. package/dist/core/opfs/du/entries.d.ts.map +1 -0
  32. package/dist/core/opfs/du/entries.js +56 -0
  33. package/dist/core/opfs/du/entries.js.map +1 -0
  34. package/dist/core/opfs/du/index.d.ts +3 -0
  35. package/dist/core/opfs/du/index.d.ts.map +1 -0
  36. package/dist/core/opfs/du/index.js +16 -0
  37. package/dist/core/opfs/du/index.js.map +1 -0
  38. package/dist/core/opfs/du/size.d.ts +4 -0
  39. package/dist/core/opfs/du/size.d.ts.map +1 -0
  40. package/dist/core/opfs/du/size.js +18 -0
  41. package/dist/core/opfs/du/size.js.map +1 -0
  42. package/dist/core/opfs/du/walk.d.ts +3 -0
  43. package/dist/core/opfs/du/walk.d.ts.map +1 -0
  44. package/dist/core/opfs/du/walk.js +98 -0
  45. package/dist/core/opfs/du/walk.js.map +1 -0
  46. package/dist/core/opfs/entry.d.ts +11 -0
  47. package/dist/core/opfs/entry.d.ts.map +1 -0
  48. package/dist/core/opfs/entry.js +42 -0
  49. package/dist/core/opfs/entry.js.map +1 -0
  50. package/dist/core/opfs/exists.d.ts +4 -0
  51. package/dist/core/opfs/exists.d.ts.map +1 -0
  52. package/dist/core/opfs/exists.js +64 -0
  53. package/dist/core/opfs/exists.js.map +1 -0
  54. package/dist/core/opfs/find.d.ts +21 -0
  55. package/dist/core/opfs/find.d.ts.map +1 -0
  56. package/dist/core/opfs/find.js +154 -0
  57. package/dist/core/opfs/find.js.map +1 -0
  58. package/dist/core/opfs/mkdir.d.ts +4 -0
  59. package/dist/core/opfs/mkdir.d.ts.map +1 -0
  60. package/dist/core/opfs/mkdir.js +64 -0
  61. package/dist/core/opfs/mkdir.js.map +1 -0
  62. package/dist/core/opfs/read.d.ts +22 -0
  63. package/dist/core/opfs/read.d.ts.map +1 -0
  64. package/dist/core/opfs/read.js +57 -0
  65. package/dist/core/opfs/read.js.map +1 -0
  66. package/dist/core/opfs/readdir.d.ts +4 -0
  67. package/dist/core/opfs/readdir.d.ts.map +1 -0
  68. package/dist/core/opfs/readdir.js +50 -0
  69. package/dist/core/opfs/readdir.js.map +1 -0
  70. package/dist/core/opfs/rename.d.ts +4 -0
  71. package/dist/core/opfs/rename.d.ts.map +1 -0
  72. package/dist/core/opfs/rename.js +97 -0
  73. package/dist/core/opfs/rename.js.map +1 -0
  74. package/dist/core/opfs/rm.d.ts +4 -0
  75. package/dist/core/opfs/rm.d.ts.map +1 -0
  76. package/dist/core/opfs/rm.js +40 -0
  77. package/dist/core/opfs/rm.js.map +1 -0
  78. package/dist/core/opfs/rmdir.d.ts +4 -0
  79. package/dist/core/opfs/rmdir.d.ts.map +1 -0
  80. package/dist/core/opfs/rmdir.js +48 -0
  81. package/dist/core/opfs/rmdir.js.map +1 -0
  82. package/dist/core/opfs/stat.d.ts +5 -0
  83. package/dist/core/opfs/stat.d.ts.map +1 -0
  84. package/dist/core/opfs/stat.js +88 -0
  85. package/dist/core/opfs/stat.js.map +1 -0
  86. package/dist/core/opfs/stream.d.ts +4 -0
  87. package/dist/core/opfs/stream.d.ts.map +1 -0
  88. package/dist/core/opfs/stream.js +44 -0
  89. package/dist/core/opfs/stream.js.map +1 -0
  90. package/dist/core/opfs/truncate.d.ts +4 -0
  91. package/dist/core/opfs/truncate.d.ts.map +1 -0
  92. package/dist/core/opfs/truncate.js +49 -0
  93. package/dist/core/opfs/truncate.js.map +1 -0
  94. package/dist/core/opfs/unlink.d.ts +4 -0
  95. package/dist/core/opfs/unlink.d.ts.map +1 -0
  96. package/dist/core/opfs/unlink.js +40 -0
  97. package/dist/core/opfs/unlink.js.map +1 -0
  98. package/dist/core/opfs/utils.d.ts +20 -0
  99. package/dist/core/opfs/utils.d.ts.map +1 -0
  100. package/dist/core/opfs/utils.js +149 -0
  101. package/dist/core/opfs/utils.js.map +1 -0
  102. package/dist/core/opfs/write.d.ts +4 -0
  103. package/dist/core/opfs/write.d.ts.map +1 -0
  104. package/dist/core/opfs/write.js +33 -0
  105. package/dist/core/opfs/write.js.map +1 -0
  106. package/dist/generated/wasm.d.ts +3 -0
  107. package/dist/generated/wasm.d.ts.map +1 -0
  108. package/dist/generated/wasm.js +4 -0
  109. package/dist/generated/wasm.js.map +1 -0
  110. package/dist/index.d.ts +121 -1246
  111. package/dist/index.d.ts.map +1 -0
  112. package/dist/index.js +132 -698
  113. package/dist/index.js.map +1 -1
  114. package/dist/ops/opfs/index.d.ts +3 -0
  115. package/dist/ops/opfs/index.d.ts.map +1 -0
  116. package/dist/ops/opfs/index.js +23 -0
  117. package/dist/ops/opfs/index.js.map +1 -0
  118. package/dist/resource/aliyun/aliyun.d.ts +8 -0
  119. package/dist/resource/aliyun/aliyun.d.ts.map +1 -0
  120. package/dist/resource/aliyun/aliyun.js +24 -0
  121. package/dist/resource/aliyun/aliyun.js.map +1 -0
  122. package/dist/resource/aliyun/config.d.ts +17 -0
  123. package/dist/resource/aliyun/config.d.ts.map +1 -0
  124. package/dist/resource/aliyun/config.js +24 -0
  125. package/dist/resource/aliyun/config.js.map +1 -0
  126. package/dist/resource/aliyun/prompt.d.ts +2 -0
  127. package/dist/resource/aliyun/prompt.d.ts.map +1 -0
  128. package/dist/resource/aliyun/prompt.js +19 -0
  129. package/dist/resource/aliyun/prompt.js.map +1 -0
  130. package/dist/resource/backblaze/backblaze.d.ts +8 -0
  131. package/dist/resource/backblaze/backblaze.d.ts.map +1 -0
  132. package/dist/resource/backblaze/backblaze.js +24 -0
  133. package/dist/resource/backblaze/backblaze.js.map +1 -0
  134. package/dist/resource/backblaze/config.d.ts +17 -0
  135. package/dist/resource/backblaze/config.d.ts.map +1 -0
  136. package/dist/resource/backblaze/config.js +24 -0
  137. package/dist/resource/backblaze/config.js.map +1 -0
  138. package/dist/resource/backblaze/prompt.d.ts +2 -0
  139. package/dist/resource/backblaze/prompt.d.ts.map +1 -0
  140. package/dist/resource/backblaze/prompt.js +19 -0
  141. package/dist/resource/backblaze/prompt.js.map +1 -0
  142. package/dist/resource/box/box.d.ts +34 -0
  143. package/dist/resource/box/box.d.ts.map +1 -0
  144. package/dist/resource/box/box.js +99 -0
  145. package/dist/resource/box/box.js.map +1 -0
  146. package/dist/resource/box/config.d.ts +41 -0
  147. package/dist/resource/box/config.d.ts.map +1 -0
  148. package/dist/resource/box/config.js +38 -0
  149. package/dist/resource/box/config.js.map +1 -0
  150. package/dist/resource/ceph/ceph.d.ts +8 -0
  151. package/dist/resource/ceph/ceph.d.ts.map +1 -0
  152. package/dist/resource/ceph/ceph.js +24 -0
  153. package/dist/resource/ceph/ceph.js.map +1 -0
  154. package/dist/resource/ceph/config.d.ts +16 -0
  155. package/dist/resource/ceph/config.d.ts.map +1 -0
  156. package/dist/resource/ceph/config.js +22 -0
  157. package/dist/resource/ceph/config.js.map +1 -0
  158. package/dist/resource/ceph/prompt.d.ts +2 -0
  159. package/dist/resource/ceph/prompt.d.ts.map +1 -0
  160. package/dist/resource/ceph/prompt.js +19 -0
  161. package/dist/resource/ceph/prompt.js.map +1 -0
  162. package/dist/resource/digitalocean/config.d.ts +17 -0
  163. package/dist/resource/digitalocean/config.d.ts.map +1 -0
  164. package/dist/resource/digitalocean/config.js +24 -0
  165. package/dist/resource/digitalocean/config.js.map +1 -0
  166. package/dist/resource/digitalocean/digitalocean.d.ts +8 -0
  167. package/dist/resource/digitalocean/digitalocean.d.ts.map +1 -0
  168. package/dist/resource/digitalocean/digitalocean.js +24 -0
  169. package/dist/resource/digitalocean/digitalocean.js.map +1 -0
  170. package/dist/resource/digitalocean/prompt.d.ts +2 -0
  171. package/dist/resource/digitalocean/prompt.d.ts.map +1 -0
  172. package/dist/resource/digitalocean/prompt.js +19 -0
  173. package/dist/resource/digitalocean/prompt.js.map +1 -0
  174. package/dist/resource/discord/config.d.ts +20 -0
  175. package/dist/resource/discord/config.d.ts.map +1 -0
  176. package/dist/resource/discord/config.js +32 -0
  177. package/dist/resource/discord/config.js.map +1 -0
  178. package/dist/resource/discord/discord.d.ts +33 -0
  179. package/dist/resource/discord/discord.d.ts.map +1 -0
  180. package/dist/resource/discord/discord.js +90 -0
  181. package/dist/resource/discord/discord.js.map +1 -0
  182. package/dist/resource/dropbox/config.d.ts +34 -0
  183. package/dist/resource/dropbox/config.d.ts.map +1 -0
  184. package/dist/resource/dropbox/config.js +31 -0
  185. package/dist/resource/dropbox/config.js.map +1 -0
  186. package/dist/resource/dropbox/dropbox.d.ts +34 -0
  187. package/dist/resource/dropbox/dropbox.d.ts.map +1 -0
  188. package/dist/resource/dropbox/dropbox.js +95 -0
  189. package/dist/resource/dropbox/dropbox.js.map +1 -0
  190. package/dist/resource/gcal/gcal.d.ts +32 -0
  191. package/dist/resource/gcal/gcal.d.ts.map +1 -0
  192. package/dist/resource/gcal/gcal.js +87 -0
  193. package/dist/resource/gcal/gcal.js.map +1 -0
  194. package/dist/resource/gcs/config.d.ts +16 -0
  195. package/dist/resource/gcs/config.d.ts.map +1 -0
  196. package/dist/resource/gcs/config.js +24 -0
  197. package/dist/resource/gcs/config.js.map +1 -0
  198. package/dist/resource/gcs/gcs.d.ts +8 -0
  199. package/dist/resource/gcs/gcs.d.ts.map +1 -0
  200. package/dist/resource/gcs/gcs.js +24 -0
  201. package/dist/resource/gcs/gcs.js.map +1 -0
  202. package/dist/resource/gcs/prompt.d.ts +2 -0
  203. package/dist/resource/gcs/prompt.d.ts.map +1 -0
  204. package/dist/resource/gcs/prompt.js +19 -0
  205. package/dist/resource/gcs/prompt.js.map +1 -0
  206. package/dist/resource/gdocs/gdocs.d.ts +32 -0
  207. package/dist/resource/gdocs/gdocs.d.ts.map +1 -0
  208. package/dist/resource/gdocs/gdocs.js +84 -0
  209. package/dist/resource/gdocs/gdocs.js.map +1 -0
  210. package/dist/resource/gdrive/gdrive.d.ts +34 -0
  211. package/dist/resource/gdrive/gdrive.d.ts.map +1 -0
  212. package/dist/resource/gdrive/gdrive.js +89 -0
  213. package/dist/resource/gdrive/gdrive.js.map +1 -0
  214. package/dist/resource/github/github.d.ts +38 -0
  215. package/dist/resource/github/github.d.ts.map +1 -0
  216. package/dist/resource/github/github.js +121 -0
  217. package/dist/resource/github/github.js.map +1 -0
  218. package/dist/resource/gmail/gmail.d.ts +33 -0
  219. package/dist/resource/gmail/gmail.d.ts.map +1 -0
  220. package/dist/resource/gmail/gmail.js +88 -0
  221. package/dist/resource/gmail/gmail.js.map +1 -0
  222. package/dist/resource/gsheets/gsheets.d.ts +32 -0
  223. package/dist/resource/gsheets/gsheets.d.ts.map +1 -0
  224. package/dist/resource/gsheets/gsheets.js +84 -0
  225. package/dist/resource/gsheets/gsheets.js.map +1 -0
  226. package/dist/resource/gslides/gslides.d.ts +32 -0
  227. package/dist/resource/gslides/gslides.d.ts.map +1 -0
  228. package/dist/resource/gslides/gslides.js +84 -0
  229. package/dist/resource/gslides/gslides.js.map +1 -0
  230. package/dist/resource/langfuse/config.d.ts +23 -0
  231. package/dist/resource/langfuse/config.d.ts.map +1 -0
  232. package/dist/resource/langfuse/config.js +36 -0
  233. package/dist/resource/langfuse/config.js.map +1 -0
  234. package/dist/resource/langfuse/langfuse.d.ts +31 -0
  235. package/dist/resource/langfuse/langfuse.d.ts.map +1 -0
  236. package/dist/resource/langfuse/langfuse.js +98 -0
  237. package/dist/resource/langfuse/langfuse.js.map +1 -0
  238. package/dist/resource/linear/linear.d.ts +33 -0
  239. package/dist/resource/linear/linear.d.ts.map +1 -0
  240. package/dist/resource/linear/linear.js +93 -0
  241. package/dist/resource/linear/linear.js.map +1 -0
  242. package/dist/resource/minio/config.d.ts +16 -0
  243. package/dist/resource/minio/config.d.ts.map +1 -0
  244. package/dist/resource/minio/config.js +22 -0
  245. package/dist/resource/minio/config.js.map +1 -0
  246. package/dist/resource/minio/minio.d.ts +8 -0
  247. package/dist/resource/minio/minio.d.ts.map +1 -0
  248. package/dist/resource/minio/minio.js +24 -0
  249. package/dist/resource/minio/minio.js.map +1 -0
  250. package/dist/resource/minio/prompt.d.ts +2 -0
  251. package/dist/resource/minio/prompt.d.ts.map +1 -0
  252. package/dist/resource/minio/prompt.js +19 -0
  253. package/dist/resource/minio/prompt.js.map +1 -0
  254. package/dist/resource/mongodb/http_driver.d.ts +27 -0
  255. package/dist/resource/mongodb/http_driver.d.ts.map +1 -0
  256. package/dist/resource/mongodb/http_driver.js +96 -0
  257. package/dist/resource/mongodb/http_driver.js.map +1 -0
  258. package/dist/resource/mongodb/mongodb.d.ts +41 -0
  259. package/dist/resource/mongodb/mongodb.d.ts.map +1 -0
  260. package/dist/resource/mongodb/mongodb.js +100 -0
  261. package/dist/resource/mongodb/mongodb.js.map +1 -0
  262. package/dist/resource/notion/config.d.ts +20 -0
  263. package/dist/resource/notion/config.d.ts.map +1 -0
  264. package/dist/resource/notion/config.js +32 -0
  265. package/dist/resource/notion/config.js.map +1 -0
  266. package/dist/resource/notion/notion.d.ts +32 -0
  267. package/dist/resource/notion/notion.d.ts.map +1 -0
  268. package/dist/resource/notion/notion.js +86 -0
  269. package/dist/resource/notion/notion.js.map +1 -0
  270. package/dist/resource/oci/config.d.ts +20 -0
  271. package/dist/resource/oci/config.d.ts.map +1 -0
  272. package/dist/resource/oci/config.js +30 -0
  273. package/dist/resource/oci/config.js.map +1 -0
  274. package/dist/resource/oci/oci.d.ts +8 -0
  275. package/dist/resource/oci/oci.d.ts.map +1 -0
  276. package/dist/resource/oci/oci.js +24 -0
  277. package/dist/resource/oci/oci.js.map +1 -0
  278. package/dist/resource/oci/prompt.d.ts +2 -0
  279. package/dist/resource/oci/prompt.d.ts.map +1 -0
  280. package/dist/resource/oci/prompt.js +19 -0
  281. package/dist/resource/oci/prompt.js.map +1 -0
  282. package/dist/resource/opfs/opfs.d.ts +57 -0
  283. package/dist/resource/opfs/opfs.d.ts.map +1 -0
  284. package/dist/resource/opfs/opfs.js +236 -0
  285. package/dist/resource/opfs/opfs.js.map +1 -0
  286. package/dist/resource/opfs/prompt.d.ts +2 -0
  287. package/dist/resource/opfs/prompt.d.ts.map +1 -0
  288. package/dist/resource/opfs/prompt.js +17 -0
  289. package/dist/resource/opfs/prompt.js.map +1 -0
  290. package/dist/resource/postgres/neon_driver.d.ts +8 -0
  291. package/dist/resource/postgres/neon_driver.d.ts.map +1 -0
  292. package/dist/resource/postgres/neon_driver.js +28 -0
  293. package/dist/resource/postgres/neon_driver.js.map +1 -0
  294. package/dist/resource/postgres/postgres.d.ts +40 -0
  295. package/dist/resource/postgres/postgres.d.ts.map +1 -0
  296. package/dist/resource/postgres/postgres.js +98 -0
  297. package/dist/resource/postgres/postgres.js.map +1 -0
  298. package/dist/resource/qingstor/config.d.ts +17 -0
  299. package/dist/resource/qingstor/config.d.ts.map +1 -0
  300. package/dist/resource/qingstor/config.js +24 -0
  301. package/dist/resource/qingstor/config.js.map +1 -0
  302. package/dist/resource/qingstor/prompt.d.ts +2 -0
  303. package/dist/resource/qingstor/prompt.d.ts.map +1 -0
  304. package/dist/resource/qingstor/prompt.js +19 -0
  305. package/dist/resource/qingstor/prompt.js.map +1 -0
  306. package/dist/resource/qingstor/qingstor.d.ts +8 -0
  307. package/dist/resource/qingstor/qingstor.d.ts.map +1 -0
  308. package/dist/resource/qingstor/qingstor.js +24 -0
  309. package/dist/resource/qingstor/qingstor.js.map +1 -0
  310. package/dist/resource/r2/config.d.ts +20 -0
  311. package/dist/resource/r2/config.d.ts.map +1 -0
  312. package/dist/resource/r2/config.js +26 -0
  313. package/dist/resource/r2/config.js.map +1 -0
  314. package/dist/resource/r2/prompt.d.ts +2 -0
  315. package/dist/resource/r2/prompt.d.ts.map +1 -0
  316. package/dist/resource/r2/prompt.js +19 -0
  317. package/dist/resource/r2/prompt.js.map +1 -0
  318. package/dist/resource/r2/r2.d.ts +8 -0
  319. package/dist/resource/r2/r2.d.ts.map +1 -0
  320. package/dist/resource/r2/r2.js +24 -0
  321. package/dist/resource/r2/r2.js.map +1 -0
  322. package/dist/resource/redis/redis.d.ts +17 -0
  323. package/dist/resource/redis/redis.d.ts.map +1 -0
  324. package/dist/resource/redis/redis.js +29 -0
  325. package/dist/resource/redis/redis.js.map +1 -0
  326. package/dist/resource/redis/store.d.ts +75 -0
  327. package/dist/resource/redis/store.d.ts.map +1 -0
  328. package/dist/resource/redis/store.js +381 -0
  329. package/dist/resource/redis/store.js.map +1 -0
  330. package/dist/resource/registry.d.ts +25 -0
  331. package/dist/resource/registry.d.ts.map +1 -0
  332. package/dist/resource/registry.js +279 -0
  333. package/dist/resource/registry.js.map +1 -0
  334. package/dist/resource/s3/config.d.ts +7 -0
  335. package/dist/resource/s3/config.d.ts.map +1 -0
  336. package/dist/resource/s3/config.js +26 -0
  337. package/dist/resource/s3/config.js.map +1 -0
  338. package/dist/resource/s3/s3.d.ts +53 -0
  339. package/dist/resource/s3/s3.d.ts.map +1 -0
  340. package/dist/resource/s3/s3.js +182 -0
  341. package/dist/resource/s3/s3.js.map +1 -0
  342. package/dist/resource/s3_alias.d.ts +113 -0
  343. package/dist/resource/s3_alias.d.ts.map +1 -0
  344. package/dist/resource/s3_alias.js +133 -0
  345. package/dist/resource/s3_alias.js.map +1 -0
  346. package/dist/resource/scaleway/config.d.ts +17 -0
  347. package/dist/resource/scaleway/config.d.ts.map +1 -0
  348. package/dist/resource/scaleway/config.js +24 -0
  349. package/dist/resource/scaleway/config.js.map +1 -0
  350. package/dist/resource/scaleway/prompt.d.ts +2 -0
  351. package/dist/resource/scaleway/prompt.d.ts.map +1 -0
  352. package/dist/resource/scaleway/prompt.js +19 -0
  353. package/dist/resource/scaleway/prompt.js.map +1 -0
  354. package/dist/resource/scaleway/scaleway.d.ts +8 -0
  355. package/dist/resource/scaleway/scaleway.d.ts.map +1 -0
  356. package/dist/resource/scaleway/scaleway.js +24 -0
  357. package/dist/resource/scaleway/scaleway.js.map +1 -0
  358. package/dist/resource/seaweedfs/config.d.ts +16 -0
  359. package/dist/resource/seaweedfs/config.d.ts.map +1 -0
  360. package/dist/resource/seaweedfs/config.js +22 -0
  361. package/dist/resource/seaweedfs/config.js.map +1 -0
  362. package/dist/resource/seaweedfs/prompt.d.ts +2 -0
  363. package/dist/resource/seaweedfs/prompt.d.ts.map +1 -0
  364. package/dist/resource/seaweedfs/prompt.js +19 -0
  365. package/dist/resource/seaweedfs/prompt.js.map +1 -0
  366. package/dist/resource/seaweedfs/seaweedfs.d.ts +8 -0
  367. package/dist/resource/seaweedfs/seaweedfs.d.ts.map +1 -0
  368. package/dist/resource/seaweedfs/seaweedfs.js +24 -0
  369. package/dist/resource/seaweedfs/seaweedfs.js.map +1 -0
  370. package/dist/resource/slack/config.d.ts +20 -0
  371. package/dist/resource/slack/config.d.ts.map +1 -0
  372. package/dist/resource/slack/config.js +32 -0
  373. package/dist/resource/slack/config.js.map +1 -0
  374. package/dist/resource/slack/slack.d.ts +33 -0
  375. package/dist/resource/slack/slack.d.ts.map +1 -0
  376. package/dist/resource/slack/slack.js +91 -0
  377. package/dist/resource/slack/slack.js.map +1 -0
  378. package/dist/resource/supabase/config.d.ts +20 -0
  379. package/dist/resource/supabase/config.d.ts.map +1 -0
  380. package/dist/resource/supabase/config.js +26 -0
  381. package/dist/resource/supabase/config.js.map +1 -0
  382. package/dist/resource/supabase/prompt.d.ts +2 -0
  383. package/dist/resource/supabase/prompt.d.ts.map +1 -0
  384. package/dist/resource/supabase/prompt.js +19 -0
  385. package/dist/resource/supabase/prompt.js.map +1 -0
  386. package/dist/resource/supabase/supabase.d.ts +8 -0
  387. package/dist/resource/supabase/supabase.d.ts.map +1 -0
  388. package/dist/resource/supabase/supabase.js +24 -0
  389. package/dist/resource/supabase/supabase.js.map +1 -0
  390. package/dist/resource/tencent/config.d.ts +17 -0
  391. package/dist/resource/tencent/config.d.ts.map +1 -0
  392. package/dist/resource/tencent/config.js +24 -0
  393. package/dist/resource/tencent/config.js.map +1 -0
  394. package/dist/resource/tencent/prompt.d.ts +2 -0
  395. package/dist/resource/tencent/prompt.d.ts.map +1 -0
  396. package/dist/resource/tencent/prompt.js +19 -0
  397. package/dist/resource/tencent/prompt.js.map +1 -0
  398. package/dist/resource/tencent/tencent.d.ts +8 -0
  399. package/dist/resource/tencent/tencent.d.ts.map +1 -0
  400. package/dist/resource/tencent/tencent.js +24 -0
  401. package/dist/resource/tencent/tencent.js.map +1 -0
  402. package/dist/resource/trello/config.d.ts +22 -0
  403. package/dist/resource/trello/config.d.ts.map +1 -0
  404. package/dist/resource/trello/config.js +35 -0
  405. package/dist/resource/trello/config.js.map +1 -0
  406. package/dist/resource/trello/trello.d.ts +32 -0
  407. package/dist/resource/trello/trello.d.ts.map +1 -0
  408. package/dist/resource/trello/trello.js +94 -0
  409. package/dist/resource/trello/trello.js.map +1 -0
  410. package/dist/resource/wasabi/config.d.ts +17 -0
  411. package/dist/resource/wasabi/config.d.ts.map +1 -0
  412. package/dist/resource/wasabi/config.js +29 -0
  413. package/dist/resource/wasabi/config.js.map +1 -0
  414. package/dist/resource/wasabi/prompt.d.ts +2 -0
  415. package/dist/resource/wasabi/prompt.d.ts.map +1 -0
  416. package/dist/resource/wasabi/prompt.js +19 -0
  417. package/dist/resource/wasabi/prompt.js.map +1 -0
  418. package/dist/resource/wasabi/wasabi.d.ts +8 -0
  419. package/dist/resource/wasabi/wasabi.d.ts.map +1 -0
  420. package/dist/resource/wasabi/wasabi.js +24 -0
  421. package/dist/resource/wasabi/wasabi.js.map +1 -0
  422. package/dist/runtime/sandbox/e2b/config.d.ts +2 -0
  423. package/dist/runtime/sandbox/e2b/config.d.ts.map +1 -0
  424. package/dist/runtime/sandbox/e2b/config.js +15 -0
  425. package/dist/runtime/sandbox/e2b/config.js.map +1 -0
  426. package/dist/runtime/sandbox/e2b/runtime.d.ts +2 -0
  427. package/dist/runtime/sandbox/e2b/runtime.d.ts.map +1 -0
  428. package/dist/runtime/sandbox/e2b/runtime.js +15 -0
  429. package/dist/runtime/sandbox/e2b/runtime.js.map +1 -0
  430. package/dist/test-utils.d.ts +37 -0
  431. package/dist/test-utils.d.ts.map +1 -0
  432. package/dist/test-utils.js +518 -0
  433. package/dist/test-utils.js.map +1 -0
  434. package/dist/workspace.d.ts +10 -0
  435. package/dist/workspace.d.ts.map +1 -0
  436. package/dist/workspace.js +62 -0
  437. package/dist/workspace.js.map +1 -0
  438. package/package.json +22 -6
  439. package/dist/aliyun-DR6KT3H6.js +0 -8
  440. package/dist/aliyun-DR6KT3H6.js.map +0 -1
  441. package/dist/backblaze-XCLZXTES.js +0 -8
  442. package/dist/backblaze-XCLZXTES.js.map +0 -1
  443. package/dist/box-XBCSU3AA.js +0 -8
  444. package/dist/box-XBCSU3AA.js.map +0 -1
  445. package/dist/ceph-F5S2NMTO.js +0 -8
  446. package/dist/ceph-F5S2NMTO.js.map +0 -1
  447. package/dist/chunk-2J35WXX5.js +0 -28
  448. package/dist/chunk-2J35WXX5.js.map +0 -1
  449. package/dist/chunk-2WNXK742.js +0 -89
  450. package/dist/chunk-2WNXK742.js.map +0 -1
  451. package/dist/chunk-2WSKXBSV.js +0 -139
  452. package/dist/chunk-2WSKXBSV.js.map +0 -1
  453. package/dist/chunk-37WKCB2E.js +0 -95
  454. package/dist/chunk-37WKCB2E.js.map +0 -1
  455. package/dist/chunk-3IYCVC7W.js +0 -96
  456. package/dist/chunk-3IYCVC7W.js.map +0 -1
  457. package/dist/chunk-46HNNKFR.js +0 -95
  458. package/dist/chunk-46HNNKFR.js.map +0 -1
  459. package/dist/chunk-4IF4TGAI.js +0 -11
  460. package/dist/chunk-4IF4TGAI.js.map +0 -1
  461. package/dist/chunk-5OZJMTYW.js +0 -113
  462. package/dist/chunk-5OZJMTYW.js.map +0 -1
  463. package/dist/chunk-5UM6EBVW.js +0 -108
  464. package/dist/chunk-5UM6EBVW.js.map +0 -1
  465. package/dist/chunk-6HRSCX2U.js +0 -98
  466. package/dist/chunk-6HRSCX2U.js.map +0 -1
  467. package/dist/chunk-7HWQAYXR.js +0 -85
  468. package/dist/chunk-7HWQAYXR.js.map +0 -1
  469. package/dist/chunk-AUZNQ7EI.js +0 -85
  470. package/dist/chunk-AUZNQ7EI.js.map +0 -1
  471. package/dist/chunk-BGA2F226.js +0 -182
  472. package/dist/chunk-BGA2F226.js.map +0 -1
  473. package/dist/chunk-BV372CUO.js +0 -90
  474. package/dist/chunk-BV372CUO.js.map +0 -1
  475. package/dist/chunk-C4THTILY.js +0 -95
  476. package/dist/chunk-C4THTILY.js.map +0 -1
  477. package/dist/chunk-D4MEOKNQ.js +0 -95
  478. package/dist/chunk-D4MEOKNQ.js.map +0 -1
  479. package/dist/chunk-D4RAMWYH.js +0 -88
  480. package/dist/chunk-D4RAMWYH.js.map +0 -1
  481. package/dist/chunk-EHIT6WCY.js +0 -95
  482. package/dist/chunk-EHIT6WCY.js.map +0 -1
  483. package/dist/chunk-EN6TZYT2.js +0 -95
  484. package/dist/chunk-EN6TZYT2.js.map +0 -1
  485. package/dist/chunk-FTDVV7EQ.js +0 -85
  486. package/dist/chunk-FTDVV7EQ.js.map +0 -1
  487. package/dist/chunk-G67Q2Z6I.js +0 -95
  488. package/dist/chunk-G67Q2Z6I.js.map +0 -1
  489. package/dist/chunk-GM2QMJAY.js +0 -85
  490. package/dist/chunk-GM2QMJAY.js.map +0 -1
  491. package/dist/chunk-HRWLHJX2.js +0 -84
  492. package/dist/chunk-HRWLHJX2.js.map +0 -1
  493. package/dist/chunk-INEXV2PN.js +0 -91
  494. package/dist/chunk-INEXV2PN.js.map +0 -1
  495. package/dist/chunk-IZMKMD3O.js +0 -11
  496. package/dist/chunk-IZMKMD3O.js.map +0 -1
  497. package/dist/chunk-JUVMJ5GI.js +0 -85
  498. package/dist/chunk-JUVMJ5GI.js.map +0 -1
  499. package/dist/chunk-KL2VFYUV.js +0 -159
  500. package/dist/chunk-KL2VFYUV.js.map +0 -1
  501. package/dist/chunk-L64GRKOD.js +0 -38
  502. package/dist/chunk-L64GRKOD.js.map +0 -1
  503. package/dist/chunk-LPDLPRPS.js +0 -11
  504. package/dist/chunk-LPDLPRPS.js.map +0 -1
  505. package/dist/chunk-M2UF2JHJ.js +0 -11
  506. package/dist/chunk-M2UF2JHJ.js.map +0 -1
  507. package/dist/chunk-NVHPJ5CV.js +0 -109
  508. package/dist/chunk-NVHPJ5CV.js.map +0 -1
  509. package/dist/chunk-OSTDTTWI.js +0 -35
  510. package/dist/chunk-OSTDTTWI.js.map +0 -1
  511. package/dist/chunk-PQCRGTSA.js +0 -85
  512. package/dist/chunk-PQCRGTSA.js.map +0 -1
  513. package/dist/chunk-QE7QNA45.js +0 -114
  514. package/dist/chunk-QE7QNA45.js.map +0 -1
  515. package/dist/chunk-QG2NUNCY.js +0 -95
  516. package/dist/chunk-QG2NUNCY.js.map +0 -1
  517. package/dist/chunk-UFHBDBZD.js +0 -1212
  518. package/dist/chunk-UFHBDBZD.js.map +0 -1
  519. package/dist/chunk-UY22T4AC.js +0 -112
  520. package/dist/chunk-UY22T4AC.js.map +0 -1
  521. package/dist/chunk-XJBC3OYX.js +0 -11
  522. package/dist/chunk-XJBC3OYX.js.map +0 -1
  523. package/dist/chunk-Y6DYUK6J.js +0 -85
  524. package/dist/chunk-Y6DYUK6J.js.map +0 -1
  525. package/dist/chunk-YOCTIHQZ.js +0 -89
  526. package/dist/chunk-YOCTIHQZ.js.map +0 -1
  527. package/dist/chunk-ZDJPUXYH.js +0 -101
  528. package/dist/chunk-ZDJPUXYH.js.map +0 -1
  529. package/dist/chunk-ZKCOSE3R.js +0 -90
  530. package/dist/chunk-ZKCOSE3R.js.map +0 -1
  531. package/dist/chunk-ZTHVEXIV.js +0 -11
  532. package/dist/chunk-ZTHVEXIV.js.map +0 -1
  533. package/dist/config-2Y6LZKLV.js +0 -9
  534. package/dist/config-2Y6LZKLV.js.map +0 -1
  535. package/dist/config-4GSOMUMF.js +0 -9
  536. package/dist/config-4GSOMUMF.js.map +0 -1
  537. package/dist/config-5YBUWFUP.js +0 -9
  538. package/dist/config-5YBUWFUP.js.map +0 -1
  539. package/dist/config-DE5OZ4I7.js +0 -9
  540. package/dist/config-DE5OZ4I7.js.map +0 -1
  541. package/dist/config-ELDOFRJW.js +0 -9
  542. package/dist/config-ELDOFRJW.js.map +0 -1
  543. package/dist/config-FPM3LAW7.js +0 -9
  544. package/dist/config-FPM3LAW7.js.map +0 -1
  545. package/dist/config-JY557MA6.js +0 -9
  546. package/dist/config-JY557MA6.js.map +0 -1
  547. package/dist/config-UU27ALAA.js +0 -9
  548. package/dist/config-UU27ALAA.js.map +0 -1
  549. package/dist/config-WRACCRPN.js +0 -9
  550. package/dist/config-WRACCRPN.js.map +0 -1
  551. package/dist/digitalocean-QDHTRS2W.js +0 -8
  552. package/dist/digitalocean-QDHTRS2W.js.map +0 -1
  553. package/dist/discord-ERUI7OAQ.js +0 -7
  554. package/dist/discord-ERUI7OAQ.js.map +0 -1
  555. package/dist/dropbox-3U6D4HLE.js +0 -8
  556. package/dist/dropbox-3U6D4HLE.js.map +0 -1
  557. package/dist/gcal-MTBSDG34.js +0 -8
  558. package/dist/gcal-MTBSDG34.js.map +0 -1
  559. package/dist/gcs-KNGRBBET.js +0 -8
  560. package/dist/gcs-KNGRBBET.js.map +0 -1
  561. package/dist/gdocs-RUIOIRKP.js +0 -8
  562. package/dist/gdocs-RUIOIRKP.js.map +0 -1
  563. package/dist/gdrive-5JB7ZKEP.js +0 -8
  564. package/dist/gdrive-5JB7ZKEP.js.map +0 -1
  565. package/dist/github-CIXBFBVO.js +0 -7
  566. package/dist/github-CIXBFBVO.js.map +0 -1
  567. package/dist/github_ci-HR6YOYAO.js +0 -8
  568. package/dist/github_ci-HR6YOYAO.js.map +0 -1
  569. package/dist/gmail-JHGWTQU5.js +0 -8
  570. package/dist/gmail-JHGWTQU5.js.map +0 -1
  571. package/dist/gsheets-N54JO2RS.js +0 -8
  572. package/dist/gsheets-N54JO2RS.js.map +0 -1
  573. package/dist/gslides-B4VMNLMB.js +0 -8
  574. package/dist/gslides-B4VMNLMB.js.map +0 -1
  575. package/dist/langfuse-HEUJGDOC.js +0 -7
  576. package/dist/langfuse-HEUJGDOC.js.map +0 -1
  577. package/dist/linear-J4QQ3CA6.js +0 -7
  578. package/dist/linear-J4QQ3CA6.js.map +0 -1
  579. package/dist/minio-BXWHJ6K5.js +0 -8
  580. package/dist/minio-BXWHJ6K5.js.map +0 -1
  581. package/dist/mongodb-YZP643ZU.js +0 -7
  582. package/dist/mongodb-YZP643ZU.js.map +0 -1
  583. package/dist/notion-I5S5SRLO.js +0 -7
  584. package/dist/notion-I5S5SRLO.js.map +0 -1
  585. package/dist/oci-XOPKH4AE.js +0 -8
  586. package/dist/oci-XOPKH4AE.js.map +0 -1
  587. package/dist/opfs-36QO72Y5.js +0 -7
  588. package/dist/opfs-36QO72Y5.js.map +0 -1
  589. package/dist/postgres-HPOMN2AR.js +0 -7
  590. package/dist/postgres-HPOMN2AR.js.map +0 -1
  591. package/dist/qingstor-JKAHLK62.js +0 -8
  592. package/dist/qingstor-JKAHLK62.js.map +0 -1
  593. package/dist/r2-L3QXQ76M.js +0 -8
  594. package/dist/r2-L3QXQ76M.js.map +0 -1
  595. package/dist/s3-LRZJPGHK.js +0 -9
  596. package/dist/s3-LRZJPGHK.js.map +0 -1
  597. package/dist/scaleway-CGNDYNKS.js +0 -8
  598. package/dist/scaleway-CGNDYNKS.js.map +0 -1
  599. package/dist/seaweedfs-BSQWCBIR.js +0 -8
  600. package/dist/seaweedfs-BSQWCBIR.js.map +0 -1
  601. package/dist/slack-62ECSENR.js +0 -7
  602. package/dist/slack-62ECSENR.js.map +0 -1
  603. package/dist/supabase-J66NXWAF.js +0 -8
  604. package/dist/supabase-J66NXWAF.js.map +0 -1
  605. package/dist/tencent-AC667LV3.js +0 -8
  606. package/dist/tencent-AC667LV3.js.map +0 -1
  607. package/dist/trello-SUPG6VDF.js +0 -7
  608. package/dist/trello-SUPG6VDF.js.map +0 -1
  609. package/dist/wasabi-5KKPW6LH.js +0 -8
  610. package/dist/wasabi-5KKPW6LH.js.map +0 -1
@@ -0,0 +1,182 @@
1
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
+ import { S3Accessor } from '@struktoai/mirage-core/accessor/s3';
15
+ import { makeResolveGlob } from '@struktoai/mirage-core/commands/builtin/generic_bind/index';
16
+ import { S3_COMMANDS } from '@struktoai/mirage-core/commands/builtin/s3/index';
17
+ import { SCOPE_ERROR as S3_SCOPE_ERROR } from '@struktoai/mirage-core/core/s3/constants';
18
+ import { copy as copyCore } from '@struktoai/mirage-core/core/s3/copy';
19
+ import { create as createCore } from '@struktoai/mirage-core/core/s3/create';
20
+ import { entries as duEntriesCore, size as duSizeCore, } from '@struktoai/mirage-core/core/s3/du/index';
21
+ import { exists as existsCore } from '@struktoai/mirage-core/core/s3/exists';
22
+ import { find as findCore } from '@struktoai/mirage-core/core/s3/find';
23
+ import { mkdir as mkdirCore } from '@struktoai/mirage-core/core/s3/mkdir';
24
+ import { read as readCore } from '@struktoai/mirage-core/core/s3/read';
25
+ import { readdir as readdirCore } from '@struktoai/mirage-core/core/s3/readdir';
26
+ import { rename as renameCore } from '@struktoai/mirage-core/core/s3/rename';
27
+ import { rmR as rmRCore } from '@struktoai/mirage-core/core/s3/rm';
28
+ import { rmdir as rmdirCore } from '@struktoai/mirage-core/core/s3/rmdir';
29
+ import { stat as statCore } from '@struktoai/mirage-core/core/s3/stat';
30
+ import { rangeRead as rangeReadCore, stream as streamCore, } from '@struktoai/mirage-core/core/s3/stream';
31
+ import { truncate as truncateCore } from '@struktoai/mirage-core/core/s3/truncate';
32
+ import { unlink as unlinkCore } from '@struktoai/mirage-core/core/s3/unlink';
33
+ import { write as writeCore } from '@struktoai/mirage-core/core/s3/write';
34
+ import { buildDeltaHook } from '@struktoai/mirage-core/core/s3/watch';
35
+ import { S3_OPS } from '@struktoai/mirage-core/ops/s3/index';
36
+ import { BaseResource } from '@struktoai/mirage-core/resource/base';
37
+ import { s3StorageId } from '@struktoai/mirage-core/resource/s3/storage_id';
38
+ import { PathSpec, ResourceName } from '@struktoai/mirage-core/types';
39
+ import { mountKey, mountPrefixOf } from '@struktoai/mirage-core/utils/key_prefix';
40
+ import {} from '@struktoai/mirage-core/watch/index';
41
+ import { redactConfig } from "./config.js";
42
+ const globCore = makeResolveGlob(readdirCore, S3_SCOPE_ERROR);
43
+ export const S3_BROWSER_PROMPT = `{prefix}
44
+ Remote S3 bucket accessed via presigned URLs (browser runtime).
45
+ Supports the full filesystem command set: ls/tree/cat/grep/find/du/cp/mv/rm/etc.
46
+ Listing operations require the presigner to sign LIST/COPY operations in
47
+ addition to GET/PUT/HEAD/DELETE — see S3BrowserPresignedUrlProvider docs.`;
48
+ export class S3Resource extends BaseResource {
49
+ supportsSnapshot = true;
50
+ kind = ResourceName.S3;
51
+ cachesReads = true;
52
+ // A HEAD carries ContentLength, so a size is always knowable without
53
+ // fetching. Every sibling browser resource says so; s3 was the one that
54
+ // did not, and its node twin has always declared it.
55
+ sizesAlwaysKnown = true;
56
+ indexTtl = 600;
57
+ prompt = S3_BROWSER_PROMPT;
58
+ config;
59
+ accessor;
60
+ constructor(config) {
61
+ super();
62
+ this.config = config;
63
+ this.accessor = new S3Accessor(this.config);
64
+ }
65
+ // Without this, two mounts of one bucket at different prefixes are two
66
+ // storages, so `mv` between them copies an object over itself and then
67
+ // unlinks the source. Node has always declared it; the shared helper keeps
68
+ // the two runtimes from computing different identities for one bucket.
69
+ storageId() {
70
+ return s3StorageId(this.kind, this.config);
71
+ }
72
+ open() {
73
+ return Promise.resolve();
74
+ }
75
+ commands() {
76
+ return S3_COMMANDS.toArray();
77
+ }
78
+ ops() {
79
+ return S3_OPS;
80
+ }
81
+ streamPath(p) {
82
+ return streamCore(this.accessor, p);
83
+ }
84
+ readFile(p) {
85
+ return readCore(this.accessor, p);
86
+ }
87
+ writeFile(p, data) {
88
+ return writeCore(this.accessor, p, data);
89
+ }
90
+ async appendFile(p, data) {
91
+ let existing;
92
+ try {
93
+ existing = await readCore(this.accessor, p);
94
+ }
95
+ catch (err) {
96
+ if (err?.code === 'ENOENT') {
97
+ existing = new Uint8Array();
98
+ }
99
+ else {
100
+ throw err;
101
+ }
102
+ }
103
+ const merged = new Uint8Array(existing.byteLength + data.byteLength);
104
+ merged.set(existing, 0);
105
+ merged.set(data, existing.byteLength);
106
+ await writeCore(this.accessor, p, merged);
107
+ }
108
+ readdir(p) {
109
+ return readdirCore(this.accessor, p, this.index);
110
+ }
111
+ stat(p) {
112
+ return statCore(this.accessor, p, this.index);
113
+ }
114
+ exists(p) {
115
+ return existsCore(this.accessor, p);
116
+ }
117
+ mkdir(p) {
118
+ return mkdirCore(this.accessor, p);
119
+ }
120
+ rmdir(p) {
121
+ return rmdirCore(this.accessor, p);
122
+ }
123
+ unlink(p) {
124
+ return unlinkCore(this.accessor, p);
125
+ }
126
+ rename(src, dst) {
127
+ return renameCore(this.accessor, src, dst);
128
+ }
129
+ truncate(p, length) {
130
+ return truncateCore(this.accessor, p, length);
131
+ }
132
+ copy(src, dst) {
133
+ return copyCore(this.accessor, src, dst);
134
+ }
135
+ rmR(p) {
136
+ return rmRCore(this.accessor, p);
137
+ }
138
+ du(p) {
139
+ return duSizeCore(this.accessor, p);
140
+ }
141
+ find(p, options = {}) {
142
+ return findCore(this.accessor, p, options);
143
+ }
144
+ glob(paths, prefix = '') {
145
+ const effective = prefix
146
+ ? paths.map((p) => mountPrefixOf(p.virtual, p.resourcePath)
147
+ ? p
148
+ : new PathSpec({
149
+ virtual: p.virtual,
150
+ directory: p.directory,
151
+ ...(p.pattern !== null ? { pattern: p.pattern } : {}),
152
+ resolved: p.resolved,
153
+ resourcePath: mountKey(p.virtual, prefix),
154
+ }))
155
+ : paths;
156
+ return globCore(this.accessor, effective, this.index);
157
+ }
158
+ deltaHook() {
159
+ return buildDeltaHook(this.accessor);
160
+ }
161
+ getState() {
162
+ return Promise.resolve({
163
+ type: this.kind,
164
+ config: redactConfig(this.config),
165
+ });
166
+ }
167
+ loadState(_state) {
168
+ return Promise.resolve();
169
+ }
170
+ // Ignored — duEntries is not yet on the public Resource interface, but keeping
171
+ // it around matches the node-side S3Resource.opsMap hook for completeness.
172
+ _duEntries(p) {
173
+ return duEntriesCore(this.accessor, p);
174
+ }
175
+ _rangeRead(p, offset, size) {
176
+ return rangeReadCore(this.accessor, p, offset, size);
177
+ }
178
+ _create(p) {
179
+ return createCore(this.accessor, p);
180
+ }
181
+ }
182
+ //# sourceMappingURL=s3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3.js","sourceRoot":"","sources":["../../../src/resource/s3/s3.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ import { S3Resource } from './s3/s3.ts';
2
+ import type { RegisteredCommand } from '@struktoai/mirage-core/commands/config';
3
+ import type { RegisteredOp } from '@struktoai/mirage-core/ops/registry';
4
+ import { z } from '@struktoai/mirage-core/resource/secrets';
5
+ import type { S3BrowserPresignedUrlProvider, S3Config, S3ConfigRedacted } from './s3/config.ts';
6
+ /**
7
+ * Shared shape for the browser's S3-compatible providers.
8
+ *
9
+ * Every alias is the same presigned-fetch config plus one endpoint rule,
10
+ * so the fields, the zod schema that drives redaction, and the conversion
11
+ * to S3Config live here once. A provider declares only its endpoint rule
12
+ * and whatever it genuinely adds. The node twin is
13
+ * `packages/node/src/resource/s3_alias.ts`; it carries credentials and a
14
+ * snake_case `normalize` where this one carries a
15
+ * `presignedUrlProvider`, which is one field's difference and not a
16
+ * reason to fork the family.
17
+ *
18
+ * Only `bucket` and the provider are required. `region` and `endpoint`
19
+ * are optional here — unlike node, where a regional provider must have a
20
+ * region — because a presigned URL already names its host, so an alias
21
+ * that can derive neither simply leaves both off the S3Config.
22
+ */
23
+ export interface S3BrowserAliasConfig {
24
+ bucket: string;
25
+ presignedUrlProvider: S3BrowserPresignedUrlProvider;
26
+ region?: string;
27
+ endpoint?: string;
28
+ defaultContentType?: string;
29
+ keyPrefix?: string;
30
+ }
31
+ export declare const BROWSER_ALIAS_FIELDS: {
32
+ bucket: z.ZodString;
33
+ presignedUrlProvider: z.ZodCustom<S3BrowserPresignedUrlProvider, S3BrowserPresignedUrlProvider>;
34
+ region: z.ZodOptional<z.ZodString>;
35
+ endpoint: z.ZodOptional<z.ZodString>;
36
+ defaultContentType: z.ZodOptional<z.ZodString>;
37
+ keyPrefix: z.ZodOptional<z.ZodString>;
38
+ };
39
+ /**
40
+ * The shared schema, plus whatever one provider's endpoint rule needs
41
+ * (r2's `accountId`, oci's `namespace`, supabase's `projectRef`).
42
+ *
43
+ * The extra fields land after the shared ones rather than where each
44
+ * hand-written schema happened to put them. That is only visible in the
45
+ * key order of a redacted config, which nothing pins.
46
+ */
47
+ export declare function browserAliasSchema<E extends z.ZodRawShape>(extra: E): z.ZodObject<typeof BROWSER_ALIAS_FIELDS & E>;
48
+ /**
49
+ * The common endpoint rule: one config field fills one URL template.
50
+ *
51
+ * Most providers key off `region`; r2 keys off `accountId` and supabase
52
+ * off `projectRef`. An absent or empty field yields no endpoint rather
53
+ * than a URL with a hole in it. oci needs two fields, and gcs and wasabi
54
+ * always resolve, so those three pass their own `endpointFor`.
55
+ */
56
+ export declare function derivedEndpoint<C extends S3BrowserAliasConfig>(key: keyof C & string, template: (value: string) => string): (config: C) => string | undefined;
57
+ export interface BrowserAlias<C, R, E extends string | undefined> {
58
+ resolvedEndpoint: (config: C) => string | E;
59
+ toS3Config: (config: C) => S3Config;
60
+ redact: (config: C) => R;
61
+ normalize: (input: Record<string, unknown>) => C;
62
+ }
63
+ /**
64
+ * Build one provider's config helpers from its endpoint rule.
65
+ *
66
+ * `endpointFor` is consulted only when the caller gave no explicit
67
+ * endpoint, and may answer `undefined` when the config lacks whatever
68
+ * the rule needs (a region, an account id); the S3Config then carries no
69
+ * endpoint at all. `regionDefault` materializes a region the provider
70
+ * always has (gcs and r2 report `auto`), and `forcePathStyle` is set
71
+ * only by supabase, whose gateway does not serve virtual-hosted style.
72
+ */
73
+ export declare function makeBrowserS3Alias<C extends S3BrowserAliasConfig, R, E extends string | undefined = string | undefined>(options: {
74
+ schema: z.ZodObject<z.ZodRawShape>;
75
+ endpointFor?: (config: C) => E;
76
+ regionDefault?: string;
77
+ forcePathStyle?: boolean;
78
+ }): BrowserAlias<C, R, E>;
79
+ /**
80
+ * The snapshot state of an S3-compatible alias: its own kind and its own
81
+ * redacted config, not the `s3` kind and S3 config it delegates to.
82
+ */
83
+ export interface S3AliasResourceState<TRedacted> {
84
+ type: string;
85
+ config: TRedacted;
86
+ }
87
+ /**
88
+ * The shared body of every S3-compatible provider resource (MinIO, Ceph,
89
+ * R2, Wasabi, ...). Each is an {@link S3Resource} reached through a
90
+ * provider-shaped config, so all it owns is its `kind`, that config, and
91
+ * ops/commands retagged from `s3` onto the kind. A subclass supplies its
92
+ * prompt as a plain field and hands the varying pieces to `super`.
93
+ *
94
+ * `toS3Config` and `redact` arrive as functions rather than as an
95
+ * {@link Alias}: the four providers whose region or endpoint rule fits
96
+ * neither {@link makeRegionAlias} nor {@link makeFixedAlias} write their
97
+ * own pair, so the resource layer takes the two functions every provider
98
+ * has either way. Mirrors python `S3AliasResource` in
99
+ * `mirage/resource/s3_alias.py`.
100
+ */
101
+ export declare abstract class S3AliasResource<TConfig, TRedacted extends S3ConfigRedacted> extends S3Resource {
102
+ readonly kind: string;
103
+ readonly aliasConfig: TConfig;
104
+ private readonly aliasOps;
105
+ private readonly aliasCommands;
106
+ private readonly redactAlias;
107
+ protected constructor(kind: string, config: TConfig, s3Config: S3Config, redact: (config: TConfig) => TRedacted);
108
+ ops(): readonly RegisteredOp[];
109
+ commands(): readonly RegisteredCommand[];
110
+ getState(): Promise<S3AliasResourceState<TRedacted>>;
111
+ loadState(_state: S3AliasResourceState<TRedacted>): Promise<void>;
112
+ }
113
+ //# sourceMappingURL=s3_alias.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3_alias.d.ts","sourceRoot":"","sources":["../../src/resource/s3_alias.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,133 @@
1
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
+ import { S3Resource } from "./s3/s3.js";
15
+ import { remapCommandsResource, remapOpsResource } from '@struktoai/mirage-core/resource/s3/remap';
16
+ import { parseConfigWithSchema, redactConfigWithSchema, secretSchema, z, } from '@struktoai/mirage-core/resource/secrets';
17
+ import { S3_BROWSER_RENAME } from "./s3/config.js";
18
+ export const BROWSER_ALIAS_FIELDS = {
19
+ bucket: z.string(),
20
+ presignedUrlProvider: secretSchema(z.custom((value) => typeof value === 'function')),
21
+ region: z.string().optional(),
22
+ endpoint: z.string().optional(),
23
+ defaultContentType: z.string().optional(),
24
+ keyPrefix: z.string().optional(),
25
+ };
26
+ /**
27
+ * The shared schema, plus whatever one provider's endpoint rule needs
28
+ * (r2's `accountId`, oci's `namespace`, supabase's `projectRef`).
29
+ *
30
+ * The extra fields land after the shared ones rather than where each
31
+ * hand-written schema happened to put them. That is only visible in the
32
+ * key order of a redacted config, which nothing pins.
33
+ */
34
+ export function browserAliasSchema(extra) {
35
+ return z.object({ ...BROWSER_ALIAS_FIELDS, ...extra });
36
+ }
37
+ /**
38
+ * The common endpoint rule: one config field fills one URL template.
39
+ *
40
+ * Most providers key off `region`; r2 keys off `accountId` and supabase
41
+ * off `projectRef`. An absent or empty field yields no endpoint rather
42
+ * than a URL with a hole in it. oci needs two fields, and gcs and wasabi
43
+ * always resolve, so those three pass their own `endpointFor`.
44
+ */
45
+ export function derivedEndpoint(key, template) {
46
+ return (config) => {
47
+ const value = config[key];
48
+ return typeof value === 'string' && value !== '' ? template(value) : undefined;
49
+ };
50
+ }
51
+ /**
52
+ * Build one provider's config helpers from its endpoint rule.
53
+ *
54
+ * `endpointFor` is consulted only when the caller gave no explicit
55
+ * endpoint, and may answer `undefined` when the config lacks whatever
56
+ * the rule needs (a region, an account id); the S3Config then carries no
57
+ * endpoint at all. `regionDefault` materializes a region the provider
58
+ * always has (gcs and r2 report `auto`), and `forcePathStyle` is set
59
+ * only by supabase, whose gateway does not serve virtual-hosted style.
60
+ */
61
+ export function makeBrowserS3Alias(options) {
62
+ const { schema, endpointFor, regionDefault, forcePathStyle } = options;
63
+ const resolvedEndpoint = (config) => {
64
+ if (config.endpoint !== undefined && config.endpoint !== '')
65
+ return config.endpoint;
66
+ return endpointFor === undefined ? undefined : endpointFor(config);
67
+ };
68
+ return {
69
+ resolvedEndpoint,
70
+ toS3Config: (config) => {
71
+ const endpoint = resolvedEndpoint(config);
72
+ const region = config.region ?? regionDefault;
73
+ return {
74
+ bucket: config.bucket,
75
+ presignedUrlProvider: config.presignedUrlProvider,
76
+ ...(region !== undefined ? { region } : {}),
77
+ ...(endpoint !== undefined ? { endpoint } : {}),
78
+ ...(forcePathStyle !== undefined ? { forcePathStyle } : {}),
79
+ ...(config.defaultContentType !== undefined
80
+ ? { defaultContentType: config.defaultContentType }
81
+ : {}),
82
+ ...(config.keyPrefix !== undefined ? { keyPrefix: config.keyPrefix } : {}),
83
+ };
84
+ },
85
+ redact: (config) => redactConfigWithSchema(schema, config),
86
+ normalize: (input) => parseConfigWithSchema(schema, input, { rename: S3_BROWSER_RENAME }),
87
+ };
88
+ }
89
+ /**
90
+ * The shared body of every S3-compatible provider resource (MinIO, Ceph,
91
+ * R2, Wasabi, ...). Each is an {@link S3Resource} reached through a
92
+ * provider-shaped config, so all it owns is its `kind`, that config, and
93
+ * ops/commands retagged from `s3` onto the kind. A subclass supplies its
94
+ * prompt as a plain field and hands the varying pieces to `super`.
95
+ *
96
+ * `toS3Config` and `redact` arrive as functions rather than as an
97
+ * {@link Alias}: the four providers whose region or endpoint rule fits
98
+ * neither {@link makeRegionAlias} nor {@link makeFixedAlias} write their
99
+ * own pair, so the resource layer takes the two functions every provider
100
+ * has either way. Mirrors python `S3AliasResource` in
101
+ * `mirage/resource/s3_alias.py`.
102
+ */
103
+ export class S3AliasResource extends S3Resource {
104
+ kind;
105
+ aliasConfig;
106
+ aliasOps;
107
+ aliasCommands;
108
+ redactAlias;
109
+ constructor(kind, config, s3Config, redact) {
110
+ super(s3Config);
111
+ this.kind = kind;
112
+ this.aliasConfig = config;
113
+ this.redactAlias = redact;
114
+ this.aliasOps = remapOpsResource(super.ops(), kind);
115
+ this.aliasCommands = remapCommandsResource(super.commands(), kind);
116
+ }
117
+ ops() {
118
+ return this.aliasOps;
119
+ }
120
+ commands() {
121
+ return this.aliasCommands;
122
+ }
123
+ getState() {
124
+ return Promise.resolve({
125
+ type: this.kind,
126
+ config: this.redactAlias(this.aliasConfig),
127
+ });
128
+ }
129
+ loadState(_state) {
130
+ return Promise.resolve();
131
+ }
132
+ }
133
+ //# sourceMappingURL=s3_alias.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3_alias.js","sourceRoot":"","sources":["../../src/resource/s3_alias.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { ConfigOf, RedactedConfig } from '@struktoai/mirage-core/resource/secrets';
2
+ declare const ScalewayConfigSchema: import("zod").ZodObject<{
3
+ bucket: import("zod").ZodString;
4
+ presignedUrlProvider: import("zod").ZodCustom<import("@struktoai/mirage-core/resource/s3/config").S3BrowserPresignedUrlProvider, import("@struktoai/mirage-core/resource/s3/config").S3BrowserPresignedUrlProvider>;
5
+ region: import("zod").ZodOptional<import("zod").ZodString>;
6
+ endpoint: import("zod").ZodOptional<import("zod").ZodString>;
7
+ defaultContentType: import("zod").ZodOptional<import("zod").ZodString>;
8
+ keyPrefix: import("zod").ZodOptional<import("zod").ZodString>;
9
+ }, import("zod/v4/core").$strip>;
10
+ export type ScalewayConfig = ConfigOf<typeof ScalewayConfigSchema>;
11
+ export type ScalewayConfigRedacted = RedactedConfig<ScalewayConfig, 'presignedUrlProvider'>;
12
+ export declare const resolvedScalewayEndpoint: (config: ScalewayConfig) => string | undefined;
13
+ export declare const scalewayToS3Config: (config: ScalewayConfig) => import("@struktoai/mirage-core/resource/s3/config").S3Config;
14
+ export declare const redactScalewayConfig: (config: ScalewayConfig) => ScalewayConfigRedacted;
15
+ export declare const normalizeScalewayConfig: (input: Record<string, unknown>) => ScalewayConfig;
16
+ export {};
17
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/resource/scaleway/config.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAA;AAGvF,QAAA,MAAM,oBAAoB;;;;;;;gCAAyB,CAAA;AAEnD,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAElE,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAA;AAO3F,eAAO,MAAM,wBAAwB,gDAAyB,CAAA;AAC9D,eAAO,MAAM,kBAAkB,0FAAmB,CAAA;AAClD,eAAO,MAAM,oBAAoB,oDAAe,CAAA;AAChD,eAAO,MAAM,uBAAuB,oDAAkB,CAAA"}
@@ -0,0 +1,24 @@
1
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
+ import { browserAliasSchema, derivedEndpoint, makeBrowserS3Alias } from "../s3_alias.js";
15
+ const ScalewayConfigSchema = browserAliasSchema({});
16
+ const alias = makeBrowserS3Alias({
17
+ schema: ScalewayConfigSchema,
18
+ endpointFor: derivedEndpoint('region', (region) => `https://s3.${region}.scw.cloud`),
19
+ });
20
+ export const resolvedScalewayEndpoint = alias.resolvedEndpoint;
21
+ export const scalewayToS3Config = alias.toS3Config;
22
+ export const redactScalewayConfig = alias.redact;
23
+ export const normalizeScalewayConfig = alias.normalize;
24
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/resource/scaleway/config.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAGvE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExF,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;AAMnD,MAAM,KAAK,GAAG,kBAAkB,CAAyC;IACvE,MAAM,EAAE,oBAAoB;IAC5B,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,MAAM,YAAY,CAAC;CACrF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC,gBAAgB,CAAA;AAC9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAAA;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAAA;AAChD,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC,SAAS,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const SCALEWAY_BROWSER_PROMPT = "{prefix}\n Remote Scaleway Object Storage 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 \u2014 see S3BrowserPresignedUrlProvider docs.";
2
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/resource/scaleway/prompt.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,uBAAuB,uWAIwC,CAAA"}
@@ -0,0 +1,19 @@
1
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
+ export const SCALEWAY_BROWSER_PROMPT = `{prefix}
15
+ Remote Scaleway Object Storage bucket (S3-compatible) accessed via presigned URLs (browser runtime).
16
+ Supports the full filesystem command set: ls/tree/cat/grep/find/du/cp/mv/rm/etc.
17
+ Listing operations require the presigner to sign LIST/COPY operations in
18
+ addition to GET/PUT/HEAD/DELETE — see S3BrowserPresignedUrlProvider docs.`;
19
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/resource/scaleway/prompt.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAEvE,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;4EAIqC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { S3AliasResource, type S3AliasResourceState } from '../s3_alias.ts';
2
+ import { type ScalewayConfig, type ScalewayConfigRedacted } from './config.ts';
3
+ export type ScalewayResourceState = S3AliasResourceState<ScalewayConfigRedacted>;
4
+ export declare class ScalewayResource extends S3AliasResource<ScalewayConfig, ScalewayConfigRedacted> {
5
+ readonly prompt: string;
6
+ constructor(config: ScalewayConfig);
7
+ }
8
+ //# sourceMappingURL=scaleway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaleway.d.ts","sourceRoot":"","sources":["../../../src/resource/scaleway/scaleway.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAC3E,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAA;AAGpB,MAAM,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAA;AAEhF,qBAAa,gBAAiB,SAAQ,eAAe,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAC3F,SAAkB,MAAM,EAAE,MAAM,CAA0B;gBAE9C,MAAM,EAAE,cAAc;CAGnC"}
@@ -0,0 +1,24 @@
1
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
+ import { ResourceName } from '@struktoai/mirage-core/types';
15
+ import { S3AliasResource } from "../s3_alias.js";
16
+ import { redactScalewayConfig, scalewayToS3Config, } from "./config.js";
17
+ import { SCALEWAY_BROWSER_PROMPT } from "./prompt.js";
18
+ export class ScalewayResource extends S3AliasResource {
19
+ prompt = SCALEWAY_BROWSER_PROMPT;
20
+ constructor(config) {
21
+ super(ResourceName.SCALEWAY, config, scalewayToS3Config(config), redactScalewayConfig);
22
+ }
23
+ }
24
+ //# sourceMappingURL=scaleway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaleway.js","sourceRoot":"","sources":["../../../src/resource/scaleway/scaleway.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,eAAe,EAA6B,MAAM,gBAAgB,CAAA;AAC3E,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GAGnB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAIrD,MAAM,OAAO,gBAAiB,SAAQ,eAAuD;IACzE,MAAM,GAAW,uBAAuB,CAAA;IAE1D,YAAY,MAAsB;QAChC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC,CAAA;IACxF,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ import type { ConfigOf, RedactedConfig } from '@struktoai/mirage-core/resource/secrets';
2
+ declare const SeaweedFSConfigSchema: import("zod").ZodObject<{
3
+ bucket: import("zod").ZodString;
4
+ presignedUrlProvider: import("zod").ZodCustom<import("@struktoai/mirage-core/resource/s3/config").S3BrowserPresignedUrlProvider, import("@struktoai/mirage-core/resource/s3/config").S3BrowserPresignedUrlProvider>;
5
+ region: import("zod").ZodOptional<import("zod").ZodString>;
6
+ endpoint: import("zod").ZodOptional<import("zod").ZodString>;
7
+ defaultContentType: import("zod").ZodOptional<import("zod").ZodString>;
8
+ keyPrefix: import("zod").ZodOptional<import("zod").ZodString>;
9
+ }, import("zod/v4/core").$strip>;
10
+ export type SeaweedFSConfig = ConfigOf<typeof SeaweedFSConfigSchema>;
11
+ export type SeaweedFSConfigRedacted = RedactedConfig<SeaweedFSConfig, 'presignedUrlProvider'>;
12
+ export declare const seaweedfsToS3Config: (config: SeaweedFSConfig) => import("@struktoai/mirage-core/resource/s3/config").S3Config;
13
+ export declare const redactSeaweedFSConfig: (config: SeaweedFSConfig) => SeaweedFSConfigRedacted;
14
+ export declare const normalizeSeaweedFSConfig: (input: Record<string, unknown>) => SeaweedFSConfig;
15
+ export {};
16
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/resource/seaweedfs/config.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAA;AAGvF,QAAA,MAAM,qBAAqB;;;;;;;gCAAyB,CAAA;AAEpD,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEpE,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAA;AAM7F,eAAO,MAAM,mBAAmB,2FAAmB,CAAA;AACnD,eAAO,MAAM,qBAAqB,sDAAe,CAAA;AACjD,eAAO,MAAM,wBAAwB,qDAAkB,CAAA"}
@@ -0,0 +1,22 @@
1
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
+ import { browserAliasSchema, makeBrowserS3Alias } from "../s3_alias.js";
15
+ const SeaweedFSConfigSchema = browserAliasSchema({});
16
+ const alias = makeBrowserS3Alias({
17
+ schema: SeaweedFSConfigSchema,
18
+ });
19
+ export const seaweedfsToS3Config = alias.toS3Config;
20
+ export const redactSeaweedFSConfig = alias.redact;
21
+ export const normalizeSeaweedFSConfig = alias.normalize;
22
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/resource/seaweedfs/config.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAGvE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAEvE,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;AAMpD,MAAM,KAAK,GAAG,kBAAkB,CAA2C;IACzE,MAAM,EAAE,qBAAqB;CAC9B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAAA;AACnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC,MAAM,CAAA;AACjD,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC,SAAS,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const SEAWEEDFS_BROWSER_PROMPT = "{prefix}\n Remote SeaweedFS bucket (S3-compatible gateway) 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 \u2014 see S3BrowserPresignedUrlProvider docs.";
2
+ //# sourceMappingURL=prompt.d.ts.map