@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/spinner/spinner.js
CHANGED
|
@@ -2,31 +2,26 @@
|
|
|
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');
|
|
6
|
-
const require_primordials_math = require('../primordials/math.js');
|
|
7
|
-
const require_primordials_array = require('../primordials/array.js');
|
|
8
|
-
const require_primordials_object = require('../primordials/object.js');
|
|
9
|
-
const require_strings_predicates = require('../strings/predicates.js');
|
|
10
|
-
const require_themes_themes = require('../themes/themes.js');
|
|
11
|
-
const require_themes_context = require('../themes/context.js');
|
|
12
|
-
const require_logger_symbols = require('../logger/symbols.js');
|
|
13
5
|
const require_logger_default = require('../logger/default.js');
|
|
14
|
-
const require_process_abort = require('../process/abort.js');
|
|
15
|
-
const require_colors_convert = require('../colors/convert.js');
|
|
16
|
-
const require_debug_namespace = require('../debug/namespace.js');
|
|
17
|
-
const require_effects_shimmer = require('../effects/shimmer.js');
|
|
18
|
-
const require_effects_shimmer_terminal = require('../effects/shimmer-terminal.js');
|
|
19
6
|
const require_env_ci = require('../env/ci.js');
|
|
20
|
-
const require_strings_width = require('../strings/width.js');
|
|
21
|
-
const require_themes_resolve = require('../themes/resolve.js');
|
|
22
7
|
const require_spinner_format = require('./format.js');
|
|
8
|
+
const require_spinner_create_spinner_class = require('./create-spinner-class.js');
|
|
23
9
|
const require_spinner_default = require('./default.js');
|
|
24
10
|
let src_external__socketregistry_yocto_spinner = require("../external/@socketregistry/yocto-spinner");
|
|
25
11
|
src_external__socketregistry_yocto_spinner = require_runtime.__toESM(src_external__socketregistry_yocto_spinner);
|
|
26
12
|
|
|
27
13
|
//#region src/spinner/spinner.ts
|
|
28
|
-
|
|
29
|
-
|
|
14
|
+
/**
|
|
15
|
+
* @file Spinner factory — lazily builds the Socket `Spinner` class that wraps
|
|
16
|
+
* `yocto-spinner` with Socket-specific behaviors (custom RGB color pipeline,
|
|
17
|
+
* shimmer, progress bar, indented step messages, status methods that don't
|
|
18
|
+
* auto-stop, *AndStop variants that auto-clear). The class graph is
|
|
19
|
+
* constructed by `createSpinnerClass()` so the `super()` call binds against
|
|
20
|
+
* the live `YoctoSpinner` constructor resolved here; building it lazily keeps
|
|
21
|
+
* the module free of side effects at import time.
|
|
22
|
+
*/
|
|
23
|
+
let SpinnerCtor;
|
|
24
|
+
let defaultSpinnerStyle;
|
|
30
25
|
/**
|
|
31
26
|
* Create a spinner instance for displaying loading indicators. Provides an
|
|
32
27
|
* animated CLI spinner with status messages, progress tracking, and shimmer
|
|
@@ -55,697 +50,15 @@ let _defaultSpinner;
|
|
|
55
50
|
*
|
|
56
51
|
* @returns New spinner instance
|
|
57
52
|
*/
|
|
58
|
-
/* @__NO_SIDE_EFFECTS__ */
|
|
59
53
|
function Spinner(options) {
|
|
60
|
-
if (
|
|
54
|
+
if (SpinnerCtor === void 0) {
|
|
61
55
|
const YoctoSpinnerClass = (0, src_external__socketregistry_yocto_spinner.default)({}).constructor;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
#baseText = "";
|
|
66
|
-
#indentation = "";
|
|
67
|
-
#progress;
|
|
68
|
-
#shimmer;
|
|
69
|
-
#shimmerSavedConfig;
|
|
70
|
-
constructor(options) {
|
|
71
|
-
const opts = {
|
|
72
|
-
__proto__: null,
|
|
73
|
-
...options
|
|
74
|
-
};
|
|
75
|
-
let theme = require_themes_context.getTheme();
|
|
76
|
-
if (opts.theme) if (typeof opts.theme === "string") theme = require_themes_themes.THEMES[opts.theme] ?? theme;
|
|
77
|
-
else theme = opts.theme;
|
|
78
|
-
let defaultColor = theme.colors.primary;
|
|
79
|
-
if (theme.effects?.spinner?.color) {
|
|
80
|
-
const resolved = require_themes_resolve.resolveColor(theme.effects.spinner.color, theme.colors);
|
|
81
|
-
if (resolved === "inherit" || require_primordials_array.ArrayIsArray(resolved[0])) defaultColor = theme.colors.primary;
|
|
82
|
-
else defaultColor = resolved;
|
|
83
|
-
}
|
|
84
|
-
const spinnerColor = opts.color ?? defaultColor;
|
|
85
|
-
if (require_colors_convert.isRgbTuple(spinnerColor) && (spinnerColor.length !== 3 || !spinnerColor.every((n) => typeof n === "number" && n >= 0 && n <= 255))) throw new require_primordials_error.TypeErrorCtor("RGB color must be an array of 3 numbers between 0 and 255");
|
|
86
|
-
const spinnerColorRgb = require_colors_convert.toRgb(spinnerColor);
|
|
87
|
-
let shimmerInfo;
|
|
88
|
-
if (opts.shimmer) {
|
|
89
|
-
let shimmerDir;
|
|
90
|
-
let shimmerColor;
|
|
91
|
-
let shimmerSpeed = 1 / 3;
|
|
92
|
-
if (typeof opts.shimmer === "string") {
|
|
93
|
-
shimmerDir = opts.shimmer;
|
|
94
|
-
shimmerColor = require_spinner_format.COLOR_INHERIT;
|
|
95
|
-
} else {
|
|
96
|
-
const shimmerConfig = {
|
|
97
|
-
__proto__: null,
|
|
98
|
-
...opts.shimmer
|
|
99
|
-
};
|
|
100
|
-
shimmerDir = shimmerConfig.dir ?? "ltr";
|
|
101
|
-
shimmerColor = shimmerConfig.color ?? "inherit";
|
|
102
|
-
shimmerSpeed = shimmerConfig.speed ?? 1 / 3;
|
|
103
|
-
}
|
|
104
|
-
shimmerInfo = {
|
|
105
|
-
__proto__: null,
|
|
106
|
-
color: shimmerColor,
|
|
107
|
-
direction: shimmerDir,
|
|
108
|
-
speed: shimmerSpeed,
|
|
109
|
-
frame: 0
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
super({
|
|
113
|
-
signal: require_process_abort.getAbortSignal(),
|
|
114
|
-
...opts,
|
|
115
|
-
color: spinnerColorRgb,
|
|
116
|
-
onRenderFrame: (frame, text, applyColor) => {
|
|
117
|
-
const spacing = /* @__PURE__ */ require_strings_width.stringWidth(frame) === 1 ? " " : " ";
|
|
118
|
-
return frame ? `${applyColor(frame)}${spacing}${text}` : text;
|
|
119
|
-
},
|
|
120
|
-
onFrameUpdate: shimmerInfo ? () => {
|
|
121
|
-
if (this.#baseText) super.text = this.#buildDisplayText();
|
|
122
|
-
} : void 0
|
|
123
|
-
});
|
|
124
|
-
this.#shimmer = shimmerInfo;
|
|
125
|
-
this.#shimmerSavedConfig = shimmerInfo;
|
|
126
|
-
}
|
|
127
|
-
get color() {
|
|
128
|
-
const value = super.color;
|
|
129
|
-
return require_colors_convert.isRgbTuple(value) ? value : require_colors_convert.toRgb(value);
|
|
130
|
-
}
|
|
131
|
-
set color(value) {
|
|
132
|
-
super.color = require_colors_convert.isRgbTuple(value) ? value : require_colors_convert.toRgb(value);
|
|
133
|
-
}
|
|
134
|
-
get shimmerState() {
|
|
135
|
-
if (!this.#shimmer) return;
|
|
136
|
-
return {
|
|
137
|
-
__proto__: null,
|
|
138
|
-
color: this.#shimmer.color,
|
|
139
|
-
direction: this.#shimmer.direction,
|
|
140
|
-
speed: this.#shimmer.speed,
|
|
141
|
-
frame: this.#shimmer.frame
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Apply a yocto-spinner method and update logger state. Handles text
|
|
146
|
-
* normalization, extra arguments, and logger tracking.
|
|
147
|
-
*
|
|
148
|
-
* @private
|
|
149
|
-
*/
|
|
150
|
-
#apply(methodName, args) {
|
|
151
|
-
let extras;
|
|
152
|
-
let text = require_primordials_array.ArrayPrototypeAt(args, 0);
|
|
153
|
-
if (typeof text === "string") extras = require_primordials_array.ArrayPrototypeSlice(args, 1);
|
|
154
|
-
else {
|
|
155
|
-
extras = args;
|
|
156
|
-
text = "";
|
|
157
|
-
}
|
|
158
|
-
const wasSpinning = this.isSpinning;
|
|
159
|
-
const normalized = require_spinner_format.normalizeText(text);
|
|
160
|
-
if (methodName === "stop" && !normalized) super[methodName]();
|
|
161
|
-
else super[methodName](normalized);
|
|
162
|
-
if (methodName === "stop") {
|
|
163
|
-
if (wasSpinning && normalized) {
|
|
164
|
-
logger[require_logger_symbols.lastWasBlankSymbol](/* @__PURE__ */ require_strings_predicates.isBlankString(normalized));
|
|
165
|
-
logger[require_logger_symbols.incLogCallCountSymbol]();
|
|
166
|
-
}
|
|
167
|
-
} else {
|
|
168
|
-
logger[require_logger_symbols.lastWasBlankSymbol](false);
|
|
169
|
-
logger[require_logger_symbols.incLogCallCountSymbol]();
|
|
170
|
-
}
|
|
171
|
-
/* c8 ignore start */
|
|
172
|
-
if (extras.length) {
|
|
173
|
-
logger.log(...extras);
|
|
174
|
-
logger[require_logger_symbols.lastWasBlankSymbol](false);
|
|
175
|
-
}
|
|
176
|
-
/* c8 ignore stop */
|
|
177
|
-
return this;
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Build the complete display text with progress, shimmer, and
|
|
181
|
-
* indentation. Combines base text, progress bar, shimmer effects, and
|
|
182
|
-
* indentation.
|
|
183
|
-
*
|
|
184
|
-
* @private
|
|
185
|
-
*/
|
|
186
|
-
#buildDisplayText() {
|
|
187
|
-
let displayText = this.#baseText;
|
|
188
|
-
/* c8 ignore start */
|
|
189
|
-
if (this.#progress) {
|
|
190
|
-
const progressText = require_spinner_format.formatProgress(this.#progress);
|
|
191
|
-
displayText = displayText ? `${displayText} ${progressText}` : progressText;
|
|
192
|
-
}
|
|
193
|
-
if (displayText && this.#shimmer) {
|
|
194
|
-
let shimmerColor;
|
|
195
|
-
if (this.#shimmer.color === "inherit") shimmerColor = this.color;
|
|
196
|
-
else if (require_primordials_array.ArrayIsArray(this.#shimmer.color[0])) shimmerColor = this.#shimmer.color;
|
|
197
|
-
else shimmerColor = require_colors_convert.toRgb(this.#shimmer.color);
|
|
198
|
-
if (!/* @__PURE__ */ require_env_ci.getCI() && this.#shimmer.direction !== "none") {
|
|
199
|
-
const chars = [...displayText];
|
|
200
|
-
const colors = require_effects_shimmer.frameColors(require_effects_shimmer.configToSpec({
|
|
201
|
-
color: shimmerColor,
|
|
202
|
-
dir: this.#shimmer.direction,
|
|
203
|
-
speed: this.#shimmer.speed
|
|
204
|
-
}, chars.length), chars.length, this.#shimmer.frame);
|
|
205
|
-
displayText = require_effects_shimmer_terminal.colorsToAnsi(displayText, colors);
|
|
206
|
-
this.#shimmer.frame++;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
if (this.#indentation && displayText) displayText = this.#indentation + displayText;
|
|
210
|
-
/* c8 ignore stop */
|
|
211
|
-
return displayText;
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Show a status message without stopping the spinner. Outputs the symbol
|
|
215
|
-
* and message to stderr, then continues spinning.
|
|
216
|
-
*
|
|
217
|
-
* @private
|
|
218
|
-
*/
|
|
219
|
-
#showStatusAndKeepSpinning(symbolType, args) {
|
|
220
|
-
let text = require_primordials_array.ArrayPrototypeAt(args, 0);
|
|
221
|
-
let extras;
|
|
222
|
-
if (typeof text === "string") extras = require_primordials_array.ArrayPrototypeSlice(args, 1);
|
|
223
|
-
else {
|
|
224
|
-
extras = args;
|
|
225
|
-
text = "";
|
|
226
|
-
}
|
|
227
|
-
logger.error(`${require_logger_symbols.LOG_SYMBOLS[symbolType]} ${text}`, ...extras);
|
|
228
|
-
return this;
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Update the spinner's displayed text. Rebuilds display text and triggers
|
|
232
|
-
* render.
|
|
233
|
-
*
|
|
234
|
-
* @private
|
|
235
|
-
*/
|
|
236
|
-
#updateSpinnerText() {
|
|
237
|
-
super.text = this.#buildDisplayText();
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* Show a debug message (ℹ) without stopping the spinner. Only displays if
|
|
241
|
-
* debug mode is enabled via environment variable. Outputs to stderr and
|
|
242
|
-
* continues spinning.
|
|
243
|
-
*
|
|
244
|
-
* @param text - Debug message to display.
|
|
245
|
-
* @param extras - Additional values to log.
|
|
246
|
-
*
|
|
247
|
-
* @returns This spinner for chaining
|
|
248
|
-
*/
|
|
249
|
-
debug(text, ...extras) {
|
|
250
|
-
if (/* @__PURE__ */ require_debug_namespace.isDebug()) return this.#showStatusAndKeepSpinning("info", [text, ...extras]);
|
|
251
|
-
return this;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Show a debug message (ℹ) and stop the spinner. Only displays if debug
|
|
255
|
-
* mode is enabled via environment variable. Auto-clears the spinner line
|
|
256
|
-
* before displaying the message.
|
|
257
|
-
*
|
|
258
|
-
* @param text - Debug message to display.
|
|
259
|
-
* @param extras - Additional values to log.
|
|
260
|
-
*
|
|
261
|
-
* @returns This spinner for chaining
|
|
262
|
-
*/
|
|
263
|
-
debugAndStop(text, ...extras) {
|
|
264
|
-
if (/* @__PURE__ */ require_debug_namespace.isDebug()) return this.#apply("info", [text, ...extras]);
|
|
265
|
-
return this;
|
|
266
|
-
}
|
|
267
|
-
/**
|
|
268
|
-
* Decrease indentation level by removing spaces from the left. Pass 0 to
|
|
269
|
-
* reset indentation to zero completely.
|
|
270
|
-
*
|
|
271
|
-
* @default spaces=2
|
|
272
|
-
*
|
|
273
|
-
* @param spaces - Number of spaces to remove.
|
|
274
|
-
*
|
|
275
|
-
* @returns This spinner for chaining
|
|
276
|
-
*/
|
|
277
|
-
dedent(spaces) {
|
|
278
|
-
if (spaces === 0) this.#indentation = "";
|
|
279
|
-
else {
|
|
280
|
-
const amount = spaces ?? 2;
|
|
281
|
-
const newLength = require_primordials_math.MathMax(0, this.#indentation.length - amount);
|
|
282
|
-
this.#indentation = this.#indentation.slice(0, newLength);
|
|
283
|
-
}
|
|
284
|
-
this.#updateSpinnerText();
|
|
285
|
-
return this;
|
|
286
|
-
}
|
|
287
|
-
/**
|
|
288
|
-
* Disable shimmer effect. Preserves config for later re-enable via
|
|
289
|
-
* enableShimmer().
|
|
290
|
-
*
|
|
291
|
-
* @example
|
|
292
|
-
* spinner.disableShimmer()
|
|
293
|
-
*
|
|
294
|
-
* @returns This spinner for chaining
|
|
295
|
-
*/
|
|
296
|
-
disableShimmer() {
|
|
297
|
-
this.#shimmer = void 0;
|
|
298
|
-
this.#updateSpinnerText();
|
|
299
|
-
return this;
|
|
300
|
-
}
|
|
301
|
-
/**
|
|
302
|
-
* Show a done/success message (✓) without stopping the spinner. Alias for
|
|
303
|
-
* `success()` with a shorter name.
|
|
304
|
-
*
|
|
305
|
-
* DESIGN DECISION: Unlike yocto-spinner, our `done()` does NOT stop the
|
|
306
|
-
* spinner. Use `doneAndStop()` if you want to stop the spinner.
|
|
307
|
-
*
|
|
308
|
-
* @param text - Message to display.
|
|
309
|
-
* @param extras - Additional values to log.
|
|
310
|
-
*
|
|
311
|
-
* @returns This spinner for chaining
|
|
312
|
-
*/
|
|
313
|
-
done(text, ...extras) {
|
|
314
|
-
return this.#showStatusAndKeepSpinning("success", [text, ...extras]);
|
|
315
|
-
}
|
|
316
|
-
/**
|
|
317
|
-
* Show a done/success message (✓) and stop the spinner. Auto-clears the
|
|
318
|
-
* spinner line before displaying the success message.
|
|
319
|
-
*
|
|
320
|
-
* @param text - Message to display.
|
|
321
|
-
* @param extras - Additional values to log.
|
|
322
|
-
*
|
|
323
|
-
* @returns This spinner for chaining
|
|
324
|
-
*/
|
|
325
|
-
doneAndStop(text, ...extras) {
|
|
326
|
-
return this.#apply("success", [text, ...extras]);
|
|
327
|
-
}
|
|
328
|
-
/**
|
|
329
|
-
* Enable shimmer effect. Restores saved config or uses defaults if no
|
|
330
|
-
* saved config exists.
|
|
331
|
-
*
|
|
332
|
-
* @example
|
|
333
|
-
* spinner.enableShimmer()
|
|
334
|
-
*
|
|
335
|
-
* @returns This spinner for chaining
|
|
336
|
-
*/
|
|
337
|
-
enableShimmer() {
|
|
338
|
-
if (this.#shimmerSavedConfig) this.#shimmer = {
|
|
339
|
-
...this.#shimmerSavedConfig,
|
|
340
|
-
frame: 0
|
|
341
|
-
};
|
|
342
|
-
else {
|
|
343
|
-
this.#shimmer = {
|
|
344
|
-
__proto__: null,
|
|
345
|
-
color: require_spinner_format.COLOR_INHERIT,
|
|
346
|
-
direction: "ltr",
|
|
347
|
-
speed: 1 / 3,
|
|
348
|
-
frame: 0
|
|
349
|
-
};
|
|
350
|
-
this.#shimmerSavedConfig = this.#shimmer;
|
|
351
|
-
}
|
|
352
|
-
this.#updateSpinnerText();
|
|
353
|
-
return this;
|
|
354
|
-
}
|
|
355
|
-
/**
|
|
356
|
-
* Show a failure message (✗) without stopping the spinner. DESIGN
|
|
357
|
-
* DECISION: Unlike yocto-spinner, our `fail()` does NOT stop the spinner.
|
|
358
|
-
* This allows displaying errors while continuing to spin. Use
|
|
359
|
-
* `failAndStop()` if you want to stop the spinner.
|
|
360
|
-
*
|
|
361
|
-
* @param text - Error message to display.
|
|
362
|
-
* @param extras - Additional values to log.
|
|
363
|
-
*
|
|
364
|
-
* @returns This spinner for chaining
|
|
365
|
-
*/
|
|
366
|
-
fail(text, ...extras) {
|
|
367
|
-
return this.#showStatusAndKeepSpinning("fail", [text, ...extras]);
|
|
368
|
-
}
|
|
369
|
-
/**
|
|
370
|
-
* Show a failure message (✗) and stop the spinner. Auto-clears the
|
|
371
|
-
* spinner line before displaying the error message.
|
|
372
|
-
*
|
|
373
|
-
* @param text - Error message to display.
|
|
374
|
-
* @param extras - Additional values to log.
|
|
375
|
-
*
|
|
376
|
-
* @returns This spinner for chaining
|
|
377
|
-
*/
|
|
378
|
-
failAndStop(text, ...extras) {
|
|
379
|
-
return this.#apply("error", [text, ...extras]);
|
|
380
|
-
}
|
|
381
|
-
/**
|
|
382
|
-
* Increase indentation level by adding spaces to the left. Pass 0 to
|
|
383
|
-
* reset indentation to zero completely.
|
|
384
|
-
*
|
|
385
|
-
* @default spaces=2
|
|
386
|
-
*
|
|
387
|
-
* @param spaces - Number of spaces to add.
|
|
388
|
-
*
|
|
389
|
-
* @returns This spinner for chaining
|
|
390
|
-
*/
|
|
391
|
-
indent(spaces) {
|
|
392
|
-
/* c8 ignore start */
|
|
393
|
-
if (spaces === 0) this.#indentation = "";
|
|
394
|
-
else {
|
|
395
|
-
const amount = spaces ?? 2;
|
|
396
|
-
this.#indentation += " ".repeat(amount);
|
|
397
|
-
}
|
|
398
|
-
/* c8 ignore stop */
|
|
399
|
-
this.#updateSpinnerText();
|
|
400
|
-
return this;
|
|
401
|
-
}
|
|
402
|
-
/**
|
|
403
|
-
* Show an info message (ℹ) without stopping the spinner. Outputs to
|
|
404
|
-
* stderr and continues spinning.
|
|
405
|
-
*
|
|
406
|
-
* @param text - Info message to display.
|
|
407
|
-
* @param extras - Additional values to log.
|
|
408
|
-
*
|
|
409
|
-
* @returns This spinner for chaining
|
|
410
|
-
*/
|
|
411
|
-
info(text, ...extras) {
|
|
412
|
-
return this.#showStatusAndKeepSpinning("info", [text, ...extras]);
|
|
413
|
-
}
|
|
414
|
-
/**
|
|
415
|
-
* Show an info message (ℹ) and stop the spinner. Auto-clears the spinner
|
|
416
|
-
* line before displaying the message.
|
|
417
|
-
*
|
|
418
|
-
* @param text - Info message to display.
|
|
419
|
-
* @param extras - Additional values to log.
|
|
420
|
-
*
|
|
421
|
-
* @returns This spinner for chaining
|
|
422
|
-
*/
|
|
423
|
-
infoAndStop(text, ...extras) {
|
|
424
|
-
return this.#apply("info", [text, ...extras]);
|
|
425
|
-
}
|
|
426
|
-
/**
|
|
427
|
-
* Log a message to stdout without stopping the spinner. Unlike other
|
|
428
|
-
* status methods, this outputs to stdout for data logging.
|
|
429
|
-
*
|
|
430
|
-
* @param args - Values to log to stdout.
|
|
431
|
-
*
|
|
432
|
-
* @returns This spinner for chaining
|
|
433
|
-
*/
|
|
434
|
-
log(...args) {
|
|
435
|
-
logger.log(...args);
|
|
436
|
-
return this;
|
|
437
|
-
}
|
|
438
|
-
/**
|
|
439
|
-
* Log a message to stdout and stop the spinner. Auto-clears the spinner
|
|
440
|
-
* line before displaying the message.
|
|
441
|
-
*
|
|
442
|
-
* @param text - Message to display.
|
|
443
|
-
* @param extras - Additional values to log.
|
|
444
|
-
*
|
|
445
|
-
* @returns This spinner for chaining
|
|
446
|
-
*/
|
|
447
|
-
logAndStop(text, ...extras) {
|
|
448
|
-
return this.#apply("stop", [text, ...extras]);
|
|
449
|
-
}
|
|
450
|
-
/**
|
|
451
|
-
* Update progress information displayed with the spinner. Shows a
|
|
452
|
-
* progress bar with percentage and optional unit label.
|
|
453
|
-
*
|
|
454
|
-
* @param current - Current progress value.
|
|
455
|
-
* @param total - Total/maximum progress value.
|
|
456
|
-
* @param unit - Optional unit label (e.g., 'files', 'items')
|
|
457
|
-
*
|
|
458
|
-
* @returns This spinner for chaining
|
|
459
|
-
*/
|
|
460
|
-
progress = (current, total, unit) => {
|
|
461
|
-
this.#progress = {
|
|
462
|
-
__proto__: null,
|
|
463
|
-
current,
|
|
464
|
-
total,
|
|
465
|
-
...unit ? { unit } : {}
|
|
466
|
-
};
|
|
467
|
-
this.#updateSpinnerText();
|
|
468
|
-
return this;
|
|
469
|
-
};
|
|
470
|
-
/**
|
|
471
|
-
* Increment progress by a specified amount. Updates the progress bar
|
|
472
|
-
* displayed with the spinner. Clamps the result between 0 and the total
|
|
473
|
-
* value.
|
|
474
|
-
*
|
|
475
|
-
* @default amount=1
|
|
476
|
-
*
|
|
477
|
-
* @param amount - Amount to increment by.
|
|
478
|
-
*
|
|
479
|
-
* @returns This spinner for chaining
|
|
480
|
-
*/
|
|
481
|
-
progressStep(amount = 1) {
|
|
482
|
-
/* c8 ignore start */
|
|
483
|
-
if (this.#progress) {
|
|
484
|
-
const newCurrent = this.#progress.current + amount;
|
|
485
|
-
this.#progress = {
|
|
486
|
-
__proto__: null,
|
|
487
|
-
current: require_primordials_math.MathMax(0, Math.min(newCurrent, this.#progress.total)),
|
|
488
|
-
total: this.#progress.total,
|
|
489
|
-
...this.#progress.unit ? { unit: this.#progress.unit } : {}
|
|
490
|
-
};
|
|
491
|
-
this.#updateSpinnerText();
|
|
492
|
-
}
|
|
493
|
-
return this;
|
|
494
|
-
/* c8 ignore stop */
|
|
495
|
-
}
|
|
496
|
-
/**
|
|
497
|
-
* Show a skip message (↻) without stopping the spinner. Outputs to stderr
|
|
498
|
-
* and continues spinning.
|
|
499
|
-
*
|
|
500
|
-
* @param text - Skip message to display.
|
|
501
|
-
* @param extras - Additional values to log.
|
|
502
|
-
*
|
|
503
|
-
* @returns This spinner for chaining
|
|
504
|
-
*/
|
|
505
|
-
skip(text, ...extras) {
|
|
506
|
-
return this.#showStatusAndKeepSpinning("skip", [text, ...extras]);
|
|
507
|
-
}
|
|
508
|
-
/**
|
|
509
|
-
* Show a skip message (↻) and stop the spinner. Auto-clears the spinner
|
|
510
|
-
* line before displaying the message.
|
|
511
|
-
*
|
|
512
|
-
* Implementation note: Unlike other *AndStop methods (successAndStop,
|
|
513
|
-
* failAndStop, etc.), this method cannot use #apply() with a 'skip'
|
|
514
|
-
* method name because yocto-spinner doesn't have a built-in 'skip'
|
|
515
|
-
* method. Instead, we manually stop the spinner then log the message with
|
|
516
|
-
* the skip symbol.
|
|
517
|
-
*
|
|
518
|
-
* @param text - Skip message to display.
|
|
519
|
-
* @param extras - Additional values to log.
|
|
520
|
-
*
|
|
521
|
-
* @returns This spinner for chaining
|
|
522
|
-
*/
|
|
523
|
-
skipAndStop(text, ...extras) {
|
|
524
|
-
this.#apply("stop", []);
|
|
525
|
-
const normalized = require_spinner_format.normalizeText(text);
|
|
526
|
-
/* c8 ignore start */
|
|
527
|
-
if (normalized) logger.error(`${require_logger_symbols.LOG_SYMBOLS["skip"]} ${normalized}`, ...extras);
|
|
528
|
-
return this;
|
|
529
|
-
/* c8 ignore stop */
|
|
530
|
-
}
|
|
531
|
-
/**
|
|
532
|
-
* Set complete shimmer configuration. Replaces any existing shimmer
|
|
533
|
-
* config with the provided values. Undefined properties will use default
|
|
534
|
-
* values.
|
|
535
|
-
*
|
|
536
|
-
* @example
|
|
537
|
-
* spinner.setShimmer({
|
|
538
|
-
* color: [255, 0, 0],
|
|
539
|
-
* dir: 'rtl',
|
|
540
|
-
* speed: 0.5,
|
|
541
|
-
* })
|
|
542
|
-
*
|
|
543
|
-
* @param config - Complete shimmer configuration.
|
|
544
|
-
*
|
|
545
|
-
* @returns This spinner for chaining
|
|
546
|
-
*/
|
|
547
|
-
setShimmer(config) {
|
|
548
|
-
this.#shimmer = {
|
|
549
|
-
__proto__: null,
|
|
550
|
-
color: config.color ?? "inherit",
|
|
551
|
-
direction: config.dir ?? "ltr",
|
|
552
|
-
speed: config.speed ?? 1 / 3,
|
|
553
|
-
frame: 0
|
|
554
|
-
};
|
|
555
|
-
this.#shimmerSavedConfig = this.#shimmer;
|
|
556
|
-
this.#updateSpinnerText();
|
|
557
|
-
return this;
|
|
558
|
-
}
|
|
559
|
-
/**
|
|
560
|
-
* Start the spinner animation with optional text. Begins displaying the
|
|
561
|
-
* animated spinner on stderr.
|
|
562
|
-
*
|
|
563
|
-
* @param text - Optional text to display with the spinner.
|
|
564
|
-
*
|
|
565
|
-
* @returns This spinner for chaining
|
|
566
|
-
*/
|
|
567
|
-
start(...args) {
|
|
568
|
-
/* c8 ignore start */
|
|
569
|
-
if (args.length) {
|
|
570
|
-
const normalized = require_spinner_format.normalizeText(require_primordials_array.ArrayPrototypeAt(args, 0));
|
|
571
|
-
if (!normalized) {
|
|
572
|
-
this.#baseText = "";
|
|
573
|
-
super.text = "";
|
|
574
|
-
} else this.#baseText = normalized;
|
|
575
|
-
}
|
|
576
|
-
/* c8 ignore stop */
|
|
577
|
-
this.#updateSpinnerText();
|
|
578
|
-
return this.#apply("start", []);
|
|
579
|
-
}
|
|
580
|
-
/**
|
|
581
|
-
* Log a main step message to stderr without stopping the spinner. Adds a
|
|
582
|
-
* blank line before the message for visual separation. Aligns with
|
|
583
|
-
* `logger.step()` to use stderr for status messages.
|
|
584
|
-
*
|
|
585
|
-
* @param text - Step message to display.
|
|
586
|
-
* @param extras - Additional values to log.
|
|
587
|
-
*
|
|
588
|
-
* @returns This spinner for chaining
|
|
589
|
-
*/
|
|
590
|
-
step(text, ...extras) {
|
|
591
|
-
/* c8 ignore start */
|
|
592
|
-
if (typeof text === "string") {
|
|
593
|
-
logger.error("");
|
|
594
|
-
logger.error(text, ...extras);
|
|
595
|
-
}
|
|
596
|
-
return this;
|
|
597
|
-
/* c8 ignore stop */
|
|
598
|
-
}
|
|
599
|
-
/**
|
|
600
|
-
* Stop the spinner animation and clear internal state. Auto-clears the
|
|
601
|
-
* spinner line via yocto-spinner.stop(). Resets progress, shimmer, and
|
|
602
|
-
* text state.
|
|
603
|
-
*
|
|
604
|
-
* @param text - Optional final text to display after stopping.
|
|
605
|
-
*
|
|
606
|
-
* @returns This spinner for chaining
|
|
607
|
-
*/
|
|
608
|
-
stop(...args) {
|
|
609
|
-
this.#baseText = "";
|
|
610
|
-
this.#progress = void 0;
|
|
611
|
-
this.#shimmer = void 0;
|
|
612
|
-
return this.#apply("stop", args);
|
|
613
|
-
}
|
|
614
|
-
/**
|
|
615
|
-
* Log an indented substep message to stderr without stopping the spinner.
|
|
616
|
-
* Adds 2-space indentation to the message. Aligns with `logger.substep()`
|
|
617
|
-
* to use stderr for status messages.
|
|
618
|
-
*
|
|
619
|
-
* @param text - Substep message to display.
|
|
620
|
-
* @param extras - Additional values to log.
|
|
621
|
-
*
|
|
622
|
-
* @returns This spinner for chaining
|
|
623
|
-
*/
|
|
624
|
-
substep(text, ...extras) {
|
|
625
|
-
/* c8 ignore start */
|
|
626
|
-
if (typeof text === "string") logger.error(` ${text}`, ...extras);
|
|
627
|
-
return this;
|
|
628
|
-
/* c8 ignore stop */
|
|
629
|
-
}
|
|
630
|
-
/**
|
|
631
|
-
* Show a success message (✓) without stopping the spinner. DESIGN
|
|
632
|
-
* DECISION: Unlike yocto-spinner, our `success()` does NOT stop the
|
|
633
|
-
* spinner. This allows displaying success messages while continuing to
|
|
634
|
-
* spin for multi-step operations. Use `successAndStop()` if you want to
|
|
635
|
-
* stop the spinner.
|
|
636
|
-
*
|
|
637
|
-
* @param text - Success message to display.
|
|
638
|
-
* @param extras - Additional values to log.
|
|
639
|
-
*
|
|
640
|
-
* @returns This spinner for chaining
|
|
641
|
-
*/
|
|
642
|
-
success(text, ...extras) {
|
|
643
|
-
return this.#showStatusAndKeepSpinning("success", [text, ...extras]);
|
|
644
|
-
}
|
|
645
|
-
/**
|
|
646
|
-
* Show a success message (✓) and stop the spinner. Auto-clears the
|
|
647
|
-
* spinner line before displaying the success message.
|
|
648
|
-
*
|
|
649
|
-
* @param text - Success message to display.
|
|
650
|
-
* @param extras - Additional values to log.
|
|
651
|
-
*
|
|
652
|
-
* @returns This spinner for chaining
|
|
653
|
-
*/
|
|
654
|
-
successAndStop(text, ...extras) {
|
|
655
|
-
return this.#apply("success", [text, ...extras]);
|
|
656
|
-
}
|
|
657
|
-
text(value) {
|
|
658
|
-
if (arguments.length === 0) return this.#baseText;
|
|
659
|
-
this.#baseText = value ?? "";
|
|
660
|
-
this.#updateSpinnerText();
|
|
661
|
-
return this;
|
|
662
|
-
}
|
|
663
|
-
/**
|
|
664
|
-
* Update partial shimmer configuration. Merges with existing config,
|
|
665
|
-
* enabling shimmer if currently disabled.
|
|
666
|
-
*
|
|
667
|
-
* @example
|
|
668
|
-
* // Update just the speed
|
|
669
|
-
* spinner.updateShimmer({ speed: 0.5 })
|
|
670
|
-
*
|
|
671
|
-
* // Update direction
|
|
672
|
-
* spinner.updateShimmer({ dir: 'rtl' })
|
|
673
|
-
*
|
|
674
|
-
* // Update multiple properties
|
|
675
|
-
* spinner.updateShimmer({ color: [255, 0, 0], speed: 0.8 })
|
|
676
|
-
*
|
|
677
|
-
* @param config - Partial shimmer configuration to merge.
|
|
678
|
-
*
|
|
679
|
-
* @returns This spinner for chaining
|
|
680
|
-
*/
|
|
681
|
-
updateShimmer(config) {
|
|
682
|
-
/* c8 ignore start */
|
|
683
|
-
const partialConfig = {
|
|
684
|
-
__proto__: null,
|
|
685
|
-
...config
|
|
686
|
-
};
|
|
687
|
-
const update = { __proto__: null };
|
|
688
|
-
if (partialConfig.color !== void 0) update.color = partialConfig.color;
|
|
689
|
-
if (partialConfig.dir !== void 0) update.direction = partialConfig.dir;
|
|
690
|
-
if (partialConfig.speed !== void 0) update.speed = partialConfig.speed;
|
|
691
|
-
if (this.#shimmer) this.#shimmer = {
|
|
692
|
-
...this.#shimmer,
|
|
693
|
-
...update
|
|
694
|
-
};
|
|
695
|
-
else if (this.#shimmerSavedConfig) this.#shimmer = {
|
|
696
|
-
...this.#shimmerSavedConfig,
|
|
697
|
-
...update,
|
|
698
|
-
frame: 0
|
|
699
|
-
};
|
|
700
|
-
else this.#shimmer = {
|
|
701
|
-
__proto__: null,
|
|
702
|
-
color: require_spinner_format.COLOR_INHERIT,
|
|
703
|
-
direction: "ltr",
|
|
704
|
-
speed: 1 / 3,
|
|
705
|
-
frame: 0,
|
|
706
|
-
...update
|
|
707
|
-
};
|
|
708
|
-
this.#shimmerSavedConfig = this.#shimmer;
|
|
709
|
-
this.#updateSpinnerText();
|
|
710
|
-
return this;
|
|
711
|
-
/* c8 ignore stop */
|
|
712
|
-
}
|
|
713
|
-
/**
|
|
714
|
-
* Show a warning message (⚠) without stopping the spinner. Outputs to
|
|
715
|
-
* stderr and continues spinning.
|
|
716
|
-
*
|
|
717
|
-
* @param text - Warning message to display.
|
|
718
|
-
* @param extras - Additional values to log.
|
|
719
|
-
*
|
|
720
|
-
* @returns This spinner for chaining
|
|
721
|
-
*/
|
|
722
|
-
warn(text, ...extras) {
|
|
723
|
-
return this.#showStatusAndKeepSpinning("warn", [text, ...extras]);
|
|
724
|
-
}
|
|
725
|
-
/**
|
|
726
|
-
* Show a warning message (⚠) and stop the spinner. Auto-clears the
|
|
727
|
-
* spinner line before displaying the warning message.
|
|
728
|
-
*
|
|
729
|
-
* @param text - Warning message to display.
|
|
730
|
-
* @param extras - Additional values to log.
|
|
731
|
-
*
|
|
732
|
-
* @returns This spinner for chaining
|
|
733
|
-
*/
|
|
734
|
-
warnAndStop(text, ...extras) {
|
|
735
|
-
return this.#apply("warning", [text, ...extras]);
|
|
736
|
-
}
|
|
737
|
-
};
|
|
738
|
-
require_primordials_object.ObjectDefineProperties(_Spinner.prototype, {
|
|
739
|
-
error: require_spinner_format.desc(_Spinner.prototype.fail),
|
|
740
|
-
errorAndStop: require_spinner_format.desc(_Spinner.prototype.failAndStop),
|
|
741
|
-
warning: require_spinner_format.desc(_Spinner.prototype.warn),
|
|
742
|
-
warningAndStop: require_spinner_format.desc(_Spinner.prototype.warnAndStop)
|
|
743
|
-
});
|
|
744
|
-
/* c8 ignore start */
|
|
745
|
-
_defaultSpinner = /* @__PURE__ */ require_env_ci.getCI() ? require_spinner_format.ciSpinner : /* @__PURE__ */ require_spinner_default.getCliSpinners("socket");
|
|
56
|
+
SpinnerCtor = require_spinner_create_spinner_class.createSpinnerClass(YoctoSpinnerClass, require_logger_default.getDefaultLogger());
|
|
57
|
+
/* c8 ignore start - getCI() returns false in test runs so the CI arm is unexercised */
|
|
58
|
+
defaultSpinnerStyle = require_env_ci.getCI() ? require_spinner_format.ciSpinner : require_spinner_default.getCliSpinners("socket");
|
|
746
59
|
}
|
|
747
|
-
return new
|
|
748
|
-
spinner:
|
|
60
|
+
return new SpinnerCtor({
|
|
61
|
+
spinner: defaultSpinnerStyle,
|
|
749
62
|
...options
|
|
750
63
|
});
|
|
751
64
|
}
|