@openclaw/openshell-sandbox 2026.9.4 → 2026.9.5
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/assets/activity.svg +3 -0
- package/assets/icon.png +0 -0
- package/dist/index.js +32 -26
- package/node_modules/@openclaw/fs-safe/CHANGELOG.md +285 -0
- package/node_modules/@openclaw/fs-safe/LICENSE +1 -0
- package/node_modules/@openclaw/fs-safe/README.md +65 -10
- package/node_modules/@openclaw/fs-safe/dist/absolute-path.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/absolute-path.js +33 -11
- package/node_modules/@openclaw/fs-safe/dist/advanced.d.ts +8 -1
- package/node_modules/@openclaw/fs-safe/dist/advanced.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/advanced.js +8 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-crc32.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-crc32.js +6 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-deadline.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-deadline.js +3 -4
- package/node_modules/@openclaw/fs-safe/dist/archive-durability.d.ts +24 -0
- package/node_modules/@openclaw/fs-safe/dist/archive-durability.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/archive-durability.js +180 -0
- package/node_modules/@openclaw/fs-safe/dist/archive-entry.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-entry.js +8 -8
- package/node_modules/@openclaw/fs-safe/dist/archive-gzip-tail.d.ts +3 -0
- package/node_modules/@openclaw/fs-safe/dist/archive-gzip-tail.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-gzip-tail.js +33 -8
- package/node_modules/@openclaw/fs-safe/dist/archive-input.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-input.js +14 -8
- package/node_modules/@openclaw/fs-safe/dist/archive-kind.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-kind.js +3 -2
- package/node_modules/@openclaw/fs-safe/dist/archive-merge.d.ts +6 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-merge.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-merge.js +68 -19
- package/node_modules/@openclaw/fs-safe/dist/archive-native.d.ts +1 -0
- package/node_modules/@openclaw/fs-safe/dist/archive-native.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-native.js +15 -25
- package/node_modules/@openclaw/fs-safe/dist/archive-options.d.ts +2 -0
- package/node_modules/@openclaw/fs-safe/dist/archive-options.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-parser.wasm +0 -0
- package/node_modules/@openclaw/fs-safe/dist/archive-plan.js +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-read.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-read.js +128 -109
- package/node_modules/@openclaw/fs-safe/dist/archive-staging.d.ts +6 -3
- package/node_modules/@openclaw/fs-safe/dist/archive-staging.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-staging.js +100 -42
- package/node_modules/@openclaw/fs-safe/dist/archive-tar-inspect.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-tar-inspect.js +4 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-tar-stream.d.ts +11 -4
- package/node_modules/@openclaw/fs-safe/dist/archive-tar-stream.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-tar-stream.js +23 -10
- package/node_modules/@openclaw/fs-safe/dist/archive-tar-wasm.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-tar-wasm.js +18 -14
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-admission.d.ts +2 -2
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-admission.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-admission.js +50 -14
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-directory.d.ts +3 -0
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-directory.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-directory.js +13 -2
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-loader.d.ts +7 -0
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-loader.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-loader.js +64 -0
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-manifest.d.ts +5 -0
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-manifest.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-manifest.js +22 -0
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-names.d.ts +6 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-names.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-names.js +56 -18
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-preflight.d.ts +2 -3
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-preflight.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-preflight.js +4 -35
- package/node_modules/@openclaw/fs-safe/dist/archive.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive.js +25 -13
- package/node_modules/@openclaw/fs-safe/dist/bounded-read.d.ts +12 -0
- package/node_modules/@openclaw/fs-safe/dist/bounded-read.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/bounded-read.js +83 -46
- package/node_modules/@openclaw/fs-safe/dist/clone-metadata.d.ts +19 -0
- package/node_modules/@openclaw/fs-safe/dist/clone-metadata.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/clone-metadata.js +32 -0
- package/node_modules/@openclaw/fs-safe/dist/copy-file-input.d.ts +22 -0
- package/node_modules/@openclaw/fs-safe/dist/copy-file-input.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/copy-file-input.js +71 -0
- package/node_modules/@openclaw/fs-safe/dist/copy-policy.d.ts +3 -0
- package/node_modules/@openclaw/fs-safe/dist/copy-policy.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/copy-policy.js +8 -0
- package/node_modules/@openclaw/fs-safe/dist/copy-publication.d.ts +15 -0
- package/node_modules/@openclaw/fs-safe/dist/copy-publication.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/copy-publication.js +30 -0
- package/node_modules/@openclaw/fs-safe/dist/copy-tree-portable.d.ts +9 -0
- package/node_modules/@openclaw/fs-safe/dist/copy-tree-portable.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/copy-tree-portable.js +222 -0
- package/node_modules/@openclaw/fs-safe/dist/copy.d.ts +16 -0
- package/node_modules/@openclaw/fs-safe/dist/copy.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/copy.js +125 -0
- package/node_modules/@openclaw/fs-safe/dist/darwin-acl.d.ts +4 -0
- package/node_modules/@openclaw/fs-safe/dist/darwin-acl.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/darwin-acl.js +24 -0
- package/node_modules/@openclaw/fs-safe/dist/deny-mutations.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/deny-mutations.js +8 -2
- package/node_modules/@openclaw/fs-safe/dist/device-path.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/device-path.js +5 -3
- package/node_modules/@openclaw/fs-safe/dist/directory-durability.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/directory-durability.js +68 -23
- package/node_modules/@openclaw/fs-safe/dist/directory-entry-path.d.ts +3 -0
- package/node_modules/@openclaw/fs-safe/dist/directory-entry-path.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/directory-entry-path.js +21 -0
- package/node_modules/@openclaw/fs-safe/dist/directory-guard.d.ts +27 -1
- package/node_modules/@openclaw/fs-safe/dist/directory-guard.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/directory-guard.js +145 -17
- package/node_modules/@openclaw/fs-safe/dist/directory-mode-node.d.ts +12 -0
- package/node_modules/@openclaw/fs-safe/dist/directory-mode-node.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/directory-mode-node.js +106 -8
- package/node_modules/@openclaw/fs-safe/dist/durability.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/durability.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/durability.js +1 -1
- package/node_modules/@openclaw/fs-safe/dist/effective-uid.d.ts +2 -0
- package/node_modules/@openclaw/fs-safe/dist/effective-uid.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/effective-uid.js +25 -0
- package/node_modules/@openclaw/fs-safe/dist/error-detail.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/error-detail.js +4 -1
- package/node_modules/@openclaw/fs-safe/dist/file-handle-transfer.d.ts +14 -0
- package/node_modules/@openclaw/fs-safe/dist/file-handle-transfer.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/file-handle-transfer.js +135 -0
- package/node_modules/@openclaw/fs-safe/dist/file-hash.d.ts +9 -2
- package/node_modules/@openclaw/fs-safe/dist/file-hash.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/file-hash.js +147 -40
- package/node_modules/@openclaw/fs-safe/dist/file-lock-sync.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/file-lock-sync.js +44 -10
- package/node_modules/@openclaw/fs-safe/dist/file-lock.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/file-lock.js +29 -9
- package/node_modules/@openclaw/fs-safe/dist/file-observation.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/file-observation.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/file-store-boundary.d.ts +6 -2
- package/node_modules/@openclaw/fs-safe/dist/file-store-boundary.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/file-store-boundary.js +22 -65
- package/node_modules/@openclaw/fs-safe/dist/file-store-copy-source.d.ts +5 -0
- package/node_modules/@openclaw/fs-safe/dist/file-store-copy-source.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/file-store-copy-source.js +31 -0
- package/node_modules/@openclaw/fs-safe/dist/file-store-path.d.ts +3 -0
- package/node_modules/@openclaw/fs-safe/dist/file-store-path.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/file-store-path.js +30 -0
- package/node_modules/@openclaw/fs-safe/dist/file-store-prune.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/file-store-prune.js +15 -5
- package/node_modules/@openclaw/fs-safe/dist/file-store-sync-directory.d.ts +16 -0
- package/node_modules/@openclaw/fs-safe/dist/file-store-sync-directory.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/file-store-sync-directory.js +349 -0
- package/node_modules/@openclaw/fs-safe/dist/file-store-sync-write.d.ts +1 -0
- package/node_modules/@openclaw/fs-safe/dist/file-store-sync-write.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/file-store-sync-write.js +63 -48
- package/node_modules/@openclaw/fs-safe/dist/file-store.d.ts +4 -0
- package/node_modules/@openclaw/fs-safe/dist/file-store.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/file-store.js +23 -47
- package/node_modules/@openclaw/fs-safe/dist/filename.d.ts +1 -0
- package/node_modules/@openclaw/fs-safe/dist/filename.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/filename.js +89 -36
- package/node_modules/@openclaw/fs-safe/dist/fs.js +3 -3
- package/node_modules/@openclaw/fs-safe/dist/guarded-mkdir.d.ts +11 -0
- package/node_modules/@openclaw/fs-safe/dist/guarded-mkdir.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/guarded-mkdir.js +218 -32
- package/node_modules/@openclaw/fs-safe/dist/guarded-mutation.d.ts +2 -0
- package/node_modules/@openclaw/fs-safe/dist/guarded-mutation.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/guarded-mutation.js +9 -5
- package/node_modules/@openclaw/fs-safe/dist/guest-dispatch-python.d.ts +2 -0
- package/node_modules/@openclaw/fs-safe/dist/guest-dispatch-python.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/guest-dispatch-python.js +117 -0
- package/node_modules/@openclaw/fs-safe/dist/guest-native-python.d.ts +4 -0
- package/node_modules/@openclaw/fs-safe/dist/guest-native-python.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/guest-native-python.js +135 -0
- package/node_modules/@openclaw/fs-safe/dist/guest.d.ts +9 -0
- package/node_modules/@openclaw/fs-safe/dist/guest.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/guest.js +424 -0
- package/node_modules/@openclaw/fs-safe/dist/home-dir.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/home-dir.js +81 -16
- package/node_modules/@openclaw/fs-safe/dist/index.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/index.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/install-path.d.ts +6 -0
- package/node_modules/@openclaw/fs-safe/dist/install-path.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/install-path.js +71 -26
- package/node_modules/@openclaw/fs-safe/dist/json-document-store.d.ts +3 -0
- package/node_modules/@openclaw/fs-safe/dist/json-document-store.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/json-document-store.js +1 -0
- package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-directory.js +3 -3
- package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-ownership.d.ts +8 -0
- package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-ownership.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-ownership.js +137 -45
- package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-paths.d.ts +11 -0
- package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-paths.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-paths.js +42 -0
- package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-read.d.ts +6 -0
- package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-read.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-read.js +61 -0
- package/node_modules/@openclaw/fs-safe/dist/json-durable-queue.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/json-durable-queue.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/json-durable-queue.js +107 -152
- package/node_modules/@openclaw/fs-safe/dist/json-store.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/json-store.js +5 -1
- package/node_modules/@openclaw/fs-safe/dist/json.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/json.js +55 -22
- package/node_modules/@openclaw/fs-safe/dist/local-file-access.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/local-file-access.js +4 -0
- package/node_modules/@openclaw/fs-safe/dist/local-file-descriptor.d.ts +17 -0
- package/node_modules/@openclaw/fs-safe/dist/local-file-descriptor.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/local-file-descriptor.js +84 -0
- package/node_modules/@openclaw/fs-safe/dist/local-roots.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/local-roots.js +54 -27
- package/node_modules/@openclaw/fs-safe/dist/move-path-cleanup.d.ts +2 -0
- package/node_modules/@openclaw/fs-safe/dist/move-path-cleanup.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/move-path-cleanup.js +47 -20
- package/node_modules/@openclaw/fs-safe/dist/move-path-stage.d.ts +8 -0
- package/node_modules/@openclaw/fs-safe/dist/move-path-stage.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/move-path-stage.js +56 -0
- package/node_modules/@openclaw/fs-safe/dist/move-path.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/move-path.js +84 -50
- package/node_modules/@openclaw/fs-safe/dist/mutation-authority.d.ts +9 -0
- package/node_modules/@openclaw/fs-safe/dist/mutation-authority.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/mutation-authority.js +36 -0
- package/node_modules/@openclaw/fs-safe/dist/native-binding.d.ts +53 -1
- package/node_modules/@openclaw/fs-safe/dist/native-binding.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/native-binding.js +8 -1
- package/node_modules/@openclaw/fs-safe/dist/native-directory-observation.d.ts +17 -0
- package/node_modules/@openclaw/fs-safe/dist/native-directory-observation.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/native-directory-observation.js +37 -0
- package/node_modules/@openclaw/fs-safe/dist/native-operations.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/native-operations.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/native-operations.js +17 -9
- package/node_modules/@openclaw/fs-safe/dist/native-parent-admission.d.ts +32 -0
- package/node_modules/@openclaw/fs-safe/dist/native-parent-admission.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/native-parent-admission.js +127 -0
- package/node_modules/@openclaw/fs-safe/dist/native-pinned-write-windows.d.ts +0 -1
- package/node_modules/@openclaw/fs-safe/dist/native-pinned-write-windows.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/native-pinned-write-windows.js +27 -16
- package/node_modules/@openclaw/fs-safe/dist/native-pinned-write.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/native-pinned-write.js +315 -41
- package/node_modules/@openclaw/fs-safe/dist/native-staged-file.d.ts +5 -5
- package/node_modules/@openclaw/fs-safe/dist/native-staged-file.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/native-staged-file.js +52 -15
- package/node_modules/@openclaw/fs-safe/dist/native.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/native.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/native.js +7 -2
- package/node_modules/@openclaw/fs-safe/dist/opened-file-failure.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/opened-file-failure.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/opened-file-failure.js +3 -2
- package/node_modules/@openclaw/fs-safe/dist/opened-realpath.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/opened-realpath.js +5 -4
- package/node_modules/@openclaw/fs-safe/dist/output.d.ts +2 -0
- package/node_modules/@openclaw/fs-safe/dist/output.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/output.js +16 -4
- package/node_modules/@openclaw/fs-safe/dist/overwrite-file-handle.d.ts +8 -0
- package/node_modules/@openclaw/fs-safe/dist/overwrite-file-handle.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/overwrite-file-handle.js +46 -0
- package/node_modules/@openclaw/fs-safe/dist/owner-dacl.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/owner-dacl.js +2 -0
- package/node_modules/@openclaw/fs-safe/dist/path-case.d.ts +7 -0
- package/node_modules/@openclaw/fs-safe/dist/path-case.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/path-case.js +136 -0
- package/node_modules/@openclaw/fs-safe/dist/path-policy.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/path-policy.js +7 -2
- package/node_modules/@openclaw/fs-safe/dist/path-prefix.d.ts +7 -0
- package/node_modules/@openclaw/fs-safe/dist/path-prefix.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/path-prefix.js +82 -0
- package/node_modules/@openclaw/fs-safe/dist/path-scope-lexical.d.ts +14 -0
- package/node_modules/@openclaw/fs-safe/dist/path-scope-lexical.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/path-scope-lexical.js +37 -0
- package/node_modules/@openclaw/fs-safe/dist/path-segment-route.d.ts +7 -0
- package/node_modules/@openclaw/fs-safe/dist/path-segment-route.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/path-segment-route.js +24 -0
- package/node_modules/@openclaw/fs-safe/dist/path-suffix-aliases.d.ts +10 -0
- package/node_modules/@openclaw/fs-safe/dist/path-suffix-aliases.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/path-suffix-aliases.js +386 -0
- package/node_modules/@openclaw/fs-safe/dist/path.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/path.js +39 -7
- package/node_modules/@openclaw/fs-safe/dist/permissions-windows.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/permissions-windows.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/permissions-windows.js +99 -56
- package/node_modules/@openclaw/fs-safe/dist/permissions.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/permissions.js +39 -10
- package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-admission.d.ts +25 -0
- package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-admission.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-admission.js +425 -0
- package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-observation.d.ts +34 -0
- package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-observation.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-observation.js +142 -0
- package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-shared-route.d.ts +24 -0
- package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-shared-route.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-shared-route.js +70 -0
- package/node_modules/@openclaw/fs-safe/dist/pinned-open.d.ts +6 -0
- package/node_modules/@openclaw/fs-safe/dist/pinned-open.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/pinned-open.js +29 -9
- package/node_modules/@openclaw/fs-safe/dist/pinned-operation.js +1 -1
- package/node_modules/@openclaw/fs-safe/dist/pinned-write-types.d.ts +75 -0
- package/node_modules/@openclaw/fs-safe/dist/pinned-write-types.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/pinned-write-types.js +1 -0
- package/node_modules/@openclaw/fs-safe/dist/pinned-write.d.ts +7 -29
- package/node_modules/@openclaw/fs-safe/dist/pinned-write.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/pinned-write.js +203 -47
- package/node_modules/@openclaw/fs-safe/dist/positional-read.d.ts +9 -0
- package/node_modules/@openclaw/fs-safe/dist/positional-read.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/positional-read.js +36 -0
- package/node_modules/@openclaw/fs-safe/dist/private-directory.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/private-directory.js +2 -0
- package/node_modules/@openclaw/fs-safe/dist/private-producer-handoff.d.ts +16 -0
- package/node_modules/@openclaw/fs-safe/dist/private-producer-handoff.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/private-producer-handoff.js +272 -0
- package/node_modules/@openclaw/fs-safe/dist/private-temp-workspace.d.ts +2 -39
- package/node_modules/@openclaw/fs-safe/dist/private-temp-workspace.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/private-temp-workspace.js +183 -69
- package/node_modules/@openclaw/fs-safe/dist/publish-copy-stage.d.ts +13 -0
- package/node_modules/@openclaw/fs-safe/dist/publish-copy-stage.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/publish-copy-stage.js +47 -0
- package/node_modules/@openclaw/fs-safe/dist/publish-file.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/publish-file.js +63 -56
- package/node_modules/@openclaw/fs-safe/dist/realpath.d.ts +4 -0
- package/node_modules/@openclaw/fs-safe/dist/realpath.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/realpath.js +43 -0
- package/node_modules/@openclaw/fs-safe/dist/recursive-mkdir-path.d.ts +3 -0
- package/node_modules/@openclaw/fs-safe/dist/recursive-mkdir-path.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/recursive-mkdir-path.js +8 -0
- package/node_modules/@openclaw/fs-safe/dist/regular-file.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/regular-file.js +56 -45
- package/node_modules/@openclaw/fs-safe/dist/replace-directory.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/replace-directory.js +14 -6
- package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-fallback.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-fallback.js +52 -47
- package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-source.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-source.js +17 -17
- package/node_modules/@openclaw/fs-safe/dist/replace-file-mode.d.ts +3 -0
- package/node_modules/@openclaw/fs-safe/dist/replace-file-mode.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/replace-file-mode.js +10 -0
- package/node_modules/@openclaw/fs-safe/dist/replace-file-temp-owner.d.ts +1 -0
- package/node_modules/@openclaw/fs-safe/dist/replace-file-temp-owner.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/replace-file-temp-owner.js +18 -3
- package/node_modules/@openclaw/fs-safe/dist/replace-file.d.ts +1 -0
- package/node_modules/@openclaw/fs-safe/dist/replace-file.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/replace-file.js +43 -32
- package/node_modules/@openclaw/fs-safe/dist/root-boundary.d.ts +29 -0
- package/node_modules/@openclaw/fs-safe/dist/root-boundary.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-boundary.js +182 -0
- package/node_modules/@openclaw/fs-safe/dist/root-context.d.ts +15 -1
- package/node_modules/@openclaw/fs-safe/dist/root-context.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/root-context.js +131 -33
- package/node_modules/@openclaw/fs-safe/dist/root-create-input.d.ts +10 -0
- package/node_modules/@openclaw/fs-safe/dist/root-create-input.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-create-input.js +80 -0
- package/node_modules/@openclaw/fs-safe/dist/root-directory-creation.d.ts +13 -0
- package/node_modules/@openclaw/fs-safe/dist/root-directory-creation.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-directory-creation.js +212 -0
- package/node_modules/@openclaw/fs-safe/dist/root-directory-list.d.ts +38 -0
- package/node_modules/@openclaw/fs-safe/dist/root-directory-list.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-directory-list.js +368 -0
- package/node_modules/@openclaw/fs-safe/dist/root-directory.d.ts +23 -0
- package/node_modules/@openclaw/fs-safe/dist/root-directory.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-directory.js +141 -0
- package/node_modules/@openclaw/fs-safe/dist/root-entries.d.ts +11 -0
- package/node_modules/@openclaw/fs-safe/dist/root-entries.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-entries.js +61 -0
- package/node_modules/@openclaw/fs-safe/dist/root-errors.d.ts +6 -5
- package/node_modules/@openclaw/fs-safe/dist/root-errors.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/root-errors.js +28 -13
- package/node_modules/@openclaw/fs-safe/dist/root-file-final-admission.d.ts +21 -0
- package/node_modules/@openclaw/fs-safe/dist/root-file-final-admission.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-file-final-admission.js +83 -0
- package/node_modules/@openclaw/fs-safe/dist/root-file.d.ts +2 -0
- package/node_modules/@openclaw/fs-safe/dist/root-file.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/root-file.js +111 -24
- package/node_modules/@openclaw/fs-safe/dist/root-impl.d.ts +18 -51
- package/node_modules/@openclaw/fs-safe/dist/root-impl.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/root-impl.js +639 -510
- package/node_modules/@openclaw/fs-safe/dist/root-move-noreplace.d.ts +14 -0
- package/node_modules/@openclaw/fs-safe/dist/root-move-noreplace.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-move-noreplace.js +202 -0
- package/node_modules/@openclaw/fs-safe/dist/root-move-preflight.d.ts +8 -0
- package/node_modules/@openclaw/fs-safe/dist/root-move-preflight.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-move-preflight.js +16 -0
- package/node_modules/@openclaw/fs-safe/dist/root-observed-path.d.ts +9 -0
- package/node_modules/@openclaw/fs-safe/dist/root-observed-path.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-observed-path.js +95 -0
- package/node_modules/@openclaw/fs-safe/dist/root-options.d.ts +77 -0
- package/node_modules/@openclaw/fs-safe/dist/root-options.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-options.js +18 -0
- package/node_modules/@openclaw/fs-safe/dist/root-path-errors.d.ts +12 -0
- package/node_modules/@openclaw/fs-safe/dist/root-path-errors.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-path-errors.js +13 -0
- package/node_modules/@openclaw/fs-safe/dist/root-path-existing.d.ts +7 -0
- package/node_modules/@openclaw/fs-safe/dist/root-path-existing.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/root-path-existing.js +111 -14
- package/node_modules/@openclaw/fs-safe/dist/root-path-observation.d.ts +63 -0
- package/node_modules/@openclaw/fs-safe/dist/root-path-observation.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-path-observation.js +180 -0
- package/node_modules/@openclaw/fs-safe/dist/root-path-stat.d.ts +5 -0
- package/node_modules/@openclaw/fs-safe/dist/root-path-stat.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-path-stat.js +101 -0
- package/node_modules/@openclaw/fs-safe/dist/root-path-symlink.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/root-path-symlink.js +24 -4
- package/node_modules/@openclaw/fs-safe/dist/root-path.d.ts +14 -0
- package/node_modules/@openclaw/fs-safe/dist/root-path.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/root-path.js +322 -220
- package/node_modules/@openclaw/fs-safe/dist/root-paths-lexical.d.ts +9 -0
- package/node_modules/@openclaw/fs-safe/dist/root-paths-lexical.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-paths-lexical.js +22 -0
- package/node_modules/@openclaw/fs-safe/dist/root-paths.d.ts +3 -29
- package/node_modules/@openclaw/fs-safe/dist/root-paths.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/root-paths.js +89 -174
- package/node_modules/@openclaw/fs-safe/dist/root-read-admission.d.ts +26 -0
- package/node_modules/@openclaw/fs-safe/dist/root-read-admission.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-read-admission.js +94 -0
- package/node_modules/@openclaw/fs-safe/dist/root-remove-identity.d.ts +15 -0
- package/node_modules/@openclaw/fs-safe/dist/root-remove-identity.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-remove-identity.js +89 -0
- package/node_modules/@openclaw/fs-safe/dist/root-remove-receipt.d.ts +17 -0
- package/node_modules/@openclaw/fs-safe/dist/root-remove-receipt.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-remove-receipt.js +37 -0
- package/node_modules/@openclaw/fs-safe/dist/root-remove.d.ts +6 -0
- package/node_modules/@openclaw/fs-safe/dist/root-remove.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-remove.js +448 -0
- package/node_modules/@openclaw/fs-safe/dist/root-symlink-policy.d.ts +14 -0
- package/node_modules/@openclaw/fs-safe/dist/root-symlink-policy.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-symlink-policy.js +34 -0
- package/node_modules/@openclaw/fs-safe/dist/root-walk.d.ts +5 -4
- package/node_modules/@openclaw/fs-safe/dist/root-walk.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/root-walk.js +100 -50
- package/node_modules/@openclaw/fs-safe/dist/root-write-admission.d.ts +68 -0
- package/node_modules/@openclaw/fs-safe/dist/root-write-admission.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-write-admission.js +322 -0
- package/node_modules/@openclaw/fs-safe/dist/root-write-compatibility.d.ts +13 -0
- package/node_modules/@openclaw/fs-safe/dist/root-write-compatibility.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-write-compatibility.js +74 -0
- package/node_modules/@openclaw/fs-safe/dist/root-write-complete-parent.d.ts +42 -0
- package/node_modules/@openclaw/fs-safe/dist/root-write-complete-parent.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-write-complete-parent.js +195 -0
- package/node_modules/@openclaw/fs-safe/dist/root-write-mode.d.ts +2 -0
- package/node_modules/@openclaw/fs-safe/dist/root-write-mode.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/root-write-mode.js +22 -11
- package/node_modules/@openclaw/fs-safe/dist/root-write-publication.d.ts +24 -0
- package/node_modules/@openclaw/fs-safe/dist/root-write-publication.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/root-write-publication.js +85 -0
- package/node_modules/@openclaw/fs-safe/dist/root-write-verification.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/root-write-verification.js +18 -7
- package/node_modules/@openclaw/fs-safe/dist/root.d.ts +4 -1
- package/node_modules/@openclaw/fs-safe/dist/root.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/safe-path-segment.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/safe-path-segment.js +3 -1
- package/node_modules/@openclaw/fs-safe/dist/secret-file.d.ts +1 -0
- package/node_modules/@openclaw/fs-safe/dist/secret-file.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/secret-file.js +65 -25
- package/node_modules/@openclaw/fs-safe/dist/secret-read-async.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/secret-read-async.js +22 -16
- package/node_modules/@openclaw/fs-safe/dist/secret-read-policy.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/secret-read-policy.js +5 -1
- package/node_modules/@openclaw/fs-safe/dist/secure-file-windows.d.ts +10 -0
- package/node_modules/@openclaw/fs-safe/dist/secure-file-windows.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/secure-file-windows.js +186 -0
- package/node_modules/@openclaw/fs-safe/dist/secure-file.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/secure-file.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/secure-file.js +137 -22
- package/node_modules/@openclaw/fs-safe/dist/secure-temp-dir.d.ts +6 -3
- package/node_modules/@openclaw/fs-safe/dist/secure-temp-dir.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/secure-temp-dir.js +122 -101
- package/node_modules/@openclaw/fs-safe/dist/secure-temp-repair.d.ts +35 -0
- package/node_modules/@openclaw/fs-safe/dist/secure-temp-repair.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/secure-temp-repair.js +106 -0
- package/node_modules/@openclaw/fs-safe/dist/sibling-staged-file.d.ts +4 -1
- package/node_modules/@openclaw/fs-safe/dist/sibling-staged-file.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/sibling-staged-file.js +210 -45
- package/node_modules/@openclaw/fs-safe/dist/sibling-temp.d.ts +2 -0
- package/node_modules/@openclaw/fs-safe/dist/sibling-temp.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/sibling-temp.js +43 -17
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-acquire.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-acquire.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-acquire.js +64 -21
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-policy.d.ts +2 -0
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-policy.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-policy.js +22 -3
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-reclaim.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-reclaim.js +16 -4
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-root.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-root.js +4 -2
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock.js +4 -4
- package/node_modules/@openclaw/fs-safe/dist/staged-directory.d.ts +14 -5
- package/node_modules/@openclaw/fs-safe/dist/staged-directory.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/staged-directory.js +58 -6
- package/node_modules/@openclaw/fs-safe/dist/standalone-publication-path.d.ts +2 -0
- package/node_modules/@openclaw/fs-safe/dist/standalone-publication-path.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/standalone-publication-path.js +6 -0
- package/node_modules/@openclaw/fs-safe/dist/stat-observation.d.ts +11 -0
- package/node_modules/@openclaw/fs-safe/dist/stat-observation.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/stat-observation.js +64 -0
- package/node_modules/@openclaw/fs-safe/dist/strict-file-identity.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/strict-file-identity.js +39 -2
- package/node_modules/@openclaw/fs-safe/dist/symlink-parents.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/symlink-parents.js +7 -2
- package/node_modules/@openclaw/fs-safe/dist/temp-cleanup.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/temp-cleanup.js +3 -2
- package/node_modules/@openclaw/fs-safe/dist/temp-target.d.ts +16 -12
- package/node_modules/@openclaw/fs-safe/dist/temp-target.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/temp-target.js +154 -14
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-admission.d.ts +22 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-admission.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-admission.js +374 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-child-admission.d.ts +13 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-child-admission.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-child-admission.js +95 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-descriptor.d.ts +48 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-descriptor.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-descriptor.js +363 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-identity.d.ts +15 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-identity.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-identity.js +41 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-owner.d.ts +7 -6
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-owner.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-owner.js +121 -61
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-permissions.d.ts +4 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-permissions.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-permissions.js +32 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-types.d.ts +40 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-types.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-types.js +1 -0
- package/node_modules/@openclaw/fs-safe/dist/temp.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/temp.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/temp.js +1 -1
- package/node_modules/@openclaw/fs-safe/dist/test-hooks.d.ts +7 -0
- package/node_modules/@openclaw/fs-safe/dist/test-hooks.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/text-atomic.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/text-atomic.js +3 -1
- package/node_modules/@openclaw/fs-safe/dist/timing.d.ts +1 -0
- package/node_modules/@openclaw/fs-safe/dist/timing.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/timing.js +25 -6
- package/node_modules/@openclaw/fs-safe/dist/trash.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/trash.js +61 -13
- package/node_modules/@openclaw/fs-safe/dist/unicode-path.d.ts +3 -0
- package/node_modules/@openclaw/fs-safe/dist/unicode-path.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/unicode-path.js +13 -0
- package/node_modules/@openclaw/fs-safe/dist/walk.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/walk.js +25 -40
- package/node_modules/@openclaw/fs-safe/dist/windows-owner.d.ts +9 -12
- package/node_modules/@openclaw/fs-safe/dist/windows-owner.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/windows-owner.js +29 -58
- package/node_modules/@openclaw/fs-safe/dist/windows-path-alias.d.ts +39 -0
- package/node_modules/@openclaw/fs-safe/dist/windows-path-alias.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/windows-path-alias.js +153 -0
- package/node_modules/@openclaw/fs-safe/dist/write-file-handle.d.ts +7 -0
- package/node_modules/@openclaw/fs-safe/dist/write-file-handle.d.ts.map +1 -0
- package/node_modules/@openclaw/fs-safe/dist/write-file-handle.js +26 -0
- package/node_modules/@openclaw/fs-safe/dist/write-open-flags.d.ts.map +1 -1
- package/node_modules/@openclaw/fs-safe/dist/write-open-flags.js +1 -2
- package/node_modules/@openclaw/fs-safe/docs/advanced.md +50 -5
- package/node_modules/@openclaw/fs-safe/docs/archive.md +107 -12
- package/node_modules/@openclaw/fs-safe/docs/atomic.md +77 -5
- package/node_modules/@openclaw/fs-safe/docs/config.md +1 -0
- package/node_modules/@openclaw/fs-safe/docs/contributing.md +40 -2
- package/node_modules/@openclaw/fs-safe/docs/copy.md +158 -0
- package/node_modules/@openclaw/fs-safe/docs/directory-identity.md +85 -0
- package/node_modules/@openclaw/fs-safe/docs/durability.md +71 -5
- package/node_modules/@openclaw/fs-safe/docs/entries.md +109 -0
- package/node_modules/@openclaw/fs-safe/docs/errors.md +18 -10
- package/node_modules/@openclaw/fs-safe/docs/file-store.md +93 -6
- package/node_modules/@openclaw/fs-safe/docs/filename.md +21 -7
- package/node_modules/@openclaw/fs-safe/docs/guest.md +146 -0
- package/node_modules/@openclaw/fs-safe/docs/in-place-write.md +81 -0
- package/node_modules/@openclaw/fs-safe/docs/index.md +2 -0
- package/node_modules/@openclaw/fs-safe/docs/install-path.md +61 -15
- package/node_modules/@openclaw/fs-safe/docs/install.md +42 -7
- package/node_modules/@openclaw/fs-safe/docs/json-store.md +15 -1
- package/node_modules/@openclaw/fs-safe/docs/json.md +11 -0
- package/node_modules/@openclaw/fs-safe/docs/local-roots.md +8 -1
- package/node_modules/@openclaw/fs-safe/docs/mutation-policy-proof.md +65 -0
- package/node_modules/@openclaw/fs-safe/docs/native-helper.md +51 -12
- package/node_modules/@openclaw/fs-safe/docs/native.md +63 -10
- package/node_modules/@openclaw/fs-safe/docs/output.md +55 -7
- package/node_modules/@openclaw/fs-safe/docs/path-case.md +64 -0
- package/node_modules/@openclaw/fs-safe/docs/path-prefix.md +64 -0
- package/node_modules/@openclaw/fs-safe/docs/path-scope.md +1 -1
- package/node_modules/@openclaw/fs-safe/docs/path-suffix-aliases.md +159 -0
- package/node_modules/@openclaw/fs-safe/docs/path.md +12 -1
- package/node_modules/@openclaw/fs-safe/docs/permissions.md +55 -11
- package/node_modules/@openclaw/fs-safe/docs/positional-read.md +63 -0
- package/node_modules/@openclaw/fs-safe/docs/private-file-store.md +14 -0
- package/node_modules/@openclaw/fs-safe/docs/public-api.md +45 -2
- package/node_modules/@openclaw/fs-safe/docs/quickstart.md +1 -1
- package/node_modules/@openclaw/fs-safe/docs/reading.md +14 -1
- package/node_modules/@openclaw/fs-safe/docs/root.md +219 -12
- package/node_modules/@openclaw/fs-safe/docs/secret-file.md +9 -0
- package/node_modules/@openclaw/fs-safe/docs/secure-file.md +23 -16
- package/node_modules/@openclaw/fs-safe/docs/security-model.md +90 -9
- package/node_modules/@openclaw/fs-safe/docs/sidecar-lock.md +42 -4
- package/node_modules/@openclaw/fs-safe/docs/store.md +27 -2
- package/node_modules/@openclaw/fs-safe/docs/temp.md +283 -26
- package/node_modules/@openclaw/fs-safe/docs/test-hooks.md +14 -0
- package/node_modules/@openclaw/fs-safe/docs/timing.md +2 -0
- package/node_modules/@openclaw/fs-safe/docs/types.md +19 -12
- package/node_modules/@openclaw/fs-safe/docs/walk.md +54 -5
- package/node_modules/@openclaw/fs-safe/docs/writing.md +211 -11
- package/node_modules/@openclaw/fs-safe/package.json +24 -13
- package/node_modules/@openclaw/fs-safe-darwin-arm64/fs-safe-native.node +0 -0
- package/node_modules/@openclaw/fs-safe-darwin-arm64/package.json +1 -1
- package/node_modules/@openclaw/fs-safe-darwin-x64/fs-safe-native.node +0 -0
- package/node_modules/@openclaw/fs-safe-darwin-x64/package.json +1 -1
- package/node_modules/@openclaw/fs-safe-linux-arm64-gnu/fs-safe-native.node +0 -0
- package/node_modules/@openclaw/fs-safe-linux-arm64-gnu/package.json +1 -1
- package/node_modules/@openclaw/fs-safe-linux-arm64-musl/fs-safe-native.node +0 -0
- package/node_modules/@openclaw/fs-safe-linux-arm64-musl/package.json +1 -1
- package/node_modules/@openclaw/fs-safe-linux-x64-gnu/fs-safe-native.node +0 -0
- package/node_modules/@openclaw/fs-safe-linux-x64-gnu/package.json +1 -1
- package/node_modules/@openclaw/fs-safe-linux-x64-musl/fs-safe-native.node +0 -0
- package/node_modules/@openclaw/fs-safe-linux-x64-musl/package.json +1 -1
- package/node_modules/@openclaw/fs-safe-win32-x64-msvc/fs-safe-native.node +0 -0
- package/node_modules/@openclaw/fs-safe-win32-x64-msvc/package.json +1 -1
- package/node_modules/jszip/.github/FUNDING.yml +1 -0
- package/node_modules/jszip/.github/actions/setup/action.yml +23 -0
- package/node_modules/jszip/.github/workflows/benchmark.yml +38 -0
- package/node_modules/jszip/.github/workflows/main.yml +55 -0
- package/node_modules/jszip/CHANGES.md +6 -0
- package/node_modules/jszip/dist/jszip.js +28 -19
- package/node_modules/jszip/dist/jszip.min.js +2 -2
- package/node_modules/jszip/index.d.ts +14 -0
- package/node_modules/jszip/lib/index.js +1 -1
- package/node_modules/jszip/lib/utils.js +26 -17
- package/node_modules/jszip/package.json +2 -2
- package/node_modules/p-limit/index.d.ts +1 -1
- package/node_modules/p-limit/index.js +6 -1
- package/node_modules/p-limit/package.json +1 -1
- package/node_modules/p-limit/readme.md +8 -0
- package/node_modules/zod/README.md +27 -0
- package/node_modules/zod/compile.cjs +77 -0
- package/node_modules/zod/compile.d.cts +1 -0
- package/node_modules/zod/compile.d.ts +1 -0
- package/node_modules/zod/compile.js +52 -0
- package/node_modules/zod/index.cjs +2 -2
- package/node_modules/zod/index.d.cts +1 -2
- package/node_modules/zod/index.d.ts +1 -2
- package/node_modules/zod/index.js +5 -2
- package/node_modules/zod/package.json +13 -2
- package/node_modules/zod/src/compile.ts +56 -0
- package/node_modules/zod/src/index.ts +5 -2
- package/node_modules/zod/src/v3/ZodError.ts +22 -12
- package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
- package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
- package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
- package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
- package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
- package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
- package/node_modules/zod/src/v3/types.ts +5 -5
- package/node_modules/zod/src/v4/classic/checks.ts +1 -0
- package/node_modules/zod/src/v4/classic/compat.ts +26 -18
- package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
- package/node_modules/zod/src/v4/classic/errors.ts +59 -44
- package/node_modules/zod/src/v4/classic/external.ts +12 -9
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +140 -78
- package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
- package/node_modules/zod/src/v4/classic/index.ts +2 -2
- package/node_modules/zod/src/v4/classic/iso.ts +2 -72
- package/node_modules/zod/src/v4/classic/parse.ts +10 -4
- package/node_modules/zod/src/v4/classic/schemas.ts +452 -262
- package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
- package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +135 -0
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +30 -1
- package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
- package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +720 -0
- package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
- package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
- package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
- package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
- package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
- package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +155 -13
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +11 -0
- package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +274 -6
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +425 -10
- package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
- package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
- package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
- package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
- package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +281 -0
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +47 -0
- package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
- package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +183 -0
- package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
- package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
- package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +245 -12
- package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +234 -0
- package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
- package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
- package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
- package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
- package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +33 -2
- package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +127 -5
- package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +11 -2
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1585 -173
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
- package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
- package/node_modules/zod/src/v4/classic/tests/validate.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
- package/node_modules/zod/src/v4/core/api.ts +48 -12
- package/node_modules/zod/src/v4/core/checks.ts +57 -44
- package/node_modules/zod/src/v4/core/compile.ts +2188 -0
- package/node_modules/zod/src/v4/core/core.ts +98 -19
- package/node_modules/zod/src/v4/core/doc.ts +11 -7
- package/node_modules/zod/src/v4/core/errors.ts +115 -24
- package/node_modules/zod/src/v4/core/index.ts +3 -0
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +6 -1
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +257 -93
- package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
- package/node_modules/zod/src/v4/core/memoizer.ts +284 -0
- package/node_modules/zod/src/v4/core/parse.ts +131 -38
- package/node_modules/zod/src/v4/core/regexes.ts +30 -13
- package/node_modules/zod/src/v4/core/registries.ts +2 -2
- package/node_modules/zod/src/v4/core/schemas.ts +759 -461
- package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
- package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
- package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
- package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
- package/node_modules/zod/src/v4/core/tests/compile.test.ts +1639 -0
- package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
- package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
- package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
- package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
- package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
- package/node_modules/zod/src/v4/core/to-json-schema.ts +275 -42
- package/node_modules/zod/src/v4/core/util.ts +268 -42
- package/node_modules/zod/src/v4/core/versions.ts +2 -2
- package/node_modules/zod/src/v4/core/visit.ts +193 -0
- package/node_modules/zod/src/v4/index.ts +3 -3
- package/node_modules/zod/src/v4/locales/ar.ts +3 -0
- package/node_modules/zod/src/v4/locales/az.ts +3 -0
- package/node_modules/zod/src/v4/locales/be.ts +10 -0
- package/node_modules/zod/src/v4/locales/bg.ts +3 -0
- package/node_modules/zod/src/v4/locales/bn.ts +121 -0
- package/node_modules/zod/src/v4/locales/ca.ts +3 -0
- package/node_modules/zod/src/v4/locales/ckb.ts +138 -0
- package/node_modules/zod/src/v4/locales/cs.ts +3 -0
- package/node_modules/zod/src/v4/locales/da.ts +5 -2
- package/node_modules/zod/src/v4/locales/de.ts +3 -0
- package/node_modules/zod/src/v4/locales/el.ts +1 -0
- package/node_modules/zod/src/v4/locales/en.ts +15 -4
- package/node_modules/zod/src/v4/locales/eo.ts +3 -0
- package/node_modules/zod/src/v4/locales/es.ts +2 -0
- package/node_modules/zod/src/v4/locales/fa.ts +3 -0
- package/node_modules/zod/src/v4/locales/fi.ts +3 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +3 -0
- package/node_modules/zod/src/v4/locales/fr.ts +19 -14
- package/node_modules/zod/src/v4/locales/gu.ts +121 -0
- package/node_modules/zod/src/v4/locales/he.ts +6 -1
- package/node_modules/zod/src/v4/locales/hi.ts +124 -0
- package/node_modules/zod/src/v4/locales/hr.ts +2 -0
- package/node_modules/zod/src/v4/locales/hu.ts +3 -0
- package/node_modules/zod/src/v4/locales/hy.ts +9 -0
- package/node_modules/zod/src/v4/locales/id.ts +3 -0
- package/node_modules/zod/src/v4/locales/index.ts +10 -0
- package/node_modules/zod/src/v4/locales/is.ts +3 -0
- package/node_modules/zod/src/v4/locales/it.ts +3 -0
- package/node_modules/zod/src/v4/locales/ja.ts +3 -0
- package/node_modules/zod/src/v4/locales/ka.ts +3 -0
- package/node_modules/zod/src/v4/locales/km.ts +3 -0
- package/node_modules/zod/src/v4/locales/kn.ts +124 -0
- package/node_modules/zod/src/v4/locales/ko.ts +3 -0
- package/node_modules/zod/src/v4/locales/lt.ts +2 -0
- package/node_modules/zod/src/v4/locales/mk.ts +3 -0
- package/node_modules/zod/src/v4/locales/ms.ts +3 -0
- package/node_modules/zod/src/v4/locales/ne.ts +126 -0
- package/node_modules/zod/src/v4/locales/nl.ts +3 -0
- package/node_modules/zod/src/v4/locales/nn.ts +119 -0
- package/node_modules/zod/src/v4/locales/no.ts +5 -2
- package/node_modules/zod/src/v4/locales/ota.ts +3 -0
- package/node_modules/zod/src/v4/locales/pl.ts +3 -0
- package/node_modules/zod/src/v4/locales/ps.ts +3 -0
- package/node_modules/zod/src/v4/locales/pt-BR.ts +159 -0
- package/node_modules/zod/src/v4/locales/pt.ts +99 -58
- package/node_modules/zod/src/v4/locales/ro.ts +1 -0
- package/node_modules/zod/src/v4/locales/ru.ts +10 -0
- package/node_modules/zod/src/v4/locales/sk.ts +121 -0
- package/node_modules/zod/src/v4/locales/sl.ts +3 -0
- package/node_modules/zod/src/v4/locales/sv.ts +5 -2
- package/node_modules/zod/src/v4/locales/ta.ts +3 -0
- package/node_modules/zod/src/v4/locales/th.ts +3 -0
- package/node_modules/zod/src/v4/locales/tk.ts +111 -0
- package/node_modules/zod/src/v4/locales/tr.ts +3 -0
- package/node_modules/zod/src/v4/locales/uk.ts +3 -0
- package/node_modules/zod/src/v4/locales/ur.ts +3 -0
- package/node_modules/zod/src/v4/locales/uz.ts +1 -0
- package/node_modules/zod/src/v4/locales/vi.ts +3 -0
- package/node_modules/zod/src/v4/locales/yo.ts +3 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +3 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +3 -0
- package/node_modules/zod/src/v4/mini/checks.ts +1 -0
- package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
- package/node_modules/zod/src/v4/mini/external.ts +10 -1
- package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
- package/node_modules/zod/src/v4/mini/parse.ts +2 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +135 -56
- package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
- package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
- package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
- package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
- package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
- package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +72 -5
- package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +21 -0
- package/node_modules/zod/v3/ZodError.cjs +22 -12
- package/node_modules/zod/v3/ZodError.d.cts +1 -1
- package/node_modules/zod/v3/ZodError.d.ts +1 -1
- package/node_modules/zod/v3/ZodError.js +22 -12
- package/node_modules/zod/v3/types.cjs +7 -5
- package/node_modules/zod/v3/types.js +7 -5
- package/node_modules/zod/v4/classic/checks.cjs +2 -1
- package/node_modules/zod/v4/classic/checks.d.cts +1 -1
- package/node_modules/zod/v4/classic/checks.d.ts +1 -1
- package/node_modules/zod/v4/classic/checks.js +1 -1
- package/node_modules/zod/v4/classic/compat.d.cts +9 -11
- package/node_modules/zod/v4/classic/compat.d.ts +9 -11
- package/node_modules/zod/v4/classic/deep-partial.cjs +39 -0
- package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.js +13 -0
- package/node_modules/zod/v4/classic/errors.cjs +43 -34
- package/node_modules/zod/v4/classic/errors.d.cts +3 -4
- package/node_modules/zod/v4/classic/errors.d.ts +3 -4
- package/node_modules/zod/v4/classic/errors.js +43 -34
- package/node_modules/zod/v4/classic/external.cjs +30 -27
- package/node_modules/zod/v4/classic/external.d.cts +5 -2
- package/node_modules/zod/v4/classic/external.d.ts +5 -2
- package/node_modules/zod/v4/classic/external.js +5 -8
- package/node_modules/zod/v4/classic/from-json-schema.cjs +136 -75
- package/node_modules/zod/v4/classic/from-json-schema.js +136 -75
- package/node_modules/zod/v4/classic/in-out.cjs +63 -0
- package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
- package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
- package/node_modules/zod/v4/classic/in-out.js +36 -0
- package/node_modules/zod/v4/classic/index.cjs +2 -2
- package/node_modules/zod/v4/classic/index.d.cts +1 -2
- package/node_modules/zod/v4/classic/index.d.ts +1 -2
- package/node_modules/zod/v4/classic/index.js +2 -2
- package/node_modules/zod/v4/classic/iso.cjs +11 -22
- package/node_modules/zod/v4/classic/iso.d.cts +2 -17
- package/node_modules/zod/v4/classic/iso.d.ts +2 -17
- package/node_modules/zod/v4/classic/iso.js +2 -17
- package/node_modules/zod/v4/classic/parse.cjs +4 -1
- package/node_modules/zod/v4/classic/parse.d.cts +17 -4
- package/node_modules/zod/v4/classic/parse.d.ts +17 -4
- package/node_modules/zod/v4/classic/parse.js +1 -0
- package/node_modules/zod/v4/classic/schemas.cjs +498 -398
- package/node_modules/zod/v4/classic/schemas.d.cts +53 -18
- package/node_modules/zod/v4/classic/schemas.d.ts +53 -18
- package/node_modules/zod/v4/classic/schemas.js +492 -396
- package/node_modules/zod/v4/core/api.cjs +23 -4
- package/node_modules/zod/v4/core/api.d.cts +13 -9
- package/node_modules/zod/v4/core/api.d.ts +13 -9
- package/node_modules/zod/v4/core/api.js +21 -4
- package/node_modules/zod/v4/core/checks.cjs +37 -31
- package/node_modules/zod/v4/core/checks.d.cts +13 -13
- package/node_modules/zod/v4/core/checks.d.ts +13 -13
- package/node_modules/zod/v4/core/checks.js +37 -31
- package/node_modules/zod/v4/core/compile.cjs +1813 -0
- package/node_modules/zod/v4/core/compile.d.cts +51 -0
- package/node_modules/zod/v4/core/compile.d.ts +51 -0
- package/node_modules/zod/v4/core/compile.js +1783 -0
- package/node_modules/zod/v4/core/core.cjs +81 -18
- package/node_modules/zod/v4/core/core.d.cts +16 -4
- package/node_modules/zod/v4/core/core.d.ts +16 -4
- package/node_modules/zod/v4/core/core.js +82 -19
- package/node_modules/zod/v4/core/doc.cjs +5 -7
- package/node_modules/zod/v4/core/doc.d.cts +3 -1
- package/node_modules/zod/v4/core/doc.d.ts +3 -1
- package/node_modules/zod/v4/core/doc.js +5 -7
- package/node_modules/zod/v4/core/errors.cjs +110 -25
- package/node_modules/zod/v4/core/errors.d.cts +4 -0
- package/node_modules/zod/v4/core/errors.d.ts +4 -0
- package/node_modules/zod/v4/core/errors.js +110 -25
- package/node_modules/zod/v4/core/index.cjs +5 -1
- package/node_modules/zod/v4/core/index.d.cts +3 -0
- package/node_modules/zod/v4/core/index.d.ts +3 -0
- package/node_modules/zod/v4/core/index.js +3 -0
- package/node_modules/zod/v4/core/json-schema-generator.cjs +4 -0
- package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.js +4 -0
- package/node_modules/zod/v4/core/json-schema-processors.cjs +264 -95
- package/node_modules/zod/v4/core/json-schema-processors.js +243 -97
- package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
- package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
- package/node_modules/zod/v4/core/memoizer.cjs +272 -0
- package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
- package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
- package/node_modules/zod/v4/core/memoizer.js +265 -0
- package/node_modules/zod/v4/core/parse.cjs +96 -34
- package/node_modules/zod/v4/core/parse.d.cts +14 -11
- package/node_modules/zod/v4/core/parse.d.ts +14 -11
- package/node_modules/zod/v4/core/parse.js +94 -33
- package/node_modules/zod/v4/core/regexes.cjs +27 -15
- package/node_modules/zod/v4/core/regexes.d.cts +2 -0
- package/node_modules/zod/v4/core/regexes.d.ts +2 -0
- package/node_modules/zod/v4/core/regexes.js +24 -13
- package/node_modules/zod/v4/core/registries.js +2 -2
- package/node_modules/zod/v4/core/schemas.cjs +537 -326
- package/node_modules/zod/v4/core/schemas.d.cts +100 -31
- package/node_modules/zod/v4/core/schemas.d.ts +100 -31
- package/node_modules/zod/v4/core/schemas.js +526 -325
- package/node_modules/zod/v4/core/to-json-schema.cjs +242 -39
- package/node_modules/zod/v4/core/to-json-schema.d.cts +42 -3
- package/node_modules/zod/v4/core/to-json-schema.d.ts +42 -3
- package/node_modules/zod/v4/core/to-json-schema.js +241 -39
- package/node_modules/zod/v4/core/util.cjs +212 -31
- package/node_modules/zod/v4/core/util.d.cts +58 -1
- package/node_modules/zod/v4/core/util.d.ts +58 -1
- package/node_modules/zod/v4/core/util.js +202 -30
- package/node_modules/zod/v4/core/versions.cjs +2 -2
- package/node_modules/zod/v4/core/versions.d.cts +1 -1
- package/node_modules/zod/v4/core/versions.d.ts +1 -1
- package/node_modules/zod/v4/core/versions.js +2 -2
- package/node_modules/zod/v4/core/visit.cjs +195 -0
- package/node_modules/zod/v4/core/visit.d.cts +30 -0
- package/node_modules/zod/v4/core/visit.d.ts +30 -0
- package/node_modules/zod/v4/core/visit.js +169 -0
- package/node_modules/zod/v4/index.cjs +15 -5
- package/node_modules/zod/v4/index.d.cts +2 -2
- package/node_modules/zod/v4/index.d.ts +2 -2
- package/node_modules/zod/v4/index.js +3 -2
- package/node_modules/zod/v4/locales/ar.cjs +3 -0
- package/node_modules/zod/v4/locales/ar.js +3 -0
- package/node_modules/zod/v4/locales/az.cjs +3 -0
- package/node_modules/zod/v4/locales/az.js +3 -0
- package/node_modules/zod/v4/locales/be.cjs +10 -0
- package/node_modules/zod/v4/locales/be.js +10 -0
- package/node_modules/zod/v4/locales/bg.cjs +3 -0
- package/node_modules/zod/v4/locales/bg.js +3 -0
- package/node_modules/zod/v4/locales/bn.cjs +138 -0
- package/node_modules/zod/v4/locales/bn.d.cts +5 -0
- package/node_modules/zod/v4/locales/bn.d.ts +4 -0
- package/node_modules/zod/v4/locales/bn.js +111 -0
- package/node_modules/zod/v4/locales/ca.cjs +3 -0
- package/node_modules/zod/v4/locales/ca.js +3 -0
- package/node_modules/zod/v4/locales/ckb.cjs +158 -0
- package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
- package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
- package/node_modules/zod/v4/locales/ckb.js +131 -0
- package/node_modules/zod/v4/locales/cs.cjs +3 -0
- package/node_modules/zod/v4/locales/cs.js +3 -0
- package/node_modules/zod/v4/locales/da.cjs +5 -2
- package/node_modules/zod/v4/locales/da.js +5 -2
- package/node_modules/zod/v4/locales/de.cjs +3 -0
- package/node_modules/zod/v4/locales/de.js +3 -0
- package/node_modules/zod/v4/locales/el.cjs +1 -0
- package/node_modules/zod/v4/locales/el.js +1 -0
- package/node_modules/zod/v4/locales/en.cjs +14 -4
- package/node_modules/zod/v4/locales/en.js +14 -4
- package/node_modules/zod/v4/locales/eo.cjs +3 -0
- package/node_modules/zod/v4/locales/eo.js +3 -0
- package/node_modules/zod/v4/locales/es.cjs +2 -0
- package/node_modules/zod/v4/locales/es.js +2 -0
- package/node_modules/zod/v4/locales/fa.cjs +3 -0
- package/node_modules/zod/v4/locales/fa.js +3 -0
- package/node_modules/zod/v4/locales/fi.cjs +3 -0
- package/node_modules/zod/v4/locales/fi.js +3 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +3 -0
- package/node_modules/zod/v4/locales/fr-CA.js +3 -0
- package/node_modules/zod/v4/locales/fr.cjs +16 -14
- package/node_modules/zod/v4/locales/fr.js +16 -14
- package/node_modules/zod/v4/locales/gu.cjs +138 -0
- package/node_modules/zod/v4/locales/gu.d.cts +5 -0
- package/node_modules/zod/v4/locales/gu.d.ts +4 -0
- package/node_modules/zod/v4/locales/gu.js +111 -0
- package/node_modules/zod/v4/locales/he.cjs +5 -0
- package/node_modules/zod/v4/locales/he.js +5 -0
- package/node_modules/zod/v4/locales/hi.cjs +136 -0
- package/node_modules/zod/v4/locales/hi.d.cts +5 -0
- package/node_modules/zod/v4/locales/hi.d.ts +4 -0
- package/node_modules/zod/v4/locales/hi.js +109 -0
- package/node_modules/zod/v4/locales/hr.cjs +2 -0
- package/node_modules/zod/v4/locales/hr.js +2 -0
- package/node_modules/zod/v4/locales/hu.cjs +3 -0
- package/node_modules/zod/v4/locales/hu.js +3 -0
- package/node_modules/zod/v4/locales/hy.cjs +9 -0
- package/node_modules/zod/v4/locales/hy.js +9 -0
- package/node_modules/zod/v4/locales/id.cjs +3 -0
- package/node_modules/zod/v4/locales/id.js +3 -0
- package/node_modules/zod/v4/locales/index.cjs +22 -2
- package/node_modules/zod/v4/locales/index.d.cts +10 -0
- package/node_modules/zod/v4/locales/index.d.ts +10 -0
- package/node_modules/zod/v4/locales/index.js +10 -0
- package/node_modules/zod/v4/locales/is.cjs +3 -0
- package/node_modules/zod/v4/locales/is.js +3 -0
- package/node_modules/zod/v4/locales/it.cjs +3 -0
- package/node_modules/zod/v4/locales/it.js +3 -0
- package/node_modules/zod/v4/locales/ja.cjs +3 -0
- package/node_modules/zod/v4/locales/ja.js +3 -0
- package/node_modules/zod/v4/locales/ka.cjs +3 -0
- package/node_modules/zod/v4/locales/ka.js +3 -0
- package/node_modules/zod/v4/locales/km.cjs +3 -0
- package/node_modules/zod/v4/locales/km.js +3 -0
- package/node_modules/zod/v4/locales/kn.cjs +141 -0
- package/node_modules/zod/v4/locales/kn.d.cts +5 -0
- package/node_modules/zod/v4/locales/kn.d.ts +4 -0
- package/node_modules/zod/v4/locales/kn.js +114 -0
- package/node_modules/zod/v4/locales/ko.cjs +3 -0
- package/node_modules/zod/v4/locales/ko.js +3 -0
- package/node_modules/zod/v4/locales/lt.cjs +2 -0
- package/node_modules/zod/v4/locales/lt.js +2 -0
- package/node_modules/zod/v4/locales/mk.cjs +3 -0
- package/node_modules/zod/v4/locales/mk.js +3 -0
- package/node_modules/zod/v4/locales/ms.cjs +3 -0
- package/node_modules/zod/v4/locales/ms.js +3 -0
- package/node_modules/zod/v4/locales/ne.cjs +136 -0
- package/node_modules/zod/v4/locales/ne.d.cts +5 -0
- package/node_modules/zod/v4/locales/ne.d.ts +4 -0
- package/node_modules/zod/v4/locales/ne.js +109 -0
- package/node_modules/zod/v4/locales/nl.cjs +3 -0
- package/node_modules/zod/v4/locales/nl.js +3 -0
- package/node_modules/zod/v4/locales/nn.cjs +138 -0
- package/node_modules/zod/v4/locales/nn.d.cts +5 -0
- package/node_modules/zod/v4/locales/nn.d.ts +4 -0
- package/node_modules/zod/v4/locales/nn.js +111 -0
- package/node_modules/zod/v4/locales/no.cjs +5 -2
- package/node_modules/zod/v4/locales/no.js +5 -2
- package/node_modules/zod/v4/locales/ota.cjs +3 -0
- package/node_modules/zod/v4/locales/ota.js +3 -0
- package/node_modules/zod/v4/locales/pl.cjs +3 -0
- package/node_modules/zod/v4/locales/pl.js +3 -0
- package/node_modules/zod/v4/locales/ps.cjs +3 -0
- package/node_modules/zod/v4/locales/ps.js +3 -0
- package/node_modules/zod/v4/locales/pt-BR.cjs +168 -0
- package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
- package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
- package/node_modules/zod/v4/locales/pt-BR.js +141 -0
- package/node_modules/zod/v4/locales/pt.cjs +87 -55
- package/node_modules/zod/v4/locales/pt.js +87 -55
- package/node_modules/zod/v4/locales/ro.cjs +1 -0
- package/node_modules/zod/v4/locales/ro.js +1 -0
- package/node_modules/zod/v4/locales/ru.cjs +10 -0
- package/node_modules/zod/v4/locales/ru.js +10 -0
- package/node_modules/zod/v4/locales/sk.cjs +141 -0
- package/node_modules/zod/v4/locales/sk.d.cts +5 -0
- package/node_modules/zod/v4/locales/sk.d.ts +4 -0
- package/node_modules/zod/v4/locales/sk.js +114 -0
- package/node_modules/zod/v4/locales/sl.cjs +3 -0
- package/node_modules/zod/v4/locales/sl.js +3 -0
- package/node_modules/zod/v4/locales/sv.cjs +5 -2
- package/node_modules/zod/v4/locales/sv.js +5 -2
- package/node_modules/zod/v4/locales/ta.cjs +3 -0
- package/node_modules/zod/v4/locales/ta.js +3 -0
- package/node_modules/zod/v4/locales/th.cjs +3 -0
- package/node_modules/zod/v4/locales/th.js +3 -0
- package/node_modules/zod/v4/locales/tk.cjs +132 -0
- package/node_modules/zod/v4/locales/tk.d.cts +5 -0
- package/node_modules/zod/v4/locales/tk.d.ts +4 -0
- package/node_modules/zod/v4/locales/tk.js +105 -0
- package/node_modules/zod/v4/locales/tr.cjs +3 -0
- package/node_modules/zod/v4/locales/tr.js +3 -0
- package/node_modules/zod/v4/locales/uk.cjs +3 -0
- package/node_modules/zod/v4/locales/uk.js +3 -0
- package/node_modules/zod/v4/locales/ur.cjs +3 -0
- package/node_modules/zod/v4/locales/ur.js +3 -0
- package/node_modules/zod/v4/locales/uz.cjs +1 -0
- package/node_modules/zod/v4/locales/uz.js +1 -0
- package/node_modules/zod/v4/locales/vi.cjs +3 -0
- package/node_modules/zod/v4/locales/vi.js +3 -0
- package/node_modules/zod/v4/locales/yo.cjs +3 -0
- package/node_modules/zod/v4/locales/yo.js +3 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +3 -0
- package/node_modules/zod/v4/locales/zh-CN.js +3 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +3 -0
- package/node_modules/zod/v4/locales/zh-TW.js +3 -0
- package/node_modules/zod/v4/mini/checks.cjs +2 -1
- package/node_modules/zod/v4/mini/checks.d.cts +1 -1
- package/node_modules/zod/v4/mini/checks.d.ts +1 -1
- package/node_modules/zod/v4/mini/checks.js +1 -1
- package/node_modules/zod/v4/mini/deep-partial.cjs +39 -0
- package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.js +13 -0
- package/node_modules/zod/v4/mini/external.cjs +12 -1
- package/node_modules/zod/v4/mini/external.d.cts +5 -2
- package/node_modules/zod/v4/mini/external.d.ts +5 -2
- package/node_modules/zod/v4/mini/external.js +3 -1
- package/node_modules/zod/v4/mini/in-out.cjs +63 -0
- package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
- package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
- package/node_modules/zod/v4/mini/in-out.js +36 -0
- package/node_modules/zod/v4/mini/parse.cjs +3 -1
- package/node_modules/zod/v4/mini/parse.d.cts +1 -1
- package/node_modules/zod/v4/mini/parse.d.ts +1 -1
- package/node_modules/zod/v4/mini/parse.js +1 -1
- package/node_modules/zod/v4/mini/schemas.cjs +75 -47
- package/node_modules/zod/v4/mini/schemas.d.cts +43 -13
- package/node_modules/zod/v4/mini/schemas.d.ts +43 -13
- package/node_modules/zod/v4/mini/schemas.js +71 -45
- package/openclaw.plugin.json +21 -1
- package/package.json +10 -8
- package/node_modules/jszip/.github/workflows/pr.yaml +0 -58
- package/node_modules/jszip/.jekyll-metadata +0 -0
- package/node_modules/jszip/.travis.yml +0 -17
- package/node_modules/jszip/deps.js +0 -37
- package/node_modules/jszip/graph.svg +0 -601
- package/node_modules/zod/src/v4/core/config.ts +0 -15
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
1
|
+
import fs, {} from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import {
|
|
3
|
+
import { shortPath } from "./error-detail.js";
|
|
4
|
+
import { pathEscapeError, sanitizeRootPathError, symlinkEscapeError } from "./root-path-errors.js";
|
|
4
5
|
import { FsSafeError } from "./errors.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
6
|
+
import { isNativeDirectoryObservationGuard } from "./native-directory-observation.js";
|
|
7
|
+
import { assertNoNulPathInput, isNotFoundPathError, isPathRelativeEscape, } from "./path.js";
|
|
8
|
+
import { absolutePathWithRawSegments, rawPathRelativeToCanonicalRoot, resolvePathViaExistingAncestor, resolvePathViaExistingAncestorSync, } from "./root-path-existing.js";
|
|
9
|
+
import { admitPathInsideRoot, } from "./root-boundary.js";
|
|
10
|
+
import { RootPathObservationError, captureRootPathObservedDirectory, createRootPathTraversalObservation, inspectRootPathTraversalEntry, } from "./root-path-observation.js";
|
|
7
11
|
import { resolveSymlinkHopPath, resolveSymlinkHopPathSync } from "./root-path-symlink.js";
|
|
8
12
|
import { assertNoDriveRelativePathSegments } from "./safe-path-segment.js";
|
|
13
|
+
import { assertNoWindowsPathAlias, pathForWindowsFilesystem, resolvePathFromBasePreservingWindowsRoot, resolvePathPreservingWindowsRoot, } from "./windows-path-alias.js";
|
|
9
14
|
export { resolvePathViaExistingAncestorSync } from "./root-path-existing.js";
|
|
15
|
+
export { RootPathObservationError, } from "./root-path-observation.js";
|
|
10
16
|
export const ROOT_PATH_ALIAS_POLICIES = {
|
|
11
17
|
strict: Object.freeze({
|
|
12
18
|
allowFinalSymlinkForUnlink: false,
|
|
@@ -25,36 +31,47 @@ export async function resolveRootPath(params) {
|
|
|
25
31
|
throw sanitizeRootPathError(error);
|
|
26
32
|
}
|
|
27
33
|
}
|
|
28
|
-
async function
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
export async function resolveRootPathWithCanonicalRootObservation(params, observeRoot) {
|
|
35
|
+
try {
|
|
36
|
+
return await resolveRootPathInternal(params, undefined, undefined, observeRoot);
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
throw sanitizeRootPathError(error);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
async function resolveRootPathInternal(params, observationRequest, observationOutput, observeRoot, removalReceipts) {
|
|
43
|
+
const input = captureValidRootPathInputs(params);
|
|
44
|
+
const rawAbsolutePath = absolutePathWithRawSegments(input.absolutePath);
|
|
45
|
+
const rootPath = resolvePathPreservingWindowsRoot(input.rootPath);
|
|
46
|
+
const absolutePath = resolvePathPreservingWindowsRoot(rawAbsolutePath);
|
|
47
|
+
const rootCanonicalPath = input.rootCanonicalPath
|
|
48
|
+
? resolvePathPreservingWindowsRoot(input.rootCanonicalPath)
|
|
34
49
|
: await resolvePathViaExistingAncestor(rootPath);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
assertNoWindowsPathAlias(rootPath);
|
|
51
|
+
assertNoWindowsPathAlias(absolutePath);
|
|
52
|
+
assertNoWindowsPathAlias(rootCanonicalPath);
|
|
53
|
+
observeRoot?.(rootCanonicalPath);
|
|
54
|
+
return resolveRootPathLexicalAsync(prepareRootTraversal(input, rootPath, rootCanonicalPath, absolutePath, rawAbsolutePath), observationRequest, observationOutput, removalReceipts);
|
|
55
|
+
}
|
|
56
|
+
export async function resolveRootPathWithObservation(params, request) {
|
|
57
|
+
const output = {};
|
|
58
|
+
try {
|
|
59
|
+
const resolved = await resolveRootPathInternal(params, request, output);
|
|
60
|
+
return output.receipt ? { resolved, receipt: output.receipt } : { resolved };
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
throw sanitizeRootPathError(error);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Removal receipts are separate from metadata observations and canonical-root
|
|
67
|
+
// callbacks; the public resolver's options and result remain unchanged.
|
|
68
|
+
export async function resolveRootPathForRemoval(params, receipts) {
|
|
69
|
+
try {
|
|
70
|
+
return await resolveRootPathInternal(params, undefined, undefined, undefined, receipts);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
throw sanitizeRootPathError(error);
|
|
51
74
|
}
|
|
52
|
-
return resolveRootPathLexicalAsync({
|
|
53
|
-
params,
|
|
54
|
-
absolutePath: context.absolutePath,
|
|
55
|
-
rootPath: context.rootPath,
|
|
56
|
-
rootCanonicalPath: context.rootCanonicalPath,
|
|
57
|
-
});
|
|
58
75
|
}
|
|
59
76
|
export function resolveRootPathSync(params) {
|
|
60
77
|
try {
|
|
@@ -64,52 +81,90 @@ export function resolveRootPathSync(params) {
|
|
|
64
81
|
throw sanitizeRootPathError(error);
|
|
65
82
|
}
|
|
66
83
|
}
|
|
67
|
-
function
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
84
|
+
export function resolveRootPathSyncWithCanonicalRootObservation(params, observeRoot) {
|
|
85
|
+
try {
|
|
86
|
+
return resolveRootPathSyncInternal(params, observeRoot);
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
throw sanitizeRootPathError(error);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function resolveRootPathSyncInternal(params, observeRoot) {
|
|
93
|
+
const input = captureValidRootPathInputs(params);
|
|
94
|
+
const rawAbsolutePath = absolutePathWithRawSegments(input.absolutePath);
|
|
95
|
+
const rootPath = resolvePathPreservingWindowsRoot(input.rootPath);
|
|
96
|
+
const absolutePath = resolvePathPreservingWindowsRoot(rawAbsolutePath);
|
|
97
|
+
const rootCanonicalPath = input.rootCanonicalPath
|
|
98
|
+
? resolvePathPreservingWindowsRoot(input.rootCanonicalPath)
|
|
73
99
|
: resolvePathViaExistingAncestorSync(rootPath);
|
|
74
|
-
|
|
75
|
-
|
|
100
|
+
assertNoWindowsPathAlias(rootPath);
|
|
101
|
+
assertNoWindowsPathAlias(absolutePath);
|
|
102
|
+
assertNoWindowsPathAlias(rootCanonicalPath);
|
|
103
|
+
observeRoot?.(rootCanonicalPath);
|
|
104
|
+
return resolveRootPathLexicalSync(prepareRootTraversal(input, rootPath, rootCanonicalPath, absolutePath, rawAbsolutePath));
|
|
105
|
+
}
|
|
106
|
+
function prepareRootTraversal(params, rootPath, rootCanonicalPath, absolutePath, rawAbsolutePath) {
|
|
107
|
+
let raw = rawAbsolutePath;
|
|
108
|
+
let trustedAbsolutePath = false;
|
|
109
|
+
const direct = admitRawPathInsideRoot(rootPath, raw, params.rootIdentity);
|
|
110
|
+
if (direct) {
|
|
111
|
+
raw = direct.path;
|
|
112
|
+
trustedAbsolutePath = direct.admission === "identity";
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
const canonical = admitRawPathInsideRoot(rootCanonicalPath, raw, params.rootIdentity);
|
|
116
|
+
const relative = canonical?.relativePath
|
|
117
|
+
?? rawPathRelativeToCanonicalRoot(raw, rootCanonicalPath, params);
|
|
118
|
+
if (relative === undefined) {
|
|
119
|
+
throw pathEscapeError({ rootPath, absolutePath: raw, boundaryLabel: params.boundaryLabel });
|
|
120
|
+
}
|
|
121
|
+
trustedAbsolutePath = canonical?.admission === "identity";
|
|
122
|
+
raw = relative === "" ? rootPath : `${rootPath}${path.sep}${relative}`;
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
params,
|
|
126
|
+
rawAbsolutePath: raw,
|
|
127
|
+
rootPath,
|
|
128
|
+
rootCanonicalPath,
|
|
129
|
+
// Preserve the caller-spelling receipt for ordinary aliases. Only a
|
|
130
|
+
// Windows case-fold admission must return the identity-gated Root spelling,
|
|
131
|
+
// because downstream I/O must not reuse the ambiguous caller prefix.
|
|
132
|
+
absolutePath: trustedAbsolutePath ? resolvePathPreservingWindowsRoot(raw) : absolutePath,
|
|
133
|
+
observationEligible: raw === rawAbsolutePath && !trustedAbsolutePath,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function captureValidRootPathInputs(params) {
|
|
137
|
+
const rootPath = params.rootPath;
|
|
138
|
+
assertNoNulPathInput(rootPath, "root path contains a NUL byte");
|
|
139
|
+
const absolutePath = params.absolutePath;
|
|
140
|
+
assertNoNulPathInput(absolutePath, "absolute path contains a NUL byte");
|
|
141
|
+
assertNoWindowsPathAlias(rootPath, "filesystem", "root path uses a Windows filesystem namespace alias");
|
|
142
|
+
assertNoWindowsPathAlias(absolutePath, "filesystem", "absolute path uses a Windows filesystem namespace alias");
|
|
143
|
+
assertNoEmbeddedDriveRelativeSegment(rootPath, "root path");
|
|
144
|
+
assertNoEmbeddedDriveRelativeSegment(absolutePath, "absolute path");
|
|
145
|
+
const rootCanonicalPath = params.rootCanonicalPath;
|
|
146
|
+
if (rootCanonicalPath !== undefined) {
|
|
147
|
+
assertNoNulPathInput(rootCanonicalPath, "canonical root path contains a NUL byte");
|
|
148
|
+
assertNoWindowsPathAlias(rootCanonicalPath, "filesystem", "canonical root path uses a Windows filesystem namespace alias");
|
|
149
|
+
assertNoEmbeddedDriveRelativeSegment(rootCanonicalPath, "canonical root path");
|
|
150
|
+
}
|
|
151
|
+
// Keep traversal policy with the admitted paths across ancestor and symlink
|
|
152
|
+
// resolution. Caller-owned flags and getters must not change a running walk.
|
|
153
|
+
const policy = params.policy;
|
|
154
|
+
const rootIdentity = params.rootIdentity;
|
|
155
|
+
return {
|
|
76
156
|
rootPath,
|
|
77
157
|
absolutePath,
|
|
78
158
|
rootCanonicalPath,
|
|
79
|
-
|
|
80
|
-
rootPath,
|
|
81
|
-
absolutePath,
|
|
82
|
-
}),
|
|
83
|
-
});
|
|
84
|
-
const outsideResult = resolveOutsideRootPathSync({
|
|
159
|
+
rootIdentity: rootIdentity == null ? undefined : { dev: rootIdentity.dev, ino: rootIdentity.ino },
|
|
85
160
|
boundaryLabel: params.boundaryLabel,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
absolutePath: context.absolutePath,
|
|
94
|
-
rootPath: context.rootPath,
|
|
95
|
-
rootCanonicalPath: context.rootCanonicalPath,
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
function sanitizeRootPathError(error) {
|
|
99
|
-
if (error instanceof Error) {
|
|
100
|
-
error.message = formatErrorDetail(error.message);
|
|
101
|
-
}
|
|
102
|
-
return error;
|
|
103
|
-
}
|
|
104
|
-
function assertValidRootPathInputs(params) {
|
|
105
|
-
assertNoNulPathInput(params.rootPath, "root path contains a NUL byte");
|
|
106
|
-
assertNoNulPathInput(params.absolutePath, "absolute path contains a NUL byte");
|
|
107
|
-
assertNoEmbeddedDriveRelativeSegment(params.rootPath, "root path");
|
|
108
|
-
assertNoEmbeddedDriveRelativeSegment(params.absolutePath, "absolute path");
|
|
109
|
-
if (params.rootCanonicalPath !== undefined) {
|
|
110
|
-
assertNoNulPathInput(params.rootCanonicalPath, "canonical root path contains a NUL byte");
|
|
111
|
-
assertNoEmbeddedDriveRelativeSegment(params.rootCanonicalPath, "canonical root path");
|
|
112
|
-
}
|
|
161
|
+
policy: policy == null ? undefined : {
|
|
162
|
+
allowFinalSymlinkForUnlink: policy.allowFinalSymlinkForUnlink,
|
|
163
|
+
},
|
|
164
|
+
rejectSymlinks: params.rejectSymlinks,
|
|
165
|
+
rejectFinalSymlink: params.rejectFinalSymlink,
|
|
166
|
+
rejectUnresolvedSymlinks: params.rejectUnresolvedSymlinks,
|
|
167
|
+
};
|
|
113
168
|
}
|
|
114
169
|
function assertNoEmbeddedDriveRelativeSegment(filePath, label) {
|
|
115
170
|
if (process.platform !== "win32") {
|
|
@@ -119,15 +174,21 @@ function assertNoEmbeddedDriveRelativeSegment(filePath, label) {
|
|
|
119
174
|
assertNoDriveRelativePathSegments(filePath.slice(root.length).replaceAll("\\", "/"), label);
|
|
120
175
|
}
|
|
121
176
|
function createLexicalTraversalState(params) {
|
|
122
|
-
const rawAbsolutePath = params.
|
|
123
|
-
const
|
|
124
|
-
|
|
177
|
+
const rawAbsolutePath = params.rawAbsolutePath;
|
|
178
|
+
const relative = admitRawPathInsideRoot(params.rootPath, rawAbsolutePath, params.params.rootIdentity)?.relativePath;
|
|
179
|
+
if (relative === undefined)
|
|
180
|
+
throw new Error("Path traversal must begin at the root");
|
|
181
|
+
const segments = splitTraversalSegments(relative);
|
|
125
182
|
return {
|
|
126
|
-
segments
|
|
183
|
+
segments,
|
|
184
|
+
relativePath: relative,
|
|
185
|
+
reuseLexicalCanonical: false,
|
|
186
|
+
finalComponentIndex: segments.findLastIndex((segment) => segment !== "."),
|
|
127
187
|
allowFinalSymlink: params.params.policy?.allowFinalSymlinkForUnlink === true,
|
|
128
188
|
canonicalCursor: params.rootCanonicalPath,
|
|
129
189
|
lexicalCursor: params.rootPath,
|
|
130
190
|
preserveFinalSymlink: false,
|
|
191
|
+
missingDepth: 0,
|
|
131
192
|
};
|
|
132
193
|
}
|
|
133
194
|
function createLexicalTraversalContext(params) {
|
|
@@ -137,51 +198,71 @@ function createLexicalTraversalContext(params) {
|
|
|
137
198
|
rootPath: params.rootPath,
|
|
138
199
|
rootCanonicalPath: params.rootCanonicalPath,
|
|
139
200
|
absolutePath: params.absolutePath,
|
|
201
|
+
observationEligible: params.observationEligible,
|
|
140
202
|
};
|
|
141
203
|
}
|
|
204
|
+
function createLexicalTraversalObservation(context, request) {
|
|
205
|
+
const observation = createRootPathTraversalObservation(context, request);
|
|
206
|
+
if (observation && observation.targetIndex >= 0) {
|
|
207
|
+
context.state.reuseLexicalCanonical = true;
|
|
208
|
+
}
|
|
209
|
+
return observation;
|
|
210
|
+
}
|
|
142
211
|
function splitTraversalSegments(value) {
|
|
143
|
-
|
|
212
|
+
const segments = value
|
|
144
213
|
.split(process.platform === "win32" ? /[\\/]+/ : /\/+/)
|
|
145
|
-
.filter(
|
|
214
|
+
.filter(Boolean);
|
|
215
|
+
if (value.endsWith("/") || (process.platform === "win32" && value.endsWith("\\")))
|
|
216
|
+
segments.push(".");
|
|
217
|
+
return segments;
|
|
146
218
|
}
|
|
147
|
-
function
|
|
219
|
+
function admitRawPathInsideRoot(rootPath, candidatePath, rootIdentity) {
|
|
148
220
|
if (!path.isAbsolute(candidatePath)) {
|
|
149
221
|
return undefined;
|
|
150
222
|
}
|
|
151
|
-
|
|
223
|
+
// Every caller supplies the already-resolved root selected by
|
|
224
|
+
// resolveRootPathInternal; resolving it again is redundant on each traversal.
|
|
225
|
+
const root = rootPath;
|
|
152
226
|
const candidate = process.platform === "win32"
|
|
153
227
|
? candidatePath.replaceAll("/", path.sep)
|
|
154
228
|
: candidatePath;
|
|
229
|
+
if (process.platform === "win32") {
|
|
230
|
+
return admitPathInsideRoot({ rootPath: root, candidatePath: candidate, rootIdentity });
|
|
231
|
+
}
|
|
155
232
|
if (candidate === root) {
|
|
156
|
-
return "";
|
|
233
|
+
return { admission: "exact", path: candidate, relativePath: "" };
|
|
157
234
|
}
|
|
158
235
|
const rootWithSep = root.endsWith(path.sep) ? root : `${root}${path.sep}`;
|
|
159
236
|
const candidatePrefix = candidate.slice(0, rootWithSep.length);
|
|
160
|
-
|
|
161
|
-
?
|
|
162
|
-
|
|
163
|
-
|
|
237
|
+
return candidatePrefix === rootWithSep
|
|
238
|
+
? {
|
|
239
|
+
admission: "exact",
|
|
240
|
+
path: candidate,
|
|
241
|
+
relativePath: candidate.slice(rootWithSep.length),
|
|
242
|
+
}
|
|
243
|
+
: undefined;
|
|
164
244
|
}
|
|
165
245
|
function assertLexicalCursorInsideBoundary(context, candidatePath) {
|
|
166
|
-
assertInsideBoundary({
|
|
246
|
+
return assertInsideBoundary({
|
|
167
247
|
boundaryLabel: context.resolveParams.boundaryLabel,
|
|
168
248
|
rootCanonicalPath: context.rootCanonicalPath,
|
|
249
|
+
rootIdentity: context.resolveParams.rootIdentity,
|
|
169
250
|
candidatePath,
|
|
170
251
|
absolutePath: context.absolutePath,
|
|
171
252
|
});
|
|
172
253
|
}
|
|
173
|
-
function applyMissingSuffixToCanonicalCursor(context, missingFromIndex) {
|
|
174
|
-
const missingSuffix = context.state.segments.slice(missingFromIndex);
|
|
175
|
-
for (const segment of missingSuffix) {
|
|
176
|
-
advanceCanonicalCursorForSegment(context, segment);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
254
|
function advanceCanonicalCursorForSegment(context, segment) {
|
|
180
|
-
|
|
181
|
-
|
|
255
|
+
const candidatePath = context.state.reuseLexicalCanonical
|
|
256
|
+
? context.state.lexicalCursor
|
|
257
|
+
: resolvePathFromBasePreservingWindowsRoot(context.state.canonicalCursor, segment);
|
|
258
|
+
context.state.canonicalCursor = assertLexicalCursorInsideBoundary(context, candidatePath);
|
|
259
|
+
}
|
|
260
|
+
function disableLexicalTraversalObservation(context, observation) {
|
|
261
|
+
observation.enabled = false;
|
|
262
|
+
context.state.reuseLexicalCanonical = false;
|
|
182
263
|
}
|
|
183
264
|
function finalizeLexicalResolution(context, kind) {
|
|
184
|
-
assertLexicalCursorInsideBoundary(context, context.state.canonicalCursor);
|
|
265
|
+
context.state.canonicalCursor = assertLexicalCursorInsideBoundary(context, context.state.canonicalCursor);
|
|
185
266
|
return buildResolvedRootPath({
|
|
186
267
|
absolutePath: context.absolutePath,
|
|
187
268
|
canonicalPath: context.state.canonicalCursor,
|
|
@@ -190,70 +271,155 @@ function finalizeLexicalResolution(context, kind) {
|
|
|
190
271
|
kind,
|
|
191
272
|
});
|
|
192
273
|
}
|
|
193
|
-
function handleLexicalLstatFailure(context, error,
|
|
274
|
+
function handleLexicalLstatFailure(context, error, segment) {
|
|
194
275
|
if (!isNotFoundPathError(error)) {
|
|
195
276
|
return false;
|
|
196
277
|
}
|
|
197
|
-
|
|
278
|
+
advanceCanonicalCursorForSegment(context, segment);
|
|
279
|
+
context.state.missingDepth = 1;
|
|
198
280
|
return true;
|
|
199
281
|
}
|
|
200
282
|
function lexicalStatDisposition(params) {
|
|
201
283
|
if (!params.isSymbolicLink)
|
|
202
284
|
return "continue";
|
|
203
|
-
if (params.rejectSymlinks === true && params.isLast) {
|
|
285
|
+
if (params.rejectFinalSymlink || (params.rejectSymlinks === true && params.isLast)) {
|
|
204
286
|
throw new FsSafeError("symlink", "symlink path component not allowed");
|
|
205
287
|
}
|
|
206
288
|
return params.allowFinalSymlink && params.isLast ? "break" : "resolve-link";
|
|
207
289
|
}
|
|
208
290
|
function applyResolvedSymlinkHop(context, linkCanonical) {
|
|
209
|
-
|
|
291
|
+
let admitted;
|
|
292
|
+
try {
|
|
293
|
+
admitted = assertLexicalCursorInsideBoundary(context, linkCanonical);
|
|
294
|
+
}
|
|
295
|
+
catch {
|
|
210
296
|
throw symlinkEscapeError({
|
|
211
297
|
boundaryLabel: context.resolveParams.boundaryLabel,
|
|
212
298
|
rootCanonicalPath: context.rootCanonicalPath,
|
|
213
299
|
symlinkPath: context.state.lexicalCursor,
|
|
214
300
|
});
|
|
215
301
|
}
|
|
216
|
-
context.state.canonicalCursor =
|
|
217
|
-
context.state.lexicalCursor =
|
|
302
|
+
context.state.canonicalCursor = admitted;
|
|
303
|
+
context.state.lexicalCursor = admitted;
|
|
218
304
|
}
|
|
219
305
|
function applyParentTraversalStep(context) {
|
|
220
|
-
context.state.lexicalCursor =
|
|
306
|
+
context.state.lexicalCursor = resolvePathFromBasePreservingWindowsRoot(context.state.lexicalCursor, "..");
|
|
221
307
|
advanceCanonicalCursorForSegment(context, "..");
|
|
308
|
+
if (context.state.missingDepth > 0)
|
|
309
|
+
context.state.missingDepth -= 1;
|
|
310
|
+
}
|
|
311
|
+
function assertDirectoryBeforeMoreSegments(stat, pathname, isLast) {
|
|
312
|
+
if (!isLast && !stat.isDirectory()) {
|
|
313
|
+
throw Object.assign(new Error(`Path component is not a directory: ${pathname}`), { code: "ENOTDIR" });
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
function assertResolvedLinkDirectory(pathname, isLast) {
|
|
317
|
+
if (isLast)
|
|
318
|
+
return;
|
|
319
|
+
const stat = fs.statSync(pathForWindowsFilesystem(pathname));
|
|
320
|
+
assertDirectoryBeforeMoreSegments(stat, pathname, isLast);
|
|
222
321
|
}
|
|
223
|
-
async function resolveRootPathLexicalAsync(params) {
|
|
322
|
+
async function resolveRootPathLexicalAsync(params, observationRequest, observationOutput, removalReceipts) {
|
|
224
323
|
const context = createLexicalTraversalContext(params);
|
|
225
324
|
const { state } = context;
|
|
325
|
+
const observation = createLexicalTraversalObservation(context, observationRequest);
|
|
226
326
|
for (let idx = 0; idx < state.segments.length; idx += 1) {
|
|
227
327
|
const segment = state.segments[idx] ?? "";
|
|
228
328
|
const isLast = idx === state.segments.length - 1;
|
|
329
|
+
if (segment === ".")
|
|
330
|
+
continue;
|
|
229
331
|
if (segment === "..") {
|
|
230
332
|
applyParentTraversalStep(context);
|
|
231
333
|
continue;
|
|
232
334
|
}
|
|
233
335
|
state.lexicalCursor = path.join(state.lexicalCursor, segment);
|
|
336
|
+
if (state.missingDepth > 0) {
|
|
337
|
+
advanceCanonicalCursorForSegment(context, segment);
|
|
338
|
+
state.missingDepth += 1;
|
|
339
|
+
continue;
|
|
340
|
+
}
|
|
234
341
|
let stat;
|
|
342
|
+
let observed;
|
|
235
343
|
try {
|
|
236
|
-
|
|
344
|
+
if (removalReceipts && !isLast) {
|
|
345
|
+
const directoryStat = fs.lstatSync(pathForWindowsFilesystem(state.lexicalCursor), { bigint: true });
|
|
346
|
+
if (directoryStat.isDirectory() && !directoryStat.isSymbolicLink()) {
|
|
347
|
+
removalReceipts.observeDirectory(state.lexicalCursor, directoryStat);
|
|
348
|
+
}
|
|
349
|
+
stat = directoryStat;
|
|
350
|
+
}
|
|
351
|
+
else {
|
|
352
|
+
const directorySlot = observation?.enabled === true && idx === observation.directoryIndex;
|
|
353
|
+
const targetSlot = observation?.enabled === true && idx === observation.targetIndex;
|
|
354
|
+
const observeExactly = directorySlot || targetSlot;
|
|
355
|
+
if (observeExactly) {
|
|
356
|
+
observed = inspectRootPathTraversalEntry(state.lexicalCursor, directorySlot, observation);
|
|
357
|
+
}
|
|
358
|
+
stat = isNativeDirectoryObservationGuard(observed)
|
|
359
|
+
? undefined
|
|
360
|
+
: observed?.stat ?? fs.lstatSync(state.lexicalCursor);
|
|
361
|
+
}
|
|
237
362
|
}
|
|
238
363
|
catch (error) {
|
|
239
|
-
if (
|
|
240
|
-
|
|
364
|
+
if (observation?.enabled && observation.request.kind === "stat" &&
|
|
365
|
+
idx === observation.targetIndex && observation.directoryGuard) {
|
|
366
|
+
const parentReceipt = {
|
|
367
|
+
kind: "stat-parent",
|
|
368
|
+
rootGuard: observation.request.rootGuard,
|
|
369
|
+
directoryGuard: observation.directoryGuard,
|
|
370
|
+
directoryObserver: observation.directoryObserver,
|
|
371
|
+
targetPath: state.lexicalCursor,
|
|
372
|
+
};
|
|
373
|
+
// Stop here: the generic missing-path fallback would re-admit a parent.
|
|
374
|
+
// Preserve observation-only versus ordinary traversal error precedence.
|
|
375
|
+
throw new RootPathObservationError(error instanceof RootPathObservationError ? error.error : sanitizeRootPathError(error), parentReceipt, !(error instanceof RootPathObservationError));
|
|
376
|
+
}
|
|
377
|
+
if (handleLexicalLstatFailure(context, error, segment))
|
|
378
|
+
continue;
|
|
241
379
|
throw error;
|
|
242
380
|
}
|
|
381
|
+
if (isNativeDirectoryObservationGuard(observed)) {
|
|
382
|
+
advanceCanonicalCursorForSegment(context, segment);
|
|
383
|
+
captureRootPathObservedDirectory(observation, observed, state.lexicalCursor, state.canonicalCursor, context.rootCanonicalPath, context.resolveParams.rootIdentity);
|
|
384
|
+
if (idx === observation.targetIndex) {
|
|
385
|
+
observation.targetPath = state.canonicalCursor;
|
|
386
|
+
observation.target = observed;
|
|
387
|
+
}
|
|
388
|
+
continue;
|
|
389
|
+
}
|
|
390
|
+
if (!stat)
|
|
391
|
+
throw new Error("directory observation did not return metadata");
|
|
243
392
|
const isSymbolicLink = stat.isSymbolicLink();
|
|
393
|
+
if (!isSymbolicLink)
|
|
394
|
+
assertDirectoryBeforeMoreSegments(stat, state.lexicalCursor, isLast);
|
|
244
395
|
const disposition = lexicalStatDisposition({
|
|
245
396
|
isSymbolicLink,
|
|
246
397
|
isLast,
|
|
247
398
|
rejectSymlinks: isSymbolicLink ? context.resolveParams.rejectSymlinks : undefined,
|
|
399
|
+
rejectFinalSymlink: context.resolveParams.rejectFinalSymlink === true && idx === state.finalComponentIndex,
|
|
248
400
|
allowFinalSymlink: state.allowFinalSymlink,
|
|
249
401
|
});
|
|
250
402
|
if (disposition !== "resolve-link") {
|
|
251
403
|
state.preserveFinalSymlink = disposition === "break";
|
|
252
404
|
advanceCanonicalCursorForSegment(context, segment);
|
|
405
|
+
if (observation?.enabled && isSymbolicLink) {
|
|
406
|
+
disableLexicalTraversalObservation(context, observation);
|
|
407
|
+
}
|
|
408
|
+
if (observation?.enabled && idx === observation.directoryIndex) {
|
|
409
|
+
const captured = observed?.identity && captureRootPathObservedDirectory(observation, observed, state.canonicalCursor, state.canonicalCursor, context.rootCanonicalPath, context.resolveParams.rootIdentity);
|
|
410
|
+
if (!captured)
|
|
411
|
+
disableLexicalTraversalObservation(context, observation);
|
|
412
|
+
}
|
|
413
|
+
if (observation?.enabled && idx === observation.targetIndex) {
|
|
414
|
+
observation.targetPath = state.canonicalCursor;
|
|
415
|
+
observation.target = observed?.identity ? observed : undefined;
|
|
416
|
+
}
|
|
253
417
|
if (state.preserveFinalSymlink)
|
|
254
418
|
break;
|
|
255
419
|
continue;
|
|
256
420
|
}
|
|
421
|
+
if (observation?.enabled)
|
|
422
|
+
disableLexicalTraversalObservation(context, observation);
|
|
257
423
|
const linkCanonical = await resolveSymlinkHopPath(state.lexicalCursor, {
|
|
258
424
|
rejectUnresolved: context.resolveParams.rejectUnresolvedSymlinks,
|
|
259
425
|
});
|
|
@@ -261,8 +427,28 @@ async function resolveRootPathLexicalAsync(params) {
|
|
|
261
427
|
if (context.resolveParams.rejectSymlinks === true) {
|
|
262
428
|
throw new FsSafeError("symlink", "symlink path component not allowed");
|
|
263
429
|
}
|
|
430
|
+
assertResolvedLinkDirectory(linkCanonical, isLast);
|
|
431
|
+
}
|
|
432
|
+
const completeObservation = observation?.enabled === true && observation.directoryGuard !== undefined &&
|
|
433
|
+
observation.targetPath === state.canonicalCursor && observation.target !== undefined;
|
|
434
|
+
const kind = completeObservation
|
|
435
|
+
? {
|
|
436
|
+
exists: true,
|
|
437
|
+
kind: isNativeDirectoryObservationGuard(observation.target)
|
|
438
|
+
? "directory"
|
|
439
|
+
: toResolvedKind(observation.target.stat),
|
|
440
|
+
}
|
|
441
|
+
: await getPathKind(state.canonicalCursor, state.preserveFinalSymlink);
|
|
442
|
+
if (completeObservation && observationOutput) {
|
|
443
|
+
observationOutput.receipt = {
|
|
444
|
+
kind: observation.request.kind,
|
|
445
|
+
rootGuard: observation.request.rootGuard,
|
|
446
|
+
directoryGuard: observation.directoryGuard,
|
|
447
|
+
directoryObserver: observation.directoryObserver,
|
|
448
|
+
targetPath: observation.targetPath,
|
|
449
|
+
target: observation.target,
|
|
450
|
+
};
|
|
264
451
|
}
|
|
265
|
-
const kind = await getPathKind(state.canonicalCursor, state.preserveFinalSymlink);
|
|
266
452
|
return finalizeLexicalResolution(context, kind);
|
|
267
453
|
}
|
|
268
454
|
function resolveRootPathLexicalSync(params) {
|
|
@@ -271,25 +457,35 @@ function resolveRootPathLexicalSync(params) {
|
|
|
271
457
|
for (let idx = 0; idx < state.segments.length; idx += 1) {
|
|
272
458
|
const segment = state.segments[idx] ?? "";
|
|
273
459
|
const isLast = idx === state.segments.length - 1;
|
|
460
|
+
if (segment === ".")
|
|
461
|
+
continue;
|
|
274
462
|
if (segment === "..") {
|
|
275
463
|
applyParentTraversalStep(context);
|
|
276
464
|
continue;
|
|
277
465
|
}
|
|
278
466
|
state.lexicalCursor = path.join(state.lexicalCursor, segment);
|
|
467
|
+
if (state.missingDepth > 0) {
|
|
468
|
+
advanceCanonicalCursorForSegment(context, segment);
|
|
469
|
+
state.missingDepth += 1;
|
|
470
|
+
continue;
|
|
471
|
+
}
|
|
279
472
|
let stat;
|
|
280
473
|
try {
|
|
281
474
|
stat = fs.lstatSync(state.lexicalCursor);
|
|
282
475
|
}
|
|
283
476
|
catch (error) {
|
|
284
|
-
if (handleLexicalLstatFailure(context, error,
|
|
285
|
-
|
|
477
|
+
if (handleLexicalLstatFailure(context, error, segment))
|
|
478
|
+
continue;
|
|
286
479
|
throw error;
|
|
287
480
|
}
|
|
288
481
|
const isSymbolicLink = stat.isSymbolicLink();
|
|
482
|
+
if (!isSymbolicLink)
|
|
483
|
+
assertDirectoryBeforeMoreSegments(stat, state.lexicalCursor, isLast);
|
|
289
484
|
const disposition = lexicalStatDisposition({
|
|
290
485
|
isSymbolicLink,
|
|
291
486
|
isLast,
|
|
292
487
|
rejectSymlinks: isSymbolicLink ? context.resolveParams.rejectSymlinks : undefined,
|
|
488
|
+
rejectFinalSymlink: context.resolveParams.rejectFinalSymlink === true && idx === state.finalComponentIndex,
|
|
293
489
|
allowFinalSymlink: state.allowFinalSymlink,
|
|
294
490
|
});
|
|
295
491
|
if (disposition !== "resolve-link") {
|
|
@@ -306,108 +502,11 @@ function resolveRootPathLexicalSync(params) {
|
|
|
306
502
|
if (context.resolveParams.rejectSymlinks === true) {
|
|
307
503
|
throw new FsSafeError("symlink", "symlink path component not allowed");
|
|
308
504
|
}
|
|
505
|
+
assertResolvedLinkDirectory(linkCanonical, isLast);
|
|
309
506
|
}
|
|
310
507
|
const kind = getPathKindSync(state.canonicalCursor, state.preserveFinalSymlink);
|
|
311
508
|
return finalizeLexicalResolution(context, kind);
|
|
312
509
|
}
|
|
313
|
-
function resolveCanonicalOutsideLexicalPath(params) {
|
|
314
|
-
return params.outsideLexicalCanonicalPath ?? params.absolutePath;
|
|
315
|
-
}
|
|
316
|
-
function createBoundaryResolutionContext(params) {
|
|
317
|
-
const lexicalInside = isPathInside(params.rootPath, params.absolutePath);
|
|
318
|
-
const canonicalOutsideLexicalPath = resolveCanonicalOutsideLexicalPath({
|
|
319
|
-
absolutePath: params.absolutePath,
|
|
320
|
-
outsideLexicalCanonicalPath: params.outsideLexicalCanonicalPath,
|
|
321
|
-
});
|
|
322
|
-
assertLexicalBoundaryOrCanonicalAlias({
|
|
323
|
-
skipLexicalRootCheck: params.resolveParams.skipLexicalRootCheck,
|
|
324
|
-
lexicalInside,
|
|
325
|
-
canonicalOutsideLexicalPath,
|
|
326
|
-
rootCanonicalPath: params.rootCanonicalPath,
|
|
327
|
-
boundaryLabel: params.resolveParams.boundaryLabel,
|
|
328
|
-
rootPath: params.rootPath,
|
|
329
|
-
absolutePath: params.absolutePath,
|
|
330
|
-
});
|
|
331
|
-
return {
|
|
332
|
-
rootPath: params.rootPath,
|
|
333
|
-
absolutePath: params.absolutePath,
|
|
334
|
-
rootCanonicalPath: params.rootCanonicalPath,
|
|
335
|
-
lexicalInside,
|
|
336
|
-
canonicalOutsideLexicalPath,
|
|
337
|
-
};
|
|
338
|
-
}
|
|
339
|
-
async function resolveOutsideRootPathAsync(params) {
|
|
340
|
-
if (params.context.lexicalInside) {
|
|
341
|
-
return null;
|
|
342
|
-
}
|
|
343
|
-
const kind = await getPathKind(params.context.absolutePath, false);
|
|
344
|
-
return buildOutsideRootPathFromContext({
|
|
345
|
-
boundaryLabel: params.boundaryLabel,
|
|
346
|
-
context: params.context,
|
|
347
|
-
kind,
|
|
348
|
-
});
|
|
349
|
-
}
|
|
350
|
-
function resolveOutsideRootPathSync(params) {
|
|
351
|
-
if (params.context.lexicalInside) {
|
|
352
|
-
return null;
|
|
353
|
-
}
|
|
354
|
-
const kind = getPathKindSync(params.context.absolutePath, false);
|
|
355
|
-
return buildOutsideRootPathFromContext({
|
|
356
|
-
boundaryLabel: params.boundaryLabel,
|
|
357
|
-
context: params.context,
|
|
358
|
-
kind,
|
|
359
|
-
});
|
|
360
|
-
}
|
|
361
|
-
function buildOutsideRootPathFromContext(params) {
|
|
362
|
-
return buildOutsideLexicalRootPath({
|
|
363
|
-
boundaryLabel: params.boundaryLabel,
|
|
364
|
-
rootCanonicalPath: params.context.rootCanonicalPath,
|
|
365
|
-
absolutePath: params.context.absolutePath,
|
|
366
|
-
canonicalOutsideLexicalPath: params.context.canonicalOutsideLexicalPath,
|
|
367
|
-
rootPath: params.context.rootPath,
|
|
368
|
-
kind: params.kind,
|
|
369
|
-
});
|
|
370
|
-
}
|
|
371
|
-
async function resolveOutsideLexicalCanonicalPathAsync(params) {
|
|
372
|
-
if (isPathInside(params.rootPath, params.absolutePath)) {
|
|
373
|
-
return undefined;
|
|
374
|
-
}
|
|
375
|
-
return await resolvePathViaExistingAncestor(params.absolutePath);
|
|
376
|
-
}
|
|
377
|
-
function resolveOutsideLexicalCanonicalPathSync(params) {
|
|
378
|
-
if (isPathInside(params.rootPath, params.absolutePath)) {
|
|
379
|
-
return undefined;
|
|
380
|
-
}
|
|
381
|
-
return resolvePathViaExistingAncestorSync(params.absolutePath);
|
|
382
|
-
}
|
|
383
|
-
function buildOutsideLexicalRootPath(params) {
|
|
384
|
-
assertInsideBoundary({
|
|
385
|
-
boundaryLabel: params.boundaryLabel,
|
|
386
|
-
rootCanonicalPath: params.rootCanonicalPath,
|
|
387
|
-
candidatePath: params.canonicalOutsideLexicalPath,
|
|
388
|
-
absolutePath: params.absolutePath,
|
|
389
|
-
});
|
|
390
|
-
return buildResolvedRootPath({
|
|
391
|
-
absolutePath: params.absolutePath,
|
|
392
|
-
canonicalPath: params.canonicalOutsideLexicalPath,
|
|
393
|
-
rootPath: params.rootPath,
|
|
394
|
-
rootCanonicalPath: params.rootCanonicalPath,
|
|
395
|
-
kind: params.kind,
|
|
396
|
-
});
|
|
397
|
-
}
|
|
398
|
-
function assertLexicalBoundaryOrCanonicalAlias(params) {
|
|
399
|
-
if (params.skipLexicalRootCheck || params.lexicalInside) {
|
|
400
|
-
return;
|
|
401
|
-
}
|
|
402
|
-
if (isPathInside(params.rootCanonicalPath, params.canonicalOutsideLexicalPath)) {
|
|
403
|
-
return;
|
|
404
|
-
}
|
|
405
|
-
throw pathEscapeError({
|
|
406
|
-
boundaryLabel: params.boundaryLabel,
|
|
407
|
-
rootPath: params.rootPath,
|
|
408
|
-
absolutePath: params.absolutePath,
|
|
409
|
-
});
|
|
410
|
-
}
|
|
411
510
|
function buildResolvedRootPath(params) {
|
|
412
511
|
return {
|
|
413
512
|
absolutePath: params.absolutePath,
|
|
@@ -421,9 +520,10 @@ function buildResolvedRootPath(params) {
|
|
|
421
520
|
}
|
|
422
521
|
async function getPathKind(absolutePath, preserveFinalSymlink) {
|
|
423
522
|
try {
|
|
523
|
+
const operationPath = pathForWindowsFilesystem(absolutePath);
|
|
424
524
|
const stat = preserveFinalSymlink
|
|
425
|
-
? fs.lstatSync(
|
|
426
|
-
: fs.statSync(
|
|
525
|
+
? fs.lstatSync(operationPath)
|
|
526
|
+
: fs.statSync(operationPath);
|
|
427
527
|
return { exists: true, kind: toResolvedKind(stat) };
|
|
428
528
|
}
|
|
429
529
|
catch (error) {
|
|
@@ -435,7 +535,10 @@ async function getPathKind(absolutePath, preserveFinalSymlink) {
|
|
|
435
535
|
}
|
|
436
536
|
function getPathKindSync(absolutePath, preserveFinalSymlink) {
|
|
437
537
|
try {
|
|
438
|
-
const
|
|
538
|
+
const operationPath = pathForWindowsFilesystem(absolutePath);
|
|
539
|
+
const stat = preserveFinalSymlink
|
|
540
|
+
? fs.lstatSync(operationPath)
|
|
541
|
+
: fs.statSync(operationPath);
|
|
439
542
|
return { exists: true, kind: toResolvedKind(stat) };
|
|
440
543
|
}
|
|
441
544
|
catch (error) {
|
|
@@ -458,7 +561,7 @@ function toResolvedKind(stat) {
|
|
|
458
561
|
return "other";
|
|
459
562
|
}
|
|
460
563
|
function relativeInsideRoot(rootPath, targetPath) {
|
|
461
|
-
const relative = path.relative(
|
|
564
|
+
const relative = path.relative(resolvePathPreservingWindowsRoot(rootPath), resolvePathPreservingWindowsRoot(targetPath));
|
|
462
565
|
if (!relative || relative === ".") {
|
|
463
566
|
return "";
|
|
464
567
|
}
|
|
@@ -468,14 +571,13 @@ function relativeInsideRoot(rootPath, targetPath) {
|
|
|
468
571
|
return relative;
|
|
469
572
|
}
|
|
470
573
|
function assertInsideBoundary(params) {
|
|
471
|
-
|
|
472
|
-
|
|
574
|
+
const admitted = admitPathInsideRoot({
|
|
575
|
+
rootPath: params.rootCanonicalPath,
|
|
576
|
+
candidatePath: params.candidatePath,
|
|
577
|
+
rootIdentity: params.rootIdentity,
|
|
578
|
+
});
|
|
579
|
+
if (admitted) {
|
|
580
|
+
return admitted.path;
|
|
473
581
|
}
|
|
474
582
|
throw new Error(`Path resolves outside ${params.boundaryLabel} (${shortPath(params.rootCanonicalPath)}): ${shortPath(params.absolutePath)}`);
|
|
475
583
|
}
|
|
476
|
-
function pathEscapeError(params) {
|
|
477
|
-
return new Error(`Path escapes ${params.boundaryLabel} (${shortPath(params.rootPath)}): ${shortPath(params.absolutePath)}`);
|
|
478
|
-
}
|
|
479
|
-
function symlinkEscapeError(params) {
|
|
480
|
-
return new Error(`Symlink escapes ${params.boundaryLabel} (${shortPath(params.rootCanonicalPath)}): ${shortPath(params.symlinkPath)}`);
|
|
481
|
-
}
|