@socketsecurity/lib 6.0.5 → 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 +43 -0
- package/dist/ai/discover.d.mts +2 -2
- package/dist/ai/discover.js +6 -4
- package/dist/ai/spawn.js +10 -6
- package/dist/ai/types.d.mts +18 -6
- package/dist/ai/worktree.d.mts +6 -6
- package/dist/ai/worktree.js +12 -7
- 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 +4 -6
- 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/acorn-bindgen.cjs +769 -0
- package/dist/bin/acorn.wasm +0 -0
- package/dist/bin/exec.js +2 -3
- package/dist/bin/find.js +13 -13
- package/dist/bin/prim.cjs +39244 -0
- 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 +56 -52
- package/dist/{bin → cli}/check.js +6 -5
- 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 +20 -19
- package/dist/compression/brotli.d.ts +25 -25
- package/dist/compression/brotli.js +37 -44
- package/dist/compression/gzip.d.ts +23 -23
- package/dist/compression/gzip.js +44 -52
- 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 +14 -13
- 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 -166
- 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/@sinclair/typebox/value.js +5 -1
- package/dist/external/@sinclair/typebox.js +5 -1
- package/dist/external/@socketregistry/packageurl-js.js +27 -0
- 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/resolve.js +2 -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/resolve.js +2 -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/from-pip-venv.d.ts +73 -0
- package/dist/external-tools/from-pip-venv.js +98 -0
- package/dist/external-tools/janus/asset-names.js +1 -1
- package/dist/external-tools/janus/from-download.js +3 -5
- package/dist/external-tools/janus/from-vfs.js +1 -1
- package/dist/external-tools/janus/resolve.js +2 -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-download.js +2 -1
- package/dist/external-tools/jre/from-vfs.js +1 -1
- package/dist/external-tools/jre/resolve.js +2 -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 +18 -16
- package/dist/external-tools/opengrep/from-vfs.js +1 -1
- package/dist/external-tools/opengrep/resolve.js +2 -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/resolve.js +2 -1
- package/dist/external-tools/sbt/types.d.ts +1 -1
- package/dist/external-tools/skillspector/from-dlx.d.ts +24 -0
- package/dist/external-tools/skillspector/from-dlx.js +41 -0
- package/dist/external-tools/skillspector/from-path.d.ts +8 -0
- package/dist/external-tools/skillspector/from-path.js +30 -0
- package/dist/external-tools/skillspector/from-vfs.d.ts +8 -0
- package/dist/external-tools/skillspector/from-vfs.js +27 -0
- package/dist/external-tools/skillspector/resolve.d.ts +34 -0
- package/dist/external-tools/skillspector/resolve.js +53 -0
- package/dist/external-tools/skillspector/types.d.ts +24 -0
- package/dist/external-tools/skillspector/types.js +2 -0
- package/dist/external-tools/synp/from-download.js +2 -2
- package/dist/external-tools/synp/from-vfs.js +1 -1
- package/dist/external-tools/synp/resolve.js +2 -1
- package/dist/external-tools/trivy/from-vfs.js +1 -1
- package/dist/external-tools/trivy/resolve.js +2 -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/resolve.js +2 -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 +12 -11
- 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 +6 -7
- 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 +21 -13
- 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 +4 -4
- package/dist/http-request/headers.d.ts +32 -3
- package/dist/http-request/headers.js +41 -13
- package/dist/http-request/request-attempt.js +38 -33
- package/dist/http-request/request-types.d.ts +7 -2
- package/dist/http-request/request.js +33 -16
- package/dist/http-request/response-reader.d.ts +12 -1
- package/dist/http-request/response-reader.js +22 -2
- 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.d.ts +6 -0
- package/dist/packages/provenance.js +25 -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 +6 -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 +12 -16
- 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 +5 -4
- package/dist/secrets/compare.d.ts +45 -0
- package/dist/secrets/compare.js +61 -0
- package/dist/secrets/keychain.js +9 -6
- package/dist/secrets/linux.js +25 -23
- package/dist/secrets/macos.d.ts +1 -1
- package/dist/secrets/macos.js +18 -16
- package/dist/secrets/rc.d.ts +2 -2
- package/dist/secrets/rc.js +15 -10
- package/dist/secrets/socket-api-token.d.ts +4 -4
- package/dist/secrets/socket-api-token.js +18 -9
- package/dist/secrets/windows.js +21 -17
- package/dist/shadow/skip.js +2 -2
- package/dist/shell/parse.d.ts +108 -1
- package/dist/shell/parse.js +168 -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 +4 -2
- package/dist/temporal/slots.js +7 -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.d.ts +24 -2
- package/dist/words/pluralize.js +47 -2
- package/dist/words/types.d.ts +25 -2
- package/package.json +289 -108
- 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 -52
- 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,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_runtime = require('../_virtual/_rolldown/runtime.js');
|
|
5
|
+
const require_bin_which = require('../bin/which.js');
|
|
6
|
+
const require_process_spawn_child = require('../process/spawn/child.js');
|
|
7
|
+
const require_fs_safe = require('../fs/safe.js');
|
|
8
|
+
let node_fs = require("node:fs");
|
|
9
|
+
let node_path = require("node:path");
|
|
10
|
+
node_path = require_runtime.__toESM(node_path);
|
|
11
|
+
let node_process = require("node:process");
|
|
12
|
+
node_process = require_runtime.__toESM(node_process);
|
|
13
|
+
|
|
14
|
+
//#region src/external-tools/from-pip-venv.ts
|
|
15
|
+
/**
|
|
16
|
+
* @file Generic "venv-install tier" for external-tools resolvers. Parallel to
|
|
17
|
+
* `from-download.ts` — that one handles single-binary tools downloaded as
|
|
18
|
+
* GitHub release assets; this one handles Python packages installed into a
|
|
19
|
+
* single-purpose venv. Per-tool resolvers (skillspector, future Python CLIs)
|
|
20
|
+
* compose their fourth tier on top of these helpers. Two helpers:
|
|
21
|
+
*
|
|
22
|
+
* - `createPipVenv` — `python -m venv <cacheDir>` + `pip install <spec>`.
|
|
23
|
+
* Idempotent: hits the existing venv when its entry-point already exists.
|
|
24
|
+
* Stops at "venv created, entry-point present."
|
|
25
|
+
* - `findPython` — locates `python3` (or `python` on Windows) on PATH. Returns
|
|
26
|
+
* the absolute path or `undefined` when no Python is available. What this
|
|
27
|
+
* does NOT do:
|
|
28
|
+
* - Decide where the venv lives. The caller picks the cache dir (typically
|
|
29
|
+
* under `getSocketDlxDir()`); we just create the venv there.
|
|
30
|
+
* - Verify package integrity beyond pip's own wheel-hash mechanism. Pinning is
|
|
31
|
+
* the caller's responsibility: pass exact-version `<pkg>==<ver>` or git-SHA
|
|
32
|
+
* `git+...@<sha>`.
|
|
33
|
+
* - Re-resolve when the cache is stale. The cache key is derived by the caller
|
|
34
|
+
* from the install spec; a re-pin produces a new dir.
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* Create (or reuse) a venv at `cacheDir` and pip-install `installSpec` into it.
|
|
38
|
+
* Returns the entry-point path + a `created` flag. Throws when:
|
|
39
|
+
*
|
|
40
|
+
* - No Python interpreter is on PATH (and none was passed via `python`).
|
|
41
|
+
* - `python -m venv` fails.
|
|
42
|
+
* - `pip install` fails.
|
|
43
|
+
* - The install succeeded but the entry-point was not created (caller passed a
|
|
44
|
+
* wrong `entryPoint` name, or the package has no console script).
|
|
45
|
+
*/
|
|
46
|
+
async function createPipVenv(opts) {
|
|
47
|
+
const { cacheDir, entryPoint, installSpec } = opts;
|
|
48
|
+
const entryBin = pipVenvEntryPointPath(cacheDir, entryPoint);
|
|
49
|
+
if ((0, node_fs.existsSync)(entryBin)) return {
|
|
50
|
+
entryPointPath: entryBin,
|
|
51
|
+
created: false
|
|
52
|
+
};
|
|
53
|
+
const python = opts.python ?? await findPython();
|
|
54
|
+
if (!python) throw new Error("createPipVenv: no Python interpreter on PATH (looked for python3, python)");
|
|
55
|
+
await require_fs_safe.safeMkdir(node_path.default.dirname(cacheDir), { recursive: true });
|
|
56
|
+
await require_process_spawn_child.spawn(python, [
|
|
57
|
+
"-m",
|
|
58
|
+
"venv",
|
|
59
|
+
"--clear",
|
|
60
|
+
cacheDir
|
|
61
|
+
], { stdio: "pipe" });
|
|
62
|
+
const venvPython = pipVenvEntryPointPath(cacheDir, "python");
|
|
63
|
+
if (!(0, node_fs.existsSync)(venvPython)) throw new Error(`createPipVenv: venv created at ${cacheDir} but ${venvPython} is missing`);
|
|
64
|
+
await require_process_spawn_child.spawn(venvPython, [
|
|
65
|
+
"-m",
|
|
66
|
+
"pip",
|
|
67
|
+
"install",
|
|
68
|
+
"--no-input",
|
|
69
|
+
"--disable-pip-version-check",
|
|
70
|
+
installSpec
|
|
71
|
+
], { stdio: "pipe" });
|
|
72
|
+
if (!(0, node_fs.existsSync)(entryBin)) throw new Error(`createPipVenv: pip install ${installSpec} succeeded but entry-point ${entryPoint} was not created at ${entryBin}`);
|
|
73
|
+
return {
|
|
74
|
+
entryPointPath: entryBin,
|
|
75
|
+
created: true
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Locate a Python interpreter. Prefer `python3` on macOS/Linux, fall back to
|
|
80
|
+
* `python` (the Windows convention). Returns `undefined` when neither is on
|
|
81
|
+
* PATH.
|
|
82
|
+
*/
|
|
83
|
+
async function findPython() {
|
|
84
|
+
const candidates = node_process.default.platform === "win32" ? ["python", "python3"] : ["python3", "python"];
|
|
85
|
+
for (let i = 0, { length } = candidates; i < length; i += 1) {
|
|
86
|
+
const found = await require_bin_which.which(candidates[i], { nothrow: true });
|
|
87
|
+
if (typeof found === "string") return found;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function pipVenvEntryPointPath(venvDir, entryPoint) {
|
|
91
|
+
if (node_process.default.platform === "win32") return node_path.default.join(venvDir, "Scripts", `${entryPoint}.exe`);
|
|
92
|
+
return node_path.default.join(venvDir, "bin", entryPoint);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
//#endregion
|
|
96
|
+
exports.createPipVenv = createPipVenv;
|
|
97
|
+
exports.findPython = findPython;
|
|
98
|
+
exports.pipVenvEntryPointPath = pipVenvEntryPointPath;
|
|
@@ -26,7 +26,7 @@ const JANUS_ASSET_MAP = require_primordials_object.ObjectFreeze({
|
|
|
26
26
|
* supported set. Use this from `from-download.ts` to throw a helpful error
|
|
27
27
|
* rather than letting the URL builder silently return undefined.
|
|
28
28
|
*/
|
|
29
|
-
const JANUS_SUPPORTED_PLATFORM_ARCHES = require_primordials_object.ObjectFreeze(
|
|
29
|
+
const JANUS_SUPPORTED_PLATFORM_ARCHES = require_primordials_object.ObjectFreeze(require_primordials_object.ObjectKeys(JANUS_ASSET_MAP));
|
|
30
30
|
function getJanusAssetEntry(platformArch) {
|
|
31
31
|
return JANUS_ASSET_MAP[platformArch];
|
|
32
32
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
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_error = require('../../primordials/error.js');
|
|
5
6
|
const require_paths_socket = require('../../paths/socket.js');
|
|
6
7
|
const require_external_tools_from_download = require('../from-download.js');
|
|
7
8
|
const require_external_tools_janus_asset_names = require('./asset-names.js');
|
|
@@ -20,15 +21,12 @@ node_path = require_runtime.__toESM(node_path);
|
|
|
20
21
|
*/
|
|
21
22
|
async function janusFromDownload(opts) {
|
|
22
23
|
const { cacheDir, downloader, integrity, platformArch, version } = opts;
|
|
23
|
-
if (!require_external_tools_janus_asset_names.JANUS_SUPPORTED_PLATFORM_ARCHES.includes(platformArch)) {
|
|
24
|
-
const supported = require_external_tools_janus_asset_names.JANUS_SUPPORTED_PLATFORM_ARCHES.map((p) => `\`${p}\``).join(", ");
|
|
25
|
-
throw new Error(`janusFromDownload: platformArch must be one of [${supported}], got \`${platformArch}\`. Upstream janus only publishes the macOS arm64 build (see https://github.com/divmain/janus/releases); request \`darwin-arm64\` or use a different tool for other platforms.`);
|
|
26
|
-
}
|
|
24
|
+
if (!require_external_tools_janus_asset_names.JANUS_SUPPORTED_PLATFORM_ARCHES.includes(platformArch)) throw new require_primordials_error.ErrorCtor(`janusFromDownload: platformArch must be one of [${require_external_tools_janus_asset_names.JANUS_SUPPORTED_PLATFORM_ARCHES.map((p) => `\`${p}\``).join(", ")}], got \`${platformArch}\`. Upstream janus only publishes the macOS arm64 build (see https://github.com/divmain/janus/releases); request \`darwin-arm64\` or use a different tool for other platforms.`);
|
|
27
25
|
const url = require_external_tools_janus_asset_names.getJanusDownloadUrl({
|
|
28
26
|
version,
|
|
29
27
|
platformArch
|
|
30
28
|
});
|
|
31
|
-
if (!url) throw new
|
|
29
|
+
if (!url) throw new require_primordials_error.ErrorCtor(`janusFromDownload: no upstream asset for janus@${version} on \`${platformArch}\`. The platform is in the supported set but the version may be missing; check https://github.com/divmain/janus/releases/tag/v${version}.`);
|
|
32
30
|
const extractedDir = cacheDir ?? node_path.default.join(require_paths_socket.getSocketWheelhouseDir(), "janus", version, platformArch);
|
|
33
31
|
const archive = await require_external_tools_from_download.downloadAndExtractTool({
|
|
34
32
|
url,
|
|
@@ -10,7 +10,7 @@ const require_smol_vfs = require('../../smol/vfs.js');
|
|
|
10
10
|
*/
|
|
11
11
|
const JANUS_VFS_KEY = "janus";
|
|
12
12
|
async function janusFromVfs() {
|
|
13
|
-
const vfs =
|
|
13
|
+
const vfs = require_smol_vfs.getSmolVfs();
|
|
14
14
|
if (!vfs) return;
|
|
15
15
|
/* c8 ignore start - smol Node binary only. */
|
|
16
16
|
if (!vfs.has("janus")) return;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* Socket Lib - Built with rolldown */
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_primordials_map_set = require('../../primordials/map-set.js');
|
|
4
5
|
const require_external_tools_janus_from_download = require('./from-download.js');
|
|
5
6
|
const require_external_tools_janus_from_path = require('./from-path.js');
|
|
6
7
|
const require_external_tools_janus_from_vfs = require('./from-vfs.js');
|
|
@@ -18,7 +19,7 @@ const require_external_tools_janus_from_vfs = require('./from-vfs.js');
|
|
|
18
19
|
* platform-arch isn't shipped by upstream janus (currently darwin-arm64
|
|
19
20
|
* only). Memoized per option-shape.
|
|
20
21
|
*/
|
|
21
|
-
const resolutionCache =
|
|
22
|
+
const resolutionCache = new require_primordials_map_set.MapCtor();
|
|
22
23
|
function cacheKey(opts) {
|
|
23
24
|
if (!opts?.downloadIfMissing) return "local-only";
|
|
24
25
|
const { cacheDir, integrity, platformArch, version } = opts.downloadIfMissing;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @file `
|
|
3
|
-
*
|
|
4
|
-
* `
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* @file `getJreArch()` — resolves the current machine to a `platform-arch`
|
|
3
|
+
* string suitable for the Adoptium `ADOPTIUM_QUERY_MAP` keys (e.g.
|
|
4
|
+
* `darwin-arm64`, `linux-x64-musl`, `win-x64`). Self-contained: owns the
|
|
5
|
+
* Adoptium vocabulary end to end (Node's `win32` → `win`, an Alpine `-musl`
|
|
6
|
+
* suffix on Linux) rather than reusing the shared `getPlatformArch` /
|
|
7
|
+
* `detectLibc` — Adoptium ships a distinct `alpine-linux` channel, so the JRE
|
|
8
|
+
* key set differs from both the release-binary naming and
|
|
9
|
+
* python-build-standalone (see `getPythonArch`). Returns `undefined` on an
|
|
10
|
+
* unsupported platform/arch.
|
|
7
11
|
*/
|
|
8
|
-
export declare function
|
|
12
|
+
export declare function getJreArch(): string | undefined;
|
|
@@ -2,27 +2,42 @@
|
|
|
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
|
|
5
|
+
const require_constants_platform = require('../../constants/platform.js');
|
|
6
|
+
const require_primordials_object = require('../../primordials/object.js');
|
|
6
7
|
let node_process = require("node:process");
|
|
7
8
|
node_process = require_runtime.__toESM(node_process);
|
|
8
9
|
|
|
9
10
|
//#region src/external-tools/jre/detect-platform-arch.ts
|
|
10
11
|
/**
|
|
11
|
-
* @file `
|
|
12
|
-
*
|
|
13
|
-
* `
|
|
14
|
-
*
|
|
15
|
-
*
|
|
12
|
+
* @file `getJreArch()` — resolves the current machine to a `platform-arch`
|
|
13
|
+
* string suitable for the Adoptium `ADOPTIUM_QUERY_MAP` keys (e.g.
|
|
14
|
+
* `darwin-arm64`, `linux-x64-musl`, `win-x64`). Self-contained: owns the
|
|
15
|
+
* Adoptium vocabulary end to end (Node's `win32` → `win`, an Alpine `-musl`
|
|
16
|
+
* suffix on Linux) rather than reusing the shared `getPlatformArch` /
|
|
17
|
+
* `detectLibc` — Adoptium ships a distinct `alpine-linux` channel, so the JRE
|
|
18
|
+
* key set differs from both the release-binary naming and
|
|
19
|
+
* python-build-standalone (see `getPythonArch`). Returns `undefined` on an
|
|
20
|
+
* unsupported platform/arch.
|
|
16
21
|
*/
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
const NODE_PLATFORM_TO_JRE = require_primordials_object.ObjectFreeze({
|
|
23
|
+
__proto__: null,
|
|
24
|
+
darwin: "darwin",
|
|
25
|
+
linux: "linux",
|
|
26
|
+
win32: "win"
|
|
27
|
+
});
|
|
28
|
+
const NODE_ARCH_TO_JRE = require_primordials_object.ObjectFreeze({
|
|
29
|
+
__proto__: null,
|
|
30
|
+
arm64: "arm64",
|
|
31
|
+
x64: "x64"
|
|
32
|
+
});
|
|
33
|
+
function getJreArch() {
|
|
34
|
+
/* c8 ignore start - depends on process.platform/arch + libc probe. */
|
|
35
|
+
const platform = NODE_PLATFORM_TO_JRE[node_process.default.platform];
|
|
36
|
+
const arch = NODE_ARCH_TO_JRE[node_process.default.arch];
|
|
37
|
+
if (!platform || !arch) return;
|
|
38
|
+
return `${platform}-${arch}${platform === "linux" && require_constants_platform.getLibc() === "musl" ? "-musl" : ""}`;
|
|
24
39
|
/* c8 ignore stop */
|
|
25
40
|
}
|
|
26
41
|
|
|
27
42
|
//#endregion
|
|
28
|
-
exports.
|
|
43
|
+
exports.getJreArch = getJreArch;
|
|
@@ -2,6 +2,7 @@
|
|
|
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');
|
|
5
6
|
const require_paths_socket = require('../../paths/socket.js');
|
|
6
7
|
const require_external_tools_from_download = require('../from-download.js');
|
|
7
8
|
const require_external_tools_jre_asset_names = require('./asset-names.js');
|
|
@@ -53,7 +54,7 @@ async function jreFromDownload(opts) {
|
|
|
53
54
|
const extractedDir = cacheDir ?? node_path.default.join(require_paths_socket.getSocketDlxDir(), "jre", String(version), platformArch);
|
|
54
55
|
const archive = await require_external_tools_from_download.downloadAndExtractTool({
|
|
55
56
|
url,
|
|
56
|
-
name: `adoptium-jre-${version}-${platformArch}${
|
|
57
|
+
name: `adoptium-jre-${version}-${platformArch}${require_primordials_string.StringPrototypeStartsWith(platformArch, "win-") ? ".zip" : ".tar.gz"}`,
|
|
57
58
|
integrity,
|
|
58
59
|
extractedDir,
|
|
59
60
|
extractOptions: { strip: 1 },
|
|
@@ -25,7 +25,7 @@ node_process = require_runtime.__toESM(node_process);
|
|
|
25
25
|
*/
|
|
26
26
|
const JRE_VFS_KEY = "jre";
|
|
27
27
|
async function jreFromVfs() {
|
|
28
|
-
const vfs =
|
|
28
|
+
const vfs = require_smol_vfs.getSmolVfs();
|
|
29
29
|
if (!vfs) return;
|
|
30
30
|
/* c8 ignore start - smol Node binary only. */
|
|
31
31
|
if (!vfs.has("jre")) return;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* Socket Lib - Built with rolldown */
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_primordials_map_set = require('../../primordials/map-set.js');
|
|
4
5
|
const require_external_tools_jre_from_download = require('./from-download.js');
|
|
5
6
|
const require_external_tools_jre_from_java_home = require('./from-java-home.js');
|
|
6
7
|
const require_external_tools_jre_from_path = require('./from-path.js');
|
|
@@ -26,7 +27,7 @@ const require_external_tools_jre_from_vfs = require('./from-vfs.js');
|
|
|
26
27
|
* `resetJreResolution()` clears the cache so tests can exercise the
|
|
27
28
|
* resolver fresh.
|
|
28
29
|
*/
|
|
29
|
-
const resolutionCache =
|
|
30
|
+
const resolutionCache = new require_primordials_map_set.MapCtor();
|
|
30
31
|
function cacheKey(opts) {
|
|
31
32
|
if (!opts?.downloadIfMissing) return "local-only";
|
|
32
33
|
const { cacheDir, integrity, platformArch, version } = opts.downloadIfMissing;
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
* integrity-string validation. Shape: { "<tool-name>": { "description":
|
|
10
10
|
* "human-readable summary", "version": "1.7.2", "release": "asset" |
|
|
11
11
|
* "tarball" | ..., "repository": "github:owner/repo", "notes": [...],
|
|
12
|
-
* "
|
|
12
|
+
* "platforms": { "<platform-arch>": { "asset": "<asset-filename>",
|
|
13
13
|
* "integrity": "sha256-base64=" } } } } Some tools have flavor variants (e.g.
|
|
14
14
|
* sfw's `free` / `enterprise`) that wrap the `{repository, binaryName,
|
|
15
|
-
*
|
|
15
|
+
* platforms}` triple under a flavor key. Use `getToolFlavor` for those. Some
|
|
16
16
|
* entries (e.g. `rust`) describe a system tool with a different shape —
|
|
17
17
|
* they're skipped by `getTool` and fully readable only via the raw
|
|
18
18
|
* `readManifest` returning unknown.
|
|
@@ -42,7 +42,7 @@ export interface ToolChecksum {
|
|
|
42
42
|
integrity: string;
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
|
-
* A downloadable-binary tool entry. `
|
|
45
|
+
* A downloadable-binary tool entry. `platforms` is keyed by the fleet's
|
|
46
46
|
* platform-arch token (`darwin-arm64`, `linux-x64-musl`, `win-x64`, etc. — same
|
|
47
47
|
* vocabulary as `getPlatformArch`).
|
|
48
48
|
*/
|
|
@@ -53,12 +53,12 @@ export interface ToolEntry {
|
|
|
53
53
|
repository: string;
|
|
54
54
|
binaryName?: string | undefined;
|
|
55
55
|
notes?: readonly string[] | undefined;
|
|
56
|
-
|
|
56
|
+
platforms: Readonly<Record<string, ToolChecksum>>;
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
59
|
* A flavored tool entry — sfw is the canonical example, with `free` and
|
|
60
60
|
* `enterprise` variants sharing the same outer `description` / `version` /
|
|
61
|
-
* `release` but each carrying its own `{repository, binaryName,
|
|
61
|
+
* `release` but each carrying its own `{repository, binaryName, platforms}`.
|
|
62
62
|
*/
|
|
63
63
|
export interface FlavoredToolEntry {
|
|
64
64
|
description: string;
|
|
@@ -70,7 +70,7 @@ export interface FlavoredToolEntry {
|
|
|
70
70
|
export interface ToolFlavor {
|
|
71
71
|
repository: string;
|
|
72
72
|
binaryName?: string | undefined;
|
|
73
|
-
|
|
73
|
+
platforms: Readonly<Record<string, ToolChecksum>>;
|
|
74
74
|
}
|
|
75
75
|
/**
|
|
76
76
|
* Parsed manifest. `tools` is a flat map; the values are unions because some
|
|
@@ -93,7 +93,7 @@ export type ManifestEntry = {
|
|
|
93
93
|
};
|
|
94
94
|
export declare function isObject(value: unknown): value is Record<string, unknown>;
|
|
95
95
|
export declare function parseChecksum(raw: unknown, toolName: string, platformKey: string): ToolChecksum;
|
|
96
|
-
export declare function
|
|
96
|
+
export declare function parsePlatforms(raw: unknown, toolName: string): Record<string, ToolChecksum>;
|
|
97
97
|
export declare function parseToolEntry(raw: unknown, toolName: string): ManifestEntry;
|
|
98
98
|
/**
|
|
99
99
|
* Read an `external-tools.json` file from disk and return the parsed manifest.
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
const require_primordials_error = require('../primordials/error.js');
|
|
5
5
|
const require_integrity = require('../integrity.js');
|
|
6
|
+
const require_primordials_string = require('../primordials/string.js');
|
|
6
7
|
const require_primordials_array = require('../primordials/array.js');
|
|
8
|
+
const require_primordials_object = require('../primordials/object.js');
|
|
7
9
|
const require_fs_read_json = require('../fs/read-json.js');
|
|
8
10
|
|
|
9
11
|
//#region src/external-tools/manifest.ts
|
|
@@ -18,10 +20,10 @@ const require_fs_read_json = require('../fs/read-json.js');
|
|
|
18
20
|
* integrity-string validation. Shape: { "<tool-name>": { "description":
|
|
19
21
|
* "human-readable summary", "version": "1.7.2", "release": "asset" |
|
|
20
22
|
* "tarball" | ..., "repository": "github:owner/repo", "notes": [...],
|
|
21
|
-
* "
|
|
23
|
+
* "platforms": { "<platform-arch>": { "asset": "<asset-filename>",
|
|
22
24
|
* "integrity": "sha256-base64=" } } } } Some tools have flavor variants (e.g.
|
|
23
25
|
* sfw's `free` / `enterprise`) that wrap the `{repository, binaryName,
|
|
24
|
-
*
|
|
26
|
+
* platforms}` triple under a flavor key. Use `getToolFlavor` for those. Some
|
|
25
27
|
* entries (e.g. `rust`) describe a system tool with a different shape —
|
|
26
28
|
* they're skipped by `getTool` and fully readable only via the raw
|
|
27
29
|
* `readManifest` returning unknown.
|
|
@@ -50,16 +52,16 @@ function parseChecksum(raw, toolName, platformKey) {
|
|
|
50
52
|
if (!isObject(raw)) throw new require_primordials_error.ErrorCtor(`external-tools.json: tool '${toolName}' checksum entry '${platformKey}' must be an object, got: ${typeof raw}`);
|
|
51
53
|
const r = raw;
|
|
52
54
|
if (typeof r.asset !== "string" || r.asset.length === 0) throw new require_primordials_error.ErrorCtor(`external-tools.json: tool '${toolName}' platform '${platformKey}' is missing a non-empty 'asset' string`);
|
|
53
|
-
if (typeof r.integrity !== "string" || !require_integrity.
|
|
55
|
+
if (typeof r.integrity !== "string" || !require_integrity.isIntegrity(r.integrity)) throw new require_primordials_error.ErrorCtor(`external-tools.json: tool '${toolName}' platform '${platformKey}' has an invalid 'integrity' (expected SRI sha512 or sha256 form): ${r.integrity}`);
|
|
54
56
|
return {
|
|
55
57
|
asset: r.asset,
|
|
56
58
|
integrity: r.integrity
|
|
57
59
|
};
|
|
58
60
|
}
|
|
59
|
-
function
|
|
60
|
-
if (!isObject(raw)) throw new require_primordials_error.ErrorCtor(`external-tools.json: tool '${toolName}' is missing a '
|
|
61
|
+
function parsePlatforms(raw, toolName) {
|
|
62
|
+
if (!isObject(raw)) throw new require_primordials_error.ErrorCtor(`external-tools.json: tool '${toolName}' is missing a 'platforms' object`);
|
|
61
63
|
const out = {};
|
|
62
|
-
for (const platformKey of
|
|
64
|
+
for (const platformKey of require_primordials_object.ObjectKeys(raw)) out[platformKey] = parseChecksum(raw[platformKey], toolName, platformKey);
|
|
63
65
|
return out;
|
|
64
66
|
}
|
|
65
67
|
function parseToolEntry(raw, toolName) {
|
|
@@ -68,7 +70,7 @@ function parseToolEntry(raw, toolName) {
|
|
|
68
70
|
raw
|
|
69
71
|
};
|
|
70
72
|
const r = raw;
|
|
71
|
-
if (isObject(r.
|
|
73
|
+
if (isObject(r.platforms)) {
|
|
72
74
|
if (typeof r.description !== "string" || typeof r.version !== "string" || typeof r.release !== "string" || typeof r.repository !== "string") return {
|
|
73
75
|
kind: "other",
|
|
74
76
|
raw
|
|
@@ -82,7 +84,7 @@ function parseToolEntry(raw, toolName) {
|
|
|
82
84
|
repository: r.repository,
|
|
83
85
|
binaryName: typeof r.binaryName === "string" ? r.binaryName : void 0,
|
|
84
86
|
notes: require_primordials_array.ArrayIsArray(r.notes) ? r.notes : void 0,
|
|
85
|
-
|
|
87
|
+
platforms: parsePlatforms(r.platforms, toolName)
|
|
86
88
|
}
|
|
87
89
|
};
|
|
88
90
|
}
|
|
@@ -103,30 +105,30 @@ function parseToolEntry(raw, toolName) {
|
|
|
103
105
|
* callers can handle them out-of-band without blocking the manifest read.
|
|
104
106
|
*/
|
|
105
107
|
async function readExternalToolsManifest(filepath) {
|
|
106
|
-
const raw = await
|
|
108
|
+
const raw = await require_fs_read_json.readJson(filepath);
|
|
107
109
|
if (!isObject(raw)) throw new require_primordials_error.ErrorCtor(`external-tools.json: expected top-level object, got: ${typeof raw}`);
|
|
108
110
|
const tools = {};
|
|
109
|
-
for (const toolName of
|
|
110
|
-
if (
|
|
111
|
+
for (const toolName of require_primordials_object.ObjectKeys(raw)) {
|
|
112
|
+
if (require_primordials_string.StringPrototypeStartsWith(toolName, "$")) continue;
|
|
111
113
|
tools[toolName] = parseToolEntry(raw[toolName], toolName);
|
|
112
114
|
}
|
|
113
115
|
return { tools };
|
|
114
116
|
}
|
|
115
117
|
function tryParseFlavored(raw, toolName) {
|
|
116
118
|
const flavors = {};
|
|
117
|
-
for (const key of
|
|
119
|
+
for (const key of require_primordials_object.ObjectKeys(raw)) {
|
|
118
120
|
const value = raw[key];
|
|
119
121
|
if (!isObject(value)) continue;
|
|
120
122
|
const rf = value;
|
|
121
|
-
if (!isObject(rf.
|
|
123
|
+
if (!isObject(rf.platforms)) continue;
|
|
122
124
|
if (typeof rf.repository !== "string") continue;
|
|
123
125
|
flavors[key] = {
|
|
124
126
|
repository: rf.repository,
|
|
125
127
|
binaryName: typeof rf.binaryName === "string" ? rf.binaryName : void 0,
|
|
126
|
-
|
|
128
|
+
platforms: parsePlatforms(rf.platforms, `${toolName}.${key}`)
|
|
127
129
|
};
|
|
128
130
|
}
|
|
129
|
-
if (
|
|
131
|
+
if (require_primordials_object.ObjectKeys(flavors).length === 0) return;
|
|
130
132
|
return {
|
|
131
133
|
description: String(raw["description"] ?? ""),
|
|
132
134
|
version: String(raw["version"] ?? ""),
|
|
@@ -141,7 +143,7 @@ exports.getTool = getTool;
|
|
|
141
143
|
exports.getToolFlavor = getToolFlavor;
|
|
142
144
|
exports.isObject = isObject;
|
|
143
145
|
exports.parseChecksum = parseChecksum;
|
|
144
|
-
exports.
|
|
146
|
+
exports.parsePlatforms = parsePlatforms;
|
|
145
147
|
exports.parseToolEntry = parseToolEntry;
|
|
146
148
|
exports.readExternalToolsManifest = readExternalToolsManifest;
|
|
147
149
|
exports.tryParseFlavored = tryParseFlavored;
|
|
@@ -11,7 +11,7 @@ const require_smol_vfs = require('../../smol/vfs.js');
|
|
|
11
11
|
*/
|
|
12
12
|
const OPENGREP_VFS_KEY = "opengrep";
|
|
13
13
|
async function opengrepFromVfs() {
|
|
14
|
-
const vfs =
|
|
14
|
+
const vfs = require_smol_vfs.getSmolVfs();
|
|
15
15
|
if (!vfs) return;
|
|
16
16
|
/* c8 ignore start - smol Node binary only. */
|
|
17
17
|
if (!vfs.has("opengrep")) return;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* Socket Lib - Built with rolldown */
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_primordials_map_set = require('../../primordials/map-set.js');
|
|
4
5
|
const require_external_tools_opengrep_from_download = require('./from-download.js');
|
|
5
6
|
const require_external_tools_opengrep_from_path = require('./from-path.js');
|
|
6
7
|
const require_external_tools_opengrep_from_vfs = require('./from-vfs.js');
|
|
@@ -16,7 +17,7 @@ const require_external_tools_opengrep_from_vfs = require('./from-vfs.js');
|
|
|
16
17
|
* passed) Returns `undefined` if all of the enabled sources miss. Memoized
|
|
17
18
|
* per option-shape.
|
|
18
19
|
*/
|
|
19
|
-
const resolutionCache =
|
|
20
|
+
const resolutionCache = new require_primordials_map_set.MapCtor();
|
|
20
21
|
function cacheKey(opts) {
|
|
21
22
|
if (!opts?.downloadIfMissing) return "local-only";
|
|
22
23
|
const { cacheDir, integrity, platformArch, version } = opts.downloadIfMissing;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Python-build-standalone release asset mapping. Astral publishes
|
|
3
|
+
* per-platform CPython archives under
|
|
4
|
+
* https://github.com/astral-sh/python-build-standalone/releases/download/<tag>/.
|
|
5
|
+
* Asset name shape: `cpython-<version>+<tag>-<triple>-install_only.tar.gz`.
|
|
6
|
+
* The `install_only` flavor is a relocatable runtime (no build artifacts),
|
|
7
|
+
* extracted one directory deep (`python/bin/python3`).
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Python-build-standalone default pin — the fleet-canonical CPython build,
|
|
11
|
+
* matching socket-cli's `bundle-tools.json`. Consumers that don't pass their
|
|
12
|
+
* own pin resolve against this. Bump it like any dependency (soak-aware), in
|
|
13
|
+
* lockstep with socket-cli (drift-watch). The `checksums` map is keyed by asset
|
|
14
|
+
* filename so the download tier verifies the exact tarball per platform.
|
|
15
|
+
*/
|
|
16
|
+
export declare const DEFAULT_PYTHON_PIN: Readonly<{
|
|
17
|
+
__proto__: null;
|
|
18
|
+
version: "3.11.14";
|
|
19
|
+
tag: "20260203";
|
|
20
|
+
checksums: Readonly<{
|
|
21
|
+
__proto__: null;
|
|
22
|
+
'cpython-3.11.14+20260203-aarch64-apple-darwin-install_only.tar.gz': "63e3352fefd3b6494f73f46f51c6581c57a7e0d98775e6e00229d14a67ec3ce9";
|
|
23
|
+
'cpython-3.11.14+20260203-aarch64-pc-windows-msvc-install_only.tar.gz': "cb7828c131a005da367f7dba3a561bed91619452de870e531ee03344b2ac346f";
|
|
24
|
+
'cpython-3.11.14+20260203-aarch64-unknown-linux-gnu-install_only.tar.gz': "7341a5a0acd65f2c7c7a228d8bafa6561d220ffed26293d6a02c15ae2ee86af5";
|
|
25
|
+
'cpython-3.11.14+20260203-aarch64-unknown-linux-musl-install_only.tar.gz': "f0e5988c108187b12eb4d53cbac33a499a8e38e1693104432e1faabbab14c664";
|
|
26
|
+
'cpython-3.11.14+20260203-x86_64-apple-darwin-install_only.tar.gz': "f3b63051a9b1ffb4f663d928ebaec4311435cb67f3bdfa5634953df93397f25e";
|
|
27
|
+
'cpython-3.11.14+20260203-x86_64-pc-windows-msvc-install_only.tar.gz': "d220beff465bdc97bf5874be8ffbf07278e5bdf9a064cab932b5d93b542e3e86";
|
|
28
|
+
'cpython-3.11.14+20260203-x86_64-unknown-linux-gnu-install_only.tar.gz': "67abde21b6e074b58c0f738f0c4802b23827a7d49707dcaf3ed4dadf572f3f37";
|
|
29
|
+
'cpython-3.11.14+20260203-x86_64-unknown-linux-musl-install_only.tar.gz': "290de5199a9647d4de4adcf13a79a7c59f060357853bf41fd6d1a69b4b5fd00c";
|
|
30
|
+
}>;
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* Resolve the current host to a python-build-standalone `platform-arch` key (a
|
|
34
|
+
* `PLATFORM_TRIPLES` key, e.g. `darwin-arm64`, `linux-x64-musl`, `win-x64`).
|
|
35
|
+
* Owns the python-build-standalone vocabulary end to end: Node's `win32`
|
|
36
|
+
* becomes `win`, and an Alpine host gets a `-musl` suffix so it resolves to the
|
|
37
|
+
* real musl triple (upstream ships both gnu and musl Linux builds). Returns
|
|
38
|
+
* `undefined` when the host platform/arch has no upstream prebuilt.
|
|
39
|
+
*
|
|
40
|
+
* Separate from `getJreArch` (jre/Adoptium vocabulary) and from the shared
|
|
41
|
+
* `getPlatformArch` — neither matches python-build-standalone's key set.
|
|
42
|
+
*/
|
|
43
|
+
export declare function getPythonArch(): string | undefined;
|
|
44
|
+
export interface PythonAssetOptions {
|
|
45
|
+
/**
|
|
46
|
+
* CPython version, e.g. `3.11.14`.
|
|
47
|
+
*/
|
|
48
|
+
readonly version: string;
|
|
49
|
+
/**
|
|
50
|
+
* Python-build-standalone release tag, e.g. `20260203`.
|
|
51
|
+
*/
|
|
52
|
+
readonly tag: string;
|
|
53
|
+
/**
|
|
54
|
+
* Target `platform-arch`, e.g. `darwin-arm64`. Omit to auto-detect the
|
|
55
|
+
* current host via {@link getPythonArch}; pass an explicit value to resolve
|
|
56
|
+
* the asset for a different target (e.g. cross-platform packaging).
|
|
57
|
+
*/
|
|
58
|
+
readonly arch?: string | undefined;
|
|
59
|
+
}
|
|
60
|
+
export interface PythonAsset {
|
|
61
|
+
/**
|
|
62
|
+
* Full asset filename:
|
|
63
|
+
* `cpython-<version>+<tag>-<triple>-install_only.tar.gz`.
|
|
64
|
+
*/
|
|
65
|
+
readonly assetName: string;
|
|
66
|
+
/**
|
|
67
|
+
* Absolute download URL for the asset (with `+` percent-encoded as `%2B`).
|
|
68
|
+
*/
|
|
69
|
+
readonly url: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Resolve the python-build-standalone download for a version + tag + platform.
|
|
73
|
+
* Returns the asset filename and URL, or `undefined` when the platform-arch has
|
|
74
|
+
* no upstream prebuilt.
|
|
75
|
+
*/
|
|
76
|
+
export declare function pythonAsset(opts: PythonAssetOptions): PythonAsset | undefined;
|