@struktoai/mirage-node 0.0.7-alpha.1 → 0.0.7-alpha.3
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/LICENSE +201 -0
- package/README.md +28 -29
- package/THIRD_PARTY_NOTICES +227 -0
- package/dist/accessor/disk.d.ts +2 -1
- package/dist/accessor/disk.d.ts.map +1 -1
- package/dist/accessor/disk.js +5 -1
- package/dist/accessor/disk.js.map +1 -1
- package/dist/accessor/email.d.ts +8 -0
- package/dist/accessor/email.d.ts.map +1 -1
- package/dist/accessor/email.js +33 -14
- package/dist/accessor/email.js.map +1 -1
- package/dist/accessor/gridfs.d.ts +1 -1
- package/dist/accessor/gridfs.d.ts.map +1 -1
- package/dist/accessor/gridfs.js +2 -2
- package/dist/accessor/gridfs.js.map +1 -1
- package/dist/accessor/hf_buckets.d.ts +39 -0
- package/dist/accessor/hf_buckets.d.ts.map +1 -0
- package/dist/accessor/hf_buckets.js +92 -0
- package/dist/accessor/hf_buckets.js.map +1 -0
- package/dist/accessor/hf_hub.d.ts +45 -40
- package/dist/accessor/hf_hub.d.ts.map +1 -1
- package/dist/accessor/hf_hub.js +72 -42
- package/dist/accessor/hf_hub.js.map +1 -1
- package/dist/accessor/nextcloud.d.ts +2 -2
- package/dist/accessor/nextcloud.d.ts.map +1 -1
- package/dist/accessor/nextcloud.js +4 -4
- package/dist/accessor/nextcloud.js.map +1 -1
- package/dist/accessor/ssh.d.ts +19 -1
- package/dist/accessor/ssh.d.ts.map +1 -1
- package/dist/accessor/ssh.js +141 -25
- package/dist/accessor/ssh.js.map +1 -1
- package/dist/cache/file/redis.d.ts +48 -10
- package/dist/cache/file/redis.d.ts.map +1 -1
- package/dist/cache/file/redis.js +204 -75
- package/dist/cache/file/redis.js.map +1 -1
- package/dist/cache/file/version.lua +13 -0
- package/dist/commands/builtin/utils/http.d.ts +2 -0
- package/dist/commands/builtin/utils/http.d.ts.map +1 -0
- package/dist/commands/builtin/utils/http.js +26 -0
- package/dist/commands/builtin/utils/http.js.map +1 -0
- package/dist/commands/cli/builtin/hf/accessor.d.ts +7 -21
- package/dist/commands/cli/builtin/hf/accessor.d.ts.map +1 -1
- package/dist/commands/cli/builtin/hf/accessor.js +14 -37
- package/dist/commands/cli/builtin/hf/accessor.js.map +1 -1
- package/dist/commands/cli/builtin/hf/auth.d.ts +5 -4
- package/dist/commands/cli/builtin/hf/auth.d.ts.map +1 -1
- package/dist/commands/cli/builtin/hf/auth.js +9 -10
- package/dist/commands/cli/builtin/hf/auth.js.map +1 -1
- package/dist/commands/cli/builtin/hf/download.d.ts +7 -6
- package/dist/commands/cli/builtin/hf/download.d.ts.map +1 -1
- package/dist/commands/cli/builtin/hf/download.js +100 -96
- package/dist/commands/cli/builtin/hf/download.js.map +1 -1
- package/dist/commands/cli/builtin/hf/env.d.ts +5 -4
- package/dist/commands/cli/builtin/hf/env.d.ts.map +1 -1
- package/dist/commands/cli/builtin/hf/env.js +4 -6
- package/dist/commands/cli/builtin/hf/env.js.map +1 -1
- package/dist/commands/cli/builtin/hf/files.d.ts +10 -7
- package/dist/commands/cli/builtin/hf/files.d.ts.map +1 -1
- package/dist/commands/cli/builtin/hf/files.js +36 -19
- package/dist/commands/cli/builtin/hf/files.js.map +1 -1
- package/dist/commands/cli/builtin/hf/index.d.ts +2 -2
- package/dist/commands/cli/builtin/hf/index.d.ts.map +1 -1
- package/dist/commands/cli/builtin/hf/index.js +148 -178
- package/dist/commands/cli/builtin/hf/index.js.map +1 -1
- package/dist/commands/cli/builtin/hf/repo.d.ts +7 -6
- package/dist/commands/cli/builtin/hf/repo.d.ts.map +1 -1
- package/dist/commands/cli/builtin/hf/repo.js +32 -34
- package/dist/commands/cli/builtin/hf/repo.js.map +1 -1
- package/dist/commands/cli/builtin/hf/upload.d.ts +7 -17
- package/dist/commands/cli/builtin/hf/upload.d.ts.map +1 -1
- package/dist/commands/cli/builtin/hf/upload.js +99 -96
- package/dist/commands/cli/builtin/hf/upload.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/compose.d.ts +4 -3
- package/dist/commands/cli/builtin/himalaya/compose.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/compose.js +2 -2
- package/dist/commands/cli/builtin/himalaya/compose.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/deliver.d.ts +5 -5
- package/dist/commands/cli/builtin/himalaya/deliver.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/deliver.js +13 -19
- package/dist/commands/cli/builtin/himalaya/deliver.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/forward.d.ts +4 -3
- package/dist/commands/cli/builtin/himalaya/forward.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/forward.js +7 -15
- package/dist/commands/cli/builtin/himalaya/forward.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/index.d.ts +2 -2
- package/dist/commands/cli/builtin/himalaya/index.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/index.js +110 -147
- package/dist/commands/cli/builtin/himalaya/index.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/list.d.ts +4 -3
- package/dist/commands/cli/builtin/himalaya/list.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/list.js +10 -20
- package/dist/commands/cli/builtin/himalaya/list.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/query.d.ts +8 -1
- package/dist/commands/cli/builtin/himalaya/query.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/query.js +13 -19
- package/dist/commands/cli/builtin/himalaya/query.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/read.d.ts +4 -3
- package/dist/commands/cli/builtin/himalaya/read.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/read.js +12 -19
- package/dist/commands/cli/builtin/himalaya/read.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/reply.d.ts +4 -3
- package/dist/commands/cli/builtin/himalaya/reply.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/reply.js +7 -15
- package/dist/commands/cli/builtin/himalaya/reply.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/search.d.ts +4 -3
- package/dist/commands/cli/builtin/himalaya/search.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/search.js +11 -21
- package/dist/commands/cli/builtin/himalaya/search.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/send.d.ts +4 -3
- package/dist/commands/cli/builtin/himalaya/send.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/send.js +6 -6
- package/dist/commands/cli/builtin/himalaya/send.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/smtp.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/smtp.js +5 -1
- package/dist/commands/cli/builtin/himalaya/smtp.js.map +1 -1
- package/dist/commands/cli/builtin/himalaya/util.d.ts +4 -4
- package/dist/commands/cli/builtin/himalaya/util.d.ts.map +1 -1
- package/dist/commands/cli/builtin/himalaya/util.js +17 -18
- package/dist/commands/cli/builtin/himalaya/util.js.map +1 -1
- package/dist/compression_codecs.js +21 -13
- package/dist/compression_codecs.js.map +1 -1
- package/dist/config.d.ts +38 -18
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +244 -133
- package/dist/config.js.map +1 -1
- package/dist/core/disk/append.d.ts.map +1 -1
- package/dist/core/disk/append.js +4 -7
- package/dist/core/disk/append.js.map +1 -1
- package/dist/core/disk/constants.d.ts +1 -1
- package/dist/core/disk/constants.d.ts.map +1 -1
- package/dist/core/disk/constants.js +3 -1
- package/dist/core/disk/constants.js.map +1 -1
- package/dist/core/disk/copy.d.ts.map +1 -1
- package/dist/core/disk/copy.js +3 -5
- package/dist/core/disk/copy.js.map +1 -1
- package/dist/core/disk/create.d.ts +1 -1
- package/dist/core/disk/create.d.ts.map +1 -1
- package/dist/core/disk/create.js +15 -3
- package/dist/core/disk/create.js.map +1 -1
- package/dist/core/disk/dest.d.ts +1 -1
- package/dist/core/disk/dest.js +3 -3
- package/dist/core/disk/dest.js.map +1 -1
- package/dist/core/disk/events/constants.d.ts.map +1 -0
- package/dist/core/disk/events/constants.js.map +1 -0
- package/dist/core/disk/events/hook.d.ts +54 -0
- package/dist/core/disk/events/hook.d.ts.map +1 -0
- package/dist/core/disk/events/hook.js +108 -0
- package/dist/core/disk/events/hook.js.map +1 -0
- package/dist/core/disk/events/index.d.ts +2 -0
- package/dist/core/disk/events/index.d.ts.map +1 -0
- package/dist/core/disk/events/index.js +15 -0
- package/dist/core/disk/events/index.js.map +1 -0
- package/dist/core/disk/exists.d.ts.map +1 -1
- package/dist/core/disk/exists.js +9 -6
- package/dist/core/disk/exists.js.map +1 -1
- package/dist/core/disk/listing_version.d.ts +27 -0
- package/dist/core/disk/listing_version.d.ts.map +1 -0
- package/dist/core/disk/listing_version.js +50 -0
- package/dist/core/disk/listing_version.js.map +1 -0
- package/dist/core/disk/mkdir.d.ts.map +1 -1
- package/dist/core/disk/mkdir.js +2 -6
- package/dist/core/disk/mkdir.js.map +1 -1
- package/dist/core/disk/pwrite.d.ts +4 -0
- package/dist/core/disk/pwrite.d.ts.map +1 -0
- package/dist/core/disk/pwrite.js +41 -0
- package/dist/core/disk/pwrite.js.map +1 -0
- package/dist/core/disk/read.d.ts +1 -2
- package/dist/core/disk/read.d.ts.map +1 -1
- package/dist/core/disk/read.js +12 -14
- package/dist/core/disk/read.js.map +1 -1
- package/dist/core/disk/readdir.d.ts +2 -3
- package/dist/core/disk/readdir.d.ts.map +1 -1
- package/dist/core/disk/readdir.js +35 -38
- package/dist/core/disk/readdir.js.map +1 -1
- package/dist/core/disk/rename.d.ts.map +1 -1
- package/dist/core/disk/rename.js +4 -10
- package/dist/core/disk/rename.js.map +1 -1
- package/dist/core/disk/rm.d.ts.map +1 -1
- package/dist/core/disk/rm.js +2 -4
- package/dist/core/disk/rm.js.map +1 -1
- package/dist/core/disk/rmdir.d.ts.map +1 -1
- package/dist/core/disk/rmdir.js +4 -7
- package/dist/core/disk/rmdir.js.map +1 -1
- package/dist/core/disk/set_attrs.d.ts.map +1 -1
- package/dist/core/disk/set_attrs.js +5 -4
- package/dist/core/disk/set_attrs.js.map +1 -1
- package/dist/core/disk/stat.d.ts +7 -0
- package/dist/core/disk/stat.d.ts.map +1 -1
- package/dist/core/disk/stat.js +32 -15
- package/dist/core/disk/stat.js.map +1 -1
- package/dist/core/disk/stream.d.ts +1 -1
- package/dist/core/disk/stream.d.ts.map +1 -1
- package/dist/core/disk/stream.js +8 -8
- package/dist/core/disk/stream.js.map +1 -1
- package/dist/core/disk/truncate.d.ts +1 -1
- package/dist/core/disk/truncate.d.ts.map +1 -1
- package/dist/core/disk/truncate.js +19 -19
- package/dist/core/disk/truncate.js.map +1 -1
- package/dist/core/disk/unlink.d.ts.map +1 -1
- package/dist/core/disk/unlink.js +13 -8
- package/dist/core/disk/unlink.js.map +1 -1
- package/dist/core/disk/utils.d.ts +31 -0
- package/dist/core/disk/utils.d.ts.map +1 -1
- package/dist/core/disk/utils.js +92 -1
- package/dist/core/disk/utils.js.map +1 -1
- package/dist/core/disk/write.d.ts +3 -1
- package/dist/core/disk/write.d.ts.map +1 -1
- package/dist/core/disk/write.js +66 -9
- package/dist/core/disk/write.js.map +1 -1
- package/dist/core/email/client.d.ts +17 -1
- package/dist/core/email/client.d.ts.map +1 -1
- package/dist/core/email/client.js +40 -15
- package/dist/core/email/client.js.map +1 -1
- package/dist/core/email/config.d.ts +3 -2
- package/dist/core/email/config.d.ts.map +1 -1
- package/dist/core/email/config.js +9 -1
- package/dist/core/email/config.js.map +1 -1
- package/dist/core/email/events.d.ts +22 -0
- package/dist/core/email/events.d.ts.map +1 -0
- package/dist/core/email/events.js +44 -0
- package/dist/core/email/events.js.map +1 -0
- package/dist/core/email/read.d.ts +9 -3
- package/dist/core/email/read.d.ts.map +1 -1
- package/dist/core/email/read.js +36 -10
- package/dist/core/email/read.js.map +1 -1
- package/dist/core/email/readdir.d.ts.map +1 -1
- package/dist/core/email/readdir.js +29 -63
- package/dist/core/email/readdir.js.map +1 -1
- package/dist/core/email/render.d.ts +2 -1
- package/dist/core/email/render.d.ts.map +1 -1
- package/dist/core/email/render.js +21 -2
- package/dist/core/email/render.js.map +1 -1
- package/dist/core/email/scope.js +3 -3
- package/dist/core/email/scope.js.map +1 -1
- package/dist/core/email/search.d.ts +33 -1
- package/dist/core/email/search.d.ts.map +1 -1
- package/dist/core/email/search.js +116 -18
- package/dist/core/email/search.js.map +1 -1
- package/dist/core/email/stat.d.ts +1 -3
- package/dist/core/email/stat.d.ts.map +1 -1
- package/dist/core/email/stat.js +1 -40
- package/dist/core/email/stat.js.map +1 -1
- package/dist/core/gridfs/client.d.ts +1 -5
- package/dist/core/gridfs/client.d.ts.map +1 -1
- package/dist/core/gridfs/client.js +2 -14
- package/dist/core/gridfs/client.js.map +1 -1
- package/dist/core/gridfs/create.d.ts +1 -1
- package/dist/core/gridfs/create.d.ts.map +1 -1
- package/dist/core/gridfs/driver.d.ts +0 -16
- package/dist/core/gridfs/driver.d.ts.map +1 -1
- package/dist/core/gridfs/driver.js +45 -103
- package/dist/core/gridfs/driver.js.map +1 -1
- package/dist/core/gridfs/events.d.ts +33 -0
- package/dist/core/gridfs/events.d.ts.map +1 -0
- package/dist/core/gridfs/events.js +117 -0
- package/dist/core/gridfs/events.js.map +1 -0
- package/dist/core/gridfs/read.d.ts +1 -2
- package/dist/core/gridfs/read.d.ts.map +1 -1
- package/dist/core/gridfs/read.js +8 -14
- package/dist/core/gridfs/read.js.map +1 -1
- package/dist/core/gridfs/readdir.d.ts +1 -0
- package/dist/core/gridfs/readdir.d.ts.map +1 -1
- package/dist/core/gridfs/readdir.js +2 -1
- package/dist/core/gridfs/readdir.js.map +1 -1
- package/dist/core/gridfs/stream.d.ts +1 -14
- package/dist/core/gridfs/stream.d.ts.map +1 -1
- package/dist/core/gridfs/stream.js +8 -21
- package/dist/core/gridfs/stream.js.map +1 -1
- package/dist/core/gridfs/write.d.ts +1 -0
- package/dist/core/gridfs/write.d.ts.map +1 -1
- package/dist/core/gridfs/write.js +3 -2
- package/dist/core/gridfs/write.js.map +1 -1
- package/dist/core/hf_buckets/constants.d.ts +2 -0
- package/dist/core/hf_buckets/constants.d.ts.map +1 -0
- package/dist/core/hf_buckets/constants.js +15 -0
- package/dist/core/hf_buckets/constants.js.map +1 -0
- package/dist/core/hf_buckets/create.d.ts +2 -0
- package/dist/core/hf_buckets/create.d.ts.map +1 -0
- package/dist/core/hf_buckets/create.js.map +1 -0
- package/dist/core/hf_buckets/driver.d.ts +15 -0
- package/dist/core/hf_buckets/driver.d.ts.map +1 -0
- package/dist/core/hf_buckets/driver.js +211 -0
- package/dist/core/hf_buckets/driver.js.map +1 -0
- package/dist/core/hf_buckets/exists.d.ts +2 -0
- package/dist/core/hf_buckets/exists.d.ts.map +1 -0
- package/dist/core/hf_buckets/exists.js.map +1 -0
- package/dist/core/hf_buckets/hub.d.ts +37 -0
- package/dist/core/hf_buckets/hub.d.ts.map +1 -0
- package/dist/core/hf_buckets/hub.js +74 -0
- package/dist/core/hf_buckets/hub.js.map +1 -0
- package/dist/core/hf_buckets/mkdir.d.ts +2 -0
- package/dist/core/hf_buckets/mkdir.d.ts.map +1 -0
- package/dist/core/hf_buckets/mkdir.js.map +1 -0
- package/dist/core/hf_buckets/read.d.ts +23 -0
- package/dist/core/hf_buckets/read.d.ts.map +1 -0
- package/dist/core/hf_buckets/read.js +79 -0
- package/dist/core/hf_buckets/read.js.map +1 -0
- package/dist/core/hf_buckets/readdir.d.ts +3 -0
- package/dist/core/hf_buckets/readdir.d.ts.map +1 -0
- package/dist/core/hf_buckets/readdir.js +18 -0
- package/dist/core/hf_buckets/readdir.js.map +1 -0
- package/dist/core/hf_buckets/rm.d.ts +2 -0
- package/dist/core/hf_buckets/rm.d.ts.map +1 -0
- package/dist/core/hf_buckets/rm.js.map +1 -0
- package/dist/core/hf_buckets/stat.d.ts +12 -0
- package/dist/core/hf_buckets/stat.d.ts.map +1 -0
- package/dist/core/hf_buckets/stat.js +29 -0
- package/dist/core/hf_buckets/stat.js.map +1 -0
- package/dist/core/hf_buckets/stream.d.ts +5 -0
- package/dist/core/hf_buckets/stream.d.ts.map +1 -0
- package/dist/core/hf_buckets/stream.js +46 -0
- package/dist/core/hf_buckets/stream.js.map +1 -0
- package/dist/core/hf_buckets/unlink.d.ts +2 -0
- package/dist/core/hf_buckets/unlink.d.ts.map +1 -0
- package/dist/core/hf_buckets/unlink.js.map +1 -0
- package/dist/core/hf_buckets/write.d.ts +2 -0
- package/dist/core/hf_buckets/write.d.ts.map +1 -0
- package/dist/core/hf_buckets/write.js +17 -0
- package/dist/core/hf_buckets/write.js.map +1 -0
- package/dist/core/hf_hub/account.d.ts +3 -3
- package/dist/core/hf_hub/account.d.ts.map +1 -1
- package/dist/core/hf_hub/account.js +5 -5
- package/dist/core/hf_hub/account.js.map +1 -1
- package/dist/core/hf_hub/admin.d.ts +5 -7
- package/dist/core/hf_hub/admin.d.ts.map +1 -1
- package/dist/core/hf_hub/admin.js +13 -19
- package/dist/core/hf_hub/admin.js.map +1 -1
- package/dist/core/hf_hub/cache.d.ts +5 -4
- package/dist/core/hf_hub/cache.d.ts.map +1 -1
- package/dist/core/hf_hub/cache.js +4 -4
- package/dist/core/hf_hub/cache.js.map +1 -1
- package/dist/core/hf_hub/checksum.d.ts +17 -0
- package/dist/core/hf_hub/checksum.d.ts.map +1 -0
- package/dist/core/hf_hub/checksum.js +50 -0
- package/dist/core/hf_hub/checksum.js.map +1 -0
- package/dist/core/hf_hub/client.d.ts +61 -8
- package/dist/core/hf_hub/client.d.ts.map +1 -1
- package/dist/core/hf_hub/client.js +156 -22
- package/dist/core/hf_hub/client.js.map +1 -1
- package/dist/core/hf_hub/commit.d.ts +12 -5
- package/dist/core/hf_hub/commit.d.ts.map +1 -1
- package/dist/core/hf_hub/commit.js +42 -18
- package/dist/core/hf_hub/commit.js.map +1 -1
- package/dist/core/hf_hub/config.d.ts +2 -2
- package/dist/core/hf_hub/config.d.ts.map +1 -1
- package/dist/core/hf_hub/config.js +1 -1
- package/dist/core/hf_hub/config.js.map +1 -1
- package/dist/core/hf_hub/constants.d.ts +5 -0
- package/dist/core/hf_hub/constants.d.ts.map +1 -1
- package/dist/core/hf_hub/constants.js +32 -0
- package/dist/core/hf_hub/constants.js.map +1 -1
- package/dist/core/hf_hub/exists.d.ts +6 -4
- package/dist/core/hf_hub/exists.d.ts.map +1 -1
- package/dist/core/hf_hub/exists.js +7 -10
- package/dist/core/hf_hub/exists.js.map +1 -1
- package/dist/core/hf_hub/lookup.d.ts +10 -29
- package/dist/core/hf_hub/lookup.d.ts.map +1 -1
- package/dist/core/hf_hub/lookup.js +17 -59
- package/dist/core/hf_hub/lookup.js.map +1 -1
- package/dist/core/hf_hub/read.d.ts +10 -9
- package/dist/core/hf_hub/read.d.ts.map +1 -1
- package/dist/core/hf_hub/read.js +28 -26
- package/dist/core/hf_hub/read.js.map +1 -1
- package/dist/core/hf_hub/readdir.d.ts +8 -5
- package/dist/core/hf_hub/readdir.d.ts.map +1 -1
- package/dist/core/hf_hub/readdir.js +17 -17
- package/dist/core/hf_hub/readdir.js.map +1 -1
- package/dist/core/hf_hub/repo.d.ts +16 -7
- package/dist/core/hf_hub/repo.d.ts.map +1 -1
- package/dist/core/hf_hub/repo.js +25 -12
- package/dist/core/hf_hub/repo.js.map +1 -1
- package/dist/core/hf_hub/stat.d.ts +9 -1
- package/dist/core/hf_hub/stat.d.ts.map +1 -1
- package/dist/core/hf_hub/stat.js +54 -45
- package/dist/core/hf_hub/stat.js.map +1 -1
- package/dist/core/hf_hub/stream.d.ts +2 -5
- package/dist/core/hf_hub/stream.d.ts.map +1 -1
- package/dist/core/hf_hub/stream.js +19 -11
- package/dist/core/hf_hub/stream.js.map +1 -1
- package/dist/core/hf_hub/tree.d.ts +65 -48
- package/dist/core/hf_hub/tree.d.ts.map +1 -1
- package/dist/core/hf_hub/tree.js +200 -155
- package/dist/core/hf_hub/tree.js.map +1 -1
- package/dist/core/nextcloud/capacity.d.ts +9 -0
- package/dist/core/nextcloud/capacity.d.ts.map +1 -0
- package/dist/core/nextcloud/capacity.js +36 -0
- package/dist/core/nextcloud/capacity.js.map +1 -0
- package/dist/core/nextcloud/checksum.d.ts +16 -0
- package/dist/core/nextcloud/checksum.d.ts.map +1 -0
- package/dist/core/nextcloud/checksum.js +75 -0
- package/dist/core/nextcloud/checksum.js.map +1 -0
- package/dist/core/nextcloud/constants.d.ts +4 -0
- package/dist/core/nextcloud/constants.d.ts.map +1 -1
- package/dist/core/nextcloud/constants.js +16 -0
- package/dist/core/nextcloud/constants.js.map +1 -1
- package/dist/core/nextcloud/copy.d.ts +8 -1
- package/dist/core/nextcloud/copy.d.ts.map +1 -1
- package/dist/core/nextcloud/copy.js +54 -3
- package/dist/core/nextcloud/copy.js.map +1 -1
- package/dist/core/nextcloud/create.d.ts +1 -2
- package/dist/core/nextcloud/create.d.ts.map +1 -1
- package/dist/core/nextcloud/create.js +2 -2
- package/dist/core/nextcloud/create.js.map +1 -1
- package/dist/core/nextcloud/dav.d.ts +13 -0
- package/dist/core/nextcloud/dav.d.ts.map +1 -0
- package/dist/core/nextcloud/dav.js +39 -0
- package/dist/core/nextcloud/dav.js.map +1 -0
- package/dist/core/nextcloud/events.d.ts +28 -0
- package/dist/core/nextcloud/events.d.ts.map +1 -0
- package/dist/core/nextcloud/events.js +125 -0
- package/dist/core/nextcloud/events.js.map +1 -0
- package/dist/core/nextcloud/exists.d.ts +1 -3
- package/dist/core/nextcloud/exists.d.ts.map +1 -1
- package/dist/core/nextcloud/exists.js +2 -11
- package/dist/core/nextcloud/exists.js.map +1 -1
- package/dist/core/nextcloud/mkdir.d.ts +6 -9
- package/dist/core/nextcloud/mkdir.d.ts.map +1 -1
- package/dist/core/nextcloud/mkdir.js +68 -15
- package/dist/core/nextcloud/mkdir.js.map +1 -1
- package/dist/core/nextcloud/read.d.ts +1 -2
- package/dist/core/nextcloud/read.d.ts.map +1 -1
- package/dist/core/nextcloud/read.js +4 -4
- package/dist/core/nextcloud/read.js.map +1 -1
- package/dist/core/nextcloud/readdir.d.ts +3 -3
- package/dist/core/nextcloud/readdir.d.ts.map +1 -1
- package/dist/core/nextcloud/readdir.js +38 -56
- package/dist/core/nextcloud/readdir.js.map +1 -1
- package/dist/core/nextcloud/rename.d.ts.map +1 -1
- package/dist/core/nextcloud/rename.js +1 -4
- package/dist/core/nextcloud/rename.js.map +1 -1
- package/dist/core/nextcloud/rm.d.ts.map +1 -1
- package/dist/core/nextcloud/rm.js +1 -3
- package/dist/core/nextcloud/rm.js.map +1 -1
- package/dist/core/nextcloud/rmdir.d.ts +1 -1
- package/dist/core/nextcloud/rmdir.d.ts.map +1 -1
- package/dist/core/nextcloud/rmdir.js +2 -4
- package/dist/core/nextcloud/rmdir.js.map +1 -1
- package/dist/core/nextcloud/search/client.d.ts +9 -2
- package/dist/core/nextcloud/search/client.d.ts.map +1 -1
- package/dist/core/nextcloud/search/client.js +13 -9
- package/dist/core/nextcloud/search/client.js.map +1 -1
- package/dist/core/nextcloud/search/constants.d.ts +1 -1
- package/dist/core/nextcloud/search/constants.d.ts.map +1 -1
- package/dist/core/nextcloud/search/constants.js +6 -3
- package/dist/core/nextcloud/search/constants.js.map +1 -1
- package/dist/core/nextcloud/search/index.d.ts +1 -2
- package/dist/core/nextcloud/search/index.d.ts.map +1 -1
- package/dist/core/nextcloud/search/index.js +0 -1
- package/dist/core/nextcloud/search/index.js.map +1 -1
- package/dist/core/nextcloud/search/query.d.ts +3 -4
- package/dist/core/nextcloud/search/query.d.ts.map +1 -1
- package/dist/core/nextcloud/search/query.js +9 -158
- package/dist/core/nextcloud/search/query.js.map +1 -1
- package/dist/core/nextcloud/search/response.d.ts +4 -1
- package/dist/core/nextcloud/search/response.d.ts.map +1 -1
- package/dist/core/nextcloud/search/response.js +14 -14
- package/dist/core/nextcloud/search/response.js.map +1 -1
- package/dist/core/nextcloud/search/target.js +6 -6
- package/dist/core/nextcloud/search/target.js.map +1 -1
- package/dist/core/nextcloud/search/types.d.ts +2 -29
- package/dist/core/nextcloud/search/types.d.ts.map +1 -1
- package/dist/core/nextcloud/search/types.js +0 -10
- package/dist/core/nextcloud/search/types.js.map +1 -1
- package/dist/core/nextcloud/set_attrs.d.ts +13 -0
- package/dist/core/nextcloud/set_attrs.d.ts.map +1 -0
- package/dist/core/nextcloud/set_attrs.js +40 -0
- package/dist/core/nextcloud/set_attrs.js.map +1 -0
- package/dist/core/nextcloud/stat.d.ts +16 -2
- package/dist/core/nextcloud/stat.d.ts.map +1 -1
- package/dist/core/nextcloud/stat.js +57 -50
- package/dist/core/nextcloud/stat.js.map +1 -1
- package/dist/core/nextcloud/stream.d.ts +1 -3
- package/dist/core/nextcloud/stream.d.ts.map +1 -1
- package/dist/core/nextcloud/stream.js +3 -7
- package/dist/core/nextcloud/stream.js.map +1 -1
- package/dist/core/nextcloud/truncate.d.ts +1 -1
- package/dist/core/nextcloud/truncate.d.ts.map +1 -1
- package/dist/core/nextcloud/truncate.js +6 -5
- package/dist/core/nextcloud/truncate.js.map +1 -1
- package/dist/core/nextcloud/unlink.d.ts.map +1 -1
- package/dist/core/nextcloud/unlink.js +3 -5
- package/dist/core/nextcloud/unlink.js.map +1 -1
- package/dist/core/nextcloud/util.d.ts +0 -1
- package/dist/core/nextcloud/util.d.ts.map +1 -1
- package/dist/core/nextcloud/util.js +1 -7
- package/dist/core/nextcloud/util.js.map +1 -1
- package/dist/core/nextcloud/write.d.ts +1 -2
- package/dist/core/nextcloud/write.d.ts.map +1 -1
- package/dist/core/nextcloud/write.js +4 -6
- package/dist/core/nextcloud/write.js.map +1 -1
- package/dist/core/ssh/append.d.ts +2 -0
- package/dist/core/ssh/append.d.ts.map +1 -1
- package/dist/core/ssh/append.js +35 -11
- package/dist/core/ssh/append.js.map +1 -1
- package/dist/core/ssh/capacity.d.ts +9 -0
- package/dist/core/ssh/capacity.d.ts.map +1 -0
- package/dist/core/ssh/capacity.js +52 -0
- package/dist/core/ssh/capacity.js.map +1 -0
- package/dist/core/ssh/checksum.d.ts +14 -0
- package/dist/core/ssh/checksum.d.ts.map +1 -0
- package/dist/core/ssh/checksum.js +60 -0
- package/dist/core/ssh/checksum.js.map +1 -0
- package/dist/core/ssh/constants.d.ts +3 -1
- package/dist/core/ssh/constants.d.ts.map +1 -1
- package/dist/core/ssh/constants.js +3 -1
- package/dist/core/ssh/constants.js.map +1 -1
- package/dist/core/ssh/copy.d.ts +10 -1
- package/dist/core/ssh/copy.d.ts.map +1 -1
- package/dist/core/ssh/copy.js +58 -2
- package/dist/core/ssh/copy.js.map +1 -1
- package/dist/core/ssh/create.d.ts.map +1 -1
- package/dist/core/ssh/create.js +18 -3
- package/dist/core/ssh/create.js.map +1 -1
- package/dist/core/ssh/exists.d.ts.map +1 -1
- package/dist/core/ssh/exists.js +3 -2
- package/dist/core/ssh/exists.js.map +1 -1
- package/dist/core/ssh/mkdir.d.ts +1 -1
- package/dist/core/ssh/mkdir.d.ts.map +1 -1
- package/dist/core/ssh/mkdir.js +9 -7
- package/dist/core/ssh/mkdir.js.map +1 -1
- package/dist/core/ssh/pwrite.d.ts +4 -0
- package/dist/core/ssh/pwrite.d.ts.map +1 -0
- package/dist/core/ssh/pwrite.js +45 -0
- package/dist/core/ssh/pwrite.js.map +1 -0
- package/dist/core/ssh/read.d.ts +9 -3
- package/dist/core/ssh/read.d.ts.map +1 -1
- package/dist/core/ssh/read.js +38 -11
- package/dist/core/ssh/read.js.map +1 -1
- package/dist/core/ssh/readdir.d.ts +2 -2
- package/dist/core/ssh/readdir.d.ts.map +1 -1
- package/dist/core/ssh/readdir.js +36 -19
- package/dist/core/ssh/readdir.js.map +1 -1
- package/dist/core/ssh/rename.d.ts.map +1 -1
- package/dist/core/ssh/rename.js +5 -10
- package/dist/core/ssh/rename.js.map +1 -1
- package/dist/core/ssh/rm.d.ts.map +1 -1
- package/dist/core/ssh/rm.js +4 -5
- package/dist/core/ssh/rm.js.map +1 -1
- package/dist/core/ssh/rmdir.d.ts.map +1 -1
- package/dist/core/ssh/rmdir.js +4 -5
- package/dist/core/ssh/rmdir.js.map +1 -1
- package/dist/core/ssh/search.d.ts +22 -0
- package/dist/core/ssh/search.d.ts.map +1 -0
- package/dist/core/ssh/search.js +85 -0
- package/dist/core/ssh/search.js.map +1 -0
- package/dist/core/ssh/set_attrs.d.ts.map +1 -1
- package/dist/core/ssh/set_attrs.js +4 -3
- package/dist/core/ssh/set_attrs.js.map +1 -1
- package/dist/core/ssh/stat.d.ts +28 -1
- package/dist/core/ssh/stat.d.ts.map +1 -1
- package/dist/core/ssh/stat.js +134 -5
- package/dist/core/ssh/stat.js.map +1 -1
- package/dist/core/ssh/stream.d.ts +20 -2
- package/dist/core/ssh/stream.d.ts.map +1 -1
- package/dist/core/ssh/stream.js +67 -25
- package/dist/core/ssh/stream.js.map +1 -1
- package/dist/core/ssh/truncate.d.ts +1 -1
- package/dist/core/ssh/truncate.d.ts.map +1 -1
- package/dist/core/ssh/truncate.js +30 -15
- package/dist/core/ssh/truncate.js.map +1 -1
- package/dist/core/ssh/unlink.d.ts.map +1 -1
- package/dist/core/ssh/unlink.js +29 -16
- package/dist/core/ssh/unlink.js.map +1 -1
- package/dist/core/ssh/utils.d.ts +12 -1
- package/dist/core/ssh/utils.d.ts.map +1 -1
- package/dist/core/ssh/utils.js +47 -10
- package/dist/core/ssh/utils.js.map +1 -1
- package/dist/core/ssh/write.d.ts +3 -1
- package/dist/core/ssh/write.d.ts.map +1 -1
- package/dist/core/ssh/write.js +88 -16
- package/dist/core/ssh/write.js.map +1 -1
- package/dist/fuse/backend.d.ts +5 -5
- package/dist/fuse/backend.d.ts.map +1 -1
- package/dist/fuse/backend.js +12 -13
- package/dist/fuse/backend.js.map +1 -1
- package/dist/fuse/constants.d.ts +3 -0
- package/dist/fuse/constants.d.ts.map +1 -0
- package/dist/fuse/constants.js +21 -0
- package/dist/fuse/constants.js.map +1 -0
- package/dist/fuse/fs.d.ts +7 -10
- package/dist/fuse/fs.d.ts.map +1 -1
- package/dist/fuse/fs.js +65 -158
- package/dist/fuse/fs.js.map +1 -1
- package/dist/fuse/mount.d.ts +31 -4
- package/dist/fuse/mount.d.ts.map +1 -1
- package/dist/fuse/mount.js +96 -13
- package/dist/fuse/mount.js.map +1 -1
- package/dist/index.d.ts +150 -157
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +138 -154
- package/dist/index.js.map +1 -1
- package/dist/io/spool.d.ts +2 -0
- package/dist/io/spool.d.ts.map +1 -0
- package/dist/io/spool.js +54 -0
- package/dist/io/spool.js.map +1 -0
- package/dist/mount/constants.d.ts +36 -0
- package/dist/mount/constants.d.ts.map +1 -0
- package/dist/mount/constants.js +52 -0
- package/dist/mount/constants.js.map +1 -0
- package/dist/mount/core.d.ts +313 -0
- package/dist/mount/core.d.ts.map +1 -0
- package/dist/mount/core.js +915 -0
- package/dist/mount/core.js.map +1 -0
- package/dist/mount/errors.d.ts +37 -0
- package/dist/mount/errors.d.ts.map +1 -0
- package/dist/mount/errors.js +125 -0
- package/dist/mount/errors.js.map +1 -0
- package/dist/mount/nfs.d.ts +67 -0
- package/dist/mount/nfs.d.ts.map +1 -0
- package/dist/mount/nfs.js +381 -0
- package/dist/mount/nfs.js.map +1 -0
- package/dist/mount/platform/macos.d.ts.map +1 -0
- package/dist/mount/platform/macos.js.map +1 -0
- package/dist/mount/sftp.d.ts +83 -0
- package/dist/mount/sftp.d.ts.map +1 -0
- package/dist/mount/sftp.js +470 -0
- package/dist/mount/sftp.js.map +1 -0
- package/dist/mount/types.d.ts +37 -0
- package/dist/mount/types.d.ts.map +1 -0
- package/dist/mount/types.js.map +1 -0
- package/dist/observe/redis_store.d.ts +1 -2
- package/dist/observe/redis_store.d.ts.map +1 -1
- package/dist/observe/redis_store.js +9 -28
- package/dist/observe/redis_store.js.map +1 -1
- package/dist/optional_peer.d.ts +23 -1
- package/dist/optional_peer.d.ts.map +1 -1
- package/dist/optional_peer.js +49 -1
- package/dist/optional_peer.js.map +1 -1
- package/dist/runtime/js/host/constants.d.ts +8 -0
- package/dist/runtime/js/host/constants.d.ts.map +1 -0
- package/dist/runtime/js/host/constants.js +97 -0
- package/dist/runtime/js/host/constants.js.map +1 -0
- package/dist/runtime/js/host/descriptors.d.ts +96 -0
- package/dist/runtime/js/host/descriptors.d.ts.map +1 -0
- package/dist/runtime/js/host/descriptors.js +331 -0
- package/dist/runtime/js/host/descriptors.js.map +1 -0
- package/dist/runtime/js/host/fs.d.ts +18 -0
- package/dist/runtime/js/host/fs.d.ts.map +1 -0
- package/dist/runtime/js/host/fs.js +978 -0
- package/dist/runtime/js/host/fs.js.map +1 -0
- package/dist/runtime/python/local/config.d.ts +14 -0
- package/dist/runtime/python/local/config.d.ts.map +1 -0
- package/dist/runtime/python/local/config.js +16 -0
- package/dist/runtime/python/local/config.js.map +1 -0
- package/dist/runtime/python/local/runtime.d.ts +38 -0
- package/dist/runtime/python/local/runtime.d.ts.map +1 -0
- package/dist/runtime/python/local/runtime.js +222 -0
- package/dist/runtime/python/local/runtime.js.map +1 -0
- package/dist/runtime/sandbox/apple_container/config.d.ts +12 -0
- package/dist/runtime/sandbox/apple_container/config.d.ts.map +1 -0
- package/dist/runtime/sandbox/apple_container/config.js +41 -0
- package/dist/runtime/sandbox/apple_container/config.js.map +1 -0
- package/dist/runtime/sandbox/apple_container/constants.d.ts +12 -0
- package/dist/runtime/sandbox/apple_container/constants.d.ts.map +1 -0
- package/dist/runtime/sandbox/apple_container/constants.js +40 -0
- package/dist/runtime/sandbox/apple_container/constants.js.map +1 -0
- package/dist/runtime/sandbox/apple_container/runtime.d.ts +54 -0
- package/dist/runtime/sandbox/apple_container/runtime.d.ts.map +1 -0
- package/dist/runtime/sandbox/apple_container/runtime.js +139 -0
- package/dist/runtime/sandbox/apple_container/runtime.js.map +1 -0
- package/dist/runtime/sandbox/cli.d.ts +56 -0
- package/dist/runtime/sandbox/cli.d.ts.map +1 -0
- package/dist/runtime/sandbox/cli.js +260 -0
- package/dist/runtime/sandbox/cli.js.map +1 -0
- package/dist/runtime/sandbox/daytona/config.d.ts +1 -1
- package/dist/runtime/sandbox/daytona/config.d.ts.map +1 -1
- package/dist/runtime/sandbox/daytona/config.js +2 -1
- package/dist/runtime/sandbox/daytona/config.js.map +1 -1
- package/dist/runtime/sandbox/daytona/runtime.d.ts +4 -4
- package/dist/runtime/sandbox/daytona/runtime.d.ts.map +1 -1
- package/dist/runtime/sandbox/daytona/runtime.js +4 -8
- package/dist/runtime/sandbox/daytona/runtime.js.map +1 -1
- package/dist/runtime/sandbox/daytona/sdk.d.ts +5 -0
- package/dist/runtime/sandbox/daytona/sdk.d.ts.map +1 -0
- package/dist/runtime/sandbox/daytona/sdk.js +22 -0
- package/dist/runtime/sandbox/daytona/sdk.js.map +1 -0
- package/dist/runtime/sandbox/docker/config.d.ts +1 -1
- package/dist/runtime/sandbox/docker/config.d.ts.map +1 -1
- package/dist/runtime/sandbox/docker/config.js +2 -1
- package/dist/runtime/sandbox/docker/config.js.map +1 -1
- package/dist/runtime/sandbox/docker/runtime.d.ts +8 -11
- package/dist/runtime/sandbox/docker/runtime.d.ts.map +1 -1
- package/dist/runtime/sandbox/docker/runtime.js +16 -42
- package/dist/runtime/sandbox/docker/runtime.js.map +1 -1
- package/dist/runtime/sandbox/microsandbox/config.d.ts +8 -0
- package/dist/runtime/sandbox/microsandbox/config.d.ts.map +1 -0
- package/dist/runtime/sandbox/microsandbox/config.js +16 -0
- package/dist/runtime/sandbox/microsandbox/config.js.map +1 -0
- package/dist/runtime/sandbox/microsandbox/constants.d.ts +6 -0
- package/dist/runtime/sandbox/microsandbox/constants.d.ts.map +1 -0
- package/dist/runtime/sandbox/microsandbox/constants.js +22 -0
- package/dist/runtime/sandbox/microsandbox/constants.js.map +1 -0
- package/dist/runtime/sandbox/microsandbox/runtime.d.ts +26 -0
- package/dist/runtime/sandbox/microsandbox/runtime.d.ts.map +1 -0
- package/dist/runtime/sandbox/microsandbox/runtime.js +117 -0
- package/dist/runtime/sandbox/microsandbox/runtime.js.map +1 -0
- package/dist/runtime/sandbox/sandlock/config.d.ts +8 -0
- package/dist/runtime/sandbox/sandlock/config.d.ts.map +1 -0
- package/dist/runtime/sandbox/sandlock/config.js +21 -0
- package/dist/runtime/sandbox/sandlock/config.js.map +1 -0
- package/dist/runtime/sandbox/sandlock/constants.d.ts +3 -0
- package/dist/runtime/sandbox/sandlock/constants.d.ts.map +1 -0
- package/dist/runtime/sandbox/sandlock/constants.js +27 -0
- package/dist/runtime/sandbox/sandlock/constants.js.map +1 -0
- package/dist/runtime/sandbox/sandlock/runtime.d.ts +24 -0
- package/dist/runtime/sandbox/sandlock/runtime.d.ts.map +1 -0
- package/dist/runtime/sandbox/sandlock/runtime.js +78 -0
- package/dist/runtime/sandbox/sandlock/runtime.js.map +1 -0
- package/dist/runtime/sandbox/smolvm/config.d.ts +1 -1
- package/dist/runtime/sandbox/smolvm/config.d.ts.map +1 -1
- package/dist/runtime/sandbox/smolvm/config.js +2 -1
- package/dist/runtime/sandbox/smolvm/config.js.map +1 -1
- package/dist/runtime/sandbox/smolvm/runtime.d.ts +11 -12
- package/dist/runtime/sandbox/smolvm/runtime.d.ts.map +1 -1
- package/dist/runtime/sandbox/smolvm/runtime.js +28 -41
- package/dist/runtime/sandbox/smolvm/runtime.js.map +1 -1
- package/dist/runtime/sandbox/ssh/config.d.ts +2 -2
- package/dist/runtime/sandbox/ssh/config.d.ts.map +1 -1
- package/dist/runtime/sandbox/ssh/config.js +2 -1
- package/dist/runtime/sandbox/ssh/config.js.map +1 -1
- package/dist/runtime/sandbox/ssh/constants.d.ts +1 -1
- package/dist/runtime/sandbox/ssh/constants.js +1 -1
- package/dist/runtime/sandbox/ssh/runtime.d.ts +15 -14
- package/dist/runtime/sandbox/ssh/runtime.d.ts.map +1 -1
- package/dist/runtime/sandbox/ssh/runtime.js +76 -46
- package/dist/runtime/sandbox/ssh/runtime.js.map +1 -1
- package/dist/runtime/sandbox/ssh/sdk.d.ts +5 -0
- package/dist/runtime/sandbox/ssh/sdk.d.ts.map +1 -0
- package/dist/runtime/sandbox/ssh/sdk.js +22 -0
- package/dist/runtime/sandbox/ssh/sdk.js.map +1 -0
- package/dist/secrets/config.d.ts +1 -1
- package/dist/secrets/config.d.ts.map +1 -1
- package/dist/secrets/config.js +3 -3
- package/dist/secrets/config.js.map +1 -1
- package/dist/secrets/constants.d.ts +1 -2
- package/dist/secrets/constants.d.ts.map +1 -1
- package/dist/secrets/constants.js +2 -4
- package/dist/secrets/constants.js.map +1 -1
- package/dist/secrets/onepassword.d.ts +2 -2
- package/dist/secrets/onepassword.js +3 -3
- package/dist/shell/console/redis/store.d.ts +1 -1
- package/dist/shell/console/redis/store.d.ts.map +1 -1
- package/dist/shell/console/redis/store.js +9 -18
- package/dist/shell/console/redis/store.js.map +1 -1
- package/dist/utils/loader.d.ts.map +1 -0
- package/dist/utils/loader.js.map +1 -0
- package/dist/utils/ssh.d.ts +4 -0
- package/dist/utils/ssh.d.ts.map +1 -0
- package/dist/utils/ssh.js +63 -0
- package/dist/utils/ssh.js.map +1 -0
- package/dist/utils/yaml.d.ts +3 -0
- package/dist/utils/yaml.d.ts.map +1 -0
- package/dist/utils/yaml.js +6 -0
- package/dist/utils/yaml.js.map +1 -0
- package/dist/vfs/aliyun/aliyun.d.ts +8 -0
- package/dist/vfs/aliyun/aliyun.d.ts.map +1 -0
- package/dist/vfs/aliyun/aliyun.js +24 -0
- package/dist/vfs/aliyun/aliyun.js.map +1 -0
- package/dist/vfs/aliyun/config.d.ts.map +1 -0
- package/dist/vfs/aliyun/config.js.map +1 -0
- package/dist/vfs/aliyun/prompt.d.ts +2 -0
- package/dist/vfs/aliyun/prompt.d.ts.map +1 -0
- package/dist/vfs/aliyun/prompt.js +19 -0
- package/dist/vfs/aliyun/prompt.js.map +1 -0
- package/dist/vfs/backblaze/backblaze.d.ts +8 -0
- package/dist/vfs/backblaze/backblaze.d.ts.map +1 -0
- package/dist/vfs/backblaze/backblaze.js +24 -0
- package/dist/vfs/backblaze/backblaze.js.map +1 -0
- package/dist/vfs/backblaze/config.d.ts.map +1 -0
- package/dist/vfs/backblaze/config.js.map +1 -0
- package/dist/vfs/backblaze/prompt.d.ts +2 -0
- package/dist/vfs/backblaze/prompt.d.ts.map +1 -0
- package/dist/vfs/backblaze/prompt.js +19 -0
- package/dist/vfs/backblaze/prompt.js.map +1 -0
- package/dist/vfs/ceph/ceph.d.ts +8 -0
- package/dist/vfs/ceph/ceph.d.ts.map +1 -0
- package/dist/vfs/ceph/ceph.js +24 -0
- package/dist/vfs/ceph/ceph.js.map +1 -0
- package/dist/vfs/ceph/config.d.ts.map +1 -0
- package/dist/vfs/ceph/config.js.map +1 -0
- package/dist/vfs/ceph/prompt.d.ts +2 -0
- package/dist/vfs/ceph/prompt.d.ts.map +1 -0
- package/dist/vfs/ceph/prompt.js +19 -0
- package/dist/vfs/ceph/prompt.js.map +1 -0
- package/dist/vfs/databricks_volume/config.d.ts +3 -0
- package/dist/vfs/databricks_volume/config.d.ts.map +1 -0
- package/dist/vfs/databricks_volume/config.js +15 -0
- package/dist/vfs/databricks_volume/config.js.map +1 -0
- package/dist/vfs/databricks_volume/databricks_volume.d.ts +19 -0
- package/dist/vfs/databricks_volume/databricks_volume.d.ts.map +1 -0
- package/dist/vfs/databricks_volume/databricks_volume.js +45 -0
- package/dist/vfs/databricks_volume/databricks_volume.js.map +1 -0
- package/dist/vfs/digitalocean/config.d.ts.map +1 -0
- package/dist/vfs/digitalocean/config.js.map +1 -0
- package/dist/vfs/digitalocean/digitalocean.d.ts +8 -0
- package/dist/vfs/digitalocean/digitalocean.d.ts.map +1 -0
- package/dist/vfs/digitalocean/digitalocean.js +24 -0
- package/dist/vfs/digitalocean/digitalocean.js.map +1 -0
- package/dist/vfs/digitalocean/prompt.d.ts +2 -0
- package/dist/vfs/digitalocean/prompt.d.ts.map +1 -0
- package/dist/vfs/digitalocean/prompt.js +19 -0
- package/dist/vfs/digitalocean/prompt.js.map +1 -0
- package/dist/vfs/discord/discord.d.ts +19 -0
- package/dist/vfs/discord/discord.d.ts.map +1 -0
- package/dist/vfs/discord/discord.js +44 -0
- package/dist/vfs/discord/discord.js.map +1 -0
- package/dist/vfs/disk/disk.d.ts +65 -0
- package/dist/vfs/disk/disk.d.ts.map +1 -0
- package/dist/vfs/disk/disk.js +217 -0
- package/dist/vfs/disk/disk.js.map +1 -0
- package/dist/vfs/disk/prompt.d.ts +2 -0
- package/dist/vfs/disk/prompt.d.ts.map +1 -0
- package/dist/vfs/disk/prompt.js +17 -0
- package/dist/vfs/disk/prompt.js.map +1 -0
- package/dist/vfs/dropbox/config.d.ts +34 -0
- package/dist/vfs/dropbox/config.d.ts.map +1 -0
- package/dist/vfs/dropbox/config.js +31 -0
- package/dist/vfs/dropbox/config.js.map +1 -0
- package/dist/vfs/email/email.d.ts +38 -0
- package/dist/vfs/email/email.d.ts.map +1 -0
- package/dist/vfs/email/email.js +78 -0
- package/dist/vfs/email/email.js.map +1 -0
- package/dist/vfs/email/index.d.ts +3 -0
- package/dist/vfs/email/index.d.ts.map +1 -0
- package/dist/vfs/email/index.js +16 -0
- package/dist/vfs/email/index.js.map +1 -0
- package/dist/vfs/email/prompt.d.ts +3 -0
- package/dist/vfs/email/prompt.d.ts.map +1 -0
- package/dist/vfs/email/prompt.js +29 -0
- package/dist/vfs/email/prompt.js.map +1 -0
- package/dist/vfs/gcs/config.d.ts +36 -0
- package/dist/vfs/gcs/config.d.ts.map +1 -0
- package/dist/vfs/gcs/config.js +55 -0
- package/dist/vfs/gcs/config.js.map +1 -0
- package/dist/vfs/gcs/gcs.d.ts +8 -0
- package/dist/vfs/gcs/gcs.d.ts.map +1 -0
- package/dist/vfs/gcs/gcs.js +24 -0
- package/dist/vfs/gcs/gcs.js.map +1 -0
- package/dist/vfs/gcs/prompt.d.ts +2 -0
- package/dist/vfs/gcs/prompt.d.ts.map +1 -0
- package/dist/vfs/gcs/prompt.js +19 -0
- package/dist/vfs/gcs/prompt.js.map +1 -0
- package/dist/vfs/gridfs/config.d.ts +20 -0
- package/dist/vfs/gridfs/config.d.ts.map +1 -0
- package/dist/vfs/gridfs/config.js +42 -0
- package/dist/vfs/gridfs/config.js.map +1 -0
- package/dist/vfs/gridfs/gridfs.d.ts +45 -0
- package/dist/vfs/gridfs/gridfs.d.ts.map +1 -0
- package/dist/vfs/gridfs/gridfs.js +144 -0
- package/dist/vfs/gridfs/gridfs.js.map +1 -0
- package/dist/vfs/gridfs/prompt.d.ts +2 -0
- package/dist/vfs/gridfs/prompt.d.ts.map +1 -0
- package/dist/vfs/gridfs/prompt.js +19 -0
- package/dist/vfs/gridfs/prompt.js.map +1 -0
- package/dist/vfs/hf_buckets/config.d.ts +59 -0
- package/dist/vfs/hf_buckets/config.d.ts.map +1 -0
- package/dist/vfs/hf_buckets/config.js +91 -0
- package/dist/vfs/hf_buckets/config.js.map +1 -0
- package/dist/vfs/hf_buckets/hf_buckets.d.ts +36 -0
- package/dist/vfs/hf_buckets/hf_buckets.d.ts.map +1 -0
- package/dist/vfs/hf_buckets/hf_buckets.js +114 -0
- package/dist/vfs/hf_buckets/hf_buckets.js.map +1 -0
- package/dist/vfs/hf_buckets/prompt.d.ts +2 -0
- package/dist/vfs/hf_buckets/prompt.d.ts.map +1 -0
- package/dist/vfs/hf_buckets/prompt.js +18 -0
- package/dist/vfs/hf_buckets/prompt.js.map +1 -0
- package/dist/vfs/hf_datasets/config.d.ts +6 -0
- package/dist/vfs/hf_datasets/config.d.ts.map +1 -0
- package/dist/vfs/hf_datasets/config.js +17 -0
- package/dist/vfs/hf_datasets/config.js.map +1 -0
- package/dist/vfs/hf_datasets/hf_datasets.d.ts +16 -0
- package/dist/vfs/hf_datasets/hf_datasets.d.ts.map +1 -0
- package/dist/vfs/hf_datasets/hf_datasets.js +47 -0
- package/dist/vfs/hf_datasets/hf_datasets.js.map +1 -0
- package/dist/vfs/hf_datasets/prompt.d.ts +2 -0
- package/dist/vfs/hf_datasets/prompt.d.ts.map +1 -0
- package/dist/vfs/hf_datasets/prompt.js +18 -0
- package/dist/vfs/hf_datasets/prompt.js.map +1 -0
- package/dist/vfs/hf_hub/base.d.ts +42 -0
- package/dist/vfs/hf_hub/base.d.ts.map +1 -0
- package/dist/vfs/hf_hub/base.js +80 -0
- package/dist/vfs/hf_hub/base.js.map +1 -0
- package/dist/vfs/hf_models/config.d.ts.map +1 -0
- package/dist/vfs/hf_models/config.js.map +1 -0
- package/dist/vfs/hf_models/hf_models.d.ts +16 -0
- package/dist/vfs/hf_models/hf_models.d.ts.map +1 -0
- package/dist/vfs/hf_models/hf_models.js +47 -0
- package/dist/vfs/hf_models/hf_models.js.map +1 -0
- package/dist/vfs/hf_models/prompt.d.ts +2 -0
- package/dist/vfs/hf_models/prompt.d.ts.map +1 -0
- package/dist/vfs/hf_models/prompt.js +18 -0
- package/dist/vfs/hf_models/prompt.js.map +1 -0
- package/dist/vfs/hf_spaces/config.d.ts +6 -0
- package/dist/vfs/hf_spaces/config.d.ts.map +1 -0
- package/dist/vfs/hf_spaces/config.js +17 -0
- package/dist/vfs/hf_spaces/config.js.map +1 -0
- package/dist/vfs/hf_spaces/hf_spaces.d.ts +16 -0
- package/dist/vfs/hf_spaces/hf_spaces.d.ts.map +1 -0
- package/dist/vfs/hf_spaces/hf_spaces.js +47 -0
- package/dist/vfs/hf_spaces/hf_spaces.js.map +1 -0
- package/dist/vfs/hf_spaces/prompt.d.ts +2 -0
- package/dist/vfs/hf_spaces/prompt.d.ts.map +1 -0
- package/dist/vfs/hf_spaces/prompt.js +18 -0
- package/dist/vfs/hf_spaces/prompt.js.map +1 -0
- package/dist/vfs/jaeger/config.d.ts +15 -0
- package/dist/vfs/jaeger/config.d.ts.map +1 -0
- package/dist/vfs/jaeger/config.js +28 -0
- package/dist/vfs/jaeger/config.js.map +1 -0
- package/dist/vfs/jaeger/jaeger.d.ts +18 -0
- package/dist/vfs/jaeger/jaeger.d.ts.map +1 -0
- package/dist/vfs/jaeger/jaeger.js +57 -0
- package/dist/vfs/jaeger/jaeger.js.map +1 -0
- package/dist/vfs/lancedb/lancedb.d.ts +27 -0
- package/dist/vfs/lancedb/lancedb.d.ts.map +1 -0
- package/dist/vfs/lancedb/lancedb.js +61 -0
- package/dist/vfs/lancedb/lancedb.js.map +1 -0
- package/dist/vfs/lancedb/store.d.ts +20 -0
- package/dist/vfs/lancedb/store.d.ts.map +1 -0
- package/dist/vfs/lancedb/store.js +160 -0
- package/dist/vfs/lancedb/store.js.map +1 -0
- package/dist/vfs/minio/config.d.ts.map +1 -0
- package/dist/vfs/minio/config.js.map +1 -0
- package/dist/vfs/minio/minio.d.ts +8 -0
- package/dist/vfs/minio/minio.d.ts.map +1 -0
- package/dist/vfs/minio/minio.js +24 -0
- package/dist/vfs/minio/minio.js.map +1 -0
- package/dist/vfs/minio/prompt.d.ts +2 -0
- package/dist/vfs/minio/prompt.d.ts.map +1 -0
- package/dist/vfs/minio/prompt.js +19 -0
- package/dist/vfs/minio/prompt.js.map +1 -0
- package/dist/vfs/mongodb/mongodb.d.ts +26 -0
- package/dist/vfs/mongodb/mongodb.d.ts.map +1 -0
- package/dist/vfs/mongodb/mongodb.js +53 -0
- package/dist/vfs/mongodb/mongodb.js.map +1 -0
- package/dist/vfs/mongodb/store.d.ts +80 -0
- package/dist/vfs/mongodb/store.d.ts.map +1 -0
- package/dist/vfs/mongodb/store.js +220 -0
- package/dist/vfs/mongodb/store.js.map +1 -0
- package/dist/vfs/nextcloud/config.d.ts +14 -0
- package/dist/vfs/nextcloud/config.d.ts.map +1 -0
- package/dist/vfs/nextcloud/config.js +17 -0
- package/dist/vfs/nextcloud/config.js.map +1 -0
- package/dist/vfs/nextcloud/nextcloud.d.ts +44 -0
- package/dist/vfs/nextcloud/nextcloud.d.ts.map +1 -0
- package/dist/vfs/nextcloud/nextcloud.js +114 -0
- package/dist/vfs/nextcloud/nextcloud.js.map +1 -0
- package/dist/vfs/nextcloud/prompt.d.ts +2 -0
- package/dist/vfs/nextcloud/prompt.d.ts.map +1 -0
- package/dist/vfs/nextcloud/prompt.js +6 -0
- package/dist/vfs/nextcloud/prompt.js.map +1 -0
- package/dist/vfs/notion/notion.d.ts +18 -0
- package/dist/vfs/notion/notion.d.ts.map +1 -0
- package/dist/vfs/notion/notion.js +46 -0
- package/dist/vfs/notion/notion.js.map +1 -0
- package/dist/vfs/oci/config.d.ts +37 -0
- package/dist/vfs/oci/config.d.ts.map +1 -0
- package/dist/vfs/oci/config.js +60 -0
- package/dist/vfs/oci/config.js.map +1 -0
- package/dist/vfs/oci/oci.d.ts +8 -0
- package/dist/vfs/oci/oci.d.ts.map +1 -0
- package/dist/vfs/oci/oci.js +24 -0
- package/dist/vfs/oci/oci.js.map +1 -0
- package/dist/vfs/oci/prompt.d.ts +2 -0
- package/dist/vfs/oci/prompt.d.ts.map +1 -0
- package/dist/vfs/oci/prompt.js +19 -0
- package/dist/vfs/oci/prompt.js.map +1 -0
- package/dist/vfs/postgres/postgres.d.ts +26 -0
- package/dist/vfs/postgres/postgres.d.ts.map +1 -0
- package/dist/vfs/postgres/postgres.js +53 -0
- package/dist/vfs/postgres/postgres.js.map +1 -0
- package/dist/vfs/postgres/store.d.ts +21 -0
- package/dist/vfs/postgres/store.d.ts.map +1 -0
- package/dist/vfs/postgres/store.js +61 -0
- package/dist/vfs/postgres/store.js.map +1 -0
- package/dist/vfs/qingstor/config.d.ts.map +1 -0
- package/dist/vfs/qingstor/config.js.map +1 -0
- package/dist/vfs/qingstor/prompt.d.ts +2 -0
- package/dist/vfs/qingstor/prompt.d.ts.map +1 -0
- package/dist/vfs/qingstor/prompt.js +19 -0
- package/dist/vfs/qingstor/prompt.js.map +1 -0
- package/dist/vfs/qingstor/qingstor.d.ts +8 -0
- package/dist/vfs/qingstor/qingstor.d.ts.map +1 -0
- package/dist/vfs/qingstor/qingstor.js +24 -0
- package/dist/vfs/qingstor/qingstor.js.map +1 -0
- package/dist/vfs/r2/config.d.ts +37 -0
- package/dist/vfs/r2/config.d.ts.map +1 -0
- package/dist/vfs/r2/config.js +63 -0
- package/dist/vfs/r2/config.js.map +1 -0
- package/dist/vfs/r2/prompt.d.ts +2 -0
- package/dist/vfs/r2/prompt.d.ts.map +1 -0
- package/dist/vfs/r2/prompt.js +19 -0
- package/dist/vfs/r2/prompt.js.map +1 -0
- package/dist/vfs/r2/r2.d.ts +8 -0
- package/dist/vfs/r2/r2.d.ts.map +1 -0
- package/dist/vfs/r2/r2.js +24 -0
- package/dist/vfs/r2/r2.js.map +1 -0
- package/dist/vfs/redis/redis.d.ts +30 -0
- package/dist/vfs/redis/redis.d.ts.map +1 -0
- package/dist/vfs/redis/redis.js +37 -0
- package/dist/vfs/redis/redis.js.map +1 -0
- package/dist/vfs/redis/store.d.ts +69 -0
- package/dist/vfs/redis/store.d.ts.map +1 -0
- package/dist/vfs/redis/store.js +270 -0
- package/dist/vfs/redis/store.js.map +1 -0
- package/dist/vfs/registry.d.ts +42 -0
- package/dist/vfs/registry.d.ts.map +1 -0
- package/dist/vfs/registry.js +409 -0
- package/dist/vfs/registry.js.map +1 -0
- package/dist/vfs/s3/config.d.ts +36 -0
- package/dist/vfs/s3/config.d.ts.map +1 -0
- package/dist/vfs/s3/config.js +61 -0
- package/dist/vfs/s3/config.js.map +1 -0
- package/dist/vfs/s3/s3.d.ts +29 -0
- package/dist/vfs/s3/s3.d.ts.map +1 -0
- package/dist/vfs/s3/s3.js +96 -0
- package/dist/vfs/s3/s3.js.map +1 -0
- package/dist/vfs/s3_alias.d.ts +105 -0
- package/dist/vfs/s3_alias.d.ts.map +1 -0
- package/dist/vfs/s3_alias.js +141 -0
- package/dist/vfs/s3_alias.js.map +1 -0
- package/dist/vfs/scaleway/config.d.ts.map +1 -0
- package/dist/vfs/scaleway/config.js.map +1 -0
- package/dist/vfs/scaleway/prompt.d.ts +2 -0
- package/dist/vfs/scaleway/prompt.d.ts.map +1 -0
- package/dist/vfs/scaleway/prompt.js +19 -0
- package/dist/vfs/scaleway/prompt.js.map +1 -0
- package/dist/vfs/scaleway/scaleway.d.ts +8 -0
- package/dist/vfs/scaleway/scaleway.d.ts.map +1 -0
- package/dist/vfs/scaleway/scaleway.js +24 -0
- package/dist/vfs/scaleway/scaleway.js.map +1 -0
- package/dist/vfs/seaweedfs/config.d.ts.map +1 -0
- package/dist/vfs/seaweedfs/config.js.map +1 -0
- package/dist/vfs/seaweedfs/prompt.d.ts +2 -0
- package/dist/vfs/seaweedfs/prompt.d.ts.map +1 -0
- package/dist/vfs/seaweedfs/prompt.js +19 -0
- package/dist/vfs/seaweedfs/prompt.js.map +1 -0
- package/dist/vfs/seaweedfs/seaweedfs.d.ts +8 -0
- package/dist/vfs/seaweedfs/seaweedfs.d.ts.map +1 -0
- package/dist/vfs/seaweedfs/seaweedfs.js +24 -0
- package/dist/vfs/seaweedfs/seaweedfs.js.map +1 -0
- package/dist/vfs/slack/slack.d.ts +19 -0
- package/dist/vfs/slack/slack.d.ts.map +1 -0
- package/dist/vfs/slack/slack.js +45 -0
- package/dist/vfs/slack/slack.js.map +1 -0
- package/dist/vfs/ssh/config.d.ts +20 -0
- package/dist/vfs/ssh/config.d.ts.map +1 -0
- package/dist/vfs/ssh/config.js +33 -0
- package/dist/vfs/ssh/config.js.map +1 -0
- package/dist/vfs/ssh/prompt.d.ts +2 -0
- package/dist/vfs/ssh/prompt.d.ts.map +1 -0
- package/dist/vfs/ssh/prompt.js +18 -0
- package/dist/vfs/ssh/prompt.js.map +1 -0
- package/dist/vfs/ssh/ssh.d.ts +56 -0
- package/dist/vfs/ssh/ssh.d.ts.map +1 -0
- package/dist/vfs/ssh/ssh.js +161 -0
- package/dist/vfs/ssh/ssh.js.map +1 -0
- package/dist/vfs/supabase/config.d.ts +38 -0
- package/dist/vfs/supabase/config.d.ts.map +1 -0
- package/dist/vfs/supabase/config.js +63 -0
- package/dist/vfs/supabase/config.js.map +1 -0
- package/dist/vfs/supabase/prompt.d.ts +2 -0
- package/dist/vfs/supabase/prompt.d.ts.map +1 -0
- package/dist/vfs/supabase/prompt.js +19 -0
- package/dist/vfs/supabase/prompt.js.map +1 -0
- package/dist/vfs/supabase/supabase.d.ts +8 -0
- package/dist/vfs/supabase/supabase.d.ts.map +1 -0
- package/dist/vfs/supabase/supabase.js +24 -0
- package/dist/vfs/supabase/supabase.js.map +1 -0
- package/dist/vfs/tencent/config.d.ts.map +1 -0
- package/dist/vfs/tencent/config.js.map +1 -0
- package/dist/vfs/tencent/prompt.d.ts +2 -0
- package/dist/vfs/tencent/prompt.d.ts.map +1 -0
- package/dist/vfs/tencent/prompt.js +19 -0
- package/dist/vfs/tencent/prompt.js.map +1 -0
- package/dist/vfs/tencent/tencent.d.ts +8 -0
- package/dist/vfs/tencent/tencent.d.ts.map +1 -0
- package/dist/vfs/tencent/tencent.js +24 -0
- package/dist/vfs/tencent/tencent.js.map +1 -0
- package/dist/vfs/wasabi/config.d.ts +36 -0
- package/dist/vfs/wasabi/config.d.ts.map +1 -0
- package/dist/vfs/wasabi/config.js +60 -0
- package/dist/vfs/wasabi/config.js.map +1 -0
- package/dist/vfs/wasabi/prompt.d.ts +2 -0
- package/dist/vfs/wasabi/prompt.d.ts.map +1 -0
- package/dist/vfs/wasabi/prompt.js +19 -0
- package/dist/vfs/wasabi/prompt.js.map +1 -0
- package/dist/vfs/wasabi/wasabi.d.ts +8 -0
- package/dist/vfs/wasabi/wasabi.d.ts.map +1 -0
- package/dist/vfs/wasabi/wasabi.js +24 -0
- package/dist/vfs/wasabi/wasabi.js.map +1 -0
- package/dist/workspace/fuse.d.ts +28 -0
- package/dist/workspace/fuse.d.ts.map +1 -1
- package/dist/workspace/fuse.js +18 -20
- package/dist/workspace/fuse.js.map +1 -1
- package/dist/workspace/mount/namespace/disk.d.ts +26 -0
- package/dist/workspace/mount/namespace/disk.d.ts.map +1 -0
- package/dist/workspace/mount/namespace/disk.js +93 -0
- package/dist/workspace/mount/namespace/disk.js.map +1 -0
- package/dist/workspace/mount/namespace/redis.d.ts +27 -0
- package/dist/workspace/mount/namespace/redis.d.ts.map +1 -0
- package/dist/workspace/mount/namespace/redis.js +70 -0
- package/dist/workspace/mount/namespace/redis.js.map +1 -0
- package/dist/workspace/nfs.d.ts +29 -0
- package/dist/workspace/nfs.d.ts.map +1 -0
- package/dist/workspace/nfs.js +98 -0
- package/dist/workspace/nfs.js.map +1 -0
- package/dist/workspace/record/disk.d.ts +2 -2
- package/dist/workspace/record/disk.d.ts.map +1 -1
- package/dist/workspace/record/disk.js +16 -22
- package/dist/workspace/record/disk.js.map +1 -1
- package/dist/workspace/session/disk.d.ts +2 -11
- package/dist/workspace/session/disk.d.ts.map +1 -1
- package/dist/workspace/session/disk.js +3 -28
- package/dist/workspace/session/disk.js.map +1 -1
- package/dist/workspace/session/redis.d.ts +1 -2
- package/dist/workspace/session/redis.d.ts.map +1 -1
- package/dist/workspace/session/redis.js +10 -29
- package/dist/workspace/session/redis.js.map +1 -1
- package/dist/workspace/store/disk.d.ts +2 -1
- package/dist/workspace/store/disk.d.ts.map +1 -1
- package/dist/workspace/store/disk.js +19 -10
- package/dist/workspace/store/disk.js.map +1 -1
- package/dist/workspace/store/redis.d.ts +2 -3
- package/dist/workspace/store/redis.d.ts.map +1 -1
- package/dist/workspace/store/redis.js +15 -25
- package/dist/workspace/store/redis.js.map +1 -1
- package/dist/workspace/workspace/kernel_mounts.d.ts +7 -6
- package/dist/workspace/workspace/kernel_mounts.d.ts.map +1 -1
- package/dist/workspace/workspace/kernel_mounts.js +32 -15
- package/dist/workspace/workspace/kernel_mounts.js.map +1 -1
- package/dist/workspace.d.ts +15 -13
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +32 -29
- package/dist/workspace.js.map +1 -1
- package/package.json +13 -12
- package/dist/accessor/hf.d.ts +0 -38
- package/dist/accessor/hf.d.ts.map +0 -1
- package/dist/accessor/hf.js +0 -101
- package/dist/accessor/hf.js.map +0 -1
- package/dist/cache/file/add.lua +0 -16
- package/dist/commands/builtin/disk/index.d.ts +0 -3
- package/dist/commands/builtin/disk/index.d.ts.map +0 -1
- package/dist/commands/builtin/disk/index.js +0 -20
- package/dist/commands/builtin/disk/index.js.map +0 -1
- package/dist/commands/builtin/disk/io.d.ts +0 -4
- package/dist/commands/builtin/disk/io.d.ts.map +0 -1
- package/dist/commands/builtin/disk/io.js +0 -57
- package/dist/commands/builtin/disk/io.js.map +0 -1
- package/dist/commands/builtin/email/_provision.d.ts +0 -7
- package/dist/commands/builtin/email/_provision.d.ts.map +0 -1
- package/dist/commands/builtin/email/_provision.js +0 -42
- package/dist/commands/builtin/email/_provision.js.map +0 -1
- package/dist/commands/builtin/email/find.d.ts +0 -2
- package/dist/commands/builtin/email/find.d.ts.map +0 -1
- package/dist/commands/builtin/email/find.js +0 -51
- package/dist/commands/builtin/email/find.js.map +0 -1
- package/dist/commands/builtin/email/grep.d.ts +0 -4
- package/dist/commands/builtin/email/grep.d.ts.map +0 -1
- package/dist/commands/builtin/email/grep.js +0 -108
- package/dist/commands/builtin/email/grep.js.map +0 -1
- package/dist/commands/builtin/email/index.d.ts +0 -3
- package/dist/commands/builtin/email/index.d.ts.map +0 -1
- package/dist/commands/builtin/email/index.js +0 -31
- package/dist/commands/builtin/email/index.js.map +0 -1
- package/dist/commands/builtin/email/io.d.ts +0 -4
- package/dist/commands/builtin/email/io.d.ts.map +0 -1
- package/dist/commands/builtin/email/io.js +0 -28
- package/dist/commands/builtin/email/io.js.map +0 -1
- package/dist/commands/builtin/email/rg.d.ts +0 -2
- package/dist/commands/builtin/email/rg.d.ts.map +0 -1
- package/dist/commands/builtin/email/rg.js +0 -93
- package/dist/commands/builtin/email/rg.js.map +0 -1
- package/dist/commands/builtin/gridfs/index.d.ts +0 -3
- package/dist/commands/builtin/gridfs/index.d.ts.map +0 -1
- package/dist/commands/builtin/gridfs/index.js +0 -24
- package/dist/commands/builtin/gridfs/index.js.map +0 -1
- package/dist/commands/builtin/gridfs/io.d.ts +0 -4
- package/dist/commands/builtin/gridfs/io.d.ts.map +0 -1
- package/dist/commands/builtin/gridfs/io.js +0 -54
- package/dist/commands/builtin/gridfs/io.js.map +0 -1
- package/dist/commands/builtin/hf/find.d.ts +0 -2
- package/dist/commands/builtin/hf/find.d.ts.map +0 -1
- package/dist/commands/builtin/hf/find.js +0 -31
- package/dist/commands/builtin/hf/find.js.map +0 -1
- package/dist/commands/builtin/hf/index.d.ts +0 -3
- package/dist/commands/builtin/hf/index.d.ts.map +0 -1
- package/dist/commands/builtin/hf/index.js +0 -25
- package/dist/commands/builtin/hf/index.js.map +0 -1
- package/dist/commands/builtin/hf/io.d.ts +0 -4
- package/dist/commands/builtin/hf/io.d.ts.map +0 -1
- package/dist/commands/builtin/hf/io.js +0 -44
- package/dist/commands/builtin/hf/io.js.map +0 -1
- package/dist/commands/builtin/hf_hub/index.d.ts +0 -4
- package/dist/commands/builtin/hf_hub/index.d.ts.map +0 -1
- package/dist/commands/builtin/hf_hub/index.js +0 -30
- package/dist/commands/builtin/hf_hub/index.js.map +0 -1
- package/dist/commands/builtin/hf_hub/io.d.ts +0 -4
- package/dist/commands/builtin/hf_hub/io.d.ts.map +0 -1
- package/dist/commands/builtin/hf_hub/io.js +0 -54
- package/dist/commands/builtin/hf_hub/io.js.map +0 -1
- package/dist/commands/builtin/nextcloud/index.d.ts +0 -3
- package/dist/commands/builtin/nextcloud/index.d.ts.map +0 -1
- package/dist/commands/builtin/nextcloud/index.js +0 -7
- package/dist/commands/builtin/nextcloud/index.js.map +0 -1
- package/dist/commands/builtin/nextcloud/io.d.ts +0 -4
- package/dist/commands/builtin/nextcloud/io.d.ts.map +0 -1
- package/dist/commands/builtin/nextcloud/io.js +0 -41
- package/dist/commands/builtin/nextcloud/io.js.map +0 -1
- package/dist/commands/builtin/ssh/index.d.ts +0 -3
- package/dist/commands/builtin/ssh/index.d.ts.map +0 -1
- package/dist/commands/builtin/ssh/index.js +0 -20
- package/dist/commands/builtin/ssh/index.js.map +0 -1
- package/dist/commands/builtin/ssh/io.d.ts +0 -4
- package/dist/commands/builtin/ssh/io.d.ts.map +0 -1
- package/dist/commands/builtin/ssh/io.js +0 -58
- package/dist/commands/builtin/ssh/io.js.map +0 -1
- package/dist/commands/native_fixture.d.ts +0 -25
- package/dist/commands/native_fixture.d.ts.map +0 -1
- package/dist/commands/native_fixture.js +0 -186
- package/dist/commands/native_fixture.js.map +0 -1
- package/dist/core/disk/du/entries.d.ts +0 -4
- package/dist/core/disk/du/entries.d.ts.map +0 -1
- package/dist/core/disk/du/entries.js +0 -25
- package/dist/core/disk/du/entries.js.map +0 -1
- package/dist/core/disk/du/index.d.ts +0 -3
- package/dist/core/disk/du/index.d.ts.map +0 -1
- package/dist/core/disk/du/index.js +0 -16
- package/dist/core/disk/du/index.js.map +0 -1
- package/dist/core/disk/du/size.d.ts +0 -4
- package/dist/core/disk/du/size.d.ts.map +0 -1
- package/dist/core/disk/du/size.js +0 -21
- package/dist/core/disk/du/size.js.map +0 -1
- package/dist/core/disk/du/walk.d.ts +0 -4
- package/dist/core/disk/du/walk.d.ts.map +0 -1
- package/dist/core/disk/du/walk.js +0 -82
- package/dist/core/disk/du/walk.js.map +0 -1
- package/dist/core/disk/entry.d.ts +0 -11
- package/dist/core/disk/entry.d.ts.map +0 -1
- package/dist/core/disk/entry.js +0 -42
- package/dist/core/disk/entry.js.map +0 -1
- package/dist/core/disk/find.d.ts +0 -21
- package/dist/core/disk/find.d.ts.map +0 -1
- package/dist/core/disk/find.js +0 -143
- package/dist/core/disk/find.js.map +0 -1
- package/dist/core/disk/watch/constants.d.ts.map +0 -1
- package/dist/core/disk/watch/constants.js.map +0 -1
- package/dist/core/disk/watch/hook.d.ts +0 -54
- package/dist/core/disk/watch/hook.d.ts.map +0 -1
- package/dist/core/disk/watch/hook.js +0 -108
- package/dist/core/disk/watch/hook.js.map +0 -1
- package/dist/core/disk/watch/index.d.ts +0 -2
- package/dist/core/disk/watch/index.d.ts.map +0 -1
- package/dist/core/disk/watch/index.js +0 -15
- package/dist/core/disk/watch/index.js.map +0 -1
- package/dist/core/disk/watch/walk.d.ts +0 -22
- package/dist/core/disk/watch/walk.d.ts.map +0 -1
- package/dist/core/disk/watch/walk.js +0 -100
- package/dist/core/disk/watch/walk.js.map +0 -1
- package/dist/core/gridfs/du/entries.d.ts +0 -2
- package/dist/core/gridfs/du/entries.d.ts.map +0 -1
- package/dist/core/gridfs/du/entries.js +0 -17
- package/dist/core/gridfs/du/entries.js.map +0 -1
- package/dist/core/gridfs/du/index.d.ts +0 -3
- package/dist/core/gridfs/du/index.d.ts.map +0 -1
- package/dist/core/gridfs/du/index.js +0 -16
- package/dist/core/gridfs/du/index.js.map +0 -1
- package/dist/core/gridfs/du/size.d.ts +0 -2
- package/dist/core/gridfs/du/size.d.ts.map +0 -1
- package/dist/core/gridfs/du/size.js +0 -17
- package/dist/core/gridfs/du/size.js.map +0 -1
- package/dist/core/gridfs/find.d.ts +0 -2
- package/dist/core/gridfs/find.d.ts.map +0 -1
- package/dist/core/gridfs/find.js +0 -17
- package/dist/core/gridfs/find.js.map +0 -1
- package/dist/core/gridfs/watch.d.ts +0 -4
- package/dist/core/gridfs/watch.d.ts.map +0 -1
- package/dist/core/gridfs/watch.js +0 -68
- package/dist/core/gridfs/watch.js.map +0 -1
- package/dist/core/hf/constants.d.ts +0 -3
- package/dist/core/hf/constants.d.ts.map +0 -1
- package/dist/core/hf/constants.js +0 -16
- package/dist/core/hf/constants.js.map +0 -1
- package/dist/core/hf/create.d.ts +0 -2
- package/dist/core/hf/create.d.ts.map +0 -1
- package/dist/core/hf/create.js.map +0 -1
- package/dist/core/hf/driver.d.ts +0 -5
- package/dist/core/hf/driver.d.ts.map +0 -1
- package/dist/core/hf/driver.js +0 -222
- package/dist/core/hf/driver.js.map +0 -1
- package/dist/core/hf/du/entries.d.ts +0 -2
- package/dist/core/hf/du/entries.d.ts.map +0 -1
- package/dist/core/hf/du/entries.js +0 -17
- package/dist/core/hf/du/entries.js.map +0 -1
- package/dist/core/hf/du/index.d.ts +0 -3
- package/dist/core/hf/du/index.d.ts.map +0 -1
- package/dist/core/hf/du/index.js +0 -16
- package/dist/core/hf/du/index.js.map +0 -1
- package/dist/core/hf/du/size.d.ts +0 -2
- package/dist/core/hf/du/size.d.ts.map +0 -1
- package/dist/core/hf/du/size.js +0 -17
- package/dist/core/hf/du/size.js.map +0 -1
- package/dist/core/hf/exists.d.ts +0 -2
- package/dist/core/hf/exists.d.ts.map +0 -1
- package/dist/core/hf/exists.js.map +0 -1
- package/dist/core/hf/find.d.ts +0 -2
- package/dist/core/hf/find.d.ts.map +0 -1
- package/dist/core/hf/find.js +0 -17
- package/dist/core/hf/find.js.map +0 -1
- package/dist/core/hf/mkdir.d.ts +0 -2
- package/dist/core/hf/mkdir.d.ts.map +0 -1
- package/dist/core/hf/mkdir.js.map +0 -1
- package/dist/core/hf/mock.d.ts +0 -34
- package/dist/core/hf/mock.d.ts.map +0 -1
- package/dist/core/hf/mock.js +0 -147
- package/dist/core/hf/mock.js.map +0 -1
- package/dist/core/hf/read.d.ts +0 -9
- package/dist/core/hf/read.d.ts.map +0 -1
- package/dist/core/hf/read.js +0 -53
- package/dist/core/hf/read.js.map +0 -1
- package/dist/core/hf/readdir.d.ts +0 -2
- package/dist/core/hf/readdir.d.ts.map +0 -1
- package/dist/core/hf/readdir.js +0 -17
- package/dist/core/hf/readdir.js.map +0 -1
- package/dist/core/hf/rm.d.ts +0 -2
- package/dist/core/hf/rm.d.ts.map +0 -1
- package/dist/core/hf/rm.js.map +0 -1
- package/dist/core/hf/stat.d.ts +0 -2
- package/dist/core/hf/stat.d.ts.map +0 -1
- package/dist/core/hf/stat.js +0 -17
- package/dist/core/hf/stat.js.map +0 -1
- package/dist/core/hf/stream.d.ts +0 -6
- package/dist/core/hf/stream.d.ts.map +0 -1
- package/dist/core/hf/stream.js +0 -48
- package/dist/core/hf/stream.js.map +0 -1
- package/dist/core/hf/unlink.d.ts +0 -2
- package/dist/core/hf/unlink.d.ts.map +0 -1
- package/dist/core/hf/unlink.js.map +0 -1
- package/dist/core/hf/util.d.ts +0 -5
- package/dist/core/hf/util.d.ts.map +0 -1
- package/dist/core/hf/util.js +0 -30
- package/dist/core/hf/util.js.map +0 -1
- package/dist/core/hf/watch.d.ts +0 -12
- package/dist/core/hf/watch.d.ts.map +0 -1
- package/dist/core/hf/watch.js +0 -28
- package/dist/core/hf/watch.js.map +0 -1
- package/dist/core/hf/write.d.ts +0 -2
- package/dist/core/hf/write.d.ts.map +0 -1
- package/dist/core/hf/write.js +0 -17
- package/dist/core/hf/write.js.map +0 -1
- package/dist/core/hf_hub/watch.d.ts +0 -4
- package/dist/core/hf_hub/watch.d.ts.map +0 -1
- package/dist/core/hf_hub/watch.js +0 -63
- package/dist/core/hf_hub/watch.js.map +0 -1
- package/dist/core/nextcloud/du/entries.d.ts +0 -4
- package/dist/core/nextcloud/du/entries.d.ts.map +0 -1
- package/dist/core/nextcloud/du/entries.js +0 -36
- package/dist/core/nextcloud/du/entries.js.map +0 -1
- package/dist/core/nextcloud/du/index.d.ts +0 -3
- package/dist/core/nextcloud/du/index.d.ts.map +0 -1
- package/dist/core/nextcloud/du/index.js +0 -3
- package/dist/core/nextcloud/du/index.js.map +0 -1
- package/dist/core/nextcloud/du/size.d.ts +0 -4
- package/dist/core/nextcloud/du/size.d.ts.map +0 -1
- package/dist/core/nextcloud/du/size.js +0 -28
- package/dist/core/nextcloud/du/size.js.map +0 -1
- package/dist/core/nextcloud/du/walk.d.ts +0 -4
- package/dist/core/nextcloud/du/walk.d.ts.map +0 -1
- package/dist/core/nextcloud/du/walk.js +0 -12
- package/dist/core/nextcloud/du/walk.js.map +0 -1
- package/dist/core/nextcloud/find.d.ts +0 -5
- package/dist/core/nextcloud/find.d.ts.map +0 -1
- package/dist/core/nextcloud/find.js +0 -230
- package/dist/core/nextcloud/find.js.map +0 -1
- package/dist/core/nextcloud/mock.d.ts +0 -28
- package/dist/core/nextcloud/mock.d.ts.map +0 -1
- package/dist/core/nextcloud/mock.js +0 -117
- package/dist/core/nextcloud/mock.js.map +0 -1
- package/dist/core/nextcloud/watch.d.ts +0 -6
- package/dist/core/nextcloud/watch.d.ts.map +0 -1
- package/dist/core/nextcloud/watch.js +0 -22
- package/dist/core/nextcloud/watch.js.map +0 -1
- package/dist/core/opendal/types.d.ts +0 -5
- package/dist/core/opendal/types.d.ts.map +0 -1
- package/dist/core/opendal/types.js.map +0 -1
- package/dist/core/opendal/watch.d.ts +0 -23
- package/dist/core/opendal/watch.d.ts.map +0 -1
- package/dist/core/opendal/watch.js +0 -96
- package/dist/core/opendal/watch.js.map +0 -1
- package/dist/core/ssh/du/entries.d.ts +0 -4
- package/dist/core/ssh/du/entries.d.ts.map +0 -1
- package/dist/core/ssh/du/entries.js +0 -25
- package/dist/core/ssh/du/entries.js.map +0 -1
- package/dist/core/ssh/du/index.d.ts +0 -3
- package/dist/core/ssh/du/index.d.ts.map +0 -1
- package/dist/core/ssh/du/index.js +0 -16
- package/dist/core/ssh/du/index.js.map +0 -1
- package/dist/core/ssh/du/size.d.ts +0 -4
- package/dist/core/ssh/du/size.d.ts.map +0 -1
- package/dist/core/ssh/du/size.js +0 -20
- package/dist/core/ssh/du/size.js.map +0 -1
- package/dist/core/ssh/du/walk.d.ts +0 -4
- package/dist/core/ssh/du/walk.d.ts.map +0 -1
- package/dist/core/ssh/du/walk.js +0 -105
- package/dist/core/ssh/du/walk.js.map +0 -1
- package/dist/core/ssh/entry.d.ts +0 -11
- package/dist/core/ssh/entry.d.ts.map +0 -1
- package/dist/core/ssh/entry.js +0 -61
- package/dist/core/ssh/entry.js.map +0 -1
- package/dist/core/ssh/find.d.ts +0 -21
- package/dist/core/ssh/find.d.ts.map +0 -1
- package/dist/core/ssh/find.js +0 -139
- package/dist/core/ssh/find.js.map +0 -1
- package/dist/core/ssh/watch.d.ts +0 -4
- package/dist/core/ssh/watch.d.ts.map +0 -1
- package/dist/core/ssh/watch.js +0 -89
- package/dist/core/ssh/watch.js.map +0 -1
- package/dist/fs_monkey.d.ts +0 -11
- package/dist/fs_monkey.d.ts.map +0 -1
- package/dist/fs_monkey.js +0 -187
- package/dist/fs_monkey.js.map +0 -1
- package/dist/fuse/core.d.ts +0 -157
- package/dist/fuse/core.d.ts.map +0 -1
- package/dist/fuse/core.js +0 -478
- package/dist/fuse/core.js.map +0 -1
- package/dist/fuse/errors.d.ts +0 -31
- package/dist/fuse/errors.d.ts.map +0 -1
- package/dist/fuse/errors.js +0 -102
- package/dist/fuse/errors.js.map +0 -1
- package/dist/fuse/platform/macos.d.ts.map +0 -1
- package/dist/fuse/platform/macos.js.map +0 -1
- package/dist/ops/disk/index.d.ts +0 -3
- package/dist/ops/disk/index.d.ts.map +0 -1
- package/dist/ops/disk/index.js +0 -20
- package/dist/ops/disk/index.js.map +0 -1
- package/dist/ops/email/index.d.ts +0 -3
- package/dist/ops/email/index.d.ts.map +0 -1
- package/dist/ops/email/index.js +0 -18
- package/dist/ops/email/index.js.map +0 -1
- package/dist/ops/gridfs/index.d.ts +0 -3
- package/dist/ops/gridfs/index.d.ts.map +0 -1
- package/dist/ops/gridfs/index.js +0 -18
- package/dist/ops/gridfs/index.js.map +0 -1
- package/dist/ops/hf/index.d.ts +0 -3
- package/dist/ops/hf/index.d.ts.map +0 -1
- package/dist/ops/hf/index.js +0 -18
- package/dist/ops/hf/index.js.map +0 -1
- package/dist/ops/hf_hub/index.d.ts +0 -3
- package/dist/ops/hf_hub/index.d.ts.map +0 -1
- package/dist/ops/hf_hub/index.js +0 -18
- package/dist/ops/hf_hub/index.js.map +0 -1
- package/dist/ops/nextcloud/index.d.ts +0 -3
- package/dist/ops/nextcloud/index.d.ts.map +0 -1
- package/dist/ops/nextcloud/index.js +0 -5
- package/dist/ops/nextcloud/index.js.map +0 -1
- package/dist/ops/ssh/index.d.ts +0 -3
- package/dist/ops/ssh/index.d.ts.map +0 -1
- package/dist/ops/ssh/index.js +0 -20
- package/dist/ops/ssh/index.js.map +0 -1
- package/dist/resource/aliyun/aliyun.d.ts +0 -8
- package/dist/resource/aliyun/aliyun.d.ts.map +0 -1
- package/dist/resource/aliyun/aliyun.js +0 -24
- package/dist/resource/aliyun/aliyun.js.map +0 -1
- package/dist/resource/aliyun/config.d.ts.map +0 -1
- package/dist/resource/aliyun/config.js.map +0 -1
- package/dist/resource/aliyun/prompt.d.ts +0 -2
- package/dist/resource/aliyun/prompt.d.ts.map +0 -1
- package/dist/resource/aliyun/prompt.js +0 -19
- package/dist/resource/aliyun/prompt.js.map +0 -1
- package/dist/resource/backblaze/backblaze.d.ts +0 -8
- package/dist/resource/backblaze/backblaze.d.ts.map +0 -1
- package/dist/resource/backblaze/backblaze.js +0 -24
- package/dist/resource/backblaze/backblaze.js.map +0 -1
- package/dist/resource/backblaze/config.d.ts.map +0 -1
- package/dist/resource/backblaze/config.js.map +0 -1
- package/dist/resource/backblaze/prompt.d.ts +0 -2
- package/dist/resource/backblaze/prompt.d.ts.map +0 -1
- package/dist/resource/backblaze/prompt.js +0 -19
- package/dist/resource/backblaze/prompt.js.map +0 -1
- package/dist/resource/box/box.d.ts +0 -34
- package/dist/resource/box/box.d.ts.map +0 -1
- package/dist/resource/box/box.js +0 -99
- package/dist/resource/box/box.js.map +0 -1
- package/dist/resource/box/config.d.ts +0 -43
- package/dist/resource/box/config.d.ts.map +0 -1
- package/dist/resource/box/config.js +0 -39
- package/dist/resource/box/config.js.map +0 -1
- package/dist/resource/ceph/ceph.d.ts +0 -8
- package/dist/resource/ceph/ceph.d.ts.map +0 -1
- package/dist/resource/ceph/ceph.js +0 -24
- package/dist/resource/ceph/ceph.js.map +0 -1
- package/dist/resource/ceph/config.d.ts.map +0 -1
- package/dist/resource/ceph/config.js.map +0 -1
- package/dist/resource/ceph/prompt.d.ts +0 -2
- package/dist/resource/ceph/prompt.d.ts.map +0 -1
- package/dist/resource/ceph/prompt.js +0 -19
- package/dist/resource/ceph/prompt.js.map +0 -1
- package/dist/resource/databricks_volume/config.d.ts +0 -3
- package/dist/resource/databricks_volume/config.d.ts.map +0 -1
- package/dist/resource/databricks_volume/config.js +0 -15
- package/dist/resource/databricks_volume/config.js.map +0 -1
- package/dist/resource/databricks_volume/databricks_volume.d.ts +0 -45
- package/dist/resource/databricks_volume/databricks_volume.d.ts.map +0 -1
- package/dist/resource/databricks_volume/databricks_volume.js +0 -186
- package/dist/resource/databricks_volume/databricks_volume.js.map +0 -1
- package/dist/resource/databricks_volume/profile.d.ts +0 -7
- package/dist/resource/databricks_volume/profile.d.ts.map +0 -1
- package/dist/resource/databricks_volume/profile.js +0 -55
- package/dist/resource/databricks_volume/profile.js.map +0 -1
- package/dist/resource/digitalocean/config.d.ts.map +0 -1
- package/dist/resource/digitalocean/config.js.map +0 -1
- package/dist/resource/digitalocean/digitalocean.d.ts +0 -8
- package/dist/resource/digitalocean/digitalocean.d.ts.map +0 -1
- package/dist/resource/digitalocean/digitalocean.js +0 -24
- package/dist/resource/digitalocean/digitalocean.js.map +0 -1
- package/dist/resource/digitalocean/prompt.d.ts +0 -2
- package/dist/resource/digitalocean/prompt.d.ts.map +0 -1
- package/dist/resource/digitalocean/prompt.js +0 -19
- package/dist/resource/digitalocean/prompt.js.map +0 -1
- package/dist/resource/discord/discord.d.ts +0 -33
- package/dist/resource/discord/discord.d.ts.map +0 -1
- package/dist/resource/discord/discord.js +0 -87
- package/dist/resource/discord/discord.js.map +0 -1
- package/dist/resource/disk/disk.d.ts +0 -55
- package/dist/resource/disk/disk.d.ts.map +0 -1
- package/dist/resource/disk/disk.js +0 -218
- package/dist/resource/disk/disk.js.map +0 -1
- package/dist/resource/disk/prompt.d.ts +0 -2
- package/dist/resource/disk/prompt.d.ts.map +0 -1
- package/dist/resource/disk/prompt.js +0 -17
- package/dist/resource/disk/prompt.js.map +0 -1
- package/dist/resource/dropbox/config.d.ts +0 -34
- package/dist/resource/dropbox/config.d.ts.map +0 -1
- package/dist/resource/dropbox/config.js +0 -31
- package/dist/resource/dropbox/config.js.map +0 -1
- package/dist/resource/dropbox/dropbox.d.ts +0 -34
- package/dist/resource/dropbox/dropbox.d.ts.map +0 -1
- package/dist/resource/dropbox/dropbox.js +0 -95
- package/dist/resource/dropbox/dropbox.js.map +0 -1
- package/dist/resource/email/email.d.ts +0 -33
- package/dist/resource/email/email.d.ts.map +0 -1
- package/dist/resource/email/email.js +0 -89
- package/dist/resource/email/email.js.map +0 -1
- package/dist/resource/email/index.d.ts +0 -3
- package/dist/resource/email/index.d.ts.map +0 -1
- package/dist/resource/email/index.js +0 -16
- package/dist/resource/email/index.js.map +0 -1
- package/dist/resource/email/prompt.d.ts +0 -3
- package/dist/resource/email/prompt.d.ts.map +0 -1
- package/dist/resource/email/prompt.js +0 -26
- package/dist/resource/email/prompt.js.map +0 -1
- package/dist/resource/gcal/gcal.d.ts +0 -32
- package/dist/resource/gcal/gcal.d.ts.map +0 -1
- package/dist/resource/gcal/gcal.js +0 -87
- package/dist/resource/gcal/gcal.js.map +0 -1
- package/dist/resource/gcs/config.d.ts +0 -36
- package/dist/resource/gcs/config.d.ts.map +0 -1
- package/dist/resource/gcs/config.js +0 -55
- package/dist/resource/gcs/config.js.map +0 -1
- package/dist/resource/gcs/gcs.d.ts +0 -8
- package/dist/resource/gcs/gcs.d.ts.map +0 -1
- package/dist/resource/gcs/gcs.js +0 -24
- package/dist/resource/gcs/gcs.js.map +0 -1
- package/dist/resource/gcs/prompt.d.ts +0 -2
- package/dist/resource/gcs/prompt.d.ts.map +0 -1
- package/dist/resource/gcs/prompt.js +0 -19
- package/dist/resource/gcs/prompt.js.map +0 -1
- package/dist/resource/gdocs/gdocs.d.ts +0 -32
- package/dist/resource/gdocs/gdocs.d.ts.map +0 -1
- package/dist/resource/gdocs/gdocs.js +0 -84
- package/dist/resource/gdocs/gdocs.js.map +0 -1
- package/dist/resource/gdrive/gdrive.d.ts +0 -34
- package/dist/resource/gdrive/gdrive.d.ts.map +0 -1
- package/dist/resource/gdrive/gdrive.js +0 -89
- package/dist/resource/gdrive/gdrive.js.map +0 -1
- package/dist/resource/github/github.d.ts +0 -37
- package/dist/resource/github/github.d.ts.map +0 -1
- package/dist/resource/github/github.js +0 -119
- package/dist/resource/github/github.js.map +0 -1
- package/dist/resource/gmail/gmail.d.ts +0 -33
- package/dist/resource/gmail/gmail.d.ts.map +0 -1
- package/dist/resource/gmail/gmail.js +0 -88
- package/dist/resource/gmail/gmail.js.map +0 -1
- package/dist/resource/gridfs/config.d.ts +0 -20
- package/dist/resource/gridfs/config.d.ts.map +0 -1
- package/dist/resource/gridfs/config.js +0 -42
- package/dist/resource/gridfs/config.js.map +0 -1
- package/dist/resource/gridfs/gridfs.d.ts +0 -50
- package/dist/resource/gridfs/gridfs.d.ts.map +0 -1
- package/dist/resource/gridfs/gridfs.js +0 -190
- package/dist/resource/gridfs/gridfs.js.map +0 -1
- package/dist/resource/gridfs/prompt.d.ts +0 -2
- package/dist/resource/gridfs/prompt.d.ts.map +0 -1
- package/dist/resource/gridfs/prompt.js +0 -19
- package/dist/resource/gridfs/prompt.js.map +0 -1
- package/dist/resource/gsheets/gsheets.d.ts +0 -32
- package/dist/resource/gsheets/gsheets.d.ts.map +0 -1
- package/dist/resource/gsheets/gsheets.js +0 -84
- package/dist/resource/gsheets/gsheets.js.map +0 -1
- package/dist/resource/gslides/gslides.d.ts +0 -32
- package/dist/resource/gslides/gslides.d.ts.map +0 -1
- package/dist/resource/gslides/gslides.js +0 -84
- package/dist/resource/gslides/gslides.js.map +0 -1
- package/dist/resource/hf_buckets/base.d.ts +0 -34
- package/dist/resource/hf_buckets/base.d.ts.map +0 -1
- package/dist/resource/hf_buckets/base.js +0 -117
- package/dist/resource/hf_buckets/base.js.map +0 -1
- package/dist/resource/hf_buckets/config.d.ts +0 -58
- package/dist/resource/hf_buckets/config.d.ts.map +0 -1
- package/dist/resource/hf_buckets/config.js +0 -89
- package/dist/resource/hf_buckets/config.js.map +0 -1
- package/dist/resource/hf_buckets/hf_buckets.d.ts +0 -16
- package/dist/resource/hf_buckets/hf_buckets.d.ts.map +0 -1
- package/dist/resource/hf_buckets/hf_buckets.js +0 -46
- package/dist/resource/hf_buckets/hf_buckets.js.map +0 -1
- package/dist/resource/hf_buckets/prompt.d.ts +0 -2
- package/dist/resource/hf_buckets/prompt.d.ts.map +0 -1
- package/dist/resource/hf_buckets/prompt.js +0 -18
- package/dist/resource/hf_buckets/prompt.js.map +0 -1
- package/dist/resource/hf_datasets/hf_datasets.d.ts +0 -16
- package/dist/resource/hf_datasets/hf_datasets.d.ts.map +0 -1
- package/dist/resource/hf_datasets/hf_datasets.js +0 -46
- package/dist/resource/hf_datasets/hf_datasets.js.map +0 -1
- package/dist/resource/hf_datasets/prompt.d.ts +0 -2
- package/dist/resource/hf_datasets/prompt.d.ts.map +0 -1
- package/dist/resource/hf_datasets/prompt.js +0 -18
- package/dist/resource/hf_datasets/prompt.js.map +0 -1
- package/dist/resource/hf_hub/base.d.ts +0 -43
- package/dist/resource/hf_hub/base.d.ts.map +0 -1
- package/dist/resource/hf_hub/base.js +0 -111
- package/dist/resource/hf_hub/base.js.map +0 -1
- package/dist/resource/hf_models/config.d.ts.map +0 -1
- package/dist/resource/hf_models/config.js.map +0 -1
- package/dist/resource/hf_models/hf_models.d.ts +0 -16
- package/dist/resource/hf_models/hf_models.d.ts.map +0 -1
- package/dist/resource/hf_models/hf_models.js +0 -46
- package/dist/resource/hf_models/hf_models.js.map +0 -1
- package/dist/resource/hf_models/prompt.d.ts +0 -2
- package/dist/resource/hf_models/prompt.d.ts.map +0 -1
- package/dist/resource/hf_models/prompt.js +0 -18
- package/dist/resource/hf_models/prompt.js.map +0 -1
- package/dist/resource/hf_spaces/hf_spaces.d.ts +0 -16
- package/dist/resource/hf_spaces/hf_spaces.d.ts.map +0 -1
- package/dist/resource/hf_spaces/hf_spaces.js +0 -46
- package/dist/resource/hf_spaces/hf_spaces.js.map +0 -1
- package/dist/resource/hf_spaces/prompt.d.ts +0 -2
- package/dist/resource/hf_spaces/prompt.d.ts.map +0 -1
- package/dist/resource/hf_spaces/prompt.js +0 -18
- package/dist/resource/hf_spaces/prompt.js.map +0 -1
- package/dist/resource/jaeger/config.d.ts +0 -15
- package/dist/resource/jaeger/config.d.ts.map +0 -1
- package/dist/resource/jaeger/config.js +0 -28
- package/dist/resource/jaeger/config.js.map +0 -1
- package/dist/resource/jaeger/jaeger.d.ts +0 -32
- package/dist/resource/jaeger/jaeger.d.ts.map +0 -1
- package/dist/resource/jaeger/jaeger.js +0 -101
- package/dist/resource/jaeger/jaeger.js.map +0 -1
- package/dist/resource/lancedb/lancedb.d.ts +0 -37
- package/dist/resource/lancedb/lancedb.d.ts.map +0 -1
- package/dist/resource/lancedb/lancedb.js +0 -85
- package/dist/resource/lancedb/lancedb.js.map +0 -1
- package/dist/resource/lancedb/store.d.ts +0 -29
- package/dist/resource/lancedb/store.d.ts.map +0 -1
- package/dist/resource/lancedb/store.js +0 -159
- package/dist/resource/lancedb/store.js.map +0 -1
- package/dist/resource/langfuse/config.d.ts +0 -16
- package/dist/resource/langfuse/config.d.ts.map +0 -1
- package/dist/resource/langfuse/config.js +0 -29
- package/dist/resource/langfuse/config.js.map +0 -1
- package/dist/resource/langfuse/langfuse.d.ts +0 -31
- package/dist/resource/langfuse/langfuse.d.ts.map +0 -1
- package/dist/resource/langfuse/langfuse.js +0 -98
- package/dist/resource/langfuse/langfuse.js.map +0 -1
- package/dist/resource/linear/linear.d.ts +0 -33
- package/dist/resource/linear/linear.d.ts.map +0 -1
- package/dist/resource/linear/linear.js +0 -93
- package/dist/resource/linear/linear.js.map +0 -1
- package/dist/resource/loader.d.ts.map +0 -1
- package/dist/resource/loader.js.map +0 -1
- package/dist/resource/minio/config.d.ts.map +0 -1
- package/dist/resource/minio/config.js.map +0 -1
- package/dist/resource/minio/minio.d.ts +0 -8
- package/dist/resource/minio/minio.d.ts.map +0 -1
- package/dist/resource/minio/minio.js +0 -24
- package/dist/resource/minio/minio.js.map +0 -1
- package/dist/resource/minio/prompt.d.ts +0 -2
- package/dist/resource/minio/prompt.d.ts.map +0 -1
- package/dist/resource/minio/prompt.js +0 -19
- package/dist/resource/minio/prompt.js.map +0 -1
- package/dist/resource/mongodb/mongodb.d.ts +0 -39
- package/dist/resource/mongodb/mongodb.d.ts.map +0 -1
- package/dist/resource/mongodb/mongodb.js +0 -100
- package/dist/resource/mongodb/mongodb.js.map +0 -1
- package/dist/resource/mongodb/store.d.ts +0 -71
- package/dist/resource/mongodb/store.d.ts.map +0 -1
- package/dist/resource/mongodb/store.js +0 -148
- package/dist/resource/mongodb/store.js.map +0 -1
- package/dist/resource/nextcloud/config.d.ts +0 -14
- package/dist/resource/nextcloud/config.d.ts.map +0 -1
- package/dist/resource/nextcloud/config.js +0 -17
- package/dist/resource/nextcloud/config.js.map +0 -1
- package/dist/resource/nextcloud/nextcloud.d.ts +0 -48
- package/dist/resource/nextcloud/nextcloud.d.ts.map +0 -1
- package/dist/resource/nextcloud/nextcloud.js +0 -157
- package/dist/resource/nextcloud/nextcloud.js.map +0 -1
- package/dist/resource/nextcloud/prompt.d.ts +0 -2
- package/dist/resource/nextcloud/prompt.d.ts.map +0 -1
- package/dist/resource/nextcloud/prompt.js +0 -2
- package/dist/resource/nextcloud/prompt.js.map +0 -1
- package/dist/resource/notion/notion.d.ts +0 -32
- package/dist/resource/notion/notion.d.ts.map +0 -1
- package/dist/resource/notion/notion.js +0 -90
- package/dist/resource/notion/notion.js.map +0 -1
- package/dist/resource/oci/config.d.ts +0 -37
- package/dist/resource/oci/config.d.ts.map +0 -1
- package/dist/resource/oci/config.js +0 -60
- package/dist/resource/oci/config.js.map +0 -1
- package/dist/resource/oci/oci.d.ts +0 -8
- package/dist/resource/oci/oci.d.ts.map +0 -1
- package/dist/resource/oci/oci.js +0 -24
- package/dist/resource/oci/oci.js.map +0 -1
- package/dist/resource/oci/prompt.d.ts +0 -2
- package/dist/resource/oci/prompt.d.ts.map +0 -1
- package/dist/resource/oci/prompt.js +0 -19
- package/dist/resource/oci/prompt.js.map +0 -1
- package/dist/resource/postgres/postgres.d.ts +0 -39
- package/dist/resource/postgres/postgres.d.ts.map +0 -1
- package/dist/resource/postgres/postgres.js +0 -98
- package/dist/resource/postgres/postgres.js.map +0 -1
- package/dist/resource/postgres/store.d.ts +0 -21
- package/dist/resource/postgres/store.d.ts.map +0 -1
- package/dist/resource/postgres/store.js +0 -53
- package/dist/resource/postgres/store.js.map +0 -1
- package/dist/resource/qingstor/config.d.ts.map +0 -1
- package/dist/resource/qingstor/config.js.map +0 -1
- package/dist/resource/qingstor/prompt.d.ts +0 -2
- package/dist/resource/qingstor/prompt.d.ts.map +0 -1
- package/dist/resource/qingstor/prompt.js +0 -19
- package/dist/resource/qingstor/prompt.js.map +0 -1
- package/dist/resource/qingstor/qingstor.d.ts +0 -8
- package/dist/resource/qingstor/qingstor.d.ts.map +0 -1
- package/dist/resource/qingstor/qingstor.js +0 -24
- package/dist/resource/qingstor/qingstor.js.map +0 -1
- package/dist/resource/r2/config.d.ts +0 -37
- package/dist/resource/r2/config.d.ts.map +0 -1
- package/dist/resource/r2/config.js +0 -63
- package/dist/resource/r2/config.js.map +0 -1
- package/dist/resource/r2/prompt.d.ts +0 -2
- package/dist/resource/r2/prompt.d.ts.map +0 -1
- package/dist/resource/r2/prompt.js +0 -19
- package/dist/resource/r2/prompt.js.map +0 -1
- package/dist/resource/r2/r2.d.ts +0 -8
- package/dist/resource/r2/r2.d.ts.map +0 -1
- package/dist/resource/r2/r2.js +0 -24
- package/dist/resource/r2/r2.js.map +0 -1
- package/dist/resource/redis/redis.d.ts +0 -30
- package/dist/resource/redis/redis.d.ts.map +0 -1
- package/dist/resource/redis/redis.js +0 -37
- package/dist/resource/redis/redis.js.map +0 -1
- package/dist/resource/redis/store.d.ts +0 -63
- package/dist/resource/redis/store.d.ts.map +0 -1
- package/dist/resource/redis/store.js +0 -246
- package/dist/resource/redis/store.js.map +0 -1
- package/dist/resource/registry.d.ts +0 -42
- package/dist/resource/registry.d.ts.map +0 -1
- package/dist/resource/registry.js +0 -410
- package/dist/resource/registry.js.map +0 -1
- package/dist/resource/s3/config.d.ts +0 -36
- package/dist/resource/s3/config.d.ts.map +0 -1
- package/dist/resource/s3/config.js +0 -61
- package/dist/resource/s3/config.js.map +0 -1
- package/dist/resource/s3/mock.d.ts +0 -17
- package/dist/resource/s3/mock.d.ts.map +0 -1
- package/dist/resource/s3/mock.js +0 -214
- package/dist/resource/s3/mock.js.map +0 -1
- package/dist/resource/s3/s3.d.ts +0 -50
- package/dist/resource/s3/s3.d.ts.map +0 -1
- package/dist/resource/s3/s3.js +0 -201
- package/dist/resource/s3/s3.js.map +0 -1
- package/dist/resource/s3_alias.d.ts +0 -112
- package/dist/resource/s3_alias.d.ts.map +0 -1
- package/dist/resource/s3_alias.js +0 -155
- package/dist/resource/s3_alias.js.map +0 -1
- package/dist/resource/scaleway/config.d.ts.map +0 -1
- package/dist/resource/scaleway/config.js.map +0 -1
- package/dist/resource/scaleway/prompt.d.ts +0 -2
- package/dist/resource/scaleway/prompt.d.ts.map +0 -1
- package/dist/resource/scaleway/prompt.js +0 -19
- package/dist/resource/scaleway/prompt.js.map +0 -1
- package/dist/resource/scaleway/scaleway.d.ts +0 -8
- package/dist/resource/scaleway/scaleway.d.ts.map +0 -1
- package/dist/resource/scaleway/scaleway.js +0 -24
- package/dist/resource/scaleway/scaleway.js.map +0 -1
- package/dist/resource/seaweedfs/config.d.ts.map +0 -1
- package/dist/resource/seaweedfs/config.js.map +0 -1
- package/dist/resource/seaweedfs/prompt.d.ts +0 -2
- package/dist/resource/seaweedfs/prompt.d.ts.map +0 -1
- package/dist/resource/seaweedfs/prompt.js +0 -19
- package/dist/resource/seaweedfs/prompt.js.map +0 -1
- package/dist/resource/seaweedfs/seaweedfs.d.ts +0 -8
- package/dist/resource/seaweedfs/seaweedfs.d.ts.map +0 -1
- package/dist/resource/seaweedfs/seaweedfs.js +0 -24
- package/dist/resource/seaweedfs/seaweedfs.js.map +0 -1
- package/dist/resource/slack/slack.d.ts +0 -33
- package/dist/resource/slack/slack.d.ts.map +0 -1
- package/dist/resource/slack/slack.js +0 -88
- package/dist/resource/slack/slack.js.map +0 -1
- package/dist/resource/ssh/config.d.ts +0 -20
- package/dist/resource/ssh/config.d.ts.map +0 -1
- package/dist/resource/ssh/config.js +0 -33
- package/dist/resource/ssh/config.js.map +0 -1
- package/dist/resource/ssh/prompt.d.ts +0 -2
- package/dist/resource/ssh/prompt.d.ts.map +0 -1
- package/dist/resource/ssh/prompt.js +0 -18
- package/dist/resource/ssh/prompt.js.map +0 -1
- package/dist/resource/ssh/ssh.d.ts +0 -51
- package/dist/resource/ssh/ssh.d.ts.map +0 -1
- package/dist/resource/ssh/ssh.js +0 -169
- package/dist/resource/ssh/ssh.js.map +0 -1
- package/dist/resource/supabase/config.d.ts +0 -38
- package/dist/resource/supabase/config.d.ts.map +0 -1
- package/dist/resource/supabase/config.js +0 -63
- package/dist/resource/supabase/config.js.map +0 -1
- package/dist/resource/supabase/prompt.d.ts +0 -2
- package/dist/resource/supabase/prompt.d.ts.map +0 -1
- package/dist/resource/supabase/prompt.js +0 -19
- package/dist/resource/supabase/prompt.js.map +0 -1
- package/dist/resource/supabase/supabase.d.ts +0 -8
- package/dist/resource/supabase/supabase.d.ts.map +0 -1
- package/dist/resource/supabase/supabase.js +0 -24
- package/dist/resource/supabase/supabase.js.map +0 -1
- package/dist/resource/tencent/config.d.ts.map +0 -1
- package/dist/resource/tencent/config.js.map +0 -1
- package/dist/resource/tencent/prompt.d.ts +0 -2
- package/dist/resource/tencent/prompt.d.ts.map +0 -1
- package/dist/resource/tencent/prompt.js +0 -19
- package/dist/resource/tencent/prompt.js.map +0 -1
- package/dist/resource/tencent/tencent.d.ts +0 -8
- package/dist/resource/tencent/tencent.d.ts.map +0 -1
- package/dist/resource/tencent/tencent.js +0 -24
- package/dist/resource/tencent/tencent.js.map +0 -1
- package/dist/resource/trello/config.d.ts +0 -15
- package/dist/resource/trello/config.d.ts.map +0 -1
- package/dist/resource/trello/config.js +0 -28
- package/dist/resource/trello/config.js.map +0 -1
- package/dist/resource/trello/trello.d.ts +0 -32
- package/dist/resource/trello/trello.d.ts.map +0 -1
- package/dist/resource/trello/trello.js +0 -94
- package/dist/resource/trello/trello.js.map +0 -1
- package/dist/resource/wasabi/config.d.ts +0 -36
- package/dist/resource/wasabi/config.d.ts.map +0 -1
- package/dist/resource/wasabi/config.js +0 -60
- package/dist/resource/wasabi/config.js.map +0 -1
- package/dist/resource/wasabi/prompt.d.ts +0 -2
- package/dist/resource/wasabi/prompt.d.ts.map +0 -1
- package/dist/resource/wasabi/prompt.js +0 -19
- package/dist/resource/wasabi/prompt.js.map +0 -1
- package/dist/resource/wasabi/wasabi.d.ts +0 -8
- package/dist/resource/wasabi/wasabi.d.ts.map +0 -1
- package/dist/resource/wasabi/wasabi.js +0 -24
- package/dist/resource/wasabi/wasabi.js.map +0 -1
- package/dist/runtime/python/local.d.ts +0 -23
- package/dist/runtime/python/local.d.ts.map +0 -1
- package/dist/runtime/python/local.js +0 -98
- package/dist/runtime/python/local.js.map +0 -1
- package/dist/runtime/sandbox/e2b/config.d.ts +0 -2
- package/dist/runtime/sandbox/e2b/config.d.ts.map +0 -1
- package/dist/runtime/sandbox/e2b/config.js +0 -15
- package/dist/runtime/sandbox/e2b/config.js.map +0 -1
- package/dist/runtime/sandbox/e2b/runtime.d.ts +0 -2
- package/dist/runtime/sandbox/e2b/runtime.d.ts.map +0 -1
- package/dist/runtime/sandbox/e2b/runtime.js +0 -15
- package/dist/runtime/sandbox/e2b/runtime.js.map +0 -1
- package/dist/test-utils.d.ts +0 -11
- package/dist/test-utils.d.ts.map +0 -1
- package/dist/test-utils.js +0 -38
- package/dist/test-utils.js.map +0 -1
- package/dist/workspace/namespace/disk.d.ts +0 -28
- package/dist/workspace/namespace/disk.d.ts.map +0 -1
- package/dist/workspace/namespace/disk.js +0 -110
- package/dist/workspace/namespace/disk.js.map +0 -1
- package/dist/workspace/namespace/redis.d.ts +0 -31
- package/dist/workspace/namespace/redis.d.ts.map +0 -1
- package/dist/workspace/namespace/redis.js +0 -99
- package/dist/workspace/namespace/redis.js.map +0 -1
- /package/dist/core/disk/{watch → events}/constants.d.ts +0 -0
- /package/dist/core/disk/{watch → events}/constants.js +0 -0
- /package/dist/core/{hf → hf_buckets}/create.js +0 -0
- /package/dist/core/{hf → hf_buckets}/exists.js +0 -0
- /package/dist/core/{hf → hf_buckets}/mkdir.js +0 -0
- /package/dist/core/{hf → hf_buckets}/rm.js +0 -0
- /package/dist/core/{hf → hf_buckets}/unlink.js +0 -0
- /package/dist/{fuse → mount}/platform/macos.d.ts +0 -0
- /package/dist/{fuse → mount}/platform/macos.js +0 -0
- /package/dist/{core/opendal → mount}/types.js +0 -0
- /package/dist/{resource → utils}/loader.d.ts +0 -0
- /package/dist/{resource → utils}/loader.js +0 -0
- /package/dist/{resource → vfs}/aliyun/config.d.ts +0 -0
- /package/dist/{resource → vfs}/aliyun/config.js +0 -0
- /package/dist/{resource → vfs}/backblaze/config.d.ts +0 -0
- /package/dist/{resource → vfs}/backblaze/config.js +0 -0
- /package/dist/{resource → vfs}/ceph/config.d.ts +0 -0
- /package/dist/{resource → vfs}/ceph/config.js +0 -0
- /package/dist/{resource → vfs}/digitalocean/config.d.ts +0 -0
- /package/dist/{resource → vfs}/digitalocean/config.js +0 -0
- /package/dist/{resource → vfs}/hf_models/config.d.ts +0 -0
- /package/dist/{resource → vfs}/hf_models/config.js +0 -0
- /package/dist/{resource → vfs}/minio/config.d.ts +0 -0
- /package/dist/{resource → vfs}/minio/config.js +0 -0
- /package/dist/{resource → vfs}/qingstor/config.d.ts +0 -0
- /package/dist/{resource → vfs}/qingstor/config.js +0 -0
- /package/dist/{resource → vfs}/scaleway/config.d.ts +0 -0
- /package/dist/{resource → vfs}/scaleway/config.js +0 -0
- /package/dist/{resource → vfs}/seaweedfs/config.d.ts +0 -0
- /package/dist/{resource → vfs}/seaweedfs/config.js +0 -0
- /package/dist/{resource → vfs}/tencent/config.d.ts +0 -0
- /package/dist/{resource → vfs}/tencent/config.js +0 -0
|
@@ -0,0 +1,915 @@
|
|
|
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 { constants as fsConstants } from 'node:fs';
|
|
15
|
+
import { posix } from 'node:path';
|
|
16
|
+
import { readerOf } from '@struktoai/mirage-core/workspace/files';
|
|
17
|
+
import { ChunkedHandle, FileTable, overlaid, writeRuns, } from '@struktoai/mirage-core/runtime/handles/index';
|
|
18
|
+
import { READ_CHUNK } from '@struktoai/mirage-core/runtime/handles/constants';
|
|
19
|
+
import { classify } from '@struktoai/mirage-core/errors/index';
|
|
20
|
+
import { FileStat, FileType, LIVE_KEY } from '@struktoai/mirage-core/types';
|
|
21
|
+
import { rstripSlash } from '@struktoai/mirage-core/utils/slash';
|
|
22
|
+
import { compareCodePoints } from '@struktoai/mirage-core/utils/sort';
|
|
23
|
+
import { DIR_MODE, DIR_SIZE, atimeMs, contentSize, deviceRdev, isDir, isLink, mtimeMs, posixMode, } from '@struktoai/mirage-core/utils/stat_view';
|
|
24
|
+
import { callsAs, currentCaller, runWithSession, } from '@struktoai/mirage-core/context/session_context';
|
|
25
|
+
import { skippedAtDispatch } from '@struktoai/mirage-core/policy/match/rule';
|
|
26
|
+
import { enoent } from '@struktoai/mirage-core/errors/fs';
|
|
27
|
+
import { isMacosMetadata } from "./platform/macos.js";
|
|
28
|
+
/**
|
|
29
|
+
* Protocol-neutral mount logic shared by every kernel adapter.
|
|
30
|
+
*
|
|
31
|
+
* Everything here is expressed in POSIX terms (attribute records, ordinary
|
|
32
|
+
* thrown errors) and imports nothing from `@zkochan/fuse-native`, so it is
|
|
33
|
+
* reusable by a non-FUSE adapter and unit-testable without a kernel.
|
|
34
|
+
*
|
|
35
|
+
* The division of labour: this class decides *what* the filesystem
|
|
36
|
+
* contains, an adapter decides *how* to say it to a particular kernel
|
|
37
|
+
* interface. Adapters translate the errors thrown here into their own
|
|
38
|
+
* error codes with `classifyErrno`. Mirrors Python's `MountCore`.
|
|
39
|
+
*
|
|
40
|
+
* Every op goes through `ws.vfs`, which delegates to the dispatcher, so
|
|
41
|
+
* a mount walks the same dispatcher as a shell line (mount modes, policies,
|
|
42
|
+
* cache, invalidation) and every op it runs lands on the `ws.vfs.records`
|
|
43
|
+
* ledger. Reaching `ws.dispatch` from here instead would skip the record;
|
|
44
|
+
* reaching a backend directly would skip the dispatcher.
|
|
45
|
+
*/
|
|
46
|
+
export class MountCore {
|
|
47
|
+
files;
|
|
48
|
+
session;
|
|
49
|
+
now;
|
|
50
|
+
root;
|
|
51
|
+
handles = new FileTable();
|
|
52
|
+
// Per file identity: the hydration read out (opens share it), a
|
|
53
|
+
// generation a change under it bumps, the chain of mutations, the chain of
|
|
54
|
+
// removals, and the opens out that a removal waits for.
|
|
55
|
+
hydrations = new Map();
|
|
56
|
+
hydrationGen = new Map();
|
|
57
|
+
pending = new Map();
|
|
58
|
+
removals = new Map();
|
|
59
|
+
opening = new Map();
|
|
60
|
+
uid;
|
|
61
|
+
gid;
|
|
62
|
+
constructor(files, options = {}) {
|
|
63
|
+
this.files = files;
|
|
64
|
+
this.now = new Date();
|
|
65
|
+
this.root = options.rootPrefix !== undefined ? rstripSlash(options.rootPrefix) : '';
|
|
66
|
+
this.uid = typeof process.getuid === 'function' ? process.getuid() : 0;
|
|
67
|
+
this.gid = typeof process.getgid === 'function' ? process.getgid() : 0;
|
|
68
|
+
this.session = options.session ?? null;
|
|
69
|
+
const skipped = this.session === null ? [] : skippedAtDispatch(this.session.commands);
|
|
70
|
+
if (this.session !== null && skipped.length > 0) {
|
|
71
|
+
// This entry point sees ops, never a line, so the profile's command-level
|
|
72
|
+
// rules have nothing here to judge.
|
|
73
|
+
console.warn(`session ${this.session.sessionId}: an entry point that sees only ops (a kernel mount, ` +
|
|
74
|
+
`SFTP, codex-exec's file calls) cannot apply ${skipped.join('; ')}; path rules, ` +
|
|
75
|
+
'hides and modes still hold');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// ── helpers ──────────────────────────────────────────────────────
|
|
79
|
+
/**
|
|
80
|
+
* Run one op under the bound session's mount grants and profile, as the
|
|
81
|
+
* Python MountCore binds each op: dispatch reads the session from
|
|
82
|
+
* context, so binding at the op entry point is what scopes a kernel or
|
|
83
|
+
* SFTP mount to it. Unbound, an op runs as whatever session is current.
|
|
84
|
+
*/
|
|
85
|
+
op(fn) {
|
|
86
|
+
return this.session === null ? fn() : runWithSession(this.session, fn);
|
|
87
|
+
}
|
|
88
|
+
resolve(path) {
|
|
89
|
+
if (this.root === '')
|
|
90
|
+
return path;
|
|
91
|
+
return path === '/' ? this.root : this.root + path;
|
|
92
|
+
}
|
|
93
|
+
dirStat() {
|
|
94
|
+
return {
|
|
95
|
+
mtime: this.now,
|
|
96
|
+
atime: this.now,
|
|
97
|
+
ctime: this.now,
|
|
98
|
+
nlink: 2,
|
|
99
|
+
size: DIR_SIZE,
|
|
100
|
+
mode: DIR_MODE,
|
|
101
|
+
uid: this.uid,
|
|
102
|
+
gid: this.gid,
|
|
103
|
+
rdev: 0,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* The attrs for one stat row, the way a guest's stat reads it. The row
|
|
108
|
+
* carries the namespace overlay (chmod bits, chown ids, a touched mtime),
|
|
109
|
+
* so what a metadata op stored is what the mount shows, and a device
|
|
110
|
+
* keeps its type and numbers. String uid/gid (names) fall back to the
|
|
111
|
+
* mounting user: the kernel wants numbers and there is no user db to map
|
|
112
|
+
* against. A missing stamp falls back to the mount's start time; epoch
|
|
113
|
+
* zero is a real time and lands. `size` replaces the row's, from an open
|
|
114
|
+
* handle or a link's shown target. Mirrors Python's `MountCore.attrs`.
|
|
115
|
+
*/
|
|
116
|
+
attrs(s, size = null) {
|
|
117
|
+
const mtime = mtimeMs(s);
|
|
118
|
+
const when = mtime === null ? this.now : new Date(mtime);
|
|
119
|
+
const atime = atimeMs(s);
|
|
120
|
+
return {
|
|
121
|
+
mtime: when,
|
|
122
|
+
atime: atime === null ? when : new Date(atime),
|
|
123
|
+
ctime: when,
|
|
124
|
+
nlink: isDir(s) ? 2 : 1,
|
|
125
|
+
size: size ?? contentSize(s),
|
|
126
|
+
mode: posixMode(s),
|
|
127
|
+
uid: typeof s.uid === 'number' ? s.uid : this.uid,
|
|
128
|
+
gid: typeof s.gid === 'number' ? s.gid : this.gid,
|
|
129
|
+
rdev: deviceRdev(s),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* The target to present for a link at a mount path. Relative targets are
|
|
134
|
+
* stored verbatim and returned as-is. Absolute targets name virtual
|
|
135
|
+
* paths, so they are rewritten relative to the link's directory: returned
|
|
136
|
+
* raw, the kernel would resolve them against the host root and escape
|
|
137
|
+
* the mountpoint.
|
|
138
|
+
*/
|
|
139
|
+
shownTarget(path, target) {
|
|
140
|
+
if (!target.startsWith('/'))
|
|
141
|
+
return target;
|
|
142
|
+
let virtualTarget = target;
|
|
143
|
+
if (this.root !== '') {
|
|
144
|
+
if (target === this.root) {
|
|
145
|
+
virtualTarget = '/';
|
|
146
|
+
}
|
|
147
|
+
else if (target.startsWith(this.root + '/')) {
|
|
148
|
+
virtualTarget = target.slice(this.root.length);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
// points outside the scoped root: unreachable through this
|
|
152
|
+
// mount, keep the stored form (a dangling link is legal)
|
|
153
|
+
return target;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
const slash = path.lastIndexOf('/');
|
|
157
|
+
const parent = slash <= 0 ? '/' : path.slice(0, slash);
|
|
158
|
+
// A target that is the link's own directory is `.`, as Python's relpath
|
|
159
|
+
// names it; posix.relative answers the empty string.
|
|
160
|
+
return posix.relative(parent, virtualTarget) || '.';
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* The length of the bytes an open handle on the file holds. A size-unknown
|
|
164
|
+
* file is read whole when it opens, so while a handle is open its length
|
|
165
|
+
* answers a stat by path too (`ls -l` beside a `cat`). Once every handle
|
|
166
|
+
* is released, the dispatcher answers from the workspace cache instead.
|
|
167
|
+
* Mirrors Python's `held_size`.
|
|
168
|
+
*/
|
|
169
|
+
heldSize(path) {
|
|
170
|
+
for (const ctx of this.openOn(this.identity(path))) {
|
|
171
|
+
if (ctx.data !== undefined)
|
|
172
|
+
return ctx.data.byteLength;
|
|
173
|
+
}
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Read a size-unknown file whole for the handle opening it, through the
|
|
178
|
+
* dispatcher, so a caching mount keeps the bytes for the next open and for
|
|
179
|
+
* a stat once this one closes. Undefined when the read fails: open() stays
|
|
180
|
+
* permissive and the read() that follows surfaces the error. Mirrors
|
|
181
|
+
* Python's `_hydrate`.
|
|
182
|
+
*/
|
|
183
|
+
hydrate(path) {
|
|
184
|
+
const key = this.identity(path);
|
|
185
|
+
const inflight = this.hydrations.get(key);
|
|
186
|
+
if (inflight !== undefined)
|
|
187
|
+
return inflight;
|
|
188
|
+
const promise = (async () => {
|
|
189
|
+
try {
|
|
190
|
+
for (;;) {
|
|
191
|
+
const gen = this.hydrationGen.get(key) ?? 0;
|
|
192
|
+
const data = await this.op(() => this.files.read(this.resolve(path)));
|
|
193
|
+
// The file changed while this read was out: what came back is
|
|
194
|
+
// stale, so read again rather than hand it over.
|
|
195
|
+
if ((this.hydrationGen.get(key) ?? 0) !== gen)
|
|
196
|
+
continue;
|
|
197
|
+
return data;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
catch (err) {
|
|
201
|
+
console.debug(`fuse: hydration read of ${path} failed, deferring to read(): ${String(err)}`);
|
|
202
|
+
return undefined;
|
|
203
|
+
}
|
|
204
|
+
finally {
|
|
205
|
+
this.hydrations.delete(key);
|
|
206
|
+
this.hydrationGen.delete(key);
|
|
207
|
+
}
|
|
208
|
+
})();
|
|
209
|
+
this.hydrations.set(key, promise);
|
|
210
|
+
return promise;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Run one mutation of a file after every mutation already queued for
|
|
214
|
+
* it, and let the next one wait for it. Serialization is per identity,
|
|
215
|
+
* so a flush through a link and a truncate through its target queue
|
|
216
|
+
* behind each other, and a flush still landing cannot be overtaken by a
|
|
217
|
+
* truncate that would then be undone when the flush completes.
|
|
218
|
+
*/
|
|
219
|
+
mutate(key, fn) {
|
|
220
|
+
return this.queue(this.pending, key, fn);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Run `fn` holding the chain of every key, taken in sorted order so two
|
|
224
|
+
* callers that hold the same pair never wait on each other. Mirrors
|
|
225
|
+
* Python's `_queue_all`.
|
|
226
|
+
*/
|
|
227
|
+
queueAll(queues, keys, fn) {
|
|
228
|
+
const [first = '', ...rest] = [...new Set(keys)].sort(compareCodePoints);
|
|
229
|
+
if (rest.length === 0)
|
|
230
|
+
return this.queue(queues, first, fn);
|
|
231
|
+
return this.queue(queues, first, () => this.queueAll(queues, rest, fn));
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Run `fn`, which removes, replaces or moves the files at `paths`, after
|
|
235
|
+
* the opens of those names already out, with later ones held back until
|
|
236
|
+
* it is done, as the kernel orders an open and an unlink or a rename of
|
|
237
|
+
* one name. `hold` reads the rest for the handles open before; an open
|
|
238
|
+
* that slipped in while that read was out would get a chunked handle onto
|
|
239
|
+
* bytes about to go. Chains of their own, taken before any `pending` one,
|
|
240
|
+
* rather than `pending` itself: an open they wait for may be truncating
|
|
241
|
+
* there.
|
|
242
|
+
*/
|
|
243
|
+
removing(paths, fn) {
|
|
244
|
+
const keys = paths.map((path) => this.identity(path, false));
|
|
245
|
+
return this.queueAll(this.removals, keys, async () => {
|
|
246
|
+
await Promise.all(keys.flatMap((key) => [...(this.opening.get(key) ?? [])]));
|
|
247
|
+
await fn();
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Run `fn` after every call already queued under `key` in `queues`, and
|
|
252
|
+
* let the next one wait for it, whether it resolves or throws.
|
|
253
|
+
*/
|
|
254
|
+
queue(queues, key, fn) {
|
|
255
|
+
const prev = queues.get(key) ?? Promise.resolve();
|
|
256
|
+
const run = prev.then(fn, fn);
|
|
257
|
+
const tail = run.then(() => undefined, () => undefined);
|
|
258
|
+
queues.set(key, tail);
|
|
259
|
+
void tail.then(() => {
|
|
260
|
+
if (queues.get(key) === tail)
|
|
261
|
+
queues.delete(key);
|
|
262
|
+
});
|
|
263
|
+
return run;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Land write runs on the mount, one pwrite each, in order. A pwrite keeps
|
|
267
|
+
* every stored byte the handle did not write, so nothing is read through
|
|
268
|
+
* the dispatcher first: a session that may write a file and not read it writes
|
|
269
|
+
* through FUSE, as through a write-only descriptor. The runs that landed
|
|
270
|
+
* leave `runs` in one step, so after a failure `runs` holds only what did
|
|
271
|
+
* not land and a retry never replays a run over bytes another writer has
|
|
272
|
+
* since put there. A run that fails still invalidates what the core holds,
|
|
273
|
+
* since the runs before it have landed.
|
|
274
|
+
*/
|
|
275
|
+
async applyWrites(path, runs) {
|
|
276
|
+
const target = this.resolve(path);
|
|
277
|
+
let landed = 0;
|
|
278
|
+
try {
|
|
279
|
+
for (const [offset, data] of runs) {
|
|
280
|
+
await this.op(() => this.files.pwrite(target, data, offset));
|
|
281
|
+
landed += 1;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
finally {
|
|
285
|
+
runs.splice(0, landed);
|
|
286
|
+
await this.changed(path);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
// ── POSIX surface (throws; adapters classify) ────────────────────
|
|
290
|
+
/**
|
|
291
|
+
* POSIX attributes for a path. One stat through the dispatcher answers: a
|
|
292
|
+
* link the session cannot see is absent, as it is to the shell, and a
|
|
293
|
+
* visible one reports its own row with its target read through the
|
|
294
|
+
* dispatcher too. `follow` reports a trailing link's target rather than
|
|
295
|
+
* the link (stat rather than lstat).
|
|
296
|
+
*/
|
|
297
|
+
async getattr(path, follow = false, ctx = null) {
|
|
298
|
+
let size = ctx?.data?.byteLength ?? null;
|
|
299
|
+
if (path === '/')
|
|
300
|
+
return this.rootAttrs();
|
|
301
|
+
// macOS Finder/Spotlight probes .DS_Store, ._*, .Spotlight-V100, etc.
|
|
302
|
+
// Reject early to avoid hitting the ops layer.
|
|
303
|
+
const name = path.slice(path.lastIndexOf('/') + 1);
|
|
304
|
+
if (isMacosMetadata(name)) {
|
|
305
|
+
throw enoent(path);
|
|
306
|
+
}
|
|
307
|
+
const virtual = this.resolve(path);
|
|
308
|
+
let s;
|
|
309
|
+
if (ctx?.detached !== undefined) {
|
|
310
|
+
// Its name is gone: it stats by the row its file had then.
|
|
311
|
+
s = ctx.detached;
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
try {
|
|
315
|
+
s = await this.op(() => this.files.stat(virtual, undefined, { nofollow: !follow }));
|
|
316
|
+
}
|
|
317
|
+
catch (err) {
|
|
318
|
+
// An open descriptor keeps the bytes it had after an unlink.
|
|
319
|
+
if (size === null || classify(err) !== 'ENOENT')
|
|
320
|
+
throw err;
|
|
321
|
+
s = new FileStat({ name, type: FileType.FILE });
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
if (isLink(s)) {
|
|
325
|
+
const target = await this.op(() => this.files.readlink(virtual));
|
|
326
|
+
return this.attrs(s, new TextEncoder().encode(this.shownTarget(path, target)).byteLength);
|
|
327
|
+
}
|
|
328
|
+
if (isDir(s))
|
|
329
|
+
return this.attrs(s);
|
|
330
|
+
// A size-unknown file stats as 0 rather than be fetched on every ls -l;
|
|
331
|
+
// direct_io keeps its reads whole regardless.
|
|
332
|
+
if (size === null && s.size === null)
|
|
333
|
+
size = this.heldSize(path);
|
|
334
|
+
if (ctx?.writeBuf !== undefined && ctx.writeBuf.length > 0) {
|
|
335
|
+
let end = size ?? contentSize(s);
|
|
336
|
+
for (const [offset, data] of ctx.writeBuf)
|
|
337
|
+
end = Math.max(end, offset + data.byteLength);
|
|
338
|
+
size = end;
|
|
339
|
+
}
|
|
340
|
+
return this.attrs(s, size);
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Attributes through an open handle: the path's row, with the size the
|
|
344
|
+
* handle holds, what it wrote and has not flushed included.
|
|
345
|
+
*/
|
|
346
|
+
async fgetattr(path, fd) {
|
|
347
|
+
const ctx = this.handles.get(fd) ?? null;
|
|
348
|
+
if (ctx !== null)
|
|
349
|
+
await this.settled(ctx);
|
|
350
|
+
return this.getattr(ctx?.path ?? path, ctx !== null, ctx);
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* The mount root's attrs: its own row through the dispatcher, so a chmod
|
|
354
|
+
* made on it shows, or a plain directory when nothing answers for it (a
|
|
355
|
+
* workspace with no mount at `/`). Mirrors Python's `root_attrs`.
|
|
356
|
+
*/
|
|
357
|
+
async rootAttrs() {
|
|
358
|
+
let s;
|
|
359
|
+
try {
|
|
360
|
+
s = await this.op(() => this.files.stat(this.resolve('/')));
|
|
361
|
+
}
|
|
362
|
+
catch (err) {
|
|
363
|
+
if (classify(err) !== 'ENOENT')
|
|
364
|
+
throw err;
|
|
365
|
+
console.debug(`fuse: the mount root has no row of its own: ${String(err)}`);
|
|
366
|
+
return this.dirStat();
|
|
367
|
+
}
|
|
368
|
+
return this.attrs(s);
|
|
369
|
+
}
|
|
370
|
+
async readdir(path) {
|
|
371
|
+
const names = new Set();
|
|
372
|
+
const entries = await this.op(() => this.files.readdir(this.resolve(path)));
|
|
373
|
+
for (const e of entries) {
|
|
374
|
+
const part = rstripSlash(e).split('/').pop() ?? '';
|
|
375
|
+
if (part !== '' && !isMacosMetadata(part))
|
|
376
|
+
names.add(part);
|
|
377
|
+
}
|
|
378
|
+
return ['.', '..', ...[...names].sort(compareCodePoints)];
|
|
379
|
+
}
|
|
380
|
+
async read(path, fd, pos, len) {
|
|
381
|
+
// A rendered read: a filetype registered on the mount shows as text.
|
|
382
|
+
const ctx = this.handles.get(fd);
|
|
383
|
+
if (ctx !== undefined)
|
|
384
|
+
await this.settled(ctx);
|
|
385
|
+
if (ctx === undefined) {
|
|
386
|
+
// Whole, as a handle's first read is: the read that fills the cache
|
|
387
|
+
// and records the version a conditional write sends.
|
|
388
|
+
const data = await this.op(() => this.files.read(this.resolve(path)));
|
|
389
|
+
return data.subarray(pos, pos + len);
|
|
390
|
+
}
|
|
391
|
+
let stored;
|
|
392
|
+
if (ctx.live === true) {
|
|
393
|
+
stored = await this.op(() => this.files.read(this.resolve(ctx.path), { offset: pos, size: len }));
|
|
394
|
+
}
|
|
395
|
+
else if (ctx.chunked !== undefined && ctx.data === undefined) {
|
|
396
|
+
stored = await ctx.chunked.pread(pos, len);
|
|
397
|
+
}
|
|
398
|
+
else {
|
|
399
|
+
let held = ctx.data;
|
|
400
|
+
if (held === undefined) {
|
|
401
|
+
// A change landing while this read is out keeps it from holding
|
|
402
|
+
// what it fetched.
|
|
403
|
+
const generation = ctx.generation ?? 0;
|
|
404
|
+
held = await this.op(() => this.files.read(this.resolve(ctx.path)));
|
|
405
|
+
if ((ctx.generation ?? 0) === generation)
|
|
406
|
+
ctx.data = held;
|
|
407
|
+
}
|
|
408
|
+
stored = held.subarray(pos, pos + len);
|
|
409
|
+
}
|
|
410
|
+
if (ctx.writeBuf === undefined || ctx.writeBuf.length === 0)
|
|
411
|
+
return stored;
|
|
412
|
+
return overlaid(stored, pos, len, ctx.writeBuf);
|
|
413
|
+
}
|
|
414
|
+
/** Buffer a write on its handle, or apply it directly when there is none. */
|
|
415
|
+
async write(path, fd, data, pos) {
|
|
416
|
+
const ctx = this.handles.get(fd);
|
|
417
|
+
const key = ctx === undefined ? this.identity(path) : ctx.key;
|
|
418
|
+
this.supersede(key, pos, data.byteLength, ctx);
|
|
419
|
+
if (ctx !== undefined) {
|
|
420
|
+
ctx.writeBuf ??= [];
|
|
421
|
+
ctx.writeBuf.push([pos, data]);
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
424
|
+
await this.mutate(key, () => this.applyWrites(path, [[pos, data]]));
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Cut a new write's range out of what the file's other handles hold:
|
|
428
|
+
* their bytes there are older, and the new write replaces them. No two
|
|
429
|
+
* handles on a file then hold the same bytes, so whichever flush, release
|
|
430
|
+
* or sync lands first, the file ends as its writes were made. Nothing
|
|
431
|
+
* lands here, so a write never waits on one.
|
|
432
|
+
*/
|
|
433
|
+
supersede(key, pos, size, ctx) {
|
|
434
|
+
// Its name is gone: the handles open there are on another file.
|
|
435
|
+
if (ctx?.detached !== undefined)
|
|
436
|
+
return;
|
|
437
|
+
const end = pos + size;
|
|
438
|
+
for (const other of this.openOn(key)) {
|
|
439
|
+
if (other === ctx || other.writeBuf === undefined)
|
|
440
|
+
continue;
|
|
441
|
+
const kept = [];
|
|
442
|
+
for (const [at, run] of other.writeBuf) {
|
|
443
|
+
if (at >= end || at + run.byteLength <= pos) {
|
|
444
|
+
kept.push([at, run]);
|
|
445
|
+
continue;
|
|
446
|
+
}
|
|
447
|
+
if (at < pos)
|
|
448
|
+
kept.push([at, run.subarray(0, pos - at)]);
|
|
449
|
+
if (at + run.byteLength > end)
|
|
450
|
+
kept.push([end, run.subarray(end - at)]);
|
|
451
|
+
}
|
|
452
|
+
other.writeBuf = kept;
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Create an empty file and return a fresh handle. `mode` is what the
|
|
457
|
+
* creator asked for, umask applied; null takes the mount's default.
|
|
458
|
+
*/
|
|
459
|
+
async create(path, mode = null) {
|
|
460
|
+
const key = this.identity(path);
|
|
461
|
+
await this.mutate(key, async () => {
|
|
462
|
+
await this.op(() => this.files.create(this.resolve(path)));
|
|
463
|
+
await this.keepMode(path, mode);
|
|
464
|
+
await this.changed(path);
|
|
465
|
+
});
|
|
466
|
+
return this.handles.add({ path, key });
|
|
467
|
+
}
|
|
468
|
+
/** Create a directory, keeping the mode it was asked for. */
|
|
469
|
+
async mkdir(path, mode = null) {
|
|
470
|
+
await this.op(() => this.files.mkdir(this.resolve(path)));
|
|
471
|
+
await this.keepMode(path, mode);
|
|
472
|
+
}
|
|
473
|
+
/**
|
|
474
|
+
* Store the mode a create asked for, when it is not the one the backend
|
|
475
|
+
* made the entry with (a disk mount applies the daemon's umask), so
|
|
476
|
+
* `open(O_CREAT, 0600)` and `mkdir -m` read back as asked without a
|
|
477
|
+
* write per ordinary create. Mirrors Python's `_keep_mode`.
|
|
478
|
+
*/
|
|
479
|
+
async keepMode(path, mode) {
|
|
480
|
+
if (mode === null)
|
|
481
|
+
return;
|
|
482
|
+
try {
|
|
483
|
+
const made = await this.op(() => this.files.stat(this.resolve(path)));
|
|
484
|
+
if ((posixMode(made) & 0o7777) !== (mode & 0o7777))
|
|
485
|
+
await this.setattr(path, mode);
|
|
486
|
+
}
|
|
487
|
+
catch (err) {
|
|
488
|
+
// The entry exists: a policy that refuses the stat or the chmod leaves
|
|
489
|
+
// the mode it was made with rather than failing a create that landed.
|
|
490
|
+
console.debug(`mount: keeping the mode of ${path} failed: ${String(err)}`);
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
/** The target of a namespace link, read through the dispatcher; EINVAL when not a link. */
|
|
494
|
+
async readlink(path) {
|
|
495
|
+
const target = await this.op(() => this.files.readlink(this.resolve(path)));
|
|
496
|
+
return this.shownTarget(path, target);
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* Create namespace link `dest -> src` (ln -s src dest; libfuse passes
|
|
500
|
+
* the pointee first). Relative sources are stored verbatim (resolved
|
|
501
|
+
* at follow time, exactly like the shell `ln -s`); absolute sources
|
|
502
|
+
* are mapped into virtual space so a scoped mount stores the path it
|
|
503
|
+
* will later follow.
|
|
504
|
+
*/
|
|
505
|
+
async symlink(src, dest) {
|
|
506
|
+
// The write routes through the dispatcher like every other FUSE op, so
|
|
507
|
+
// session grants and admission policies refuse a scoped kernel
|
|
508
|
+
// mount exactly like a scoped shell.
|
|
509
|
+
const stored = src.startsWith('/') ? this.resolve(src) : src;
|
|
510
|
+
await this.op(() => this.files.symlink(this.resolve(dest), stored));
|
|
511
|
+
}
|
|
512
|
+
/**
|
|
513
|
+
* Remove the entry at `path`, a link entry like any other.
|
|
514
|
+
*
|
|
515
|
+
* A link routes through the dispatcher rather than straight to the node
|
|
516
|
+
* table: `unlink` is a LINK_ENTRY_OPS member, so the dispatcher answers a
|
|
517
|
+
* link path itself, gated by session grants and admission policies
|
|
518
|
+
* and recorded on the ledger. Writing the table here instead let a
|
|
519
|
+
* session-scoped kernel mount delete a link on a mount its profile
|
|
520
|
+
* hides. Mirrors Python's MountCore.unlink.
|
|
521
|
+
*/
|
|
522
|
+
async unlink(path) {
|
|
523
|
+
const key = this.identity(path, false);
|
|
524
|
+
await this.removing([path], () => this.mutate(key, async () => {
|
|
525
|
+
const named = this.named(path);
|
|
526
|
+
const row = await this.hold(path, named);
|
|
527
|
+
await this.op(() => this.files.unlink(this.resolve(path)));
|
|
528
|
+
for (const ctx of named)
|
|
529
|
+
ctx.detached = row;
|
|
530
|
+
await this.changed(path, false);
|
|
531
|
+
}));
|
|
532
|
+
}
|
|
533
|
+
/**
|
|
534
|
+
* The one function every mutation of a file's bytes goes through. The
|
|
535
|
+
* open handles on a file are matched by its identity (the mount path with
|
|
536
|
+
* namespace links followed), and this is the only place their bytes are
|
|
537
|
+
* refreshed, so a new mutating op cannot forget one of them and a link
|
|
538
|
+
* alias cannot slip past. A hydration still in flight is outdated so it
|
|
539
|
+
* re-reads instead of handing over what it fetched, and hydrated handles
|
|
540
|
+
* on the file are refreshed in one read through the dispatcher, so fstat
|
|
541
|
+
* and read through any of them, including the handle that wrote, see the
|
|
542
|
+
* new bytes. A removal or rename passes `rehydrate = false`: POSIX keeps
|
|
543
|
+
* an open descriptor on the bytes it had, and the name, not what it
|
|
544
|
+
* points at, is what changed. A refresh that fails is logged
|
|
545
|
+
* and leaves the handles unhydrated rather than failing the committed
|
|
546
|
+
* mutation. Mirrors Python's `_changed`.
|
|
547
|
+
*/
|
|
548
|
+
async changed(path, rehydrate = true) {
|
|
549
|
+
const key = this.identity(path, rehydrate);
|
|
550
|
+
if (this.hydrations.has(key)) {
|
|
551
|
+
this.hydrationGen.set(key, (this.hydrationGen.get(key) ?? 0) + 1);
|
|
552
|
+
}
|
|
553
|
+
if (!rehydrate)
|
|
554
|
+
return;
|
|
555
|
+
const handles = this.openOn(key);
|
|
556
|
+
for (const ctx of handles) {
|
|
557
|
+
ctx.generation = (ctx.generation ?? 0) + 1;
|
|
558
|
+
ctx.chunked?.drop();
|
|
559
|
+
}
|
|
560
|
+
const hydrated = handles.filter((ctx) => ctx.data !== undefined);
|
|
561
|
+
if (hydrated.length === 0)
|
|
562
|
+
return;
|
|
563
|
+
let data;
|
|
564
|
+
try {
|
|
565
|
+
data = await this.op(() => this.files.read(this.resolve(path)));
|
|
566
|
+
}
|
|
567
|
+
catch (err) {
|
|
568
|
+
// The mutation landed, so a refresh that fails must not fail it; the
|
|
569
|
+
// next read through these handles fetches and reports.
|
|
570
|
+
console.warn(`fuse: refresh of ${path} after a change failed: ${String(err)}`);
|
|
571
|
+
for (const ctx of hydrated)
|
|
572
|
+
delete ctx.data;
|
|
573
|
+
return;
|
|
574
|
+
}
|
|
575
|
+
for (const ctx of hydrated)
|
|
576
|
+
ctx.data = data;
|
|
577
|
+
}
|
|
578
|
+
async rename(src, dst) {
|
|
579
|
+
// The facade is where a cross-mount pair is refused with EXDEV,
|
|
580
|
+
// which is what makes `mv` between two backends fall back to
|
|
581
|
+
// copy+unlink instead of addressing the destination against the
|
|
582
|
+
// source's backend.
|
|
583
|
+
const source = this.resolve(src);
|
|
584
|
+
const target = this.resolve(dst);
|
|
585
|
+
const moved = this.identity(src, false);
|
|
586
|
+
await this.removing([src, dst], () => this.queueAll(this.pending, [moved, this.identity(dst, false)], async () => {
|
|
587
|
+
const replaced = this.named(dst).filter((ctx) => ctx.key !== moved);
|
|
588
|
+
const row = await this.hold(dst, replaced);
|
|
589
|
+
await this.op(() => this.files.rename(source, target));
|
|
590
|
+
for (const ctx of replaced)
|
|
591
|
+
ctx.detached = row;
|
|
592
|
+
for (const ctx of this.handles.values()) {
|
|
593
|
+
if (ctx.detached !== undefined)
|
|
594
|
+
continue;
|
|
595
|
+
if (ctx.key === source || ctx.key.startsWith(`${source}/`)) {
|
|
596
|
+
ctx.key = target + ctx.key.slice(source.length);
|
|
597
|
+
ctx.path = ctx.key.slice(this.root.length);
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
await this.changed(src, false);
|
|
601
|
+
await this.changed(dst, false);
|
|
602
|
+
}));
|
|
603
|
+
}
|
|
604
|
+
// No emptiness pre-check: every backend's rmdir refuses a non-empty
|
|
605
|
+
// directory itself.
|
|
606
|
+
async rmdir(path) {
|
|
607
|
+
await this.op(() => this.files.rmdir(this.resolve(path)));
|
|
608
|
+
}
|
|
609
|
+
/**
|
|
610
|
+
* Where a mount path really points: the mount-resolved path with every
|
|
611
|
+
* namespace link followed, so two handles opened through a link and
|
|
612
|
+
* its target are recognised as the same file.
|
|
613
|
+
*/
|
|
614
|
+
identity(path, follow = true) {
|
|
615
|
+
const virtual = this.resolve(path);
|
|
616
|
+
const reader = readerOf(this.files);
|
|
617
|
+
// An op on the entry itself (unlink, rename, lsetattr) names the link,
|
|
618
|
+
// which may loop: only the links above it are followed.
|
|
619
|
+
const resolved = () => follow ? reader.resolve(virtual) : reader.resolveParent(virtual);
|
|
620
|
+
// Judged as the bound session judges every op (`op`): outside it the
|
|
621
|
+
// facade's session is the default one, whose profile may hide a link
|
|
622
|
+
// this session's handles were opened through.
|
|
623
|
+
if (this.session === null)
|
|
624
|
+
return resolved();
|
|
625
|
+
return callsAs({ ...currentCaller(), session: this.session }, resolved)();
|
|
626
|
+
}
|
|
627
|
+
/**
|
|
628
|
+
* Persist a handle's buffered writes. The buffer is detached before the
|
|
629
|
+
* await so a write arriving meanwhile is not lost to the clear, and the
|
|
630
|
+
* runs that did not land are restored ahead of those later writes when
|
|
631
|
+
* persistence fails, so the acknowledged bytes stay for the handle's own
|
|
632
|
+
* flush to retry.
|
|
633
|
+
*/
|
|
634
|
+
async settle(ctx) {
|
|
635
|
+
// Queued with nothing buffered too: a flush still landing has taken the
|
|
636
|
+
// buffer, and this one waits for it and retries what it puts back,
|
|
637
|
+
// rather than reporting the file settled.
|
|
638
|
+
for (;;) {
|
|
639
|
+
const key = ctx.key;
|
|
640
|
+
const landed = await this.mutate(key, async () => {
|
|
641
|
+
// A rename that moved the handle while this waited put its file in
|
|
642
|
+
// another queue: it lands from that one instead.
|
|
643
|
+
if (ctx.key !== key)
|
|
644
|
+
return false;
|
|
645
|
+
await this.persistBuffered(ctx);
|
|
646
|
+
return true;
|
|
647
|
+
});
|
|
648
|
+
if (landed)
|
|
649
|
+
return;
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
/** The handles open on the entry at `path` itself. */
|
|
653
|
+
named(path) {
|
|
654
|
+
return this.openOn(this.identity(path, false));
|
|
655
|
+
}
|
|
656
|
+
/**
|
|
657
|
+
* The handles open on the file `key` names. A detached handle is on a file
|
|
658
|
+
* with no name left, whatever its key says.
|
|
659
|
+
*/
|
|
660
|
+
openOn(key) {
|
|
661
|
+
return [...this.handles.values()].filter((ctx) => ctx.key === key && ctx.detached === undefined);
|
|
662
|
+
}
|
|
663
|
+
/** Land the buffered writes of every handle open on `key`. */
|
|
664
|
+
async landBuffered(key) {
|
|
665
|
+
for (const ctx of this.openOn(key))
|
|
666
|
+
await this.persistBuffered(ctx);
|
|
667
|
+
}
|
|
668
|
+
async persistBuffered(ctx) {
|
|
669
|
+
// A detached handle keeps what it wrote, as writes to an unlinked file
|
|
670
|
+
// stay with it: there is no name to land them on.
|
|
671
|
+
if (ctx.writeBuf === undefined || ctx.writeBuf.length === 0 || ctx.detached !== undefined)
|
|
672
|
+
return;
|
|
673
|
+
const runs = writeRuns(ctx.writeBuf);
|
|
674
|
+
ctx.writeBuf = [];
|
|
675
|
+
try {
|
|
676
|
+
await this.applyWrites(ctx.path, runs);
|
|
677
|
+
}
|
|
678
|
+
catch (err) {
|
|
679
|
+
ctx.writeBuf = [...runs, ...ctx.writeBuf];
|
|
680
|
+
throw err;
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
async truncate(path, size) {
|
|
684
|
+
// A write the kernel already acknowledged on another handle precedes
|
|
685
|
+
// this truncation in POSIX order, so it is flushed first rather than
|
|
686
|
+
// left queued to land over the shortened file at that handle's
|
|
687
|
+
// release. Handles are matched by identity, not by the path they
|
|
688
|
+
// were opened through, so a link alias is settled too. Mirrors
|
|
689
|
+
// Python's MountCore.truncate.
|
|
690
|
+
const key = this.identity(path);
|
|
691
|
+
await this.mutate(key, async () => {
|
|
692
|
+
await this.landBuffered(key);
|
|
693
|
+
await this.op(() => this.files.truncate(this.resolve(path), size));
|
|
694
|
+
await this.changed(path);
|
|
695
|
+
});
|
|
696
|
+
}
|
|
697
|
+
statfs() {
|
|
698
|
+
return {
|
|
699
|
+
bsize: 4096,
|
|
700
|
+
frsize: 4096,
|
|
701
|
+
blocks: 1024 * 1024,
|
|
702
|
+
bfree: 1024 * 1024,
|
|
703
|
+
bavail: 1024 * 1024,
|
|
704
|
+
files: 1_000_000,
|
|
705
|
+
ffree: 1_000_000,
|
|
706
|
+
favail: 1_000_000,
|
|
707
|
+
namemax: 255,
|
|
708
|
+
};
|
|
709
|
+
}
|
|
710
|
+
/**
|
|
711
|
+
* Store metadata through the dispatcher. The backend keeps what it can and
|
|
712
|
+
* the namespace overlay the rest, so a chmod, chown or `touch -d` through
|
|
713
|
+
* the mount is what `stat` in a shell reads back, on a backend with no
|
|
714
|
+
* permission bits or settable times of its own too. A null field is left
|
|
715
|
+
* as it is. Mirrors Python's `MountCore.setattr`.
|
|
716
|
+
*/
|
|
717
|
+
async setattr(path, mode, uid = null, gid = null, atime = null, mtime = null, follow = false) {
|
|
718
|
+
// The kernel has already resolved any link the call follows, so a
|
|
719
|
+
// kernel mount names the entry to change, a link itself for `chown -h`;
|
|
720
|
+
// SFTP's setstat asks to follow one.
|
|
721
|
+
const fields = { nofollow: !follow };
|
|
722
|
+
if (mode !== null)
|
|
723
|
+
fields.mode = mode & 0o7777;
|
|
724
|
+
if (uid !== null)
|
|
725
|
+
fields.uid = uid;
|
|
726
|
+
if (gid !== null)
|
|
727
|
+
fields.gid = gid;
|
|
728
|
+
if (atime !== null)
|
|
729
|
+
fields.atime = atime.toISOString();
|
|
730
|
+
if (mtime !== null)
|
|
731
|
+
fields.mtime = mtime.toISOString();
|
|
732
|
+
const key = this.identity(path, follow);
|
|
733
|
+
const timed = atime !== null || mtime !== null;
|
|
734
|
+
const run = async () => {
|
|
735
|
+
// cp -p sets times on a file it still holds open: its buffered
|
|
736
|
+
// writes land first, or they would stamp over them.
|
|
737
|
+
if (timed)
|
|
738
|
+
await this.landBuffered(key);
|
|
739
|
+
await this.op(() => this.files.setattr(this.resolve(path), fields));
|
|
740
|
+
};
|
|
741
|
+
await (timed ? this.mutate(key, run) : run());
|
|
742
|
+
}
|
|
743
|
+
/**
|
|
744
|
+
* Store an extended attribute through the dispatcher, which keeps
|
|
745
|
+
* it on the path's namespace node: it outlives the mount, moves with a
|
|
746
|
+
* rename, and is the attribute every other surface (the shell's
|
|
747
|
+
* getfattr, a guest's os.getxattr) reads. Tools that set xattrs as a
|
|
748
|
+
* matter of course (rsync -aX, tar --xattrs, cp -p, Finder writing
|
|
749
|
+
* com.apple.*) succeed on a backend with no attribute slot of its own.
|
|
750
|
+
* Mirrors the python MountCore.
|
|
751
|
+
*/
|
|
752
|
+
async setxattr(path, name, value, opts = {}) {
|
|
753
|
+
await this.op(() => this.files.setxattr(this.resolve(path), name, Uint8Array.from(value), opts));
|
|
754
|
+
}
|
|
755
|
+
/** One attribute, the backend's own facts included; ENODATA when unset. */
|
|
756
|
+
async getxattr(path, name) {
|
|
757
|
+
return this.op(() => this.files.getxattr(this.resolve(path), name));
|
|
758
|
+
}
|
|
759
|
+
async listxattr(path) {
|
|
760
|
+
return this.op(() => this.files.listxattr(this.resolve(path)));
|
|
761
|
+
}
|
|
762
|
+
async removexattr(path, name) {
|
|
763
|
+
await this.op(() => this.files.removexattr(this.resolve(path), name));
|
|
764
|
+
}
|
|
765
|
+
async open(path, flags = 0) {
|
|
766
|
+
for (let removal = this.removalOf(path); removal !== undefined; removal = this.removalOf(path)) {
|
|
767
|
+
await removal;
|
|
768
|
+
}
|
|
769
|
+
const keys = new Set([this.identity(path, false), this.identity(path)]);
|
|
770
|
+
const opened = this.openPath(path, flags);
|
|
771
|
+
const out = opened.then(() => undefined, () => undefined);
|
|
772
|
+
for (const key of keys)
|
|
773
|
+
this.opening.set(key, (this.opening.get(key) ?? new Set()).add(out));
|
|
774
|
+
try {
|
|
775
|
+
return await opened;
|
|
776
|
+
}
|
|
777
|
+
finally {
|
|
778
|
+
for (const key of keys) {
|
|
779
|
+
const opening = this.opening.get(key);
|
|
780
|
+
opening?.delete(out);
|
|
781
|
+
if (opening?.size === 0)
|
|
782
|
+
this.opening.delete(key);
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
/** The open itself, which a removal of its name waits for. */
|
|
787
|
+
async openPath(path, flags) {
|
|
788
|
+
const s = await this.op(() => this.files.stat(this.resolve(path)));
|
|
789
|
+
const ctx = { path, key: this.identity(path), live: s.extra[LIVE_KEY] === true };
|
|
790
|
+
if (s.type === FileType.DIRECTORY)
|
|
791
|
+
return this.handles.add(ctx);
|
|
792
|
+
if ((flags & fsConstants.O_TRUNC) !== 0) {
|
|
793
|
+
// libfuse 3 sends no SETATTR ahead of an O_TRUNC open (atomic
|
|
794
|
+
// O_TRUNC), so the flag is the whole truncation.
|
|
795
|
+
await this.truncate(path, 0);
|
|
796
|
+
}
|
|
797
|
+
if (ctx.live === true)
|
|
798
|
+
return this.handles.add(ctx);
|
|
799
|
+
if (s.size === null) {
|
|
800
|
+
// Hydrate through the rendered read path, after an O_TRUNC too: an
|
|
801
|
+
// extension whose renderer gives an empty file a body is honored
|
|
802
|
+
// rather than shadowed by literal raw emptiness.
|
|
803
|
+
const data = await this.hydrate(path);
|
|
804
|
+
if (data !== undefined)
|
|
805
|
+
ctx.data = data;
|
|
806
|
+
}
|
|
807
|
+
else if (s.size > READ_CHUNK && (flags & fsConstants.O_TRUNC) === 0) {
|
|
808
|
+
// Read a chunk at a time, at the handle's path then (a rename moves
|
|
809
|
+
// it): a `head` must not move the file.
|
|
810
|
+
ctx.chunked = new ChunkedHandle(path, s.size, (offset, size) => this.op(() => this.files.read(this.resolve(ctx.path), { offset, size })));
|
|
811
|
+
}
|
|
812
|
+
return this.handles.add(ctx);
|
|
813
|
+
}
|
|
814
|
+
/**
|
|
815
|
+
* A removal of `path` still running. One is keyed by the name it takes, so
|
|
816
|
+
* an open through a link meets the link's removal and then its target's.
|
|
817
|
+
*/
|
|
818
|
+
removalOf(path) {
|
|
819
|
+
return this.removals.get(this.identity(path, false)) ?? this.removals.get(this.identity(path));
|
|
820
|
+
}
|
|
821
|
+
/**
|
|
822
|
+
* Keep what the handles open on `path` need once it goes, and return the
|
|
823
|
+
* row they stat by from then on. POSIX keeps an open descriptor on the
|
|
824
|
+
* file it had, so an unlink or a rename onto it must not leave a handle
|
|
825
|
+
* reading or stat'ing the file at that name next. A handle holding no
|
|
826
|
+
* bytes yet (never read, or chunked and holding one chunk) gets them all
|
|
827
|
+
* from one read every such handle shares; it runs under `removing` and
|
|
828
|
+
* the file's `pending` chain, so no handle opens on the file and no write
|
|
829
|
+
* lands on it meanwhile. The handles are matched by the
|
|
830
|
+
* entry itself, so removing a link holds nothing: it takes the link,
|
|
831
|
+
* never its target's bytes. A stat or a read that fails (a policy may
|
|
832
|
+
* allow the removal and refuse either) leaves a bare row or the handles
|
|
833
|
+
* as they are, each on its own, rather than refusing a mutation the
|
|
834
|
+
* caller is allowed. Mirrors Python's `MountCore._hold`.
|
|
835
|
+
*/
|
|
836
|
+
async hold(path, named) {
|
|
837
|
+
const bare = new FileStat({ name: path.slice(path.lastIndexOf('/') + 1), type: FileType.FILE });
|
|
838
|
+
if (named.length === 0)
|
|
839
|
+
return bare;
|
|
840
|
+
const virtual = this.resolve(path);
|
|
841
|
+
let row = bare;
|
|
842
|
+
try {
|
|
843
|
+
row = await this.op(() => this.files.stat(virtual));
|
|
844
|
+
}
|
|
845
|
+
catch (err) {
|
|
846
|
+
console.warn(`fuse: the row of ${path} before it goes failed: ${String(err)}`);
|
|
847
|
+
}
|
|
848
|
+
const lacking = named.filter((ctx) => ctx.data === undefined && ctx.live !== true);
|
|
849
|
+
if (lacking.length === 0)
|
|
850
|
+
return row;
|
|
851
|
+
let data;
|
|
852
|
+
try {
|
|
853
|
+
data = await this.op(() => this.files.read(virtual));
|
|
854
|
+
}
|
|
855
|
+
catch (err) {
|
|
856
|
+
console.warn(`fuse: holding ${path} before it goes failed: ${String(err)}`);
|
|
857
|
+
return row;
|
|
858
|
+
}
|
|
859
|
+
for (const ctx of lacking) {
|
|
860
|
+
ctx.data = data;
|
|
861
|
+
delete ctx.chunked;
|
|
862
|
+
}
|
|
863
|
+
return row;
|
|
864
|
+
}
|
|
865
|
+
/**
|
|
866
|
+
* Wait for a flush or truncation of the handle's file still landing, into
|
|
867
|
+
* the queue a rename moved the handle to. Mirrors Python's `_settled`.
|
|
868
|
+
*/
|
|
869
|
+
async settled(ctx) {
|
|
870
|
+
let key = null;
|
|
871
|
+
while (key !== ctx.key) {
|
|
872
|
+
key = ctx.key;
|
|
873
|
+
await this.pending.get(key);
|
|
874
|
+
}
|
|
875
|
+
}
|
|
876
|
+
/**
|
|
877
|
+
* Land a handle's buffered writes and let it go. The handle goes even
|
|
878
|
+
* when the landing fails, as close(2) releases its descriptor: no
|
|
879
|
+
* adapter retries a release, so a kept handle would never close. The
|
|
880
|
+
* failure still reaches the caller.
|
|
881
|
+
*/
|
|
882
|
+
async release(fd) {
|
|
883
|
+
const ctx = this.handles.get(fd);
|
|
884
|
+
try {
|
|
885
|
+
// The FSKit shim sends RELEASE with no FLUSH before it.
|
|
886
|
+
if (ctx !== undefined)
|
|
887
|
+
await this.flush(ctx.path, fd);
|
|
888
|
+
}
|
|
889
|
+
finally {
|
|
890
|
+
this.handles.pop(fd);
|
|
891
|
+
}
|
|
892
|
+
}
|
|
893
|
+
async flush(_path, fd) {
|
|
894
|
+
const ctx = this.handles.get(fd);
|
|
895
|
+
if (ctx !== undefined)
|
|
896
|
+
await this.settle(ctx);
|
|
897
|
+
}
|
|
898
|
+
/**
|
|
899
|
+
* Land what every open handle holds, as sync(2) does, for a client whose
|
|
900
|
+
* close(2) returns before it releases the handle (sshfs). A landing that
|
|
901
|
+
* fails is logged, and its bytes stay on the handle for its own flush to
|
|
902
|
+
* retry and report.
|
|
903
|
+
*/
|
|
904
|
+
async sync() {
|
|
905
|
+
for (const ctx of [...this.handles.values()]) {
|
|
906
|
+
try {
|
|
907
|
+
await this.settle(ctx);
|
|
908
|
+
}
|
|
909
|
+
catch (err) {
|
|
910
|
+
console.warn(`fuse: landing ${ctx.path} failed: ${String(err)}`);
|
|
911
|
+
}
|
|
912
|
+
}
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
//# sourceMappingURL=core.js.map
|