@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
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4
4
|
const require_runtime = require('../_virtual/_rolldown/runtime.js');
|
|
5
5
|
const require_primordials_error = require('../primordials/error.js');
|
|
6
6
|
const require_primordials_string = require('../primordials/string.js');
|
|
7
|
+
const require_primordials_object = require('../primordials/object.js');
|
|
7
8
|
let node_path = require("node:path");
|
|
8
9
|
node_path = require_runtime.__toESM(node_path);
|
|
9
10
|
|
|
@@ -16,23 +17,6 @@ node_path = require_runtime.__toESM(node_path);
|
|
|
16
17
|
* no callers outside this directory.
|
|
17
18
|
*/
|
|
18
19
|
/**
|
|
19
|
-
* Strip the trailing extension from a filename when it matches one of `exts`.
|
|
20
|
-
* Returns the input unchanged when the trailing extname isn't in the set.
|
|
21
|
-
* Case-insensitive on the extension — preserves the rest of the path's casing.
|
|
22
|
-
*
|
|
23
|
-
* The `exts` set decides what counts. Pass `BROTLI_EXTS` / `GZIP_EXTS` for the
|
|
24
|
-
* canonical compression sets, or your own set for custom classifiers.
|
|
25
|
-
*
|
|
26
|
-
* Generic — it does NOT know that `.tgz` is short for `.tar.gz`. Callers that
|
|
27
|
-
* need that convention compose this with their own follow-up (see
|
|
28
|
-
* `decompressGzipFile` for the canonical example).
|
|
29
|
-
*/
|
|
30
|
-
function stripExt(filePath, exts) {
|
|
31
|
-
const ext = node_path.default.extname(filePath);
|
|
32
|
-
if (!exts.has(require_primordials_string.StringPrototypeToLowerCase(ext))) return filePath;
|
|
33
|
-
return filePath.slice(0, -ext.length);
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
20
|
* Disambiguate the `(src, dest, options?)` and `(src, options)` call shapes.
|
|
37
21
|
* Returns the resolved destPath, options, and inPlace flag. Validates that the
|
|
38
22
|
* explicit destPath is not the same as srcPath, since same-path streams would
|
|
@@ -41,14 +25,14 @@ function stripExt(filePath, exts) {
|
|
|
41
25
|
function resolveFileArgs(fnName, srcPath, destOrOptions, maybeOptions, computeInPlaceDest) {
|
|
42
26
|
if (typeof destOrOptions === "string") {
|
|
43
27
|
if (srcPath === destOrOptions) throw new require_primordials_error.ErrorCtor(`${fnName}: srcPath and destPath must differ; got ${srcPath}`);
|
|
44
|
-
return
|
|
28
|
+
return require_primordials_object.ObjectFreeze({
|
|
45
29
|
__proto__: null,
|
|
46
30
|
destPath: destOrOptions,
|
|
47
31
|
options: maybeOptions,
|
|
48
32
|
inPlace: false
|
|
49
33
|
});
|
|
50
34
|
}
|
|
51
|
-
if (destOrOptions?.inPlace) return
|
|
35
|
+
if (destOrOptions?.inPlace) return require_primordials_object.ObjectFreeze({
|
|
52
36
|
__proto__: null,
|
|
53
37
|
destPath: computeInPlaceDest(srcPath),
|
|
54
38
|
options: destOrOptions,
|
|
@@ -56,6 +40,23 @@ function resolveFileArgs(fnName, srcPath, destOrOptions, maybeOptions, computeIn
|
|
|
56
40
|
});
|
|
57
41
|
throw new require_primordials_error.ErrorCtor(`${fnName}: missing destPath; pass an explicit destination or { inPlace: true }`);
|
|
58
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Strip the trailing extension from a filename when it matches one of `exts`.
|
|
45
|
+
* Returns the input unchanged when the trailing extname isn't in the set.
|
|
46
|
+
* Case-insensitive on the extension — preserves the rest of the path's casing.
|
|
47
|
+
*
|
|
48
|
+
* The `exts` set decides what counts. Pass `BROTLI_EXTS` / `GZIP_EXTS` for the
|
|
49
|
+
* canonical compression sets, or your own set for custom classifiers.
|
|
50
|
+
*
|
|
51
|
+
* Generic — it does NOT know that `.tgz` is short for `.tar.gz`. Callers that
|
|
52
|
+
* need that convention compose this with their own follow-up (see
|
|
53
|
+
* `decompressGzipFile` for the canonical example).
|
|
54
|
+
*/
|
|
55
|
+
function stripExt(filePath, exts) {
|
|
56
|
+
const ext = node_path.default.extname(filePath);
|
|
57
|
+
if (!exts.has(require_primordials_string.StringPrototypeToLowerCase(ext))) return filePath;
|
|
58
|
+
return filePath.slice(0, -ext.length);
|
|
59
|
+
}
|
|
59
60
|
|
|
60
61
|
//#endregion
|
|
61
62
|
exports.resolveFileArgs = resolveFileArgs;
|
|
@@ -6,28 +6,18 @@
|
|
|
6
6
|
* compressBrotliFile('input.json', 'input.json.br')
|
|
7
7
|
* readable.pipe(createBrotliCompressor()).pipe(writable)
|
|
8
8
|
*/
|
|
9
|
-
import { Buffer } from 'node:buffer';
|
|
10
|
-
import {
|
|
9
|
+
import type { Buffer } from 'node:buffer';
|
|
10
|
+
import type { BrotliOptions } from 'node:zlib';
|
|
11
11
|
import type { CompressFileOptions, CompressOptions } from './types';
|
|
12
|
+
export declare const BROTLI_EXTS: ReadonlySet<string>;
|
|
12
13
|
interface ResolvedBrotliOptions extends BrotliOptions {
|
|
13
14
|
params: NonNullable<BrotliOptions['params']>;
|
|
14
15
|
}
|
|
15
|
-
/**
|
|
16
|
-
* Translate `CompressOptions` into the `BrotliOptions` zlib expects. Defaults
|
|
17
|
-
* `quality` to 11 (max) when not provided, and forwards a positive `size` hint.
|
|
18
|
-
* Exposed for callers building their own zlib pipelines and for unit-test
|
|
19
|
-
* coverage.
|
|
20
|
-
*/
|
|
21
|
-
export declare function resolveBrotliOptions(options: CompressOptions | undefined): ResolvedBrotliOptions;
|
|
22
16
|
/**
|
|
23
17
|
* Compress a string or Buffer with brotli. Strings are encoded as UTF-8 before
|
|
24
18
|
* compression — pass an explicit Buffer if you have non-UTF-8 input.
|
|
25
19
|
*/
|
|
26
20
|
export declare function compressBrotli(input: string | Buffer, options?: CompressOptions | undefined): Promise<Buffer>;
|
|
27
|
-
/**
|
|
28
|
-
* Decompress a brotli-compressed Buffer.
|
|
29
|
-
*/
|
|
30
|
-
export declare function decompressBrotli(input: Buffer): Promise<Buffer>;
|
|
31
21
|
/**
|
|
32
22
|
* Stream-compress a file with brotli. Two call shapes:
|
|
33
23
|
*
|
|
@@ -42,6 +32,20 @@ export declare function decompressBrotli(input: Buffer): Promise<Buffer>;
|
|
|
42
32
|
*/
|
|
43
33
|
export declare function compressBrotliFile(srcPath: string, destPath: string, options?: CompressOptions | undefined): Promise<string>;
|
|
44
34
|
export declare function compressBrotliFile(srcPath: string, options: CompressFileOptions): Promise<string>;
|
|
35
|
+
/**
|
|
36
|
+
* Create a brotli compress transform stream. Compose into your own pipeline.
|
|
37
|
+
* The `pipeline` from `node:stream/promises` is the safe way to wire it up — it
|
|
38
|
+
* handles error propagation across all stages.
|
|
39
|
+
*/
|
|
40
|
+
export declare function createBrotliCompressor(options?: CompressOptions | undefined): import("zlib").BrotliCompress;
|
|
41
|
+
/**
|
|
42
|
+
* Create a brotli decompress transform stream.
|
|
43
|
+
*/
|
|
44
|
+
export declare function createBrotliDecompressor(): import("zlib").BrotliDecompress;
|
|
45
|
+
/**
|
|
46
|
+
* Decompress a brotli-compressed Buffer.
|
|
47
|
+
*/
|
|
48
|
+
export declare function decompressBrotli(input: Buffer): Promise<Buffer>;
|
|
45
49
|
/**
|
|
46
50
|
* Stream-decompress a brotli file. Two call shapes:
|
|
47
51
|
*
|
|
@@ -57,15 +61,10 @@ export declare function compressBrotliFile(srcPath: string, options: CompressFil
|
|
|
57
61
|
export declare function decompressBrotliFile(srcPath: string, destPath: string): Promise<string>;
|
|
58
62
|
export declare function decompressBrotliFile(srcPath: string, options: CompressFileOptions): Promise<string>;
|
|
59
63
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* handles error propagation across all stages.
|
|
63
|
-
*/
|
|
64
|
-
export declare function createBrotliCompressor(options?: CompressOptions | undefined): import("zlib").BrotliCompress;
|
|
65
|
-
/**
|
|
66
|
-
* Create a brotli decompress transform stream.
|
|
64
|
+
* Extension check for brotli paths — matches `.br` / `.brotli`
|
|
65
|
+
* (case-insensitive). Naming follows node:path's `extname`.
|
|
67
66
|
*/
|
|
68
|
-
export declare function
|
|
67
|
+
export declare function hasBrotliExt(filePath: string): boolean;
|
|
69
68
|
/**
|
|
70
69
|
* Cheap pre-flight check: does the buffer look like it could be brotli? Returns
|
|
71
70
|
* false for inputs too short to be valid. Brotli has no fixed magic bytes, so
|
|
@@ -73,10 +72,11 @@ export declare function createBrotliDecompressor(): import("zlib").BrotliDecompr
|
|
|
73
72
|
* `decompressBrotli(buf)` succeeding. Use for UI hints, not correctness.
|
|
74
73
|
*/
|
|
75
74
|
export declare function isBrotliCompressed(input: Buffer): boolean;
|
|
76
|
-
export declare const BROTLI_EXTS: ReadonlySet<string>;
|
|
77
75
|
/**
|
|
78
|
-
*
|
|
79
|
-
* (
|
|
76
|
+
* Translate `CompressOptions` into the `BrotliOptions` zlib expects. Defaults
|
|
77
|
+
* `quality` to 11 (max) when not provided, and forwards a positive `size` hint.
|
|
78
|
+
* Exposed for callers building their own zlib pipelines and for unit-test
|
|
79
|
+
* coverage.
|
|
80
80
|
*/
|
|
81
|
-
export declare function
|
|
81
|
+
export declare function resolveBrotliOptions(options: CompressOptions | undefined): ResolvedBrotliOptions;
|
|
82
82
|
export {};
|
|
@@ -2,8 +2,10 @@
|
|
|
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_buffer = require('../primordials/buffer.js');
|
|
5
6
|
const require_primordials_error = require('../primordials/error.js');
|
|
6
7
|
const require_primordials_string = require('../primordials/string.js');
|
|
8
|
+
const require_primordials_map_set = require('../primordials/map-set.js');
|
|
7
9
|
const require_fs_safe = require('../fs/safe.js');
|
|
8
10
|
const require_compression__internal = require('./_internal.js');
|
|
9
11
|
let node_fs = require("node:fs");
|
|
@@ -12,62 +14,28 @@ node_path = require_runtime.__toESM(node_path);
|
|
|
12
14
|
let node_util = require("node:util");
|
|
13
15
|
let node_stream_promises = require("node:stream/promises");
|
|
14
16
|
let node_zlib = require("node:zlib");
|
|
15
|
-
let node_buffer = require("node:buffer");
|
|
16
17
|
|
|
17
18
|
//#region src/compression/brotli.ts
|
|
18
|
-
/**
|
|
19
|
-
* @file Brotli compression / decompression — in-memory, file-to-file, and
|
|
20
|
-
* raw-stream variants. Default quality is 11 (max compression, slow) on the
|
|
21
|
-
* assumption these are one-shot CLI calls. Override via `options.level` for
|
|
22
|
-
* hot paths. await compressBrotli(JSON.stringify(payload)) await
|
|
23
|
-
* compressBrotliFile('input.json', 'input.json.br')
|
|
24
|
-
* readable.pipe(createBrotliCompressor()).pipe(writable)
|
|
25
|
-
*/
|
|
26
19
|
const brotliCompressAsync = (0, node_util.promisify)(node_zlib.brotliCompress);
|
|
27
20
|
const brotliDecompressAsync = (0, node_util.promisify)(node_zlib.brotliDecompress);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
* `quality` to 11 (max) when not provided, and forwards a positive `size` hint.
|
|
31
|
-
* Exposed for callers building their own zlib pipelines and for unit-test
|
|
32
|
-
* coverage.
|
|
33
|
-
*/
|
|
34
|
-
function resolveBrotliOptions(options) {
|
|
35
|
-
const level = options?.level ?? 11;
|
|
36
|
-
const params = { [node_zlib.constants.BROTLI_PARAM_QUALITY]: level };
|
|
37
|
-
if (options?.size !== void 0 && options.size > 0) params[node_zlib.constants.BROTLI_PARAM_SIZE_HINT] = options.size;
|
|
38
|
-
return { params };
|
|
39
|
-
}
|
|
21
|
+
const BROTLI_MIN_LEN = 4;
|
|
22
|
+
const BROTLI_EXTS = new require_primordials_map_set.SetCtor([".br", ".brotli"]);
|
|
40
23
|
/**
|
|
41
24
|
* Compress a string or Buffer with brotli. Strings are encoded as UTF-8 before
|
|
42
25
|
* compression — pass an explicit Buffer if you have non-UTF-8 input.
|
|
43
26
|
*/
|
|
44
27
|
async function compressBrotli(input, options) {
|
|
45
|
-
const buf = typeof input === "string" ?
|
|
28
|
+
const buf = typeof input === "string" ? require_primordials_buffer.BufferFrom(input, "utf8") : input;
|
|
46
29
|
const opts = resolveBrotliOptions(options);
|
|
47
30
|
if (opts.params[node_zlib.constants.BROTLI_PARAM_SIZE_HINT] === void 0) opts.params[node_zlib.constants.BROTLI_PARAM_SIZE_HINT] = buf.byteLength;
|
|
48
31
|
return await brotliCompressAsync(buf, opts);
|
|
49
32
|
}
|
|
50
|
-
/**
|
|
51
|
-
* Decompress a brotli-compressed Buffer.
|
|
52
|
-
*/
|
|
53
|
-
async function decompressBrotli(input) {
|
|
54
|
-
return await brotliDecompressAsync(input);
|
|
55
|
-
}
|
|
56
33
|
async function compressBrotliFile(srcPath, destOrOptions, maybeOptions) {
|
|
57
34
|
const { destPath, options, inPlace } = require_compression__internal.resolveFileArgs("compressBrotliFile", srcPath, destOrOptions, maybeOptions, (p) => `${p}.br`);
|
|
58
35
|
await (0, node_stream_promises.pipeline)((0, node_fs.createReadStream)(srcPath), (0, node_zlib.createBrotliCompress)(resolveBrotliOptions(options)), (0, node_fs.createWriteStream)(destPath));
|
|
59
36
|
if (inPlace) await require_fs_safe.safeDelete(srcPath);
|
|
60
37
|
return destPath;
|
|
61
38
|
}
|
|
62
|
-
async function decompressBrotliFile(srcPath, destOrOptions) {
|
|
63
|
-
const { destPath, inPlace } = require_compression__internal.resolveFileArgs("decompressBrotliFile", srcPath, destOrOptions, void 0, (p) => {
|
|
64
|
-
if (!hasBrotliExt(p)) throw new require_primordials_error.ErrorCtor(`decompressBrotliFile: ${p} has no .br/.brotli extension; can't infer destination`);
|
|
65
|
-
return require_compression__internal.stripExt(p, BROTLI_EXTS);
|
|
66
|
-
});
|
|
67
|
-
await (0, node_stream_promises.pipeline)((0, node_fs.createReadStream)(srcPath), (0, node_zlib.createBrotliDecompress)(), (0, node_fs.createWriteStream)(destPath));
|
|
68
|
-
if (inPlace) await require_fs_safe.safeDelete(srcPath);
|
|
69
|
-
return destPath;
|
|
70
|
-
}
|
|
71
39
|
/**
|
|
72
40
|
* Create a brotli compress transform stream. Compose into your own pipeline.
|
|
73
41
|
* The `pipeline` from `node:stream/promises` is the safe way to wire it up — it
|
|
@@ -82,7 +50,28 @@ function createBrotliCompressor(options) {
|
|
|
82
50
|
function createBrotliDecompressor() {
|
|
83
51
|
return (0, node_zlib.createBrotliDecompress)();
|
|
84
52
|
}
|
|
85
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Decompress a brotli-compressed Buffer.
|
|
55
|
+
*/
|
|
56
|
+
async function decompressBrotli(input) {
|
|
57
|
+
return await brotliDecompressAsync(input);
|
|
58
|
+
}
|
|
59
|
+
async function decompressBrotliFile(srcPath, destOrOptions) {
|
|
60
|
+
const { destPath, inPlace } = require_compression__internal.resolveFileArgs("decompressBrotliFile", srcPath, destOrOptions, void 0, (p) => {
|
|
61
|
+
if (!hasBrotliExt(p)) throw new require_primordials_error.ErrorCtor(`decompressBrotliFile: ${p} has no .br/.brotli extension; can't infer destination`);
|
|
62
|
+
return require_compression__internal.stripExt(p, BROTLI_EXTS);
|
|
63
|
+
});
|
|
64
|
+
await (0, node_stream_promises.pipeline)((0, node_fs.createReadStream)(srcPath), (0, node_zlib.createBrotliDecompress)(), (0, node_fs.createWriteStream)(destPath));
|
|
65
|
+
if (inPlace) await require_fs_safe.safeDelete(srcPath);
|
|
66
|
+
return destPath;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Extension check for brotli paths — matches `.br` / `.brotli`
|
|
70
|
+
* (case-insensitive). Naming follows node:path's `extname`.
|
|
71
|
+
*/
|
|
72
|
+
function hasBrotliExt(filePath) {
|
|
73
|
+
return BROTLI_EXTS.has(require_primordials_string.StringPrototypeToLowerCase(node_path.default.extname(filePath)));
|
|
74
|
+
}
|
|
86
75
|
/**
|
|
87
76
|
* Cheap pre-flight check: does the buffer look like it could be brotli? Returns
|
|
88
77
|
* false for inputs too short to be valid. Brotli has no fixed magic bytes, so
|
|
@@ -90,15 +79,19 @@ const BROTLI_MIN_LEN = 4;
|
|
|
90
79
|
* `decompressBrotli(buf)` succeeding. Use for UI hints, not correctness.
|
|
91
80
|
*/
|
|
92
81
|
function isBrotliCompressed(input) {
|
|
93
|
-
return
|
|
82
|
+
return require_primordials_buffer.BufferIsBuffer(input) && input.byteLength >= BROTLI_MIN_LEN;
|
|
94
83
|
}
|
|
95
|
-
const BROTLI_EXTS = new Set([".br", ".brotli"]);
|
|
96
84
|
/**
|
|
97
|
-
*
|
|
98
|
-
* (
|
|
85
|
+
* Translate `CompressOptions` into the `BrotliOptions` zlib expects. Defaults
|
|
86
|
+
* `quality` to 11 (max) when not provided, and forwards a positive `size` hint.
|
|
87
|
+
* Exposed for callers building their own zlib pipelines and for unit-test
|
|
88
|
+
* coverage.
|
|
99
89
|
*/
|
|
100
|
-
function
|
|
101
|
-
|
|
90
|
+
function resolveBrotliOptions(options) {
|
|
91
|
+
const level = options?.level ?? 11;
|
|
92
|
+
const params = { [node_zlib.constants.BROTLI_PARAM_QUALITY]: level };
|
|
93
|
+
if (options?.size !== void 0 && options.size > 0) params[node_zlib.constants.BROTLI_PARAM_SIZE_HINT] = options.size;
|
|
94
|
+
return { params };
|
|
102
95
|
}
|
|
103
96
|
|
|
104
97
|
//#endregion
|
|
@@ -7,25 +7,15 @@
|
|
|
7
7
|
* await compressGzipFile('input.json', 'input.json.gz')
|
|
8
8
|
* readable.pipe(createGzipCompressor()).pipe(writable)
|
|
9
9
|
*/
|
|
10
|
-
import { Buffer } from 'node:buffer';
|
|
11
|
-
import {
|
|
10
|
+
import type { Buffer } from 'node:buffer';
|
|
11
|
+
import type { ZlibOptions } from 'node:zlib';
|
|
12
12
|
import type { CompressFileOptions, CompressOptions } from './types';
|
|
13
|
-
|
|
14
|
-
* Translate `CompressOptions` into the `ZlibOptions` zlib expects. Returns an
|
|
15
|
-
* empty options object when no `level` is given (zlib uses its default, level
|
|
16
|
-
* 6). Exposed for parity with `resolveBrotliOptions` and for unit-test
|
|
17
|
-
* coverage.
|
|
18
|
-
*/
|
|
19
|
-
export declare function resolveGzipOptions(options: CompressOptions | undefined): ZlibOptions;
|
|
13
|
+
export declare const GZIP_EXTS: ReadonlySet<string>;
|
|
20
14
|
/**
|
|
21
15
|
* Compress a string or Buffer with gzip. Strings are encoded as UTF-8 before
|
|
22
16
|
* compression. Default level is 6 (zlib default).
|
|
23
17
|
*/
|
|
24
18
|
export declare function compressGzip(input: string | Buffer, options?: CompressOptions | undefined): Promise<Buffer>;
|
|
25
|
-
/**
|
|
26
|
-
* Decompress a gzip-compressed Buffer.
|
|
27
|
-
*/
|
|
28
|
-
export declare function decompressGzip(input: Buffer): Promise<Buffer>;
|
|
29
19
|
/**
|
|
30
20
|
* Stream-compress a file with gzip. Two call shapes:
|
|
31
21
|
*
|
|
@@ -37,6 +27,18 @@ export declare function decompressGzip(input: Buffer): Promise<Buffer>;
|
|
|
37
27
|
*/
|
|
38
28
|
export declare function compressGzipFile(srcPath: string, destPath: string, options?: CompressOptions | undefined): Promise<string>;
|
|
39
29
|
export declare function compressGzipFile(srcPath: string, options: CompressFileOptions): Promise<string>;
|
|
30
|
+
/**
|
|
31
|
+
* Create a gzip compress transform stream.
|
|
32
|
+
*/
|
|
33
|
+
export declare function createGzipCompressor(options?: CompressOptions | undefined): import("zlib").Gzip;
|
|
34
|
+
/**
|
|
35
|
+
* Create a gzip decompress transform stream.
|
|
36
|
+
*/
|
|
37
|
+
export declare function createGzipDecompressor(): import("zlib").Gunzip;
|
|
38
|
+
/**
|
|
39
|
+
* Decompress a gzip-compressed Buffer.
|
|
40
|
+
*/
|
|
41
|
+
export declare function decompressGzip(input: Buffer): Promise<Buffer>;
|
|
40
42
|
/**
|
|
41
43
|
* Stream-decompress a gzip file. Two call shapes:
|
|
42
44
|
*
|
|
@@ -50,21 +52,19 @@ export declare function compressGzipFile(srcPath: string, options: CompressFileO
|
|
|
50
52
|
export declare function decompressGzipFile(srcPath: string, destPath: string): Promise<string>;
|
|
51
53
|
export declare function decompressGzipFile(srcPath: string, options: CompressFileOptions): Promise<string>;
|
|
52
54
|
/**
|
|
53
|
-
*
|
|
54
|
-
|
|
55
|
-
export declare function createGzipCompressor(options?: CompressOptions | undefined): import("zlib").Gzip;
|
|
56
|
-
/**
|
|
57
|
-
* Create a gzip decompress transform stream.
|
|
55
|
+
* Extension check for gzip paths — matches `.gz` / `.gzip` / `.tgz`
|
|
56
|
+
* (case-insensitive). Naming follows node:path's `extname`.
|
|
58
57
|
*/
|
|
59
|
-
export declare function
|
|
58
|
+
export declare function hasGzipExt(filePath: string): boolean;
|
|
60
59
|
/**
|
|
61
60
|
* Magic-byte check for gzip. Reads the first two bytes and matches the gzip
|
|
62
61
|
* spec's 0x1f 0x8b signature. Authoritative.
|
|
63
62
|
*/
|
|
64
63
|
export declare function isGzipCompressed(input: Buffer): boolean;
|
|
65
|
-
export declare const GZIP_EXTS: ReadonlySet<string>;
|
|
66
64
|
/**
|
|
67
|
-
*
|
|
68
|
-
* (
|
|
65
|
+
* Translate `CompressOptions` into the `ZlibOptions` zlib expects. Returns an
|
|
66
|
+
* empty options object when no `level` is given (zlib uses its default, level
|
|
67
|
+
* 6). Exposed for parity with `resolveBrotliOptions` and for unit-test
|
|
68
|
+
* coverage.
|
|
69
69
|
*/
|
|
70
|
-
export declare function
|
|
70
|
+
export declare function resolveGzipOptions(options: CompressOptions | undefined): ZlibOptions;
|
package/dist/compression/gzip.js
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
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_buffer = require('../primordials/buffer.js');
|
|
5
6
|
const require_primordials_error = require('../primordials/error.js');
|
|
6
7
|
const require_primordials_string = require('../primordials/string.js');
|
|
8
|
+
const require_primordials_map_set = require('../primordials/map-set.js');
|
|
7
9
|
const require_fs_safe = require('../fs/safe.js');
|
|
8
10
|
const require_compression__internal = require('./_internal.js');
|
|
9
11
|
let node_fs = require("node:fs");
|
|
@@ -12,46 +14,23 @@ node_path = require_runtime.__toESM(node_path);
|
|
|
12
14
|
let node_util = require("node:util");
|
|
13
15
|
let node_stream_promises = require("node:stream/promises");
|
|
14
16
|
let node_zlib = require("node:zlib");
|
|
15
|
-
let node_buffer = require("node:buffer");
|
|
16
17
|
|
|
17
18
|
//#region src/compression/gzip.ts
|
|
18
|
-
/**
|
|
19
|
-
* @file Gzip compression / decompression — same calling shapes as brotli:
|
|
20
|
-
* in-memory, file-to-file, and raw-stream variants. Default level is 6 (zlib
|
|
21
|
-
* default). The decompress-file helper recognises `.gz` / `.gzip` / `.tgz`,
|
|
22
|
-
* and special-cases `.tgz` back to `.tar` on inPlace decompress so a
|
|
23
|
-
* round-trip stays lossless. await compressGzip(JSON.stringify(payload))
|
|
24
|
-
* await compressGzipFile('input.json', 'input.json.gz')
|
|
25
|
-
* readable.pipe(createGzipCompressor()).pipe(writable)
|
|
26
|
-
*/
|
|
27
19
|
const gzipAsync = (0, node_util.promisify)(node_zlib.gzip);
|
|
28
20
|
const gunzipAsync = (0, node_util.promisify)(node_zlib.gunzip);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const level = options?.level;
|
|
37
|
-
if (level === void 0) return { __proto__: null };
|
|
38
|
-
return {
|
|
39
|
-
__proto__: null,
|
|
40
|
-
level
|
|
41
|
-
};
|
|
42
|
-
}
|
|
21
|
+
const GZIP_MAGIC_0 = 31;
|
|
22
|
+
const GZIP_MAGIC_1 = 139;
|
|
23
|
+
const GZIP_EXTS = new require_primordials_map_set.SetCtor([
|
|
24
|
+
".gz",
|
|
25
|
+
".gzip",
|
|
26
|
+
".tgz"
|
|
27
|
+
]);
|
|
43
28
|
/**
|
|
44
29
|
* Compress a string or Buffer with gzip. Strings are encoded as UTF-8 before
|
|
45
30
|
* compression. Default level is 6 (zlib default).
|
|
46
31
|
*/
|
|
47
32
|
async function compressGzip(input, options) {
|
|
48
|
-
return await gzipAsync(typeof input === "string" ?
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Decompress a gzip-compressed Buffer.
|
|
52
|
-
*/
|
|
53
|
-
async function decompressGzip(input) {
|
|
54
|
-
return await gunzipAsync(input);
|
|
33
|
+
return await gzipAsync(typeof input === "string" ? require_primordials_buffer.BufferFrom(input, "utf8") : input, resolveGzipOptions(options));
|
|
55
34
|
}
|
|
56
35
|
async function compressGzipFile(srcPath, destOrOptions, maybeOptions) {
|
|
57
36
|
const { destPath, options, inPlace } = require_compression__internal.resolveFileArgs("compressGzipFile", srcPath, destOrOptions, maybeOptions, (p) => `${p}.gz`);
|
|
@@ -59,16 +38,6 @@ async function compressGzipFile(srcPath, destOrOptions, maybeOptions) {
|
|
|
59
38
|
if (inPlace) await require_fs_safe.safeDelete(srcPath);
|
|
60
39
|
return destPath;
|
|
61
40
|
}
|
|
62
|
-
async function decompressGzipFile(srcPath, destOrOptions) {
|
|
63
|
-
const { destPath, inPlace } = require_compression__internal.resolveFileArgs("decompressGzipFile", srcPath, destOrOptions, void 0, (p) => {
|
|
64
|
-
if (!hasGzipExt(p)) throw new require_primordials_error.ErrorCtor(`decompressGzipFile: ${p} has no .gz/.gzip/.tgz extension; can't infer destination`);
|
|
65
|
-
const stripped = require_compression__internal.stripExt(p, GZIP_EXTS);
|
|
66
|
-
return require_primordials_string.StringPrototypeToLowerCase(node_path.default.extname(p)) === ".tgz" ? `${stripped}.tar` : stripped;
|
|
67
|
-
});
|
|
68
|
-
await (0, node_stream_promises.pipeline)((0, node_fs.createReadStream)(srcPath), (0, node_zlib.createGunzip)(), (0, node_fs.createWriteStream)(destPath));
|
|
69
|
-
if (inPlace) await require_fs_safe.safeDelete(srcPath);
|
|
70
|
-
return destPath;
|
|
71
|
-
}
|
|
72
41
|
/**
|
|
73
42
|
* Create a gzip compress transform stream.
|
|
74
43
|
*/
|
|
@@ -81,20 +50,22 @@ function createGzipCompressor(options) {
|
|
|
81
50
|
function createGzipDecompressor() {
|
|
82
51
|
return (0, node_zlib.createGunzip)();
|
|
83
52
|
}
|
|
84
|
-
const GZIP_MAGIC_0 = 31;
|
|
85
|
-
const GZIP_MAGIC_1 = 139;
|
|
86
53
|
/**
|
|
87
|
-
*
|
|
88
|
-
* spec's 0x1f 0x8b signature. Authoritative.
|
|
54
|
+
* Decompress a gzip-compressed Buffer.
|
|
89
55
|
*/
|
|
90
|
-
function
|
|
91
|
-
return
|
|
56
|
+
async function decompressGzip(input) {
|
|
57
|
+
return await gunzipAsync(input);
|
|
58
|
+
}
|
|
59
|
+
async function decompressGzipFile(srcPath, destOrOptions) {
|
|
60
|
+
const { destPath, inPlace } = require_compression__internal.resolveFileArgs("decompressGzipFile", srcPath, destOrOptions, void 0, (p) => {
|
|
61
|
+
if (!hasGzipExt(p)) throw new require_primordials_error.ErrorCtor(`decompressGzipFile: ${p} has no .gz/.gzip/.tgz extension; can't infer destination`);
|
|
62
|
+
const stripped = require_compression__internal.stripExt(p, GZIP_EXTS);
|
|
63
|
+
return require_primordials_string.StringPrototypeToLowerCase(node_path.default.extname(p)) === ".tgz" ? `${stripped}.tar` : stripped;
|
|
64
|
+
});
|
|
65
|
+
await (0, node_stream_promises.pipeline)((0, node_fs.createReadStream)(srcPath), (0, node_zlib.createGunzip)(), (0, node_fs.createWriteStream)(destPath));
|
|
66
|
+
if (inPlace) await require_fs_safe.safeDelete(srcPath);
|
|
67
|
+
return destPath;
|
|
92
68
|
}
|
|
93
|
-
const GZIP_EXTS = new Set([
|
|
94
|
-
".gz",
|
|
95
|
-
".gzip",
|
|
96
|
-
".tgz"
|
|
97
|
-
]);
|
|
98
69
|
/**
|
|
99
70
|
* Extension check for gzip paths — matches `.gz` / `.gzip` / `.tgz`
|
|
100
71
|
* (case-insensitive). Naming follows node:path's `extname`.
|
|
@@ -102,6 +73,27 @@ const GZIP_EXTS = new Set([
|
|
|
102
73
|
function hasGzipExt(filePath) {
|
|
103
74
|
return GZIP_EXTS.has(require_primordials_string.StringPrototypeToLowerCase(node_path.default.extname(filePath)));
|
|
104
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Magic-byte check for gzip. Reads the first two bytes and matches the gzip
|
|
78
|
+
* spec's 0x1f 0x8b signature. Authoritative.
|
|
79
|
+
*/
|
|
80
|
+
function isGzipCompressed(input) {
|
|
81
|
+
return require_primordials_buffer.BufferIsBuffer(input) && input.byteLength >= 2 && input[0] === GZIP_MAGIC_0 && input[1] === GZIP_MAGIC_1;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Translate `CompressOptions` into the `ZlibOptions` zlib expects. Returns an
|
|
85
|
+
* empty options object when no `level` is given (zlib uses its default, level
|
|
86
|
+
* 6). Exposed for parity with `resolveBrotliOptions` and for unit-test
|
|
87
|
+
* coverage.
|
|
88
|
+
*/
|
|
89
|
+
function resolveGzipOptions(options) {
|
|
90
|
+
const level = options?.level;
|
|
91
|
+
if (level === void 0) return { __proto__: null };
|
|
92
|
+
return {
|
|
93
|
+
__proto__: null,
|
|
94
|
+
level
|
|
95
|
+
};
|
|
96
|
+
}
|
|
105
97
|
|
|
106
98
|
//#endregion
|
|
107
99
|
exports.GZIP_EXTS = GZIP_EXTS;
|
|
@@ -9,8 +9,10 @@ export declare const YARN = "yarn";
|
|
|
9
9
|
export declare const BUN = "bun";
|
|
10
10
|
export declare const VLT = "vlt";
|
|
11
11
|
export declare const NPX = "npx";
|
|
12
|
+
export declare function resolveNpmBinPath(): string | undefined;
|
|
12
13
|
export declare const NPM_BIN_PATH: string;
|
|
13
|
-
export declare
|
|
14
|
+
export declare function resolveNpmRealExecPath(): string | undefined;
|
|
15
|
+
export declare const NPM_REAL_EXEC_PATH: string | undefined;
|
|
14
16
|
export declare const NPM_REGISTRY_URL = "https://registry.npmjs.org";
|
|
15
17
|
export declare const YARN_BERRY = "yarn/berry";
|
|
16
18
|
export declare const YARN_CLASSIC = "yarn/classic";
|
package/dist/constants/agents.js
CHANGED
|
@@ -17,24 +17,25 @@ const YARN = "yarn";
|
|
|
17
17
|
const BUN = "bun";
|
|
18
18
|
const VLT = "vlt";
|
|
19
19
|
const NPX = "npx";
|
|
20
|
-
|
|
20
|
+
function resolveNpmBinPath() {
|
|
21
21
|
try {
|
|
22
22
|
return src_external_which.default.sync("npm", { nothrow: true }) || void 0;
|
|
23
23
|
} catch {
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
26
|
/* c8 ignore stop */
|
|
27
|
-
}
|
|
28
|
-
const
|
|
29
|
-
const
|
|
27
|
+
}
|
|
28
|
+
const npmBinPath = /*@__PURE__*/ resolveNpmBinPath();
|
|
29
|
+
const NPM_BIN_PATH = npmBinPath || "npm";
|
|
30
|
+
function resolveNpmRealExecPath() {
|
|
30
31
|
try {
|
|
31
|
-
/* c8 ignore start - Module-init
|
|
32
|
+
/* c8 ignore start - Module-init helper; only reachable when
|
|
32
33
|
which.sync returns null at module load. */
|
|
33
|
-
if (!
|
|
34
|
+
if (!npmBinPath) return;
|
|
34
35
|
/* c8 ignore stop */
|
|
35
|
-
const { existsSync } =
|
|
36
|
-
const path =
|
|
37
|
-
const npmDir = path.dirname(
|
|
36
|
+
const { existsSync } = require("node:fs");
|
|
37
|
+
const path = require("node:path");
|
|
38
|
+
const npmDir = path.dirname(npmBinPath);
|
|
38
39
|
const nodeModulesPath = path.join(npmDir, "..", "lib", "node_modules", "npm", "lib", "cli.js");
|
|
39
40
|
if (existsSync(nodeModulesPath)) return nodeModulesPath;
|
|
40
41
|
/* c8 ignore start - Module-init fallthroughs; reached only when cli.js
|
|
@@ -44,7 +45,8 @@ const NPM_REAL_EXEC_PATH = /* @__PURE__ */ (() => {
|
|
|
44
45
|
return;
|
|
45
46
|
}
|
|
46
47
|
/* c8 ignore stop */
|
|
47
|
-
}
|
|
48
|
+
}
|
|
49
|
+
const NPM_REAL_EXEC_PATH = /*@__PURE__*/ resolveNpmRealExecPath();
|
|
48
50
|
const NPM_REGISTRY_URL = "https://registry.npmjs.org";
|
|
49
51
|
const YARN_BERRY = "yarn/berry";
|
|
50
52
|
const YARN_CLASSIC = "yarn/classic";
|
|
@@ -86,4 +88,6 @@ exports.YARN = YARN;
|
|
|
86
88
|
exports.YARN_BERRY = YARN_BERRY;
|
|
87
89
|
exports.YARN_CLASSIC = YARN_CLASSIC;
|
|
88
90
|
exports.YARN_LOCK = YARN_LOCK;
|
|
89
|
-
exports.ZPM = ZPM;
|
|
91
|
+
exports.ZPM = ZPM;
|
|
92
|
+
exports.resolveNpmBinPath = resolveNpmBinPath;
|
|
93
|
+
exports.resolveNpmRealExecPath = resolveNpmRealExecPath;
|
|
@@ -12,7 +12,7 @@ const require_primordials_map_set = require('../primordials/map-set.js');
|
|
|
12
12
|
const MIT = "MIT";
|
|
13
13
|
const UNLICENCED = "UNLICENCED";
|
|
14
14
|
const UNLICENSED = "UNLICENSED";
|
|
15
|
-
let
|
|
15
|
+
let copyLeftLicenses;
|
|
16
16
|
/**
|
|
17
17
|
* Get the set of SPDX identifiers considered copy-left (AGPL, GPL, EPL, EUPL,
|
|
18
18
|
* CC-BY-SA variants). The set is lazily built and cached on first call.
|
|
@@ -20,7 +20,7 @@ let _copyLeftLicenses;
|
|
|
20
20
|
* @returns A `Set` of SPDX license identifier strings.
|
|
21
21
|
*/
|
|
22
22
|
function getCopyLeftLicenses() {
|
|
23
|
-
if (
|
|
23
|
+
if (copyLeftLicenses === void 0) copyLeftLicenses = new require_primordials_map_set.SetCtor([
|
|
24
24
|
"AGPL-1.0",
|
|
25
25
|
"AGPL-1.0-only",
|
|
26
26
|
"AGPL-1.0-or-later",
|
|
@@ -45,7 +45,7 @@ function getCopyLeftLicenses() {
|
|
|
45
45
|
"GPL-3.0-only",
|
|
46
46
|
"GPL-3.0-or-later"
|
|
47
47
|
]);
|
|
48
|
-
return
|
|
48
|
+
return copyLeftLicenses;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
//#endregion
|
package/dist/constants/node.d.ts
CHANGED
|
@@ -129,6 +129,29 @@ export declare function supportsNodeRequireModule(): boolean;
|
|
|
129
129
|
* `--run`.
|
|
130
130
|
*/
|
|
131
131
|
export declare function supportsNodeRun(): boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Check whether the current runtime can execute TypeScript source directly
|
|
134
|
+
* (`.ts` files via `node foo.ts`), with or without a flag. Type-stripping went
|
|
135
|
+
* stable in Node.js 22.6 (under `--strip-types`, also accepted as the
|
|
136
|
+
* deprecated alias `--experimental-strip-types`) and default-on in Node 24.
|
|
137
|
+
*
|
|
138
|
+
* Pair with {@link supportsNodeStripTypesDefault} to decide whether a flag needs
|
|
139
|
+
* to be passed.
|
|
140
|
+
*
|
|
141
|
+
* @returns `true` when the runtime can run TypeScript (Node 22.6+).
|
|
142
|
+
*/
|
|
143
|
+
export declare function supportsNodeStripTypes(): boolean;
|
|
144
|
+
/**
|
|
145
|
+
* Check whether the current runtime strips TypeScript types **by default** (no
|
|
146
|
+
* flag needed). Became default-on in Node.js 24.
|
|
147
|
+
*
|
|
148
|
+
* Use case: deciding whether a wrapper script needs to pass `--strip-types`
|
|
149
|
+
* when invoking `node foo.ts`. On Node 24+ the flag is redundant; on 22.6 –
|
|
150
|
+
* 23.x it's required.
|
|
151
|
+
*
|
|
152
|
+
* @returns `true` when no `--strip-types` flag is needed (Node 24+).
|
|
153
|
+
*/
|
|
154
|
+
export declare function supportsNodeStripTypesDefault(): boolean;
|
|
132
155
|
/**
|
|
133
156
|
* Check whether this process was spawned with an IPC channel. When `true`,
|
|
134
157
|
* `process.send()` is callable to message the parent process.
|