@openclaw/fs-safe 0.16.0 → 0.18.0
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/CHANGELOG.md +91 -0
- package/README.md +8 -1
- package/dist/absolute-path.d.ts +0 -1
- package/dist/absolute-path.js +2 -8
- package/dist/advanced.d.ts +2 -1
- package/dist/advanced.js +2 -0
- package/dist/archive-crc32.d.ts +0 -1
- package/dist/archive-deadline.d.ts +0 -1
- package/dist/archive-deadline.js +22 -23
- package/dist/archive-durability.d.ts +0 -1
- package/dist/archive-entry.d.ts +0 -1
- package/dist/archive-errors.d.ts +0 -1
- package/dist/archive-gzip-tail.d.ts +0 -1
- package/dist/archive-input.d.ts +0 -1
- package/dist/archive-kind.d.ts +0 -1
- package/dist/archive-limits.d.ts +0 -1
- package/dist/archive-merge.d.ts +3 -4
- package/dist/archive-merge.js +17 -7
- package/dist/archive-native.d.ts +3 -14
- package/dist/archive-native.js +46 -70
- package/dist/archive-options.d.ts +9 -2
- package/dist/archive-parser-errors.d.ts +0 -1
- package/dist/archive-parser.wasm +0 -0
- package/dist/archive-plan.d.ts +10 -1
- package/dist/archive-plan.js +31 -21
- package/dist/archive-policy.d.ts +0 -1
- package/dist/archive-read.d.ts +0 -1
- package/dist/archive-staging.d.ts +0 -1
- package/dist/archive-tar-inspect.d.ts +0 -1
- package/dist/archive-tar-stream.d.ts +0 -1
- package/dist/archive-tar-wasm.d.ts +0 -1
- package/dist/archive-tar.d.ts +0 -1
- package/dist/archive-zip-admission.d.ts +0 -1
- package/dist/archive-zip-count.d.ts +0 -1
- package/dist/archive-zip-count.js +21 -1
- package/dist/archive-zip-directory.d.ts +0 -1
- package/dist/archive-zip-directory.js +23 -1
- package/dist/archive-zip-entry.d.ts +0 -1
- package/dist/archive-zip-integrity.d.ts +0 -1
- package/dist/archive-zip-loader.d.ts +2 -1
- package/dist/archive-zip-loader.js +7 -0
- package/dist/archive-zip-manifest.d.ts +0 -1
- package/dist/archive-zip-names.d.ts +0 -1
- package/dist/archive-zip-names.js +7 -2
- package/dist/archive-zip-preflight.d.ts +0 -1
- package/dist/archive.d.ts +0 -1
- package/dist/archive.js +93 -164
- package/dist/async-lock.d.ts +0 -1
- package/dist/atomic.d.ts +0 -1
- package/dist/bounded-read-stream.d.ts +0 -1
- package/dist/bounded-read.d.ts +0 -1
- package/dist/byte-budget.d.ts +0 -1
- package/dist/byte-view.d.ts +2 -0
- package/dist/byte-view.js +13 -0
- package/dist/clone-metadata.d.ts +0 -1
- package/dist/config.d.ts +0 -1
- package/dist/containment.d.ts +0 -1
- package/dist/copy-file-input.d.ts +0 -1
- package/dist/copy-policy.d.ts +0 -1
- package/dist/copy-publication.d.ts +0 -1
- package/dist/copy-tree-portable.d.ts +0 -1
- package/dist/copy-tree-portable.js +9 -6
- package/dist/copy.d.ts +0 -1
- package/dist/copy.js +5 -5
- package/dist/create-directory.d.ts +0 -2
- package/dist/create-directory.js +3 -22
- package/dist/create-file-async.d.ts +0 -1
- package/dist/create-file.d.ts +0 -1
- package/dist/create-file.js +3 -14
- package/dist/create-owned-file.d.ts +0 -1
- package/dist/create.d.ts +1 -2
- package/dist/create.js +1 -1
- package/dist/creation-darwin.d.ts +0 -2
- package/dist/creation-darwin.js +0 -9
- package/dist/creation-file-state.d.ts +0 -1
- package/dist/creation-path.d.ts +2 -1
- package/dist/creation-path.js +12 -0
- package/dist/creation-permissions.d.ts +0 -1
- package/dist/creation-permissions.js +28 -38
- package/dist/deny-mutations.d.ts +2 -3
- package/dist/deny-mutations.js +55 -35
- package/dist/device-path.d.ts +0 -1
- package/dist/directory-durability.d.ts +6 -7
- package/dist/directory-entry-path.d.ts +0 -1
- package/dist/directory-guard.d.ts +2 -7
- package/dist/directory-guard.js +25 -56
- package/dist/directory-mode-node.d.ts +0 -1
- package/dist/directory-mode-owner.d.ts +0 -1
- package/dist/directory-receipt.d.ts +2 -3
- package/dist/directory-receipt.js +15 -19
- package/dist/durability.d.ts +0 -1
- package/dist/effective-uid.d.ts +0 -1
- package/dist/error-detail.d.ts +0 -1
- package/dist/errors.d.ts +0 -1
- package/dist/file-cleanup.d.ts +1 -1
- package/dist/file-cleanup.js +7 -4
- package/dist/file-contents.d.ts +5 -0
- package/dist/file-contents.js +40 -0
- package/dist/file-handle-transfer.d.ts +0 -1
- package/dist/file-hash.d.ts +0 -1
- package/dist/file-hash.js +186 -70
- package/dist/file-identity.d.ts +0 -1
- package/dist/file-lock-sync-acquisition.d.ts +22 -0
- package/dist/file-lock-sync-acquisition.js +98 -0
- package/dist/file-lock-sync-admission.d.ts +0 -2
- package/dist/file-lock-sync-admission.js +9 -48
- package/dist/file-lock-sync-root-acquire.d.ts +0 -1
- package/dist/file-lock-sync-root-acquire.js +35 -98
- package/dist/file-lock-sync-root-arbitration.d.ts +0 -1
- package/dist/file-lock-sync-root-held.d.ts +1 -3
- package/dist/file-lock-sync-root-held.js +7 -5
- package/dist/file-lock-sync-root-io.d.ts +0 -1
- package/dist/file-lock-sync-root-mutation.d.ts +4 -5
- package/dist/file-lock-sync-root-mutation.js +7 -9
- package/dist/file-lock-sync-root-options.d.ts +0 -1
- package/dist/file-lock-sync-root-registration.d.ts +0 -1
- package/dist/file-lock-sync-root.d.ts +1 -2
- package/dist/file-lock-sync-root.js +14 -87
- package/dist/file-lock-sync-stale-admission.d.ts +2 -7
- package/dist/file-lock-sync-stale-admission.js +24 -23
- package/dist/file-lock-sync.d.ts +0 -1
- package/dist/file-lock-sync.js +46 -128
- package/dist/file-lock.d.ts +0 -1
- package/dist/file-observation.d.ts +0 -1
- package/dist/file-store-boundary.d.ts +0 -2
- package/dist/file-store-boundary.js +6 -26
- package/dist/file-store-copy-source.d.ts +1 -2
- package/dist/file-store-copy-source.js +1 -1
- package/dist/file-store-limit.d.ts +1 -2
- package/dist/file-store-limit.js +2 -3
- package/dist/file-store-path.d.ts +0 -1
- package/dist/file-store-prune.d.ts +0 -1
- package/dist/file-store-sync-directory.d.ts +0 -1
- package/dist/file-store-sync-directory.js +194 -231
- package/dist/file-store-sync-write.d.ts +0 -1
- package/dist/file-store-sync-write.js +16 -26
- package/dist/file-store.d.ts +0 -1
- package/dist/file-store.js +6 -7
- package/dist/file-sync.d.ts +0 -1
- package/dist/filename.d.ts +0 -1
- package/dist/filename.js +1 -7
- package/dist/fs.d.ts +0 -1
- package/dist/guarded-mkdir.d.ts +0 -1
- package/dist/guarded-mkdir.js +6 -27
- package/dist/guarded-mutation.d.ts +0 -7
- package/dist/guarded-mutation.js +6 -11
- package/dist/guest-dispatch-python.d.ts +0 -1
- package/dist/guest-dispatch-python.js +41 -90
- package/dist/guest-native-python.d.ts +0 -1
- package/dist/guest.d.ts +0 -1
- package/dist/home-dir.d.ts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/install-path.d.ts +0 -1
- package/dist/install-path.js +2 -5
- package/dist/json-document-store.d.ts +0 -1
- package/dist/json-durable-queue-directory.d.ts +13 -1
- package/dist/json-durable-queue-directory.js +134 -0
- package/dist/json-durable-queue-ownership.d.ts +0 -1
- package/dist/json-durable-queue-ownership.js +43 -66
- package/dist/json-durable-queue-read.d.ts +0 -1
- package/dist/json-durable-queue-read.js +6 -6
- package/dist/json-durable-queue.d.ts +0 -1
- package/dist/json-durable-queue.js +17 -139
- package/dist/json-store.d.ts +0 -1
- package/dist/json-stringify.d.ts +0 -1
- package/dist/json.d.ts +0 -1
- package/dist/json.js +38 -90
- package/dist/local-file-access.d.ts +0 -1
- package/dist/local-file-access.js +3 -10
- package/dist/local-file-descriptor.d.ts +0 -1
- package/dist/local-roots.d.ts +0 -1
- package/dist/local-roots.js +19 -21
- package/dist/lock-config.d.ts +0 -1
- package/dist/move-path-cleanup.d.ts +5 -20
- package/dist/move-path-cleanup.js +57 -21
- package/dist/move-path-stage.d.ts +0 -1
- package/dist/move-path.d.ts +0 -1
- package/dist/move-path.js +62 -39
- package/dist/mutation-authority.d.ts +0 -1
- package/dist/native-binding.d.ts +0 -1
- package/dist/native-config.d.ts +0 -1
- package/dist/native-directory-observation.d.ts +0 -1
- package/dist/native-fallback-warning.d.ts +0 -1
- package/dist/native-operations.d.ts +1 -5
- package/dist/native-operations.js +2 -6
- package/dist/native-parent-admission.d.ts +0 -1
- package/dist/native-pinned-write-windows.d.ts +0 -1
- package/dist/native-pinned-write.d.ts +0 -1
- package/dist/native-pinned-write.js +4 -10
- package/dist/native-policy-directory-observation.d.ts +0 -1
- package/dist/native-policy-parent-windows.d.ts +0 -1
- package/dist/native-rename-outcome.d.ts +0 -1
- package/dist/native-staged-file.d.ts +17 -4
- package/dist/native-staged-file.js +63 -68
- package/dist/native.d.ts +0 -1
- package/dist/native.js +2 -2
- package/dist/opened-file-failure.d.ts +0 -1
- package/dist/opened-realpath.d.ts +0 -1
- package/dist/opened-realpath.js +11 -2
- package/dist/output.d.ts +0 -1
- package/dist/overwrite-file-handle.d.ts +0 -1
- package/dist/owner-dacl.d.ts +0 -1
- package/dist/path-case.d.ts +0 -1
- package/dist/path-policy.d.ts +0 -1
- package/dist/path-prefix.d.ts +0 -1
- package/dist/path-scope-lexical.d.ts +0 -1
- package/dist/path-segment-route.d.ts +0 -1
- package/dist/path-suffix-aliases.d.ts +0 -1
- package/dist/path.d.ts +0 -1
- package/dist/path.js +2 -1
- package/dist/permission-exec.d.ts +0 -1
- package/dist/permission-exec.js +19 -25
- package/dist/permissions-public.d.ts +0 -1
- package/dist/permissions-windows.d.ts +2 -10
- package/dist/permissions-windows.js +10 -30
- package/dist/permissions.d.ts +0 -1
- package/dist/permissions.js +11 -33
- package/dist/pinned-mutation-admission.d.ts +0 -1
- package/dist/pinned-mutation-observation.d.ts +0 -1
- package/dist/pinned-mutation-shared-route.d.ts +0 -1
- package/dist/pinned-open.d.ts +1 -1
- package/dist/pinned-open.js +1 -1
- package/dist/pinned-operation.d.ts +0 -1
- package/dist/pinned-write-input.d.ts +0 -1
- package/dist/pinned-write-input.js +11 -1
- package/dist/pinned-write-mode.d.ts +3 -4
- package/dist/pinned-write-mode.js +15 -8
- package/dist/pinned-write-staged.d.ts +0 -1
- package/dist/pinned-write-staged.js +10 -11
- package/dist/pinned-write-types.d.ts +9 -21
- package/dist/pinned-write.d.ts +0 -1
- package/dist/pinned-write.js +17 -13
- package/dist/positional-read.d.ts +0 -1
- package/dist/private-directory.d.ts +0 -1
- package/dist/private-producer-handoff-sync.d.ts +0 -1
- package/dist/private-producer-handoff-sync.js +9 -51
- package/dist/private-producer-handoff.d.ts +20 -1
- package/dist/private-producer-handoff.js +69 -46
- package/dist/private-temp-workspace.d.ts +0 -1
- package/dist/private-temp-workspace.js +11 -36
- package/dist/publish-copy-stage.d.ts +0 -1
- package/dist/publish-file-failure.d.ts +0 -1
- package/dist/publish-file.d.ts +2 -3
- package/dist/publish-file.js +56 -96
- package/dist/read-open-flags.d.ts +0 -1
- package/dist/read-opened-file.d.ts +0 -1
- package/dist/realpath.d.ts +0 -1
- package/dist/recursive-mkdir-path.d.ts +0 -1
- package/dist/regular-file.d.ts +0 -1
- package/dist/regular-file.js +107 -178
- package/dist/replace-directory.d.ts +0 -1
- package/dist/replace-file-copy-fallback.d.ts +0 -1
- package/dist/replace-file-copy-fallback.js +42 -29
- package/dist/replace-file-copy-source.d.ts +0 -1
- package/dist/replace-file-copy-source.js +19 -23
- package/dist/replace-file-descriptor.d.ts +0 -1
- package/dist/replace-file-descriptor.js +16 -17
- package/dist/replace-file-mode.d.ts +0 -1
- package/dist/replace-file-rename-policy.d.ts +0 -1
- package/dist/replace-file-temp-owner.d.ts +12 -13
- package/dist/replace-file-temp-owner.js +72 -91
- package/dist/replace-file.d.ts +0 -1
- package/dist/replace-file.js +9 -13
- package/dist/retained-directory-replacement.d.ts +0 -1
- package/dist/root-boundary.d.ts +0 -1
- package/dist/root-context.d.ts +0 -1
- package/dist/root-create-input.d.ts +0 -1
- package/dist/root-directory-creation.d.ts +0 -1
- package/dist/root-directory-list.d.ts +0 -1
- package/dist/root-directory-list.js +20 -3
- package/dist/root-directory.d.ts +0 -1
- package/dist/root-entries.d.ts +0 -1
- package/dist/root-errors.d.ts +0 -1
- package/dist/root-file-final-admission.d.ts +1 -2
- package/dist/root-file-final-admission.js +5 -2
- package/dist/root-file.d.ts +0 -1
- package/dist/root-file.js +3 -2
- package/dist/root-impl.d.ts +2 -10
- package/dist/root-impl.js +164 -111
- package/dist/root-move-noreplace.d.ts +2 -1
- package/dist/root-move-noreplace.js +2 -2
- package/dist/root-move-preflight.d.ts +0 -1
- package/dist/root-observed-path.d.ts +0 -1
- package/dist/root-options.d.ts +0 -1
- package/dist/root-path-errors.d.ts +0 -1
- package/dist/root-path-existing.d.ts +3 -1
- package/dist/root-path-existing.js +39 -18
- package/dist/root-path-observation.d.ts +0 -1
- package/dist/root-path-stat.d.ts +0 -1
- package/dist/root-path.d.ts +0 -1
- package/dist/root-path.js +60 -188
- package/dist/root-paths-lexical.d.ts +0 -1
- package/dist/root-paths.d.ts +0 -1
- package/dist/root-read-admission.d.ts +0 -1
- package/dist/root-read-admission.js +31 -39
- package/dist/root-remove-identity.d.ts +0 -1
- package/dist/root-remove-receipt.d.ts +0 -1
- package/dist/root-remove.d.ts +0 -1
- package/dist/root-remove.js +15 -1
- package/dist/root-symlink-policy.d.ts +0 -1
- package/dist/root-walk.d.ts +0 -1
- package/dist/root-write-admission.d.ts +0 -1
- package/dist/root-write-compatibility.d.ts +0 -1
- package/dist/root-write-complete-parent.d.ts +0 -1
- package/dist/root-write-lock-binding.d.ts +0 -1
- package/dist/root-write-mode.d.ts +0 -1
- package/dist/root-write-publication.d.ts +0 -1
- package/dist/root-write-verification.d.ts +0 -1
- package/dist/root.d.ts +0 -1
- package/dist/safe-path-segment.d.ts +1 -2
- package/dist/safe-path-segment.js +2 -5
- package/dist/secret-file.d.ts +0 -1
- package/dist/secret-file.js +7 -17
- package/dist/secret-read-async.d.ts +0 -1
- package/dist/secret-read-async.js +5 -5
- package/dist/secret-read-policy.d.ts +0 -1
- package/dist/secret.d.ts +0 -1
- package/dist/secure-file-windows.d.ts +0 -6
- package/dist/secure-file-windows.js +13 -28
- package/dist/secure-file.d.ts +0 -1
- package/dist/secure-file.js +9 -9
- package/dist/secure-temp-dir.d.ts +0 -1
- package/dist/secure-temp-repair.d.ts +0 -1
- package/dist/sibling-staged-file.d.ts +0 -1
- package/dist/sibling-staged-file.js +32 -39
- package/dist/sibling-temp.d.ts +0 -1
- package/dist/sidecar-lock-acquire.d.ts +1 -2
- package/dist/sidecar-lock-acquire.js +35 -58
- package/dist/sidecar-lock-admission-context.d.ts +0 -1
- package/dist/sidecar-lock-admission-parser.d.ts +0 -1
- package/dist/sidecar-lock-admission.d.ts +1 -5
- package/dist/sidecar-lock-admission.js +1 -7
- package/dist/sidecar-lock-handle.d.ts +3 -1
- package/dist/sidecar-lock-handle.js +6 -0
- package/dist/sidecar-lock-policy.d.ts +3 -1
- package/dist/sidecar-lock-policy.js +16 -0
- package/dist/sidecar-lock-reclaim.d.ts +1 -2
- package/dist/sidecar-lock-reclaim.js +11 -8
- package/dist/sidecar-lock-registration.d.ts +13 -0
- package/dist/sidecar-lock-registration.js +47 -0
- package/dist/sidecar-lock-root.d.ts +0 -1
- package/dist/sidecar-lock-stale-admission.d.ts +0 -1
- package/dist/sidecar-lock-target.d.ts +0 -1
- package/dist/sidecar-lock-types.d.ts +0 -1
- package/dist/sidecar-lock.d.ts +0 -1
- package/dist/sidecar-lock.js +19 -88
- package/dist/staged-directory.d.ts +2 -3
- package/dist/staged-file-settlement.d.ts +0 -1
- package/dist/staged-file-types.d.ts +0 -1
- package/dist/standalone-publication-path.d.ts +0 -1
- package/dist/stat-observation.d.ts +0 -1
- package/dist/store.d.ts +0 -1
- package/dist/strict-file-identity.d.ts +1 -2
- package/dist/strict-file-identity.js +9 -9
- package/dist/string-coerce.d.ts +0 -1
- package/dist/suppressed-error.d.ts +0 -1
- package/dist/symlink-parents.d.ts +0 -1
- package/dist/symlink-parents.js +2 -27
- package/dist/temp-cleanup.d.ts +0 -1
- package/dist/temp-target.d.ts +0 -1
- package/dist/temp-target.js +7 -46
- package/dist/temp-workspace-admission.d.ts +0 -8
- package/dist/temp-workspace-admission.js +0 -4
- package/dist/temp-workspace-child-admission.d.ts +0 -4
- package/dist/temp-workspace-child-admission.js +0 -12
- package/dist/temp-workspace-descriptor.d.ts +0 -6
- package/dist/temp-workspace-descriptor.js +0 -2
- package/dist/temp-workspace-identity.d.ts +0 -1
- package/dist/temp-workspace-owner.d.ts +1 -1
- package/dist/temp-workspace-owner.js +49 -26
- package/dist/temp-workspace-permissions.d.ts +0 -1
- package/dist/temp-workspace-types.d.ts +0 -1
- package/dist/temp.d.ts +0 -1
- package/dist/test-hooks.d.ts +0 -1
- package/dist/text-atomic.d.ts +0 -1
- package/dist/timing.d.ts +0 -1
- package/dist/trash.d.ts +0 -1
- package/dist/types.d.ts +0 -1
- package/dist/unicode-path.d.ts +0 -1
- package/dist/unicode-path.js +3 -0
- package/dist/walk.d.ts +0 -1
- package/dist/walk.js +4 -2
- package/dist/windows-command.d.ts +0 -1
- package/dist/windows-owner.d.ts +0 -1
- package/dist/windows-owner.js +4 -1
- package/dist/windows-path-alias.d.ts +0 -1
- package/dist/windows-path-alias.js +7 -43
- package/dist/windows-path-syntax.d.ts +5 -0
- package/dist/windows-path-syntax.js +21 -0
- package/dist/windows-security-command.d.ts +0 -1
- package/dist/windows-security-facts.d.ts +0 -1
- package/dist/write-file-handle.d.ts +7 -1
- package/dist/write-file-handle.js +23 -0
- package/dist/write-open-flags.d.ts +0 -1
- package/dist/write-open-flags.js +1 -8
- package/dist/write-queue.d.ts +0 -1
- package/dist/write-queue.js +1 -4
- package/docs/advanced.md +68 -1
- package/docs/archive.md +41 -2
- package/docs/atomic.md +43 -5
- package/docs/contributing.md +4 -0
- package/docs/copy.md +2 -0
- package/docs/creation.md +8 -4
- package/docs/durability.md +35 -0
- package/docs/file-contents.md +68 -0
- package/docs/json.md +5 -4
- package/docs/local-roots.md +2 -0
- package/docs/mutation-policy-proof.md +11 -7
- package/docs/native.md +9 -8
- package/docs/path.md +4 -4
- package/docs/permissions.md +6 -0
- package/docs/public-api.md +5 -0
- package/docs/quickstart.md +1 -1
- package/docs/reading.md +2 -2
- package/docs/regular-file.md +3 -0
- package/docs/root.md +19 -0
- package/docs/secret-file.md +4 -0
- package/docs/sidecar-lock.md +9 -1
- package/docs/staged-file.md +4 -3
- package/docs/store.md +3 -1
- package/docs/temp.md +4 -1
- package/docs/types.md +18 -2
- package/docs/walk.md +7 -0
- package/docs/writing.md +18 -5
- package/package.json +8 -9
- package/dist/absolute-path.d.ts.map +0 -1
- package/dist/advanced.d.ts.map +0 -1
- package/dist/archive-crc32.d.ts.map +0 -1
- package/dist/archive-deadline.d.ts.map +0 -1
- package/dist/archive-durability.d.ts.map +0 -1
- package/dist/archive-entry.d.ts.map +0 -1
- package/dist/archive-errors.d.ts.map +0 -1
- package/dist/archive-gzip-tail.d.ts.map +0 -1
- package/dist/archive-input.d.ts.map +0 -1
- package/dist/archive-kind.d.ts.map +0 -1
- package/dist/archive-limits.d.ts.map +0 -1
- package/dist/archive-merge.d.ts.map +0 -1
- package/dist/archive-native.d.ts.map +0 -1
- package/dist/archive-options.d.ts.map +0 -1
- package/dist/archive-parser-errors.d.ts.map +0 -1
- package/dist/archive-plan.d.ts.map +0 -1
- package/dist/archive-policy.d.ts.map +0 -1
- package/dist/archive-read.d.ts.map +0 -1
- package/dist/archive-staging.d.ts.map +0 -1
- package/dist/archive-tar-inspect.d.ts.map +0 -1
- package/dist/archive-tar-stream.d.ts.map +0 -1
- package/dist/archive-tar-wasm.d.ts.map +0 -1
- package/dist/archive-tar.d.ts.map +0 -1
- package/dist/archive-zip-admission.d.ts.map +0 -1
- package/dist/archive-zip-count.d.ts.map +0 -1
- package/dist/archive-zip-directory.d.ts.map +0 -1
- package/dist/archive-zip-entry.d.ts.map +0 -1
- package/dist/archive-zip-integrity.d.ts.map +0 -1
- package/dist/archive-zip-loader.d.ts.map +0 -1
- package/dist/archive-zip-manifest.d.ts.map +0 -1
- package/dist/archive-zip-names.d.ts.map +0 -1
- package/dist/archive-zip-preflight.d.ts.map +0 -1
- package/dist/archive.d.ts.map +0 -1
- package/dist/async-lock.d.ts.map +0 -1
- package/dist/atomic.d.ts.map +0 -1
- package/dist/bounded-read-stream.d.ts.map +0 -1
- package/dist/bounded-read.d.ts.map +0 -1
- package/dist/byte-budget.d.ts.map +0 -1
- package/dist/clone-metadata.d.ts.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/containment.d.ts.map +0 -1
- package/dist/copy-file-input.d.ts.map +0 -1
- package/dist/copy-policy.d.ts.map +0 -1
- package/dist/copy-publication.d.ts.map +0 -1
- package/dist/copy-tree-portable.d.ts.map +0 -1
- package/dist/copy.d.ts.map +0 -1
- package/dist/create-directory.d.ts.map +0 -1
- package/dist/create-file-async.d.ts.map +0 -1
- package/dist/create-file.d.ts.map +0 -1
- package/dist/create-owned-file.d.ts.map +0 -1
- package/dist/create.d.ts.map +0 -1
- package/dist/creation-darwin.d.ts.map +0 -1
- package/dist/creation-file-state.d.ts.map +0 -1
- package/dist/creation-path.d.ts.map +0 -1
- package/dist/creation-permissions.d.ts.map +0 -1
- package/dist/deny-mutations.d.ts.map +0 -1
- package/dist/device-path.d.ts.map +0 -1
- package/dist/directory-durability.d.ts.map +0 -1
- package/dist/directory-entry-path.d.ts.map +0 -1
- package/dist/directory-guard.d.ts.map +0 -1
- package/dist/directory-mode-node.d.ts.map +0 -1
- package/dist/directory-mode-owner.d.ts.map +0 -1
- package/dist/directory-receipt.d.ts.map +0 -1
- package/dist/durability.d.ts.map +0 -1
- package/dist/effective-uid.d.ts.map +0 -1
- package/dist/error-detail.d.ts.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/file-cleanup.d.ts.map +0 -1
- package/dist/file-handle-transfer.d.ts.map +0 -1
- package/dist/file-hash.d.ts.map +0 -1
- package/dist/file-identity.d.ts.map +0 -1
- package/dist/file-lock-sync-admission.d.ts.map +0 -1
- package/dist/file-lock-sync-root-acquire.d.ts.map +0 -1
- package/dist/file-lock-sync-root-arbitration.d.ts.map +0 -1
- package/dist/file-lock-sync-root-held.d.ts.map +0 -1
- package/dist/file-lock-sync-root-io.d.ts.map +0 -1
- package/dist/file-lock-sync-root-mutation.d.ts.map +0 -1
- package/dist/file-lock-sync-root-options.d.ts.map +0 -1
- package/dist/file-lock-sync-root-registration.d.ts.map +0 -1
- package/dist/file-lock-sync-root.d.ts.map +0 -1
- package/dist/file-lock-sync-stale-admission.d.ts.map +0 -1
- package/dist/file-lock-sync.d.ts.map +0 -1
- package/dist/file-lock.d.ts.map +0 -1
- package/dist/file-observation.d.ts.map +0 -1
- package/dist/file-store-boundary.d.ts.map +0 -1
- package/dist/file-store-copy-source.d.ts.map +0 -1
- package/dist/file-store-limit.d.ts.map +0 -1
- package/dist/file-store-path.d.ts.map +0 -1
- package/dist/file-store-prune.d.ts.map +0 -1
- package/dist/file-store-sync-directory.d.ts.map +0 -1
- package/dist/file-store-sync-write.d.ts.map +0 -1
- package/dist/file-store.d.ts.map +0 -1
- package/dist/file-sync.d.ts.map +0 -1
- package/dist/filename.d.ts.map +0 -1
- package/dist/fs.d.ts.map +0 -1
- package/dist/guarded-mkdir.d.ts.map +0 -1
- package/dist/guarded-mutation.d.ts.map +0 -1
- package/dist/guest-dispatch-python.d.ts.map +0 -1
- package/dist/guest-native-python.d.ts.map +0 -1
- package/dist/guest.d.ts.map +0 -1
- package/dist/home-dir.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/install-path.d.ts.map +0 -1
- package/dist/json-document-store.d.ts.map +0 -1
- package/dist/json-durable-queue-directory.d.ts.map +0 -1
- package/dist/json-durable-queue-ownership.d.ts.map +0 -1
- package/dist/json-durable-queue-paths.d.ts +0 -11
- package/dist/json-durable-queue-paths.d.ts.map +0 -1
- package/dist/json-durable-queue-paths.js +0 -42
- package/dist/json-durable-queue-read.d.ts.map +0 -1
- package/dist/json-durable-queue.d.ts.map +0 -1
- package/dist/json-store.d.ts.map +0 -1
- package/dist/json-stringify.d.ts.map +0 -1
- package/dist/json.d.ts.map +0 -1
- package/dist/local-file-access.d.ts.map +0 -1
- package/dist/local-file-descriptor.d.ts.map +0 -1
- package/dist/local-roots.d.ts.map +0 -1
- package/dist/lock-config.d.ts.map +0 -1
- package/dist/move-path-cleanup.d.ts.map +0 -1
- package/dist/move-path-stage.d.ts.map +0 -1
- package/dist/move-path.d.ts.map +0 -1
- package/dist/mutation-authority.d.ts.map +0 -1
- package/dist/native-binding.d.ts.map +0 -1
- package/dist/native-config.d.ts.map +0 -1
- package/dist/native-directory-observation.d.ts.map +0 -1
- package/dist/native-fallback-warning.d.ts.map +0 -1
- package/dist/native-operations.d.ts.map +0 -1
- package/dist/native-parent-admission.d.ts.map +0 -1
- package/dist/native-pinned-write-windows.d.ts.map +0 -1
- package/dist/native-pinned-write.d.ts.map +0 -1
- package/dist/native-policy-directory-observation.d.ts.map +0 -1
- package/dist/native-policy-parent-windows.d.ts.map +0 -1
- package/dist/native-rename-outcome.d.ts.map +0 -1
- package/dist/native-staged-file.d.ts.map +0 -1
- package/dist/native.d.ts.map +0 -1
- package/dist/opened-file-failure.d.ts.map +0 -1
- package/dist/opened-realpath.d.ts.map +0 -1
- package/dist/output.d.ts.map +0 -1
- package/dist/overwrite-file-handle.d.ts.map +0 -1
- package/dist/owner-dacl.d.ts.map +0 -1
- package/dist/path-case.d.ts.map +0 -1
- package/dist/path-policy.d.ts.map +0 -1
- package/dist/path-prefix.d.ts.map +0 -1
- package/dist/path-scope-lexical.d.ts.map +0 -1
- package/dist/path-segment-route.d.ts.map +0 -1
- package/dist/path-suffix-aliases.d.ts.map +0 -1
- package/dist/path.d.ts.map +0 -1
- package/dist/permission-exec.d.ts.map +0 -1
- package/dist/permissions-public.d.ts.map +0 -1
- package/dist/permissions-windows.d.ts.map +0 -1
- package/dist/permissions.d.ts.map +0 -1
- package/dist/pinned-mutation-admission.d.ts.map +0 -1
- package/dist/pinned-mutation-observation.d.ts.map +0 -1
- package/dist/pinned-mutation-shared-route.d.ts.map +0 -1
- package/dist/pinned-open.d.ts.map +0 -1
- package/dist/pinned-operation.d.ts.map +0 -1
- package/dist/pinned-write-input.d.ts.map +0 -1
- package/dist/pinned-write-mode.d.ts.map +0 -1
- package/dist/pinned-write-staged.d.ts.map +0 -1
- package/dist/pinned-write-types.d.ts.map +0 -1
- package/dist/pinned-write.d.ts.map +0 -1
- package/dist/positional-read.d.ts.map +0 -1
- package/dist/private-directory.d.ts.map +0 -1
- package/dist/private-producer-handoff-sync.d.ts.map +0 -1
- package/dist/private-producer-handoff.d.ts.map +0 -1
- package/dist/private-temp-workspace.d.ts.map +0 -1
- package/dist/publish-copy-stage.d.ts.map +0 -1
- package/dist/publish-file-failure.d.ts.map +0 -1
- package/dist/publish-file.d.ts.map +0 -1
- package/dist/read-open-flags.d.ts.map +0 -1
- package/dist/read-opened-file.d.ts.map +0 -1
- package/dist/realpath.d.ts.map +0 -1
- package/dist/recursive-mkdir-path.d.ts.map +0 -1
- package/dist/regular-file.d.ts.map +0 -1
- package/dist/replace-directory.d.ts.map +0 -1
- package/dist/replace-file-copy-fallback.d.ts.map +0 -1
- package/dist/replace-file-copy-source.d.ts.map +0 -1
- package/dist/replace-file-descriptor.d.ts.map +0 -1
- package/dist/replace-file-mode.d.ts.map +0 -1
- package/dist/replace-file-rename-policy.d.ts.map +0 -1
- package/dist/replace-file-temp-owner.d.ts.map +0 -1
- package/dist/replace-file.d.ts.map +0 -1
- package/dist/retained-directory-replacement.d.ts.map +0 -1
- package/dist/root-boundary.d.ts.map +0 -1
- package/dist/root-context.d.ts.map +0 -1
- package/dist/root-create-input.d.ts.map +0 -1
- package/dist/root-directory-creation.d.ts.map +0 -1
- package/dist/root-directory-list.d.ts.map +0 -1
- package/dist/root-directory.d.ts.map +0 -1
- package/dist/root-entries.d.ts.map +0 -1
- package/dist/root-errors.d.ts.map +0 -1
- package/dist/root-file-final-admission.d.ts.map +0 -1
- package/dist/root-file.d.ts.map +0 -1
- package/dist/root-impl.d.ts.map +0 -1
- package/dist/root-move-noreplace.d.ts.map +0 -1
- package/dist/root-move-preflight.d.ts.map +0 -1
- package/dist/root-observed-path.d.ts.map +0 -1
- package/dist/root-options.d.ts.map +0 -1
- package/dist/root-path-errors.d.ts.map +0 -1
- package/dist/root-path-existing.d.ts.map +0 -1
- package/dist/root-path-observation.d.ts.map +0 -1
- package/dist/root-path-stat.d.ts.map +0 -1
- package/dist/root-path-symlink.d.ts +0 -7
- package/dist/root-path-symlink.d.ts.map +0 -1
- package/dist/root-path-symlink.js +0 -55
- package/dist/root-path.d.ts.map +0 -1
- package/dist/root-paths-lexical.d.ts.map +0 -1
- package/dist/root-paths.d.ts.map +0 -1
- package/dist/root-read-admission.d.ts.map +0 -1
- package/dist/root-remove-identity.d.ts.map +0 -1
- package/dist/root-remove-receipt.d.ts.map +0 -1
- package/dist/root-remove.d.ts.map +0 -1
- package/dist/root-symlink-policy.d.ts.map +0 -1
- package/dist/root-walk.d.ts.map +0 -1
- package/dist/root-write-admission.d.ts.map +0 -1
- package/dist/root-write-compatibility.d.ts.map +0 -1
- package/dist/root-write-complete-parent.d.ts.map +0 -1
- package/dist/root-write-lock-binding.d.ts.map +0 -1
- package/dist/root-write-mode.d.ts.map +0 -1
- package/dist/root-write-publication.d.ts.map +0 -1
- package/dist/root-write-verification.d.ts.map +0 -1
- package/dist/root.d.ts.map +0 -1
- package/dist/safe-path-segment.d.ts.map +0 -1
- package/dist/secret-file.d.ts.map +0 -1
- package/dist/secret-read-async.d.ts.map +0 -1
- package/dist/secret-read-policy.d.ts.map +0 -1
- package/dist/secret.d.ts.map +0 -1
- package/dist/secure-file-windows.d.ts.map +0 -1
- package/dist/secure-file.d.ts.map +0 -1
- package/dist/secure-temp-dir.d.ts.map +0 -1
- package/dist/secure-temp-repair.d.ts.map +0 -1
- package/dist/sibling-staged-file.d.ts.map +0 -1
- package/dist/sibling-temp.d.ts.map +0 -1
- package/dist/sidecar-lock-acquire.d.ts.map +0 -1
- package/dist/sidecar-lock-admission-context.d.ts.map +0 -1
- package/dist/sidecar-lock-admission-parser.d.ts.map +0 -1
- package/dist/sidecar-lock-admission.d.ts.map +0 -1
- package/dist/sidecar-lock-handle.d.ts.map +0 -1
- package/dist/sidecar-lock-policy.d.ts.map +0 -1
- package/dist/sidecar-lock-reclaim.d.ts.map +0 -1
- package/dist/sidecar-lock-root.d.ts.map +0 -1
- package/dist/sidecar-lock-stale-admission.d.ts.map +0 -1
- package/dist/sidecar-lock-target.d.ts.map +0 -1
- package/dist/sidecar-lock-types.d.ts.map +0 -1
- package/dist/sidecar-lock.d.ts.map +0 -1
- package/dist/staged-directory.d.ts.map +0 -1
- package/dist/staged-file-settlement.d.ts.map +0 -1
- package/dist/staged-file-types.d.ts.map +0 -1
- package/dist/standalone-publication-path.d.ts.map +0 -1
- package/dist/stat-observation.d.ts.map +0 -1
- package/dist/store.d.ts.map +0 -1
- package/dist/strict-file-identity.d.ts.map +0 -1
- package/dist/string-coerce.d.ts.map +0 -1
- package/dist/suppressed-error.d.ts.map +0 -1
- package/dist/symlink-parents.d.ts.map +0 -1
- package/dist/temp-cleanup.d.ts.map +0 -1
- package/dist/temp-target.d.ts.map +0 -1
- package/dist/temp-workspace-admission.d.ts.map +0 -1
- package/dist/temp-workspace-child-admission.d.ts.map +0 -1
- package/dist/temp-workspace-descriptor.d.ts.map +0 -1
- package/dist/temp-workspace-identity.d.ts.map +0 -1
- package/dist/temp-workspace-owner.d.ts.map +0 -1
- package/dist/temp-workspace-permissions.d.ts.map +0 -1
- package/dist/temp-workspace-types.d.ts.map +0 -1
- package/dist/temp.d.ts.map +0 -1
- package/dist/test-hooks.d.ts.map +0 -1
- package/dist/text-atomic.d.ts.map +0 -1
- package/dist/timing.d.ts.map +0 -1
- package/dist/trash.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/unicode-path.d.ts.map +0 -1
- package/dist/walk.d.ts.map +0 -1
- package/dist/windows-command.d.ts.map +0 -1
- package/dist/windows-owner.d.ts.map +0 -1
- package/dist/windows-path-alias.d.ts.map +0 -1
- package/dist/windows-security-command.d.ts.map +0 -1
- package/dist/windows-security-facts.d.ts.map +0 -1
- package/dist/write-file-handle.d.ts.map +0 -1
- package/dist/write-open-flags.d.ts.map +0 -1
- package/dist/write-queue.d.ts.map +0 -1
package/dist/permissions.d.ts
CHANGED
|
@@ -57,4 +57,3 @@ export declare function isGroupWritable(bits: number | null): boolean;
|
|
|
57
57
|
export declare function isWorldReadable(bits: number | null): boolean;
|
|
58
58
|
export declare function isGroupReadable(bits: number | null): boolean;
|
|
59
59
|
export declare function formatPosixMode(mode: number): string;
|
|
60
|
-
//# sourceMappingURL=permissions.d.ts.map
|
package/dist/permissions.js
CHANGED
|
@@ -39,23 +39,9 @@ export async function inspectPathPermissions(targetPath, opts) {
|
|
|
39
39
|
const admissionPlatform = process.platform === "win32"
|
|
40
40
|
? process.platform
|
|
41
41
|
: (opts?.platform ?? process.platform);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
ok: false,
|
|
46
|
-
isSymlink: false,
|
|
47
|
-
isDir: false,
|
|
48
|
-
mode: null,
|
|
49
|
-
bits: null,
|
|
50
|
-
source: "unknown",
|
|
51
|
-
worldWritable: false,
|
|
52
|
-
groupWritable: false,
|
|
53
|
-
worldReadable: false,
|
|
54
|
-
groupReadable: false,
|
|
55
|
-
error: st.error,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
const st = await safeStatAdmitted(targetPath);
|
|
42
|
+
const st = hasWindowsPathAlias(targetPath, "filesystem", admissionPlatform)
|
|
43
|
+
? failedSafeStat("Path uses a Windows filesystem namespace alias")
|
|
44
|
+
: await safeStatAdmitted(targetPath);
|
|
59
45
|
if (!st.ok) {
|
|
60
46
|
return {
|
|
61
47
|
ok: false,
|
|
@@ -85,28 +71,20 @@ export async function inspectPathPermissions(targetPath, opts) {
|
|
|
85
71
|
}
|
|
86
72
|
const bits = modeBits(effectiveMode);
|
|
87
73
|
const platform = opts?.platform ?? process.platform;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
targetPath,
|
|
91
|
-
stat: st,
|
|
92
|
-
effectiveIsDir,
|
|
93
|
-
effectiveMode,
|
|
94
|
-
bits,
|
|
95
|
-
opts,
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
return {
|
|
74
|
+
const windows = platform === "win32";
|
|
75
|
+
const permissions = {
|
|
99
76
|
ok: true,
|
|
100
77
|
isSymlink: st.isSymlink,
|
|
101
78
|
isDir: effectiveIsDir,
|
|
102
79
|
mode: effectiveMode,
|
|
103
80
|
bits,
|
|
104
|
-
source: "posix",
|
|
105
|
-
worldWritable: isWorldWritable(bits),
|
|
106
|
-
groupWritable: isGroupWritable(bits),
|
|
107
|
-
worldReadable: isWorldReadable(bits),
|
|
108
|
-
groupReadable: isGroupReadable(bits),
|
|
81
|
+
source: windows ? "unknown" : "posix",
|
|
82
|
+
worldWritable: !windows && isWorldWritable(bits),
|
|
83
|
+
groupWritable: !windows && isGroupWritable(bits),
|
|
84
|
+
worldReadable: !windows && isWorldReadable(bits),
|
|
85
|
+
groupReadable: !windows && isGroupReadable(bits),
|
|
109
86
|
};
|
|
87
|
+
return windows ? await inspectWindowsPermissions(targetPath, permissions, opts) : permissions;
|
|
110
88
|
}
|
|
111
89
|
export function formatPermissionDetail(targetPath, perms) {
|
|
112
90
|
if (perms.source === "windows-acl") {
|
|
@@ -36,4 +36,3 @@ export declare function mutationObservationCurrent(observation: MutationPathObse
|
|
|
36
36
|
export declare function mutationObservationsCurrent(observations: readonly MutationPathObservation[], directories: readonly MutationDirectoryObservation[]): boolean;
|
|
37
37
|
export declare function advanceMutationObservation(observation: MutationPathObservation, parent: MutationDirectoryObservation, child: MutationDirectoryObservation): MutationPathObservation | undefined;
|
|
38
38
|
export {};
|
|
39
|
-
//# sourceMappingURL=pinned-mutation-observation.d.ts.map
|
package/dist/pinned-open.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export type PinnedOpenSyncResult = {
|
|
|
5
5
|
path: string;
|
|
6
6
|
fd: number;
|
|
7
7
|
stat: fs.Stats;
|
|
8
|
+
identity: fs.BigIntStats;
|
|
8
9
|
} | {
|
|
9
10
|
ok: false;
|
|
10
11
|
reason: PinnedOpenSyncFailureReason;
|
|
@@ -27,4 +28,3 @@ export declare function openPinnedFileSync(params: {
|
|
|
27
28
|
ioFs?: PinnedOpenSyncFs;
|
|
28
29
|
finalAdmission?: PinnedOpenSyncFinalAdmission;
|
|
29
30
|
}): PinnedOpenSyncResult;
|
|
30
|
-
//# sourceMappingURL=pinned-open.d.ts.map
|
package/dist/pinned-open.js
CHANGED
|
@@ -63,7 +63,7 @@ export function openPinnedFileSync(params) {
|
|
|
63
63
|
preRealpathIdentity: pathIdentity,
|
|
64
64
|
descriptorIdentity: identity,
|
|
65
65
|
}) ?? realPath;
|
|
66
|
-
const opened = { ok: true, path: admittedPath, fd, stat: openedStat };
|
|
66
|
+
const opened = { ok: true, path: admittedPath, fd, stat: openedStat, identity };
|
|
67
67
|
fd = null;
|
|
68
68
|
return opened;
|
|
69
69
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import type { FileHandle } from "node:fs/promises";
|
|
2
2
|
import type { PinnedWriteInput } from "./pinned-write-types.js";
|
|
3
3
|
export declare function writePinnedInput(target: FileHandle | number, input: PinnedWriteInput, maxBytes?: number, assertBeforeMutation?: () => void): Promise<void>;
|
|
4
|
-
//# sourceMappingURL=pinned-write-input.d.ts.map
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
+
import { types } from "node:util";
|
|
2
|
+
import { snapshotByteView } from "./byte-view.js";
|
|
1
3
|
import { writeCopyFileToFd } from "./copy-file-input.js";
|
|
2
4
|
import { FsSafeError } from "./errors.js";
|
|
3
5
|
import { writeAllToFile } from "./write-file-handle.js";
|
|
6
|
+
const isUint8Array = types.isUint8Array;
|
|
7
|
+
function streamChunkBytes(chunk) {
|
|
8
|
+
if (Buffer.isBuffer(chunk))
|
|
9
|
+
return chunk;
|
|
10
|
+
if (!isUint8Array(chunk))
|
|
11
|
+
return Buffer.from(chunk);
|
|
12
|
+
return snapshotByteView(chunk);
|
|
13
|
+
}
|
|
4
14
|
export async function writePinnedInput(target, input, maxBytes, assertBeforeMutation) {
|
|
5
15
|
if (input.kind === "file") {
|
|
6
16
|
await writeCopyFileToFd(typeof target === "number" ? target : target.fd, input, maxBytes, assertBeforeMutation);
|
|
@@ -19,7 +29,7 @@ export async function writePinnedInput(target, input, maxBytes, assertBeforeMuta
|
|
|
19
29
|
}
|
|
20
30
|
else {
|
|
21
31
|
for await (const chunk of input.stream) {
|
|
22
|
-
await write(
|
|
32
|
+
await write(streamChunkBytes(chunk));
|
|
23
33
|
}
|
|
24
34
|
}
|
|
25
35
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { FileHandle } from "node:fs/promises";
|
|
2
|
-
export declare function assertPinnedWriteMode(fd: number, mode: number): void;
|
|
3
|
-
export declare function preparePinnedWriteMode(handle: FileHandle, createdMode: number, assertBeforeMutation?: () => void): Promise<(() => void) | undefined>;
|
|
4
|
-
export declare function pinnedWriteModeAssertion(fd: number, mode: number, assertBeforeMutation?: () => void): () => void;
|
|
5
|
-
//# sourceMappingURL=pinned-write-mode.d.ts.map
|
|
2
|
+
export declare function assertPinnedWriteMode(fd: number, mode: number, privateCreation?: boolean): void;
|
|
3
|
+
export declare function preparePinnedWriteMode(handle: FileHandle, createdMode: number, assertBeforeMutation?: () => void, privateCreation?: boolean): Promise<(() => void) | undefined>;
|
|
4
|
+
export declare function pinnedWriteModeAssertion(fd: number, mode: number, assertBeforeMutation?: () => void, privateCreation?: boolean): () => void;
|
|
@@ -1,24 +1,31 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import { FsSafeError } from "./errors.js";
|
|
3
3
|
import { assertSynchronousCallbackResult } from "./mutation-authority.js";
|
|
4
|
-
|
|
4
|
+
import { assertPrivateCreationFile } from "./creation-file-state.js";
|
|
5
|
+
export function assertPinnedWriteMode(fd, mode, privateCreation = false) {
|
|
5
6
|
if (process.platform === "win32")
|
|
6
7
|
return;
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
const stat = fs.fstatSync(fd, { bigint: true });
|
|
9
|
+
if (privateCreation)
|
|
10
|
+
assertPrivateCreationFile(stat, fd);
|
|
11
|
+
if (Number(stat.mode & 4095n) !== mode) {
|
|
12
|
+
throw new FsSafeError("insecure-permissions", "filesystem did not enforce the requested file mode");
|
|
9
13
|
}
|
|
10
14
|
}
|
|
11
|
-
export async function preparePinnedWriteMode(handle, createdMode, assertBeforeMutation) {
|
|
15
|
+
export async function preparePinnedWriteMode(handle, createdMode, assertBeforeMutation, privateCreation = false) {
|
|
12
16
|
if (process.platform === "win32")
|
|
13
17
|
return assertBeforeMutation;
|
|
14
18
|
assertSynchronousCallbackResult(assertBeforeMutation?.(), "assertBeforeMutation");
|
|
15
|
-
if (createdMode !== 0o600)
|
|
19
|
+
if (createdMode !== 0o600) {
|
|
20
|
+
if (privateCreation)
|
|
21
|
+
assertPrivateCreationFile(fs.fstatSync(handle.fd, { bigint: true }), handle.fd);
|
|
16
22
|
await handle.chmod(0o600);
|
|
17
|
-
|
|
23
|
+
}
|
|
24
|
+
return pinnedWriteModeAssertion(handle.fd, 0o600, assertBeforeMutation, privateCreation);
|
|
18
25
|
}
|
|
19
|
-
export function pinnedWriteModeAssertion(fd, mode, assertBeforeMutation) {
|
|
26
|
+
export function pinnedWriteModeAssertion(fd, mode, assertBeforeMutation, privateCreation = false) {
|
|
20
27
|
return () => {
|
|
21
28
|
assertSynchronousCallbackResult(assertBeforeMutation?.(), "assertBeforeMutation");
|
|
22
|
-
assertPinnedWriteMode(fd, mode);
|
|
29
|
+
assertPinnedWriteMode(fd, mode, privateCreation);
|
|
23
30
|
};
|
|
24
31
|
}
|
|
@@ -3,4 +3,3 @@ import type { AsyncDirectoryGuard } from "./directory-guard.js";
|
|
|
3
3
|
import { type FileIdentityStat } from "./file-identity.js";
|
|
4
4
|
import type { PinnedWriteParams } from "./pinned-write-types.js";
|
|
5
5
|
export declare function runPinnedStagedWrite(params: PinnedWriteParams, parentPath: string, parentGuard: AsyncDirectoryGuard<BigIntStats>): Promise<FileIdentityStat>;
|
|
6
|
-
//# sourceMappingURL=pinned-write-staged.d.ts.map
|
|
@@ -9,7 +9,6 @@ import { syncDirectoryBestEffort } from "./directory-durability.js";
|
|
|
9
9
|
import { FsSafeError } from "./errors.js";
|
|
10
10
|
import { sameFileIdentity, sha256Hex } from "./file-identity.js";
|
|
11
11
|
import { syncFileBestEffort } from "./file-sync.js";
|
|
12
|
-
import { assertDarwinCreationAcl, privateFileMutationAssertion } from "./creation-darwin.js";
|
|
13
12
|
import { withAsyncDirectoryGuards } from "./guarded-mutation.js";
|
|
14
13
|
import { writePinnedInput } from "./pinned-write-input.js";
|
|
15
14
|
import { assertPinnedWriteMode, pinnedWriteModeAssertion, preparePinnedWriteMode } from "./pinned-write-mode.js";
|
|
@@ -20,7 +19,8 @@ import { assertFinalSymlinkRejected } from "./root-symlink-policy.js";
|
|
|
20
19
|
import { createStagedFileReceipt, settleStagedFile } from "./staged-file-settlement.js";
|
|
21
20
|
import { getFsSafeTestHooks } from "./test-hooks.js";
|
|
22
21
|
export async function runPinnedStagedWrite(params, parentPath, parentGuard) {
|
|
23
|
-
const verifyPosixMode =
|
|
22
|
+
const verifyPosixMode = process.platform !== "win32" &&
|
|
23
|
+
(params.verifyPosixMode === true || params.private === true);
|
|
24
24
|
const targetPath = path.join(parentPath, params.basename);
|
|
25
25
|
// Private staging must not consume the destination basename's filename budget.
|
|
26
26
|
const tempPath = path.join(parentPath, `.fs-safe-${randomUUID()}.tmp`);
|
|
@@ -49,18 +49,15 @@ export async function runPinnedStagedWrite(params, parentPath, parentGuard) {
|
|
|
49
49
|
: await fs.open(tempPath, tempFlags, verifyPosixMode ? 0o600 : params.mode);
|
|
50
50
|
let verificationIdentity = fsSync.fstatSync(handle.fd, { bigint: true });
|
|
51
51
|
tempIdentity = verificationIdentity;
|
|
52
|
-
let assertBeforeMutation = params.
|
|
53
|
-
? privateFileMutationAssertion(handle.fd, params.assertBeforeMutation) : params.assertBeforeMutation;
|
|
52
|
+
let assertBeforeMutation = params.assertBeforeMutation;
|
|
54
53
|
const assertBeforeWrite = verifyPosixMode
|
|
55
|
-
? await preparePinnedWriteMode(handle, Number(tempIdentity.mode & 4095n), assertBeforeMutation)
|
|
54
|
+
? await preparePinnedWriteMode(handle, Number(tempIdentity.mode & 4095n), assertBeforeMutation, params.private)
|
|
56
55
|
: assertBeforeMutation;
|
|
57
56
|
if (verifyPosixMode)
|
|
58
|
-
assertPinnedWriteMode(handle.fd, 0o600);
|
|
57
|
+
assertPinnedWriteMode(handle.fd, 0o600, params.private);
|
|
59
58
|
await writePinnedInput(handle, params.input, params.maxBytes, assertBeforeWrite);
|
|
60
59
|
if (verifyPosixMode)
|
|
61
|
-
assertPinnedWriteMode(handle.fd, 0o600);
|
|
62
|
-
if (params.private)
|
|
63
|
-
assertDarwinCreationAcl(handle.fd);
|
|
60
|
+
assertPinnedWriteMode(handle.fd, 0o600, params.private);
|
|
64
61
|
tempStat = fsSync.fstatSync(handle.fd);
|
|
65
62
|
const tempPathStat = fsSync.lstatSync(tempPath);
|
|
66
63
|
if (tempPathStat.isSymbolicLink() || !sameFileIdentity(tempPathStat, tempStat)) {
|
|
@@ -69,8 +66,8 @@ export async function runPinnedStagedWrite(params, parentPath, parentGuard) {
|
|
|
69
66
|
const expectedTempStat = tempStat;
|
|
70
67
|
await handle.chmod(params.mode);
|
|
71
68
|
if (verifyPosixMode) {
|
|
72
|
-
assertPinnedWriteMode(handle.fd, params.mode);
|
|
73
|
-
assertBeforeMutation = pinnedWriteModeAssertion(handle.fd, params.mode, assertBeforeMutation);
|
|
69
|
+
assertPinnedWriteMode(handle.fd, params.mode, params.private);
|
|
70
|
+
assertBeforeMutation = pinnedWriteModeAssertion(handle.fd, params.mode, params.assertBeforeMutation, params.private);
|
|
74
71
|
}
|
|
75
72
|
if (params.sync !== false) {
|
|
76
73
|
if (params.strictFileSync)
|
|
@@ -146,6 +143,8 @@ export async function runPinnedStagedWrite(params, parentPath, parentGuard) {
|
|
|
146
143
|
}
|
|
147
144
|
});
|
|
148
145
|
await params.verifyPublished?.((readHandle ?? handle).fd, verificationIdentity, parentGuard);
|
|
146
|
+
if (verifyPosixMode)
|
|
147
|
+
assertPinnedWriteMode((readHandle ?? handle).fd, params.mode, params.private);
|
|
149
148
|
return { dev: verifiedIdentity.dev, ino: verifiedIdentity.ino };
|
|
150
149
|
}
|
|
151
150
|
catch (error) {
|
|
@@ -24,18 +24,15 @@ export type PinnedCreatedDirectoryReceipt = Readonly<{
|
|
|
24
24
|
parent: MutationDirectoryObservation;
|
|
25
25
|
child: MutationDirectoryObservation;
|
|
26
26
|
}>;
|
|
27
|
+
export type PinnedMutationParentRequest = {
|
|
28
|
+
targetPath: string;
|
|
29
|
+
mutationPath: string;
|
|
30
|
+
phase: "parent" | "parent-create";
|
|
31
|
+
};
|
|
27
32
|
export type PinnedMutationParentWalkSession = Readonly<{
|
|
28
33
|
retainedTargetPath: string;
|
|
29
|
-
tryAuthorizeAtParent(request: Readonly<
|
|
30
|
-
|
|
31
|
-
mutationPath: string;
|
|
32
|
-
phase: "parent" | "parent-create";
|
|
33
|
-
}>, parent: MutationDirectoryObservation): PinnedMutationAuthorizationToken | undefined;
|
|
34
|
-
authorize(request: Readonly<{
|
|
35
|
-
targetPath: string;
|
|
36
|
-
mutationPath: string;
|
|
37
|
-
phase: "parent" | "parent-create";
|
|
38
|
-
}>): Promise<PinnedMutationAdmissionReceipt | undefined>;
|
|
34
|
+
tryAuthorizeAtParent(request: Readonly<PinnedMutationParentRequest>, parent: MutationDirectoryObservation): PinnedMutationAuthorizationToken | undefined;
|
|
35
|
+
authorize(request: Readonly<PinnedMutationParentRequest>): Promise<PinnedMutationAdmissionReceipt | undefined>;
|
|
39
36
|
advanceCreatedDirectory(receipt: PinnedCreatedDirectoryReceipt): PinnedMutationAuthorizationToken | undefined;
|
|
40
37
|
dispose(): void;
|
|
41
38
|
}>;
|
|
@@ -44,16 +41,8 @@ export type PinnedWriteMutationAdmission = Readonly<{
|
|
|
44
41
|
beginParentWalk?(): string | undefined;
|
|
45
42
|
beginSharedParentWalk?(): PinnedMutationParentWalkSession | undefined;
|
|
46
43
|
beginNativeParentWalk?(): PinnedMutationParentWalkSession | undefined;
|
|
47
|
-
tryAuthorizeAtParent?(request: Readonly<
|
|
48
|
-
|
|
49
|
-
mutationPath: string;
|
|
50
|
-
phase: "parent" | "parent-create";
|
|
51
|
-
}>, parent: MutationDirectoryObservation): PinnedMutationAuthorizationToken | undefined;
|
|
52
|
-
authorize(request: Readonly<{
|
|
53
|
-
targetPath: string;
|
|
54
|
-
mutationPath: string;
|
|
55
|
-
phase: "parent" | "parent-create";
|
|
56
|
-
}>): Promise<PinnedMutationAdmissionReceipt | undefined>;
|
|
44
|
+
tryAuthorizeAtParent?(request: Readonly<PinnedMutationParentRequest>, parent: MutationDirectoryObservation): PinnedMutationAuthorizationToken | undefined;
|
|
45
|
+
authorize(request: Readonly<PinnedMutationParentRequest>): Promise<PinnedMutationAdmissionReceipt | undefined>;
|
|
57
46
|
advanceCreatedDirectory?(receipt: PinnedCreatedDirectoryReceipt): PinnedMutationAuthorizationToken | undefined;
|
|
58
47
|
}>;
|
|
59
48
|
export type PinnedWriteParams = {
|
|
@@ -77,4 +66,3 @@ export type PinnedWriteParams = {
|
|
|
77
66
|
onPublished?: (identity: PublishedWriteIdentity) => void;
|
|
78
67
|
verifyPublished?: (fd: number, identity: PublishedWriteIdentity, parentGuard: AnyAsyncDirectoryGuard) => Promise<void>;
|
|
79
68
|
};
|
|
80
|
-
//# sourceMappingURL=pinned-write-types.d.ts.map
|
package/dist/pinned-write.d.ts
CHANGED
package/dist/pinned-write.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { syncFileBestEffort } from "./file-sync.js";
|
|
2
|
-
import { assertDarwinCreationAcl, privateFileMutationAssertion } from "./creation-darwin.js";
|
|
3
2
|
import fsSync, {} from "node:fs";
|
|
4
3
|
import fs from "node:fs/promises";
|
|
5
4
|
import path from "node:path";
|
|
@@ -124,7 +123,8 @@ export async function withPinnedWriteRenameIdentityLock(params, run) {
|
|
|
124
123
|
}, run);
|
|
125
124
|
}
|
|
126
125
|
async function runPinnedWriteFallback(params) {
|
|
127
|
-
const verifyPosixMode =
|
|
126
|
+
const verifyPosixMode = process.platform !== "win32" &&
|
|
127
|
+
(params.verifyPosixMode === true || params.private === true);
|
|
128
128
|
const exactRoot = typeof params.rootIdentity?.dev === "bigint" && typeof params.rootIdentity.ino === "bigint"
|
|
129
129
|
? { dev: params.rootIdentity.dev, ino: params.rootIdentity.ino } : undefined;
|
|
130
130
|
const mutationAdmission = params.mutationAdmission;
|
|
@@ -250,25 +250,23 @@ async function runPinnedWriteFallback(params) {
|
|
|
250
250
|
},
|
|
251
251
|
});
|
|
252
252
|
let created = true;
|
|
253
|
+
let completed = false;
|
|
253
254
|
let createdIdentity;
|
|
254
255
|
try {
|
|
255
256
|
const verificationIdentity = fsSync.fstatSync(handle.fd, { bigint: true });
|
|
256
257
|
createdIdentity = verificationIdentity;
|
|
257
|
-
|
|
258
|
-
?
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
assertPinnedWriteMode(handle.fd, 0o600);
|
|
262
|
-
}
|
|
258
|
+
const assertBeforeWrite = verifyPosixMode
|
|
259
|
+
? await preparePinnedWriteMode(handle, Number(createdIdentity.mode & 4095n), assertBeforeMutation, params.private)
|
|
260
|
+
: assertBeforeMutation;
|
|
261
|
+
if (verifyPosixMode)
|
|
262
|
+
assertPinnedWriteMode(handle.fd, 0o600, params.private);
|
|
263
263
|
await writePinnedInput(handle, params.input, params.maxBytes, assertBeforeWrite);
|
|
264
264
|
if (verifyPosixMode)
|
|
265
|
-
assertPinnedWriteMode(handle.fd, 0o600);
|
|
266
|
-
if (params.private)
|
|
267
|
-
assertDarwinCreationAcl(handle.fd);
|
|
265
|
+
assertPinnedWriteMode(handle.fd, 0o600, params.private);
|
|
268
266
|
// Content writes may clear set-ID bits; finalize them through the owned fd.
|
|
269
267
|
await handle.chmod(params.mode);
|
|
270
268
|
if (verifyPosixMode)
|
|
271
|
-
assertPinnedWriteMode(handle.fd, params.mode);
|
|
269
|
+
assertPinnedWriteMode(handle.fd, params.mode, params.private);
|
|
272
270
|
if (params.sync !== false) {
|
|
273
271
|
if (params.strictFileSync)
|
|
274
272
|
await handle.sync();
|
|
@@ -281,6 +279,9 @@ async function runPinnedWriteFallback(params) {
|
|
|
281
279
|
// Publication is complete. A failed outer check must not remove its target.
|
|
282
280
|
created = false;
|
|
283
281
|
await params.verifyPublished?.(handle.fd, verificationIdentity, parentGuard);
|
|
282
|
+
if (verifyPosixMode)
|
|
283
|
+
assertPinnedWriteMode(handle.fd, params.mode, params.private);
|
|
284
|
+
completed = true;
|
|
284
285
|
return { dev: stat.dev, ino: stat.ino };
|
|
285
286
|
}
|
|
286
287
|
finally {
|
|
@@ -290,7 +291,10 @@ async function runPinnedWriteFallback(params) {
|
|
|
290
291
|
}
|
|
291
292
|
}
|
|
292
293
|
finally {
|
|
293
|
-
|
|
294
|
+
if (completed)
|
|
295
|
+
await handle.close();
|
|
296
|
+
else
|
|
297
|
+
await handle.close().catch(() => undefined);
|
|
294
298
|
}
|
|
295
299
|
}
|
|
296
300
|
}
|
|
@@ -6,4 +6,3 @@ export type ReadFileWindowOptions = {
|
|
|
6
6
|
export declare function readFileWindowFully(handle: FileHandle, buffer: Buffer, position: number, { signal }?: ReadFileWindowOptions): Promise<number>;
|
|
7
7
|
/** Synchronous positional read; neither variant advances or closes its descriptor. */
|
|
8
8
|
export declare function readFileWindowFullySync(fd: number, buffer: Buffer, position: number): number;
|
|
9
|
-
//# sourceMappingURL=positional-read.d.ts.map
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import fs, {} from "node:fs";
|
|
2
2
|
import { ownFileDescriptorSync } from "./create-owned-file.js";
|
|
3
|
-
import { FsSafeError } from "./errors.js";
|
|
4
3
|
import { assertSynchronousCallbackResult } from "./mutation-authority.js";
|
|
5
|
-
import { assertInitialSource,
|
|
4
|
+
import { assertInitialSource, FileHandoff, inspectLinkedFile, } from "./private-producer-handoff.js";
|
|
6
5
|
import { resolveReadOpenFlags } from "./read-open-flags.js";
|
|
7
6
|
export function handoffCreatedFileSync(params) {
|
|
8
7
|
let retained = params.source;
|
|
9
8
|
const owners = new Set([retained]);
|
|
10
9
|
const failures = [];
|
|
11
|
-
|
|
12
|
-
let cleanup = "preserved";
|
|
13
|
-
let closeFailed = false;
|
|
10
|
+
const state = new FileHandoff(params, params.identity, true);
|
|
14
11
|
function close(owner) {
|
|
15
12
|
// A throwing close may already have released the descriptor for reuse.
|
|
16
13
|
owners.delete(owner);
|
|
@@ -18,42 +15,20 @@ export function handoffCreatedFileSync(params) {
|
|
|
18
15
|
owner.close();
|
|
19
16
|
}
|
|
20
17
|
catch (error) {
|
|
21
|
-
closeFailed = true;
|
|
18
|
+
state.closeFailed = true;
|
|
22
19
|
throw error;
|
|
23
20
|
}
|
|
24
21
|
}
|
|
25
|
-
function assertIdentityCurrent(owner, links) {
|
|
26
|
-
assertParents(params);
|
|
27
|
-
inspectLinkedFile(() => fs.fstatSync(owner.fd, { bigint: true }), params.identity, links, "created file descriptor");
|
|
28
|
-
if (cleanup !== "removed") {
|
|
29
|
-
inspectLinkedFile(() => fs.lstatSync(params.sourcePath, { bigint: true }), params.identity, links, "created file stage");
|
|
30
|
-
}
|
|
31
|
-
if (publication === "published") {
|
|
32
|
-
inspectLinkedFile(() => fs.lstatSync(params.targetPath, { bigint: true }), params.identity, links, "created file destination");
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
22
|
function verifyCurrent(owner, descriptorPath, links) {
|
|
36
|
-
|
|
23
|
+
state.inspect(owner, links);
|
|
37
24
|
params.verifyDescriptor?.(owner.fd, descriptorPath, Number(links));
|
|
38
25
|
}
|
|
39
26
|
try {
|
|
40
27
|
assertInitialSource(params.identity);
|
|
41
28
|
verifyCurrent(retained, params.sourcePath, 1n);
|
|
42
29
|
assertSynchronousCallbackResult(params.assertBeforeMutation?.(), "assertBeforeMutation");
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
try {
|
|
46
|
-
fs.linkSync(params.sourcePath, params.targetPath);
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
const normalized = normalizeLinkError(error);
|
|
50
|
-
if (normalized instanceof FsSafeError &&
|
|
51
|
-
(normalized.code === "already-exists" || normalized.code === "helper-unavailable")) {
|
|
52
|
-
publication = "not-published";
|
|
53
|
-
}
|
|
54
|
-
throw normalized;
|
|
55
|
-
}
|
|
56
|
-
publication = "published";
|
|
30
|
+
state.inspect(retained, 1n);
|
|
31
|
+
state.publish();
|
|
57
32
|
try {
|
|
58
33
|
params.onPublished?.();
|
|
59
34
|
}
|
|
@@ -74,12 +49,10 @@ export function handoffCreatedFileSync(params) {
|
|
|
74
49
|
const descriptorPath = process.platform === "win32" ? params.targetPath : params.sourcePath;
|
|
75
50
|
verifyCurrent(retained, descriptorPath, 2n);
|
|
76
51
|
assertSynchronousCallbackResult(params.assertBeforeMutation?.(), "assertBeforeMutation");
|
|
77
|
-
|
|
78
|
-
cleanup = "failed";
|
|
52
|
+
state.inspect(retained, 2n);
|
|
79
53
|
// Link and unlink stay in one JS turn. Only the verified stage is removed;
|
|
80
54
|
// publication has committed and the destination is never rollback cleanup.
|
|
81
|
-
|
|
82
|
-
cleanup = "removed";
|
|
55
|
+
state.retireSource();
|
|
83
56
|
verifyCurrent(retained, params.targetPath, 1n);
|
|
84
57
|
}
|
|
85
58
|
catch (error) {
|
|
@@ -95,20 +68,5 @@ export function handoffCreatedFileSync(params) {
|
|
|
95
68
|
failures.push(error);
|
|
96
69
|
}
|
|
97
70
|
}
|
|
98
|
-
|
|
99
|
-
// Collision-as-no-op callers must still observe a failed settlement.
|
|
100
|
-
const code = closeFailed || failures.length > 1
|
|
101
|
-
? "helper-failed"
|
|
102
|
-
: primary instanceof FsSafeError ? primary.code : "helper-failed";
|
|
103
|
-
throw new FsSafeError(code, "created file publication failed", {
|
|
104
|
-
cause: failures.length === 1 ? primary : new AggregateError(failures, "created file publication and settlement failed"),
|
|
105
|
-
details: {
|
|
106
|
-
publication: { status: publication },
|
|
107
|
-
cleanup,
|
|
108
|
-
resources: closeFailed ? "close-failed" : "closed",
|
|
109
|
-
path: params.targetPath,
|
|
110
|
-
dev: params.identity.dev,
|
|
111
|
-
ino: params.identity.ino,
|
|
112
|
-
},
|
|
113
|
-
});
|
|
71
|
+
throw state.failure(failures, "created file publication and settlement failed");
|
|
114
72
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type BigIntStats } from "node:fs";
|
|
2
2
|
import { type FileHandle } from "node:fs/promises";
|
|
3
|
+
import { FsSafeError } from "./errors.js";
|
|
3
4
|
import { type TempPathRegistration } from "./temp-cleanup.js";
|
|
4
5
|
export type PrivateProducerHandoff = {
|
|
5
6
|
handle: FileHandle;
|
|
@@ -28,7 +29,25 @@ export declare function assertInitialSource(stat: BigIntStats): void;
|
|
|
28
29
|
export declare function inspectLinkedFile(inspect: () => BigIntStats, expected: BigIntStats, links: bigint, label: string): BigIntStats;
|
|
29
30
|
export declare function assertParents(params: HandoffParents): void;
|
|
30
31
|
export declare function normalizeLinkError(error: unknown): unknown;
|
|
32
|
+
export declare class FileHandoff {
|
|
33
|
+
private readonly paths;
|
|
34
|
+
private readonly identity;
|
|
35
|
+
private readonly createdLabels;
|
|
36
|
+
siblingOwned: boolean;
|
|
37
|
+
publication: "not-published" | "published" | "indeterminate";
|
|
38
|
+
cleanup: "preserved" | "removed" | "failed";
|
|
39
|
+
closeFailed: boolean;
|
|
40
|
+
constructor(paths: HandoffPaths, identity: BigIntStats, createdLabels?: boolean);
|
|
41
|
+
inspect(owner: {
|
|
42
|
+
readonly fd: number;
|
|
43
|
+
}, links: bigint): {
|
|
44
|
+
opened: BigIntStats;
|
|
45
|
+
named?: BigIntStats;
|
|
46
|
+
};
|
|
47
|
+
publish(): void;
|
|
48
|
+
retireSource(): void;
|
|
49
|
+
failure(failures: readonly unknown[], aggregateMessage: string): FsSafeError;
|
|
50
|
+
}
|
|
31
51
|
export declare function handoffPrivateProducerFile(params: ProducerHandoffParams): Promise<PrivateProducerHandoff>;
|
|
32
52
|
export declare function handoffCreatedFile(params: CreatedHandoffParams): Promise<FileHandle>;
|
|
33
53
|
export {};
|
|
34
|
-
//# sourceMappingURL=private-producer-handoff.d.ts.map
|