@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
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Probe githubstatus.com to detect platform degradation before making
|
|
3
|
+
* GitHub API calls. Useful in scripts, release tooling, and CI pre-flight
|
|
4
|
+
* checks where a cryptic "operation was canceled" error would otherwise mask
|
|
5
|
+
* an upstream GitHub outage. Component IDs are stable GitHub-assigned
|
|
6
|
+
* identifiers from githubstatus.com/api/v2/components.json. The probe adds at
|
|
7
|
+
* most 8 seconds to startup (configurable timeout) and fails open on network
|
|
8
|
+
* error so a down status page never blocks a healthy workflow.
|
|
9
|
+
*/
|
|
10
|
+
export type GitHubComponentStatus = 'degraded_performance' | 'major_outage' | 'operational' | 'partial_outage' | 'under_maintenance';
|
|
11
|
+
export type GitHubStatusResult = {
|
|
12
|
+
/**
|
|
13
|
+
* Worst-case status across all monitored components.
|
|
14
|
+
*/
|
|
15
|
+
status: GitHubComponentStatus | 'unknown';
|
|
16
|
+
/**
|
|
17
|
+
* Whether any monitored component is not fully operational.
|
|
18
|
+
*/
|
|
19
|
+
degraded: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Human-readable summary, e.g. "Actions: degraded_performance".
|
|
22
|
+
*/
|
|
23
|
+
summary: string;
|
|
24
|
+
/**
|
|
25
|
+
* Per-component breakdown for the monitored set.
|
|
26
|
+
*/
|
|
27
|
+
components: Array<{
|
|
28
|
+
id: string;
|
|
29
|
+
name: string;
|
|
30
|
+
status: GitHubComponentStatus;
|
|
31
|
+
}>;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Probe githubstatus.com and return the health of GitHub Actions, Git
|
|
35
|
+
* Operations, and API Requests. Fails open (returns `{ status: 'unknown' }`)
|
|
36
|
+
* when the probe itself fails — so a down status page never blocks a healthy
|
|
37
|
+
* workflow.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ;```typescript
|
|
41
|
+
* import { probeGitHubStatus } from '@socketsecurity/lib/env/github-status'
|
|
42
|
+
*
|
|
43
|
+
* const health = await probeGitHubStatus()
|
|
44
|
+
* if (health.degraded) {
|
|
45
|
+
* console.warn(`GitHub degraded: ${health.summary}`)
|
|
46
|
+
* }
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @param timeoutMs - Maximum milliseconds to wait for the probe. Default 8000.
|
|
50
|
+
*/
|
|
51
|
+
export declare function probeGitHubStatus(timeoutMs?: number): Promise<GitHubStatusResult>;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_http_request_node = require('../http-request/node.js');
|
|
5
|
+
|
|
6
|
+
//#region src/env/github-status.ts
|
|
7
|
+
/**
|
|
8
|
+
* @file Probe githubstatus.com to detect platform degradation before making
|
|
9
|
+
* GitHub API calls. Useful in scripts, release tooling, and CI pre-flight
|
|
10
|
+
* checks where a cryptic "operation was canceled" error would otherwise mask
|
|
11
|
+
* an upstream GitHub outage. Component IDs are stable GitHub-assigned
|
|
12
|
+
* identifiers from githubstatus.com/api/v2/components.json. The probe adds at
|
|
13
|
+
* most 8 seconds to startup (configurable timeout) and fails open on network
|
|
14
|
+
* error so a down status page never blocks a healthy workflow.
|
|
15
|
+
*/
|
|
16
|
+
const MONITORED_COMPONENT_IDS = new Map([
|
|
17
|
+
["br0l2tvcx85d", "Actions"],
|
|
18
|
+
["8l4ygp009s5s", "Git Operations"],
|
|
19
|
+
["brv1bkgrwx7q", "API Requests"]
|
|
20
|
+
]);
|
|
21
|
+
const SEVERITY = new Map([
|
|
22
|
+
["major_outage", 4],
|
|
23
|
+
["partial_outage", 3],
|
|
24
|
+
["degraded_performance", 2],
|
|
25
|
+
["under_maintenance", 1],
|
|
26
|
+
["operational", 0]
|
|
27
|
+
]);
|
|
28
|
+
const STATUS_API_URL = "https://www.githubstatus.com/api/v2/components.json";
|
|
29
|
+
/**
|
|
30
|
+
* Probe githubstatus.com and return the health of GitHub Actions, Git
|
|
31
|
+
* Operations, and API Requests. Fails open (returns `{ status: 'unknown' }`)
|
|
32
|
+
* when the probe itself fails — so a down status page never blocks a healthy
|
|
33
|
+
* workflow.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ;```typescript
|
|
37
|
+
* import { probeGitHubStatus } from '@socketsecurity/lib/env/github-status'
|
|
38
|
+
*
|
|
39
|
+
* const health = await probeGitHubStatus()
|
|
40
|
+
* if (health.degraded) {
|
|
41
|
+
* console.warn(`GitHub degraded: ${health.summary}`)
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @param timeoutMs - Maximum milliseconds to wait for the probe. Default 8000.
|
|
46
|
+
*/
|
|
47
|
+
async function probeGitHubStatus(timeoutMs = 8e3) {
|
|
48
|
+
let body;
|
|
49
|
+
try {
|
|
50
|
+
body = await require_http_request_node.httpJson(STATUS_API_URL, { timeout: timeoutMs });
|
|
51
|
+
} catch {
|
|
52
|
+
return {
|
|
53
|
+
status: "unknown",
|
|
54
|
+
degraded: false,
|
|
55
|
+
summary: "githubstatus.com unreachable — cannot confirm GitHub health",
|
|
56
|
+
components: []
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const allComponents = body.components ?? [];
|
|
60
|
+
const monitored = [];
|
|
61
|
+
let worstSeverity = 0;
|
|
62
|
+
let worstStatus = "operational";
|
|
63
|
+
for (const c of allComponents) {
|
|
64
|
+
const name = MONITORED_COMPONENT_IDS.get(c.id);
|
|
65
|
+
if (!name) continue;
|
|
66
|
+
const status = c.status;
|
|
67
|
+
const sev = SEVERITY.get(status) ?? 0;
|
|
68
|
+
if (sev > worstSeverity) {
|
|
69
|
+
worstSeverity = sev;
|
|
70
|
+
worstStatus = status;
|
|
71
|
+
}
|
|
72
|
+
monitored.push({
|
|
73
|
+
id: c.id,
|
|
74
|
+
name,
|
|
75
|
+
status
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
const degradedComponents = monitored.filter((c) => c.status !== "operational");
|
|
79
|
+
const degraded = degradedComponents.length > 0;
|
|
80
|
+
const summary = degraded ? degradedComponents.map((c) => `${c.name}: ${c.status}`).join(", ") : "All monitored GitHub components operational";
|
|
81
|
+
return {
|
|
82
|
+
status: worstStatus,
|
|
83
|
+
degraded,
|
|
84
|
+
summary,
|
|
85
|
+
components: monitored
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
//#endregion
|
|
90
|
+
exports.probeGitHubStatus = probeGitHubStatus;
|
package/dist/env/github.js
CHANGED
|
@@ -22,7 +22,6 @@ const require_env_rewire = require('./rewire.js');
|
|
|
22
22
|
*
|
|
23
23
|
* @returns The GH CLI token, or `undefined` if not set
|
|
24
24
|
*/
|
|
25
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
26
25
|
function getGhToken() {
|
|
27
26
|
return require_env_rewire.getEnvValue("GH_TOKEN");
|
|
28
27
|
}
|
|
@@ -40,7 +39,6 @@ function getGhToken() {
|
|
|
40
39
|
*
|
|
41
40
|
* @returns The GitHub API URL, or `undefined` if not set
|
|
42
41
|
*/
|
|
43
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
44
42
|
function getGithubApiUrl() {
|
|
45
43
|
return require_env_rewire.getEnvValue("GITHUB_API_URL");
|
|
46
44
|
}
|
|
@@ -57,7 +55,6 @@ function getGithubApiUrl() {
|
|
|
57
55
|
*
|
|
58
56
|
* @returns The pull request base branch name, or `undefined` if not set
|
|
59
57
|
*/
|
|
60
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
61
58
|
function getGithubBaseRef() {
|
|
62
59
|
return require_env_rewire.getEnvValue("GITHUB_BASE_REF");
|
|
63
60
|
}
|
|
@@ -74,7 +71,6 @@ function getGithubBaseRef() {
|
|
|
74
71
|
*
|
|
75
72
|
* @returns The branch or tag name, or `undefined` if not set
|
|
76
73
|
*/
|
|
77
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
78
74
|
function getGithubRefName() {
|
|
79
75
|
return require_env_rewire.getEnvValue("GITHUB_REF_NAME");
|
|
80
76
|
}
|
|
@@ -91,7 +87,6 @@ function getGithubRefName() {
|
|
|
91
87
|
*
|
|
92
88
|
* @returns The ref type ('branch' or 'tag'), or `undefined` if not set
|
|
93
89
|
*/
|
|
94
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
95
90
|
function getGithubRefType() {
|
|
96
91
|
return require_env_rewire.getEnvValue("GITHUB_REF_TYPE");
|
|
97
92
|
}
|
|
@@ -109,7 +104,6 @@ function getGithubRefType() {
|
|
|
109
104
|
*
|
|
110
105
|
* @returns The repository name, or `undefined` if not set
|
|
111
106
|
*/
|
|
112
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
113
107
|
function getGithubRepository() {
|
|
114
108
|
return require_env_rewire.getEnvValue("GITHUB_REPOSITORY");
|
|
115
109
|
}
|
|
@@ -127,7 +121,6 @@ function getGithubRepository() {
|
|
|
127
121
|
*
|
|
128
122
|
* @returns The GitHub server URL, or `undefined` if not set
|
|
129
123
|
*/
|
|
130
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
131
124
|
function getGithubServerUrl() {
|
|
132
125
|
return require_env_rewire.getEnvValue("GITHUB_SERVER_URL");
|
|
133
126
|
}
|
|
@@ -145,7 +138,6 @@ function getGithubServerUrl() {
|
|
|
145
138
|
*
|
|
146
139
|
* @returns The GitHub token, or `undefined` if not set
|
|
147
140
|
*/
|
|
148
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
149
141
|
function getGithubToken() {
|
|
150
142
|
return require_env_rewire.getEnvValue("GITHUB_TOKEN");
|
|
151
143
|
}
|
package/dist/env/home.js
CHANGED
|
@@ -32,7 +32,6 @@ const require_env_rewire = require('./rewire.js');
|
|
|
32
32
|
*
|
|
33
33
|
* @returns The user's home directory path, or `undefined` if not resolvable
|
|
34
34
|
*/
|
|
35
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
36
35
|
function getHome() {
|
|
37
36
|
return require_env_rewire.getEnvValue("HOME") ?? require_env_rewire.getEnvValue("USERPROFILE");
|
|
38
37
|
}
|
package/dist/env/locale.js
CHANGED
|
@@ -21,7 +21,6 @@ const require_env_rewire = require('./rewire.js');
|
|
|
21
21
|
*
|
|
22
22
|
* @returns The system locale string, or `undefined` if not set
|
|
23
23
|
*/
|
|
24
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
25
24
|
function getLang() {
|
|
26
25
|
return require_env_rewire.getEnvValue("LANG");
|
|
27
26
|
}
|
|
@@ -38,7 +37,6 @@ function getLang() {
|
|
|
38
37
|
*
|
|
39
38
|
* @returns The locale override string, or `undefined` if not set
|
|
40
39
|
*/
|
|
41
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
42
40
|
function getLcAll() {
|
|
43
41
|
return require_env_rewire.getEnvValue("LC_ALL");
|
|
44
42
|
}
|
|
@@ -55,7 +53,6 @@ function getLcAll() {
|
|
|
55
53
|
*
|
|
56
54
|
* @returns The messages locale string, or `undefined` if not set
|
|
57
55
|
*/
|
|
58
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
59
56
|
function getLcMessages() {
|
|
60
57
|
return require_env_rewire.getEnvValue("LC_MESSAGES");
|
|
61
58
|
}
|
package/dist/env/node-env.js
CHANGED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Detect which Node version manager is active on this machine and emit a
|
|
3
|
+
* targeted upgrade hint. Used when a tool needs Node ≥ X and wants to tell
|
|
4
|
+
* the user the exact command to run instead of a generic "install newer Node"
|
|
5
|
+
* line. Detection is best-effort:
|
|
6
|
+
*
|
|
7
|
+
* 1. **process.execPath** — the running Node binary's path is the most reliable
|
|
8
|
+
* signal. `~/.nvm/versions/node/...`, `~/.volta/tools/...`, `~/.fnm/...`,
|
|
9
|
+
* `~/.asdf/installs/nodejs/...`, `~/n/...` each have well-known directory
|
|
10
|
+
* shapes.
|
|
11
|
+
* 2. **Environment variables** — `NVM_DIR`, `FNM_DIR`, `FNM_MULTISHELL_PATH`,
|
|
12
|
+
* `VOLTA_HOME`, `ASDF_DIR`, `N_PREFIX`. These are set by the shell
|
|
13
|
+
* integration each manager ships.
|
|
14
|
+
* 3. **Corepack** — Node's bundled package-manager shim. Detected via
|
|
15
|
+
* `COREPACK_*` env vars or by the Node binary being under
|
|
16
|
+
* `corepack/shims/`. If none match, the manager is reported as `'system'`
|
|
17
|
+
* (Homebrew, apt, the .pkg installer, etc.) — for those, the upgrade hint
|
|
18
|
+
* is generic. This module does NOT shell out — every probe is in-process
|
|
19
|
+
* (env reads + path string inspection). That keeps it cheap to call and
|
|
20
|
+
* safe for the native-messaging host context, where stdout is reserved for
|
|
21
|
+
* the Chrome protocol.
|
|
22
|
+
*/
|
|
23
|
+
export type NodeVersionManager = 'asdf' | 'corepack' | 'fnm' | 'n' | 'nvm' | 'system' | 'volta';
|
|
24
|
+
/**
|
|
25
|
+
* Detect the Node version manager currently providing `process.execPath`.
|
|
26
|
+
* Returns `'system'` when no manager is detected — the user is running a Node
|
|
27
|
+
* installed by the OS package manager, the official .pkg/.msi installer, or a
|
|
28
|
+
* manually placed binary.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ;```typescript
|
|
32
|
+
* detectActiveNodeManager() // 'nvm' | 'fnm' | 'volta' | 'asdf' | 'n' | 'corepack' | 'system'
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function detectActiveNodeManager(): NodeVersionManager;
|
|
36
|
+
/**
|
|
37
|
+
* Produce the exact shell command a user should run to install + activate
|
|
38
|
+
* `targetVersion` under the named manager. The command is single-line and
|
|
39
|
+
* intended to be embedded in an error message verbatim.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ;```typescript
|
|
43
|
+
* nodeManagerUpgradeHint('nvm', '22.6.0')
|
|
44
|
+
* // 'nvm install 22.6.0 && nvm use 22.6.0'
|
|
45
|
+
*
|
|
46
|
+
* nodeManagerUpgradeHint('system', '22.6.0')
|
|
47
|
+
* // 'Install Node 22.6.0+ from https://nodejs.org/'
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @param manager - The detected Node version manager.
|
|
51
|
+
* @param targetVersion - Semver-shaped version, e.g. `'22.6.0'` or `'22'`.
|
|
52
|
+
*/
|
|
53
|
+
export declare function nodeManagerUpgradeHint(manager: NodeVersionManager, targetVersion: string): string;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_runtime = require('../_virtual/_rolldown/runtime.js');
|
|
5
|
+
const require_env_rewire = require('./rewire.js');
|
|
6
|
+
let node_process = require("node:process");
|
|
7
|
+
node_process = require_runtime.__toESM(node_process);
|
|
8
|
+
|
|
9
|
+
//#region src/env/node-version-managers.ts
|
|
10
|
+
/**
|
|
11
|
+
* @file Detect which Node version manager is active on this machine and emit a
|
|
12
|
+
* targeted upgrade hint. Used when a tool needs Node ≥ X and wants to tell
|
|
13
|
+
* the user the exact command to run instead of a generic "install newer Node"
|
|
14
|
+
* line. Detection is best-effort:
|
|
15
|
+
*
|
|
16
|
+
* 1. **process.execPath** — the running Node binary's path is the most reliable
|
|
17
|
+
* signal. `~/.nvm/versions/node/...`, `~/.volta/tools/...`, `~/.fnm/...`,
|
|
18
|
+
* `~/.asdf/installs/nodejs/...`, `~/n/...` each have well-known directory
|
|
19
|
+
* shapes.
|
|
20
|
+
* 2. **Environment variables** — `NVM_DIR`, `FNM_DIR`, `FNM_MULTISHELL_PATH`,
|
|
21
|
+
* `VOLTA_HOME`, `ASDF_DIR`, `N_PREFIX`. These are set by the shell
|
|
22
|
+
* integration each manager ships.
|
|
23
|
+
* 3. **Corepack** — Node's bundled package-manager shim. Detected via
|
|
24
|
+
* `COREPACK_*` env vars or by the Node binary being under
|
|
25
|
+
* `corepack/shims/`. If none match, the manager is reported as `'system'`
|
|
26
|
+
* (Homebrew, apt, the .pkg installer, etc.) — for those, the upgrade hint
|
|
27
|
+
* is generic. This module does NOT shell out — every probe is in-process
|
|
28
|
+
* (env reads + path string inspection). That keeps it cheap to call and
|
|
29
|
+
* safe for the native-messaging host context, where stdout is reserved for
|
|
30
|
+
* the Chrome protocol.
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* Detect the Node version manager currently providing `process.execPath`.
|
|
34
|
+
* Returns `'system'` when no manager is detected — the user is running a Node
|
|
35
|
+
* installed by the OS package manager, the official .pkg/.msi installer, or a
|
|
36
|
+
* manually placed binary.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ;```typescript
|
|
40
|
+
* detectActiveNodeManager() // 'nvm' | 'fnm' | 'volta' | 'asdf' | 'n' | 'corepack' | 'system'
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
function detectActiveNodeManager() {
|
|
44
|
+
const exec = node_process.default.execPath;
|
|
45
|
+
if (/[/\\]\.nvm[/\\]versions[/\\]node[/\\]/.test(exec)) return "nvm";
|
|
46
|
+
if (/[/\\]\.fnm[/\\]/.test(exec) || /[/\\]fnm_multishells[/\\]/.test(exec)) return "fnm";
|
|
47
|
+
if (/[/\\]\.volta[/\\]tools[/\\]/.test(exec)) return "volta";
|
|
48
|
+
if (/[/\\]\.asdf[/\\]installs[/\\]nodejs[/\\]/.test(exec)) return "asdf";
|
|
49
|
+
if (/[/\\]n[/\\]versions[/\\]node[/\\]/.test(exec)) return "n";
|
|
50
|
+
if (/[/\\]corepack[/\\]shims[/\\]/.test(exec)) return "corepack";
|
|
51
|
+
if (require_env_rewire.getEnvValue("NVM_DIR")) return "nvm";
|
|
52
|
+
if (require_env_rewire.getEnvValue("FNM_DIR") || require_env_rewire.getEnvValue("FNM_MULTISHELL_PATH")) return "fnm";
|
|
53
|
+
if (require_env_rewire.getEnvValue("VOLTA_HOME")) return "volta";
|
|
54
|
+
if (require_env_rewire.getEnvValue("ASDF_DIR")) return "asdf";
|
|
55
|
+
if (require_env_rewire.getEnvValue("N_PREFIX")) return "n";
|
|
56
|
+
if (require_env_rewire.getEnvValue("COREPACK_HOME")) return "corepack";
|
|
57
|
+
return "system";
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Produce the exact shell command a user should run to install + activate
|
|
61
|
+
* `targetVersion` under the named manager. The command is single-line and
|
|
62
|
+
* intended to be embedded in an error message verbatim.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ;```typescript
|
|
66
|
+
* nodeManagerUpgradeHint('nvm', '22.6.0')
|
|
67
|
+
* // 'nvm install 22.6.0 && nvm use 22.6.0'
|
|
68
|
+
*
|
|
69
|
+
* nodeManagerUpgradeHint('system', '22.6.0')
|
|
70
|
+
* // 'Install Node 22.6.0+ from https://nodejs.org/'
|
|
71
|
+
* ```
|
|
72
|
+
*
|
|
73
|
+
* @param manager - The detected Node version manager.
|
|
74
|
+
* @param targetVersion - Semver-shaped version, e.g. `'22.6.0'` or `'22'`.
|
|
75
|
+
*/
|
|
76
|
+
function nodeManagerUpgradeHint(manager, targetVersion) {
|
|
77
|
+
switch (manager) {
|
|
78
|
+
case "asdf": return `asdf install nodejs ${targetVersion} && asdf global nodejs ${targetVersion}`;
|
|
79
|
+
case "corepack": return `Corepack manages package managers, not Node. Install Node ${targetVersion}+ via nvm/fnm/volta or from https://nodejs.org/`;
|
|
80
|
+
case "fnm": return `fnm install ${targetVersion} && fnm use ${targetVersion}`;
|
|
81
|
+
case "n": return `n ${targetVersion}`;
|
|
82
|
+
case "nvm": return `nvm install ${targetVersion} && nvm use ${targetVersion}`;
|
|
83
|
+
case "volta": return `volta install node@${targetVersion}`;
|
|
84
|
+
default: return `Install Node ${targetVersion}+ from https://nodejs.org/`;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
//#endregion
|
|
89
|
+
exports.detectActiveNodeManager = detectActiveNodeManager;
|
|
90
|
+
exports.nodeManagerUpgradeHint = nodeManagerUpgradeHint;
|
package/dist/env/npm.js
CHANGED
|
@@ -22,7 +22,6 @@ const require_env_rewire = require('./rewire.js');
|
|
|
22
22
|
*
|
|
23
23
|
* @returns The configured NPM registry URL, or `undefined` if not set
|
|
24
24
|
*/
|
|
25
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
26
25
|
function getNpmConfigRegistry() {
|
|
27
26
|
return require_env_rewire.getEnvValue("npm_config_registry");
|
|
28
27
|
}
|
|
@@ -40,7 +39,6 @@ function getNpmConfigRegistry() {
|
|
|
40
39
|
*
|
|
41
40
|
* @returns The package manager user agent string, or `undefined` if not set
|
|
42
41
|
*/
|
|
43
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
44
42
|
function getNpmConfigUserAgent() {
|
|
45
43
|
return require_env_rewire.getEnvValue("npm_config_user_agent");
|
|
46
44
|
}
|
|
@@ -58,7 +56,6 @@ function getNpmConfigUserAgent() {
|
|
|
58
56
|
*
|
|
59
57
|
* @returns The current lifecycle event name, or `undefined` if not set
|
|
60
58
|
*/
|
|
61
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
62
59
|
function getNpmLifecycleEvent() {
|
|
63
60
|
return require_env_rewire.getEnvValue("npm_lifecycle_event");
|
|
64
61
|
}
|
|
@@ -75,7 +72,6 @@ function getNpmLifecycleEvent() {
|
|
|
75
72
|
*
|
|
76
73
|
* @returns The NPM registry URL override, or `undefined` if not set
|
|
77
74
|
*/
|
|
78
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
79
75
|
function getNpmRegistry() {
|
|
80
76
|
return require_env_rewire.getEnvValue("NPM_REGISTRY");
|
|
81
77
|
}
|
|
@@ -92,7 +88,6 @@ function getNpmRegistry() {
|
|
|
92
88
|
*
|
|
93
89
|
* @returns The NPM auth token, or `undefined` if not set
|
|
94
90
|
*/
|
|
95
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
96
91
|
function getNpmToken() {
|
|
97
92
|
return require_env_rewire.getEnvValue("NPM_TOKEN");
|
|
98
93
|
}
|
package/dist/env/number.js
CHANGED
|
@@ -31,7 +31,6 @@ const require_primordials_number = require('../primordials/number.js');
|
|
|
31
31
|
*
|
|
32
32
|
* @returns The parsed number, or the default value if parsing fails
|
|
33
33
|
*/
|
|
34
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
35
34
|
function envAsNumber(value, defaultValueOrOptions = 0) {
|
|
36
35
|
const { allowInfinity = false, defaultValue = 0, mode = "int" } = typeof defaultValueOrOptions === "number" ? { defaultValue: defaultValueOrOptions } : defaultValueOrOptions ?? {};
|
|
37
36
|
if (value === void 0 || value === null) return defaultValue;
|
|
@@ -37,11 +37,10 @@ node_process = require_runtime.__toESM(node_process);
|
|
|
37
37
|
*
|
|
38
38
|
* @returns The detected package manager or null if unable to determine
|
|
39
39
|
*/
|
|
40
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
41
40
|
function detectPackageManager() {
|
|
42
|
-
const userAgent =
|
|
41
|
+
const userAgent = getPackageManagerUserAgent();
|
|
43
42
|
if (userAgent) {
|
|
44
|
-
const match = userAgent.match(/^(npm|pnpm|yarn
|
|
43
|
+
const match = userAgent.match(/^(bun|npm|pnpm|yarn)\//);
|
|
45
44
|
if (match) return match[1];
|
|
46
45
|
}
|
|
47
46
|
/* c8 ignore start - argv0-based PM fallback only fires when
|
|
@@ -67,9 +66,8 @@ function detectPackageManager() {
|
|
|
67
66
|
*
|
|
68
67
|
* @returns Object with name and version, or null if not available
|
|
69
68
|
*/
|
|
70
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
71
69
|
function getPackageManagerInfo() {
|
|
72
|
-
const userAgent =
|
|
70
|
+
const userAgent = getPackageManagerUserAgent();
|
|
73
71
|
if (!userAgent) return;
|
|
74
72
|
const match = userAgent.match(/^([^/]+)\/([^\s]+)/);
|
|
75
73
|
if (match?.[1] && match[2]) return {
|
|
@@ -91,7 +89,6 @@ function getPackageManagerInfo() {
|
|
|
91
89
|
*
|
|
92
90
|
* @returns The user agent string or undefined
|
|
93
91
|
*/
|
|
94
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
95
92
|
function getPackageManagerUserAgent() {
|
|
96
93
|
return require_env_rewire.getEnvValue("npm_config_user_agent");
|
|
97
94
|
}
|
package/dist/env/path.js
CHANGED
package/dist/env/pre-commit.js
CHANGED
|
@@ -24,9 +24,8 @@ const require_env_rewire = require('./rewire.js');
|
|
|
24
24
|
*
|
|
25
25
|
* @returns `true` if running in a pre-commit hook, `false` otherwise
|
|
26
26
|
*/
|
|
27
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
28
27
|
function getPreCommit() {
|
|
29
|
-
return
|
|
28
|
+
return require_env_boolean.envAsBoolean(require_env_rewire.getEnvValue("PRE_COMMIT"));
|
|
30
29
|
}
|
|
31
30
|
|
|
32
31
|
//#endregion
|
package/dist/env/proxy.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* Socket Lib - Built with rolldown */
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
-
const require_primordials_map_set = require('../primordials/map-set.js');
|
|
5
4
|
const require_primordials_object = require('../primordials/object.js');
|
|
5
|
+
const require_primordials_map_set = require('../primordials/map-set.js');
|
|
6
6
|
const require_primordials_globals = require('../primordials/globals.js');
|
|
7
7
|
const require_env_case_insensitive = require('./case-insensitive.js');
|
|
8
8
|
|
package/dist/env/rewire.d.ts
CHANGED
|
@@ -8,12 +8,8 @@
|
|
|
8
8
|
* - Compatible with vi.stubEnv() - reads from process.env as final fallback
|
|
9
9
|
* - Thread-safe for concurrent test execution
|
|
10
10
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
*
|
|
14
|
-
* @private
|
|
15
|
-
*/
|
|
16
|
-
export declare function getAsyncHooks(): typeof import('node:async_hooks');
|
|
11
|
+
import type * as asyncHooksModule from 'node:async_hooks';
|
|
12
|
+
export type EnvOverrides = Map<string, string | undefined>;
|
|
17
13
|
/**
|
|
18
14
|
* Clear a specific environment variable override.
|
|
19
15
|
*
|
|
@@ -28,6 +24,12 @@ export declare function getAsyncHooks(): typeof import('node:async_hooks');
|
|
|
28
24
|
* @param key - The environment variable name to clear.
|
|
29
25
|
*/
|
|
30
26
|
export declare function clearEnv(key: string): void;
|
|
27
|
+
/**
|
|
28
|
+
* Lazily load the async_hooks module to avoid Webpack errors.
|
|
29
|
+
*
|
|
30
|
+
* @private
|
|
31
|
+
*/
|
|
32
|
+
export declare function getAsyncHooks(): typeof asyncHooksModule;
|
|
31
33
|
/**
|
|
32
34
|
* Get an environment variable value, checking overrides first.
|
|
33
35
|
*
|
package/dist/env/rewire.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
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_map_set = require('../primordials/map-set.js');
|
|
6
5
|
const require_primordials_object = require('../primordials/object.js');
|
|
7
6
|
const require_objects_predicates = require('../objects/predicates.js');
|
|
8
7
|
const require_env_boolean = require('./boolean.js');
|
|
8
|
+
const require_primordials_map_set = require('../primordials/map-set.js');
|
|
9
9
|
let node_process = require("node:process");
|
|
10
10
|
node_process = require_runtime.__toESM(node_process);
|
|
11
11
|
|
|
@@ -20,23 +20,13 @@ node_process = require_runtime.__toESM(node_process);
|
|
|
20
20
|
* - Compatible with vi.stubEnv() - reads from process.env as final fallback
|
|
21
21
|
* - Thread-safe for concurrent test execution
|
|
22
22
|
*/
|
|
23
|
-
let
|
|
24
|
-
|
|
25
|
-
* Lazily load the async_hooks module to avoid Webpack errors.
|
|
26
|
-
*
|
|
27
|
-
* @private
|
|
28
|
-
*/
|
|
29
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
30
|
-
function getAsyncHooks() {
|
|
31
|
-
if (_async_hooks === void 0) _async_hooks = /*@__PURE__*/ require("node:async_hooks");
|
|
32
|
-
return _async_hooks;
|
|
33
|
-
}
|
|
34
|
-
const { AsyncLocalStorage } = /* @__PURE__ */ getAsyncHooks();
|
|
23
|
+
let asyncHooks;
|
|
24
|
+
const { AsyncLocalStorage } = getAsyncHooks();
|
|
35
25
|
const isolatedOverridesStorage = new AsyncLocalStorage();
|
|
36
26
|
const sharedOverridesSymbol = Symbol.for("@socketsecurity/lib/env/rewire/test-overrides");
|
|
37
|
-
const
|
|
38
|
-
if (
|
|
39
|
-
const sharedOverrides =
|
|
27
|
+
const globalThisRef = globalThis;
|
|
28
|
+
if (require_env_boolean.envAsBoolean(node_process.default.env["VITEST"]) && !globalThisRef[sharedOverridesSymbol]) globalThisRef[sharedOverridesSymbol] = new require_primordials_map_set.MapCtor();
|
|
29
|
+
const sharedOverrides = globalThisRef[sharedOverridesSymbol];
|
|
40
30
|
/**
|
|
41
31
|
* Clear a specific environment variable override.
|
|
42
32
|
*
|
|
@@ -54,6 +44,15 @@ function clearEnv(key) {
|
|
|
54
44
|
sharedOverrides?.delete(key);
|
|
55
45
|
}
|
|
56
46
|
/**
|
|
47
|
+
* Lazily load the async_hooks module to avoid Webpack errors.
|
|
48
|
+
*
|
|
49
|
+
* @private
|
|
50
|
+
*/
|
|
51
|
+
function getAsyncHooks() {
|
|
52
|
+
if (asyncHooks === void 0) asyncHooks = /*@__PURE__*/ require("node:async_hooks");
|
|
53
|
+
return asyncHooks;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
57
56
|
* Get an environment variable value, checking overrides first.
|
|
58
57
|
*
|
|
59
58
|
* Resolution order: 1. Isolated overrides (temporary - set via
|
|
@@ -116,7 +115,7 @@ function hasOverride(key) {
|
|
|
116
115
|
function isInEnv(key) {
|
|
117
116
|
if (isolatedOverridesStorage.getStore()?.has(key)) return true;
|
|
118
117
|
if (sharedOverrides?.has(key)) return true;
|
|
119
|
-
return
|
|
118
|
+
return require_objects_predicates.hasOwn(node_process.default.env, key);
|
|
120
119
|
}
|
|
121
120
|
/**
|
|
122
121
|
* Clear all environment variable overrides. Useful in afterEach hooks to ensure
|
package/dist/env/shell.js
CHANGED