@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
package/dist/secrets/linux.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
const require_primordials_error = require('../primordials/error.js');
|
|
5
5
|
const require_primordials_promise = require('../primordials/promise.js');
|
|
6
|
-
let
|
|
6
|
+
let _socketsecurity_lib_stable_process_spawn_child = require("@socketsecurity/lib-stable/process/spawn/child");
|
|
7
7
|
|
|
8
8
|
//#region src/secrets/linux.ts
|
|
9
9
|
/**
|
|
@@ -22,19 +22,19 @@ let node_child_process = require("node:child_process");
|
|
|
22
22
|
const SECRET_TOOL_BIN = "secret-tool";
|
|
23
23
|
async function deleteLinux(service, account) {
|
|
24
24
|
return new require_primordials_promise.PromiseCtor((resolve) => {
|
|
25
|
-
const
|
|
25
|
+
const { process: cp } = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(SECRET_TOOL_BIN, [
|
|
26
26
|
"clear",
|
|
27
27
|
"service",
|
|
28
28
|
service,
|
|
29
29
|
"user",
|
|
30
30
|
account
|
|
31
31
|
], { stdio: "ignore" });
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
cp.on("error", () => resolve("absent"));
|
|
33
|
+
cp.on("close", (status) => resolve(status === 0 ? "removed" : "absent"));
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
function deleteLinuxSync(service, account) {
|
|
37
|
-
return (0,
|
|
37
|
+
return (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECRET_TOOL_BIN, [
|
|
38
38
|
"clear",
|
|
39
39
|
"service",
|
|
40
40
|
service,
|
|
@@ -43,38 +43,31 @@ function deleteLinuxSync(service, account) {
|
|
|
43
43
|
], { stdio: "ignore" }).status === 0 ? "removed" : "absent";
|
|
44
44
|
}
|
|
45
45
|
function isLinuxBackendAvailable() {
|
|
46
|
-
return (0,
|
|
46
|
+
return (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECRET_TOOL_BIN, ["--version"], { stdio: "ignore" }).status === 0;
|
|
47
47
|
}
|
|
48
48
|
async function readLinux(service, account) {
|
|
49
|
-
|
|
50
|
-
const
|
|
49
|
+
try {
|
|
50
|
+
const r = await (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(SECRET_TOOL_BIN, [
|
|
51
51
|
"lookup",
|
|
52
52
|
"service",
|
|
53
53
|
service,
|
|
54
54
|
"user",
|
|
55
55
|
account
|
|
56
|
-
], {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
child.stdout.on("data", (chunk) => {
|
|
64
|
-
stdout += chunk;
|
|
65
|
-
});
|
|
66
|
-
child.on("error", () => resolve(void 0));
|
|
67
|
-
child.on("close", (status) => {
|
|
68
|
-
if (status !== 0) {
|
|
69
|
-
resolve(void 0);
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
resolve(stdout.trim() || void 0);
|
|
56
|
+
], {
|
|
57
|
+
stdio: [
|
|
58
|
+
"ignore",
|
|
59
|
+
"pipe",
|
|
60
|
+
"pipe"
|
|
61
|
+
],
|
|
62
|
+
stdioString: true
|
|
73
63
|
});
|
|
74
|
-
|
|
64
|
+
return String(r.stdout ?? "").trim() || void 0;
|
|
65
|
+
} catch {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
75
68
|
}
|
|
76
69
|
function readLinuxSync(service, account) {
|
|
77
|
-
const r = (0,
|
|
70
|
+
const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECRET_TOOL_BIN, [
|
|
78
71
|
"lookup",
|
|
79
72
|
"service",
|
|
80
73
|
service,
|
|
@@ -92,37 +85,32 @@ function readLinuxSync(service, account) {
|
|
|
92
85
|
return r.stdout.trim() || void 0;
|
|
93
86
|
}
|
|
94
87
|
async function writeLinux(service, account, value, label) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
88
|
+
const hint = "Install libsecret-tools (apt install libsecret-tools / dnf install libsecret) or ensure a Secret Service provider (gnome-keyring, kwallet) is running.";
|
|
89
|
+
const child = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(SECRET_TOOL_BIN, [
|
|
90
|
+
"store",
|
|
91
|
+
`--label=${label}`,
|
|
92
|
+
"service",
|
|
93
|
+
service,
|
|
94
|
+
"user",
|
|
95
|
+
account
|
|
96
|
+
], {
|
|
97
|
+
stdio: [
|
|
104
98
|
"pipe",
|
|
105
99
|
"pipe",
|
|
106
100
|
"pipe"
|
|
107
|
-
]
|
|
108
|
-
|
|
109
|
-
child.stderr.setEncoding("utf8");
|
|
110
|
-
child.stderr.on("data", (chunk) => {
|
|
111
|
-
stderr += chunk;
|
|
112
|
-
});
|
|
113
|
-
child.on("error", (err) => reject(/* @__PURE__ */ new Error(`secret-tool store failed: ${err.message}. Install libsecret-tools (apt install libsecret-tools / dnf install libsecret) or ensure a Secret Service provider (gnome-keyring, kwallet) is running.`)));
|
|
114
|
-
child.on("close", (status) => {
|
|
115
|
-
if (status === 0) {
|
|
116
|
-
resolve();
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
reject(/* @__PURE__ */ new Error(`secret-tool store failed (status=${status}, user=${account}): ${stderr.trim()}. Install libsecret-tools (apt install libsecret-tools / dnf install libsecret) or ensure a Secret Service provider (gnome-keyring, kwallet) is running.`));
|
|
120
|
-
});
|
|
121
|
-
child.stdin.end(value);
|
|
101
|
+
],
|
|
102
|
+
stdioString: true
|
|
122
103
|
});
|
|
104
|
+
child.process.stdin.end(value);
|
|
105
|
+
try {
|
|
106
|
+
await child;
|
|
107
|
+
} catch (e) {
|
|
108
|
+
const err = e;
|
|
109
|
+
throw new require_primordials_error.ErrorCtor(`secret-tool store failed (status=${typeof err?.code === "number" ? err.code : -1}, user=${account}): ${String(err?.stderr ?? err?.message ?? "").trim()}. ${hint}`);
|
|
110
|
+
}
|
|
123
111
|
}
|
|
124
112
|
function writeLinuxSync(service, account, value, label) {
|
|
125
|
-
const r = (0,
|
|
113
|
+
const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECRET_TOOL_BIN, [
|
|
126
114
|
"store",
|
|
127
115
|
`--label=${label}`,
|
|
128
116
|
"service",
|
package/dist/secrets/macos.d.ts
CHANGED
|
@@ -23,8 +23,8 @@ export declare function deleteMacOSSync(service: string, account: string): 'remo
|
|
|
23
23
|
export declare function isMacOSBackendAvailable(): boolean;
|
|
24
24
|
export declare function readMacOS(service: string, account: string): Promise<string | undefined>;
|
|
25
25
|
export declare function readMacOSSync(service: string, account: string): string | undefined;
|
|
26
|
-
interface SpawnOpts {
|
|
27
|
-
stdio?: 'ignore' | 'pipe' | ['ignore', 'pipe', 'pipe'];
|
|
26
|
+
export interface SpawnOpts {
|
|
27
|
+
stdio?: 'ignore' | 'pipe' | ['ignore', 'pipe', 'pipe'] | undefined;
|
|
28
28
|
}
|
|
29
29
|
export declare function runAsync(args: readonly string[], opts?: SpawnOpts): Promise<{
|
|
30
30
|
status: number | null;
|
|
@@ -33,4 +33,3 @@ export declare function runAsync(args: readonly string[], opts?: SpawnOpts): Pro
|
|
|
33
33
|
}>;
|
|
34
34
|
export declare function writeMacOS(service: string, account: string, value: string, label: string): Promise<void>;
|
|
35
35
|
export declare function writeMacOSSync(service: string, account: string, value: string, label: string): void;
|
|
36
|
-
export {};
|
package/dist/secrets/macos.js
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
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
|
-
|
|
6
|
-
let node_child_process = require("node:child_process");
|
|
5
|
+
let _socketsecurity_lib_stable_process_spawn_child = require("@socketsecurity/lib-stable/process/spawn/child");
|
|
7
6
|
|
|
8
7
|
//#region src/secrets/macos.ts
|
|
9
8
|
/**
|
|
@@ -37,7 +36,7 @@ async function deleteMacOS(service, account) {
|
|
|
37
36
|
], { stdio: "ignore" })).status === 0 ? "removed" : "absent";
|
|
38
37
|
}
|
|
39
38
|
function deleteMacOSSync(service, account) {
|
|
40
|
-
return (0,
|
|
39
|
+
return (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECURITY_BIN, [
|
|
41
40
|
"delete-generic-password",
|
|
42
41
|
"-s",
|
|
43
42
|
service,
|
|
@@ -61,7 +60,7 @@ async function readMacOS(service, account) {
|
|
|
61
60
|
return r.stdout.trim() || void 0;
|
|
62
61
|
}
|
|
63
62
|
function readMacOSSync(service, account) {
|
|
64
|
-
const r = (0,
|
|
63
|
+
const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECURITY_BIN, [
|
|
65
64
|
"find-generic-password",
|
|
66
65
|
"-s",
|
|
67
66
|
service,
|
|
@@ -79,38 +78,30 @@ function readMacOSSync(service, account) {
|
|
|
79
78
|
if (r.status !== 0) return;
|
|
80
79
|
return r.stdout.trim() || void 0;
|
|
81
80
|
}
|
|
82
|
-
function runAsync(args, opts = {}) {
|
|
83
|
-
|
|
84
|
-
|
|
81
|
+
async function runAsync(args, opts = {}) {
|
|
82
|
+
const child = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(SECURITY_BIN, args, {
|
|
83
|
+
stdio: opts.stdio ?? [
|
|
85
84
|
"ignore",
|
|
86
85
|
"pipe",
|
|
87
86
|
"pipe"
|
|
88
|
-
]
|
|
89
|
-
|
|
90
|
-
let stderr = "";
|
|
91
|
-
if (child.stdout) {
|
|
92
|
-
child.stdout.setEncoding("utf8");
|
|
93
|
-
child.stdout.on("data", (chunk) => {
|
|
94
|
-
stdout += chunk;
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
if (child.stderr) {
|
|
98
|
-
child.stderr.setEncoding("utf8");
|
|
99
|
-
child.stderr.on("data", (chunk) => {
|
|
100
|
-
stderr += chunk;
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
child.on("error", () => resolve({
|
|
104
|
-
status: -1,
|
|
105
|
-
stdout,
|
|
106
|
-
stderr
|
|
107
|
-
}));
|
|
108
|
-
child.on("close", (status) => resolve({
|
|
109
|
-
status,
|
|
110
|
-
stdout,
|
|
111
|
-
stderr
|
|
112
|
-
}));
|
|
87
|
+
],
|
|
88
|
+
stdioString: true
|
|
113
89
|
});
|
|
90
|
+
try {
|
|
91
|
+
const r = await child;
|
|
92
|
+
return {
|
|
93
|
+
status: typeof r.code === "number" ? r.code : null,
|
|
94
|
+
stderr: String(r.stderr ?? ""),
|
|
95
|
+
stdout: String(r.stdout ?? "")
|
|
96
|
+
};
|
|
97
|
+
} catch (e) {
|
|
98
|
+
const err = e;
|
|
99
|
+
return {
|
|
100
|
+
status: typeof err?.code === "number" ? err.code : -1,
|
|
101
|
+
stderr: String(err?.stderr ?? ""),
|
|
102
|
+
stdout: String(err?.stdout ?? "")
|
|
103
|
+
};
|
|
104
|
+
}
|
|
114
105
|
}
|
|
115
106
|
async function writeMacOS(service, account, value, label) {
|
|
116
107
|
const r = await runAsync([
|
|
@@ -133,7 +124,7 @@ async function writeMacOS(service, account, value, label) {
|
|
|
133
124
|
if (r.status !== 0) throw new require_primordials_error.ErrorCtor(`security(1) add-generic-password failed (status=${r.status}, account=${account}): ${r.stderr.trim()}`);
|
|
134
125
|
}
|
|
135
126
|
function writeMacOSSync(service, account, value, label) {
|
|
136
|
-
const r = (0,
|
|
127
|
+
const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECURITY_BIN, [
|
|
137
128
|
"add-generic-password",
|
|
138
129
|
"-U",
|
|
139
130
|
"-A",
|
package/dist/secrets/rc.d.ts
CHANGED
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
* non-interactive shells (Claude Code, IDE plugins, CI runners) skip .zshrc
|
|
38
38
|
* and would miss the export.
|
|
39
39
|
*/
|
|
40
|
-
export declare function buildBlock(
|
|
40
|
+
export declare function buildBlock(options: WriteOptions): {
|
|
41
41
|
begin: string;
|
|
42
42
|
end: string;
|
|
43
43
|
body: string;
|
|
@@ -67,7 +67,7 @@ export interface WriteOptions {
|
|
|
67
67
|
* "Rotate via: my-installer --rotate"). Each entry is prefixed with `# `
|
|
68
68
|
* automatically.
|
|
69
69
|
*/
|
|
70
|
-
notes?: readonly string[];
|
|
70
|
+
notes?: readonly string[] | undefined;
|
|
71
71
|
/**
|
|
72
72
|
* Legacy sentinel BEGIN strings to sweep before writing the new block. Used
|
|
73
73
|
* during a rename/migration so an older managed block is removed rather than
|
|
@@ -75,7 +75,7 @@ export interface WriteOptions {
|
|
|
75
75
|
* tolerates any line endings up to the matching END (same prefix with `END`
|
|
76
76
|
* replacing `BEGIN`).
|
|
77
77
|
*/
|
|
78
|
-
legacySentinels?: readonly string[];
|
|
78
|
+
legacySentinels?: readonly string[] | undefined;
|
|
79
79
|
/**
|
|
80
80
|
* Override the auto-detected shell. By default the helper reads `$SHELL` and
|
|
81
81
|
* targets the matching rc file:
|
|
@@ -126,7 +126,7 @@ export declare function shellSingleQuote(value: string): string;
|
|
|
126
126
|
* `shell` and `rcPath` override the auto-detected target — useful for chezmoi /
|
|
127
127
|
* dotfile-manager users or installers running under a non-default shell.
|
|
128
128
|
*/
|
|
129
|
-
export declare function write(
|
|
129
|
+
export declare function write(options: WriteOptions): WriteResult;
|
|
130
130
|
/**
|
|
131
131
|
* Internal: write an rc file with 0o600 (owner-only). The rc file embeds a
|
|
132
132
|
* literal SOCKET_API_KEY value so the shell rc can `export` it on session start
|
package/dist/secrets/rc.js
CHANGED
|
@@ -2,16 +2,17 @@
|
|
|
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
|
-
const require_primordials_regexp = require('../primordials/regexp.js');
|
|
7
5
|
const require_primordials_object = require('../primordials/object.js');
|
|
8
6
|
const require_env_home = require('../env/home.js');
|
|
7
|
+
const require_primordials_string = require('../primordials/string.js');
|
|
8
|
+
const require_primordials_regexp = require('../primordials/regexp.js');
|
|
9
9
|
let node_fs = require("node:fs");
|
|
10
|
+
let node_process = require("node:process");
|
|
11
|
+
node_process = require_runtime.__toESM(node_process);
|
|
10
12
|
let node_path = require("node:path");
|
|
11
13
|
node_path = require_runtime.__toESM(node_path);
|
|
12
14
|
let node_os = require("node:os");
|
|
13
|
-
|
|
14
|
-
node_process = require_runtime.__toESM(node_process);
|
|
15
|
+
node_os = require_runtime.__toESM(node_os);
|
|
15
16
|
|
|
16
17
|
//#region src/secrets/rc.ts
|
|
17
18
|
/**
|
|
@@ -53,11 +54,15 @@ node_process = require_runtime.__toESM(node_process);
|
|
|
53
54
|
* non-interactive shells (Claude Code, IDE plugins, CI runners) skip .zshrc
|
|
54
55
|
* and would miss the export.
|
|
55
56
|
*/
|
|
56
|
-
function buildBlock(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
function buildBlock(options) {
|
|
58
|
+
options = {
|
|
59
|
+
__proto__: null,
|
|
60
|
+
...options
|
|
61
|
+
};
|
|
62
|
+
const begin = `# BEGIN ${options.service} env (managed)`;
|
|
63
|
+
const end = `# END ${options.service} env (managed)`;
|
|
64
|
+
const noteLines = (options.notes ?? []).map((line) => `# ${line}`);
|
|
65
|
+
const exportLines = require_primordials_object.ObjectEntries(options.exports).map(([name, value]) => `export ${name}=${shellSingleQuote(value)}`);
|
|
61
66
|
const body = [...noteLines, ...exportLines].join("\n");
|
|
62
67
|
return {
|
|
63
68
|
begin,
|
|
@@ -72,13 +77,14 @@ function buildBlock(opts) {
|
|
|
72
77
|
* no block was present.
|
|
73
78
|
*/
|
|
74
79
|
function clear(service, legacySentinels = []) {
|
|
75
|
-
if (
|
|
80
|
+
if (node_os.default.platform() !== "darwin") return false;
|
|
76
81
|
const rcPath = pickRcFile();
|
|
77
82
|
if (!rcPath || !(0, node_fs.existsSync)(rcPath)) return false;
|
|
78
83
|
let existing = (0, node_fs.readFileSync)(rcPath, "utf8");
|
|
79
84
|
let removedAny = false;
|
|
80
85
|
const sentinelsToStrip = [`# BEGIN ${service} env (managed)`, ...legacySentinels];
|
|
81
|
-
for (
|
|
86
|
+
for (let i = 0, { length } = sentinelsToStrip; i < length; i += 1) {
|
|
87
|
+
const begin = sentinelsToStrip[i];
|
|
82
88
|
const end = begin.replace(/\bBEGIN\b/, "END");
|
|
83
89
|
const endStripped = end.replace(/\s*\(managed\)\s*$/, "");
|
|
84
90
|
const endAlt = end === endStripped ? escapeRegExp(end) : `(?:${escapeRegExp(end)}|${escapeRegExp(endStripped)})`;
|
|
@@ -96,7 +102,7 @@ function escapeRegExp(s) {
|
|
|
96
102
|
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
97
103
|
}
|
|
98
104
|
function pickRcFile(shellOverride) {
|
|
99
|
-
const home =
|
|
105
|
+
const home = require_env_home.getHome();
|
|
100
106
|
if (!home) return;
|
|
101
107
|
const shellPath = node_process.default.env["SHELL"] ?? "";
|
|
102
108
|
const shell = shellOverride ?? (require_primordials_string.StringPrototypeEndsWith(shellPath, "zsh") ? "zsh" : require_primordials_string.StringPrototypeEndsWith(shellPath, "bash") ? "bash" : require_primordials_string.StringPrototypeEndsWith(shellPath, "fish") ? "fish" : void 0);
|
|
@@ -132,23 +138,27 @@ function shellSingleQuote(value) {
|
|
|
132
138
|
* `shell` and `rcPath` override the auto-detected target — useful for chezmoi /
|
|
133
139
|
* dotfile-manager users or installers running under a non-default shell.
|
|
134
140
|
*/
|
|
135
|
-
function write(
|
|
136
|
-
|
|
141
|
+
function write(options) {
|
|
142
|
+
options = {
|
|
143
|
+
__proto__: null,
|
|
144
|
+
...options
|
|
145
|
+
};
|
|
146
|
+
if (node_os.default.platform() !== "darwin") return {
|
|
137
147
|
rcPath: void 0,
|
|
138
148
|
outcome: "skipped",
|
|
139
149
|
reason: "unsupported-platform"
|
|
140
150
|
};
|
|
141
|
-
const rcPath =
|
|
151
|
+
const rcPath = options.rcPath ?? pickRcFile(options.shell);
|
|
142
152
|
if (!rcPath) return {
|
|
143
153
|
rcPath: void 0,
|
|
144
154
|
outcome: "skipped",
|
|
145
155
|
reason: "unknown-shell"
|
|
146
156
|
};
|
|
147
|
-
const { begin, end, full: desiredBlock } = buildBlock(
|
|
157
|
+
const { begin, end, full: desiredBlock } = buildBlock(options);
|
|
148
158
|
let onDisk = "";
|
|
149
159
|
if ((0, node_fs.existsSync)(rcPath)) onDisk = (0, node_fs.readFileSync)(rcPath, "utf8");
|
|
150
160
|
let working = onDisk;
|
|
151
|
-
for (const legacyBegin of
|
|
161
|
+
for (const legacyBegin of options.legacySentinels ?? []) {
|
|
152
162
|
const legacyEnd = legacyBegin.replace(/\bBEGIN\b/, "END");
|
|
153
163
|
const legacyEndStripped = legacyEnd.replace(/\s*\(managed\)\s*$/, "");
|
|
154
164
|
const endAlt = legacyEnd === legacyEndStripped ? escapeRegExp(legacyEnd) : `(?:${escapeRegExp(legacyEnd)}|${escapeRegExp(legacyEndStripped)})`;
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* @file Convenience helper for reading the Socket API token from the canonical
|
|
3
3
|
* env → keychain precedence order. Centralizes two constants every fleet
|
|
4
4
|
* consumer would otherwise hard-code: the keychain service name
|
|
5
|
-
* (`
|
|
6
|
-
* canonical, `SOCKET_API_KEY` legacy alias). Consumers
|
|
7
|
-
* wheelhouse hooks call `readSocketApiToken()` instead of
|
|
8
|
-
* `resolve({ service, accounts })` boilerplate.
|
|
5
|
+
* (`socketsecurity`) and the env-var + account fallback list
|
|
6
|
+
* (`SOCKET_API_TOKEN` canonical, `SOCKET_API_KEY` legacy alias). Consumers
|
|
7
|
+
* like firewall and wheelhouse hooks call `readSocketApiToken()` instead of
|
|
8
|
+
* redoing the `resolve({ service, accounts })` boilerplate.
|
|
9
9
|
*/
|
|
10
10
|
export interface ReadSocketApiTokenOptions {
|
|
11
11
|
/**
|
|
@@ -8,26 +8,43 @@ const require_secrets_find = require('./find.js');
|
|
|
8
8
|
* @file Convenience helper for reading the Socket API token from the canonical
|
|
9
9
|
* env → keychain precedence order. Centralizes two constants every fleet
|
|
10
10
|
* consumer would otherwise hard-code: the keychain service name
|
|
11
|
-
* (`
|
|
12
|
-
* canonical, `SOCKET_API_KEY` legacy alias). Consumers
|
|
13
|
-
* wheelhouse hooks call `readSocketApiToken()` instead of
|
|
14
|
-
* `resolve({ service, accounts })` boilerplate.
|
|
11
|
+
* (`socketsecurity`) and the env-var + account fallback list
|
|
12
|
+
* (`SOCKET_API_TOKEN` canonical, `SOCKET_API_KEY` legacy alias). Consumers
|
|
13
|
+
* like firewall and wheelhouse hooks call `readSocketApiToken()` instead of
|
|
14
|
+
* redoing the `resolve({ service, accounts })` boilerplate.
|
|
15
15
|
*/
|
|
16
|
-
const
|
|
16
|
+
const SOCKET_SERVICE = "socketsecurity";
|
|
17
|
+
const SOCKET_SERVICE_LEGACY = "socket-cli";
|
|
17
18
|
const TOKEN_ACCOUNTS = ["SOCKET_API_TOKEN", "SOCKET_API_KEY"];
|
|
18
19
|
async function readSocketApiToken(options) {
|
|
20
|
+
options = {
|
|
21
|
+
__proto__: null,
|
|
22
|
+
...options
|
|
23
|
+
};
|
|
19
24
|
return (await require_secrets_find.resolve({
|
|
20
|
-
service:
|
|
25
|
+
service: SOCKET_SERVICE,
|
|
26
|
+
accounts: TOKEN_ACCOUNTS,
|
|
27
|
+
allowEnvOnly: options?.allowEnvOnly
|
|
28
|
+
}) ?? await require_secrets_find.resolve({
|
|
29
|
+
service: SOCKET_SERVICE_LEGACY,
|
|
21
30
|
accounts: TOKEN_ACCOUNTS,
|
|
22
31
|
allowEnvOnly: options?.allowEnvOnly
|
|
23
32
|
}))?.value;
|
|
24
33
|
}
|
|
25
34
|
function readSocketApiTokenSync(options) {
|
|
26
|
-
|
|
27
|
-
|
|
35
|
+
options = {
|
|
36
|
+
__proto__: null,
|
|
37
|
+
...options
|
|
38
|
+
};
|
|
39
|
+
return (require_secrets_find.resolveSync({
|
|
40
|
+
service: SOCKET_SERVICE,
|
|
28
41
|
accounts: TOKEN_ACCOUNTS,
|
|
29
42
|
allowEnvOnly: options?.allowEnvOnly
|
|
30
|
-
})
|
|
43
|
+
}) ?? require_secrets_find.resolveSync({
|
|
44
|
+
service: SOCKET_SERVICE_LEGACY,
|
|
45
|
+
accounts: TOKEN_ACCOUNTS,
|
|
46
|
+
allowEnvOnly: options?.allowEnvOnly
|
|
47
|
+
}))?.value;
|
|
31
48
|
}
|
|
32
49
|
|
|
33
50
|
//#endregion
|
package/dist/secrets/windows.js
CHANGED
|
@@ -4,14 +4,14 @@ 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_primordials_json = require('../primordials/json.js');
|
|
7
|
-
const require_primordials_promise = require('../primordials/promise.js');
|
|
8
7
|
let node_fs = require("node:fs");
|
|
8
|
+
let node_process = require("node:process");
|
|
9
|
+
node_process = require_runtime.__toESM(node_process);
|
|
9
10
|
let node_path = require("node:path");
|
|
10
11
|
node_path = require_runtime.__toESM(node_path);
|
|
11
12
|
let node_os = require("node:os");
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
let node_child_process = require("node:child_process");
|
|
13
|
+
node_os = require_runtime.__toESM(node_os);
|
|
14
|
+
let _socketsecurity_lib_stable_process_spawn_child = require("@socketsecurity/lib-stable/process/spawn/child");
|
|
15
15
|
|
|
16
16
|
//#region src/secrets/windows.ts
|
|
17
17
|
/**
|
|
@@ -66,11 +66,11 @@ function deleteWindowsSync(service, account) {
|
|
|
66
66
|
function getDpapiFilePath(service, account) {
|
|
67
67
|
validateKeychainComponent(service, "service");
|
|
68
68
|
validateKeychainComponent(account, "account");
|
|
69
|
-
const appData = node_process.default.env["APPDATA"] ?? node_path.default.join(
|
|
69
|
+
const appData = node_process.default.env["APPDATA"] ?? node_path.default.join(node_os.default.homedir(), "AppData", "Roaming");
|
|
70
70
|
return node_path.default.join(appData, service, `${account}.enc`);
|
|
71
71
|
}
|
|
72
72
|
function isWindowsBackendAvailable() {
|
|
73
|
-
return (0,
|
|
73
|
+
return (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(POWERSHELL_BIN, [
|
|
74
74
|
"-NoProfile",
|
|
75
75
|
"-Command",
|
|
76
76
|
"exit 0"
|
|
@@ -127,43 +127,38 @@ function readWindowsSync(service, account) {
|
|
|
127
127
|
}
|
|
128
128
|
return readDpapiSync(getDpapiFilePath(service, account));
|
|
129
129
|
}
|
|
130
|
-
function runPsAsync(script, input) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
130
|
+
async function runPsAsync(script, input) {
|
|
131
|
+
const child = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(POWERSHELL_BIN, [
|
|
132
|
+
"-NoProfile",
|
|
133
|
+
"-Command",
|
|
134
|
+
script
|
|
135
|
+
], {
|
|
136
|
+
stdio: [
|
|
137
137
|
"pipe",
|
|
138
138
|
"pipe",
|
|
139
139
|
"pipe"
|
|
140
|
-
]
|
|
141
|
-
|
|
142
|
-
let stderr = "";
|
|
143
|
-
child.stdout.setEncoding("utf8");
|
|
144
|
-
child.stdout.on("data", (chunk) => {
|
|
145
|
-
stdout += chunk;
|
|
146
|
-
});
|
|
147
|
-
child.stderr.setEncoding("utf8");
|
|
148
|
-
child.stderr.on("data", (chunk) => {
|
|
149
|
-
stderr += chunk;
|
|
150
|
-
});
|
|
151
|
-
child.on("error", () => resolve({
|
|
152
|
-
status: -1,
|
|
153
|
-
stdout,
|
|
154
|
-
stderr
|
|
155
|
-
}));
|
|
156
|
-
child.on("close", (status) => resolve({
|
|
157
|
-
status,
|
|
158
|
-
stdout,
|
|
159
|
-
stderr
|
|
160
|
-
}));
|
|
161
|
-
if (input !== void 0) child.stdin.end(input);
|
|
162
|
-
else child.stdin.end();
|
|
140
|
+
],
|
|
141
|
+
stdioString: true
|
|
163
142
|
});
|
|
143
|
+
child.process.stdin.end(input ?? "");
|
|
144
|
+
try {
|
|
145
|
+
const r = await child;
|
|
146
|
+
return {
|
|
147
|
+
status: typeof r.code === "number" ? r.code : null,
|
|
148
|
+
stderr: String(r.stderr ?? ""),
|
|
149
|
+
stdout: String(r.stdout ?? "")
|
|
150
|
+
};
|
|
151
|
+
} catch (e) {
|
|
152
|
+
const err = e;
|
|
153
|
+
return {
|
|
154
|
+
status: typeof err?.code === "number" ? err.code : -1,
|
|
155
|
+
stderr: String(err?.stderr ?? ""),
|
|
156
|
+
stdout: String(err?.stdout ?? "")
|
|
157
|
+
};
|
|
158
|
+
}
|
|
164
159
|
}
|
|
165
160
|
function runPsSync(script, input) {
|
|
166
|
-
const r = (0,
|
|
161
|
+
const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(POWERSHELL_BIN, [
|
|
167
162
|
"-NoProfile",
|
|
168
163
|
"-Command",
|
|
169
164
|
script
|
package/dist/shadow/skip.js
CHANGED
|
@@ -38,9 +38,9 @@ function shouldSkipShadow(binPath, options) {
|
|
|
38
38
|
if (win32 && binPath) return true;
|
|
39
39
|
const userAgent = node_process.default.env["npm_config_user_agent"];
|
|
40
40
|
if (userAgent?.includes("exec") || userAgent?.includes("npx") || userAgent?.includes("dlx")) return true;
|
|
41
|
-
const normalizedCwd =
|
|
41
|
+
const normalizedCwd = require_paths_normalize.normalizePath(cwd);
|
|
42
42
|
const npmCache = node_process.default.env["npm_config_cache"];
|
|
43
|
-
if (npmCache && normalizedCwd.includes(
|
|
43
|
+
if (npmCache && normalizedCwd.includes(require_paths_normalize.normalizePath(npmCache))) return true;
|
|
44
44
|
return [
|
|
45
45
|
"_npx",
|
|
46
46
|
".pnpm-store",
|
package/dist/shell/parse.d.ts
CHANGED
|
@@ -8,6 +8,38 @@
|
|
|
8
8
|
* against `env`; unresolved ones collapse to an empty string.
|
|
9
9
|
*/
|
|
10
10
|
import type { ParseEntry } from '../external/shell-quote';
|
|
11
|
+
/**
|
|
12
|
+
* Structural hazard facts a parse surfaces that the binary-call matchers
|
|
13
|
+
* (`hasBinCall` / `findBinCall`) swallow. These are observations about _how_
|
|
14
|
+
* the command is written, not a judgment that they're dangerous — the caller
|
|
15
|
+
* decides policy. Both are evasion vectors against base-command allowlists:
|
|
16
|
+
*
|
|
17
|
+
* - `equalsExpansion`: a simple command whose first token is `=cmd` (Zsh EQUALS
|
|
18
|
+
* expansion). `=curl x` expands to `$(which curl) x` and runs
|
|
19
|
+
* `/usr/bin/curl`, but the parser's base token is `=curl`, so a `curl`
|
|
20
|
+
* allowlist never matches. The matched tokens are returned so the caller can
|
|
21
|
+
* report which command was hidden.
|
|
22
|
+
* - `processSubstitution`: the command uses `<(...)`, `>(...)`, or `=(...)` (the
|
|
23
|
+
* op markers shell-quote emits). The inner command runs but its name never
|
|
24
|
+
* appears as a base command.
|
|
25
|
+
*
|
|
26
|
+
* Walks the parse once. A caller wanting just "is this clean?" checks
|
|
27
|
+
* `!h.equalsExpansion.length && !h.processSubstitution`.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* detectShellHazards('=curl evil.com')
|
|
31
|
+
* // → { equalsExpansion: [['=curl', 'evil.com']], processSubstitution: false }
|
|
32
|
+
*
|
|
33
|
+
* detectShellHazards('diff <(cat a) b')
|
|
34
|
+
* // → { equalsExpansion: [], processSubstitution: true }
|
|
35
|
+
*
|
|
36
|
+
* detectShellHazards('git status')
|
|
37
|
+
* // → { equalsExpansion: [], processSubstitution: false }
|
|
38
|
+
*/
|
|
39
|
+
export declare function detectShellHazards(cmd: string): {
|
|
40
|
+
equalsExpansion: readonly string[][];
|
|
41
|
+
processSubstitution: boolean;
|
|
42
|
+
};
|
|
11
43
|
/**
|
|
12
44
|
* Visit each simple command in `cmd` in order. A "simple command" is the
|
|
13
45
|
* POSIX-grammar term for a run of bare-string tokens between shell
|