@struktoai/mirage-browser 0.0.5-alpha.1 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +138 -80
- package/dist/accessor/opfs.d.ts +10 -0
- package/dist/accessor/opfs.d.ts.map +1 -0
- package/dist/accessor/opfs.js +25 -0
- package/dist/accessor/opfs.js.map +1 -0
- package/dist/commands/builtin/opfs/index.d.ts +3 -0
- package/dist/commands/builtin/opfs/index.d.ts.map +1 -0
- package/dist/commands/builtin/opfs/index.js +20 -0
- package/dist/commands/builtin/opfs/index.js.map +1 -0
- package/dist/commands/builtin/opfs/io.d.ts +4 -0
- package/dist/commands/builtin/opfs/io.d.ts.map +1 -0
- package/dist/commands/builtin/opfs/io.js +56 -0
- package/dist/commands/builtin/opfs/io.js.map +1 -0
- package/dist/core/opfs/append.d.ts +4 -0
- package/dist/core/opfs/append.d.ts.map +1 -0
- package/dist/core/opfs/append.js +38 -0
- package/dist/core/opfs/append.js.map +1 -0
- package/dist/core/opfs/constants.d.ts +3 -0
- package/dist/core/opfs/constants.d.ts.map +1 -0
- package/dist/core/opfs/constants.js +16 -0
- package/dist/core/opfs/constants.js.map +1 -0
- package/dist/core/opfs/copy.d.ts +4 -0
- package/dist/core/opfs/copy.d.ts.map +1 -0
- package/dist/core/opfs/copy.js +40 -0
- package/dist/core/opfs/copy.js.map +1 -0
- package/dist/core/opfs/create.d.ts +4 -0
- package/dist/core/opfs/create.d.ts.map +1 -0
- package/dist/core/opfs/create.js +18 -0
- package/dist/core/opfs/create.js.map +1 -0
- package/dist/core/opfs/du/entries.d.ts +4 -0
- package/dist/core/opfs/du/entries.d.ts.map +1 -0
- package/dist/core/opfs/du/entries.js +56 -0
- package/dist/core/opfs/du/entries.js.map +1 -0
- package/dist/core/opfs/du/index.d.ts +3 -0
- package/dist/core/opfs/du/index.d.ts.map +1 -0
- package/dist/core/opfs/du/index.js +16 -0
- package/dist/core/opfs/du/index.js.map +1 -0
- package/dist/core/opfs/du/size.d.ts +4 -0
- package/dist/core/opfs/du/size.d.ts.map +1 -0
- package/dist/core/opfs/du/size.js +18 -0
- package/dist/core/opfs/du/size.js.map +1 -0
- package/dist/core/opfs/du/walk.d.ts +3 -0
- package/dist/core/opfs/du/walk.d.ts.map +1 -0
- package/dist/core/opfs/du/walk.js +98 -0
- package/dist/core/opfs/du/walk.js.map +1 -0
- package/dist/core/opfs/entry.d.ts +11 -0
- package/dist/core/opfs/entry.d.ts.map +1 -0
- package/dist/core/opfs/entry.js +42 -0
- package/dist/core/opfs/entry.js.map +1 -0
- package/dist/core/opfs/exists.d.ts +4 -0
- package/dist/core/opfs/exists.d.ts.map +1 -0
- package/dist/core/opfs/exists.js +64 -0
- package/dist/core/opfs/exists.js.map +1 -0
- package/dist/core/opfs/find.d.ts +21 -0
- package/dist/core/opfs/find.d.ts.map +1 -0
- package/dist/core/opfs/find.js +154 -0
- package/dist/core/opfs/find.js.map +1 -0
- package/dist/core/opfs/mkdir.d.ts +4 -0
- package/dist/core/opfs/mkdir.d.ts.map +1 -0
- package/dist/core/opfs/mkdir.js +64 -0
- package/dist/core/opfs/mkdir.js.map +1 -0
- package/dist/core/opfs/read.d.ts +22 -0
- package/dist/core/opfs/read.d.ts.map +1 -0
- package/dist/core/opfs/read.js +57 -0
- package/dist/core/opfs/read.js.map +1 -0
- package/dist/core/opfs/readdir.d.ts +4 -0
- package/dist/core/opfs/readdir.d.ts.map +1 -0
- package/dist/core/opfs/readdir.js +50 -0
- package/dist/core/opfs/readdir.js.map +1 -0
- package/dist/core/opfs/rename.d.ts +4 -0
- package/dist/core/opfs/rename.d.ts.map +1 -0
- package/dist/core/opfs/rename.js +97 -0
- package/dist/core/opfs/rename.js.map +1 -0
- package/dist/core/opfs/rm.d.ts +4 -0
- package/dist/core/opfs/rm.d.ts.map +1 -0
- package/dist/core/opfs/rm.js +40 -0
- package/dist/core/opfs/rm.js.map +1 -0
- package/dist/core/opfs/rmdir.d.ts +4 -0
- package/dist/core/opfs/rmdir.d.ts.map +1 -0
- package/dist/core/opfs/rmdir.js +48 -0
- package/dist/core/opfs/rmdir.js.map +1 -0
- package/dist/core/opfs/stat.d.ts +5 -0
- package/dist/core/opfs/stat.d.ts.map +1 -0
- package/dist/core/opfs/stat.js +88 -0
- package/dist/core/opfs/stat.js.map +1 -0
- package/dist/core/opfs/stream.d.ts +4 -0
- package/dist/core/opfs/stream.d.ts.map +1 -0
- package/dist/core/opfs/stream.js +44 -0
- package/dist/core/opfs/stream.js.map +1 -0
- package/dist/core/opfs/truncate.d.ts +4 -0
- package/dist/core/opfs/truncate.d.ts.map +1 -0
- package/dist/core/opfs/truncate.js +49 -0
- package/dist/core/opfs/truncate.js.map +1 -0
- package/dist/core/opfs/unlink.d.ts +4 -0
- package/dist/core/opfs/unlink.d.ts.map +1 -0
- package/dist/core/opfs/unlink.js +40 -0
- package/dist/core/opfs/unlink.js.map +1 -0
- package/dist/core/opfs/utils.d.ts +20 -0
- package/dist/core/opfs/utils.d.ts.map +1 -0
- package/dist/core/opfs/utils.js +149 -0
- package/dist/core/opfs/utils.js.map +1 -0
- package/dist/core/opfs/write.d.ts +4 -0
- package/dist/core/opfs/write.d.ts.map +1 -0
- package/dist/core/opfs/write.js +33 -0
- package/dist/core/opfs/write.js.map +1 -0
- package/dist/generated/wasm.d.ts +3 -0
- package/dist/generated/wasm.d.ts.map +1 -0
- package/dist/generated/wasm.js +4 -0
- package/dist/generated/wasm.js.map +1 -0
- package/dist/index.d.ts +118 -1246
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +130 -698
- package/dist/index.js.map +1 -1
- package/dist/ops/opfs/index.d.ts +3 -0
- package/dist/ops/opfs/index.d.ts.map +1 -0
- package/dist/ops/opfs/index.js +23 -0
- package/dist/ops/opfs/index.js.map +1 -0
- package/dist/resource/aliyun/aliyun.d.ts +8 -0
- package/dist/resource/aliyun/aliyun.d.ts.map +1 -0
- package/dist/resource/aliyun/aliyun.js +24 -0
- package/dist/resource/aliyun/aliyun.js.map +1 -0
- package/dist/resource/aliyun/config.d.ts +17 -0
- package/dist/resource/aliyun/config.d.ts.map +1 -0
- package/dist/resource/aliyun/config.js +24 -0
- package/dist/resource/aliyun/config.js.map +1 -0
- package/dist/resource/aliyun/prompt.d.ts +2 -0
- package/dist/resource/aliyun/prompt.d.ts.map +1 -0
- package/dist/resource/aliyun/prompt.js +19 -0
- package/dist/resource/aliyun/prompt.js.map +1 -0
- package/dist/resource/backblaze/backblaze.d.ts +8 -0
- package/dist/resource/backblaze/backblaze.d.ts.map +1 -0
- package/dist/resource/backblaze/backblaze.js +24 -0
- package/dist/resource/backblaze/backblaze.js.map +1 -0
- package/dist/resource/backblaze/config.d.ts +17 -0
- package/dist/resource/backblaze/config.d.ts.map +1 -0
- package/dist/resource/backblaze/config.js +24 -0
- package/dist/resource/backblaze/config.js.map +1 -0
- package/dist/resource/backblaze/prompt.d.ts +2 -0
- package/dist/resource/backblaze/prompt.d.ts.map +1 -0
- package/dist/resource/backblaze/prompt.js +19 -0
- package/dist/resource/backblaze/prompt.js.map +1 -0
- package/dist/resource/box/box.d.ts +34 -0
- package/dist/resource/box/box.d.ts.map +1 -0
- package/dist/resource/box/box.js +99 -0
- package/dist/resource/box/box.js.map +1 -0
- package/dist/resource/box/config.d.ts +41 -0
- package/dist/resource/box/config.d.ts.map +1 -0
- package/dist/resource/box/config.js +38 -0
- package/dist/resource/box/config.js.map +1 -0
- package/dist/resource/ceph/ceph.d.ts +8 -0
- package/dist/resource/ceph/ceph.d.ts.map +1 -0
- package/dist/resource/ceph/ceph.js +24 -0
- package/dist/resource/ceph/ceph.js.map +1 -0
- package/dist/resource/ceph/config.d.ts +16 -0
- package/dist/resource/ceph/config.d.ts.map +1 -0
- package/dist/resource/ceph/config.js +22 -0
- package/dist/resource/ceph/config.js.map +1 -0
- package/dist/resource/ceph/prompt.d.ts +2 -0
- package/dist/resource/ceph/prompt.d.ts.map +1 -0
- package/dist/resource/ceph/prompt.js +19 -0
- package/dist/resource/ceph/prompt.js.map +1 -0
- package/dist/resource/digitalocean/config.d.ts +17 -0
- package/dist/resource/digitalocean/config.d.ts.map +1 -0
- package/dist/resource/digitalocean/config.js +24 -0
- package/dist/resource/digitalocean/config.js.map +1 -0
- package/dist/resource/digitalocean/digitalocean.d.ts +8 -0
- package/dist/resource/digitalocean/digitalocean.d.ts.map +1 -0
- package/dist/resource/digitalocean/digitalocean.js +24 -0
- package/dist/resource/digitalocean/digitalocean.js.map +1 -0
- package/dist/resource/digitalocean/prompt.d.ts +2 -0
- package/dist/resource/digitalocean/prompt.d.ts.map +1 -0
- package/dist/resource/digitalocean/prompt.js +19 -0
- package/dist/resource/digitalocean/prompt.js.map +1 -0
- package/dist/resource/discord/config.d.ts +20 -0
- package/dist/resource/discord/config.d.ts.map +1 -0
- package/dist/resource/discord/config.js +32 -0
- package/dist/resource/discord/config.js.map +1 -0
- package/dist/resource/discord/discord.d.ts +33 -0
- package/dist/resource/discord/discord.d.ts.map +1 -0
- package/dist/resource/discord/discord.js +90 -0
- package/dist/resource/discord/discord.js.map +1 -0
- package/dist/resource/dropbox/config.d.ts +34 -0
- package/dist/resource/dropbox/config.d.ts.map +1 -0
- package/dist/resource/dropbox/config.js +31 -0
- package/dist/resource/dropbox/config.js.map +1 -0
- package/dist/resource/dropbox/dropbox.d.ts +34 -0
- package/dist/resource/dropbox/dropbox.d.ts.map +1 -0
- package/dist/resource/dropbox/dropbox.js +95 -0
- package/dist/resource/dropbox/dropbox.js.map +1 -0
- package/dist/resource/gcal/gcal.d.ts +32 -0
- package/dist/resource/gcal/gcal.d.ts.map +1 -0
- package/dist/resource/gcal/gcal.js +87 -0
- package/dist/resource/gcal/gcal.js.map +1 -0
- package/dist/resource/gcs/config.d.ts +16 -0
- package/dist/resource/gcs/config.d.ts.map +1 -0
- package/dist/resource/gcs/config.js +24 -0
- package/dist/resource/gcs/config.js.map +1 -0
- package/dist/resource/gcs/gcs.d.ts +8 -0
- package/dist/resource/gcs/gcs.d.ts.map +1 -0
- package/dist/resource/gcs/gcs.js +24 -0
- package/dist/resource/gcs/gcs.js.map +1 -0
- package/dist/resource/gcs/prompt.d.ts +2 -0
- package/dist/resource/gcs/prompt.d.ts.map +1 -0
- package/dist/resource/gcs/prompt.js +19 -0
- package/dist/resource/gcs/prompt.js.map +1 -0
- package/dist/resource/gdocs/gdocs.d.ts +32 -0
- package/dist/resource/gdocs/gdocs.d.ts.map +1 -0
- package/dist/resource/gdocs/gdocs.js +84 -0
- package/dist/resource/gdocs/gdocs.js.map +1 -0
- package/dist/resource/gdrive/gdrive.d.ts +34 -0
- package/dist/resource/gdrive/gdrive.d.ts.map +1 -0
- package/dist/resource/gdrive/gdrive.js +89 -0
- package/dist/resource/gdrive/gdrive.js.map +1 -0
- package/dist/resource/github/github.d.ts +38 -0
- package/dist/resource/github/github.d.ts.map +1 -0
- package/dist/resource/github/github.js +121 -0
- package/dist/resource/github/github.js.map +1 -0
- package/dist/resource/gmail/gmail.d.ts +33 -0
- package/dist/resource/gmail/gmail.d.ts.map +1 -0
- package/dist/resource/gmail/gmail.js +88 -0
- package/dist/resource/gmail/gmail.js.map +1 -0
- package/dist/resource/gsheets/gsheets.d.ts +32 -0
- package/dist/resource/gsheets/gsheets.d.ts.map +1 -0
- package/dist/resource/gsheets/gsheets.js +84 -0
- package/dist/resource/gsheets/gsheets.js.map +1 -0
- package/dist/resource/gslides/gslides.d.ts +32 -0
- package/dist/resource/gslides/gslides.d.ts.map +1 -0
- package/dist/resource/gslides/gslides.js +84 -0
- package/dist/resource/gslides/gslides.js.map +1 -0
- package/dist/resource/langfuse/config.d.ts +23 -0
- package/dist/resource/langfuse/config.d.ts.map +1 -0
- package/dist/resource/langfuse/config.js +36 -0
- package/dist/resource/langfuse/config.js.map +1 -0
- package/dist/resource/langfuse/langfuse.d.ts +31 -0
- package/dist/resource/langfuse/langfuse.d.ts.map +1 -0
- package/dist/resource/langfuse/langfuse.js +98 -0
- package/dist/resource/langfuse/langfuse.js.map +1 -0
- package/dist/resource/linear/linear.d.ts +33 -0
- package/dist/resource/linear/linear.d.ts.map +1 -0
- package/dist/resource/linear/linear.js +93 -0
- package/dist/resource/linear/linear.js.map +1 -0
- package/dist/resource/minio/config.d.ts +16 -0
- package/dist/resource/minio/config.d.ts.map +1 -0
- package/dist/resource/minio/config.js +22 -0
- package/dist/resource/minio/config.js.map +1 -0
- package/dist/resource/minio/minio.d.ts +8 -0
- package/dist/resource/minio/minio.d.ts.map +1 -0
- package/dist/resource/minio/minio.js +24 -0
- package/dist/resource/minio/minio.js.map +1 -0
- package/dist/resource/minio/prompt.d.ts +2 -0
- package/dist/resource/minio/prompt.d.ts.map +1 -0
- package/dist/resource/minio/prompt.js +19 -0
- package/dist/resource/minio/prompt.js.map +1 -0
- package/dist/resource/mongodb/http_driver.d.ts +27 -0
- package/dist/resource/mongodb/http_driver.d.ts.map +1 -0
- package/dist/resource/mongodb/http_driver.js +96 -0
- package/dist/resource/mongodb/http_driver.js.map +1 -0
- package/dist/resource/mongodb/mongodb.d.ts +41 -0
- package/dist/resource/mongodb/mongodb.d.ts.map +1 -0
- package/dist/resource/mongodb/mongodb.js +100 -0
- package/dist/resource/mongodb/mongodb.js.map +1 -0
- package/dist/resource/notion/config.d.ts +20 -0
- package/dist/resource/notion/config.d.ts.map +1 -0
- package/dist/resource/notion/config.js +32 -0
- package/dist/resource/notion/config.js.map +1 -0
- package/dist/resource/notion/notion.d.ts +32 -0
- package/dist/resource/notion/notion.d.ts.map +1 -0
- package/dist/resource/notion/notion.js +86 -0
- package/dist/resource/notion/notion.js.map +1 -0
- package/dist/resource/oci/config.d.ts +20 -0
- package/dist/resource/oci/config.d.ts.map +1 -0
- package/dist/resource/oci/config.js +30 -0
- package/dist/resource/oci/config.js.map +1 -0
- package/dist/resource/oci/oci.d.ts +8 -0
- package/dist/resource/oci/oci.d.ts.map +1 -0
- package/dist/resource/oci/oci.js +24 -0
- package/dist/resource/oci/oci.js.map +1 -0
- package/dist/resource/oci/prompt.d.ts +2 -0
- package/dist/resource/oci/prompt.d.ts.map +1 -0
- package/dist/resource/oci/prompt.js +19 -0
- package/dist/resource/oci/prompt.js.map +1 -0
- package/dist/resource/opfs/opfs.d.ts +57 -0
- package/dist/resource/opfs/opfs.d.ts.map +1 -0
- package/dist/resource/opfs/opfs.js +236 -0
- package/dist/resource/opfs/opfs.js.map +1 -0
- package/dist/resource/opfs/prompt.d.ts +2 -0
- package/dist/resource/opfs/prompt.d.ts.map +1 -0
- package/dist/resource/opfs/prompt.js +17 -0
- package/dist/resource/opfs/prompt.js.map +1 -0
- package/dist/resource/postgres/neon_driver.d.ts +8 -0
- package/dist/resource/postgres/neon_driver.d.ts.map +1 -0
- package/dist/resource/postgres/neon_driver.js +28 -0
- package/dist/resource/postgres/neon_driver.js.map +1 -0
- package/dist/resource/postgres/postgres.d.ts +40 -0
- package/dist/resource/postgres/postgres.d.ts.map +1 -0
- package/dist/resource/postgres/postgres.js +98 -0
- package/dist/resource/postgres/postgres.js.map +1 -0
- package/dist/resource/qingstor/config.d.ts +17 -0
- package/dist/resource/qingstor/config.d.ts.map +1 -0
- package/dist/resource/qingstor/config.js +24 -0
- package/dist/resource/qingstor/config.js.map +1 -0
- package/dist/resource/qingstor/prompt.d.ts +2 -0
- package/dist/resource/qingstor/prompt.d.ts.map +1 -0
- package/dist/resource/qingstor/prompt.js +19 -0
- package/dist/resource/qingstor/prompt.js.map +1 -0
- package/dist/resource/qingstor/qingstor.d.ts +8 -0
- package/dist/resource/qingstor/qingstor.d.ts.map +1 -0
- package/dist/resource/qingstor/qingstor.js +24 -0
- package/dist/resource/qingstor/qingstor.js.map +1 -0
- package/dist/resource/r2/config.d.ts +20 -0
- package/dist/resource/r2/config.d.ts.map +1 -0
- package/dist/resource/r2/config.js +26 -0
- package/dist/resource/r2/config.js.map +1 -0
- package/dist/resource/r2/prompt.d.ts +2 -0
- package/dist/resource/r2/prompt.d.ts.map +1 -0
- package/dist/resource/r2/prompt.js +19 -0
- package/dist/resource/r2/prompt.js.map +1 -0
- package/dist/resource/r2/r2.d.ts +8 -0
- package/dist/resource/r2/r2.d.ts.map +1 -0
- package/dist/resource/r2/r2.js +24 -0
- package/dist/resource/r2/r2.js.map +1 -0
- package/dist/resource/redis/redis.d.ts +17 -0
- package/dist/resource/redis/redis.d.ts.map +1 -0
- package/dist/resource/redis/redis.js +29 -0
- package/dist/resource/redis/redis.js.map +1 -0
- package/dist/resource/redis/store.d.ts +75 -0
- package/dist/resource/redis/store.d.ts.map +1 -0
- package/dist/resource/redis/store.js +378 -0
- package/dist/resource/redis/store.js.map +1 -0
- package/dist/resource/registry.d.ts +25 -0
- package/dist/resource/registry.d.ts.map +1 -0
- package/dist/resource/registry.js +274 -0
- package/dist/resource/registry.js.map +1 -0
- package/dist/resource/s3/config.d.ts +7 -0
- package/dist/resource/s3/config.d.ts.map +1 -0
- package/dist/resource/s3/config.js +26 -0
- package/dist/resource/s3/config.js.map +1 -0
- package/dist/resource/s3/s3.d.ts +53 -0
- package/dist/resource/s3/s3.d.ts.map +1 -0
- package/dist/resource/s3/s3.js +182 -0
- package/dist/resource/s3/s3.js.map +1 -0
- package/dist/resource/s3_alias.d.ts +113 -0
- package/dist/resource/s3_alias.d.ts.map +1 -0
- package/dist/resource/s3_alias.js +133 -0
- package/dist/resource/s3_alias.js.map +1 -0
- package/dist/resource/scaleway/config.d.ts +17 -0
- package/dist/resource/scaleway/config.d.ts.map +1 -0
- package/dist/resource/scaleway/config.js +24 -0
- package/dist/resource/scaleway/config.js.map +1 -0
- package/dist/resource/scaleway/prompt.d.ts +2 -0
- package/dist/resource/scaleway/prompt.d.ts.map +1 -0
- package/dist/resource/scaleway/prompt.js +19 -0
- package/dist/resource/scaleway/prompt.js.map +1 -0
- package/dist/resource/scaleway/scaleway.d.ts +8 -0
- package/dist/resource/scaleway/scaleway.d.ts.map +1 -0
- package/dist/resource/scaleway/scaleway.js +24 -0
- package/dist/resource/scaleway/scaleway.js.map +1 -0
- package/dist/resource/seaweedfs/config.d.ts +16 -0
- package/dist/resource/seaweedfs/config.d.ts.map +1 -0
- package/dist/resource/seaweedfs/config.js +22 -0
- package/dist/resource/seaweedfs/config.js.map +1 -0
- package/dist/resource/seaweedfs/prompt.d.ts +2 -0
- package/dist/resource/seaweedfs/prompt.d.ts.map +1 -0
- package/dist/resource/seaweedfs/prompt.js +19 -0
- package/dist/resource/seaweedfs/prompt.js.map +1 -0
- package/dist/resource/seaweedfs/seaweedfs.d.ts +8 -0
- package/dist/resource/seaweedfs/seaweedfs.d.ts.map +1 -0
- package/dist/resource/seaweedfs/seaweedfs.js +24 -0
- package/dist/resource/seaweedfs/seaweedfs.js.map +1 -0
- package/dist/resource/slack/config.d.ts +20 -0
- package/dist/resource/slack/config.d.ts.map +1 -0
- package/dist/resource/slack/config.js +32 -0
- package/dist/resource/slack/config.js.map +1 -0
- package/dist/resource/slack/slack.d.ts +33 -0
- package/dist/resource/slack/slack.d.ts.map +1 -0
- package/dist/resource/slack/slack.js +91 -0
- package/dist/resource/slack/slack.js.map +1 -0
- package/dist/resource/supabase/config.d.ts +20 -0
- package/dist/resource/supabase/config.d.ts.map +1 -0
- package/dist/resource/supabase/config.js +26 -0
- package/dist/resource/supabase/config.js.map +1 -0
- package/dist/resource/supabase/prompt.d.ts +2 -0
- package/dist/resource/supabase/prompt.d.ts.map +1 -0
- package/dist/resource/supabase/prompt.js +19 -0
- package/dist/resource/supabase/prompt.js.map +1 -0
- package/dist/resource/supabase/supabase.d.ts +8 -0
- package/dist/resource/supabase/supabase.d.ts.map +1 -0
- package/dist/resource/supabase/supabase.js +24 -0
- package/dist/resource/supabase/supabase.js.map +1 -0
- package/dist/resource/tencent/config.d.ts +17 -0
- package/dist/resource/tencent/config.d.ts.map +1 -0
- package/dist/resource/tencent/config.js +24 -0
- package/dist/resource/tencent/config.js.map +1 -0
- package/dist/resource/tencent/prompt.d.ts +2 -0
- package/dist/resource/tencent/prompt.d.ts.map +1 -0
- package/dist/resource/tencent/prompt.js +19 -0
- package/dist/resource/tencent/prompt.js.map +1 -0
- package/dist/resource/tencent/tencent.d.ts +8 -0
- package/dist/resource/tencent/tencent.d.ts.map +1 -0
- package/dist/resource/tencent/tencent.js +24 -0
- package/dist/resource/tencent/tencent.js.map +1 -0
- package/dist/resource/trello/config.d.ts +22 -0
- package/dist/resource/trello/config.d.ts.map +1 -0
- package/dist/resource/trello/config.js +35 -0
- package/dist/resource/trello/config.js.map +1 -0
- package/dist/resource/trello/trello.d.ts +32 -0
- package/dist/resource/trello/trello.d.ts.map +1 -0
- package/dist/resource/trello/trello.js +94 -0
- package/dist/resource/trello/trello.js.map +1 -0
- package/dist/resource/wasabi/config.d.ts +17 -0
- package/dist/resource/wasabi/config.d.ts.map +1 -0
- package/dist/resource/wasabi/config.js +29 -0
- package/dist/resource/wasabi/config.js.map +1 -0
- package/dist/resource/wasabi/prompt.d.ts +2 -0
- package/dist/resource/wasabi/prompt.d.ts.map +1 -0
- package/dist/resource/wasabi/prompt.js +19 -0
- package/dist/resource/wasabi/prompt.js.map +1 -0
- package/dist/resource/wasabi/wasabi.d.ts +8 -0
- package/dist/resource/wasabi/wasabi.d.ts.map +1 -0
- package/dist/resource/wasabi/wasabi.js +24 -0
- package/dist/resource/wasabi/wasabi.js.map +1 -0
- package/dist/test-utils.d.ts +37 -0
- package/dist/test-utils.d.ts.map +1 -0
- package/dist/test-utils.js +518 -0
- package/dist/test-utils.js.map +1 -0
- package/dist/workspace.d.ts +10 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +62 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +13 -6
- package/dist/aliyun-DR6KT3H6.js +0 -8
- package/dist/aliyun-DR6KT3H6.js.map +0 -1
- package/dist/backblaze-XCLZXTES.js +0 -8
- package/dist/backblaze-XCLZXTES.js.map +0 -1
- package/dist/box-XBCSU3AA.js +0 -8
- package/dist/box-XBCSU3AA.js.map +0 -1
- package/dist/ceph-F5S2NMTO.js +0 -8
- package/dist/ceph-F5S2NMTO.js.map +0 -1
- package/dist/chunk-2J35WXX5.js +0 -28
- package/dist/chunk-2J35WXX5.js.map +0 -1
- package/dist/chunk-2WNXK742.js +0 -89
- package/dist/chunk-2WNXK742.js.map +0 -1
- package/dist/chunk-2WSKXBSV.js +0 -139
- package/dist/chunk-2WSKXBSV.js.map +0 -1
- package/dist/chunk-37WKCB2E.js +0 -95
- package/dist/chunk-37WKCB2E.js.map +0 -1
- package/dist/chunk-3IYCVC7W.js +0 -96
- package/dist/chunk-3IYCVC7W.js.map +0 -1
- package/dist/chunk-46HNNKFR.js +0 -95
- package/dist/chunk-46HNNKFR.js.map +0 -1
- package/dist/chunk-4IF4TGAI.js +0 -11
- package/dist/chunk-4IF4TGAI.js.map +0 -1
- package/dist/chunk-5OZJMTYW.js +0 -113
- package/dist/chunk-5OZJMTYW.js.map +0 -1
- package/dist/chunk-5UM6EBVW.js +0 -108
- package/dist/chunk-5UM6EBVW.js.map +0 -1
- package/dist/chunk-6HRSCX2U.js +0 -98
- package/dist/chunk-6HRSCX2U.js.map +0 -1
- package/dist/chunk-7HWQAYXR.js +0 -85
- package/dist/chunk-7HWQAYXR.js.map +0 -1
- package/dist/chunk-AUZNQ7EI.js +0 -85
- package/dist/chunk-AUZNQ7EI.js.map +0 -1
- package/dist/chunk-BGA2F226.js +0 -182
- package/dist/chunk-BGA2F226.js.map +0 -1
- package/dist/chunk-BV372CUO.js +0 -90
- package/dist/chunk-BV372CUO.js.map +0 -1
- package/dist/chunk-C4THTILY.js +0 -95
- package/dist/chunk-C4THTILY.js.map +0 -1
- package/dist/chunk-D4MEOKNQ.js +0 -95
- package/dist/chunk-D4MEOKNQ.js.map +0 -1
- package/dist/chunk-D4RAMWYH.js +0 -88
- package/dist/chunk-D4RAMWYH.js.map +0 -1
- package/dist/chunk-EHIT6WCY.js +0 -95
- package/dist/chunk-EHIT6WCY.js.map +0 -1
- package/dist/chunk-EN6TZYT2.js +0 -95
- package/dist/chunk-EN6TZYT2.js.map +0 -1
- package/dist/chunk-FTDVV7EQ.js +0 -85
- package/dist/chunk-FTDVV7EQ.js.map +0 -1
- package/dist/chunk-G67Q2Z6I.js +0 -95
- package/dist/chunk-G67Q2Z6I.js.map +0 -1
- package/dist/chunk-GM2QMJAY.js +0 -85
- package/dist/chunk-GM2QMJAY.js.map +0 -1
- package/dist/chunk-HRWLHJX2.js +0 -84
- package/dist/chunk-HRWLHJX2.js.map +0 -1
- package/dist/chunk-INEXV2PN.js +0 -91
- package/dist/chunk-INEXV2PN.js.map +0 -1
- package/dist/chunk-IZMKMD3O.js +0 -11
- package/dist/chunk-IZMKMD3O.js.map +0 -1
- package/dist/chunk-JUVMJ5GI.js +0 -85
- package/dist/chunk-JUVMJ5GI.js.map +0 -1
- package/dist/chunk-KL2VFYUV.js +0 -159
- package/dist/chunk-KL2VFYUV.js.map +0 -1
- package/dist/chunk-L64GRKOD.js +0 -38
- package/dist/chunk-L64GRKOD.js.map +0 -1
- package/dist/chunk-LPDLPRPS.js +0 -11
- package/dist/chunk-LPDLPRPS.js.map +0 -1
- package/dist/chunk-M2UF2JHJ.js +0 -11
- package/dist/chunk-M2UF2JHJ.js.map +0 -1
- package/dist/chunk-NVHPJ5CV.js +0 -109
- package/dist/chunk-NVHPJ5CV.js.map +0 -1
- package/dist/chunk-OSTDTTWI.js +0 -35
- package/dist/chunk-OSTDTTWI.js.map +0 -1
- package/dist/chunk-PQCRGTSA.js +0 -85
- package/dist/chunk-PQCRGTSA.js.map +0 -1
- package/dist/chunk-QE7QNA45.js +0 -114
- package/dist/chunk-QE7QNA45.js.map +0 -1
- package/dist/chunk-QG2NUNCY.js +0 -95
- package/dist/chunk-QG2NUNCY.js.map +0 -1
- package/dist/chunk-UFHBDBZD.js +0 -1212
- package/dist/chunk-UFHBDBZD.js.map +0 -1
- package/dist/chunk-UY22T4AC.js +0 -112
- package/dist/chunk-UY22T4AC.js.map +0 -1
- package/dist/chunk-XJBC3OYX.js +0 -11
- package/dist/chunk-XJBC3OYX.js.map +0 -1
- package/dist/chunk-Y6DYUK6J.js +0 -85
- package/dist/chunk-Y6DYUK6J.js.map +0 -1
- package/dist/chunk-YOCTIHQZ.js +0 -89
- package/dist/chunk-YOCTIHQZ.js.map +0 -1
- package/dist/chunk-ZDJPUXYH.js +0 -101
- package/dist/chunk-ZDJPUXYH.js.map +0 -1
- package/dist/chunk-ZKCOSE3R.js +0 -90
- package/dist/chunk-ZKCOSE3R.js.map +0 -1
- package/dist/chunk-ZTHVEXIV.js +0 -11
- package/dist/chunk-ZTHVEXIV.js.map +0 -1
- package/dist/config-2Y6LZKLV.js +0 -9
- package/dist/config-2Y6LZKLV.js.map +0 -1
- package/dist/config-4GSOMUMF.js +0 -9
- package/dist/config-4GSOMUMF.js.map +0 -1
- package/dist/config-5YBUWFUP.js +0 -9
- package/dist/config-5YBUWFUP.js.map +0 -1
- package/dist/config-DE5OZ4I7.js +0 -9
- package/dist/config-DE5OZ4I7.js.map +0 -1
- package/dist/config-ELDOFRJW.js +0 -9
- package/dist/config-ELDOFRJW.js.map +0 -1
- package/dist/config-FPM3LAW7.js +0 -9
- package/dist/config-FPM3LAW7.js.map +0 -1
- package/dist/config-JY557MA6.js +0 -9
- package/dist/config-JY557MA6.js.map +0 -1
- package/dist/config-UU27ALAA.js +0 -9
- package/dist/config-UU27ALAA.js.map +0 -1
- package/dist/config-WRACCRPN.js +0 -9
- package/dist/config-WRACCRPN.js.map +0 -1
- package/dist/digitalocean-QDHTRS2W.js +0 -8
- package/dist/digitalocean-QDHTRS2W.js.map +0 -1
- package/dist/discord-ERUI7OAQ.js +0 -7
- package/dist/discord-ERUI7OAQ.js.map +0 -1
- package/dist/dropbox-3U6D4HLE.js +0 -8
- package/dist/dropbox-3U6D4HLE.js.map +0 -1
- package/dist/gcal-MTBSDG34.js +0 -8
- package/dist/gcal-MTBSDG34.js.map +0 -1
- package/dist/gcs-KNGRBBET.js +0 -8
- package/dist/gcs-KNGRBBET.js.map +0 -1
- package/dist/gdocs-RUIOIRKP.js +0 -8
- package/dist/gdocs-RUIOIRKP.js.map +0 -1
- package/dist/gdrive-5JB7ZKEP.js +0 -8
- package/dist/gdrive-5JB7ZKEP.js.map +0 -1
- package/dist/github-CIXBFBVO.js +0 -7
- package/dist/github-CIXBFBVO.js.map +0 -1
- package/dist/github_ci-HR6YOYAO.js +0 -8
- package/dist/github_ci-HR6YOYAO.js.map +0 -1
- package/dist/gmail-JHGWTQU5.js +0 -8
- package/dist/gmail-JHGWTQU5.js.map +0 -1
- package/dist/gsheets-N54JO2RS.js +0 -8
- package/dist/gsheets-N54JO2RS.js.map +0 -1
- package/dist/gslides-B4VMNLMB.js +0 -8
- package/dist/gslides-B4VMNLMB.js.map +0 -1
- package/dist/langfuse-HEUJGDOC.js +0 -7
- package/dist/langfuse-HEUJGDOC.js.map +0 -1
- package/dist/linear-J4QQ3CA6.js +0 -7
- package/dist/linear-J4QQ3CA6.js.map +0 -1
- package/dist/minio-BXWHJ6K5.js +0 -8
- package/dist/minio-BXWHJ6K5.js.map +0 -1
- package/dist/mongodb-YZP643ZU.js +0 -7
- package/dist/mongodb-YZP643ZU.js.map +0 -1
- package/dist/notion-I5S5SRLO.js +0 -7
- package/dist/notion-I5S5SRLO.js.map +0 -1
- package/dist/oci-XOPKH4AE.js +0 -8
- package/dist/oci-XOPKH4AE.js.map +0 -1
- package/dist/opfs-36QO72Y5.js +0 -7
- package/dist/opfs-36QO72Y5.js.map +0 -1
- package/dist/postgres-HPOMN2AR.js +0 -7
- package/dist/postgres-HPOMN2AR.js.map +0 -1
- package/dist/qingstor-JKAHLK62.js +0 -8
- package/dist/qingstor-JKAHLK62.js.map +0 -1
- package/dist/r2-L3QXQ76M.js +0 -8
- package/dist/r2-L3QXQ76M.js.map +0 -1
- package/dist/s3-LRZJPGHK.js +0 -9
- package/dist/s3-LRZJPGHK.js.map +0 -1
- package/dist/scaleway-CGNDYNKS.js +0 -8
- package/dist/scaleway-CGNDYNKS.js.map +0 -1
- package/dist/seaweedfs-BSQWCBIR.js +0 -8
- package/dist/seaweedfs-BSQWCBIR.js.map +0 -1
- package/dist/slack-62ECSENR.js +0 -7
- package/dist/slack-62ECSENR.js.map +0 -1
- package/dist/supabase-J66NXWAF.js +0 -8
- package/dist/supabase-J66NXWAF.js.map +0 -1
- package/dist/tencent-AC667LV3.js +0 -8
- package/dist/tencent-AC667LV3.js.map +0 -1
- package/dist/trello-SUPG6VDF.js +0 -7
- package/dist/trello-SUPG6VDF.js.map +0 -1
- package/dist/wasabi-5KKPW6LH.js +0 -8
- 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":"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,UAAU,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AAClG,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,YAAY,EACZ,CAAC,GACF,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AA6BlD,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,oBAAoB,EAAE,YAAY,CAChC,CAAC,CAAC,MAAM,CAAgC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,CAChF;IACD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAQ;IAER,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,oBAAoB,EAAE,GAAG,KAAK,EAAE,CAAC,CAAA;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAqB,EACrB,QAAmC;IAEnC,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAChF,CAAC,CAAA;AACH,CAAC;AASD;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAIhC,OAKD;IACC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,OAAO,CAAA;IACtE,MAAM,gBAAgB,GAAG,CAAC,MAAS,EAAc,EAAE;QACjD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,QAAQ,CAAA;QACnF,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAE,SAAe,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAC3E,CAAC,CAAA;IACD,OAAO;QACL,gBAAgB;QAChB,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YACrB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;YACzC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,aAAa,CAAA;YAC7C,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;gBACjD,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,GAAG,CAAC,MAAM,CAAC,kBAAkB,KAAK,SAAS;oBACzC,CAAC,CAAC,EAAE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE;oBACnD,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3E,CAAA;QACH,CAAC;QACD,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAiB;QAC1E,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACnB,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAiB;KACtF,CAAA;AACH,CAAC;AAWD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAgB,eAGpB,SAAQ,UAAU;IACA,IAAI,CAAQ;IACrB,WAAW,CAAS;IACZ,QAAQ,CAAyB;IACjC,aAAa,CAA8B;IAC3C,WAAW,CAAgC;IAE5D,YACE,IAAY,EACZ,MAAe,EACf,QAAkB,EAClB,MAAsC;QAEtC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA;QACzB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA;QACzB,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAA;QACnD,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAA;IACpE,CAAC;IAEQ,GAAG;QACV,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAEQ,QAAQ;QACf,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;IAEQ,QAAQ;QACf,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;SAC3C,CAAC,CAAA;IACJ,CAAC;IAEQ,SAAS,CAAC,MAAuC;QACxD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CACF"}
|
|
@@ -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
|