@socketsecurity/lib 6.0.6 → 6.0.8
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 +46 -1
- package/README.md +1 -1
- package/dist/ai/agent-context.d.mts +103 -0
- package/dist/ai/agent-context.js +157 -0
- package/dist/ai/backends.d.mts +83 -0
- package/dist/ai/backends.js +173 -0
- package/dist/ai/credentials.d.mts +49 -0
- package/dist/ai/credentials.js +82 -0
- package/dist/ai/discover.d.mts +6 -2
- package/dist/ai/discover.js +4 -3
- package/dist/ai/exec.d.mts +52 -0
- package/dist/ai/exec.js +92 -0
- package/dist/ai/http.d.mts +132 -0
- package/dist/ai/http.js +130 -0
- package/dist/ai/profiles.d.mts +41 -6
- package/dist/ai/profiles.js +52 -10
- package/dist/ai/route.d.mts +69 -0
- package/dist/ai/route.js +156 -0
- package/dist/ai/spawn.d.mts +10 -2
- package/dist/ai/spawn.js +56 -31
- package/dist/ai/subagent-status.d.mts +48 -0
- package/dist/ai/subagent-status.js +57 -0
- package/dist/ai/tier.d.mts +60 -0
- package/dist/ai/tier.js +53 -0
- package/dist/ai/types.d.mts +31 -6
- package/dist/ai/worktree.d.mts +6 -6
- package/dist/ai/worktree.js +5 -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 +7 -7
- package/dist/archives/zip.js +5 -7
- 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 +20 -3
- package/dist/argv/parse.js +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 +47 -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 +17 -17
- package/dist/bin/prim.cjs +36175 -35861
- package/dist/bin/resolve.js +13 -14
- package/dist/bin/which.js +8 -8
- package/dist/cache/ttl/store.js +6 -6
- 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 +18 -13
- package/dist/{bin → cli}/check-primordials.js +58 -55
- 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 +18 -18
- package/dist/compression/brotli.d.ts +26 -27
- package/dist/compression/brotli.js +39 -35
- package/dist/compression/gzip.d.ts +23 -23
- package/dist/compression/gzip.js +46 -42
- 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.d.ts +3 -0
- package/dist/constants/packages.js +24 -29
- 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.d.ts +2 -6
- package/dist/constants/socket.js +12 -14
- package/dist/cover/code.js +10 -10
- package/dist/cover/formatters.js +5 -5
- package/dist/crypto/hash.d.ts +30 -2
- package/dist/crypto/hash.js +47 -13
- package/dist/debug/_internal.js +4 -6
- package/dist/debug/caller-info.js +3 -4
- 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 +18 -8
- package/dist/dlx/binary-cache.js +15 -15
- package/dist/dlx/binary-download.d.ts +1 -1
- package/dist/dlx/binary-download.js +11 -11
- package/dist/dlx/binary-resolution.js +17 -15
- 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 +42 -25
- package/dist/dlx/detect.js +86 -77
- package/dist/dlx/dir.js +2 -2
- package/dist/dlx/firewall.d.ts +9 -1
- package/dist/dlx/firewall.js +1 -1
- package/dist/dlx/lockfile.d.ts +19 -18
- package/dist/dlx/lockfile.js +19 -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 +20 -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 +2 -3
- package/dist/eco/cargo/parse-lockfile.js +5 -5
- package/dist/eco/manifest/analyze-lockfile.js +2 -2
- package/dist/eco/manifest/detect-format.js +5 -5
- 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 +17 -18
- package/dist/eco/npm/npm/parse-lockfile.js +4 -4
- package/dist/eco/npm/parse-package-json.d.ts +11 -0
- 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 +6 -4
- package/dist/eco/npm/pnpm/parse-lockfile.js +7 -7
- package/dist/eco/npm/script.js +9 -6
- package/dist/eco/npm/yarnpkg/yarn/exec.js +4 -4
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +3 -4
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +9 -9
- 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/proxy.js +1 -1
- package/dist/env/rewire.d.ts +8 -6
- package/dist/env/rewire.js +16 -17
- 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 +8 -109
- package/dist/env/socket.js +22 -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/errors/predicates.js +1 -1
- 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/@npmcli/promise-spawn.js +3 -1
- package/dist/external/npm-pack.js +2 -2
- package/dist/external/pico-pack.js +4 -2
- package/dist/external/which.js +3 -1
- package/dist/external-tools/bazel/asset-names.d.ts +1 -1
- package/dist/external-tools/bazel/asset-names.js +5 -2
- package/dist/external-tools/bazel/from-download.d.ts +1 -1
- package/dist/external-tools/bazel/from-download.js +5 -2
- package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
- package/dist/external-tools/bazel/resolve-bazel-version.js +4 -0
- package/dist/external-tools/bazel/resolve.d.ts +3 -3
- package/dist/external-tools/bazel/resolve.js +16 -8
- package/dist/external-tools/bazel/types.d.ts +1 -1
- package/dist/external-tools/cdxgen/asset-names.d.ts +1 -1
- package/dist/external-tools/cdxgen/asset-names.js +5 -2
- package/dist/external-tools/cdxgen/from-download.d.ts +1 -1
- package/dist/external-tools/cdxgen/from-download.js +7 -4
- package/dist/external-tools/cdxgen/from-vfs.js +1 -1
- package/dist/external-tools/cdxgen/resolve.d.ts +3 -3
- package/dist/external-tools/cdxgen/resolve.js +16 -8
- package/dist/external-tools/cdxgen/types.d.ts +1 -1
- package/dist/external-tools/from-download.d.ts +3 -3
- package/dist/external-tools/from-download.js +12 -6
- package/dist/external-tools/from-pip-venv.d.ts +1 -1
- package/dist/external-tools/from-pip-venv.js +12 -5
- package/dist/external-tools/janus/asset-names.d.ts +1 -1
- package/dist/external-tools/janus/asset-names.js +5 -2
- package/dist/external-tools/janus/from-download.d.ts +1 -1
- package/dist/external-tools/janus/from-download.js +5 -2
- package/dist/external-tools/janus/from-vfs.js +1 -1
- package/dist/external-tools/janus/resolve.d.ts +3 -3
- package/dist/external-tools/janus/resolve.js +16 -8
- package/dist/external-tools/janus/types.d.ts +1 -1
- package/dist/external-tools/jre/asset-names.d.ts +1 -1
- package/dist/external-tools/jre/asset-names.js +5 -2
- 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-download.d.ts +1 -1
- package/dist/external-tools/jre/from-download.js +7 -4
- package/dist/external-tools/jre/from-java-home.js +2 -2
- package/dist/external-tools/jre/from-vfs.js +3 -3
- package/dist/external-tools/jre/resolve.d.ts +3 -3
- package/dist/external-tools/jre/resolve.js +16 -8
- package/dist/external-tools/jre/types.d.ts +1 -1
- package/dist/external-tools/manifest.d.ts +25 -7
- package/dist/external-tools/manifest.js +13 -13
- package/dist/external-tools/opengrep/asset-names.d.ts +1 -1
- package/dist/external-tools/opengrep/asset-names.js +5 -2
- package/dist/external-tools/opengrep/from-download.d.ts +1 -1
- package/dist/external-tools/opengrep/from-download.js +5 -2
- package/dist/external-tools/opengrep/from-vfs.js +1 -1
- package/dist/external-tools/opengrep/resolve.d.ts +3 -3
- package/dist/external-tools/opengrep/resolve.js +16 -8
- 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 +111 -0
- package/dist/external-tools/python/dlx.d.ts +80 -0
- package/dist/external-tools/python/dlx.js +98 -0
- package/dist/external-tools/python/from-download.d.ts +53 -0
- package/dist/external-tools/python/from-download.js +75 -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 +176 -0
- package/dist/external-tools/python/pip-install.d.ts +75 -0
- package/dist/external-tools/python/pip-install.js +142 -0
- package/dist/external-tools/python/resolve.d.ts +42 -0
- package/dist/external-tools/python/resolve.js +66 -0
- package/dist/external-tools/python/types.d.ts +49 -0
- package/dist/external-tools/sbt/asset-names.d.ts +1 -1
- package/dist/external-tools/sbt/asset-names.js +5 -2
- package/dist/external-tools/sbt/from-download.d.ts +1 -1
- package/dist/external-tools/sbt/from-download.js +5 -2
- package/dist/external-tools/sbt/from-vfs.js +1 -1
- package/dist/external-tools/sbt/resolve.d.ts +3 -3
- package/dist/external-tools/sbt/resolve.js +16 -8
- package/dist/external-tools/sbt/types.d.ts +1 -1
- package/dist/external-tools/skillspector/from-dlx.d.ts +1 -1
- package/dist/external-tools/skillspector/from-dlx.js +10 -3
- package/dist/external-tools/skillspector/from-path.js +3 -5
- package/dist/external-tools/skillspector/from-vfs.js +1 -1
- package/dist/external-tools/skillspector/resolve.d.ts +2 -2
- package/dist/external-tools/skillspector/resolve.js +14 -6
- package/dist/external-tools/synp/asset-names.d.ts +1 -1
- package/dist/external-tools/synp/asset-names.js +6 -2
- package/dist/external-tools/synp/from-download.d.ts +1 -1
- package/dist/external-tools/synp/from-download.js +7 -4
- package/dist/external-tools/synp/from-vfs.js +1 -1
- package/dist/external-tools/synp/resolve.d.ts +3 -3
- package/dist/external-tools/synp/resolve.js +16 -8
- package/dist/external-tools/trivy/asset-names.d.ts +1 -1
- package/dist/external-tools/trivy/asset-names.js +5 -2
- package/dist/external-tools/trivy/from-download.d.ts +1 -1
- package/dist/external-tools/trivy/from-download.js +7 -4
- package/dist/external-tools/trivy/from-vfs.js +1 -1
- package/dist/external-tools/trivy/resolve.d.ts +3 -3
- package/dist/external-tools/trivy/resolve.js +16 -8
- package/dist/external-tools/trivy/types.d.ts +1 -1
- package/dist/external-tools/trufflehog/asset-names.d.ts +1 -1
- package/dist/external-tools/trufflehog/asset-names.js +5 -2
- package/dist/external-tools/trufflehog/from-download.d.ts +1 -1
- package/dist/external-tools/trufflehog/from-download.js +7 -4
- package/dist/external-tools/trufflehog/from-vfs.js +1 -1
- package/dist/external-tools/trufflehog/resolve.d.ts +3 -3
- package/dist/external-tools/trufflehog/resolve.js +16 -8
- 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/allowed-dirs-cache.d.ts +47 -0
- package/dist/fs/allowed-dirs-cache.js +69 -0
- package/dist/fs/encoding.js +5 -7
- package/dist/fs/{find-up.js → find.js} +12 -14
- 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 +13 -4
- package/dist/fs/read-json-cache.js +9 -6
- package/dist/fs/read-json.js +4 -6
- package/dist/fs/resolve-module.js +7 -3
- package/dist/fs/safe.d.ts +1 -1
- package/dist/fs/safe.js +13 -14
- 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 +11 -11
- package/dist/git/changed.js +4 -4
- package/dist/git/repo.js +5 -7
- package/dist/git/staged.js +12 -4
- package/dist/git/tracked.d.ts +84 -0
- package/dist/git/tracked.js +163 -0
- package/dist/git/unstaged.js +12 -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-graphql.js +4 -0
- package/dist/github/refs-rest.js +9 -5
- package/dist/github/refs.js +15 -10
- 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 +8 -10
- package/dist/globs/match.js +13 -7
- package/dist/globs/matcher.d.ts +3 -3
- package/dist/globs/matcher.js +16 -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 +10 -4
- 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/{browser-fetch.d.ts → fetch/browser.d.ts} +2 -2
- package/dist/http-request/{browser-fetch.js → fetch/browser.js} +4 -4
- package/dist/http-request/headers.js +1 -2
- package/dist/http-request/request-attempt.js +38 -34
- 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 +4 -5
- package/dist/integrity.d.ts +92 -18
- package/dist/integrity.js +125 -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 +51 -44
- package/dist/json/format.js +1 -1
- 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 +144 -0
- package/dist/native-messaging/rate-limit.d.ts +69 -0
- package/dist/native-messaging/rate-limit.js +119 -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.d.ts +22 -6
- package/dist/node/fs.js +17 -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.d.ts +10 -2
- package/dist/node/os.js +12 -4
- package/dist/node/path.d.ts +11 -2
- package/dist/node/path.js +18 -4
- 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 +6 -8
- package/dist/objects/inspect.js +1 -4
- package/dist/objects/mutate.js +4 -5
- package/dist/objects/predicates.js +1 -5
- package/dist/objects/sort.js +3 -7
- package/dist/packages/edit-class.d.ts +2 -3
- package/dist/packages/edit-class.js +53 -48
- package/dist/packages/edit.js +12 -14
- package/dist/packages/exports.js +15 -21
- 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 +18 -18
- package/dist/packages/manifest.js +16 -19
- package/dist/packages/metadata-extensions.d.ts +14 -0
- package/dist/packages/metadata-extensions.js +43 -0
- package/dist/packages/normalize.js +6 -10
- package/dist/packages/provenance.js +17 -19
- 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 +75 -12
- package/dist/packages/tarball.d.ts +24 -0
- package/dist/packages/tarball.js +81 -0
- package/dist/packages/types.d.ts +22 -22
- 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/dirnames.d.ts +1 -0
- package/dist/paths/dirnames.js +2 -0
- 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 +17 -25
- package/dist/paths/rewire.d.ts +5 -0
- package/dist/paths/rewire.js +3 -3
- package/dist/paths/socket.d.ts +74 -111
- package/dist/paths/socket.js +106 -139
- 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/process.d.ts +88 -0
- package/dist/primordials/process.js +132 -0
- 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.d.ts +1 -2
- 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 +20 -14
- package/dist/process/spawn/errors.js +3 -5
- 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/regexps/spec.js +1 -1
- package/dist/releases/github-archives.d.ts +6 -6
- package/dist/releases/github-archives.js +3 -3
- 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 +12 -4
- 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 +4 -5
- package/dist/schema/validate.js +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/find.d.ts +2 -2
- package/dist/secrets/find.js +10 -4
- package/dist/secrets/keychain.d.ts +1 -1
- package/dist/secrets/keychain.js +6 -4
- package/dist/secrets/linux.js +40 -52
- package/dist/secrets/macos.d.ts +2 -3
- package/dist/secrets/macos.js +24 -33
- package/dist/secrets/rc.d.ts +4 -4
- package/dist/secrets/rc.js +27 -17
- package/dist/secrets/socket-api-token.d.ts +4 -4
- package/dist/secrets/socket-api-token.js +26 -9
- package/dist/secrets/windows.js +32 -37
- package/dist/shadow/skip.js +2 -2
- package/dist/shell/parse.d.ts +32 -0
- package/dist/shell/parse.js +60 -0
- 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 +105 -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 +8 -5
- package/dist/spinner/spinner.js +19 -706
- 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 +10 -6
- package/dist/stdio/prompts.d.ts +7 -5
- package/dist/stdio/prompts.js +7 -8
- 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/assert-safe.d.ts +29 -0
- package/dist/url/assert-safe.js +54 -0
- package/dist/url/parse.js +0 -2
- package/dist/url/predicates.d.ts +31 -1
- package/dist/url/predicates.js +43 -3
- package/dist/url/search-params.js +3 -9
- package/dist/url/types.d.ts +9 -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 +419 -216
- 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/fs/path-cache.d.ts +0 -21
- package/dist/fs/path-cache.js +0 -34
- 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/{find-up.d.ts → find.d.ts} +0 -0
- /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
|
@@ -4,10 +4,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4
4
|
const require_runtime = require('../_virtual/_rolldown/runtime.js');
|
|
5
5
|
const require_primordials_error = require('../primordials/error.js');
|
|
6
6
|
const require_constants_platform = require('../constants/platform.js');
|
|
7
|
+
const require_primordials_object = require('../primordials/object.js');
|
|
7
8
|
const require_paths_normalize = require('../paths/normalize.js');
|
|
8
9
|
const require_node_fs = require('../node/fs.js');
|
|
9
10
|
const require_node_path = require('../node/path.js');
|
|
10
|
-
const require_primordials_object = require('../primordials/object.js');
|
|
11
11
|
const require_fs_read_json = require('../fs/read-json.js');
|
|
12
12
|
const require_dlx__internal = require('./_internal.js');
|
|
13
13
|
let src_external_libnpmexec = require("../external/libnpmexec");
|
|
@@ -41,9 +41,9 @@ src_external_libnpmexec = require_runtime.__toESM(src_external_libnpmexec);
|
|
|
41
41
|
* ```
|
|
42
42
|
*/
|
|
43
43
|
function findBinaryPath(packageDir, packageName, binaryName) {
|
|
44
|
-
const path =
|
|
45
|
-
const installedDir =
|
|
46
|
-
const pkgJson =
|
|
44
|
+
const path = require_node_path.getNodePath();
|
|
45
|
+
const installedDir = require_paths_normalize.normalizePath(path.join(packageDir, "node_modules", packageName));
|
|
46
|
+
const pkgJson = require_fs_read_json.readJsonSync(path.join(installedDir, "package.json"));
|
|
47
47
|
const bin = pkgJson["bin"];
|
|
48
48
|
let binName;
|
|
49
49
|
let binPath;
|
|
@@ -82,7 +82,7 @@ function findBinaryPath(packageDir, packageName, binaryName) {
|
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
if (!binPath) throw new require_primordials_error.ErrorCtor(`No binary found for package "${packageName}"`);
|
|
85
|
-
return resolveBinaryPath(
|
|
85
|
+
return resolveBinaryPath(require_paths_normalize.normalizePath(path.join(installedDir, binPath)));
|
|
86
86
|
}
|
|
87
87
|
/**
|
|
88
88
|
* Make all binaries in an installed package executable. Reads the package.json
|
|
@@ -105,12 +105,12 @@ function findBinaryPath(packageDir, packageName, binaryName) {
|
|
|
105
105
|
*/
|
|
106
106
|
function makePackageBinsExecutable(packageDir, packageName) {
|
|
107
107
|
if (require_constants_platform.WIN32) return;
|
|
108
|
-
const fs =
|
|
109
|
-
const path =
|
|
110
|
-
const installedDir =
|
|
108
|
+
const fs = require_node_fs.getNodeFs();
|
|
109
|
+
const path = require_node_path.getNodePath();
|
|
110
|
+
const installedDir = require_paths_normalize.normalizePath(path.join(packageDir, "node_modules", packageName));
|
|
111
111
|
const pkgJsonPath = path.join(installedDir, "package.json");
|
|
112
112
|
try {
|
|
113
|
-
const bin =
|
|
113
|
+
const bin = require_fs_read_json.readJsonSync(pkgJsonPath)["bin"];
|
|
114
114
|
if (!bin) return;
|
|
115
115
|
const binPaths = [];
|
|
116
116
|
if (typeof bin === "string") binPaths.push(bin);
|
|
@@ -118,8 +118,9 @@ function makePackageBinsExecutable(packageDir, packageName) {
|
|
|
118
118
|
const binObj = bin;
|
|
119
119
|
binPaths.push(...require_primordials_object.ObjectValues(binObj));
|
|
120
120
|
}
|
|
121
|
-
for (
|
|
122
|
-
const
|
|
121
|
+
for (let i = 0, { length } = binPaths; i < length; i += 1) {
|
|
122
|
+
const binPath = binPaths[i];
|
|
123
|
+
const fullPath = require_paths_normalize.normalizePath(path.join(installedDir, binPath));
|
|
123
124
|
if (fs.existsSync(fullPath)) try {
|
|
124
125
|
fs.chmodSync(fullPath, 493);
|
|
125
126
|
} catch {}
|
|
@@ -141,7 +142,7 @@ function makePackageBinsExecutable(packageDir, packageName) {
|
|
|
141
142
|
*/
|
|
142
143
|
function resolveBinaryPath(basePath) {
|
|
143
144
|
if (!require_constants_platform.WIN32) return basePath;
|
|
144
|
-
const fs =
|
|
145
|
+
const fs = require_node_fs.getNodeFs();
|
|
145
146
|
const cached = require_dlx__internal.binaryPathCache.get(basePath);
|
|
146
147
|
if (cached) {
|
|
147
148
|
if (fs.existsSync(cached)) {
|
|
@@ -150,14 +151,15 @@ function resolveBinaryPath(basePath) {
|
|
|
150
151
|
}
|
|
151
152
|
require_dlx__internal.binaryPathCache.delete(basePath);
|
|
152
153
|
}
|
|
153
|
-
|
|
154
|
+
const extensions = [
|
|
154
155
|
".cmd",
|
|
155
156
|
".bat",
|
|
156
157
|
".ps1",
|
|
157
158
|
".exe",
|
|
158
159
|
""
|
|
159
|
-
]
|
|
160
|
-
|
|
160
|
+
];
|
|
161
|
+
for (let i = 0, { length } = extensions; i < length; i += 1) {
|
|
162
|
+
const testPath = basePath + extensions[i];
|
|
161
163
|
if (fs.existsSync(testPath)) {
|
|
162
164
|
require_dlx__internal.binaryPathCacheSet(basePath, testPath);
|
|
163
165
|
return testPath;
|
|
@@ -132,13 +132,13 @@ export interface DlxMetadata {
|
|
|
132
132
|
size: number;
|
|
133
133
|
source?: {
|
|
134
134
|
type: 'download' | 'extract' | 'package';
|
|
135
|
-
url?: string;
|
|
136
|
-
path?: string;
|
|
137
|
-
spec?: string;
|
|
138
|
-
};
|
|
135
|
+
url?: string | undefined;
|
|
136
|
+
path?: string | undefined;
|
|
137
|
+
spec?: string | undefined;
|
|
138
|
+
} | undefined;
|
|
139
139
|
update_check?: {
|
|
140
140
|
last_check: number;
|
|
141
141
|
last_notification: number;
|
|
142
142
|
latest_known: string;
|
|
143
|
-
};
|
|
143
|
+
} | undefined;
|
|
144
144
|
}
|
package/dist/dlx/binary.js
CHANGED
|
@@ -59,18 +59,18 @@ async function dlxBinary(args, options, spawnExtra) {
|
|
|
59
59
|
if (normalized.type === "integrity") integrity = normalized.value;
|
|
60
60
|
else sha256 = normalized.value;
|
|
61
61
|
}
|
|
62
|
-
const fs =
|
|
63
|
-
const path =
|
|
62
|
+
const fs = require_node_fs.getNodeFs();
|
|
63
|
+
const path = require_node_path.getNodePath();
|
|
64
64
|
const force = yes === true ? true : userForce;
|
|
65
65
|
const cacheDir = require_dlx_binary_cache.getDlxCachePath();
|
|
66
66
|
const binaryName = name || `binary-${node_process.default.platform}-${require_constants_platform.getArch()}`;
|
|
67
67
|
const cacheKey = require_dlx_cache.generateCacheKey(`${url}:${binaryName}`);
|
|
68
68
|
const cacheEntryDir = path.join(cacheDir, cacheKey);
|
|
69
|
-
const binaryPath =
|
|
69
|
+
const binaryPath = require_paths_normalize.normalizePath(path.join(cacheEntryDir, binaryName));
|
|
70
70
|
let downloaded = false;
|
|
71
71
|
let computedIntegrity = integrity;
|
|
72
72
|
if (!force && fs.existsSync(cacheEntryDir) && await require_dlx_binary_cache.isBinaryCacheValid(cacheEntryDir, cacheTtl)) try {
|
|
73
|
-
const metadata = await
|
|
73
|
+
const metadata = await require_fs_read_json.readJson(require_dlx_binary_cache.getBinaryCacheMetadataPath(cacheEntryDir), { throws: false });
|
|
74
74
|
if (metadata && typeof metadata === "object" && !require_primordials_array.ArrayIsArray(metadata) && typeof metadata["integrity"] === "string") {
|
|
75
75
|
computedIntegrity = metadata["integrity"];
|
|
76
76
|
if (!fs.existsSync(binaryPath)) downloaded = true;
|
|
@@ -129,7 +129,7 @@ async function dlxBinary(args, options, spawnExtra) {
|
|
|
129
129
|
*/
|
|
130
130
|
function executeBinary(binaryPath, args, spawnOptions, spawnExtra) {
|
|
131
131
|
const needsShell = require_constants_platform.WIN32 && /\.(?:bat|cmd|ps1)$/i.test(binaryPath);
|
|
132
|
-
const path =
|
|
132
|
+
const path = require_node_path.getNodePath();
|
|
133
133
|
const cacheEntryDir = path.dirname(binaryPath);
|
|
134
134
|
return require_process_spawn_child.spawn(binaryPath, args, needsShell ? {
|
|
135
135
|
...spawnOptions,
|
package/dist/dlx/cache.js
CHANGED
|
@@ -41,7 +41,7 @@ const require_crypto_hash = require('../crypto/hash.js');
|
|
|
41
41
|
* hashes the package spec (name@version), not just name.
|
|
42
42
|
*/
|
|
43
43
|
function generateCacheKey(spec) {
|
|
44
|
-
return
|
|
44
|
+
return require_crypto_hash.hash("sha512", spec, "hex").substring(0, 16);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
//#endregion
|
package/dist/dlx/detect.d.ts
CHANGED
|
@@ -11,36 +11,21 @@
|
|
|
11
11
|
* - DLX cache: Check for node_modules/ directory
|
|
12
12
|
* - Local paths: Check for package.json with bin field, then file extension
|
|
13
13
|
*/
|
|
14
|
-
export
|
|
14
|
+
export type PackageJsonPathEntry = {
|
|
15
|
+
path: string | undefined;
|
|
16
|
+
at: number;
|
|
17
|
+
};
|
|
18
|
+
export type PackageJsonCacheEntry = {
|
|
19
|
+
mtimeMs: number;
|
|
20
|
+
content: object | undefined;
|
|
21
|
+
};
|
|
15
22
|
export type ExecutableType = 'package' | 'binary' | 'unknown';
|
|
16
23
|
export interface ExecutableDetectionResult {
|
|
17
24
|
type: ExecutableType;
|
|
18
25
|
method: 'dlx-cache' | 'package-json' | 'file-extension';
|
|
19
|
-
packageJsonPath?: string;
|
|
20
|
-
inDlxCache?: boolean;
|
|
26
|
+
packageJsonPath?: string | undefined;
|
|
27
|
+
inDlxCache?: boolean | undefined;
|
|
21
28
|
}
|
|
22
|
-
/**
|
|
23
|
-
* Find package.json in the directory containing the file or parent directories.
|
|
24
|
-
* Results are cached to avoid repeated directory traversal.
|
|
25
|
-
*
|
|
26
|
-
* @private
|
|
27
|
-
*
|
|
28
|
-
* @param filePath - Path to search from.
|
|
29
|
-
*
|
|
30
|
-
* @returns Path to package.json if found, undefined otherwise
|
|
31
|
-
*/
|
|
32
|
-
export declare function findPackageJson(filePath: string): string | undefined;
|
|
33
|
-
/**
|
|
34
|
-
* Read and parse package.json with caching. Results are cached to avoid
|
|
35
|
-
* repeated file reads.
|
|
36
|
-
*
|
|
37
|
-
* @private
|
|
38
|
-
*
|
|
39
|
-
* @param packageJsonPath - Path to package.json.
|
|
40
|
-
*
|
|
41
|
-
* @returns Parsed package.json or null if invalid
|
|
42
|
-
*/
|
|
43
|
-
export declare function readPackageJson(packageJsonPath: string): object | undefined;
|
|
44
29
|
/**
|
|
45
30
|
* Detect executable type for paths in DLX cache. Uses filesystem structure
|
|
46
31
|
* (node_modules/ presence).
|
|
@@ -95,6 +80,17 @@ export declare function detectExecutableType(filePath: string): ExecutableDetect
|
|
|
95
80
|
* @returns Detection result
|
|
96
81
|
*/
|
|
97
82
|
export declare function detectLocalExecutableType(filePath: string): ExecutableDetectionResult;
|
|
83
|
+
/**
|
|
84
|
+
* Find package.json in the directory containing the file or parent directories.
|
|
85
|
+
* Results are cached to avoid repeated directory traversal.
|
|
86
|
+
*
|
|
87
|
+
* @private
|
|
88
|
+
*
|
|
89
|
+
* @param filePath - Path to search from.
|
|
90
|
+
*
|
|
91
|
+
* @returns Path to package.json if found, undefined otherwise
|
|
92
|
+
*/
|
|
93
|
+
export declare function findPackageJson(filePath: string): string | undefined;
|
|
98
94
|
/**
|
|
99
95
|
* Check if a file path indicates a Node.js script.
|
|
100
96
|
*
|
|
@@ -138,3 +134,24 @@ export declare function isNativeBinary(filePath: string): boolean;
|
|
|
138
134
|
* @returns True if detected as Node.js package
|
|
139
135
|
*/
|
|
140
136
|
export declare function isNodePackage(filePath: string): boolean;
|
|
137
|
+
/**
|
|
138
|
+
* Set a package.json path cache entry, evicting the oldest when the LRU is
|
|
139
|
+
* full.
|
|
140
|
+
*
|
|
141
|
+
* @private
|
|
142
|
+
*
|
|
143
|
+
* @param key - Start directory used as the cache key.
|
|
144
|
+
* @param value - Resolved package.json path, or undefined for a negative entry.
|
|
145
|
+
*/
|
|
146
|
+
export declare function packageJsonPathCacheSet(key: string, value: string | undefined): void;
|
|
147
|
+
/**
|
|
148
|
+
* Read and parse package.json with caching. Results are cached to avoid
|
|
149
|
+
* repeated file reads.
|
|
150
|
+
*
|
|
151
|
+
* @private
|
|
152
|
+
*
|
|
153
|
+
* @param packageJsonPath - Path to package.json.
|
|
154
|
+
*
|
|
155
|
+
* @returns Parsed package.json or null if invalid
|
|
156
|
+
*/
|
|
157
|
+
export declare function readPackageJson(packageJsonPath: string): object | undefined;
|
package/dist/dlx/detect.js
CHANGED
|
@@ -8,7 +8,7 @@ const require_primordials_date = require('../primordials/date.js');
|
|
|
8
8
|
const require_primordials_json = require('../primordials/json.js');
|
|
9
9
|
const require_paths_socket = require('../paths/socket.js');
|
|
10
10
|
const require_dlx_paths = require('./paths.js');
|
|
11
|
-
const
|
|
11
|
+
const require_fs_find = require('../fs/find.js');
|
|
12
12
|
|
|
13
13
|
//#region src/dlx/detect.ts
|
|
14
14
|
/**
|
|
@@ -35,81 +35,8 @@ const NODE_JS_EXTENSIONS = new require_primordials_map_set.SetCtor([
|
|
|
35
35
|
const PACKAGE_JSON_PATH_CACHE_MAX_SIZE = 200;
|
|
36
36
|
const PACKAGE_JSON_NEGATIVE_TTL_MS = 1e4;
|
|
37
37
|
const packageJsonPathCache = new require_primordials_map_set.MapCtor();
|
|
38
|
-
function packageJsonPathCacheSet(key, value) {
|
|
39
|
-
if (packageJsonPathCache.has(key)) packageJsonPathCache.delete(key);
|
|
40
|
-
else if (packageJsonPathCache.size >= PACKAGE_JSON_PATH_CACHE_MAX_SIZE) {
|
|
41
|
-
const oldest = packageJsonPathCache.keys().next().value;
|
|
42
|
-
if (oldest !== void 0) packageJsonPathCache.delete(oldest);
|
|
43
|
-
}
|
|
44
|
-
packageJsonPathCache.set(key, {
|
|
45
|
-
path: value,
|
|
46
|
-
at: Date.now()
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
38
|
const packageJsonContentCache = new require_primordials_map_set.MapCtor();
|
|
50
39
|
/**
|
|
51
|
-
* Find package.json in the directory containing the file or parent directories.
|
|
52
|
-
* Results are cached to avoid repeated directory traversal.
|
|
53
|
-
*
|
|
54
|
-
* @private
|
|
55
|
-
*
|
|
56
|
-
* @param filePath - Path to search from.
|
|
57
|
-
*
|
|
58
|
-
* @returns Path to package.json if found, undefined otherwise
|
|
59
|
-
*/
|
|
60
|
-
function findPackageJson(filePath) {
|
|
61
|
-
const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
|
|
62
|
-
const nodePath = /* @__PURE__ */ require_node_path.getNodePath();
|
|
63
|
-
const startDir = nodePath.dirname(nodePath.resolve(filePath));
|
|
64
|
-
const cached = packageJsonPathCache.get(startDir);
|
|
65
|
-
if (cached !== void 0) if (cached.path === void 0) {
|
|
66
|
-
if (require_primordials_date.DateNow() - cached.at < PACKAGE_JSON_NEGATIVE_TTL_MS) return;
|
|
67
|
-
packageJsonPathCache.delete(startDir);
|
|
68
|
-
} else if (fs.existsSync(cached.path)) {
|
|
69
|
-
packageJsonPathCacheSet(startDir, cached.path);
|
|
70
|
-
return cached.path;
|
|
71
|
-
} else packageJsonPathCache.delete(startDir);
|
|
72
|
-
const packageJsonPath = /* @__PURE__ */ require_fs_find_up.findUpSync("package.json", { cwd: startDir });
|
|
73
|
-
packageJsonPathCacheSet(startDir, packageJsonPath);
|
|
74
|
-
return packageJsonPath;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Read and parse package.json with caching. Results are cached to avoid
|
|
78
|
-
* repeated file reads.
|
|
79
|
-
*
|
|
80
|
-
* @private
|
|
81
|
-
*
|
|
82
|
-
* @param packageJsonPath - Path to package.json.
|
|
83
|
-
*
|
|
84
|
-
* @returns Parsed package.json or null if invalid
|
|
85
|
-
*/
|
|
86
|
-
function readPackageJson(packageJsonPath) {
|
|
87
|
-
const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
|
|
88
|
-
let mtimeMs = 0;
|
|
89
|
-
try {
|
|
90
|
-
mtimeMs = fs.statSync(packageJsonPath).mtimeMs;
|
|
91
|
-
} catch {
|
|
92
|
-
packageJsonContentCache.delete(packageJsonPath);
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
const cached = packageJsonContentCache.get(packageJsonPath);
|
|
96
|
-
if (cached !== void 0 && cached.mtimeMs === mtimeMs) return cached.content;
|
|
97
|
-
try {
|
|
98
|
-
const content = require_primordials_json.JSONParse(fs.readFileSync(packageJsonPath, "utf8"));
|
|
99
|
-
packageJsonContentCache.set(packageJsonPath, {
|
|
100
|
-
mtimeMs,
|
|
101
|
-
content
|
|
102
|
-
});
|
|
103
|
-
return content;
|
|
104
|
-
} catch {
|
|
105
|
-
packageJsonContentCache.set(packageJsonPath, {
|
|
106
|
-
mtimeMs,
|
|
107
|
-
content: void 0
|
|
108
|
-
});
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
40
|
* Detect executable type for paths in DLX cache. Uses filesystem structure
|
|
114
41
|
* (node_modules/ presence).
|
|
115
42
|
*
|
|
@@ -124,8 +51,8 @@ function readPackageJson(packageJsonPath) {
|
|
|
124
51
|
* @returns Detection result
|
|
125
52
|
*/
|
|
126
53
|
function detectDlxExecutableType(filePath) {
|
|
127
|
-
const fs =
|
|
128
|
-
const path =
|
|
54
|
+
const fs = require_node_fs.getNodeFs();
|
|
55
|
+
const path = require_node_path.getNodePath();
|
|
129
56
|
const dlxDir = require_paths_socket.getSocketDlxDir();
|
|
130
57
|
const absolutePath = path.resolve(filePath);
|
|
131
58
|
const cacheKey = path.relative(dlxDir, absolutePath).split(path.sep)[0] ?? "";
|
|
@@ -204,6 +131,32 @@ function detectLocalExecutableType(filePath) {
|
|
|
204
131
|
};
|
|
205
132
|
}
|
|
206
133
|
/**
|
|
134
|
+
* Find package.json in the directory containing the file or parent directories.
|
|
135
|
+
* Results are cached to avoid repeated directory traversal.
|
|
136
|
+
*
|
|
137
|
+
* @private
|
|
138
|
+
*
|
|
139
|
+
* @param filePath - Path to search from.
|
|
140
|
+
*
|
|
141
|
+
* @returns Path to package.json if found, undefined otherwise
|
|
142
|
+
*/
|
|
143
|
+
function findPackageJson(filePath) {
|
|
144
|
+
const fs = require_node_fs.getNodeFs();
|
|
145
|
+
const nodePath = require_node_path.getNodePath();
|
|
146
|
+
const startDir = nodePath.dirname(nodePath.resolve(filePath));
|
|
147
|
+
const cached = packageJsonPathCache.get(startDir);
|
|
148
|
+
if (cached !== void 0) if (cached.path === void 0) {
|
|
149
|
+
if (require_primordials_date.DateNow() - cached.at < PACKAGE_JSON_NEGATIVE_TTL_MS) return;
|
|
150
|
+
packageJsonPathCache.delete(startDir);
|
|
151
|
+
} else if (fs.existsSync(cached.path)) {
|
|
152
|
+
packageJsonPathCacheSet(startDir, cached.path);
|
|
153
|
+
return cached.path;
|
|
154
|
+
} else packageJsonPathCache.delete(startDir);
|
|
155
|
+
const packageJsonPath = require_fs_find.findUpSync("package.json", { cwd: startDir });
|
|
156
|
+
packageJsonPathCacheSet(startDir, packageJsonPath);
|
|
157
|
+
return packageJsonPath;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
207
160
|
* Check if a file path indicates a Node.js script.
|
|
208
161
|
*
|
|
209
162
|
* @example
|
|
@@ -218,7 +171,7 @@ function detectLocalExecutableType(filePath) {
|
|
|
218
171
|
* @returns True if file has .js, .mjs, or .cjs extension
|
|
219
172
|
*/
|
|
220
173
|
function isJsFilePath(filePath) {
|
|
221
|
-
const ext =
|
|
174
|
+
const ext = require_node_path.getNodePath().extname(filePath).toLowerCase();
|
|
222
175
|
return NODE_JS_EXTENSIONS.has(ext);
|
|
223
176
|
}
|
|
224
177
|
/**
|
|
@@ -253,6 +206,62 @@ function isNativeBinary(filePath) {
|
|
|
253
206
|
function isNodePackage(filePath) {
|
|
254
207
|
return detectExecutableType(filePath).type === "package";
|
|
255
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Set a package.json path cache entry, evicting the oldest when the LRU is
|
|
211
|
+
* full.
|
|
212
|
+
*
|
|
213
|
+
* @private
|
|
214
|
+
*
|
|
215
|
+
* @param key - Start directory used as the cache key.
|
|
216
|
+
* @param value - Resolved package.json path, or undefined for a negative entry.
|
|
217
|
+
*/
|
|
218
|
+
function packageJsonPathCacheSet(key, value) {
|
|
219
|
+
if (packageJsonPathCache.has(key)) packageJsonPathCache.delete(key);
|
|
220
|
+
else if (packageJsonPathCache.size >= PACKAGE_JSON_PATH_CACHE_MAX_SIZE) {
|
|
221
|
+
const oldest = packageJsonPathCache.keys().next().value;
|
|
222
|
+
if (oldest !== void 0) packageJsonPathCache.delete(oldest);
|
|
223
|
+
}
|
|
224
|
+
packageJsonPathCache.set(key, {
|
|
225
|
+
path: value,
|
|
226
|
+
at: Date.now()
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Read and parse package.json with caching. Results are cached to avoid
|
|
231
|
+
* repeated file reads.
|
|
232
|
+
*
|
|
233
|
+
* @private
|
|
234
|
+
*
|
|
235
|
+
* @param packageJsonPath - Path to package.json.
|
|
236
|
+
*
|
|
237
|
+
* @returns Parsed package.json or null if invalid
|
|
238
|
+
*/
|
|
239
|
+
function readPackageJson(packageJsonPath) {
|
|
240
|
+
const fs = require_node_fs.getNodeFs();
|
|
241
|
+
let mtimeMs = 0;
|
|
242
|
+
try {
|
|
243
|
+
mtimeMs = fs.statSync(packageJsonPath).mtimeMs;
|
|
244
|
+
} catch {
|
|
245
|
+
packageJsonContentCache.delete(packageJsonPath);
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
const cached = packageJsonContentCache.get(packageJsonPath);
|
|
249
|
+
if (cached !== void 0 && cached.mtimeMs === mtimeMs) return cached.content;
|
|
250
|
+
try {
|
|
251
|
+
const content = require_primordials_json.JSONParse(fs.readFileSync(packageJsonPath, "utf8"));
|
|
252
|
+
packageJsonContentCache.set(packageJsonPath, {
|
|
253
|
+
mtimeMs,
|
|
254
|
+
content
|
|
255
|
+
});
|
|
256
|
+
return content;
|
|
257
|
+
} catch {
|
|
258
|
+
packageJsonContentCache.set(packageJsonPath, {
|
|
259
|
+
mtimeMs,
|
|
260
|
+
content: void 0
|
|
261
|
+
});
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
256
265
|
|
|
257
266
|
//#endregion
|
|
258
267
|
exports.detectDlxExecutableType = detectDlxExecutableType;
|
package/dist/dlx/dir.js
CHANGED
|
@@ -20,7 +20,7 @@ const require_dlx_packages = require('./packages.js');
|
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
22
|
async function clearDlx() {
|
|
23
|
-
await
|
|
23
|
+
await require_promises_iterate.pEach(await require_dlx_packages.listDlxPackagesAsync(), (pkg) => require_dlx_packages.removeDlxPackage(pkg));
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Clear all DLX package installations synchronously.
|
|
@@ -45,7 +45,7 @@ function clearDlxSync() {
|
|
|
45
45
|
* ```
|
|
46
46
|
*/
|
|
47
47
|
function dlxDirExists() {
|
|
48
|
-
return
|
|
48
|
+
return require_node_fs.getNodeFs().existsSync(require_paths_socket.getSocketDlxDir());
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Ensure the DLX directory exists, creating it if necessary.
|
package/dist/dlx/firewall.d.ts
CHANGED
|
@@ -7,7 +7,15 @@
|
|
|
7
7
|
* `dlx/package.ts` so the firewall logic + PURL helper can be reused by
|
|
8
8
|
* other dlx flows without dragging in the install orchestrator.
|
|
9
9
|
*/
|
|
10
|
-
import Arborist from '../external/@npmcli/arborist';
|
|
10
|
+
import type Arborist from '../external/@npmcli/arborist';
|
|
11
|
+
export interface FirewallAlert {
|
|
12
|
+
severity?: string | undefined;
|
|
13
|
+
type?: string | undefined;
|
|
14
|
+
key?: string | undefined;
|
|
15
|
+
}
|
|
16
|
+
export interface FirewallResponse {
|
|
17
|
+
alerts?: FirewallAlert[] | undefined;
|
|
18
|
+
}
|
|
11
19
|
/**
|
|
12
20
|
* Check all resolved packages in an Arborist ideal tree against the Socket
|
|
13
21
|
* Firewall API (public, no auth required). Throws if any dependency has
|
package/dist/dlx/firewall.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/* Socket Lib - Built with rolldown */
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
const require_primordials_error = require('../primordials/error.js');
|
|
5
|
-
const require_primordials_string = require('../primordials/string.js');
|
|
6
5
|
const require_primordials_map_set = require('../primordials/map-set.js');
|
|
6
|
+
const require_primordials_string = require('../primordials/string.js');
|
|
7
7
|
const require_primordials_promise = require('../primordials/promise.js');
|
|
8
8
|
const require_http_request_user_agent = require('../http-request/user-agent.js');
|
|
9
9
|
const require_http_request_node = require('../http-request/node.js');
|
package/dist/dlx/lockfile.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @file Package pin generation for dlx installs. `
|
|
3
|
-
* an npm package against the registry using Arborist's lockfile-only
|
|
4
|
-
* fetches its top-level tarball to return both hash formats plus the
|
|
5
|
-
* content — everything needed to vendor a reproducible install. The
|
|
2
|
+
* @file Package pin generation for dlx installs. `resolveNpmPackagePin`
|
|
3
|
+
* resolves an npm package against the registry using Arborist's lockfile-only
|
|
4
|
+
* mode and fetches its top-level tarball to return both hash formats plus the
|
|
5
|
+
* lockfile content — everything needed to vendor a reproducible install. The
|
|
6
6
|
* `LockfileSpec` type is also exported here for use as the `lockfile` option
|
|
7
|
-
* on `
|
|
8
|
-
* no helper.
|
|
7
|
+
* on `downloadNpmPackage`. Sniff/write handling lives inline in
|
|
8
|
+
* `./package.ts` — no helper.
|
|
9
9
|
*/
|
|
10
10
|
import type { ComputedHashes } from '../integrity';
|
|
11
11
|
/**
|
|
12
|
-
* Lockfile source for the `lockfile` option on `
|
|
12
|
+
* Lockfile source for the `lockfile` option on `downloadNpmPackage`.
|
|
13
13
|
*
|
|
14
14
|
* Bare strings are sniffed: a leading `{` (after whitespace) means JSON
|
|
15
15
|
* content, anything else is treated as a filesystem path. Pass the explicit `{
|
|
@@ -40,11 +40,7 @@ export declare const DEFAULT_MIN_RELEASE_DAYS = 7;
|
|
|
40
40
|
/**
|
|
41
41
|
* Options for generating a vendorable pin for an npm package.
|
|
42
42
|
*/
|
|
43
|
-
export interface
|
|
44
|
-
/**
|
|
45
|
-
* Package spec, e.g. `'@anthropic-ai/claude-code@2.1.92'`.
|
|
46
|
-
*/
|
|
47
|
-
package: string;
|
|
43
|
+
export interface ResolveNpmPackagePinOptions {
|
|
48
44
|
/**
|
|
49
45
|
* Minimum release age in days. Refuses to resolve any version (direct or
|
|
50
46
|
* transitive) published more recently than `Date.now() - N days`.
|
|
@@ -62,12 +58,17 @@ export interface GeneratePackagePinOptions {
|
|
|
62
58
|
* exclusive with {@link minReleaseDays}.
|
|
63
59
|
*/
|
|
64
60
|
minReleaseMins?: number | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Package spec, e.g. `'@anthropic-ai/claude-code@2.1.92'`. Named `spec` to
|
|
63
|
+
* match `downloadNpmPackage`/`downloadPipPackage`.
|
|
64
|
+
*/
|
|
65
|
+
spec: string;
|
|
65
66
|
}
|
|
66
67
|
/**
|
|
67
|
-
* Result of {@link
|
|
68
|
+
* Result of {@link resolveNpmPackagePin}. All file data is returned as content —
|
|
68
69
|
* the caller decides whether/where to write it.
|
|
69
70
|
*/
|
|
70
|
-
export interface
|
|
71
|
+
export interface NpmPackagePin {
|
|
71
72
|
/**
|
|
72
73
|
* Resolved package name.
|
|
73
74
|
*/
|
|
@@ -95,7 +96,7 @@ export interface PinDetails {
|
|
|
95
96
|
*/
|
|
96
97
|
export declare class DlxLockfileError extends Error {
|
|
97
98
|
constructor(message: string, options?: {
|
|
98
|
-
cause?: unknown;
|
|
99
|
+
cause?: unknown | undefined;
|
|
99
100
|
} | undefined);
|
|
100
101
|
}
|
|
101
102
|
/**
|
|
@@ -112,15 +113,15 @@ export declare class DlxLockfileError extends Error {
|
|
|
112
113
|
*
|
|
113
114
|
* @example
|
|
114
115
|
* ;```ts
|
|
115
|
-
* const pin = await
|
|
116
|
-
*
|
|
116
|
+
* const pin = await resolveNpmPackagePin({
|
|
117
|
+
* spec: '@anthropic-ai/claude-code@2.1.92',
|
|
117
118
|
* })
|
|
118
119
|
* await fs.writeFile('./claude.lock.json', pin.lockfile, 'utf8')
|
|
119
120
|
* // pin.hash.integrity → 'sha512-…'
|
|
120
121
|
* // pin.hash.checksum → hex
|
|
121
122
|
* ```
|
|
122
123
|
*/
|
|
123
|
-
export declare function
|
|
124
|
+
export declare function resolveNpmPackagePin(options: ResolveNpmPackagePinOptions): Promise<NpmPackagePin>;
|
|
124
125
|
/**
|
|
125
126
|
* Extract the package name from a spec like `'name@range'` or
|
|
126
127
|
* `'@scope/name@range'` or a bare `'name'`.
|
package/dist/dlx/lockfile.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/* Socket Lib - Built with rolldown */
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
const require_runtime = require('../_virtual/_rolldown/runtime.js');
|
|
5
|
-
const require_primordials_string = require('../primordials/string.js');
|
|
6
5
|
const require_integrity = require('../integrity.js');
|
|
6
|
+
const require_primordials_string = require('../primordials/string.js');
|
|
7
7
|
const require_node_fs = require('../node/fs.js');
|
|
8
8
|
const require_node_path = require('../node/path.js');
|
|
9
9
|
const require_primordials_date = require('../primordials/date.js');
|
|
@@ -17,13 +17,13 @@ src_external_pacote = require_runtime.__toESM(src_external_pacote);
|
|
|
17
17
|
|
|
18
18
|
//#region src/dlx/lockfile.ts
|
|
19
19
|
/**
|
|
20
|
-
* @file Package pin generation for dlx installs. `
|
|
21
|
-
* an npm package against the registry using Arborist's lockfile-only
|
|
22
|
-
* fetches its top-level tarball to return both hash formats plus the
|
|
23
|
-
* content — everything needed to vendor a reproducible install. The
|
|
20
|
+
* @file Package pin generation for dlx installs. `resolveNpmPackagePin`
|
|
21
|
+
* resolves an npm package against the registry using Arborist's lockfile-only
|
|
22
|
+
* mode and fetches its top-level tarball to return both hash formats plus the
|
|
23
|
+
* lockfile content — everything needed to vendor a reproducible install. The
|
|
24
24
|
* `LockfileSpec` type is also exported here for use as the `lockfile` option
|
|
25
|
-
* on `
|
|
26
|
-
* no helper.
|
|
25
|
+
* on `downloadNpmPackage`. Sniff/write handling lives inline in
|
|
26
|
+
* `./package.ts` — no helper.
|
|
27
27
|
*/
|
|
28
28
|
/**
|
|
29
29
|
* Default minimum release age in days applied when a caller passes neither
|
|
@@ -55,20 +55,23 @@ var DlxLockfileError = class extends Error {
|
|
|
55
55
|
*
|
|
56
56
|
* @example
|
|
57
57
|
* ;```ts
|
|
58
|
-
* const pin = await
|
|
59
|
-
*
|
|
58
|
+
* const pin = await resolveNpmPackagePin({
|
|
59
|
+
* spec: '@anthropic-ai/claude-code@2.1.92',
|
|
60
60
|
* })
|
|
61
61
|
* await fs.writeFile('./claude.lock.json', pin.lockfile, 'utf8')
|
|
62
62
|
* // pin.hash.integrity → 'sha512-…'
|
|
63
63
|
* // pin.hash.checksum → hex
|
|
64
64
|
* ```
|
|
65
65
|
*/
|
|
66
|
-
async function
|
|
67
|
-
const fs =
|
|
68
|
-
const path =
|
|
69
|
-
const { minReleaseDays, minReleaseMins,
|
|
70
|
-
|
|
71
|
-
|
|
66
|
+
async function resolveNpmPackagePin(options) {
|
|
67
|
+
const fs = require_node_fs.getNodeFs();
|
|
68
|
+
const path = require_node_path.getNodePath();
|
|
69
|
+
const { minReleaseDays, minReleaseMins, spec } = {
|
|
70
|
+
__proto__: null,
|
|
71
|
+
...options
|
|
72
|
+
};
|
|
73
|
+
if (typeof spec !== "string" || spec.length === 0) throw new DlxLockfileError("resolveNpmPackagePin requires a package spec");
|
|
74
|
+
if (minReleaseDays !== void 0 && minReleaseMins !== void 0) throw new DlxLockfileError("resolveNpmPackagePin: minReleaseDays and minReleaseMins are mutually exclusive");
|
|
72
75
|
const effectiveDays = minReleaseDays !== void 0 ? minReleaseDays : minReleaseMins !== void 0 ? void 0 : 7;
|
|
73
76
|
const ageMs = effectiveDays !== void 0 ? effectiveDays * 864e5 : minReleaseMins !== void 0 ? minReleaseMins * 6e4 : 0;
|
|
74
77
|
const before = ageMs > 0 ? new require_primordials_date.DateCtor(require_primordials_date.DateNow() - ageMs) : void 0;
|
|
@@ -125,6 +128,6 @@ function specRange(spec) {
|
|
|
125
128
|
//#endregion
|
|
126
129
|
exports.DEFAULT_MIN_RELEASE_DAYS = DEFAULT_MIN_RELEASE_DAYS;
|
|
127
130
|
exports.DlxLockfileError = DlxLockfileError;
|
|
128
|
-
exports.
|
|
131
|
+
exports.resolveNpmPackagePin = resolveNpmPackagePin;
|
|
129
132
|
exports.specName = specName;
|
|
130
133
|
exports.specRange = specRange;
|