@socketsecurity/lib 6.0.6 → 6.0.7
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 +26 -1
- package/dist/ai/discover.d.mts +2 -2
- package/dist/ai/discover.js +3 -2
- package/dist/ai/spawn.js +2 -1
- package/dist/ai/types.d.mts +18 -6
- package/dist/ai/worktree.d.mts +6 -6
- package/dist/ai/worktree.js +1 -1
- package/dist/ansi/strip.d.ts +1 -1
- package/dist/ansi/strip.js +0 -2
- package/dist/archives/_internal.js +7 -9
- package/dist/archives/extract.js +1 -1
- package/dist/archives/tar.js +6 -6
- package/dist/archives/zip.js +3 -5
- package/dist/argv/flag-predicates.d.ts +12 -12
- package/dist/argv/flag-predicates.js +17 -17
- package/dist/argv/flag-types.d.ts +18 -18
- package/dist/argv/flag-types.js +4 -4
- package/dist/argv/parse.d.ts +1 -1
- package/dist/arrays/_internal.js +11 -12
- package/dist/arrays/chunk.js +0 -1
- package/dist/arrays/join.d.ts +37 -3
- package/dist/arrays/join.js +43 -7
- package/dist/arrays/unique.js +0 -1
- package/dist/bin/_internal.d.ts +1 -1
- package/dist/bin/_internal.js +1 -1
- package/dist/bin/exec.js +2 -3
- package/dist/bin/find.js +13 -13
- package/dist/bin/prim.cjs +22736 -22556
- package/dist/bin/resolve.js +12 -13
- package/dist/bin/which.js +8 -8
- package/dist/cache/ttl/store.js +5 -5
- package/dist/checks/primordials-defaults.d.ts +3 -3
- package/dist/checks/primordials-defaults.js +3 -3
- package/dist/checks/primordials.js +4 -3
- package/dist/{bin → cli}/check-primordials.d.ts +11 -11
- package/dist/{bin → cli}/check-primordials.js +55 -52
- package/dist/{bin → cli}/check.js +3 -3
- package/dist/{bin → cli}/socket-lib.d.ts +1 -1
- package/dist/{bin → cli}/socket-lib.js +4 -4
- package/dist/colors/socket-palette.js +7 -9
- package/dist/compression/_internal.d.ts +12 -12
- package/dist/compression/_internal.js +17 -17
- package/dist/compression/brotli.d.ts +25 -25
- package/dist/compression/brotli.js +33 -33
- package/dist/compression/gzip.d.ts +23 -23
- package/dist/compression/gzip.js +40 -40
- package/dist/constants/agents.d.ts +3 -1
- package/dist/constants/agents.js +15 -11
- package/dist/constants/licenses.js +3 -3
- package/dist/constants/node.d.ts +23 -0
- package/dist/constants/node.js +47 -15
- package/dist/constants/packages.js +22 -28
- package/dist/constants/platform.d.ts +30 -3
- package/dist/constants/platform.js +72 -12
- package/dist/constants/runtime.d.ts +22 -0
- package/dist/constants/runtime.js +32 -0
- package/dist/constants/socket.js +1 -1
- package/dist/cover/code.js +8 -8
- package/dist/cover/formatters.js +5 -5
- package/dist/crypto/hash.d.ts +26 -1
- package/dist/crypto/hash.js +43 -12
- package/dist/debug/_internal.js +4 -6
- package/dist/debug/caller-info.js +2 -3
- package/dist/debug/namespace.d.ts +7 -0
- package/dist/debug/namespace.js +21 -12
- package/dist/debug/output.js +21 -24
- package/dist/debug/types.d.ts +4 -4
- package/dist/dlx/arborist.js +6 -6
- package/dist/dlx/binary-cache.js +14 -14
- package/dist/dlx/binary-download.d.ts +1 -1
- package/dist/dlx/binary-download.js +11 -11
- package/dist/dlx/binary-resolution.js +16 -14
- package/dist/dlx/binary-types.d.ts +5 -5
- package/dist/dlx/binary.js +5 -5
- package/dist/dlx/cache.js +1 -1
- package/dist/dlx/detect.d.ts +34 -25
- package/dist/dlx/detect.js +86 -77
- package/dist/dlx/dir.js +2 -2
- package/dist/dlx/firewall.d.ts +1 -1
- package/dist/dlx/lockfile.d.ts +19 -18
- package/dist/dlx/lockfile.js +16 -16
- package/dist/dlx/manifest.d.ts +6 -6
- package/dist/dlx/manifest.js +5 -5
- package/dist/dlx/package.d.ts +10 -10
- package/dist/dlx/package.js +16 -16
- package/dist/dlx/packages.js +4 -4
- package/dist/dlx/paths.js +7 -7
- package/dist/dlx/spec.js +1 -1
- package/dist/dlx/types.d.ts +28 -27
- package/dist/eco/cargo/parse-lockfile.d.ts +1 -1
- package/dist/eco/cargo/parse-lockfile.js +2 -2
- package/dist/eco/manifest/analyze-lockfile.js +2 -2
- package/dist/eco/manifest/detect-format.js +4 -4
- package/dist/eco/manifest/find-packages.js +2 -2
- package/dist/eco/manifest/get-package-versions.js +2 -2
- package/dist/eco/manifest/get-package.js +2 -2
- package/dist/eco/manifest/parse-lockfile.js +2 -2
- package/dist/eco/manifest/parse-manifest.js +2 -2
- package/dist/eco/manifest/parse.js +2 -2
- package/dist/eco/npm/npm/exec.js +2 -2
- package/dist/eco/npm/npm/flags.js +7 -12
- package/dist/eco/npm/npm/parse-lockfile.d.ts +14 -14
- package/dist/eco/npm/npm/parse-lockfile.js +3 -3
- package/dist/eco/npm/parse-package-json.js +3 -3
- package/dist/eco/npm/pnpm/exec.d.ts +1 -1
- package/dist/eco/npm/pnpm/exec.js +5 -5
- package/dist/eco/npm/pnpm/flags.js +0 -3
- package/dist/eco/npm/pnpm/parse-lockfile.d.ts +1 -1
- package/dist/eco/npm/pnpm/parse-lockfile.js +4 -4
- package/dist/eco/npm/script.js +9 -6
- package/dist/eco/npm/yarnpkg/yarn/exec.js +3 -3
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +2 -2
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +8 -8
- package/dist/effects/pulse-frames.d.ts +3 -1
- package/dist/effects/shimmer-keyframes.d.ts +1 -1
- package/dist/effects/shimmer-terminal.d.ts +1 -1
- package/dist/env/boolean.js +0 -1
- package/dist/env/ci.js +0 -1
- package/dist/env/debug.js +0 -1
- package/dist/env/github-status.d.ts +51 -0
- package/dist/env/github-status.js +90 -0
- package/dist/env/github.js +0 -8
- package/dist/env/home.js +0 -1
- package/dist/env/locale.js +0 -3
- package/dist/env/node-auth-token.js +0 -1
- package/dist/env/node-env.js +0 -1
- package/dist/env/node-version-managers.d.ts +53 -0
- package/dist/env/node-version-managers.js +90 -0
- package/dist/env/npm.js +0 -5
- package/dist/env/number.js +0 -1
- package/dist/env/package-manager.js +3 -6
- package/dist/env/path.js +0 -1
- package/dist/env/pre-commit.js +1 -2
- package/dist/env/rewire.d.ts +7 -6
- package/dist/env/rewire.js +15 -16
- package/dist/env/shell.js +0 -1
- package/dist/env/socket-cli.js +5 -18
- package/dist/env/socket-mcp.d.ts +114 -0
- package/dist/env/socket-mcp.js +146 -0
- package/dist/env/socket.d.ts +1 -109
- package/dist/env/socket.js +12 -167
- package/dist/env/string.js +0 -1
- package/dist/env/temp-dir.js +0 -3
- package/dist/env/term.js +0 -1
- package/dist/env/test.js +3 -6
- package/dist/env/windows.js +0 -4
- package/dist/env/xdg.js +0 -3
- package/dist/events/exit/_internal.d.ts +11 -9
- package/dist/events/exit/_internal.js +31 -35
- package/dist/events/exit/handler.js +3 -4
- package/dist/events/exit/intercept.js +4 -6
- package/dist/events/exit/lifecycle.js +16 -18
- package/dist/events/exit/signals.js +1 -2
- package/dist/events/exit/types.d.ts +6 -5
- package/dist/external/@npmcli/package-json.js +2 -2
- package/dist/external/npm-pack.js +2 -2
- package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
- package/dist/external-tools/bazel/types.d.ts +1 -1
- package/dist/external-tools/cdxgen/from-vfs.js +1 -1
- package/dist/external-tools/cdxgen/types.d.ts +1 -1
- package/dist/external-tools/from-download.d.ts +1 -1
- package/dist/external-tools/from-download.js +1 -1
- package/dist/external-tools/janus/from-vfs.js +1 -1
- package/dist/external-tools/janus/types.d.ts +1 -1
- package/dist/external-tools/jre/detect-platform-arch.d.ts +10 -6
- package/dist/external-tools/jre/detect-platform-arch.js +29 -14
- package/dist/external-tools/jre/from-vfs.js +1 -1
- package/dist/external-tools/jre/types.d.ts +1 -1
- package/dist/external-tools/manifest.d.ts +7 -7
- package/dist/external-tools/manifest.js +12 -12
- package/dist/external-tools/opengrep/from-vfs.js +1 -1
- package/dist/external-tools/opengrep/types.d.ts +1 -1
- package/dist/external-tools/python/asset-names.d.ts +76 -0
- package/dist/external-tools/python/asset-names.js +104 -0
- package/dist/external-tools/python/dlx.d.ts +80 -0
- package/dist/external-tools/python/dlx.js +87 -0
- package/dist/external-tools/python/from-download.d.ts +53 -0
- package/dist/external-tools/python/from-download.js +68 -0
- package/dist/external-tools/python/from-path.d.ts +7 -0
- package/dist/external-tools/python/from-path.js +23 -0
- package/dist/external-tools/python/pin.d.ts +121 -0
- package/dist/external-tools/python/pin.js +173 -0
- package/dist/external-tools/python/pip-install.d.ts +75 -0
- package/dist/external-tools/python/pip-install.js +139 -0
- package/dist/external-tools/python/resolve.d.ts +42 -0
- package/dist/external-tools/python/resolve.js +58 -0
- package/dist/external-tools/python/types.d.ts +49 -0
- package/dist/external-tools/sbt/from-vfs.js +1 -1
- package/dist/external-tools/sbt/types.d.ts +1 -1
- package/dist/external-tools/skillspector/from-path.js +3 -5
- package/dist/external-tools/skillspector/from-vfs.js +1 -1
- package/dist/external-tools/synp/from-download.js +2 -2
- package/dist/external-tools/synp/from-vfs.js +1 -1
- package/dist/external-tools/trivy/from-vfs.js +1 -1
- package/dist/external-tools/trivy/types.d.ts +1 -1
- package/dist/external-tools/trufflehog/from-vfs.js +1 -1
- package/dist/external-tools/trufflehog/types.d.ts +1 -1
- package/dist/fs/_internal.d.ts +1 -1
- package/dist/fs/_internal.js +7 -7
- package/dist/fs/access.js +5 -9
- package/dist/fs/{path-cache.js → allowed-dirs-cache.js} +1 -1
- package/dist/fs/encoding.js +5 -7
- package/dist/fs/{find-up.js → find.js} +11 -13
- package/dist/fs/inspect.js +7 -13
- package/dist/fs/read-dir.js +7 -10
- package/dist/fs/read-file.js +8 -14
- package/dist/fs/read-json-cache.d.ts +6 -4
- package/dist/fs/read-json-cache.js +9 -6
- package/dist/fs/read-json.js +4 -6
- package/dist/fs/resolve-module.js +1 -1
- package/dist/fs/safe.d.ts +1 -1
- package/dist/fs/safe.js +12 -13
- package/dist/fs/unique.js +4 -5
- package/dist/fs/validate.js +1 -2
- package/dist/fs/write-json.js +4 -5
- package/dist/git/_internal.js +10 -10
- package/dist/git/changed.js +4 -4
- package/dist/git/repo.js +3 -3
- package/dist/git/staged.js +4 -4
- package/dist/git/unstaged.js +4 -4
- package/dist/github/ghsa.js +2 -2
- package/dist/github/refs-cache.d.ts +1 -1
- package/dist/github/refs-cache.js +5 -5
- package/dist/github/refs-rest.js +5 -5
- package/dist/github/{fetch.js → request.js} +13 -2
- package/dist/github/token.js +1 -1
- package/dist/github/types.d.ts +1 -1
- package/dist/globs/_internal.js +7 -9
- package/dist/globs/match.js +4 -6
- package/dist/globs/matcher.d.ts +3 -3
- package/dist/globs/matcher.js +12 -14
- package/dist/globs/stream.js +1 -2
- package/dist/globs/types.d.ts +24 -24
- package/dist/http-request/_internal.d.ts +1 -1
- package/dist/http-request/browser.js +4 -2
- package/dist/http-request/checksum-file.d.ts +55 -0
- package/dist/http-request/checksum-file.js +95 -0
- package/dist/http-request/download-types.d.ts +15 -23
- package/dist/http-request/download.js +3 -3
- package/dist/http-request/headers.js +0 -1
- package/dist/http-request/request-attempt.js +37 -33
- package/dist/http-request/request-types.d.ts +2 -2
- package/dist/http-request/request.js +1 -1
- package/dist/http-request/user-agent.js +3 -4
- package/dist/integrity.d.ts +86 -18
- package/dist/integrity.js +119 -30
- package/dist/ipc/directory.js +2 -2
- package/dist/ipc/paths.js +1 -1
- package/dist/ipc/write.js +1 -1
- package/dist/ipc-cli/get.js +12 -12
- package/dist/json/edit.js +13 -14
- package/dist/json/format.js +2 -2
- package/dist/json/parse.d.ts +1 -1
- package/dist/json/parse.js +3 -7
- package/dist/logger/_internal.d.ts +4 -4
- package/dist/logger/_internal.js +3 -3
- package/dist/logger/colors.js +4 -3
- package/dist/logger/console-methods.d.ts +132 -0
- package/dist/logger/console-methods.js +169 -0
- package/dist/logger/console.d.ts +12 -0
- package/dist/logger/console.js +42 -11
- package/dist/logger/indentation-methods.d.ts +81 -0
- package/dist/logger/indentation-methods.js +121 -0
- package/dist/logger/node.d.ts +16 -338
- package/dist/logger/node.js +75 -608
- package/dist/logger/options.d.ts +39 -0
- package/dist/logger/options.js +47 -0
- package/dist/logger/semantic-methods.d.ts +63 -0
- package/dist/logger/semantic-methods.js +108 -0
- package/dist/logger/stream-methods.d.ts +63 -0
- package/dist/logger/stream-methods.js +101 -0
- package/dist/logger/stream.d.ts +37 -0
- package/dist/logger/stream.js +42 -0
- package/dist/logger/symbols-builder.js +9 -9
- package/dist/logger/symbols.d.ts +2 -25
- package/dist/logger/symbols.js +53 -74
- package/dist/logger/types.d.ts +1 -1
- package/dist/memo/types.d.ts +6 -6
- package/dist/native-messaging/host.d.ts +20 -0
- package/dist/native-messaging/host.js +120 -0
- package/dist/native-messaging/index.d.ts +5 -0
- package/dist/native-messaging/index.js +22 -0
- package/dist/native-messaging/install.d.ts +60 -0
- package/dist/native-messaging/install.js +141 -0
- package/dist/native-messaging/rate-limit.d.ts +62 -0
- package/dist/native-messaging/rate-limit.js +115 -0
- package/dist/native-messaging/run.d.ts +10 -0
- package/dist/native-messaging/run.js +17 -0
- package/dist/node/async-hooks.js +4 -3
- package/dist/node/child-process.js +4 -3
- package/dist/node/crypto.js +4 -3
- package/dist/node/events.js +4 -3
- package/dist/node/fs-promises.js +4 -3
- package/dist/node/fs.js +4 -3
- package/dist/node/http.js +4 -3
- package/dist/node/https.js +4 -3
- package/dist/node/module.js +10 -6
- package/dist/node/os.js +4 -3
- package/dist/node/path.js +4 -3
- package/dist/node/timers-promises.js +4 -3
- package/dist/node/url.js +4 -3
- package/dist/node/util.js +4 -3
- package/dist/objects/getters.js +5 -7
- package/dist/objects/inspect.js +1 -4
- package/dist/objects/mutate.js +2 -3
- package/dist/objects/predicates.js +0 -4
- package/dist/objects/sort.js +3 -7
- package/dist/packages/edit-class.js +15 -16
- package/dist/packages/edit.js +12 -14
- package/dist/packages/exports.js +11 -17
- package/dist/packages/fetch.d.ts +16 -0
- package/dist/packages/fetch.js +81 -0
- package/dist/packages/find.d.ts +55 -0
- package/dist/packages/find.js +65 -0
- package/dist/packages/isolation.js +14 -14
- package/dist/packages/licenses.js +16 -16
- package/dist/packages/manifest.js +12 -15
- package/dist/packages/metadata-extensions.d.ts +14 -0
- package/dist/packages/metadata-extensions.js +43 -0
- package/dist/packages/normalize.js +5 -9
- package/dist/packages/provenance.js +16 -18
- package/dist/packages/read.d.ts +29 -0
- package/dist/packages/read.js +66 -0
- package/dist/packages/specs.d.ts +48 -1
- package/dist/packages/specs.js +74 -11
- package/dist/packages/tarball.d.ts +24 -0
- package/dist/packages/tarball.js +79 -0
- package/dist/packages/types.d.ts +21 -20
- package/dist/packages/validation.js +0 -3
- package/dist/paths/_internal.d.ts +2 -1
- package/dist/paths/_internal.js +7 -19
- package/dist/paths/conversion.js +5 -9
- package/dist/paths/filenames.d.ts +0 -1
- package/dist/paths/filenames.js +0 -2
- package/dist/paths/normalize.js +4 -5
- package/dist/paths/packages.js +4 -7
- package/dist/paths/predicates.js +9 -16
- package/dist/paths/resolve.js +11 -14
- package/dist/paths/rewire.js +3 -3
- package/dist/paths/socket.js +16 -16
- package/dist/paths/walk.d.ts +1 -1
- package/dist/paths/walk.js +4 -4
- package/dist/perf/report.js +2 -2
- package/dist/perf/types.d.ts +1 -1
- package/dist/pkg-ext/data.js +1 -1
- package/dist/primordials/array.js +9 -9
- package/dist/primordials/date.js +2 -2
- package/dist/primordials/error.js +3 -3
- package/dist/primordials/headers.d.ts +10 -0
- package/dist/primordials/headers.js +23 -0
- package/dist/primordials/intl.d.ts +13 -0
- package/dist/primordials/intl.js +26 -0
- package/dist/primordials/math.js +33 -33
- package/dist/primordials/number.js +9 -9
- package/dist/primordials/object.js +5 -5
- package/dist/primordials/string.d.ts +2 -2
- package/dist/primordials/string.js +6 -6
- package/dist/primordials/symbol.js +3 -3
- package/dist/primordials/uncurry.js +9 -9
- package/dist/process/abort.js +3 -3
- package/dist/process/lock-manager.js +8 -8
- package/dist/process/spawn/_internal.js +6 -8
- package/dist/process/spawn/child.js +14 -14
- package/dist/process/spawn/errors.js +2 -4
- package/dist/process/spawn/kill-tree.d.ts +53 -0
- package/dist/process/spawn/kill-tree.js +85 -0
- package/dist/process/spawn/stdio.js +0 -1
- package/dist/process/spawn/types.d.ts +5 -5
- package/dist/process/transient.js +2 -2
- package/dist/promises/_internal.d.ts +2 -1
- package/dist/promises/_internal.js +2 -6
- package/dist/promises/iterate.js +11 -15
- package/dist/promises/options.js +3 -6
- package/dist/promises/retry.js +4 -5
- package/dist/promises/timers.d.ts +30 -0
- package/dist/promises/timers.js +48 -0
- package/dist/releases/github-archives.d.ts +6 -6
- package/dist/releases/github-archives.js +2 -2
- package/dist/releases/github-asset-url.d.ts +1 -1
- package/dist/releases/github-asset-url.js +5 -5
- package/dist/releases/github-downloads.d.ts +1 -1
- package/dist/releases/github-downloads.js +3 -3
- package/dist/releases/github-listing.d.ts +11 -2
- package/dist/releases/github-listing.js +20 -7
- package/dist/releases/github-retry-config.js +1 -1
- package/dist/releases/github-types.d.ts +6 -6
- package/dist/releases/socket-btm-binary-naming.d.ts +107 -0
- package/dist/releases/socket-btm-binary-naming.js +155 -0
- package/dist/releases/socket-btm.d.ts +8 -115
- package/dist/releases/socket-btm.js +16 -159
- package/dist/schema/types.d.ts +1 -1
- package/dist/sea/detect.js +6 -6
- package/dist/secrets/_internal.d.ts +2 -2
- package/dist/secrets/_internal.js +2 -2
- package/dist/secrets/compare.d.ts +45 -0
- package/dist/secrets/compare.js +61 -0
- package/dist/secrets/keychain.js +6 -4
- package/dist/secrets/linux.js +19 -19
- package/dist/secrets/macos.d.ts +1 -1
- package/dist/secrets/macos.js +13 -13
- package/dist/secrets/rc.d.ts +2 -2
- package/dist/secrets/rc.js +6 -4
- package/dist/secrets/socket-api-token.d.ts +4 -4
- package/dist/secrets/socket-api-token.js +18 -9
- package/dist/secrets/windows.js +14 -13
- package/dist/shadow/skip.js +2 -2
- package/dist/smol/detect.js +9 -10
- package/dist/smol/http.js +6 -7
- package/dist/smol/https.js +6 -7
- package/dist/smol/manifest.d.ts +1 -1
- package/dist/smol/manifest.js +6 -7
- package/dist/smol/path.d.ts +1 -1
- package/dist/smol/path.js +7 -8
- package/dist/smol/primordial.d.ts +4 -0
- package/dist/smol/primordial.js +6 -7
- package/dist/smol/purl.d.ts +1 -1
- package/dist/smol/purl.js +7 -8
- package/dist/smol/versions.js +6 -7
- package/dist/smol/vfs.js +6 -7
- package/dist/sorts/_internal.js +6 -8
- package/dist/sorts/natural.js +10 -12
- package/dist/sorts/semver.js +1 -2
- package/dist/sorts/strings.js +0 -1
- package/dist/sorts/types.d.ts +1 -1
- package/dist/spinner/create-spinner-class.d.ts +38 -0
- package/dist/spinner/create-spinner-class.js +302 -0
- package/dist/spinner/default.js +8 -9
- package/dist/spinner/spinner-internals.d.ts +36 -0
- package/dist/spinner/spinner-internals.js +101 -0
- package/dist/spinner/spinner-shimmer-methods.d.ts +54 -0
- package/dist/spinner/spinner-shimmer-methods.js +143 -0
- package/dist/spinner/spinner-status-methods.d.ts +40 -0
- package/dist/spinner/spinner-status-methods.js +133 -0
- package/dist/spinner/spinner.d.ts +4 -5
- package/dist/spinner/spinner.js +18 -705
- package/dist/spinner/types.d.ts +3 -1
- package/dist/spinner/with.d.ts +10 -0
- package/dist/spinner/with.js +16 -2
- package/dist/stdio/divider.js +1 -1
- package/dist/stdio/footer.js +3 -3
- package/dist/stdio/header.js +4 -4
- package/dist/stdio/progress.js +5 -5
- package/dist/stdio/prompts.d.ts +5 -3
- package/dist/stdio/prompts.js +6 -7
- package/dist/stdio/stdout.js +3 -3
- package/dist/streams/parallel.js +3 -5
- package/dist/streams/transform.js +2 -3
- package/dist/strings/format.js +2 -6
- package/dist/strings/predicates.js +0 -2
- package/dist/strings/search.js +1 -2
- package/dist/strings/transform.js +0 -3
- package/dist/strings/width.js +9 -10
- package/dist/tables/bordered.js +4 -3
- package/dist/tables/padding.js +1 -1
- package/dist/tables/simple.js +8 -5
- package/dist/temporal/instant.js +1 -1
- package/dist/temporal/slots.js +6 -6
- package/dist/temporal/system.js +9 -9
- package/dist/themes/context.d.ts +3 -2
- package/dist/themes/context.js +4 -5
- package/dist/themes/themes.js +15 -15
- package/dist/themes/types.d.ts +3 -3
- package/dist/url/parse.js +0 -2
- package/dist/url/predicates.js +1 -2
- package/dist/url/search-params.js +3 -9
- package/dist/url/types.d.ts +5 -5
- package/dist/versions/_internal.js +3 -3
- package/dist/words/article.js +0 -1
- package/dist/words/capitalize.js +0 -1
- package/dist/words/pluralize.js +15 -5
- package/package.json +247 -106
- package/dist/external-tools/uv/asset-names.d.ts +0 -36
- package/dist/external-tools/uv/asset-names.js +0 -70
- package/dist/external-tools/uv/from-download.d.ts +0 -17
- package/dist/external-tools/uv/from-download.js +0 -47
- package/dist/external-tools/uv/from-path.d.ts +0 -5
- package/dist/external-tools/uv/from-path.js +0 -22
- package/dist/external-tools/uv/from-vfs.d.ts +0 -7
- package/dist/external-tools/uv/from-vfs.js +0 -26
- package/dist/external-tools/uv/resolve.d.ts +0 -25
- package/dist/external-tools/uv/resolve.js +0 -53
- package/dist/external-tools/uv/types.d.ts +0 -24
- package/dist/http-request/checksums.d.ts +0 -69
- package/dist/http-request/checksums.js +0 -108
- package/dist/http-request/http-request.d.ts +0 -12
- package/dist/http-request/http-request.js +0 -11
- package/dist/packages/operations.d.ts +0 -113
- package/dist/packages/operations.js +0 -304
- package/dist/ssri/convert.d.ts +0 -48
- package/dist/ssri/convert.js +0 -69
- package/dist/ssri/parse.d.ts +0 -27
- package/dist/ssri/parse.js +0 -41
- package/dist/ssri/validate.d.ts +0 -41
- package/dist/ssri/validate.js +0 -56
- /package/dist/{bin → cli}/check.d.ts +0 -0
- /package/dist/external-tools/{uv → python}/types.js +0 -0
- /package/dist/fs/{path-cache.d.ts → allowed-dirs-cache.d.ts} +0 -0
- /package/dist/fs/{find-up.d.ts → find.d.ts} +0 -0
- /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
package/dist/fs/_internal.js
CHANGED
|
@@ -9,36 +9,36 @@ const require_paths_socket = require('../paths/socket.js');
|
|
|
9
9
|
* @file Private state shared between `fs/safe` and `fs/path-cache`. The `_`
|
|
10
10
|
* prefix keeps this module out of the generated package.json `exports` map
|
|
11
11
|
* (the `dist/**\/_*` ignore pattern in
|
|
12
|
-
* `scripts/
|
|
12
|
+
* `scripts/post-build/make-package-exports.mts` filters it out), so it is not
|
|
13
13
|
* part of the public surface — it exists only to give the two leaves above a
|
|
14
14
|
* common owner for the allowed-directory cache. The cache is invalidated by
|
|
15
15
|
* `invalidatePathCache()` in `fs/path-cache.ts` whenever paths are rewired in
|
|
16
16
|
* tests (`paths/rewire.ts` registers `invalidatePathCache` as one of its
|
|
17
17
|
* cache callbacks); `getAllowedDirectories()` rehydrates on next call.
|
|
18
18
|
*/
|
|
19
|
-
let
|
|
19
|
+
let cachedAllowedDirs;
|
|
20
20
|
/**
|
|
21
21
|
* Clear the cached allowed-directories list. Used by `invalidatePathCache()`
|
|
22
22
|
* when test path rewiring changes any of the underlying paths so the next read
|
|
23
23
|
* picks up the new resolved values.
|
|
24
24
|
*/
|
|
25
25
|
function clearAllowedDirectories() {
|
|
26
|
-
|
|
26
|
+
cachedAllowedDirs = void 0;
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
29
|
* Get resolved allowed directories for safe deletion with lazy caching. These
|
|
30
30
|
* directories are resolved once and cached for the process lifetime.
|
|
31
31
|
*/
|
|
32
32
|
function getAllowedDirectories() {
|
|
33
|
-
if (
|
|
34
|
-
const path =
|
|
35
|
-
|
|
33
|
+
if (cachedAllowedDirs === void 0) {
|
|
34
|
+
const path = require_node_path.getNodePath();
|
|
35
|
+
cachedAllowedDirs = [
|
|
36
36
|
path.resolve(require_paths_socket.getOsTmpDir()),
|
|
37
37
|
path.resolve(require_paths_socket.getSocketCacacheDir()),
|
|
38
38
|
path.resolve(require_paths_socket.getSocketUserDir())
|
|
39
39
|
];
|
|
40
40
|
}
|
|
41
|
-
return
|
|
41
|
+
return cachedAllowedDirs;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
//#endregion
|
package/dist/fs/access.js
CHANGED
|
@@ -23,13 +23,12 @@ const require_smol_path = require('../smol/path.js');
|
|
|
23
23
|
*
|
|
24
24
|
* @returns True if the access check succeeds.
|
|
25
25
|
*/
|
|
26
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
27
26
|
function canAccess(path, mode) {
|
|
28
27
|
/* c8 ignore start - native access arm only on socket-btm smol binaries; getSmolPath() is undefined on stock Node. */
|
|
29
|
-
const smolAccess =
|
|
28
|
+
const smolAccess = require_smol_path.getSmolPath()?.access;
|
|
30
29
|
if (smolAccess) return smolAccess(path, mode);
|
|
31
30
|
/* c8 ignore stop */
|
|
32
|
-
const fs =
|
|
31
|
+
const fs = require_node_fs.getNodeFs();
|
|
33
32
|
try {
|
|
34
33
|
fs.accessSync(path, mode);
|
|
35
34
|
return true;
|
|
@@ -40,23 +39,20 @@ function canAccess(path, mode) {
|
|
|
40
39
|
/**
|
|
41
40
|
* Can the process execute `path`? (`X_OK`)
|
|
42
41
|
*/
|
|
43
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
44
42
|
function canExecute(path) {
|
|
45
|
-
return
|
|
43
|
+
return canAccess(path, require_node_fs.getNodeFs().constants.X_OK);
|
|
46
44
|
}
|
|
47
45
|
/**
|
|
48
46
|
* Can the process read `path`? (`R_OK`)
|
|
49
47
|
*/
|
|
50
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
51
48
|
function canRead(path) {
|
|
52
|
-
return
|
|
49
|
+
return canAccess(path, require_node_fs.getNodeFs().constants.R_OK);
|
|
53
50
|
}
|
|
54
51
|
/**
|
|
55
52
|
* Can the process write `path`? (`W_OK`)
|
|
56
53
|
*/
|
|
57
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
58
54
|
function canWrite(path) {
|
|
59
|
-
return
|
|
55
|
+
return canAccess(path, require_node_fs.getNodeFs().constants.W_OK);
|
|
60
56
|
}
|
|
61
57
|
|
|
62
58
|
//#endregion
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4
4
|
const require_paths_rewire = require('../paths/rewire.js');
|
|
5
5
|
const require_fs__internal = require('./_internal.js');
|
|
6
6
|
|
|
7
|
-
//#region src/fs/
|
|
7
|
+
//#region src/fs/allowed-dirs-cache.ts
|
|
8
8
|
/**
|
|
9
9
|
* @file Cache-invalidation entry point for the allowed-directories list used by
|
|
10
10
|
* `safeDelete` / `safeDeleteSync`. Loading this module registers
|
package/dist/fs/encoding.js
CHANGED
|
@@ -23,9 +23,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
23
23
|
*
|
|
24
24
|
* @see https://github.com/nodejs/node/blob/ae62b36d442b7bf987e85ae6e0df0f02cc1bb17f/lib/internal/util.js#L247-L310
|
|
25
25
|
*/
|
|
26
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
27
26
|
function normalizeEncoding(enc) {
|
|
28
|
-
return enc == null || enc === "utf8" || enc === "utf-8" ? "utf8" :
|
|
27
|
+
return enc == null || enc === "utf8" || enc === "utf-8" ? "utf8" : normalizeEncodingSlow(enc);
|
|
29
28
|
}
|
|
30
29
|
/**
|
|
31
30
|
* Move the "slow cases" to a separate function to make sure this function gets
|
|
@@ -46,11 +45,10 @@ function normalizeEncoding(enc) {
|
|
|
46
45
|
*
|
|
47
46
|
* @see https://github.com/nodejs/node/blob/ae62b36d442b7bf987e85ae6e0df0f02cc1bb17f/lib/internal/util.js#L247-L310
|
|
48
47
|
*/
|
|
49
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
50
48
|
function normalizeEncodingSlow(enc) {
|
|
51
49
|
const { length } = enc;
|
|
52
50
|
if (length === 4) {
|
|
53
|
-
if (enc === "
|
|
51
|
+
if (enc === "UCS2" || enc === "ucs2") return "utf16le";
|
|
54
52
|
if (enc.toLowerCase() === "ucs2") return "utf16le";
|
|
55
53
|
} else if (length === 3 && enc === "hex" || enc === "HEX" || enc.toLowerCase() === "hex") return "hex";
|
|
56
54
|
else if (length === 5) {
|
|
@@ -63,12 +61,12 @@ function normalizeEncodingSlow(enc) {
|
|
|
63
61
|
if (enc === "ucs-2") return "utf16le";
|
|
64
62
|
} else if (length === 6) {
|
|
65
63
|
if (enc === "base64") return "base64";
|
|
66
|
-
if (enc === "
|
|
64
|
+
if (enc === "binary" || enc === "latin1") return "latin1";
|
|
67
65
|
if (enc === "BASE64") return "base64";
|
|
68
|
-
if (enc === "
|
|
66
|
+
if (enc === "BINARY" || enc === "LATIN1") return "latin1";
|
|
69
67
|
enc = enc.toLowerCase();
|
|
70
68
|
if (enc === "base64") return "base64";
|
|
71
|
-
if (enc === "
|
|
69
|
+
if (enc === "binary" || enc === "latin1") return "latin1";
|
|
72
70
|
} else if (length === 7) {
|
|
73
71
|
if (enc === "utf16le" || enc === "UTF16LE" || enc.toLowerCase() === "utf16le") return "utf16le";
|
|
74
72
|
} else if (length === 8) {
|
|
@@ -12,7 +12,7 @@ const require_paths_walk = require('../paths/walk.js');
|
|
|
12
12
|
let node_process = require("node:process");
|
|
13
13
|
node_process = require_runtime.__toESM(node_process);
|
|
14
14
|
|
|
15
|
-
//#region src/fs/find
|
|
15
|
+
//#region src/fs/find.ts
|
|
16
16
|
/**
|
|
17
17
|
* @file Walk parent directories to locate a file or directory by name. The
|
|
18
18
|
* traversal includes the filesystem root (or the caller-supplied `stopAt`
|
|
@@ -43,7 +43,6 @@ const abortSignal = require_process_abort.getAbortSignal();
|
|
|
43
43
|
*
|
|
44
44
|
* @returns Normalized absolute path if found, undefined otherwise
|
|
45
45
|
*/
|
|
46
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
47
46
|
async function findUp(name, options) {
|
|
48
47
|
const { cwd = node_process.default.cwd(), signal = abortSignal } = {
|
|
49
48
|
__proto__: null,
|
|
@@ -55,16 +54,16 @@ async function findUp(name, options) {
|
|
|
55
54
|
};
|
|
56
55
|
if (onlyDirectories) onlyFiles = false;
|
|
57
56
|
if (onlyFiles) onlyDirectories = false;
|
|
58
|
-
const fs =
|
|
59
|
-
const path =
|
|
57
|
+
const fs = require_node_fs.getNodeFs();
|
|
58
|
+
const path = require_node_path.getNodePath();
|
|
60
59
|
const names = require_arrays_predicates.isArray(name) ? name : [name];
|
|
61
60
|
for (const dir of require_paths_walk.walkUp(cwd)) for (const n of names) {
|
|
62
61
|
if (signal?.aborted) return;
|
|
63
62
|
const thePath = path.join(dir, n);
|
|
64
63
|
try {
|
|
65
64
|
const stats = await fs.promises.stat(thePath);
|
|
66
|
-
if (!onlyDirectories && stats.isFile()) return
|
|
67
|
-
if (!onlyFiles && stats.isDirectory()) return
|
|
65
|
+
if (!onlyDirectories && stats.isFile()) return require_paths_normalize.normalizePath(thePath);
|
|
66
|
+
if (!onlyFiles && stats.isDirectory()) return require_paths_normalize.normalizePath(thePath);
|
|
68
67
|
} catch {}
|
|
69
68
|
}
|
|
70
69
|
}
|
|
@@ -94,7 +93,6 @@ async function findUp(name, options) {
|
|
|
94
93
|
*
|
|
95
94
|
* @returns Normalized absolute path if found, undefined otherwise
|
|
96
95
|
*/
|
|
97
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
98
96
|
function findUpSync(name, options) {
|
|
99
97
|
const { cwd = node_process.default.cwd(), stopAt } = {
|
|
100
98
|
__proto__: null,
|
|
@@ -106,22 +104,22 @@ function findUpSync(name, options) {
|
|
|
106
104
|
};
|
|
107
105
|
if (onlyDirectories) onlyFiles = false;
|
|
108
106
|
if (onlyFiles) onlyDirectories = false;
|
|
109
|
-
const fs =
|
|
110
|
-
const path =
|
|
107
|
+
const fs = require_node_fs.getNodeFs();
|
|
108
|
+
const path = require_node_path.getNodePath();
|
|
111
109
|
const names = require_arrays_predicates.isArray(name) ? name : [name];
|
|
112
110
|
/* c8 ignore start - native findUp arm only on socket-btm smol binaries; getSmolPath() is undefined on stock Node. */
|
|
113
|
-
const smolFindUp =
|
|
111
|
+
const smolFindUp = require_smol_path.getSmolPath()?.findUp;
|
|
114
112
|
if (smolFindUp && stopAt === void 0) {
|
|
115
113
|
const found = smolFindUp(path.resolve(cwd), names, { onlyDirectories });
|
|
116
|
-
return found === void 0 ? void 0 :
|
|
114
|
+
return found === void 0 ? void 0 : require_paths_normalize.normalizePath(found);
|
|
117
115
|
}
|
|
118
116
|
/* c8 ignore stop */
|
|
119
117
|
for (const dir of require_paths_walk.walkUp(cwd, { stopAt })) for (const n of names) {
|
|
120
118
|
const thePath = path.join(dir, n);
|
|
121
119
|
try {
|
|
122
120
|
const stats = fs.statSync(thePath);
|
|
123
|
-
if (!onlyDirectories && stats.isFile()) return
|
|
124
|
-
if (!onlyFiles && stats.isDirectory()) return
|
|
121
|
+
if (!onlyDirectories && stats.isFile()) return require_paths_normalize.normalizePath(thePath);
|
|
122
|
+
if (!onlyFiles && stats.isDirectory()) return require_paths_normalize.normalizePath(thePath);
|
|
125
123
|
} catch {}
|
|
126
124
|
}
|
|
127
125
|
}
|
package/dist/fs/inspect.js
CHANGED
|
@@ -29,9 +29,8 @@ const require_globs_matcher = require('../globs/matcher.js');
|
|
|
29
29
|
*
|
|
30
30
|
* @returns `true` if path is a directory, `false` otherwise
|
|
31
31
|
*/
|
|
32
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
33
32
|
async function isDir(filepath) {
|
|
34
|
-
return !!(await
|
|
33
|
+
return !!(await safeStat(filepath))?.isDirectory();
|
|
35
34
|
}
|
|
36
35
|
/**
|
|
37
36
|
* Check if a directory is empty synchronously. A directory is considered empty
|
|
@@ -52,18 +51,17 @@ async function isDir(filepath) {
|
|
|
52
51
|
*
|
|
53
52
|
* @returns `true` if directory is empty (or doesn't exist), `false` otherwise
|
|
54
53
|
*/
|
|
55
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
56
54
|
function isDirEmptySync(dirname, options) {
|
|
57
55
|
const { ignore = require_globs_defaults.defaultIgnore } = {
|
|
58
56
|
__proto__: null,
|
|
59
57
|
...options
|
|
60
58
|
};
|
|
61
|
-
const fs =
|
|
59
|
+
const fs = require_node_fs.getNodeFs();
|
|
62
60
|
try {
|
|
63
61
|
const files = fs.readdirSync(dirname);
|
|
64
62
|
const { length } = files;
|
|
65
63
|
if (length === 0) return true;
|
|
66
|
-
const matcher =
|
|
64
|
+
const matcher = require_globs_matcher.getGlobMatcher(ignore, { cwd: require_paths__internal.pathLikeToString(dirname) });
|
|
67
65
|
let ignoredCount = 0;
|
|
68
66
|
for (let i = 0; i < length; i += 1) {
|
|
69
67
|
const file = files[i];
|
|
@@ -89,9 +87,8 @@ function isDirEmptySync(dirname, options) {
|
|
|
89
87
|
*
|
|
90
88
|
* @returns `true` if path is a directory, `false` otherwise
|
|
91
89
|
*/
|
|
92
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
93
90
|
function isDirSync(filepath) {
|
|
94
|
-
return !!
|
|
91
|
+
return !!safeStatSync(filepath)?.isDirectory();
|
|
95
92
|
}
|
|
96
93
|
/**
|
|
97
94
|
* Check if a path is a symbolic link synchronously. Uses `lstat` to check the
|
|
@@ -108,9 +105,8 @@ function isDirSync(filepath) {
|
|
|
108
105
|
*
|
|
109
106
|
* @returns `true` if path is a symbolic link, `false` otherwise
|
|
110
107
|
*/
|
|
111
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
112
108
|
function isSymlinkSync(filepath) {
|
|
113
|
-
const fs =
|
|
109
|
+
const fs = require_node_fs.getNodeFs();
|
|
114
110
|
try {
|
|
115
111
|
return fs.lstatSync(filepath).isSymbolicLink();
|
|
116
112
|
} catch {}
|
|
@@ -135,9 +131,8 @@ function isSymlinkSync(filepath) {
|
|
|
135
131
|
*
|
|
136
132
|
* @returns Promise resolving to Stats object, or undefined on error
|
|
137
133
|
*/
|
|
138
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
139
134
|
async function safeStat(filepath) {
|
|
140
|
-
const fs =
|
|
135
|
+
const fs = require_node_fs.getNodeFs();
|
|
141
136
|
try {
|
|
142
137
|
return await fs.promises.stat(filepath);
|
|
143
138
|
} catch {}
|
|
@@ -161,9 +156,8 @@ async function safeStat(filepath) {
|
|
|
161
156
|
*
|
|
162
157
|
* @returns Stats object, or undefined on error
|
|
163
158
|
*/
|
|
164
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
165
159
|
function safeStatSync(filepath) {
|
|
166
|
-
const fs =
|
|
160
|
+
const fs = require_node_fs.getNodeFs();
|
|
167
161
|
try {
|
|
168
162
|
return fs.statSync(filepath, {
|
|
169
163
|
__proto__: null,
|
package/dist/fs/read-dir.js
CHANGED
|
@@ -24,15 +24,14 @@ const require_fs_inspect = require('./inspect.js');
|
|
|
24
24
|
*
|
|
25
25
|
* @returns Array of directory names, optionally sorted
|
|
26
26
|
*/
|
|
27
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
28
27
|
function innerReadDirNames(dirents, dirname, options) {
|
|
29
28
|
const { ignore, includeEmpty = true, sort = true } = {
|
|
30
29
|
__proto__: null,
|
|
31
30
|
...options
|
|
32
31
|
};
|
|
33
|
-
const path =
|
|
34
|
-
const names = dirents.filter((d) => d.isDirectory() && (includeEmpty ||
|
|
35
|
-
return sort ? names.
|
|
32
|
+
const path = require_node_path.getNodePath();
|
|
33
|
+
const names = dirents.filter((d) => d.isDirectory() && (includeEmpty || !require_fs_inspect.isDirEmptySync(path.join(dirname || d.parentPath, d.name), { ignore }))).map((d) => d.name);
|
|
34
|
+
return sort ? names.toSorted(require_sorts_natural.naturalCompare) : names;
|
|
36
35
|
}
|
|
37
36
|
/**
|
|
38
37
|
* Read directory names asynchronously with filtering and sorting. Returns only
|
|
@@ -56,11 +55,10 @@ function innerReadDirNames(dirents, dirname, options) {
|
|
|
56
55
|
*
|
|
57
56
|
* @returns Array of directory names, empty array on error
|
|
58
57
|
*/
|
|
59
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
60
58
|
async function readDirNames(dirname, options) {
|
|
61
|
-
const fs =
|
|
59
|
+
const fs = require_node_fs.getNodeFs();
|
|
62
60
|
try {
|
|
63
|
-
return
|
|
61
|
+
return innerReadDirNames(await fs.promises.readdir(dirname, {
|
|
64
62
|
__proto__: null,
|
|
65
63
|
encoding: "utf8",
|
|
66
64
|
withFileTypes: true
|
|
@@ -90,11 +88,10 @@ async function readDirNames(dirname, options) {
|
|
|
90
88
|
*
|
|
91
89
|
* @returns Array of directory names, empty array on error
|
|
92
90
|
*/
|
|
93
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
94
91
|
function readDirNamesSync(dirname, options) {
|
|
95
|
-
const fs =
|
|
92
|
+
const fs = require_node_fs.getNodeFs();
|
|
96
93
|
try {
|
|
97
|
-
return
|
|
94
|
+
return innerReadDirNames(fs.readdirSync(dirname, {
|
|
98
95
|
__proto__: null,
|
|
99
96
|
encoding: "utf8",
|
|
100
97
|
withFileTypes: true
|
package/dist/fs/read-file.js
CHANGED
|
@@ -34,10 +34,9 @@ const abortSignal = require_process_abort.getAbortSignal();
|
|
|
34
34
|
*
|
|
35
35
|
* @returns Promise resolving to Buffer containing file contents
|
|
36
36
|
*/
|
|
37
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
38
37
|
async function readFileBinary(filepath, options) {
|
|
39
38
|
const opts = typeof options === "string" ? { encoding: options } : options;
|
|
40
|
-
return await
|
|
39
|
+
return await require_node_fs.getNodeFs().promises.readFile(filepath, {
|
|
41
40
|
signal: abortSignal,
|
|
42
41
|
...opts,
|
|
43
42
|
encoding: void 0
|
|
@@ -61,10 +60,9 @@ async function readFileBinary(filepath, options) {
|
|
|
61
60
|
*
|
|
62
61
|
* @returns Buffer containing file contents
|
|
63
62
|
*/
|
|
64
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
65
63
|
function readFileBinarySync(filepath, options) {
|
|
66
64
|
const opts = typeof options === "string" ? { encoding: options } : options;
|
|
67
|
-
return
|
|
65
|
+
return require_node_fs.getNodeFs().readFileSync(filepath, {
|
|
68
66
|
...opts,
|
|
69
67
|
encoding: void 0
|
|
70
68
|
});
|
|
@@ -87,10 +85,9 @@ function readFileBinarySync(filepath, options) {
|
|
|
87
85
|
*
|
|
88
86
|
* @returns Promise resolving to string containing file contents
|
|
89
87
|
*/
|
|
90
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
91
88
|
async function readFileUtf8(filepath, options) {
|
|
92
89
|
const opts = typeof options === "string" ? { encoding: options } : options;
|
|
93
|
-
return await
|
|
90
|
+
return await require_node_fs.getNodeFs().promises.readFile(filepath, {
|
|
94
91
|
signal: abortSignal,
|
|
95
92
|
...opts,
|
|
96
93
|
encoding: "utf8"
|
|
@@ -115,15 +112,13 @@ async function readFileUtf8(filepath, options) {
|
|
|
115
112
|
*
|
|
116
113
|
* @returns String containing file contents
|
|
117
114
|
*/
|
|
118
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
119
115
|
function readFileUtf8Sync(filepath, options) {
|
|
120
116
|
const opts = typeof options === "string" ? { encoding: options } : options;
|
|
121
|
-
return
|
|
117
|
+
return require_node_fs.getNodeFs().readFileSync(filepath, {
|
|
122
118
|
...opts,
|
|
123
119
|
encoding: "utf8"
|
|
124
120
|
});
|
|
125
121
|
}
|
|
126
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
127
122
|
async function safeReadFile(filepath, options) {
|
|
128
123
|
const { defaultValue, ...rawReadOpts } = typeof options === "string" ? {
|
|
129
124
|
__proto__: null,
|
|
@@ -138,8 +133,8 @@ async function safeReadFile(filepath, options) {
|
|
|
138
133
|
};
|
|
139
134
|
const shouldReturnBuffer = readOpts.encoding === null;
|
|
140
135
|
/* c8 ignore next 3 */
|
|
141
|
-
const encoding = shouldReturnBuffer ? void 0 :
|
|
142
|
-
const fs =
|
|
136
|
+
const encoding = shouldReturnBuffer ? void 0 : require_fs_encoding.normalizeEncoding(readOpts.encoding);
|
|
137
|
+
const fs = require_node_fs.getNodeFs();
|
|
143
138
|
try {
|
|
144
139
|
return await fs.promises.readFile(filepath, {
|
|
145
140
|
__proto__: null,
|
|
@@ -152,7 +147,6 @@ async function safeReadFile(filepath, options) {
|
|
|
152
147
|
if (shouldReturnBuffer) return require_primordials_buffer.BufferIsBuffer(defaultValue) ? defaultValue : void 0;
|
|
153
148
|
return typeof defaultValue === "string" ? defaultValue : String(defaultValue);
|
|
154
149
|
}
|
|
155
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
156
150
|
function safeReadFileSync(filepath, options) {
|
|
157
151
|
const { defaultValue, ...rawReadOpts } = typeof options === "string" ? {
|
|
158
152
|
__proto__: null,
|
|
@@ -167,8 +161,8 @@ function safeReadFileSync(filepath, options) {
|
|
|
167
161
|
};
|
|
168
162
|
const shouldReturnBuffer = readOpts.encoding === null;
|
|
169
163
|
/* c8 ignore next 3 */
|
|
170
|
-
const encoding = shouldReturnBuffer ? void 0 :
|
|
171
|
-
const fs =
|
|
164
|
+
const encoding = shouldReturnBuffer ? void 0 : require_fs_encoding.normalizeEncoding(readOpts.encoding);
|
|
165
|
+
const fs = require_node_fs.getNodeFs();
|
|
172
166
|
try {
|
|
173
167
|
return fs.readFileSync(filepath, {
|
|
174
168
|
__proto__: null,
|
|
@@ -5,10 +5,12 @@
|
|
|
5
5
|
*
|
|
6
6
|
* - Stat-validated keys: a `stat()` call before serving a cache hit ensures the
|
|
7
7
|
* file hasn't changed (mtime + size mismatch ⇒ cache miss, re-read).
|
|
8
|
-
* - Defensive clone on hit: every hit returns
|
|
9
|
-
* callers can mutate the returned
|
|
10
|
-
* the next reader. The clone cost is
|
|
11
|
-
* anything bigger than a trivial JSON
|
|
8
|
+
* - Defensive clone on hit: every hit returns a JSON round-trip clone
|
|
9
|
+
* (`JSON.parse(JSON.stringify(parsed))`) so callers can mutate the returned
|
|
10
|
+
* object without poisoning the cache for the next reader. The clone cost is
|
|
11
|
+
* far less than re-read + re-parse for anything bigger than a trivial JSON
|
|
12
|
+
* document, and the round-trip is faster than `structuredClone` over the
|
|
13
|
+
* JSON subset these values always belong to.
|
|
12
14
|
* - Reviver opt-out: when the caller passes a `reviver` function, we skip the
|
|
13
15
|
* cache. Function identity isn't safely hashable across boundaries, and the
|
|
14
16
|
* reviver can produce a different shape from the same bytes.
|
|
@@ -6,6 +6,7 @@ const require_primordials_error = require('../primordials/error.js');
|
|
|
6
6
|
const require_primordials_number = require('../primordials/number.js');
|
|
7
7
|
const require_primordials_map_set = require('../primordials/map-set.js');
|
|
8
8
|
const require_primordials_date = require('../primordials/date.js');
|
|
9
|
+
const require_primordials_json = require('../primordials/json.js');
|
|
9
10
|
let node_process = require("node:process");
|
|
10
11
|
node_process = require_runtime.__toESM(node_process);
|
|
11
12
|
|
|
@@ -17,10 +18,12 @@ node_process = require_runtime.__toESM(node_process);
|
|
|
17
18
|
*
|
|
18
19
|
* - Stat-validated keys: a `stat()` call before serving a cache hit ensures the
|
|
19
20
|
* file hasn't changed (mtime + size mismatch ⇒ cache miss, re-read).
|
|
20
|
-
* - Defensive clone on hit: every hit returns
|
|
21
|
-
* callers can mutate the returned
|
|
22
|
-
* the next reader. The clone cost is
|
|
23
|
-
* anything bigger than a trivial JSON
|
|
21
|
+
* - Defensive clone on hit: every hit returns a JSON round-trip clone
|
|
22
|
+
* (`JSON.parse(JSON.stringify(parsed))`) so callers can mutate the returned
|
|
23
|
+
* object without poisoning the cache for the next reader. The clone cost is
|
|
24
|
+
* far less than re-read + re-parse for anything bigger than a trivial JSON
|
|
25
|
+
* document, and the round-trip is faster than `structuredClone` over the
|
|
26
|
+
* JSON subset these values always belong to.
|
|
24
27
|
* - Reviver opt-out: when the caller passes a `reviver` function, we skip the
|
|
25
28
|
* cache. Function identity isn't safely hashable across boundaries, and the
|
|
26
29
|
* reviver can produce a different shape from the same bytes.
|
|
@@ -85,7 +88,7 @@ function getCachedJson(key, ino, size, mtimeMs) {
|
|
|
85
88
|
return;
|
|
86
89
|
}
|
|
87
90
|
hits += 1;
|
|
88
|
-
return
|
|
91
|
+
return require_primordials_json.JSONParse(require_primordials_json.JSONStringify(entry.parsed));
|
|
89
92
|
}
|
|
90
93
|
/**
|
|
91
94
|
* Snapshot diagnostics. Useful for tests and for tooling that wants to log
|
|
@@ -131,7 +134,7 @@ function setCachedJson(key, ino, size, mtimeMs, parsed) {
|
|
|
131
134
|
ino,
|
|
132
135
|
size,
|
|
133
136
|
mtimeMs,
|
|
134
|
-
parsed:
|
|
137
|
+
parsed: require_primordials_json.JSONParse(require_primordials_json.JSONStringify(parsed)),
|
|
135
138
|
insertedAt: require_primordials_date.DateNow()
|
|
136
139
|
});
|
|
137
140
|
}
|
package/dist/fs/read-json.js
CHANGED
|
@@ -49,7 +49,6 @@ const require_json_parse = require('../json/parse.js');
|
|
|
49
49
|
* @returns Promise resolving to parsed JSON value, or undefined if throws is
|
|
50
50
|
* false and an error occurs.
|
|
51
51
|
*/
|
|
52
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
53
52
|
async function readJson(filepath, options) {
|
|
54
53
|
const { cache, reviver, throws, ...fsOptions } = {
|
|
55
54
|
__proto__: null,
|
|
@@ -57,7 +56,7 @@ async function readJson(filepath, options) {
|
|
|
57
56
|
};
|
|
58
57
|
const shouldThrow = throws === void 0 || !!throws;
|
|
59
58
|
const cacheEnabled = cache !== false && reviver === void 0;
|
|
60
|
-
const fs =
|
|
59
|
+
const fs = require_node_fs.getNodeFs();
|
|
61
60
|
const pathStr = String(filepath);
|
|
62
61
|
if (cacheEnabled) try {
|
|
63
62
|
const stat = await fs.promises.stat(filepath);
|
|
@@ -82,7 +81,7 @@ async function readJson(filepath, options) {
|
|
|
82
81
|
}
|
|
83
82
|
return;
|
|
84
83
|
}
|
|
85
|
-
const parsed =
|
|
84
|
+
const parsed = require_json_parse.parseJson(content, {
|
|
86
85
|
filepath: pathStr,
|
|
87
86
|
reviver,
|
|
88
87
|
throws: shouldThrow
|
|
@@ -123,7 +122,6 @@ async function readJson(filepath, options) {
|
|
|
123
122
|
* @returns Parsed JSON value, or undefined if throws is false and an error
|
|
124
123
|
* occurs.
|
|
125
124
|
*/
|
|
126
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
127
125
|
function readJsonSync(filepath, options) {
|
|
128
126
|
const { cache, reviver, throws, ...fsOptions } = {
|
|
129
127
|
__proto__: null,
|
|
@@ -131,7 +129,7 @@ function readJsonSync(filepath, options) {
|
|
|
131
129
|
};
|
|
132
130
|
const shouldThrow = throws === void 0 || !!throws;
|
|
133
131
|
const cacheEnabled = cache !== false && reviver === void 0;
|
|
134
|
-
const fs =
|
|
132
|
+
const fs = require_node_fs.getNodeFs();
|
|
135
133
|
const pathStr = String(filepath);
|
|
136
134
|
if (cacheEnabled) try {
|
|
137
135
|
const stat = fs.statSync(filepath);
|
|
@@ -156,7 +154,7 @@ function readJsonSync(filepath, options) {
|
|
|
156
154
|
}
|
|
157
155
|
return;
|
|
158
156
|
}
|
|
159
|
-
const parsed =
|
|
157
|
+
const parsed = require_json_parse.parseJson(content, {
|
|
160
158
|
filepath: pathStr,
|
|
161
159
|
reviver,
|
|
162
160
|
throws: shouldThrow
|
|
@@ -22,7 +22,7 @@ function requireResolveFrom(fromDir, specifier, options) {
|
|
|
22
22
|
__proto__: null,
|
|
23
23
|
...options
|
|
24
24
|
};
|
|
25
|
-
const path =
|
|
25
|
+
const path = require_node_path.getNodePath();
|
|
26
26
|
const anchor = path.join(path.resolve(fromDir), "noop.js");
|
|
27
27
|
try {
|
|
28
28
|
return (0, node_module.createRequire)(anchor).resolve(specifier);
|
package/dist/fs/safe.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* true`. The mkdir helpers default to `recursive: true` and swallow `EEXIST`
|
|
6
6
|
* so concurrent callers don't race-condition each other.
|
|
7
7
|
*/
|
|
8
|
-
import './
|
|
8
|
+
import './allowed-dirs-cache';
|
|
9
9
|
import type { MakeDirectoryOptions, PathLike } from 'node:fs';
|
|
10
10
|
import type { deleteAsync as deleteAsyncType, deleteSync as deleteSyncType } from '../external/del';
|
|
11
11
|
import type { RemoveOptions } from './types';
|
package/dist/fs/safe.js
CHANGED
|
@@ -28,11 +28,10 @@ const defaultRemoveOptions = require_objects_mutate.objectFreeze({
|
|
|
28
28
|
recursive: true,
|
|
29
29
|
retryDelay: 200
|
|
30
30
|
});
|
|
31
|
-
let
|
|
32
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
31
|
+
let delModule;
|
|
33
32
|
function getDel() {
|
|
34
|
-
if (
|
|
35
|
-
return
|
|
33
|
+
if (delModule === void 0) delModule = /*@__PURE__*/ require("../external/del");
|
|
34
|
+
return delModule;
|
|
36
35
|
}
|
|
37
36
|
/**
|
|
38
37
|
* Safely delete a file or directory asynchronously with built-in protections.
|
|
@@ -75,11 +74,11 @@ async function safeDelete(filepath, options) {
|
|
|
75
74
|
__proto__: null,
|
|
76
75
|
...options
|
|
77
76
|
};
|
|
78
|
-
const patterns = require_arrays_predicates.isArray(filepath) ? filepath.map(require_paths__internal.pathLikeToString) : [
|
|
77
|
+
const patterns = require_arrays_predicates.isArray(filepath) ? filepath.map(require_paths__internal.pathLikeToString) : [require_paths__internal.pathLikeToString(filepath)];
|
|
79
78
|
/* c8 ignore start */
|
|
80
79
|
let shouldForce = opts.force !== false;
|
|
81
80
|
if (!shouldForce && patterns.length > 0) {
|
|
82
|
-
const path =
|
|
81
|
+
const path = require_node_path.getNodePath();
|
|
83
82
|
const allowedDirs = require_fs__internal.getAllowedDirectories();
|
|
84
83
|
if (patterns.every((pattern) => {
|
|
85
84
|
const resolvedPath = path.resolve(pattern);
|
|
@@ -95,8 +94,8 @@ async function safeDelete(filepath, options) {
|
|
|
95
94
|
const maxRetries = opts.maxRetries ?? defaultRemoveOptions.maxRetries;
|
|
96
95
|
const retryDelay = opts.retryDelay ?? defaultRemoveOptions.retryDelay;
|
|
97
96
|
/* c8 ignore start - External del call */
|
|
98
|
-
const del =
|
|
99
|
-
await
|
|
97
|
+
const del = getDel();
|
|
98
|
+
await require_promises_retry.pRetry(async () => {
|
|
100
99
|
await del.deleteAsync(patterns, {
|
|
101
100
|
dryRun: false,
|
|
102
101
|
force: shouldForce,
|
|
@@ -151,11 +150,11 @@ function safeDeleteSync(filepath, options) {
|
|
|
151
150
|
__proto__: null,
|
|
152
151
|
...options
|
|
153
152
|
};
|
|
154
|
-
const patterns = require_arrays_predicates.isArray(filepath) ? filepath.map(require_paths__internal.pathLikeToString) : [
|
|
153
|
+
const patterns = require_arrays_predicates.isArray(filepath) ? filepath.map(require_paths__internal.pathLikeToString) : [require_paths__internal.pathLikeToString(filepath)];
|
|
155
154
|
/* c8 ignore start */
|
|
156
155
|
let shouldForce = opts.force !== false;
|
|
157
156
|
if (!shouldForce && patterns.length > 0) {
|
|
158
|
-
const path =
|
|
157
|
+
const path = require_node_path.getNodePath();
|
|
159
158
|
const allowedDirs = require_fs__internal.getAllowedDirectories();
|
|
160
159
|
if (patterns.every((pattern) => {
|
|
161
160
|
const resolvedPath = path.resolve(pattern);
|
|
@@ -171,7 +170,7 @@ function safeDeleteSync(filepath, options) {
|
|
|
171
170
|
const maxRetries = opts.maxRetries ?? defaultRemoveOptions.maxRetries;
|
|
172
171
|
const retryDelay = opts.retryDelay ?? defaultRemoveOptions.retryDelay;
|
|
173
172
|
/* c8 ignore start - External del call */
|
|
174
|
-
const del =
|
|
173
|
+
const del = getDel();
|
|
175
174
|
let lastError;
|
|
176
175
|
let delay = retryDelay;
|
|
177
176
|
for (let attempt = 0; attempt <= maxRetries; attempt++) try {
|
|
@@ -225,7 +224,7 @@ function safeDeleteSync(filepath, options) {
|
|
|
225
224
|
* @returns Promise that resolves when directory is created or already exists
|
|
226
225
|
*/
|
|
227
226
|
async function safeMkdir(path, options) {
|
|
228
|
-
const fs =
|
|
227
|
+
const fs = require_node_fs.getNodeFs();
|
|
229
228
|
const opts = {
|
|
230
229
|
__proto__: null,
|
|
231
230
|
recursive: true,
|
|
@@ -269,7 +268,7 @@ async function safeMkdir(path, options) {
|
|
|
269
268
|
* settings.
|
|
270
269
|
*/
|
|
271
270
|
function safeMkdirSync(path, options) {
|
|
272
|
-
const fs =
|
|
271
|
+
const fs = require_node_fs.getNodeFs();
|
|
273
272
|
const opts = {
|
|
274
273
|
__proto__: null,
|
|
275
274
|
recursive: true,
|
package/dist/fs/unique.js
CHANGED
|
@@ -33,12 +33,11 @@ const require_node_path = require('../node/path.js');
|
|
|
33
33
|
* @returns Normalized unique filepath (original if it doesn't exist, or with
|
|
34
34
|
* number suffix)
|
|
35
35
|
*/
|
|
36
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
37
36
|
function uniqueSync(filepath) {
|
|
38
|
-
const fs =
|
|
39
|
-
const path =
|
|
37
|
+
const fs = require_node_fs.getNodeFs();
|
|
38
|
+
const path = require_node_path.getNodePath();
|
|
40
39
|
const filepathStr = String(filepath);
|
|
41
|
-
if (!fs.existsSync(filepathStr)) return
|
|
40
|
+
if (!fs.existsSync(filepathStr)) return require_paths_normalize.normalizePath(filepathStr);
|
|
42
41
|
const dirname = path.dirname(filepathStr);
|
|
43
42
|
const ext = path.extname(filepathStr);
|
|
44
43
|
const basename = path.basename(filepathStr, ext);
|
|
@@ -48,7 +47,7 @@ function uniqueSync(filepath) {
|
|
|
48
47
|
uniquePath = path.join(dirname, `${basename}-${counter}${ext}`);
|
|
49
48
|
counter++;
|
|
50
49
|
} while (fs.existsSync(uniquePath));
|
|
51
|
-
return
|
|
50
|
+
return require_paths_normalize.normalizePath(uniquePath);
|
|
52
51
|
}
|
|
53
52
|
|
|
54
53
|
//#endregion
|