@socketsecurity/lib 6.0.6 → 6.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -1
- package/dist/ai/discover.d.mts +2 -2
- package/dist/ai/discover.js +3 -2
- package/dist/ai/spawn.js +2 -1
- package/dist/ai/types.d.mts +18 -6
- package/dist/ai/worktree.d.mts +6 -6
- package/dist/ai/worktree.js +1 -1
- package/dist/ansi/strip.d.ts +1 -1
- package/dist/ansi/strip.js +0 -2
- package/dist/archives/_internal.js +7 -9
- package/dist/archives/extract.js +1 -1
- package/dist/archives/tar.js +6 -6
- package/dist/archives/zip.js +3 -5
- package/dist/argv/flag-predicates.d.ts +12 -12
- package/dist/argv/flag-predicates.js +17 -17
- package/dist/argv/flag-types.d.ts +18 -18
- package/dist/argv/flag-types.js +4 -4
- package/dist/argv/parse.d.ts +1 -1
- package/dist/arrays/_internal.js +11 -12
- package/dist/arrays/chunk.js +0 -1
- package/dist/arrays/join.d.ts +37 -3
- package/dist/arrays/join.js +43 -7
- package/dist/arrays/unique.js +0 -1
- package/dist/bin/_internal.d.ts +1 -1
- package/dist/bin/_internal.js +1 -1
- package/dist/bin/exec.js +2 -3
- package/dist/bin/find.js +13 -13
- package/dist/bin/prim.cjs +22736 -22556
- package/dist/bin/resolve.js +12 -13
- package/dist/bin/which.js +8 -8
- package/dist/cache/ttl/store.js +5 -5
- package/dist/checks/primordials-defaults.d.ts +3 -3
- package/dist/checks/primordials-defaults.js +3 -3
- package/dist/checks/primordials.js +4 -3
- package/dist/{bin → cli}/check-primordials.d.ts +11 -11
- package/dist/{bin → cli}/check-primordials.js +55 -52
- package/dist/{bin → cli}/check.js +3 -3
- package/dist/{bin → cli}/socket-lib.d.ts +1 -1
- package/dist/{bin → cli}/socket-lib.js +4 -4
- package/dist/colors/socket-palette.js +7 -9
- package/dist/compression/_internal.d.ts +12 -12
- package/dist/compression/_internal.js +17 -17
- package/dist/compression/brotli.d.ts +25 -25
- package/dist/compression/brotli.js +33 -33
- package/dist/compression/gzip.d.ts +23 -23
- package/dist/compression/gzip.js +40 -40
- package/dist/constants/agents.d.ts +3 -1
- package/dist/constants/agents.js +15 -11
- package/dist/constants/licenses.js +3 -3
- package/dist/constants/node.d.ts +23 -0
- package/dist/constants/node.js +47 -15
- package/dist/constants/packages.js +22 -28
- package/dist/constants/platform.d.ts +30 -3
- package/dist/constants/platform.js +72 -12
- package/dist/constants/runtime.d.ts +22 -0
- package/dist/constants/runtime.js +32 -0
- package/dist/constants/socket.js +1 -1
- package/dist/cover/code.js +8 -8
- package/dist/cover/formatters.js +5 -5
- package/dist/crypto/hash.d.ts +26 -1
- package/dist/crypto/hash.js +43 -12
- package/dist/debug/_internal.js +4 -6
- package/dist/debug/caller-info.js +2 -3
- package/dist/debug/namespace.d.ts +7 -0
- package/dist/debug/namespace.js +21 -12
- package/dist/debug/output.js +21 -24
- package/dist/debug/types.d.ts +4 -4
- package/dist/dlx/arborist.js +6 -6
- package/dist/dlx/binary-cache.js +14 -14
- package/dist/dlx/binary-download.d.ts +1 -1
- package/dist/dlx/binary-download.js +11 -11
- package/dist/dlx/binary-resolution.js +16 -14
- package/dist/dlx/binary-types.d.ts +5 -5
- package/dist/dlx/binary.js +5 -5
- package/dist/dlx/cache.js +1 -1
- package/dist/dlx/detect.d.ts +34 -25
- package/dist/dlx/detect.js +86 -77
- package/dist/dlx/dir.js +2 -2
- package/dist/dlx/firewall.d.ts +1 -1
- package/dist/dlx/lockfile.d.ts +19 -18
- package/dist/dlx/lockfile.js +16 -16
- package/dist/dlx/manifest.d.ts +6 -6
- package/dist/dlx/manifest.js +5 -5
- package/dist/dlx/package.d.ts +10 -10
- package/dist/dlx/package.js +16 -16
- package/dist/dlx/packages.js +4 -4
- package/dist/dlx/paths.js +7 -7
- package/dist/dlx/spec.js +1 -1
- package/dist/dlx/types.d.ts +28 -27
- package/dist/eco/cargo/parse-lockfile.d.ts +1 -1
- package/dist/eco/cargo/parse-lockfile.js +2 -2
- package/dist/eco/manifest/analyze-lockfile.js +2 -2
- package/dist/eco/manifest/detect-format.js +4 -4
- package/dist/eco/manifest/find-packages.js +2 -2
- package/dist/eco/manifest/get-package-versions.js +2 -2
- package/dist/eco/manifest/get-package.js +2 -2
- package/dist/eco/manifest/parse-lockfile.js +2 -2
- package/dist/eco/manifest/parse-manifest.js +2 -2
- package/dist/eco/manifest/parse.js +2 -2
- package/dist/eco/npm/npm/exec.js +2 -2
- package/dist/eco/npm/npm/flags.js +7 -12
- package/dist/eco/npm/npm/parse-lockfile.d.ts +14 -14
- package/dist/eco/npm/npm/parse-lockfile.js +3 -3
- package/dist/eco/npm/parse-package-json.js +3 -3
- package/dist/eco/npm/pnpm/exec.d.ts +1 -1
- package/dist/eco/npm/pnpm/exec.js +5 -5
- package/dist/eco/npm/pnpm/flags.js +0 -3
- package/dist/eco/npm/pnpm/parse-lockfile.d.ts +1 -1
- package/dist/eco/npm/pnpm/parse-lockfile.js +4 -4
- package/dist/eco/npm/script.js +9 -6
- package/dist/eco/npm/yarnpkg/yarn/exec.js +3 -3
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +2 -2
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +8 -8
- package/dist/effects/pulse-frames.d.ts +3 -1
- package/dist/effects/shimmer-keyframes.d.ts +1 -1
- package/dist/effects/shimmer-terminal.d.ts +1 -1
- package/dist/env/boolean.js +0 -1
- package/dist/env/ci.js +0 -1
- package/dist/env/debug.js +0 -1
- package/dist/env/github-status.d.ts +51 -0
- package/dist/env/github-status.js +90 -0
- package/dist/env/github.js +0 -8
- package/dist/env/home.js +0 -1
- package/dist/env/locale.js +0 -3
- package/dist/env/node-auth-token.js +0 -1
- package/dist/env/node-env.js +0 -1
- package/dist/env/node-version-managers.d.ts +53 -0
- package/dist/env/node-version-managers.js +90 -0
- package/dist/env/npm.js +0 -5
- package/dist/env/number.js +0 -1
- package/dist/env/package-manager.js +3 -6
- package/dist/env/path.js +0 -1
- package/dist/env/pre-commit.js +1 -2
- package/dist/env/rewire.d.ts +7 -6
- package/dist/env/rewire.js +15 -16
- package/dist/env/shell.js +0 -1
- package/dist/env/socket-cli.js +5 -18
- package/dist/env/socket-mcp.d.ts +114 -0
- package/dist/env/socket-mcp.js +146 -0
- package/dist/env/socket.d.ts +1 -109
- package/dist/env/socket.js +12 -167
- package/dist/env/string.js +0 -1
- package/dist/env/temp-dir.js +0 -3
- package/dist/env/term.js +0 -1
- package/dist/env/test.js +3 -6
- package/dist/env/windows.js +0 -4
- package/dist/env/xdg.js +0 -3
- package/dist/events/exit/_internal.d.ts +11 -9
- package/dist/events/exit/_internal.js +31 -35
- package/dist/events/exit/handler.js +3 -4
- package/dist/events/exit/intercept.js +4 -6
- package/dist/events/exit/lifecycle.js +16 -18
- package/dist/events/exit/signals.js +1 -2
- package/dist/events/exit/types.d.ts +6 -5
- package/dist/external/@npmcli/package-json.js +2 -2
- package/dist/external/npm-pack.js +2 -2
- package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
- package/dist/external-tools/bazel/types.d.ts +1 -1
- package/dist/external-tools/cdxgen/from-vfs.js +1 -1
- package/dist/external-tools/cdxgen/types.d.ts +1 -1
- package/dist/external-tools/from-download.d.ts +1 -1
- package/dist/external-tools/from-download.js +1 -1
- package/dist/external-tools/janus/from-vfs.js +1 -1
- package/dist/external-tools/janus/types.d.ts +1 -1
- package/dist/external-tools/jre/detect-platform-arch.d.ts +10 -6
- package/dist/external-tools/jre/detect-platform-arch.js +29 -14
- package/dist/external-tools/jre/from-vfs.js +1 -1
- package/dist/external-tools/jre/types.d.ts +1 -1
- package/dist/external-tools/manifest.d.ts +7 -7
- package/dist/external-tools/manifest.js +12 -12
- package/dist/external-tools/opengrep/from-vfs.js +1 -1
- package/dist/external-tools/opengrep/types.d.ts +1 -1
- package/dist/external-tools/python/asset-names.d.ts +76 -0
- package/dist/external-tools/python/asset-names.js +104 -0
- package/dist/external-tools/python/dlx.d.ts +80 -0
- package/dist/external-tools/python/dlx.js +87 -0
- package/dist/external-tools/python/from-download.d.ts +53 -0
- package/dist/external-tools/python/from-download.js +68 -0
- package/dist/external-tools/python/from-path.d.ts +7 -0
- package/dist/external-tools/python/from-path.js +23 -0
- package/dist/external-tools/python/pin.d.ts +121 -0
- package/dist/external-tools/python/pin.js +173 -0
- package/dist/external-tools/python/pip-install.d.ts +75 -0
- package/dist/external-tools/python/pip-install.js +139 -0
- package/dist/external-tools/python/resolve.d.ts +42 -0
- package/dist/external-tools/python/resolve.js +58 -0
- package/dist/external-tools/python/types.d.ts +49 -0
- package/dist/external-tools/sbt/from-vfs.js +1 -1
- package/dist/external-tools/sbt/types.d.ts +1 -1
- package/dist/external-tools/skillspector/from-path.js +3 -5
- package/dist/external-tools/skillspector/from-vfs.js +1 -1
- package/dist/external-tools/synp/from-download.js +2 -2
- package/dist/external-tools/synp/from-vfs.js +1 -1
- package/dist/external-tools/trivy/from-vfs.js +1 -1
- package/dist/external-tools/trivy/types.d.ts +1 -1
- package/dist/external-tools/trufflehog/from-vfs.js +1 -1
- package/dist/external-tools/trufflehog/types.d.ts +1 -1
- package/dist/fs/_internal.d.ts +1 -1
- package/dist/fs/_internal.js +7 -7
- package/dist/fs/access.js +5 -9
- package/dist/fs/{path-cache.js → allowed-dirs-cache.js} +1 -1
- package/dist/fs/encoding.js +5 -7
- package/dist/fs/{find-up.js → find.js} +11 -13
- package/dist/fs/inspect.js +7 -13
- package/dist/fs/read-dir.js +7 -10
- package/dist/fs/read-file.js +8 -14
- package/dist/fs/read-json-cache.d.ts +6 -4
- package/dist/fs/read-json-cache.js +9 -6
- package/dist/fs/read-json.js +4 -6
- package/dist/fs/resolve-module.js +1 -1
- package/dist/fs/safe.d.ts +1 -1
- package/dist/fs/safe.js +12 -13
- package/dist/fs/unique.js +4 -5
- package/dist/fs/validate.js +1 -2
- package/dist/fs/write-json.js +4 -5
- package/dist/git/_internal.js +10 -10
- package/dist/git/changed.js +4 -4
- package/dist/git/repo.js +3 -3
- package/dist/git/staged.js +4 -4
- package/dist/git/unstaged.js +4 -4
- package/dist/github/ghsa.js +2 -2
- package/dist/github/refs-cache.d.ts +1 -1
- package/dist/github/refs-cache.js +5 -5
- package/dist/github/refs-rest.js +5 -5
- package/dist/github/{fetch.js → request.js} +13 -2
- package/dist/github/token.js +1 -1
- package/dist/github/types.d.ts +1 -1
- package/dist/globs/_internal.js +7 -9
- package/dist/globs/match.js +4 -6
- package/dist/globs/matcher.d.ts +3 -3
- package/dist/globs/matcher.js +12 -14
- package/dist/globs/stream.js +1 -2
- package/dist/globs/types.d.ts +24 -24
- package/dist/http-request/_internal.d.ts +1 -1
- package/dist/http-request/browser.js +4 -2
- package/dist/http-request/checksum-file.d.ts +55 -0
- package/dist/http-request/checksum-file.js +95 -0
- package/dist/http-request/download-types.d.ts +15 -23
- package/dist/http-request/download.js +3 -3
- package/dist/http-request/headers.js +0 -1
- package/dist/http-request/request-attempt.js +37 -33
- package/dist/http-request/request-types.d.ts +2 -2
- package/dist/http-request/request.js +1 -1
- package/dist/http-request/user-agent.js +3 -4
- package/dist/integrity.d.ts +86 -18
- package/dist/integrity.js +119 -30
- package/dist/ipc/directory.js +2 -2
- package/dist/ipc/paths.js +1 -1
- package/dist/ipc/write.js +1 -1
- package/dist/ipc-cli/get.js +12 -12
- package/dist/json/edit.js +13 -14
- package/dist/json/format.js +2 -2
- package/dist/json/parse.d.ts +1 -1
- package/dist/json/parse.js +3 -7
- package/dist/logger/_internal.d.ts +4 -4
- package/dist/logger/_internal.js +3 -3
- package/dist/logger/colors.js +4 -3
- package/dist/logger/console-methods.d.ts +132 -0
- package/dist/logger/console-methods.js +169 -0
- package/dist/logger/console.d.ts +12 -0
- package/dist/logger/console.js +42 -11
- package/dist/logger/indentation-methods.d.ts +81 -0
- package/dist/logger/indentation-methods.js +121 -0
- package/dist/logger/node.d.ts +16 -338
- package/dist/logger/node.js +75 -608
- package/dist/logger/options.d.ts +39 -0
- package/dist/logger/options.js +47 -0
- package/dist/logger/semantic-methods.d.ts +63 -0
- package/dist/logger/semantic-methods.js +108 -0
- package/dist/logger/stream-methods.d.ts +63 -0
- package/dist/logger/stream-methods.js +101 -0
- package/dist/logger/stream.d.ts +37 -0
- package/dist/logger/stream.js +42 -0
- package/dist/logger/symbols-builder.js +9 -9
- package/dist/logger/symbols.d.ts +2 -25
- package/dist/logger/symbols.js +53 -74
- package/dist/logger/types.d.ts +1 -1
- package/dist/memo/types.d.ts +6 -6
- package/dist/native-messaging/host.d.ts +20 -0
- package/dist/native-messaging/host.js +120 -0
- package/dist/native-messaging/index.d.ts +5 -0
- package/dist/native-messaging/index.js +22 -0
- package/dist/native-messaging/install.d.ts +60 -0
- package/dist/native-messaging/install.js +141 -0
- package/dist/native-messaging/rate-limit.d.ts +62 -0
- package/dist/native-messaging/rate-limit.js +115 -0
- package/dist/native-messaging/run.d.ts +10 -0
- package/dist/native-messaging/run.js +17 -0
- package/dist/node/async-hooks.js +4 -3
- package/dist/node/child-process.js +4 -3
- package/dist/node/crypto.js +4 -3
- package/dist/node/events.js +4 -3
- package/dist/node/fs-promises.js +4 -3
- package/dist/node/fs.js +4 -3
- package/dist/node/http.js +4 -3
- package/dist/node/https.js +4 -3
- package/dist/node/module.js +10 -6
- package/dist/node/os.js +4 -3
- package/dist/node/path.js +4 -3
- package/dist/node/timers-promises.js +4 -3
- package/dist/node/url.js +4 -3
- package/dist/node/util.js +4 -3
- package/dist/objects/getters.js +5 -7
- package/dist/objects/inspect.js +1 -4
- package/dist/objects/mutate.js +2 -3
- package/dist/objects/predicates.js +0 -4
- package/dist/objects/sort.js +3 -7
- package/dist/packages/edit-class.js +15 -16
- package/dist/packages/edit.js +12 -14
- package/dist/packages/exports.js +11 -17
- package/dist/packages/fetch.d.ts +16 -0
- package/dist/packages/fetch.js +81 -0
- package/dist/packages/find.d.ts +55 -0
- package/dist/packages/find.js +65 -0
- package/dist/packages/isolation.js +14 -14
- package/dist/packages/licenses.js +16 -16
- package/dist/packages/manifest.js +12 -15
- package/dist/packages/metadata-extensions.d.ts +14 -0
- package/dist/packages/metadata-extensions.js +43 -0
- package/dist/packages/normalize.js +5 -9
- package/dist/packages/provenance.js +16 -18
- package/dist/packages/read.d.ts +29 -0
- package/dist/packages/read.js +66 -0
- package/dist/packages/specs.d.ts +48 -1
- package/dist/packages/specs.js +74 -11
- package/dist/packages/tarball.d.ts +24 -0
- package/dist/packages/tarball.js +79 -0
- package/dist/packages/types.d.ts +21 -20
- package/dist/packages/validation.js +0 -3
- package/dist/paths/_internal.d.ts +2 -1
- package/dist/paths/_internal.js +7 -19
- package/dist/paths/conversion.js +5 -9
- package/dist/paths/filenames.d.ts +0 -1
- package/dist/paths/filenames.js +0 -2
- package/dist/paths/normalize.js +4 -5
- package/dist/paths/packages.js +4 -7
- package/dist/paths/predicates.js +9 -16
- package/dist/paths/resolve.js +11 -14
- package/dist/paths/rewire.js +3 -3
- package/dist/paths/socket.js +16 -16
- package/dist/paths/walk.d.ts +1 -1
- package/dist/paths/walk.js +4 -4
- package/dist/perf/report.js +2 -2
- package/dist/perf/types.d.ts +1 -1
- package/dist/pkg-ext/data.js +1 -1
- package/dist/primordials/array.js +9 -9
- package/dist/primordials/date.js +2 -2
- package/dist/primordials/error.js +3 -3
- package/dist/primordials/headers.d.ts +10 -0
- package/dist/primordials/headers.js +23 -0
- package/dist/primordials/intl.d.ts +13 -0
- package/dist/primordials/intl.js +26 -0
- package/dist/primordials/math.js +33 -33
- package/dist/primordials/number.js +9 -9
- package/dist/primordials/object.js +5 -5
- package/dist/primordials/string.d.ts +2 -2
- package/dist/primordials/string.js +6 -6
- package/dist/primordials/symbol.js +3 -3
- package/dist/primordials/uncurry.js +9 -9
- package/dist/process/abort.js +3 -3
- package/dist/process/lock-manager.js +8 -8
- package/dist/process/spawn/_internal.js +6 -8
- package/dist/process/spawn/child.js +14 -14
- package/dist/process/spawn/errors.js +2 -4
- package/dist/process/spawn/kill-tree.d.ts +53 -0
- package/dist/process/spawn/kill-tree.js +85 -0
- package/dist/process/spawn/stdio.js +0 -1
- package/dist/process/spawn/types.d.ts +5 -5
- package/dist/process/transient.js +2 -2
- package/dist/promises/_internal.d.ts +2 -1
- package/dist/promises/_internal.js +2 -6
- package/dist/promises/iterate.js +11 -15
- package/dist/promises/options.js +3 -6
- package/dist/promises/retry.js +4 -5
- package/dist/promises/timers.d.ts +30 -0
- package/dist/promises/timers.js +48 -0
- package/dist/releases/github-archives.d.ts +6 -6
- package/dist/releases/github-archives.js +2 -2
- package/dist/releases/github-asset-url.d.ts +1 -1
- package/dist/releases/github-asset-url.js +5 -5
- package/dist/releases/github-downloads.d.ts +1 -1
- package/dist/releases/github-downloads.js +3 -3
- package/dist/releases/github-listing.d.ts +11 -2
- package/dist/releases/github-listing.js +20 -7
- package/dist/releases/github-retry-config.js +1 -1
- package/dist/releases/github-types.d.ts +6 -6
- package/dist/releases/socket-btm-binary-naming.d.ts +107 -0
- package/dist/releases/socket-btm-binary-naming.js +155 -0
- package/dist/releases/socket-btm.d.ts +8 -115
- package/dist/releases/socket-btm.js +16 -159
- package/dist/schema/types.d.ts +1 -1
- package/dist/sea/detect.js +6 -6
- package/dist/secrets/_internal.d.ts +2 -2
- package/dist/secrets/_internal.js +2 -2
- package/dist/secrets/compare.d.ts +45 -0
- package/dist/secrets/compare.js +61 -0
- package/dist/secrets/keychain.js +6 -4
- package/dist/secrets/linux.js +19 -19
- package/dist/secrets/macos.d.ts +1 -1
- package/dist/secrets/macos.js +13 -13
- package/dist/secrets/rc.d.ts +2 -2
- package/dist/secrets/rc.js +6 -4
- package/dist/secrets/socket-api-token.d.ts +4 -4
- package/dist/secrets/socket-api-token.js +18 -9
- package/dist/secrets/windows.js +14 -13
- package/dist/shadow/skip.js +2 -2
- package/dist/smol/detect.js +9 -10
- package/dist/smol/http.js +6 -7
- package/dist/smol/https.js +6 -7
- package/dist/smol/manifest.d.ts +1 -1
- package/dist/smol/manifest.js +6 -7
- package/dist/smol/path.d.ts +1 -1
- package/dist/smol/path.js +7 -8
- package/dist/smol/primordial.d.ts +4 -0
- package/dist/smol/primordial.js +6 -7
- package/dist/smol/purl.d.ts +1 -1
- package/dist/smol/purl.js +7 -8
- package/dist/smol/versions.js +6 -7
- package/dist/smol/vfs.js +6 -7
- package/dist/sorts/_internal.js +6 -8
- package/dist/sorts/natural.js +10 -12
- package/dist/sorts/semver.js +1 -2
- package/dist/sorts/strings.js +0 -1
- package/dist/sorts/types.d.ts +1 -1
- package/dist/spinner/create-spinner-class.d.ts +38 -0
- package/dist/spinner/create-spinner-class.js +302 -0
- package/dist/spinner/default.js +8 -9
- package/dist/spinner/spinner-internals.d.ts +36 -0
- package/dist/spinner/spinner-internals.js +101 -0
- package/dist/spinner/spinner-shimmer-methods.d.ts +54 -0
- package/dist/spinner/spinner-shimmer-methods.js +143 -0
- package/dist/spinner/spinner-status-methods.d.ts +40 -0
- package/dist/spinner/spinner-status-methods.js +133 -0
- package/dist/spinner/spinner.d.ts +4 -5
- package/dist/spinner/spinner.js +18 -705
- package/dist/spinner/types.d.ts +3 -1
- package/dist/spinner/with.d.ts +10 -0
- package/dist/spinner/with.js +16 -2
- package/dist/stdio/divider.js +1 -1
- package/dist/stdio/footer.js +3 -3
- package/dist/stdio/header.js +4 -4
- package/dist/stdio/progress.js +5 -5
- package/dist/stdio/prompts.d.ts +5 -3
- package/dist/stdio/prompts.js +6 -7
- package/dist/stdio/stdout.js +3 -3
- package/dist/streams/parallel.js +3 -5
- package/dist/streams/transform.js +2 -3
- package/dist/strings/format.js +2 -6
- package/dist/strings/predicates.js +0 -2
- package/dist/strings/search.js +1 -2
- package/dist/strings/transform.js +0 -3
- package/dist/strings/width.js +9 -10
- package/dist/tables/bordered.js +4 -3
- package/dist/tables/padding.js +1 -1
- package/dist/tables/simple.js +8 -5
- package/dist/temporal/instant.js +1 -1
- package/dist/temporal/slots.js +6 -6
- package/dist/temporal/system.js +9 -9
- package/dist/themes/context.d.ts +3 -2
- package/dist/themes/context.js +4 -5
- package/dist/themes/themes.js +15 -15
- package/dist/themes/types.d.ts +3 -3
- package/dist/url/parse.js +0 -2
- package/dist/url/predicates.js +1 -2
- package/dist/url/search-params.js +3 -9
- package/dist/url/types.d.ts +5 -5
- package/dist/versions/_internal.js +3 -3
- package/dist/words/article.js +0 -1
- package/dist/words/capitalize.js +0 -1
- package/dist/words/pluralize.js +15 -5
- package/package.json +247 -106
- package/dist/external-tools/uv/asset-names.d.ts +0 -36
- package/dist/external-tools/uv/asset-names.js +0 -70
- package/dist/external-tools/uv/from-download.d.ts +0 -17
- package/dist/external-tools/uv/from-download.js +0 -47
- package/dist/external-tools/uv/from-path.d.ts +0 -5
- package/dist/external-tools/uv/from-path.js +0 -22
- package/dist/external-tools/uv/from-vfs.d.ts +0 -7
- package/dist/external-tools/uv/from-vfs.js +0 -26
- package/dist/external-tools/uv/resolve.d.ts +0 -25
- package/dist/external-tools/uv/resolve.js +0 -53
- package/dist/external-tools/uv/types.d.ts +0 -24
- package/dist/http-request/checksums.d.ts +0 -69
- package/dist/http-request/checksums.js +0 -108
- package/dist/http-request/http-request.d.ts +0 -12
- package/dist/http-request/http-request.js +0 -11
- package/dist/packages/operations.d.ts +0 -113
- package/dist/packages/operations.js +0 -304
- package/dist/ssri/convert.d.ts +0 -48
- package/dist/ssri/convert.js +0 -69
- package/dist/ssri/parse.d.ts +0 -27
- package/dist/ssri/parse.js +0 -41
- package/dist/ssri/validate.d.ts +0 -41
- package/dist/ssri/validate.js +0 -56
- /package/dist/{bin → cli}/check.d.ts +0 -0
- /package/dist/external-tools/{uv → python}/types.js +0 -0
- /package/dist/fs/{path-cache.d.ts → allowed-dirs-cache.d.ts} +0 -0
- /package/dist/fs/{find-up.d.ts → find.d.ts} +0 -0
- /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
|
@@ -0,0 +1,61 @@
|
|
|
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
|
+
let node_crypto = require("node:crypto");
|
|
6
|
+
node_crypto = require_runtime.__toESM(node_crypto);
|
|
7
|
+
|
|
8
|
+
//#region src/secrets/compare.ts
|
|
9
|
+
/**
|
|
10
|
+
* @file Constant-time secret comparison. Wraps Node's `crypto.timingSafeEqual`
|
|
11
|
+
* so every secret comparison in the codebase runs through one helper that
|
|
12
|
+
* refuses to short-circuit on the first mismatched byte. Why this matters:
|
|
13
|
+
*
|
|
14
|
+
* - `===` / `!==` on JS strings short-circuits at the first byte mismatch. An
|
|
15
|
+
* attacker who can measure server response time can binary-search the
|
|
16
|
+
* secret one byte at a time: `'a000...'`, `'b000...'`, … until the response
|
|
17
|
+
* slows down at the right first byte, then on to byte 2. Same trap for
|
|
18
|
+
* `Buffer.compare` and `==`.
|
|
19
|
+
* - `crypto.timingSafeEqual` runs in O(n) regardless of where the first
|
|
20
|
+
* mismatch is. Each iteration is the same cost so the timing channel
|
|
21
|
+
* carries no information about which byte mismatched. Use whenever
|
|
22
|
+
* comparing two values that include a secret (session token, API key, MAC,
|
|
23
|
+
* expected-hash). Don't use for path strings or other non-secret
|
|
24
|
+
* comparisons — `===` is fine there and faster. Patterned after pilcrow's
|
|
25
|
+
* `crypto.go::constantTimeCompare`, the canonical shape in
|
|
26
|
+
* passwordless-example.auth.pilcrowonpaper.com — wrap once, use everywhere,
|
|
27
|
+
* never byte-compare a secret directly.
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* Compare two secrets in constant time. Returns `true` when the inputs are
|
|
31
|
+
* byte-equal. Returns `false` when they differ **or** when the byte-lengths
|
|
32
|
+
* differ. Never throws.
|
|
33
|
+
*
|
|
34
|
+
* Length mismatch handling: `timingSafeEqual` itself throws on length mismatch
|
|
35
|
+
* (it can't preserve the timing-safety contract across differently- sized
|
|
36
|
+
* buffers). We catch that and return `false` so callers don't need a length
|
|
37
|
+
* pre-check.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ;```typescript
|
|
41
|
+
* import { compareSecrets } from '@socketsecurity/lib/secrets/compare'
|
|
42
|
+
*
|
|
43
|
+
* if (!compareSecrets(presentedToken, storedToken)) {
|
|
44
|
+
* throw new Error('invalid token')
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* @param a - First secret (string or Buffer).
|
|
49
|
+
* @param b - Second secret (string or Buffer).
|
|
50
|
+
*
|
|
51
|
+
* @returns `true` when `a` and `b` are byte-equal; `false` otherwise.
|
|
52
|
+
*/
|
|
53
|
+
function compareSecrets(a, b) {
|
|
54
|
+
const ab = typeof a === "string" ? Buffer.from(a, "utf8") : a;
|
|
55
|
+
const bb = typeof b === "string" ? Buffer.from(b, "utf8") : b;
|
|
56
|
+
if (ab.length !== bb.length) return false;
|
|
57
|
+
return node_crypto.default.timingSafeEqual(ab, bb);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
//#endregion
|
|
61
|
+
exports.compareSecrets = compareSecrets;
|
package/dist/secrets/keychain.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* Socket Lib - Built with rolldown */
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_runtime = require('../_virtual/_rolldown/runtime.js');
|
|
4
5
|
const require_primordials_error = require('../primordials/error.js');
|
|
5
6
|
const require_secrets__internal = require('./_internal.js');
|
|
6
7
|
const require_secrets_macos = require('./macos.js');
|
|
7
8
|
const require_secrets_linux = require('./linux.js');
|
|
8
9
|
const require_secrets_windows = require('./windows.js');
|
|
9
10
|
let node_os = require("node:os");
|
|
11
|
+
node_os = require_runtime.__toESM(node_os);
|
|
10
12
|
|
|
11
13
|
//#region src/secrets/keychain.ts
|
|
12
14
|
/**
|
|
@@ -118,7 +120,7 @@ function deleteSecretSync({ service, account }) {
|
|
|
118
120
|
* @internal
|
|
119
121
|
*/
|
|
120
122
|
function detectPlatform() {
|
|
121
|
-
const p =
|
|
123
|
+
const p = node_os.default.platform();
|
|
122
124
|
if (p === "darwin" || p === "linux" || p === "win32") return p;
|
|
123
125
|
return "other";
|
|
124
126
|
}
|
|
@@ -150,7 +152,7 @@ function getBackendAvailability() {
|
|
|
150
152
|
default: return {
|
|
151
153
|
available: false,
|
|
152
154
|
toolName: "n/a",
|
|
153
|
-
installHint: `Platform ${
|
|
155
|
+
installHint: `Platform ${node_os.default.platform()} is not supported.`
|
|
154
156
|
};
|
|
155
157
|
}
|
|
156
158
|
}
|
|
@@ -231,7 +233,7 @@ function readSecretSync({ service, account }) {
|
|
|
231
233
|
async function writeSecret({ service, account, value, label }) {
|
|
232
234
|
if (!value || typeof value !== "string") throw new require_primordials_error.TypeErrorCtor("writeSecret: value must be a non-empty string");
|
|
233
235
|
const platform_ = detectPlatform();
|
|
234
|
-
if (platform_ === "other") throw new require_primordials_error.ErrorCtor(`Unsupported platform: ${
|
|
236
|
+
if (platform_ === "other") throw new require_primordials_error.ErrorCtor(`Unsupported platform: ${node_os.default.platform()}. Secret storage requires macOS, Linux, or Windows.`);
|
|
235
237
|
if (await readSecret({
|
|
236
238
|
service,
|
|
237
239
|
account
|
|
@@ -254,7 +256,7 @@ async function writeSecret({ service, account, value, label }) {
|
|
|
254
256
|
function writeSecretSync({ service, account, value, label }) {
|
|
255
257
|
if (!value || typeof value !== "string") throw new require_primordials_error.TypeErrorCtor("writeSecret: value must be a non-empty string");
|
|
256
258
|
const platform_ = detectPlatform();
|
|
257
|
-
if (platform_ === "other") throw new require_primordials_error.ErrorCtor(`Unsupported platform: ${
|
|
259
|
+
if (platform_ === "other") throw new require_primordials_error.ErrorCtor(`Unsupported platform: ${node_os.default.platform()}. Secret storage requires macOS, Linux, or Windows.`);
|
|
258
260
|
if (readSecretSync({
|
|
259
261
|
service,
|
|
260
262
|
account
|
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,11 +43,11 @@ 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
49
|
return new require_primordials_promise.PromiseCtor((resolve) => {
|
|
50
|
-
const
|
|
50
|
+
const { process: cp } = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(SECRET_TOOL_BIN, [
|
|
51
51
|
"lookup",
|
|
52
52
|
"service",
|
|
53
53
|
service,
|
|
@@ -59,12 +59,12 @@ async function readLinux(service, account) {
|
|
|
59
59
|
"pipe"
|
|
60
60
|
] });
|
|
61
61
|
let stdout = "";
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
cp.stdout.setEncoding("utf8");
|
|
63
|
+
cp.stdout.on("data", (chunk) => {
|
|
64
64
|
stdout += chunk;
|
|
65
65
|
});
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
cp.on("error", () => resolve(void 0));
|
|
67
|
+
cp.on("close", (status) => {
|
|
68
68
|
if (status !== 0) {
|
|
69
69
|
resolve(void 0);
|
|
70
70
|
return;
|
|
@@ -74,7 +74,7 @@ async function readLinux(service, account) {
|
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
76
|
function readLinuxSync(service, account) {
|
|
77
|
-
const r = (0,
|
|
77
|
+
const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECRET_TOOL_BIN, [
|
|
78
78
|
"lookup",
|
|
79
79
|
"service",
|
|
80
80
|
service,
|
|
@@ -93,7 +93,7 @@ function readLinuxSync(service, account) {
|
|
|
93
93
|
}
|
|
94
94
|
async function writeLinux(service, account, value, label) {
|
|
95
95
|
return new require_primordials_promise.PromiseCtor((resolve, reject) => {
|
|
96
|
-
const
|
|
96
|
+
const { process: cp } = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(SECRET_TOOL_BIN, [
|
|
97
97
|
"store",
|
|
98
98
|
`--label=${label}`,
|
|
99
99
|
"service",
|
|
@@ -106,23 +106,23 @@ async function writeLinux(service, account, value, label) {
|
|
|
106
106
|
"pipe"
|
|
107
107
|
] });
|
|
108
108
|
let stderr = "";
|
|
109
|
-
|
|
110
|
-
|
|
109
|
+
cp.stderr.setEncoding("utf8");
|
|
110
|
+
cp.stderr.on("data", (chunk) => {
|
|
111
111
|
stderr += chunk;
|
|
112
112
|
});
|
|
113
|
-
|
|
114
|
-
|
|
113
|
+
cp.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
|
+
cp.on("close", (status) => {
|
|
115
115
|
if (status === 0) {
|
|
116
116
|
resolve();
|
|
117
117
|
return;
|
|
118
118
|
}
|
|
119
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
120
|
});
|
|
121
|
-
|
|
121
|
+
cp.stdin.end(value);
|
|
122
122
|
});
|
|
123
123
|
}
|
|
124
124
|
function writeLinuxSync(service, account, value, label) {
|
|
125
|
-
const r = (0,
|
|
125
|
+
const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECRET_TOOL_BIN, [
|
|
126
126
|
"store",
|
|
127
127
|
`--label=${label}`,
|
|
128
128
|
"service",
|
package/dist/secrets/macos.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ 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
26
|
interface SpawnOpts {
|
|
27
|
-
stdio?: 'ignore' | 'pipe' | ['ignore', 'pipe', 'pipe'];
|
|
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;
|
package/dist/secrets/macos.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/macos.ts
|
|
9
9
|
/**
|
|
@@ -37,7 +37,7 @@ async function deleteMacOS(service, account) {
|
|
|
37
37
|
], { stdio: "ignore" })).status === 0 ? "removed" : "absent";
|
|
38
38
|
}
|
|
39
39
|
function deleteMacOSSync(service, account) {
|
|
40
|
-
return (0,
|
|
40
|
+
return (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECURITY_BIN, [
|
|
41
41
|
"delete-generic-password",
|
|
42
42
|
"-s",
|
|
43
43
|
service,
|
|
@@ -61,7 +61,7 @@ async function readMacOS(service, account) {
|
|
|
61
61
|
return r.stdout.trim() || void 0;
|
|
62
62
|
}
|
|
63
63
|
function readMacOSSync(service, account) {
|
|
64
|
-
const r = (0,
|
|
64
|
+
const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECURITY_BIN, [
|
|
65
65
|
"find-generic-password",
|
|
66
66
|
"-s",
|
|
67
67
|
service,
|
|
@@ -81,31 +81,31 @@ function readMacOSSync(service, account) {
|
|
|
81
81
|
}
|
|
82
82
|
function runAsync(args, opts = {}) {
|
|
83
83
|
return new require_primordials_promise.PromiseCtor((resolve) => {
|
|
84
|
-
const
|
|
84
|
+
const { process: cp } = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(SECURITY_BIN, args, { stdio: opts.stdio ?? [
|
|
85
85
|
"ignore",
|
|
86
86
|
"pipe",
|
|
87
87
|
"pipe"
|
|
88
88
|
] });
|
|
89
89
|
let stdout = "";
|
|
90
90
|
let stderr = "";
|
|
91
|
-
if (
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
if (cp.stdout) {
|
|
92
|
+
cp.stdout.setEncoding("utf8");
|
|
93
|
+
cp.stdout.on("data", (chunk) => {
|
|
94
94
|
stdout += chunk;
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
|
-
if (
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
if (cp.stderr) {
|
|
98
|
+
cp.stderr.setEncoding("utf8");
|
|
99
|
+
cp.stderr.on("data", (chunk) => {
|
|
100
100
|
stderr += chunk;
|
|
101
101
|
});
|
|
102
102
|
}
|
|
103
|
-
|
|
103
|
+
cp.on("error", () => resolve({
|
|
104
104
|
status: -1,
|
|
105
105
|
stdout,
|
|
106
106
|
stderr
|
|
107
107
|
}));
|
|
108
|
-
|
|
108
|
+
cp.on("close", (status) => resolve({
|
|
109
109
|
status,
|
|
110
110
|
stdout,
|
|
111
111
|
stderr
|
|
@@ -133,7 +133,7 @@ async function writeMacOS(service, account, value, label) {
|
|
|
133
133
|
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
134
|
}
|
|
135
135
|
function writeMacOSSync(service, account, value, label) {
|
|
136
|
-
const r = (0,
|
|
136
|
+
const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECURITY_BIN, [
|
|
137
137
|
"add-generic-password",
|
|
138
138
|
"-U",
|
|
139
139
|
"-A",
|
package/dist/secrets/rc.d.ts
CHANGED
|
@@ -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:
|
package/dist/secrets/rc.js
CHANGED
|
@@ -10,6 +10,7 @@ let node_fs = require("node:fs");
|
|
|
10
10
|
let node_path = require("node:path");
|
|
11
11
|
node_path = require_runtime.__toESM(node_path);
|
|
12
12
|
let node_os = require("node:os");
|
|
13
|
+
node_os = require_runtime.__toESM(node_os);
|
|
13
14
|
let node_process = require("node:process");
|
|
14
15
|
node_process = require_runtime.__toESM(node_process);
|
|
15
16
|
|
|
@@ -72,13 +73,14 @@ function buildBlock(opts) {
|
|
|
72
73
|
* no block was present.
|
|
73
74
|
*/
|
|
74
75
|
function clear(service, legacySentinels = []) {
|
|
75
|
-
if (
|
|
76
|
+
if (node_os.default.platform() !== "darwin") return false;
|
|
76
77
|
const rcPath = pickRcFile();
|
|
77
78
|
if (!rcPath || !(0, node_fs.existsSync)(rcPath)) return false;
|
|
78
79
|
let existing = (0, node_fs.readFileSync)(rcPath, "utf8");
|
|
79
80
|
let removedAny = false;
|
|
80
81
|
const sentinelsToStrip = [`# BEGIN ${service} env (managed)`, ...legacySentinels];
|
|
81
|
-
for (
|
|
82
|
+
for (let i = 0, { length } = sentinelsToStrip; i < length; i += 1) {
|
|
83
|
+
const begin = sentinelsToStrip[i];
|
|
82
84
|
const end = begin.replace(/\bBEGIN\b/, "END");
|
|
83
85
|
const endStripped = end.replace(/\s*\(managed\)\s*$/, "");
|
|
84
86
|
const endAlt = end === endStripped ? escapeRegExp(end) : `(?:${escapeRegExp(end)}|${escapeRegExp(endStripped)})`;
|
|
@@ -96,7 +98,7 @@ function escapeRegExp(s) {
|
|
|
96
98
|
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
97
99
|
}
|
|
98
100
|
function pickRcFile(shellOverride) {
|
|
99
|
-
const home =
|
|
101
|
+
const home = require_env_home.getHome();
|
|
100
102
|
if (!home) return;
|
|
101
103
|
const shellPath = node_process.default.env["SHELL"] ?? "";
|
|
102
104
|
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);
|
|
@@ -133,7 +135,7 @@ function shellSingleQuote(value) {
|
|
|
133
135
|
* dotfile-manager users or installers running under a non-default shell.
|
|
134
136
|
*/
|
|
135
137
|
function write(opts) {
|
|
136
|
-
if (
|
|
138
|
+
if (node_os.default.platform() !== "darwin") return {
|
|
137
139
|
rcPath: void 0,
|
|
138
140
|
outcome: "skipped",
|
|
139
141
|
reason: "unsupported-platform"
|
|
@@ -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,35 @@ 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) {
|
|
19
20
|
return (await require_secrets_find.resolve({
|
|
20
|
-
service:
|
|
21
|
+
service: SOCKET_SERVICE,
|
|
22
|
+
accounts: TOKEN_ACCOUNTS,
|
|
23
|
+
allowEnvOnly: options?.allowEnvOnly
|
|
24
|
+
}) ?? await require_secrets_find.resolve({
|
|
25
|
+
service: SOCKET_SERVICE_LEGACY,
|
|
21
26
|
accounts: TOKEN_ACCOUNTS,
|
|
22
27
|
allowEnvOnly: options?.allowEnvOnly
|
|
23
28
|
}))?.value;
|
|
24
29
|
}
|
|
25
30
|
function readSocketApiTokenSync(options) {
|
|
26
|
-
return require_secrets_find.resolveSync({
|
|
27
|
-
service:
|
|
31
|
+
return (require_secrets_find.resolveSync({
|
|
32
|
+
service: SOCKET_SERVICE,
|
|
28
33
|
accounts: TOKEN_ACCOUNTS,
|
|
29
34
|
allowEnvOnly: options?.allowEnvOnly
|
|
30
|
-
})
|
|
35
|
+
}) ?? require_secrets_find.resolveSync({
|
|
36
|
+
service: SOCKET_SERVICE_LEGACY,
|
|
37
|
+
accounts: TOKEN_ACCOUNTS,
|
|
38
|
+
allowEnvOnly: options?.allowEnvOnly
|
|
39
|
+
}))?.value;
|
|
31
40
|
}
|
|
32
41
|
|
|
33
42
|
//#endregion
|
package/dist/secrets/windows.js
CHANGED
|
@@ -9,9 +9,10 @@ let node_fs = require("node:fs");
|
|
|
9
9
|
let node_path = require("node:path");
|
|
10
10
|
node_path = require_runtime.__toESM(node_path);
|
|
11
11
|
let node_os = require("node:os");
|
|
12
|
+
node_os = require_runtime.__toESM(node_os);
|
|
12
13
|
let node_process = require("node:process");
|
|
13
14
|
node_process = require_runtime.__toESM(node_process);
|
|
14
|
-
let
|
|
15
|
+
let _socketsecurity_lib_stable_process_spawn_child = require("@socketsecurity/lib-stable/process/spawn/child");
|
|
15
16
|
|
|
16
17
|
//#region src/secrets/windows.ts
|
|
17
18
|
/**
|
|
@@ -66,11 +67,11 @@ function deleteWindowsSync(service, account) {
|
|
|
66
67
|
function getDpapiFilePath(service, account) {
|
|
67
68
|
validateKeychainComponent(service, "service");
|
|
68
69
|
validateKeychainComponent(account, "account");
|
|
69
|
-
const appData = node_process.default.env["APPDATA"] ?? node_path.default.join(
|
|
70
|
+
const appData = node_process.default.env["APPDATA"] ?? node_path.default.join(node_os.default.homedir(), "AppData", "Roaming");
|
|
70
71
|
return node_path.default.join(appData, service, `${account}.enc`);
|
|
71
72
|
}
|
|
72
73
|
function isWindowsBackendAvailable() {
|
|
73
|
-
return (0,
|
|
74
|
+
return (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(POWERSHELL_BIN, [
|
|
74
75
|
"-NoProfile",
|
|
75
76
|
"-Command",
|
|
76
77
|
"exit 0"
|
|
@@ -129,7 +130,7 @@ function readWindowsSync(service, account) {
|
|
|
129
130
|
}
|
|
130
131
|
function runPsAsync(script, input) {
|
|
131
132
|
return new require_primordials_promise.PromiseCtor((resolve) => {
|
|
132
|
-
const
|
|
133
|
+
const { process: cp } = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(POWERSHELL_BIN, [
|
|
133
134
|
"-NoProfile",
|
|
134
135
|
"-Command",
|
|
135
136
|
script
|
|
@@ -140,30 +141,30 @@ function runPsAsync(script, input) {
|
|
|
140
141
|
] });
|
|
141
142
|
let stdout = "";
|
|
142
143
|
let stderr = "";
|
|
143
|
-
|
|
144
|
-
|
|
144
|
+
cp.stdout.setEncoding("utf8");
|
|
145
|
+
cp.stdout.on("data", (chunk) => {
|
|
145
146
|
stdout += chunk;
|
|
146
147
|
});
|
|
147
|
-
|
|
148
|
-
|
|
148
|
+
cp.stderr.setEncoding("utf8");
|
|
149
|
+
cp.stderr.on("data", (chunk) => {
|
|
149
150
|
stderr += chunk;
|
|
150
151
|
});
|
|
151
|
-
|
|
152
|
+
cp.on("error", () => resolve({
|
|
152
153
|
status: -1,
|
|
153
154
|
stdout,
|
|
154
155
|
stderr
|
|
155
156
|
}));
|
|
156
|
-
|
|
157
|
+
cp.on("close", (status) => resolve({
|
|
157
158
|
status,
|
|
158
159
|
stdout,
|
|
159
160
|
stderr
|
|
160
161
|
}));
|
|
161
|
-
if (input !== void 0)
|
|
162
|
-
else
|
|
162
|
+
if (input !== void 0) cp.stdin.end(input);
|
|
163
|
+
else cp.stdin.end();
|
|
163
164
|
});
|
|
164
165
|
}
|
|
165
166
|
function runPsSync(script, input) {
|
|
166
|
-
const r = (0,
|
|
167
|
+
const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(POWERSHELL_BIN, [
|
|
167
168
|
"-NoProfile",
|
|
168
169
|
"-Command",
|
|
169
170
|
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/smol/detect.js
CHANGED
|
@@ -27,26 +27,25 @@ const require_node_module = require('../node/module.js');
|
|
|
27
27
|
/**
|
|
28
28
|
* Cached smol-binary detection result.
|
|
29
29
|
*/
|
|
30
|
-
let
|
|
30
|
+
let isSmolCache;
|
|
31
31
|
/**
|
|
32
32
|
* Cached `node:smol-util` binding. `null` = probed and unavailable; `undefined`
|
|
33
33
|
* = not yet probed. JS truthiness collapses both to "no binding" at the call
|
|
34
34
|
* site.
|
|
35
35
|
*/
|
|
36
|
-
let
|
|
37
|
-
let
|
|
36
|
+
let smolUtilCache;
|
|
37
|
+
let smolUtilProbed = false;
|
|
38
38
|
/**
|
|
39
39
|
* Returns `node:smol-util` when running on the smol Node binary, otherwise
|
|
40
40
|
* `undefined`. Result is cached across calls.
|
|
41
41
|
*/
|
|
42
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
43
42
|
function getSmolUtil() {
|
|
44
|
-
if (!
|
|
45
|
-
|
|
43
|
+
if (!smolUtilProbed) {
|
|
44
|
+
smolUtilProbed = true;
|
|
46
45
|
/* c8 ignore start - smol Node binary only. */
|
|
47
|
-
if (
|
|
46
|
+
if (require_node_module.isNodeBuiltin("node:smol-util")) smolUtilCache = require("node:smol-util");
|
|
48
47
|
}
|
|
49
|
-
return
|
|
48
|
+
return smolUtilCache;
|
|
50
49
|
}
|
|
51
50
|
/**
|
|
52
51
|
* Detect if the current process is running on socket-btm's smol Node binary.
|
|
@@ -66,8 +65,8 @@ function getSmolUtil() {
|
|
|
66
65
|
* ```
|
|
67
66
|
*/
|
|
68
67
|
function isSmol() {
|
|
69
|
-
if (
|
|
70
|
-
return
|
|
68
|
+
if (isSmolCache === void 0) isSmolCache = require_node_module.isNodeBuiltin("node:smol-util");
|
|
69
|
+
return isSmolCache;
|
|
71
70
|
}
|
|
72
71
|
|
|
73
72
|
//#endregion
|
package/dist/smol/http.js
CHANGED
|
@@ -18,20 +18,19 @@ const require_node_module = require('../node/module.js');
|
|
|
18
18
|
* `httpText` exports, which already route through this when smol
|
|
19
19
|
* is present.
|
|
20
20
|
*/
|
|
21
|
-
let
|
|
22
|
-
let
|
|
21
|
+
let smolHttpBinding;
|
|
22
|
+
let smolHttpProbed = false;
|
|
23
23
|
/**
|
|
24
24
|
* Returns `node:smol-http` when running on the smol Node binary, otherwise
|
|
25
25
|
* `undefined`. Result is cached across calls.
|
|
26
26
|
*/
|
|
27
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
28
27
|
function getSmolHttp() {
|
|
29
|
-
if (!
|
|
30
|
-
|
|
28
|
+
if (!smolHttpProbed) {
|
|
29
|
+
smolHttpProbed = true;
|
|
31
30
|
/* c8 ignore start - smol Node binary only. */
|
|
32
|
-
if (
|
|
31
|
+
if (require_node_module.isNodeBuiltin("node:smol-http")) smolHttpBinding = require("node:smol-http");
|
|
33
32
|
}
|
|
34
|
-
return
|
|
33
|
+
return smolHttpBinding;
|
|
35
34
|
}
|
|
36
35
|
|
|
37
36
|
//#endregion
|
package/dist/smol/https.js
CHANGED
|
@@ -16,20 +16,19 @@ const require_node_module = require('../node/module.js');
|
|
|
16
16
|
* callers should use the standard server-side helpers, which
|
|
17
17
|
* route through this when smol is present.
|
|
18
18
|
*/
|
|
19
|
-
let
|
|
20
|
-
let
|
|
19
|
+
let smolHttps;
|
|
20
|
+
let smolHttpsProbed = false;
|
|
21
21
|
/**
|
|
22
22
|
* Returns `node:smol-https` when running on the smol Node binary, otherwise
|
|
23
23
|
* `undefined`. Result is cached across calls.
|
|
24
24
|
*/
|
|
25
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
26
25
|
function getSmolHttps() {
|
|
27
|
-
if (!
|
|
28
|
-
|
|
26
|
+
if (!smolHttpsProbed) {
|
|
27
|
+
smolHttpsProbed = true;
|
|
29
28
|
/* c8 ignore start - smol Node binary only. */
|
|
30
|
-
if (
|
|
29
|
+
if (require_node_module.isNodeBuiltin("node:smol-https")) smolHttps = require("node:smol-https");
|
|
31
30
|
}
|
|
32
|
-
return
|
|
31
|
+
return smolHttps;
|
|
33
32
|
}
|
|
34
33
|
|
|
35
34
|
//#endregion
|
package/dist/smol/manifest.d.ts
CHANGED
|
@@ -83,7 +83,7 @@ export interface ParsedLockfile {
|
|
|
83
83
|
export interface FormatDescriptor {
|
|
84
84
|
readonly ecosystem: EcosystemString;
|
|
85
85
|
readonly type: 'manifest' | 'lockfile';
|
|
86
|
-
readonly format?: 'npm' | 'yarn' | 'pnpm' | 'composer' | 'cargo';
|
|
86
|
+
readonly format?: 'npm' | 'yarn' | 'pnpm' | 'composer' | 'cargo' | undefined;
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
89
|
* Supported-files index returned by `supportedFiles`.
|