toolcraft 0.0.749 → 0.0.751
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/composition.json +23 -3
- package/dist/composition.json +23 -3
- package/dist/human-in-loop/approvals-commands.d.ts +1 -1
- package/dist/index.d.ts +1 -262
- package/dist/index.js +1 -573
- package/dist/runtime-platform.d.ts +2 -0
- package/dist/runtime-platform.js +2 -0
- package/dist/runtime-platform.workerd.d.ts +3 -0
- package/dist/runtime-platform.workerd.js +10 -0
- package/dist/runtime.d.ts +262 -0
- package/dist/runtime.js +576 -0
- package/node_modules/@noble/hashes/LICENSE +21 -0
- package/node_modules/@noble/hashes/README.md +478 -0
- package/node_modules/@noble/hashes/_blake.d.ts +20 -0
- package/node_modules/@noble/hashes/_blake.js +59 -0
- package/node_modules/@noble/hashes/_md.d.ts +95 -0
- package/node_modules/@noble/hashes/_md.js +209 -0
- package/node_modules/@noble/hashes/_u64.d.ts +36 -0
- package/node_modules/@noble/hashes/_u64.js +77 -0
- package/node_modules/@noble/hashes/argon2.d.ts +148 -0
- package/node_modules/@noble/hashes/argon2.js +577 -0
- package/node_modules/@noble/hashes/blake1.d.ts +162 -0
- package/node_modules/@noble/hashes/blake1.js +630 -0
- package/node_modules/@noble/hashes/blake2.d.ts +203 -0
- package/node_modules/@noble/hashes/blake2.js +573 -0
- package/node_modules/@noble/hashes/blake3.d.ts +68 -0
- package/node_modules/@noble/hashes/blake3.js +310 -0
- package/node_modules/@noble/hashes/eskdf.d.ts +91 -0
- package/node_modules/@noble/hashes/eskdf.js +225 -0
- package/node_modules/@noble/hashes/hkdf.d.ts +70 -0
- package/node_modules/@noble/hashes/hkdf.js +152 -0
- package/node_modules/@noble/hashes/hmac.d.ts +50 -0
- package/node_modules/@noble/hashes/hmac.js +93 -0
- package/node_modules/@noble/hashes/index.d.ts +1 -0
- package/node_modules/@noble/hashes/index.js +34 -0
- package/node_modules/@noble/hashes/legacy.d.ts +107 -0
- package/node_modules/@noble/hashes/legacy.js +348 -0
- package/node_modules/@noble/hashes/package.json +91 -0
- package/node_modules/@noble/hashes/pbkdf2.d.ts +66 -0
- package/node_modules/@noble/hashes/pbkdf2.js +176 -0
- package/node_modules/@noble/hashes/scrypt.d.ts +98 -0
- package/node_modules/@noble/hashes/scrypt.js +304 -0
- package/node_modules/@noble/hashes/sha2.d.ts +176 -0
- package/node_modules/@noble/hashes/sha2.js +446 -0
- package/node_modules/@noble/hashes/sha3-addons.d.ts +533 -0
- package/node_modules/@noble/hashes/sha3-addons.js +973 -0
- package/node_modules/@noble/hashes/sha3.d.ts +208 -0
- package/node_modules/@noble/hashes/sha3.js +475 -0
- package/node_modules/@noble/hashes/src/_blake.ts +67 -0
- package/node_modules/@noble/hashes/src/_md.ts +227 -0
- package/node_modules/@noble/hashes/src/_u64.ts +111 -0
- package/node_modules/@noble/hashes/src/argon2.ts +693 -0
- package/node_modules/@noble/hashes/src/blake1.ts +677 -0
- package/node_modules/@noble/hashes/src/blake2.ts +648 -0
- package/node_modules/@noble/hashes/src/blake3.ts +344 -0
- package/node_modules/@noble/hashes/src/eskdf.ts +265 -0
- package/node_modules/@noble/hashes/src/hkdf.ts +161 -0
- package/node_modules/@noble/hashes/src/hmac.ts +130 -0
- package/node_modules/@noble/hashes/src/index.ts +33 -0
- package/node_modules/@noble/hashes/src/legacy.ts +361 -0
- package/node_modules/@noble/hashes/src/pbkdf2.ts +219 -0
- package/node_modules/@noble/hashes/src/scrypt.ts +375 -0
- package/node_modules/@noble/hashes/src/sha2.ts +486 -0
- package/node_modules/@noble/hashes/src/sha3-addons.ts +1157 -0
- package/node_modules/@noble/hashes/src/sha3.ts +525 -0
- package/node_modules/@noble/hashes/src/utils.ts +978 -0
- package/node_modules/@noble/hashes/src/webcrypto.ts +283 -0
- package/node_modules/@noble/hashes/utils.d.ts +560 -0
- package/node_modules/@noble/hashes/utils.js +687 -0
- package/node_modules/@noble/hashes/webcrypto.d.ts +121 -0
- package/node_modules/@noble/hashes/webcrypto.js +228 -0
- package/node_modules/@poe-code/agent-mcp-config/dist/apply.js +23 -9
- package/node_modules/@poe-code/config-mutations/README.md +2 -0
- package/node_modules/@poe-code/config-mutations/dist/execution/apply-mutation.js +4 -5
- package/node_modules/@poe-code/config-mutations/dist/execution/path-utils.d.ts +3 -4
- package/node_modules/@poe-code/config-mutations/dist/execution/path-utils.js +3 -3
- package/node_modules/@poe-code/config-mutations/dist/template/render.js +1 -1
- package/node_modules/@poe-code/config-mutations/dist/testing/mock-fs.d.ts +2 -2
- package/node_modules/@poe-code/config-mutations/dist/testing/mock-fs.js +3 -6
- package/node_modules/@poe-code/config-mutations/dist/types.d.ts +4 -2
- package/node_modules/@poe-code/process-runner/README.md +2 -1
- package/node_modules/@poe-code/process-runner/dist/transfer-filesystem.d.ts +1 -0
- package/node_modules/@poe-code/process-runner/dist/transfer-filesystem.js +1 -0
- package/node_modules/@poe-code/process-runner/dist/transfer-filesystem.workerd.d.ts +2 -0
- package/node_modules/@poe-code/process-runner/dist/transfer-filesystem.workerd.js +1 -0
- package/node_modules/@poe-code/process-runner/dist/types.d.ts +1 -1
- package/node_modules/@poe-code/process-runner/dist/workspace-transfer.d.ts +6 -5
- package/node_modules/@poe-code/process-runner/dist/workspace-transfer.js +67 -29
- package/node_modules/@poe-code/process-runner/package.json +13 -0
- package/node_modules/@poe-code/safe-fs/LICENSE +21 -0
- package/node_modules/@poe-code/safe-fs/PROVENANCE.json +428 -0
- package/node_modules/@poe-code/safe-fs/README.md +411 -0
- package/node_modules/@poe-code/safe-fs/dist/bridge/confinement.d.ts +3 -0
- package/node_modules/@poe-code/safe-fs/dist/bridge/confinement.js +171 -0
- package/node_modules/@poe-code/safe-fs/dist/bridge/filesystem.d.ts +93 -0
- package/node_modules/@poe-code/safe-fs/dist/bridge/filesystem.js +453 -0
- package/node_modules/@poe-code/safe-fs/dist/bridge/index.d.ts +7 -0
- package/node_modules/@poe-code/safe-fs/dist/bridge/index.js +19 -0
- package/node_modules/@poe-code/safe-fs/dist/bridge/stats.d.ts +4 -0
- package/node_modules/@poe-code/safe-fs/dist/bridge/stats.js +37 -0
- package/node_modules/@poe-code/safe-fs/dist/bridge/types.d.ts +81 -0
- package/node_modules/@poe-code/safe-fs/dist/bridge/types.js +1 -0
- package/node_modules/@poe-code/safe-fs/dist/bridge/values.d.ts +6 -0
- package/node_modules/@poe-code/safe-fs/dist/bridge/values.js +65 -0
- package/node_modules/@poe-code/safe-fs/dist/config/memory.d.ts +3 -0
- package/node_modules/@poe-code/safe-fs/dist/config/memory.js +7 -0
- package/node_modules/@poe-code/safe-fs/dist/config/real.d.ts +5 -0
- package/node_modules/@poe-code/safe-fs/dist/config/real.js +16 -0
- package/node_modules/@poe-code/safe-fs/dist/config/registry.d.ts +2 -0
- package/node_modules/@poe-code/safe-fs/dist/config/registry.js +15 -0
- package/node_modules/@poe-code/safe-fs/dist/config.d.ts +15 -0
- package/node_modules/@poe-code/safe-fs/dist/config.js +46 -0
- package/node_modules/@poe-code/safe-fs/dist/config.node.d.ts +2 -0
- package/node_modules/@poe-code/safe-fs/dist/config.node.js +11 -0
- package/node_modules/@poe-code/safe-fs/dist/config.portable.d.ts +3 -0
- package/node_modules/@poe-code/safe-fs/dist/config.portable.js +9 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/abort.d.ts +5 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/abort.js +34 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/cleanup.d.ts +1 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/cleanup.js +9 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/descriptor.d.ts +38 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/descriptor.js +1 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/errors.d.ts +53 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/errors.js +99 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/filesystem.d.ts +379 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/filesystem.js +1 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/index.d.ts +6 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/index.js +6 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/io.d.ts +12 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/io.js +321 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/object.d.ts +134 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/object.js +97 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/path.d.ts +3 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/path.js +2 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/portable-path.d.ts +21 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/portable-path.js +78 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/virtual-path.d.ts +15 -0
- package/node_modules/@poe-code/safe-fs/dist/contracts/virtual-path.js +162 -0
- package/node_modules/@poe-code/safe-fs/dist/core.d.ts +19 -0
- package/node_modules/@poe-code/safe-fs/dist/core.js +17 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/capabilities.d.ts +10 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/capabilities.js +216 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/conditional-chmod.d.ts +7 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/conditional-chmod.js +19 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/descriptor.d.ts +21 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/descriptor.js +279 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/devices/index.d.ts +59 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/devices/index.js +875 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/devices/path.d.ts +7 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/devices/path.js +250 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/devices/stream.d.ts +6 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/devices/stream.js +136 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/directory-admission.d.ts +3 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/directory-admission.js +14 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/memory/atomic-view.d.ts +11 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/memory/atomic-view.js +13 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/memory/index.d.ts +186 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/memory/index.js +3771 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/memory/ledger.d.ts +26 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/memory/ledger.js +96 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/memory/limits.d.ts +13 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/memory/limits.js +26 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/memory/missing-target.d.ts +15 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/memory/missing-target.js +144 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/mount/comparison.d.ts +19 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/mount/comparison.js +118 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/mount/identity.d.ts +6 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/mount/identity.js +29 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/mount/index.d.ts +74 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/mount/index.js +1291 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/object-authority.d.ts +27 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/object-authority.js +287 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/object-publication/index.d.ts +45 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/object-publication/index.js +531 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/overlay/index.d.ts +87 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/overlay/index.js +1185 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/overlay/memory-publication.d.ts +42 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/overlay/memory-publication.js +558 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/path-namespace.d.ts +4 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/path-namespace.js +63 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/quota/index.d.ts +12 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/quota/index.js +520 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/readonly/index.d.ts +37 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/readonly/index.js +208 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/real/allocation.d.ts +1 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/real/allocation.js +8 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/real/index.d.ts +105 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/real/index.js +1259 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/authority.d.ts +7 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/authority.js +38 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/filesystem.d.ts +130 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/filesystem.js +1137 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/bytes.d.ts +1 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/bytes.js +9 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/index.d.ts +2 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/index.js +1 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request-fetch.d.ts +15 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request-fetch.js +74 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request-node.d.ts +4 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request-node.js +111 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request.d.ts +17 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/request.js +89 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/signature.d.ts +20 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/signature.js +76 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/transport.d.ts +3 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/transport.js +478 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/types.d.ts +30 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/types.js +1 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/xml.d.ts +14 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/http/xml.js +192 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/index.d.ts +8 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/index.js +4 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/key-order.d.ts +2 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/key-order.js +11 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/manifest-admission.d.ts +8 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/manifest-admission.js +167 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/mock.d.ts +48 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/mock.js +249 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/namespace.d.ts +13 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/namespace.js +400 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/registry.d.ts +10 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/registry.js +73 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/transport.d.ts +103 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/s3/transport.js +28 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/scoped.d.ts +19 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/scoped.js +663 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/staging-ancestry.d.ts +8 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/staging-ancestry.js +115 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/staging-cleanup.d.ts +5 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/staging-cleanup.js +63 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/webdav/index.d.ts +2 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/webdav/index.js +1 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/webdav/resource-id.d.ts +18 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/webdav/resource-id.js +109 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/webdav/webdav.d.ts +141 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/webdav/webdav.js +1377 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/webdav/xml.d.ts +15 -0
- package/node_modules/@poe-code/safe-fs/dist/fs/webdav/xml.js +59 -0
- package/node_modules/@poe-code/safe-fs/dist/index.d.ts +25 -0
- package/node_modules/@poe-code/safe-fs/dist/index.js +21 -0
- package/node_modules/@poe-code/safe-fs/dist/native/fs-seek/linux-x64-glibc.node +0 -0
- package/node_modules/@poe-code/safe-fs/dist/native/fs-seek/loader.d.ts +5 -0
- package/node_modules/@poe-code/safe-fs/dist/native/fs-seek/loader.mjs +120 -0
- package/node_modules/@poe-code/safe-fs/dist/native/fs-seek/manifest.json +46 -0
- package/node_modules/@poe-code/safe-fs/dist/node/filesystem.d.ts +19 -0
- package/node_modules/@poe-code/safe-fs/dist/node/filesystem.js +30 -0
- package/node_modules/@poe-code/safe-fs/dist/node/host.d.ts +3 -0
- package/node_modules/@poe-code/safe-fs/dist/node/host.js +78 -0
- package/node_modules/@poe-code/safe-fs/dist/node/index.d.ts +3 -0
- package/node_modules/@poe-code/safe-fs/dist/node/index.js +2 -0
- package/node_modules/@poe-code/safe-fs/dist/node/native-seek-unavailable.d.ts +1 -0
- package/node_modules/@poe-code/safe-fs/dist/node/native-seek-unavailable.js +5 -0
- package/node_modules/@poe-code/safe-fs/dist/node/native-seek.d.ts +3 -0
- package/node_modules/@poe-code/safe-fs/dist/node/native-seek.js +54 -0
- package/node_modules/@poe-code/safe-fs/dist/node/stats.d.ts +1 -0
- package/node_modules/@poe-code/safe-fs/dist/node/stats.js +1 -0
- package/node_modules/@poe-code/safe-fs/dist/node/values.d.ts +1 -0
- package/node_modules/@poe-code/safe-fs/dist/node/values.js +1 -0
- package/node_modules/@poe-code/safe-fs/dist/node-host.d.ts +1 -0
- package/node_modules/@poe-code/safe-fs/dist/node-host.js +1 -0
- package/node_modules/@poe-code/safe-fs/dist/node-unavailable.d.ts +1 -0
- package/node_modules/@poe-code/safe-fs/dist/node-unavailable.js +1 -0
- package/node_modules/@poe-code/safe-fs/dist/package.json +29 -0
- package/node_modules/@poe-code/safe-fs/dist/platform/browser-path.d.ts +1 -0
- package/node_modules/@poe-code/safe-fs/dist/platform/browser-path.js +1 -0
- package/node_modules/@poe-code/safe-fs/dist/platform/browser.d.ts +26 -0
- package/node_modules/@poe-code/safe-fs/dist/platform/browser.js +58 -0
- package/node_modules/@poe-code/safe-fs/dist/platform/node-path.d.ts +1 -0
- package/node_modules/@poe-code/safe-fs/dist/platform/node-path.js +1 -0
- package/node_modules/@poe-code/safe-fs/dist/platform/node.d.ts +26 -0
- package/node_modules/@poe-code/safe-fs/dist/platform/node.js +64 -0
- package/node_modules/@poe-code/safe-fs/dist/platform/transport-budget.d.ts +9 -0
- package/node_modules/@poe-code/safe-fs/dist/platform/transport-budget.js +17 -0
- package/node_modules/@poe-code/safe-fs/dist/python/emscripten.d.ts +15 -0
- package/node_modules/@poe-code/safe-fs/dist/python/emscripten.js +357 -0
- package/node_modules/@poe-code/safe-fs/dist/python/filesystem.d.ts +51 -0
- package/node_modules/@poe-code/safe-fs/dist/python/filesystem.js +243 -0
- package/node_modules/@poe-code/safe-fs/dist/python/flags.d.ts +3 -0
- package/node_modules/@poe-code/safe-fs/dist/python/flags.js +14 -0
- package/node_modules/@poe-code/safe-fs/dist/python/index.d.ts +9 -0
- package/node_modules/@poe-code/safe-fs/dist/python/index.js +5 -0
- package/node_modules/@poe-code/safe-fs/dist/python/native.d.ts +18 -0
- package/node_modules/@poe-code/safe-fs/dist/python/native.js +446 -0
- package/node_modules/@poe-code/safe-fs/dist/python/request.d.ts +2 -0
- package/node_modules/@poe-code/safe-fs/dist/python/request.js +61 -0
- package/node_modules/@poe-code/safe-fs/dist/python/stat.d.ts +8 -0
- package/node_modules/@poe-code/safe-fs/dist/python/stat.js +34 -0
- package/node_modules/@poe-code/safe-fs/dist/runtime-core.d.ts +27 -0
- package/node_modules/@poe-code/safe-fs/dist/runtime-core.js +57 -0
- package/node_modules/@poe-code/safe-fs/dist/testing/atomic-filesystem.d.ts +16 -0
- package/node_modules/@poe-code/safe-fs/dist/testing/atomic-filesystem.js +496 -0
- package/node_modules/@poe-code/safe-fs/dist/testing/object-io-control.d.ts +23 -0
- package/node_modules/@poe-code/safe-fs/dist/testing/object-io-control.js +39 -0
- package/node_modules/@poe-code/safe-fs/dist/testing/object-io-metrics.d.ts +31 -0
- package/node_modules/@poe-code/safe-fs/dist/testing/object-io-metrics.js +143 -0
- package/node_modules/@poe-code/safe-fs/dist/testing/object-publication.d.ts +19 -0
- package/node_modules/@poe-code/safe-fs/dist/testing/object-publication.js +209 -0
- package/node_modules/@poe-code/safe-fs/dist/xml.d.ts +1 -0
- package/node_modules/@poe-code/safe-fs/dist/xml.js +1 -0
- package/node_modules/@poe-code/safe-fs/package.json +189 -0
- package/node_modules/@poe-code/task-list/README.md +2 -0
- package/node_modules/@poe-code/task-list/dist/backends/gh-issues-client.d.ts +1 -1
- package/node_modules/@poe-code/task-list/dist/backends/gh-issues-client.js +11 -4
- package/node_modules/@poe-code/task-list/dist/backends/markdown-dir.js +2 -2
- package/node_modules/@poe-code/task-list/dist/backends/utils.js +5 -7
- package/node_modules/@poe-code/task-list/dist/backends/yaml-file.js +1 -1
- package/node_modules/@poe-code/task-list/dist/default-host.d.ts +2 -0
- package/node_modules/@poe-code/task-list/dist/default-host.js +2 -0
- package/node_modules/@poe-code/task-list/dist/default-host.workerd.d.ts +4 -0
- package/node_modules/@poe-code/task-list/dist/default-host.workerd.js +6 -0
- package/node_modules/@poe-code/task-list/dist/filesystem.d.ts +3 -0
- package/node_modules/@poe-code/task-list/dist/filesystem.js +32 -0
- package/node_modules/@poe-code/task-list/dist/move.js +3 -3
- package/node_modules/@poe-code/task-list/dist/open.js +2 -5
- package/node_modules/@poe-code/task-list/dist/paths.d.ts +12 -0
- package/node_modules/@poe-code/task-list/dist/paths.js +7 -0
- package/node_modules/@poe-code/task-list/dist/types.d.ts +6 -5
- package/node_modules/@poe-code/task-list/package.json +9 -0
- package/node_modules/@poe-code/terminal-text/LICENSE +21 -0
- package/node_modules/@poe-code/terminal-text/README.md +12 -0
- package/node_modules/@poe-code/terminal-text/dist/index.d.ts +2 -0
- package/node_modules/@poe-code/terminal-text/dist/index.js +20 -0
- package/node_modules/@poe-code/terminal-text/package.json +22 -0
- package/node_modules/@poe-code/xml-ast/LICENSE +21 -0
- package/node_modules/@poe-code/xml-ast/README.md +28 -0
- package/node_modules/@poe-code/xml-ast/dist/index.d.ts +47 -0
- package/node_modules/@poe-code/xml-ast/dist/index.js +635 -0
- package/node_modules/@poe-code/xml-ast/package.json +25 -0
- package/node_modules/auth-store/README.md +35 -0
- package/node_modules/auth-store/dist/index.browser.d.ts +4 -0
- package/node_modules/auth-store/dist/index.browser.js +2 -0
- package/node_modules/auth-store/dist/provider-store.d.ts +1 -1
- package/node_modules/auth-store/dist/safe-fs-secret-store.d.ts +21 -0
- package/node_modules/auth-store/dist/safe-fs-secret-store.js +119 -0
- package/node_modules/auth-store/dist/secret-store.d.ts +12 -0
- package/node_modules/auth-store/dist/secret-store.js +1 -0
- package/node_modules/auth-store/dist/transaction-lock.d.ts +2 -4
- package/node_modules/auth-store/dist/types.d.ts +2 -9
- package/node_modules/auth-store/package.json +16 -2
- package/node_modules/tiny-http-mcp-server/dist/composition.json +16 -1
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/README.md +25 -0
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/authorization-state.js +4 -4
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/default-oauth-client-provider.js +6 -40
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/oauth-form.d.ts +10 -0
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/oauth-form.js +20 -0
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/pkce.js +4 -3
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/register-client.d.ts +14 -0
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/register-client.js +53 -0
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/resumable.d.ts +16 -2
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/resumable.js +29 -9
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/revoke-token.d.ts +12 -0
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/revoke-token.js +23 -0
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/client/token-endpoint.js +6 -19
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/http-fetch.js +1 -1
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/index.browser.d.ts +6 -2
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/index.browser.js +5 -1
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/index.d.ts +5 -2
- package/node_modules/tiny-http-mcp-server/node_modules/mcp-oauth/dist/index.js +4 -1
- package/node_modules/tiny-http-mcp-server/package.json +4 -4
- package/node_modules/tiny-mcp-client/README.md +2 -0
- package/node_modules/tiny-mcp-client/dist/index.browser.d.ts +25 -23
- package/node_modules/tiny-mcp-client/dist/index.browser.js +116 -1
- package/node_modules/tiny-mcp-client/dist/index.d.ts +25 -23
- package/node_modules/tiny-mcp-client/dist/index.js +1034 -561
- package/node_modules/tiny-mcp-client/package.json +15 -0
- package/node_modules/tiny-stdio-mcp-server/dist/composition.json +1 -1
- package/node_modules/toolcraft-design/dist/components/table.js +6 -0
- package/node_modules/toolcraft-design/dist/escape-terminal-text.d.ts +1 -2
- package/node_modules/toolcraft-design/dist/escape-terminal-text.js +1 -20
- package/node_modules/toolcraft-design/dist/terminal-markdown/parser/frontmatter.js +2 -1
- package/node_modules/toolcraft-design/dist/terminal-markdown/parser.js +2 -1
- package/node_modules/toolcraft-schema/dist/json-schema/utils.js +3 -0
- package/node_modules/toolcraft-schema/package.json +1 -1
- package/package.json +32 -7
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FileSystem, FsOptions } from "../../contracts/filesystem.js";
|
|
2
|
+
export declare const nullPath = "/dev/null";
|
|
3
|
+
export declare const deviceDirectory = "/dev";
|
|
4
|
+
export declare function lexicalDevicePath(path: string): string;
|
|
5
|
+
export declare function resolveDevicePath(filesystem: FileSystem, path: string, options: FsOptions, followFinal?: boolean, resizeCreate?: boolean, traversal?: {
|
|
6
|
+
virtual: boolean;
|
|
7
|
+
}): Promise<string>;
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { FsError, isFsError } from "../../contracts/errors.js";
|
|
2
|
+
import { pathByteLength, validatePath } from "../../contracts/virtual-path.js";
|
|
3
|
+
import { capturePathNamespace, pathNamespace } from "../path-namespace.js";
|
|
4
|
+
import { isCleanAbsolutePath, tryResolveMemoryDevicePath } from "../../runtime-core.js";
|
|
5
|
+
export const nullPath = "/dev/null";
|
|
6
|
+
export const deviceDirectory = "/dev";
|
|
7
|
+
function isNullParts(parts) {
|
|
8
|
+
return parts.length === 2 && parts[0] === "dev" && parts[1] === "null";
|
|
9
|
+
}
|
|
10
|
+
export function lexicalDevicePath(path) {
|
|
11
|
+
validatePath(path);
|
|
12
|
+
if (isCleanAbsolutePath(path) && !path.startsWith("/dev/null/"))
|
|
13
|
+
return path;
|
|
14
|
+
const parts = [];
|
|
15
|
+
for (const component of path.split("/")) {
|
|
16
|
+
if (isNullParts(parts))
|
|
17
|
+
throw new FsError("ENOTDIR", { path });
|
|
18
|
+
if (component === "..")
|
|
19
|
+
parts.pop();
|
|
20
|
+
else if (component && component !== ".")
|
|
21
|
+
parts.push(component);
|
|
22
|
+
}
|
|
23
|
+
return `/${parts.join("/")}`;
|
|
24
|
+
}
|
|
25
|
+
async function resolveResizeDevicePath(filesystem, path, options, create, namespace, traversal) {
|
|
26
|
+
validatePath(path, options.pathLimits);
|
|
27
|
+
const components = (value) => {
|
|
28
|
+
const result = value.split("/").filter(Boolean);
|
|
29
|
+
if (value.endsWith("/"))
|
|
30
|
+
result.push("");
|
|
31
|
+
return result;
|
|
32
|
+
};
|
|
33
|
+
let pending = components(path);
|
|
34
|
+
let remainingComponents = (options.pathLimits?.maxPathComponents ?? Infinity) - pending.length;
|
|
35
|
+
if (remainingComponents < 0)
|
|
36
|
+
throw new FsError("ENAMETOOLONG", { path });
|
|
37
|
+
const parts = [];
|
|
38
|
+
let links = 0;
|
|
39
|
+
let expanded = pathByteLength(path);
|
|
40
|
+
let boundary;
|
|
41
|
+
while (pending.length) {
|
|
42
|
+
options.signal?.throwIfAborted();
|
|
43
|
+
const component = pending.shift();
|
|
44
|
+
const current = `/${parts.join("/")}`;
|
|
45
|
+
if (current === nullPath)
|
|
46
|
+
throw new FsError("ENOTDIR", { path });
|
|
47
|
+
if (current !== deviceDirectory) {
|
|
48
|
+
const observe = filesystem.stat;
|
|
49
|
+
options.signal?.throwIfAborted();
|
|
50
|
+
const stat = await Reflect.apply(observe, filesystem, [current, options]);
|
|
51
|
+
options.signal?.throwIfAborted();
|
|
52
|
+
if (stat.type !== "directory")
|
|
53
|
+
throw new FsError("ENOTDIR", { path });
|
|
54
|
+
if (!(component === "" && pending.length === 0)) {
|
|
55
|
+
const access = filesystem.access;
|
|
56
|
+
options.signal?.throwIfAborted();
|
|
57
|
+
await Reflect.apply(access, filesystem, [current, 1, options]);
|
|
58
|
+
options.signal?.throwIfAborted();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (component === "." || component === "")
|
|
62
|
+
continue;
|
|
63
|
+
if (component === "..") {
|
|
64
|
+
if (boundary !== undefined && current === boundary)
|
|
65
|
+
throw new FsError("EACCES", { path });
|
|
66
|
+
parts.pop();
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
if (exceedsComponentByteLimit(component))
|
|
70
|
+
throw new FsError("ENAMETOOLONG", { path });
|
|
71
|
+
const candidate = `/${[...parts, component].join("/")}`;
|
|
72
|
+
const selected = namespace === undefined ? undefined : candidate === deviceDirectory || candidate === nullPath ? "/" : namespace(candidate);
|
|
73
|
+
if (boundary !== undefined && selected !== boundary)
|
|
74
|
+
throw new FsError("EACCES", { path });
|
|
75
|
+
if (traversal && (candidate === deviceDirectory || candidate === nullPath))
|
|
76
|
+
traversal.virtual = true;
|
|
77
|
+
if (create && pending.length === 1 && pending[0] === "")
|
|
78
|
+
throw new FsError("EISDIR", { path });
|
|
79
|
+
if (candidate !== deviceDirectory && candidate !== nullPath) {
|
|
80
|
+
let stat;
|
|
81
|
+
const lstat = filesystem.lstat;
|
|
82
|
+
options.signal?.throwIfAborted();
|
|
83
|
+
try {
|
|
84
|
+
stat = await Reflect.apply(lstat, filesystem, [candidate, options]);
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
options.signal?.throwIfAborted();
|
|
88
|
+
if (!(isFsError(error, "ENOENT") && create && pending.length === 0))
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
options.signal?.throwIfAborted();
|
|
92
|
+
if (stat?.type === "symlink") {
|
|
93
|
+
boundary ??= selected;
|
|
94
|
+
const readlink = filesystem.readlink;
|
|
95
|
+
options.signal?.throwIfAborted();
|
|
96
|
+
if (typeof readlink !== "function")
|
|
97
|
+
throw new FsError("ENOTSUP", { path });
|
|
98
|
+
if (++links > 40)
|
|
99
|
+
throw new FsError("ELOOP", { path });
|
|
100
|
+
const target = await Reflect.apply(readlink, filesystem, [candidate, options]);
|
|
101
|
+
options.signal?.throwIfAborted();
|
|
102
|
+
validatePath(target, options.pathLimits);
|
|
103
|
+
expanded += pathByteLength(target);
|
|
104
|
+
if (expanded > (options.pathLimits?.maxPathBytes ?? Infinity))
|
|
105
|
+
throw new FsError("ENAMETOOLONG", { path });
|
|
106
|
+
if (target.startsWith("/"))
|
|
107
|
+
parts.splice(0, parts.length, ...(boundary ?? "/").split("/").filter(Boolean));
|
|
108
|
+
const targetParts = components(target);
|
|
109
|
+
if (targetParts.at(-1) === "" && pending[0] === "")
|
|
110
|
+
targetParts.pop();
|
|
111
|
+
if (targetParts.length > remainingComponents)
|
|
112
|
+
throw new FsError("ENAMETOOLONG", { path });
|
|
113
|
+
remainingComponents -= targetParts.length;
|
|
114
|
+
pending = targetParts.concat(pending);
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
parts.push(component);
|
|
119
|
+
}
|
|
120
|
+
return `/${parts.join("/")}`;
|
|
121
|
+
}
|
|
122
|
+
function utf8ByteLength(value) {
|
|
123
|
+
let bytes = 0;
|
|
124
|
+
for (let i = 0; i < value.length; i++) {
|
|
125
|
+
const code = value.charCodeAt(i);
|
|
126
|
+
if (code < 0x80)
|
|
127
|
+
bytes += 1;
|
|
128
|
+
else if (code < 0x800)
|
|
129
|
+
bytes += 2;
|
|
130
|
+
else if (code >= 0xd800 && code <= 0xdbff && i + 1 < value.length && value.charCodeAt(i + 1) >= 0xdc00 && value.charCodeAt(i + 1) <= 0xdfff) {
|
|
131
|
+
bytes += 4;
|
|
132
|
+
i++;
|
|
133
|
+
}
|
|
134
|
+
else
|
|
135
|
+
bytes += 3;
|
|
136
|
+
}
|
|
137
|
+
return bytes;
|
|
138
|
+
}
|
|
139
|
+
function exceedsComponentByteLimit(value) {
|
|
140
|
+
return value.length > 85 && (value.length > 255 || utf8ByteLength(value) > 255);
|
|
141
|
+
}
|
|
142
|
+
export async function resolveDevicePath(filesystem, path, options, followFinal = true, resizeCreate, traversal) {
|
|
143
|
+
options.signal?.throwIfAborted();
|
|
144
|
+
validatePath(path, options.pathLimits);
|
|
145
|
+
if (options.pathLimits === undefined && Reflect.get(filesystem, pathNamespace) === undefined) {
|
|
146
|
+
const fast = tryResolveMemoryDevicePath(filesystem, path, resizeCreate);
|
|
147
|
+
if (fast !== undefined)
|
|
148
|
+
return fast;
|
|
149
|
+
}
|
|
150
|
+
const namespace = capturePathNamespace(filesystem, options);
|
|
151
|
+
if (resizeCreate !== undefined)
|
|
152
|
+
return resolveResizeDevicePath(filesystem, path, options, resizeCreate, namespace, traversal);
|
|
153
|
+
const lexical = lexicalDevicePath(path);
|
|
154
|
+
const lstat = filesystem.lstat;
|
|
155
|
+
options.signal?.throwIfAborted();
|
|
156
|
+
const aliases = typeof lstat === "function";
|
|
157
|
+
if (!aliases && lexical !== nullPath && lexical !== deviceDirectory && lexical !== "/")
|
|
158
|
+
return lexical;
|
|
159
|
+
let pending = path.split("/");
|
|
160
|
+
let remainingComponents = (options.pathLimits?.maxPathComponents ?? Infinity) - pending.filter(Boolean).length;
|
|
161
|
+
if (remainingComponents < 0)
|
|
162
|
+
throw new FsError("ENAMETOOLONG", { path });
|
|
163
|
+
const parts = [];
|
|
164
|
+
let links = 0;
|
|
165
|
+
let expanded = pathByteLength(path);
|
|
166
|
+
let absolute = path.startsWith("/");
|
|
167
|
+
let traversalFailure;
|
|
168
|
+
let failedDepth = Infinity;
|
|
169
|
+
let boundary;
|
|
170
|
+
while (pending.length) {
|
|
171
|
+
options.signal?.throwIfAborted();
|
|
172
|
+
if (isNullParts(parts))
|
|
173
|
+
throw new FsError("ENOTDIR", { path });
|
|
174
|
+
const component = pending.shift();
|
|
175
|
+
if (!component || component === ".")
|
|
176
|
+
continue;
|
|
177
|
+
if (component === "..") {
|
|
178
|
+
if (boundary !== undefined && `/${parts.join("/")}` === boundary)
|
|
179
|
+
throw new FsError("EACCES", { path });
|
|
180
|
+
parts.pop();
|
|
181
|
+
if (parts.length < failedDepth) {
|
|
182
|
+
failedDepth = Infinity;
|
|
183
|
+
}
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
const candidate = `/${[...parts, component].join("/")}`;
|
|
187
|
+
const selected = namespace === undefined ? undefined : candidate === deviceDirectory || candidate === nullPath ? "/" : namespace(candidate);
|
|
188
|
+
if (boundary !== undefined && selected !== boundary)
|
|
189
|
+
throw new FsError("EACCES", { path });
|
|
190
|
+
if (traversal && (candidate === deviceDirectory || candidate === nullPath))
|
|
191
|
+
traversal.virtual = true;
|
|
192
|
+
if (parts.length < failedDepth && candidate !== deviceDirectory && candidate !== nullPath && ((followFinal && aliases) || pending.length)) {
|
|
193
|
+
const lookup = absolute ? candidate : candidate.slice(1);
|
|
194
|
+
let stat;
|
|
195
|
+
try {
|
|
196
|
+
if (typeof lstat !== "function")
|
|
197
|
+
throw new FsError("ENOTSUP", { path });
|
|
198
|
+
stat = await Reflect.apply(lstat, filesystem, [lookup, options]);
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
options.signal?.throwIfAborted();
|
|
202
|
+
if (isFsError(error, "ENOTSUP") && links === 0 && lexical !== nullPath && lexical !== deviceDirectory && lexical !== "/")
|
|
203
|
+
return lexical;
|
|
204
|
+
if (!isFsError(error, "ENOENT"))
|
|
205
|
+
throw error;
|
|
206
|
+
if (pending.length) {
|
|
207
|
+
traversalFailure ??= error;
|
|
208
|
+
failedDepth = Math.min(failedDepth, parts.length + 1);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
options.signal?.throwIfAborted();
|
|
212
|
+
if (stat?.type === "symlink") {
|
|
213
|
+
boundary ??= selected;
|
|
214
|
+
const readlink = filesystem.readlink;
|
|
215
|
+
options.signal?.throwIfAborted();
|
|
216
|
+
if (typeof readlink !== "function")
|
|
217
|
+
throw new FsError("ENOTSUP", { path });
|
|
218
|
+
if (++links > 40)
|
|
219
|
+
throw new FsError("ELOOP", { path });
|
|
220
|
+
const target = await Reflect.apply(readlink, filesystem, [lookup, options]);
|
|
221
|
+
options.signal?.throwIfAborted();
|
|
222
|
+
validatePath(target, options.pathLimits);
|
|
223
|
+
expanded += pathByteLength(target);
|
|
224
|
+
if (expanded > (options.pathLimits?.maxPathBytes ?? Infinity))
|
|
225
|
+
throw new FsError("ENAMETOOLONG", { path });
|
|
226
|
+
const targetSplit = target.split("/");
|
|
227
|
+
const nonEmptyCount = targetSplit.filter(Boolean).length;
|
|
228
|
+
if (nonEmptyCount > remainingComponents)
|
|
229
|
+
throw new FsError("ENAMETOOLONG", { path });
|
|
230
|
+
remainingComponents -= nonEmptyCount;
|
|
231
|
+
if (target.startsWith("/")) {
|
|
232
|
+
parts.splice(0, parts.length, ...(boundary ?? "/").split("/").filter(Boolean));
|
|
233
|
+
absolute = true;
|
|
234
|
+
failedDepth = Infinity;
|
|
235
|
+
}
|
|
236
|
+
pending = targetSplit.concat(pending);
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
if (stat && pending.length && stat.type !== "directory") {
|
|
240
|
+
traversalFailure ??= new FsError("ENOTDIR", { path });
|
|
241
|
+
failedDepth = Math.min(failedDepth, parts.length + 1);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
parts.push(component);
|
|
245
|
+
}
|
|
246
|
+
const resolved = `/${parts.join("/")}`;
|
|
247
|
+
if (traversalFailure && (resolved === nullPath || resolved === deviceDirectory || resolved === "/"))
|
|
248
|
+
throw traversalFailure;
|
|
249
|
+
return resolved;
|
|
250
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ByteSource } from "../../contracts/io.js";
|
|
2
|
+
import type { FileReadHandle } from "../../contracts/filesystem.js";
|
|
3
|
+
export declare function deviceReadStream(open: () => Promise<ByteSource>, signal?: AbortSignal): ByteSource;
|
|
4
|
+
export declare function drainDeviceFile(handle: FileReadHandle, signal?: AbortSignal): Promise<void>;
|
|
5
|
+
export declare function createDeviceYield(): (length: number, signal?: AbortSignal) => Promise<void>;
|
|
6
|
+
export declare function drainDeviceInput(source: ByteSource, signal?: AbortSignal): Promise<void>;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { finishCleanup } from "../../contracts/cleanup.js";
|
|
2
|
+
export function deviceReadStream(open, signal) {
|
|
3
|
+
return { [Symbol.asyncIterator]() {
|
|
4
|
+
let opened;
|
|
5
|
+
let closing;
|
|
6
|
+
const iterator = () => opened ??= Promise.resolve().then(open).then(source => source[Symbol.asyncIterator]());
|
|
7
|
+
const close = () => closing ??= !opened && signal?.aborted
|
|
8
|
+
? Promise.resolve({ done: true, value: undefined })
|
|
9
|
+
: iterator().then(async (source) => source.return ? source.return() : { done: true, value: undefined });
|
|
10
|
+
return {
|
|
11
|
+
async next() {
|
|
12
|
+
if (closing) {
|
|
13
|
+
await closing;
|
|
14
|
+
return { done: true, value: undefined };
|
|
15
|
+
}
|
|
16
|
+
try {
|
|
17
|
+
const source = await iterator();
|
|
18
|
+
signal?.throwIfAborted();
|
|
19
|
+
if (closing) {
|
|
20
|
+
await closing;
|
|
21
|
+
return { done: true, value: undefined };
|
|
22
|
+
}
|
|
23
|
+
const next = source.next;
|
|
24
|
+
signal?.throwIfAborted();
|
|
25
|
+
if (closing) {
|
|
26
|
+
await closing;
|
|
27
|
+
return { done: true, value: undefined };
|
|
28
|
+
}
|
|
29
|
+
return await Reflect.apply(next, source, []);
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
await finishCleanup(close, true);
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
return: close,
|
|
37
|
+
};
|
|
38
|
+
} };
|
|
39
|
+
}
|
|
40
|
+
export async function drainDeviceFile(handle, signal) {
|
|
41
|
+
let failed = false;
|
|
42
|
+
let position = 0;
|
|
43
|
+
try {
|
|
44
|
+
await drainDeviceInput({ [Symbol.asyncIterator]: () => ({ async next() {
|
|
45
|
+
const value = await handle.read(position, 65536, signal ? { signal } : {});
|
|
46
|
+
if (!(value instanceof Uint8Array) || value.byteLength > 65536)
|
|
47
|
+
throw new TypeError("Retained reads must return bounded Uint8Array chunks");
|
|
48
|
+
position += value.byteLength;
|
|
49
|
+
if (!Number.isSafeInteger(position))
|
|
50
|
+
throw new RangeError("Retained read position exceeds safe integer range");
|
|
51
|
+
return { done: value.byteLength === 0, value };
|
|
52
|
+
} }) }, signal);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
failed = true;
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
58
|
+
finally {
|
|
59
|
+
await finishCleanup(async () => {
|
|
60
|
+
try {
|
|
61
|
+
await handle.close();
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
signal?.throwIfAborted();
|
|
65
|
+
throw error;
|
|
66
|
+
}
|
|
67
|
+
}, failed);
|
|
68
|
+
}
|
|
69
|
+
signal?.throwIfAborted();
|
|
70
|
+
}
|
|
71
|
+
function nextChunk(iterator, signal) {
|
|
72
|
+
signal?.throwIfAborted();
|
|
73
|
+
return new Promise((resolve, reject) => {
|
|
74
|
+
const aborted = () => { signal?.removeEventListener("abort", aborted); reject(signal?.reason); };
|
|
75
|
+
signal?.addEventListener("abort", aborted, { once: true });
|
|
76
|
+
try {
|
|
77
|
+
Promise.resolve(iterator.next()).then(result => {
|
|
78
|
+
signal?.removeEventListener("abort", aborted);
|
|
79
|
+
if (signal?.aborted)
|
|
80
|
+
reject(signal.reason);
|
|
81
|
+
else
|
|
82
|
+
resolve(result);
|
|
83
|
+
}, error => { signal?.removeEventListener("abort", aborted); reject(signal?.aborted ? signal.reason : error); });
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
signal?.removeEventListener("abort", aborted);
|
|
87
|
+
reject(signal?.aborted ? signal.reason : error);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
export function createDeviceYield() {
|
|
92
|
+
let bytes = 0;
|
|
93
|
+
let pulls = 0;
|
|
94
|
+
return async (length, signal) => {
|
|
95
|
+
bytes += length;
|
|
96
|
+
if (++pulls >= 64 || bytes >= 65536) {
|
|
97
|
+
await new Promise(resolve => setTimeout(resolve, 0));
|
|
98
|
+
signal?.throwIfAborted();
|
|
99
|
+
bytes = 0;
|
|
100
|
+
pulls = 0;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
export async function drainDeviceInput(source, signal) {
|
|
105
|
+
signal?.throwIfAborted();
|
|
106
|
+
const iterator = source[Symbol.asyncIterator]();
|
|
107
|
+
let failed = false;
|
|
108
|
+
const yieldAfterWrite = createDeviceYield();
|
|
109
|
+
try {
|
|
110
|
+
for (;;) {
|
|
111
|
+
const result = await nextChunk(iterator, signal);
|
|
112
|
+
signal?.throwIfAborted();
|
|
113
|
+
if (result.done)
|
|
114
|
+
break;
|
|
115
|
+
if (!(result.value instanceof Uint8Array))
|
|
116
|
+
throw new TypeError("Byte sources must yield Uint8Array chunks");
|
|
117
|
+
await yieldAfterWrite(result.value.byteLength, signal);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
failed = true;
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
finally {
|
|
125
|
+
await finishCleanup(async () => {
|
|
126
|
+
try {
|
|
127
|
+
await iterator.return?.();
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
signal?.throwIfAborted();
|
|
131
|
+
throw error;
|
|
132
|
+
}
|
|
133
|
+
}, failed);
|
|
134
|
+
}
|
|
135
|
+
signal?.throwIfAborted();
|
|
136
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ReadDirectoryOptions } from "../contracts/filesystem.js";
|
|
2
|
+
export declare function directoryEntryLimit(options: ReadDirectoryOptions, path: string): number | undefined;
|
|
3
|
+
export declare function admitDirectoryEntries(count: number, limit: number | undefined, path: string): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FsError } from "../contracts/errors.js";
|
|
2
|
+
export function directoryEntryLimit(options, path) {
|
|
3
|
+
options.signal?.throwIfAborted();
|
|
4
|
+
const limit = options.maxEntries === Infinity ? undefined : options.maxEntries;
|
|
5
|
+
if (limit !== undefined && (!Number.isSafeInteger(limit) || limit < 0)) {
|
|
6
|
+
throw new FsError("EINVAL", { syscall: "readdir", path, message: "directory entry limit must be a nonnegative safe integer or Infinity" });
|
|
7
|
+
}
|
|
8
|
+
return limit;
|
|
9
|
+
}
|
|
10
|
+
export function admitDirectoryEntries(count, limit, path) {
|
|
11
|
+
if (limit !== undefined && count > limit) {
|
|
12
|
+
throw new FsError("EFBIG", { syscall: "readdir", path, message: "directory entry limit exceeded" });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { FileStat, FileSystem } from "../../contracts/filesystem.js";
|
|
2
|
+
/** Internal authority: inspections and stock mutations share one JavaScript turn. */
|
|
3
|
+
export interface MemoryAtomicView {
|
|
4
|
+
stat(path: string): FileStat | undefined;
|
|
5
|
+
names(path: string): readonly string[];
|
|
6
|
+
}
|
|
7
|
+
type LazyMemoryAtomicView = (this: FileSystem) => MemoryAtomicView | undefined;
|
|
8
|
+
export declare function registerMemoryAtomicView(fs: FileSystem, view: MemoryAtomicView, intact: () => boolean): void;
|
|
9
|
+
export declare function registerLazyMemoryAtomicView(fs: FileSystem, create: LazyMemoryAtomicView): void;
|
|
10
|
+
export declare function memoryAtomicView(fs: FileSystem): MemoryAtomicView | undefined;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const views = new WeakMap();
|
|
2
|
+
export function registerMemoryAtomicView(fs, view, intact) {
|
|
3
|
+
views.set(fs, { view, intact });
|
|
4
|
+
}
|
|
5
|
+
export function registerLazyMemoryAtomicView(fs, create) {
|
|
6
|
+
views.set(fs, create);
|
|
7
|
+
}
|
|
8
|
+
export function memoryAtomicView(fs) {
|
|
9
|
+
const registered = views.get(fs);
|
|
10
|
+
if (typeof registered === "function")
|
|
11
|
+
return registered.call(fs);
|
|
12
|
+
return registered?.intact() ? registered.view : undefined;
|
|
13
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import type { AppendFileOptions, CopyFileOptions, DirectoryEntry, EntryComparison, FileReadHandle, FileResizeHandle, FileStat, FileSystem, FileSystemCapabilities, FsOptions, ChmodOptions, RenameOptions, MkdirOptions, ReadDirectoryOptions, ReadFileOptions, ReadStreamOptions, RemoveOptions, FileDescriptor, OpenFileOptions, OpenReadFileOptions, OpenResizeFileOptions, WriteFileOptions, ConditionalWriteFileOptions, ConditionalRemoveFileOptions, ConditionalRemoveEntryOptions, ConditionalRemoveEntryReceiptOptions, CreateStagedFileOptions, FileStaging, FileStagingEntry, FileStagingResolution, PublishStagedFileOptions, PublishStagedFileSetOptions, PrepareDirectoryOptions, StagedFileContent } from "../../contracts/filesystem.js";
|
|
2
|
+
import type { ByteSource } from "../../contracts/io.js";
|
|
3
|
+
import { type MemoryAtomicView } from "./atomic-view.js";
|
|
4
|
+
import { MemoryAllocation, MemoryLedger } from "./ledger.js";
|
|
5
|
+
import { type MemoryFileSystemOptions } from "./limits.js";
|
|
6
|
+
export { defaultMemoryFileSystemLimits, type MemoryFileSystemLimits, type MemoryFileSystemOptions } from "./limits.js";
|
|
7
|
+
interface Metadata {
|
|
8
|
+
revision: number;
|
|
9
|
+
mode: number;
|
|
10
|
+
ino: number;
|
|
11
|
+
nlink: number;
|
|
12
|
+
atimeMs: number;
|
|
13
|
+
mtimeMs: number;
|
|
14
|
+
ctimeMs: number;
|
|
15
|
+
birthtimeMs: number;
|
|
16
|
+
references: number;
|
|
17
|
+
}
|
|
18
|
+
interface FileNode extends Metadata {
|
|
19
|
+
type: "file";
|
|
20
|
+
sourceRef?: Uint8Array | undefined;
|
|
21
|
+
byteLength: number;
|
|
22
|
+
view: Uint8Array | undefined;
|
|
23
|
+
data: Uint8Array;
|
|
24
|
+
allocation: MemoryAllocation;
|
|
25
|
+
}
|
|
26
|
+
interface DirectoryNode extends Metadata {
|
|
27
|
+
type: "directory";
|
|
28
|
+
entries: Map<string, MemoryNode>;
|
|
29
|
+
cachedNlink?: number;
|
|
30
|
+
cachedNlinkRev?: number;
|
|
31
|
+
}
|
|
32
|
+
interface SymlinkNode extends Metadata {
|
|
33
|
+
type: "symlink";
|
|
34
|
+
target: string;
|
|
35
|
+
}
|
|
36
|
+
type MemoryNode = FileNode | DirectoryNode | SymlinkNode;
|
|
37
|
+
declare class MemoryCache {
|
|
38
|
+
readonly files: FileNode[];
|
|
39
|
+
readonly directories: DirectoryNode[];
|
|
40
|
+
readonly removedScratch: MemoryNode[];
|
|
41
|
+
lastFastDirPrefix: string;
|
|
42
|
+
lastFastDirNode: DirectoryNode | undefined;
|
|
43
|
+
lastFastFilePath: string;
|
|
44
|
+
lastFastFileName: string;
|
|
45
|
+
lastFastFileNode: FileNode | undefined;
|
|
46
|
+
clearWrites(): void;
|
|
47
|
+
}
|
|
48
|
+
type OwnedStore = {
|
|
49
|
+
root: DirectoryNode;
|
|
50
|
+
ledger: MemoryLedger;
|
|
51
|
+
capabilities: FileSystem["capabilities"];
|
|
52
|
+
intact: () => boolean;
|
|
53
|
+
};
|
|
54
|
+
export interface ConditionalMutationBinding {
|
|
55
|
+
readonly path: string;
|
|
56
|
+
readonly parent: FileStat;
|
|
57
|
+
readonly expected: FileStat;
|
|
58
|
+
readonly ancestors: readonly FileStagingEntry[];
|
|
59
|
+
}
|
|
60
|
+
export declare function bindConditionalMutation<Result>(identityScope: object | symbol | undefined, binding: ConditionalMutationBinding, action: () => Promise<Result>): Promise<Result>;
|
|
61
|
+
export declare class MemoryFileSystem implements FileSystem {
|
|
62
|
+
#private;
|
|
63
|
+
capabilitiesFor?: NonNullable<FileSystem["capabilitiesFor"]>;
|
|
64
|
+
private get identityScope();
|
|
65
|
+
get capabilities(): FileSystemCapabilities;
|
|
66
|
+
private nextInode;
|
|
67
|
+
private readonly ledger;
|
|
68
|
+
readonly _cache: MemoryCache;
|
|
69
|
+
mutationTick: number;
|
|
70
|
+
readonly _owner: OwnedStore;
|
|
71
|
+
private readonly root;
|
|
72
|
+
private totalBytes;
|
|
73
|
+
symlinkCount: number;
|
|
74
|
+
_getAtomicView(): MemoryAtomicView | undefined;
|
|
75
|
+
constructor(options?: MemoryFileSystemOptions);
|
|
76
|
+
compareEntry(path: string, peer: FileSystem, peerPath: string, options?: FsOptions): Promise<EntryComparison>;
|
|
77
|
+
canonicalizeMissingTarget(path: string, options?: FsOptions): string | undefined;
|
|
78
|
+
confineExtraction(roots: readonly string[], options?: FsOptions): Promise<FileSystem>;
|
|
79
|
+
private metadata;
|
|
80
|
+
private directory;
|
|
81
|
+
private addDirectoryNode;
|
|
82
|
+
private addNode;
|
|
83
|
+
private releaseNode;
|
|
84
|
+
private releaseReference;
|
|
85
|
+
private replaceData;
|
|
86
|
+
private admitSize;
|
|
87
|
+
private fail;
|
|
88
|
+
private validatePath;
|
|
89
|
+
private permission;
|
|
90
|
+
private mode;
|
|
91
|
+
private integer;
|
|
92
|
+
private changed;
|
|
93
|
+
private resolveNode;
|
|
94
|
+
private resolve;
|
|
95
|
+
private file;
|
|
96
|
+
private entry;
|
|
97
|
+
private terminalDot;
|
|
98
|
+
private directoryNlink;
|
|
99
|
+
private snapshot;
|
|
100
|
+
private bytes;
|
|
101
|
+
private allocate;
|
|
102
|
+
open(path: string, options: OpenFileOptions): Promise<FileDescriptor>;
|
|
103
|
+
private prepareWrite;
|
|
104
|
+
private openWrite;
|
|
105
|
+
private writeData;
|
|
106
|
+
private writeAt;
|
|
107
|
+
private writeAtRange;
|
|
108
|
+
writeMemoryFileFast(path: string, data: Uint8Array, append: boolean, mode: number): void;
|
|
109
|
+
writeMemoryFilesInDirBatchFast(firstFileName: string, dirPrefix: string, fileNames: readonly string[], nameHashes: Int32Array, payloads: readonly Uint8Array[], totalNameBytes: number, payloadBytesSum: number, mode: number): void;
|
|
110
|
+
writeMemoryFileInDirFast(dirPrefix: string, name: string, data: Uint8Array, append: boolean, mode: number, nameHash?: number): void;
|
|
111
|
+
readFile(path: string, options?: ReadFileOptions): Promise<Uint8Array>;
|
|
112
|
+
private expectEntry;
|
|
113
|
+
private stagingLocations;
|
|
114
|
+
createStagedFile(directoryPath: string, name: string, content: StagedFileContent, options: CreateStagedFileOptions): Promise<FileStaging>;
|
|
115
|
+
private retainStagingCleanup;
|
|
116
|
+
prepareDirectoryAncestry(ancestors: readonly FileStagingEntry[], options?: FsOptions): Promise<() => true>;
|
|
117
|
+
prepareStagingResolution(path: string, options?: FsOptions): Promise<FileStagingResolution>;
|
|
118
|
+
private verifyDirectoryAncestry;
|
|
119
|
+
publishStagedFile(receipt: FileStaging, destination: string, options: PublishStagedFileOptions): Promise<void>;
|
|
120
|
+
publishStagedFileSet(receipt: FileStaging, destination: string, options: PublishStagedFileSetOptions): Promise<FileStat>;
|
|
121
|
+
removeStagedFile(staging: FileStaging, options?: FsOptions): Promise<void>;
|
|
122
|
+
private removeStagingLocations;
|
|
123
|
+
prepareDirectory(path: string, options: PrepareDirectoryOptions): Promise<FileStat>;
|
|
124
|
+
writeFileConditional(path: string, data: Uint8Array, options: ConditionalWriteFileOptions): Promise<FileStat>;
|
|
125
|
+
removeEntryConditional(path: string, options: ConditionalRemoveEntryOptions & {
|
|
126
|
+
readonly returnRemainingStat?: false | undefined;
|
|
127
|
+
}): Promise<void>;
|
|
128
|
+
removeEntryConditional(path: string, options: ConditionalRemoveEntryReceiptOptions): Promise<void | FileStat>;
|
|
129
|
+
removeFileConditional(path: string, options: ConditionalRemoveFileOptions): Promise<void>;
|
|
130
|
+
removeTreeConditional(path: string, options: ConditionalRemoveEntryOptions): Promise<void>;
|
|
131
|
+
writeFile(path: string, data: Uint8Array, options?: WriteFileOptions): Promise<void>;
|
|
132
|
+
appendFile(path: string, data: Uint8Array, options?: AppendFileOptions): Promise<void>;
|
|
133
|
+
stat(path: string, options?: FsOptions): Promise<FileStat>;
|
|
134
|
+
lstat(path: string, options?: FsOptions): Promise<FileStat>;
|
|
135
|
+
readdir(path: string, options?: ReadDirectoryOptions): Promise<DirectoryEntry[]>;
|
|
136
|
+
tryMkdirFastSync(path: string, recursive: boolean, mode: number | undefined): boolean;
|
|
137
|
+
tryRmFastSync(path: string, recursive: boolean, force: boolean): boolean;
|
|
138
|
+
mkdir(path: string, options?: MkdirOptions): Promise<void>;
|
|
139
|
+
rmdir(path: string, options?: FsOptions): Promise<void>;
|
|
140
|
+
rm(path: string, options?: RemoveOptions & Partial<ConditionalMutationBinding>): Promise<void>;
|
|
141
|
+
private removeLocation;
|
|
142
|
+
unlink(path: string, options?: FsOptions): Promise<void>;
|
|
143
|
+
rename(source: string, destination: string, options?: RenameOptions): Promise<void>;
|
|
144
|
+
copyFile(source: string, destination: string, options?: CopyFileOptions): Promise<void>;
|
|
145
|
+
realpath(path: string, options?: FsOptions): Promise<string>;
|
|
146
|
+
access(path: string, mode?: number, options?: FsOptions): Promise<void>;
|
|
147
|
+
readlink(path: string, options?: FsOptions): Promise<string>;
|
|
148
|
+
symlink(target: string, path: string, options?: FsOptions): Promise<void>;
|
|
149
|
+
link(existingPath: string, newPath: string, options?: FsOptions): Promise<void>;
|
|
150
|
+
chmod(path: string, mode: number, options?: ChmodOptions): Promise<void>;
|
|
151
|
+
utimes(path: string, atimeMs: number, mtimeMs: number, options?: FsOptions): Promise<void>;
|
|
152
|
+
truncate(path: string, length?: number, options?: FsOptions): Promise<void>;
|
|
153
|
+
private resizeNode;
|
|
154
|
+
openResizeFile(path: string, options?: OpenResizeFileOptions): Promise<FileResizeHandle>;
|
|
155
|
+
openReadFile(path: string, options?: OpenReadFileOptions): Promise<FileReadHandle>;
|
|
156
|
+
readStream(path: string, options?: ReadStreamOptions): ByteSource;
|
|
157
|
+
writeStream(path: string, source: ByteSource, options?: WriteFileOptions): Promise<void>;
|
|
158
|
+
}
|
|
159
|
+
export declare function createMemoryFileSystem(options?: MemoryFileSystemOptions | Readonly<Record<string, unknown>>): MemoryFileSystem;
|
|
160
|
+
export declare class MemoryRedirectHandle {
|
|
161
|
+
fs: MemoryFileSystem;
|
|
162
|
+
path: string;
|
|
163
|
+
node: FileNode;
|
|
164
|
+
append: boolean;
|
|
165
|
+
position: number;
|
|
166
|
+
closed: boolean;
|
|
167
|
+
constructor(fs: MemoryFileSystem, path: string, node: FileNode, append: boolean);
|
|
168
|
+
reset(fs: MemoryFileSystem, path: string, node: FileNode, append: boolean): void;
|
|
169
|
+
writeRangeSync(src: Uint8Array, len: number, signal?: AbortSignal): void;
|
|
170
|
+
writeImmutableSync(immutableData: Uint8Array, signal?: AbortSignal): void;
|
|
171
|
+
writeSync(chunk: Uint8Array, signal?: AbortSignal): void;
|
|
172
|
+
close(): void;
|
|
173
|
+
}
|
|
174
|
+
export declare function tryOpenMemoryRedirectHandleSync(filesystem: FileSystem, path: string, append: boolean, mode: number, signal?: AbortSignal): MemoryRedirectHandle | undefined;
|
|
175
|
+
export declare function utf8ByteLength(value: string): number;
|
|
176
|
+
export declare function isCleanAbsolutePath(path: string): boolean;
|
|
177
|
+
export declare function tryResolveMemoryDevicePath(filesystem: FileSystem, path: string, resizeCreate?: boolean): string | undefined;
|
|
178
|
+
export declare function getLastReadMemoryFileSourceRef(view: Uint8Array): Uint8Array | undefined;
|
|
179
|
+
export declare function tryReadMemoryFileViewSync(filesystem: FileSystem, path: string, maxBytes?: number, signal?: AbortSignal, captureSourceRef?: boolean, beforeRead?: () => void): Uint8Array | undefined;
|
|
180
|
+
export declare function tryGetMemoryDirectoryEntryNamesSync(filesystem: FileSystem, path: string): ReadonlyMap<string, {
|
|
181
|
+
readonly type: "file" | "directory" | "symlink";
|
|
182
|
+
}> | undefined;
|
|
183
|
+
export declare function tryWriteMemoryFileSync(filesystem: FileSystem, path: string, data: Uint8Array, append: boolean, mode: number, signal?: AbortSignal): boolean;
|
|
184
|
+
export declare function tryMkdirMemorySync(filesystem: FileSystem, path: string, recursive: boolean, mode: number, signal?: AbortSignal, dirPrefixHint?: string): boolean;
|
|
185
|
+
export declare function tryRmRfMemorySync(filesystem: FileSystem, path: string, signal?: AbortSignal): boolean;
|
|
186
|
+
export declare function tryWriteMemoryFileInDirSync(filesystem: FileSystem, dirPrefix: string, name: string, data: Uint8Array, append: boolean, mode: number, signal?: AbortSignal): boolean;
|