@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
package/dist/dlx/detect.d.ts
CHANGED
|
@@ -11,36 +11,13 @@
|
|
|
11
11
|
* - DLX cache: Check for node_modules/ directory
|
|
12
12
|
* - Local paths: Check for package.json with bin field, then file extension
|
|
13
13
|
*/
|
|
14
|
-
export declare function packageJsonPathCacheSet(key: string, value: string | undefined): void;
|
|
15
14
|
export type ExecutableType = 'package' | 'binary' | 'unknown';
|
|
16
15
|
export interface ExecutableDetectionResult {
|
|
17
16
|
type: ExecutableType;
|
|
18
17
|
method: 'dlx-cache' | 'package-json' | 'file-extension';
|
|
19
|
-
packageJsonPath?: string;
|
|
20
|
-
inDlxCache?: boolean;
|
|
18
|
+
packageJsonPath?: string | undefined;
|
|
19
|
+
inDlxCache?: boolean | undefined;
|
|
21
20
|
}
|
|
22
|
-
/**
|
|
23
|
-
* Find package.json in the directory containing the file or parent directories.
|
|
24
|
-
* Results are cached to avoid repeated directory traversal.
|
|
25
|
-
*
|
|
26
|
-
* @private
|
|
27
|
-
*
|
|
28
|
-
* @param filePath - Path to search from.
|
|
29
|
-
*
|
|
30
|
-
* @returns Path to package.json if found, undefined otherwise
|
|
31
|
-
*/
|
|
32
|
-
export declare function findPackageJson(filePath: string): string | undefined;
|
|
33
|
-
/**
|
|
34
|
-
* Read and parse package.json with caching. Results are cached to avoid
|
|
35
|
-
* repeated file reads.
|
|
36
|
-
*
|
|
37
|
-
* @private
|
|
38
|
-
*
|
|
39
|
-
* @param packageJsonPath - Path to package.json.
|
|
40
|
-
*
|
|
41
|
-
* @returns Parsed package.json or null if invalid
|
|
42
|
-
*/
|
|
43
|
-
export declare function readPackageJson(packageJsonPath: string): object | undefined;
|
|
44
21
|
/**
|
|
45
22
|
* Detect executable type for paths in DLX cache. Uses filesystem structure
|
|
46
23
|
* (node_modules/ presence).
|
|
@@ -95,6 +72,17 @@ export declare function detectExecutableType(filePath: string): ExecutableDetect
|
|
|
95
72
|
* @returns Detection result
|
|
96
73
|
*/
|
|
97
74
|
export declare function detectLocalExecutableType(filePath: string): ExecutableDetectionResult;
|
|
75
|
+
/**
|
|
76
|
+
* Find package.json in the directory containing the file or parent directories.
|
|
77
|
+
* Results are cached to avoid repeated directory traversal.
|
|
78
|
+
*
|
|
79
|
+
* @private
|
|
80
|
+
*
|
|
81
|
+
* @param filePath - Path to search from.
|
|
82
|
+
*
|
|
83
|
+
* @returns Path to package.json if found, undefined otherwise
|
|
84
|
+
*/
|
|
85
|
+
export declare function findPackageJson(filePath: string): string | undefined;
|
|
98
86
|
/**
|
|
99
87
|
* Check if a file path indicates a Node.js script.
|
|
100
88
|
*
|
|
@@ -138,3 +126,24 @@ export declare function isNativeBinary(filePath: string): boolean;
|
|
|
138
126
|
* @returns True if detected as Node.js package
|
|
139
127
|
*/
|
|
140
128
|
export declare function isNodePackage(filePath: string): boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Set a package.json path cache entry, evicting the oldest when the LRU is
|
|
131
|
+
* full.
|
|
132
|
+
*
|
|
133
|
+
* @private
|
|
134
|
+
*
|
|
135
|
+
* @param key - Start directory used as the cache key.
|
|
136
|
+
* @param value - Resolved package.json path, or undefined for a negative entry.
|
|
137
|
+
*/
|
|
138
|
+
export declare function packageJsonPathCacheSet(key: string, value: string | undefined): void;
|
|
139
|
+
/**
|
|
140
|
+
* Read and parse package.json with caching. Results are cached to avoid
|
|
141
|
+
* repeated file reads.
|
|
142
|
+
*
|
|
143
|
+
* @private
|
|
144
|
+
*
|
|
145
|
+
* @param packageJsonPath - Path to package.json.
|
|
146
|
+
*
|
|
147
|
+
* @returns Parsed package.json or null if invalid
|
|
148
|
+
*/
|
|
149
|
+
export declare function readPackageJson(packageJsonPath: string): object | undefined;
|
package/dist/dlx/detect.js
CHANGED
|
@@ -8,7 +8,7 @@ const require_primordials_date = require('../primordials/date.js');
|
|
|
8
8
|
const require_primordials_json = require('../primordials/json.js');
|
|
9
9
|
const require_paths_socket = require('../paths/socket.js');
|
|
10
10
|
const require_dlx_paths = require('./paths.js');
|
|
11
|
-
const
|
|
11
|
+
const require_fs_find = require('../fs/find.js');
|
|
12
12
|
|
|
13
13
|
//#region src/dlx/detect.ts
|
|
14
14
|
/**
|
|
@@ -35,81 +35,8 @@ const NODE_JS_EXTENSIONS = new require_primordials_map_set.SetCtor([
|
|
|
35
35
|
const PACKAGE_JSON_PATH_CACHE_MAX_SIZE = 200;
|
|
36
36
|
const PACKAGE_JSON_NEGATIVE_TTL_MS = 1e4;
|
|
37
37
|
const packageJsonPathCache = new require_primordials_map_set.MapCtor();
|
|
38
|
-
function packageJsonPathCacheSet(key, value) {
|
|
39
|
-
if (packageJsonPathCache.has(key)) packageJsonPathCache.delete(key);
|
|
40
|
-
else if (packageJsonPathCache.size >= PACKAGE_JSON_PATH_CACHE_MAX_SIZE) {
|
|
41
|
-
const oldest = packageJsonPathCache.keys().next().value;
|
|
42
|
-
if (oldest !== void 0) packageJsonPathCache.delete(oldest);
|
|
43
|
-
}
|
|
44
|
-
packageJsonPathCache.set(key, {
|
|
45
|
-
path: value,
|
|
46
|
-
at: Date.now()
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
38
|
const packageJsonContentCache = new require_primordials_map_set.MapCtor();
|
|
50
39
|
/**
|
|
51
|
-
* Find package.json in the directory containing the file or parent directories.
|
|
52
|
-
* Results are cached to avoid repeated directory traversal.
|
|
53
|
-
*
|
|
54
|
-
* @private
|
|
55
|
-
*
|
|
56
|
-
* @param filePath - Path to search from.
|
|
57
|
-
*
|
|
58
|
-
* @returns Path to package.json if found, undefined otherwise
|
|
59
|
-
*/
|
|
60
|
-
function findPackageJson(filePath) {
|
|
61
|
-
const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
|
|
62
|
-
const nodePath = /* @__PURE__ */ require_node_path.getNodePath();
|
|
63
|
-
const startDir = nodePath.dirname(nodePath.resolve(filePath));
|
|
64
|
-
const cached = packageJsonPathCache.get(startDir);
|
|
65
|
-
if (cached !== void 0) if (cached.path === void 0) {
|
|
66
|
-
if (require_primordials_date.DateNow() - cached.at < PACKAGE_JSON_NEGATIVE_TTL_MS) return;
|
|
67
|
-
packageJsonPathCache.delete(startDir);
|
|
68
|
-
} else if (fs.existsSync(cached.path)) {
|
|
69
|
-
packageJsonPathCacheSet(startDir, cached.path);
|
|
70
|
-
return cached.path;
|
|
71
|
-
} else packageJsonPathCache.delete(startDir);
|
|
72
|
-
const packageJsonPath = /* @__PURE__ */ require_fs_find_up.findUpSync("package.json", { cwd: startDir });
|
|
73
|
-
packageJsonPathCacheSet(startDir, packageJsonPath);
|
|
74
|
-
return packageJsonPath;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Read and parse package.json with caching. Results are cached to avoid
|
|
78
|
-
* repeated file reads.
|
|
79
|
-
*
|
|
80
|
-
* @private
|
|
81
|
-
*
|
|
82
|
-
* @param packageJsonPath - Path to package.json.
|
|
83
|
-
*
|
|
84
|
-
* @returns Parsed package.json or null if invalid
|
|
85
|
-
*/
|
|
86
|
-
function readPackageJson(packageJsonPath) {
|
|
87
|
-
const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
|
|
88
|
-
let mtimeMs = 0;
|
|
89
|
-
try {
|
|
90
|
-
mtimeMs = fs.statSync(packageJsonPath).mtimeMs;
|
|
91
|
-
} catch {
|
|
92
|
-
packageJsonContentCache.delete(packageJsonPath);
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
const cached = packageJsonContentCache.get(packageJsonPath);
|
|
96
|
-
if (cached !== void 0 && cached.mtimeMs === mtimeMs) return cached.content;
|
|
97
|
-
try {
|
|
98
|
-
const content = require_primordials_json.JSONParse(fs.readFileSync(packageJsonPath, "utf8"));
|
|
99
|
-
packageJsonContentCache.set(packageJsonPath, {
|
|
100
|
-
mtimeMs,
|
|
101
|
-
content
|
|
102
|
-
});
|
|
103
|
-
return content;
|
|
104
|
-
} catch {
|
|
105
|
-
packageJsonContentCache.set(packageJsonPath, {
|
|
106
|
-
mtimeMs,
|
|
107
|
-
content: void 0
|
|
108
|
-
});
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
40
|
* Detect executable type for paths in DLX cache. Uses filesystem structure
|
|
114
41
|
* (node_modules/ presence).
|
|
115
42
|
*
|
|
@@ -124,8 +51,8 @@ function readPackageJson(packageJsonPath) {
|
|
|
124
51
|
* @returns Detection result
|
|
125
52
|
*/
|
|
126
53
|
function detectDlxExecutableType(filePath) {
|
|
127
|
-
const fs =
|
|
128
|
-
const path =
|
|
54
|
+
const fs = require_node_fs.getNodeFs();
|
|
55
|
+
const path = require_node_path.getNodePath();
|
|
129
56
|
const dlxDir = require_paths_socket.getSocketDlxDir();
|
|
130
57
|
const absolutePath = path.resolve(filePath);
|
|
131
58
|
const cacheKey = path.relative(dlxDir, absolutePath).split(path.sep)[0] ?? "";
|
|
@@ -204,6 +131,32 @@ function detectLocalExecutableType(filePath) {
|
|
|
204
131
|
};
|
|
205
132
|
}
|
|
206
133
|
/**
|
|
134
|
+
* Find package.json in the directory containing the file or parent directories.
|
|
135
|
+
* Results are cached to avoid repeated directory traversal.
|
|
136
|
+
*
|
|
137
|
+
* @private
|
|
138
|
+
*
|
|
139
|
+
* @param filePath - Path to search from.
|
|
140
|
+
*
|
|
141
|
+
* @returns Path to package.json if found, undefined otherwise
|
|
142
|
+
*/
|
|
143
|
+
function findPackageJson(filePath) {
|
|
144
|
+
const fs = require_node_fs.getNodeFs();
|
|
145
|
+
const nodePath = require_node_path.getNodePath();
|
|
146
|
+
const startDir = nodePath.dirname(nodePath.resolve(filePath));
|
|
147
|
+
const cached = packageJsonPathCache.get(startDir);
|
|
148
|
+
if (cached !== void 0) if (cached.path === void 0) {
|
|
149
|
+
if (require_primordials_date.DateNow() - cached.at < PACKAGE_JSON_NEGATIVE_TTL_MS) return;
|
|
150
|
+
packageJsonPathCache.delete(startDir);
|
|
151
|
+
} else if (fs.existsSync(cached.path)) {
|
|
152
|
+
packageJsonPathCacheSet(startDir, cached.path);
|
|
153
|
+
return cached.path;
|
|
154
|
+
} else packageJsonPathCache.delete(startDir);
|
|
155
|
+
const packageJsonPath = require_fs_find.findUpSync("package.json", { cwd: startDir });
|
|
156
|
+
packageJsonPathCacheSet(startDir, packageJsonPath);
|
|
157
|
+
return packageJsonPath;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
207
160
|
* Check if a file path indicates a Node.js script.
|
|
208
161
|
*
|
|
209
162
|
* @example
|
|
@@ -218,7 +171,7 @@ function detectLocalExecutableType(filePath) {
|
|
|
218
171
|
* @returns True if file has .js, .mjs, or .cjs extension
|
|
219
172
|
*/
|
|
220
173
|
function isJsFilePath(filePath) {
|
|
221
|
-
const ext =
|
|
174
|
+
const ext = require_node_path.getNodePath().extname(filePath).toLowerCase();
|
|
222
175
|
return NODE_JS_EXTENSIONS.has(ext);
|
|
223
176
|
}
|
|
224
177
|
/**
|
|
@@ -253,6 +206,62 @@ function isNativeBinary(filePath) {
|
|
|
253
206
|
function isNodePackage(filePath) {
|
|
254
207
|
return detectExecutableType(filePath).type === "package";
|
|
255
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Set a package.json path cache entry, evicting the oldest when the LRU is
|
|
211
|
+
* full.
|
|
212
|
+
*
|
|
213
|
+
* @private
|
|
214
|
+
*
|
|
215
|
+
* @param key - Start directory used as the cache key.
|
|
216
|
+
* @param value - Resolved package.json path, or undefined for a negative entry.
|
|
217
|
+
*/
|
|
218
|
+
function packageJsonPathCacheSet(key, value) {
|
|
219
|
+
if (packageJsonPathCache.has(key)) packageJsonPathCache.delete(key);
|
|
220
|
+
else if (packageJsonPathCache.size >= PACKAGE_JSON_PATH_CACHE_MAX_SIZE) {
|
|
221
|
+
const oldest = packageJsonPathCache.keys().next().value;
|
|
222
|
+
if (oldest !== void 0) packageJsonPathCache.delete(oldest);
|
|
223
|
+
}
|
|
224
|
+
packageJsonPathCache.set(key, {
|
|
225
|
+
path: value,
|
|
226
|
+
at: Date.now()
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Read and parse package.json with caching. Results are cached to avoid
|
|
231
|
+
* repeated file reads.
|
|
232
|
+
*
|
|
233
|
+
* @private
|
|
234
|
+
*
|
|
235
|
+
* @param packageJsonPath - Path to package.json.
|
|
236
|
+
*
|
|
237
|
+
* @returns Parsed package.json or null if invalid
|
|
238
|
+
*/
|
|
239
|
+
function readPackageJson(packageJsonPath) {
|
|
240
|
+
const fs = require_node_fs.getNodeFs();
|
|
241
|
+
let mtimeMs = 0;
|
|
242
|
+
try {
|
|
243
|
+
mtimeMs = fs.statSync(packageJsonPath).mtimeMs;
|
|
244
|
+
} catch {
|
|
245
|
+
packageJsonContentCache.delete(packageJsonPath);
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
const cached = packageJsonContentCache.get(packageJsonPath);
|
|
249
|
+
if (cached !== void 0 && cached.mtimeMs === mtimeMs) return cached.content;
|
|
250
|
+
try {
|
|
251
|
+
const content = require_primordials_json.JSONParse(fs.readFileSync(packageJsonPath, "utf8"));
|
|
252
|
+
packageJsonContentCache.set(packageJsonPath, {
|
|
253
|
+
mtimeMs,
|
|
254
|
+
content
|
|
255
|
+
});
|
|
256
|
+
return content;
|
|
257
|
+
} catch {
|
|
258
|
+
packageJsonContentCache.set(packageJsonPath, {
|
|
259
|
+
mtimeMs,
|
|
260
|
+
content: void 0
|
|
261
|
+
});
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
256
265
|
|
|
257
266
|
//#endregion
|
|
258
267
|
exports.detectDlxExecutableType = detectDlxExecutableType;
|
package/dist/dlx/dir.js
CHANGED
|
@@ -20,7 +20,7 @@ const require_dlx_packages = require('./packages.js');
|
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
22
|
async function clearDlx() {
|
|
23
|
-
await
|
|
23
|
+
await require_promises_iterate.pEach(await require_dlx_packages.listDlxPackagesAsync(), (pkg) => require_dlx_packages.removeDlxPackage(pkg));
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Clear all DLX package installations synchronously.
|
|
@@ -45,7 +45,7 @@ function clearDlxSync() {
|
|
|
45
45
|
* ```
|
|
46
46
|
*/
|
|
47
47
|
function dlxDirExists() {
|
|
48
|
-
return
|
|
48
|
+
return require_node_fs.getNodeFs().existsSync(require_paths_socket.getSocketDlxDir());
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Ensure the DLX directory exists, creating it if necessary.
|
package/dist/dlx/firewall.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* `dlx/package.ts` so the firewall logic + PURL helper can be reused by
|
|
8
8
|
* other dlx flows without dragging in the install orchestrator.
|
|
9
9
|
*/
|
|
10
|
-
import Arborist from '../external/@npmcli/arborist';
|
|
10
|
+
import type Arborist from '../external/@npmcli/arborist';
|
|
11
11
|
/**
|
|
12
12
|
* Check all resolved packages in an Arborist ideal tree against the Socket
|
|
13
13
|
* Firewall API (public, no auth required). Throws if any dependency has
|
package/dist/dlx/lockfile.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @file Package pin generation for dlx installs. `
|
|
3
|
-
* an npm package against the registry using Arborist's lockfile-only
|
|
4
|
-
* fetches its top-level tarball to return both hash formats plus the
|
|
5
|
-
* content — everything needed to vendor a reproducible install. The
|
|
2
|
+
* @file Package pin generation for dlx installs. `resolveNpmPackagePin`
|
|
3
|
+
* resolves an npm package against the registry using Arborist's lockfile-only
|
|
4
|
+
* mode and fetches its top-level tarball to return both hash formats plus the
|
|
5
|
+
* lockfile content — everything needed to vendor a reproducible install. The
|
|
6
6
|
* `LockfileSpec` type is also exported here for use as the `lockfile` option
|
|
7
|
-
* on `
|
|
8
|
-
* no helper.
|
|
7
|
+
* on `downloadNpmPackage`. Sniff/write handling lives inline in
|
|
8
|
+
* `./package.ts` — no helper.
|
|
9
9
|
*/
|
|
10
10
|
import type { ComputedHashes } from '../integrity';
|
|
11
11
|
/**
|
|
12
|
-
* Lockfile source for the `lockfile` option on `
|
|
12
|
+
* Lockfile source for the `lockfile` option on `downloadNpmPackage`.
|
|
13
13
|
*
|
|
14
14
|
* Bare strings are sniffed: a leading `{` (after whitespace) means JSON
|
|
15
15
|
* content, anything else is treated as a filesystem path. Pass the explicit `{
|
|
@@ -40,11 +40,7 @@ export declare const DEFAULT_MIN_RELEASE_DAYS = 7;
|
|
|
40
40
|
/**
|
|
41
41
|
* Options for generating a vendorable pin for an npm package.
|
|
42
42
|
*/
|
|
43
|
-
export interface
|
|
44
|
-
/**
|
|
45
|
-
* Package spec, e.g. `'@anthropic-ai/claude-code@2.1.92'`.
|
|
46
|
-
*/
|
|
47
|
-
package: string;
|
|
43
|
+
export interface ResolveNpmPackagePinOptions {
|
|
48
44
|
/**
|
|
49
45
|
* Minimum release age in days. Refuses to resolve any version (direct or
|
|
50
46
|
* transitive) published more recently than `Date.now() - N days`.
|
|
@@ -62,12 +58,17 @@ export interface GeneratePackagePinOptions {
|
|
|
62
58
|
* exclusive with {@link minReleaseDays}.
|
|
63
59
|
*/
|
|
64
60
|
minReleaseMins?: number | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Package spec, e.g. `'@anthropic-ai/claude-code@2.1.92'`. Named `spec` to
|
|
63
|
+
* match `downloadNpmPackage`/`downloadPipPackage`.
|
|
64
|
+
*/
|
|
65
|
+
spec: string;
|
|
65
66
|
}
|
|
66
67
|
/**
|
|
67
|
-
* Result of {@link
|
|
68
|
+
* Result of {@link resolveNpmPackagePin}. All file data is returned as content —
|
|
68
69
|
* the caller decides whether/where to write it.
|
|
69
70
|
*/
|
|
70
|
-
export interface
|
|
71
|
+
export interface NpmPackagePin {
|
|
71
72
|
/**
|
|
72
73
|
* Resolved package name.
|
|
73
74
|
*/
|
|
@@ -95,7 +96,7 @@ export interface PinDetails {
|
|
|
95
96
|
*/
|
|
96
97
|
export declare class DlxLockfileError extends Error {
|
|
97
98
|
constructor(message: string, options?: {
|
|
98
|
-
cause?: unknown;
|
|
99
|
+
cause?: unknown | undefined;
|
|
99
100
|
} | undefined);
|
|
100
101
|
}
|
|
101
102
|
/**
|
|
@@ -112,15 +113,15 @@ export declare class DlxLockfileError extends Error {
|
|
|
112
113
|
*
|
|
113
114
|
* @example
|
|
114
115
|
* ;```ts
|
|
115
|
-
* const pin = await
|
|
116
|
-
*
|
|
116
|
+
* const pin = await resolveNpmPackagePin({
|
|
117
|
+
* spec: '@anthropic-ai/claude-code@2.1.92',
|
|
117
118
|
* })
|
|
118
119
|
* await fs.writeFile('./claude.lock.json', pin.lockfile, 'utf8')
|
|
119
120
|
* // pin.hash.integrity → 'sha512-…'
|
|
120
121
|
* // pin.hash.checksum → hex
|
|
121
122
|
* ```
|
|
122
123
|
*/
|
|
123
|
-
export declare function
|
|
124
|
+
export declare function resolveNpmPackagePin(options: ResolveNpmPackagePinOptions): Promise<NpmPackagePin>;
|
|
124
125
|
/**
|
|
125
126
|
* Extract the package name from a spec like `'name@range'` or
|
|
126
127
|
* `'@scope/name@range'` or a bare `'name'`.
|
package/dist/dlx/lockfile.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/* Socket Lib - Built with rolldown */
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
const require_runtime = require('../_virtual/_rolldown/runtime.js');
|
|
5
|
-
const require_primordials_string = require('../primordials/string.js');
|
|
6
5
|
const require_integrity = require('../integrity.js');
|
|
6
|
+
const require_primordials_string = require('../primordials/string.js');
|
|
7
7
|
const require_node_fs = require('../node/fs.js');
|
|
8
8
|
const require_node_path = require('../node/path.js');
|
|
9
9
|
const require_primordials_date = require('../primordials/date.js');
|
|
@@ -17,13 +17,13 @@ src_external_pacote = require_runtime.__toESM(src_external_pacote);
|
|
|
17
17
|
|
|
18
18
|
//#region src/dlx/lockfile.ts
|
|
19
19
|
/**
|
|
20
|
-
* @file Package pin generation for dlx installs. `
|
|
21
|
-
* an npm package against the registry using Arborist's lockfile-only
|
|
22
|
-
* fetches its top-level tarball to return both hash formats plus the
|
|
23
|
-
* content — everything needed to vendor a reproducible install. The
|
|
20
|
+
* @file Package pin generation for dlx installs. `resolveNpmPackagePin`
|
|
21
|
+
* resolves an npm package against the registry using Arborist's lockfile-only
|
|
22
|
+
* mode and fetches its top-level tarball to return both hash formats plus the
|
|
23
|
+
* lockfile content — everything needed to vendor a reproducible install. The
|
|
24
24
|
* `LockfileSpec` type is also exported here for use as the `lockfile` option
|
|
25
|
-
* on `
|
|
26
|
-
* no helper.
|
|
25
|
+
* on `downloadNpmPackage`. Sniff/write handling lives inline in
|
|
26
|
+
* `./package.ts` — no helper.
|
|
27
27
|
*/
|
|
28
28
|
/**
|
|
29
29
|
* Default minimum release age in days applied when a caller passes neither
|
|
@@ -55,20 +55,20 @@ var DlxLockfileError = class extends Error {
|
|
|
55
55
|
*
|
|
56
56
|
* @example
|
|
57
57
|
* ;```ts
|
|
58
|
-
* const pin = await
|
|
59
|
-
*
|
|
58
|
+
* const pin = await resolveNpmPackagePin({
|
|
59
|
+
* spec: '@anthropic-ai/claude-code@2.1.92',
|
|
60
60
|
* })
|
|
61
61
|
* await fs.writeFile('./claude.lock.json', pin.lockfile, 'utf8')
|
|
62
62
|
* // pin.hash.integrity → 'sha512-…'
|
|
63
63
|
* // pin.hash.checksum → hex
|
|
64
64
|
* ```
|
|
65
65
|
*/
|
|
66
|
-
async function
|
|
67
|
-
const fs =
|
|
68
|
-
const path =
|
|
69
|
-
const { minReleaseDays, minReleaseMins,
|
|
70
|
-
if (typeof spec !== "string" || spec.length === 0) throw new DlxLockfileError("
|
|
71
|
-
if (minReleaseDays !== void 0 && minReleaseMins !== void 0) throw new DlxLockfileError("
|
|
66
|
+
async function resolveNpmPackagePin(options) {
|
|
67
|
+
const fs = require_node_fs.getNodeFs();
|
|
68
|
+
const path = require_node_path.getNodePath();
|
|
69
|
+
const { minReleaseDays, minReleaseMins, spec } = options;
|
|
70
|
+
if (typeof spec !== "string" || spec.length === 0) throw new DlxLockfileError("resolveNpmPackagePin requires a package spec");
|
|
71
|
+
if (minReleaseDays !== void 0 && minReleaseMins !== void 0) throw new DlxLockfileError("resolveNpmPackagePin: minReleaseDays and minReleaseMins are mutually exclusive");
|
|
72
72
|
const effectiveDays = minReleaseDays !== void 0 ? minReleaseDays : minReleaseMins !== void 0 ? void 0 : 7;
|
|
73
73
|
const ageMs = effectiveDays !== void 0 ? effectiveDays * 864e5 : minReleaseMins !== void 0 ? minReleaseMins * 6e4 : 0;
|
|
74
74
|
const before = ageMs > 0 ? new require_primordials_date.DateCtor(require_primordials_date.DateNow() - ageMs) : void 0;
|
|
@@ -125,6 +125,6 @@ function specRange(spec) {
|
|
|
125
125
|
//#endregion
|
|
126
126
|
exports.DEFAULT_MIN_RELEASE_DAYS = DEFAULT_MIN_RELEASE_DAYS;
|
|
127
127
|
exports.DlxLockfileError = DlxLockfileError;
|
|
128
|
-
exports.
|
|
128
|
+
exports.resolveNpmPackagePin = resolveNpmPackagePin;
|
|
129
129
|
exports.specName = specName;
|
|
130
130
|
exports.specRange = specRange;
|
package/dist/dlx/manifest.d.ts
CHANGED
|
@@ -27,12 +27,12 @@
|
|
|
27
27
|
*/
|
|
28
28
|
export interface PackageDetails {
|
|
29
29
|
installed_version: string;
|
|
30
|
-
size?: number;
|
|
30
|
+
size?: number | undefined;
|
|
31
31
|
update_check?: {
|
|
32
32
|
last_check: number;
|
|
33
33
|
last_notification: number;
|
|
34
34
|
latest_known: string;
|
|
35
|
-
};
|
|
35
|
+
} | undefined;
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
38
|
* Details for binary download entries.
|
|
@@ -47,8 +47,8 @@ export interface BinaryDetails {
|
|
|
47
47
|
size: number;
|
|
48
48
|
source: {
|
|
49
49
|
type: 'download' | 'extract';
|
|
50
|
-
url?: string;
|
|
51
|
-
path?: string;
|
|
50
|
+
url?: string | undefined;
|
|
51
|
+
path?: string | undefined;
|
|
52
52
|
};
|
|
53
53
|
/**
|
|
54
54
|
* Update check metadata (same structure as packages).
|
|
@@ -57,7 +57,7 @@ export interface BinaryDetails {
|
|
|
57
57
|
last_check: number;
|
|
58
58
|
last_notification: number;
|
|
59
59
|
latest_known: string;
|
|
60
|
-
};
|
|
60
|
+
} | undefined;
|
|
61
61
|
}
|
|
62
62
|
/**
|
|
63
63
|
* Unified manifest entry for all cached items (packages and binaries). Shared
|
|
@@ -81,7 +81,7 @@ export interface DlxManifestOptions {
|
|
|
81
81
|
/**
|
|
82
82
|
* Custom manifest file path (defaults to ~/.socket/_dlx/.dlx-manifest.json).
|
|
83
83
|
*/
|
|
84
|
-
manifestPath?: string;
|
|
84
|
+
manifestPath?: string | undefined;
|
|
85
85
|
}
|
|
86
86
|
/**
|
|
87
87
|
* Type guard for binary entries.
|
package/dist/dlx/manifest.js
CHANGED
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4
4
|
const require_node_fs = require('../node/fs.js');
|
|
5
5
|
const require_node_path = require('../node/path.js');
|
|
6
6
|
const require_primordials_date = require('../primordials/date.js');
|
|
7
|
-
const require_primordials_object = require('../primordials/object.js');
|
|
8
7
|
const require_primordials_json = require('../primordials/json.js');
|
|
8
|
+
const require_primordials_object = require('../primordials/object.js');
|
|
9
9
|
const require_errors_message = require('../errors/message.js');
|
|
10
10
|
const require_logger_default = require('../logger/default.js');
|
|
11
11
|
const require_paths_socket = require('../paths/socket.js');
|
|
@@ -38,8 +38,8 @@ const require_fs_read_file = require('../fs/read-file.js');
|
|
|
38
38
|
* - Binary metadata tracking
|
|
39
39
|
* - Rate limiting registry requests
|
|
40
40
|
*/
|
|
41
|
-
const fs =
|
|
42
|
-
const path =
|
|
41
|
+
const fs = require_node_fs.getNodeFs();
|
|
42
|
+
const path = require_node_path.getNodePath();
|
|
43
43
|
const logger = require_logger_default.getDefaultLogger();
|
|
44
44
|
/**
|
|
45
45
|
* Manifest file name.
|
|
@@ -92,7 +92,7 @@ var DlxManifest = class {
|
|
|
92
92
|
readManifest() {
|
|
93
93
|
try {
|
|
94
94
|
if (!fs.existsSync(this.manifestPath)) return { __proto__: null };
|
|
95
|
-
const rawContent =
|
|
95
|
+
const rawContent = require_fs_read_file.readFileUtf8Sync(this.manifestPath);
|
|
96
96
|
const content = (typeof rawContent === "string" ? rawContent : rawContent.toString("utf8")).trim();
|
|
97
97
|
if (!content) return { __proto__: null };
|
|
98
98
|
return require_primordials_json.JSONParse(content);
|
|
@@ -172,7 +172,7 @@ var DlxManifest = class {
|
|
|
172
172
|
getAllPackages() {
|
|
173
173
|
try {
|
|
174
174
|
if (!fs.existsSync(this.manifestPath)) return [];
|
|
175
|
-
const rawContent =
|
|
175
|
+
const rawContent = require_fs_read_file.readFileUtf8Sync(this.manifestPath);
|
|
176
176
|
const content = (typeof rawContent === "string" ? rawContent : rawContent.toString("utf8")).trim();
|
|
177
177
|
if (!content) return [];
|
|
178
178
|
return require_primordials_object.ObjectKeys(require_primordials_json.JSONParse(content));
|
package/dist/dlx/package.d.ts
CHANGED
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
* - dlx/binary.ts: Downloads standalone binaries from URLs
|
|
21
21
|
* - dlx/package.ts: Installs npm packages from registries Implementation:
|
|
22
22
|
* - Uses Arborist for package installation (like npx, no npm CLI required)
|
|
23
|
-
* - Split into
|
|
23
|
+
* - Split into downloadNpmPackage() and executePackage() for flexibility
|
|
24
24
|
* - dlxPackage() combines both for convenience Module shape: this file holds
|
|
25
|
-
* the three async orchestrators (`dlxPackage`, `
|
|
25
|
+
* the three async orchestrators (`dlxPackage`, `downloadNpmPackage`,
|
|
26
26
|
* `ensurePackageInstalled`) and the synchronous `executePackage`. The
|
|
27
27
|
* supporting surface lives in sibling leaves and is re-exported here so
|
|
28
28
|
* existing `dlx/package` importers keep working unchanged:
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
* - lazy `node:fs` / `node:path` + LRU cache — `./_internal`
|
|
34
34
|
*/
|
|
35
35
|
import { spawn } from '../process/spawn/child';
|
|
36
|
-
import type { DlxPackageOptions, DlxPackageResult,
|
|
36
|
+
import type { DlxPackageOptions, DlxPackageResult, DownloadNpmPackageResult, EnsurePackageInstallOptions } from './types';
|
|
37
37
|
import type { SpawnExtra, SpawnOptions } from '../process/spawn/types';
|
|
38
38
|
/**
|
|
39
39
|
* Execute a package via DLX - install if needed and run its binary.
|
|
@@ -47,7 +47,7 @@ import type { SpawnExtra, SpawnOptions } from '../process/spawn/types';
|
|
|
47
47
|
* ;```typescript
|
|
48
48
|
* // Download and execute cdxgen
|
|
49
49
|
* const result = await dlxPackage(['--version'], {
|
|
50
|
-
*
|
|
50
|
+
* spec: '@cyclonedx/cdxgen@10.0.0',
|
|
51
51
|
* })
|
|
52
52
|
* await result.spawnPromise
|
|
53
53
|
* ```
|
|
@@ -61,15 +61,15 @@ export declare function dlxPackage(args: readonly string[] | string[], options:
|
|
|
61
61
|
* @example
|
|
62
62
|
* ;```typescript
|
|
63
63
|
* // Install @socketsecurity/cli without running it
|
|
64
|
-
* const result = await
|
|
65
|
-
*
|
|
64
|
+
* const result = await downloadNpmPackage({
|
|
65
|
+
* spec: '@socketsecurity/cli@1.2.0',
|
|
66
66
|
* force: true,
|
|
67
67
|
* })
|
|
68
68
|
* console.log('Installed to:', result.packageDir)
|
|
69
69
|
* console.log('Binary at:', result.binaryPath)
|
|
70
70
|
* ```
|
|
71
71
|
*/
|
|
72
|
-
export declare function
|
|
72
|
+
export declare function downloadNpmPackage(options: DlxPackageOptions): Promise<DownloadNpmPackageResult>;
|
|
73
73
|
/**
|
|
74
74
|
* Install package to ~/.socket/_dlx/<hash>/ if not already installed. Uses
|
|
75
75
|
* pacote for installation (no npm CLI required). Protected by process lock to
|
|
@@ -91,7 +91,7 @@ export declare function ensurePackageInstalled(packageName: string, packageSpec:
|
|
|
91
91
|
}>;
|
|
92
92
|
/**
|
|
93
93
|
* Execute a package's binary with cross-platform shell handling. The package
|
|
94
|
-
* must already be installed (use
|
|
94
|
+
* must already be installed (use downloadNpmPackage first).
|
|
95
95
|
*
|
|
96
96
|
* On Windows, script files (.bat, .cmd, .ps1) require shell: true. Matches
|
|
97
97
|
* npm/npx execution behavior.
|
|
@@ -99,7 +99,7 @@ export declare function ensurePackageInstalled(packageName: string, packageSpec:
|
|
|
99
99
|
* @example
|
|
100
100
|
* ;```typescript
|
|
101
101
|
* // Execute an already-installed package
|
|
102
|
-
* const downloaded = await
|
|
102
|
+
* const downloaded = await downloadNpmPackage({ spec: 'cowsay@1.5.0' })
|
|
103
103
|
* const result = await executePackage(
|
|
104
104
|
* downloaded.binaryPath,
|
|
105
105
|
* ['Hello World'],
|
|
@@ -112,4 +112,4 @@ export { binaryPathCacheSet } from './_internal';
|
|
|
112
112
|
export { findBinaryPath, makePackageBinsExecutable, resolveBinaryPath, } from './binary-resolution';
|
|
113
113
|
export { checkFirewallPurls, npmPurl } from './firewall';
|
|
114
114
|
export { parsePackageSpec } from './spec';
|
|
115
|
-
export type { DlxPackageOptions, DlxPackageResult,
|
|
115
|
+
export type { DlxPackageOptions, DlxPackageResult, DownloadNpmPackageResult, EnsurePackageInstallOptions, } from './types';
|