@socketsecurity/lib 6.0.6 → 6.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -1
- package/dist/ai/discover.d.mts +2 -2
- package/dist/ai/discover.js +3 -2
- package/dist/ai/spawn.js +2 -1
- package/dist/ai/types.d.mts +18 -6
- package/dist/ai/worktree.d.mts +6 -6
- package/dist/ai/worktree.js +1 -1
- package/dist/ansi/strip.d.ts +1 -1
- package/dist/ansi/strip.js +0 -2
- package/dist/archives/_internal.js +7 -9
- package/dist/archives/extract.js +1 -1
- package/dist/archives/tar.js +6 -6
- package/dist/archives/zip.js +3 -5
- package/dist/argv/flag-predicates.d.ts +12 -12
- package/dist/argv/flag-predicates.js +17 -17
- package/dist/argv/flag-types.d.ts +18 -18
- package/dist/argv/flag-types.js +4 -4
- package/dist/argv/parse.d.ts +1 -1
- package/dist/arrays/_internal.js +11 -12
- package/dist/arrays/chunk.js +0 -1
- package/dist/arrays/join.d.ts +37 -3
- package/dist/arrays/join.js +43 -7
- package/dist/arrays/unique.js +0 -1
- package/dist/bin/_internal.d.ts +1 -1
- package/dist/bin/_internal.js +1 -1
- package/dist/bin/exec.js +2 -3
- package/dist/bin/find.js +13 -13
- package/dist/bin/prim.cjs +22736 -22556
- package/dist/bin/resolve.js +12 -13
- package/dist/bin/which.js +8 -8
- package/dist/cache/ttl/store.js +5 -5
- package/dist/checks/primordials-defaults.d.ts +3 -3
- package/dist/checks/primordials-defaults.js +3 -3
- package/dist/checks/primordials.js +4 -3
- package/dist/{bin → cli}/check-primordials.d.ts +11 -11
- package/dist/{bin → cli}/check-primordials.js +55 -52
- package/dist/{bin → cli}/check.js +3 -3
- package/dist/{bin → cli}/socket-lib.d.ts +1 -1
- package/dist/{bin → cli}/socket-lib.js +4 -4
- package/dist/colors/socket-palette.js +7 -9
- package/dist/compression/_internal.d.ts +12 -12
- package/dist/compression/_internal.js +17 -17
- package/dist/compression/brotli.d.ts +25 -25
- package/dist/compression/brotli.js +33 -33
- package/dist/compression/gzip.d.ts +23 -23
- package/dist/compression/gzip.js +40 -40
- package/dist/constants/agents.d.ts +3 -1
- package/dist/constants/agents.js +15 -11
- package/dist/constants/licenses.js +3 -3
- package/dist/constants/node.d.ts +23 -0
- package/dist/constants/node.js +47 -15
- package/dist/constants/packages.js +22 -28
- package/dist/constants/platform.d.ts +30 -3
- package/dist/constants/platform.js +72 -12
- package/dist/constants/runtime.d.ts +22 -0
- package/dist/constants/runtime.js +32 -0
- package/dist/constants/socket.js +1 -1
- package/dist/cover/code.js +8 -8
- package/dist/cover/formatters.js +5 -5
- package/dist/crypto/hash.d.ts +26 -1
- package/dist/crypto/hash.js +43 -12
- package/dist/debug/_internal.js +4 -6
- package/dist/debug/caller-info.js +2 -3
- package/dist/debug/namespace.d.ts +7 -0
- package/dist/debug/namespace.js +21 -12
- package/dist/debug/output.js +21 -24
- package/dist/debug/types.d.ts +4 -4
- package/dist/dlx/arborist.js +6 -6
- package/dist/dlx/binary-cache.js +14 -14
- package/dist/dlx/binary-download.d.ts +1 -1
- package/dist/dlx/binary-download.js +11 -11
- package/dist/dlx/binary-resolution.js +16 -14
- package/dist/dlx/binary-types.d.ts +5 -5
- package/dist/dlx/binary.js +5 -5
- package/dist/dlx/cache.js +1 -1
- package/dist/dlx/detect.d.ts +34 -25
- package/dist/dlx/detect.js +86 -77
- package/dist/dlx/dir.js +2 -2
- package/dist/dlx/firewall.d.ts +1 -1
- package/dist/dlx/lockfile.d.ts +19 -18
- package/dist/dlx/lockfile.js +16 -16
- package/dist/dlx/manifest.d.ts +6 -6
- package/dist/dlx/manifest.js +5 -5
- package/dist/dlx/package.d.ts +10 -10
- package/dist/dlx/package.js +16 -16
- package/dist/dlx/packages.js +4 -4
- package/dist/dlx/paths.js +7 -7
- package/dist/dlx/spec.js +1 -1
- package/dist/dlx/types.d.ts +28 -27
- package/dist/eco/cargo/parse-lockfile.d.ts +1 -1
- package/dist/eco/cargo/parse-lockfile.js +2 -2
- package/dist/eco/manifest/analyze-lockfile.js +2 -2
- package/dist/eco/manifest/detect-format.js +4 -4
- package/dist/eco/manifest/find-packages.js +2 -2
- package/dist/eco/manifest/get-package-versions.js +2 -2
- package/dist/eco/manifest/get-package.js +2 -2
- package/dist/eco/manifest/parse-lockfile.js +2 -2
- package/dist/eco/manifest/parse-manifest.js +2 -2
- package/dist/eco/manifest/parse.js +2 -2
- package/dist/eco/npm/npm/exec.js +2 -2
- package/dist/eco/npm/npm/flags.js +7 -12
- package/dist/eco/npm/npm/parse-lockfile.d.ts +14 -14
- package/dist/eco/npm/npm/parse-lockfile.js +3 -3
- package/dist/eco/npm/parse-package-json.js +3 -3
- package/dist/eco/npm/pnpm/exec.d.ts +1 -1
- package/dist/eco/npm/pnpm/exec.js +5 -5
- package/dist/eco/npm/pnpm/flags.js +0 -3
- package/dist/eco/npm/pnpm/parse-lockfile.d.ts +1 -1
- package/dist/eco/npm/pnpm/parse-lockfile.js +4 -4
- package/dist/eco/npm/script.js +9 -6
- package/dist/eco/npm/yarnpkg/yarn/exec.js +3 -3
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +2 -2
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +8 -8
- package/dist/effects/pulse-frames.d.ts +3 -1
- package/dist/effects/shimmer-keyframes.d.ts +1 -1
- package/dist/effects/shimmer-terminal.d.ts +1 -1
- package/dist/env/boolean.js +0 -1
- package/dist/env/ci.js +0 -1
- package/dist/env/debug.js +0 -1
- package/dist/env/github-status.d.ts +51 -0
- package/dist/env/github-status.js +90 -0
- package/dist/env/github.js +0 -8
- package/dist/env/home.js +0 -1
- package/dist/env/locale.js +0 -3
- package/dist/env/node-auth-token.js +0 -1
- package/dist/env/node-env.js +0 -1
- package/dist/env/node-version-managers.d.ts +53 -0
- package/dist/env/node-version-managers.js +90 -0
- package/dist/env/npm.js +0 -5
- package/dist/env/number.js +0 -1
- package/dist/env/package-manager.js +3 -6
- package/dist/env/path.js +0 -1
- package/dist/env/pre-commit.js +1 -2
- package/dist/env/rewire.d.ts +7 -6
- package/dist/env/rewire.js +15 -16
- package/dist/env/shell.js +0 -1
- package/dist/env/socket-cli.js +5 -18
- package/dist/env/socket-mcp.d.ts +114 -0
- package/dist/env/socket-mcp.js +146 -0
- package/dist/env/socket.d.ts +1 -109
- package/dist/env/socket.js +12 -167
- package/dist/env/string.js +0 -1
- package/dist/env/temp-dir.js +0 -3
- package/dist/env/term.js +0 -1
- package/dist/env/test.js +3 -6
- package/dist/env/windows.js +0 -4
- package/dist/env/xdg.js +0 -3
- package/dist/events/exit/_internal.d.ts +11 -9
- package/dist/events/exit/_internal.js +31 -35
- package/dist/events/exit/handler.js +3 -4
- package/dist/events/exit/intercept.js +4 -6
- package/dist/events/exit/lifecycle.js +16 -18
- package/dist/events/exit/signals.js +1 -2
- package/dist/events/exit/types.d.ts +6 -5
- package/dist/external/@npmcli/package-json.js +2 -2
- package/dist/external/npm-pack.js +2 -2
- package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
- package/dist/external-tools/bazel/types.d.ts +1 -1
- package/dist/external-tools/cdxgen/from-vfs.js +1 -1
- package/dist/external-tools/cdxgen/types.d.ts +1 -1
- package/dist/external-tools/from-download.d.ts +1 -1
- package/dist/external-tools/from-download.js +1 -1
- package/dist/external-tools/janus/from-vfs.js +1 -1
- package/dist/external-tools/janus/types.d.ts +1 -1
- package/dist/external-tools/jre/detect-platform-arch.d.ts +10 -6
- package/dist/external-tools/jre/detect-platform-arch.js +29 -14
- package/dist/external-tools/jre/from-vfs.js +1 -1
- package/dist/external-tools/jre/types.d.ts +1 -1
- package/dist/external-tools/manifest.d.ts +7 -7
- package/dist/external-tools/manifest.js +12 -12
- package/dist/external-tools/opengrep/from-vfs.js +1 -1
- package/dist/external-tools/opengrep/types.d.ts +1 -1
- package/dist/external-tools/python/asset-names.d.ts +76 -0
- package/dist/external-tools/python/asset-names.js +104 -0
- package/dist/external-tools/python/dlx.d.ts +80 -0
- package/dist/external-tools/python/dlx.js +87 -0
- package/dist/external-tools/python/from-download.d.ts +53 -0
- package/dist/external-tools/python/from-download.js +68 -0
- package/dist/external-tools/python/from-path.d.ts +7 -0
- package/dist/external-tools/python/from-path.js +23 -0
- package/dist/external-tools/python/pin.d.ts +121 -0
- package/dist/external-tools/python/pin.js +173 -0
- package/dist/external-tools/python/pip-install.d.ts +75 -0
- package/dist/external-tools/python/pip-install.js +139 -0
- package/dist/external-tools/python/resolve.d.ts +42 -0
- package/dist/external-tools/python/resolve.js +58 -0
- package/dist/external-tools/python/types.d.ts +49 -0
- package/dist/external-tools/sbt/from-vfs.js +1 -1
- package/dist/external-tools/sbt/types.d.ts +1 -1
- package/dist/external-tools/skillspector/from-path.js +3 -5
- package/dist/external-tools/skillspector/from-vfs.js +1 -1
- package/dist/external-tools/synp/from-download.js +2 -2
- package/dist/external-tools/synp/from-vfs.js +1 -1
- package/dist/external-tools/trivy/from-vfs.js +1 -1
- package/dist/external-tools/trivy/types.d.ts +1 -1
- package/dist/external-tools/trufflehog/from-vfs.js +1 -1
- package/dist/external-tools/trufflehog/types.d.ts +1 -1
- package/dist/fs/_internal.d.ts +1 -1
- package/dist/fs/_internal.js +7 -7
- package/dist/fs/access.js +5 -9
- package/dist/fs/{path-cache.js → allowed-dirs-cache.js} +1 -1
- package/dist/fs/encoding.js +5 -7
- package/dist/fs/{find-up.js → find.js} +11 -13
- package/dist/fs/inspect.js +7 -13
- package/dist/fs/read-dir.js +7 -10
- package/dist/fs/read-file.js +8 -14
- package/dist/fs/read-json-cache.d.ts +6 -4
- package/dist/fs/read-json-cache.js +9 -6
- package/dist/fs/read-json.js +4 -6
- package/dist/fs/resolve-module.js +1 -1
- package/dist/fs/safe.d.ts +1 -1
- package/dist/fs/safe.js +12 -13
- package/dist/fs/unique.js +4 -5
- package/dist/fs/validate.js +1 -2
- package/dist/fs/write-json.js +4 -5
- package/dist/git/_internal.js +10 -10
- package/dist/git/changed.js +4 -4
- package/dist/git/repo.js +3 -3
- package/dist/git/staged.js +4 -4
- package/dist/git/unstaged.js +4 -4
- package/dist/github/ghsa.js +2 -2
- package/dist/github/refs-cache.d.ts +1 -1
- package/dist/github/refs-cache.js +5 -5
- package/dist/github/refs-rest.js +5 -5
- package/dist/github/{fetch.js → request.js} +13 -2
- package/dist/github/token.js +1 -1
- package/dist/github/types.d.ts +1 -1
- package/dist/globs/_internal.js +7 -9
- package/dist/globs/match.js +4 -6
- package/dist/globs/matcher.d.ts +3 -3
- package/dist/globs/matcher.js +12 -14
- package/dist/globs/stream.js +1 -2
- package/dist/globs/types.d.ts +24 -24
- package/dist/http-request/_internal.d.ts +1 -1
- package/dist/http-request/browser.js +4 -2
- package/dist/http-request/checksum-file.d.ts +55 -0
- package/dist/http-request/checksum-file.js +95 -0
- package/dist/http-request/download-types.d.ts +15 -23
- package/dist/http-request/download.js +3 -3
- package/dist/http-request/headers.js +0 -1
- package/dist/http-request/request-attempt.js +37 -33
- package/dist/http-request/request-types.d.ts +2 -2
- package/dist/http-request/request.js +1 -1
- package/dist/http-request/user-agent.js +3 -4
- package/dist/integrity.d.ts +86 -18
- package/dist/integrity.js +119 -30
- package/dist/ipc/directory.js +2 -2
- package/dist/ipc/paths.js +1 -1
- package/dist/ipc/write.js +1 -1
- package/dist/ipc-cli/get.js +12 -12
- package/dist/json/edit.js +13 -14
- package/dist/json/format.js +2 -2
- package/dist/json/parse.d.ts +1 -1
- package/dist/json/parse.js +3 -7
- package/dist/logger/_internal.d.ts +4 -4
- package/dist/logger/_internal.js +3 -3
- package/dist/logger/colors.js +4 -3
- package/dist/logger/console-methods.d.ts +132 -0
- package/dist/logger/console-methods.js +169 -0
- package/dist/logger/console.d.ts +12 -0
- package/dist/logger/console.js +42 -11
- package/dist/logger/indentation-methods.d.ts +81 -0
- package/dist/logger/indentation-methods.js +121 -0
- package/dist/logger/node.d.ts +16 -338
- package/dist/logger/node.js +75 -608
- package/dist/logger/options.d.ts +39 -0
- package/dist/logger/options.js +47 -0
- package/dist/logger/semantic-methods.d.ts +63 -0
- package/dist/logger/semantic-methods.js +108 -0
- package/dist/logger/stream-methods.d.ts +63 -0
- package/dist/logger/stream-methods.js +101 -0
- package/dist/logger/stream.d.ts +37 -0
- package/dist/logger/stream.js +42 -0
- package/dist/logger/symbols-builder.js +9 -9
- package/dist/logger/symbols.d.ts +2 -25
- package/dist/logger/symbols.js +53 -74
- package/dist/logger/types.d.ts +1 -1
- package/dist/memo/types.d.ts +6 -6
- package/dist/native-messaging/host.d.ts +20 -0
- package/dist/native-messaging/host.js +120 -0
- package/dist/native-messaging/index.d.ts +5 -0
- package/dist/native-messaging/index.js +22 -0
- package/dist/native-messaging/install.d.ts +60 -0
- package/dist/native-messaging/install.js +141 -0
- package/dist/native-messaging/rate-limit.d.ts +62 -0
- package/dist/native-messaging/rate-limit.js +115 -0
- package/dist/native-messaging/run.d.ts +10 -0
- package/dist/native-messaging/run.js +17 -0
- package/dist/node/async-hooks.js +4 -3
- package/dist/node/child-process.js +4 -3
- package/dist/node/crypto.js +4 -3
- package/dist/node/events.js +4 -3
- package/dist/node/fs-promises.js +4 -3
- package/dist/node/fs.js +4 -3
- package/dist/node/http.js +4 -3
- package/dist/node/https.js +4 -3
- package/dist/node/module.js +10 -6
- package/dist/node/os.js +4 -3
- package/dist/node/path.js +4 -3
- package/dist/node/timers-promises.js +4 -3
- package/dist/node/url.js +4 -3
- package/dist/node/util.js +4 -3
- package/dist/objects/getters.js +5 -7
- package/dist/objects/inspect.js +1 -4
- package/dist/objects/mutate.js +2 -3
- package/dist/objects/predicates.js +0 -4
- package/dist/objects/sort.js +3 -7
- package/dist/packages/edit-class.js +15 -16
- package/dist/packages/edit.js +12 -14
- package/dist/packages/exports.js +11 -17
- package/dist/packages/fetch.d.ts +16 -0
- package/dist/packages/fetch.js +81 -0
- package/dist/packages/find.d.ts +55 -0
- package/dist/packages/find.js +65 -0
- package/dist/packages/isolation.js +14 -14
- package/dist/packages/licenses.js +16 -16
- package/dist/packages/manifest.js +12 -15
- package/dist/packages/metadata-extensions.d.ts +14 -0
- package/dist/packages/metadata-extensions.js +43 -0
- package/dist/packages/normalize.js +5 -9
- package/dist/packages/provenance.js +16 -18
- package/dist/packages/read.d.ts +29 -0
- package/dist/packages/read.js +66 -0
- package/dist/packages/specs.d.ts +48 -1
- package/dist/packages/specs.js +74 -11
- package/dist/packages/tarball.d.ts +24 -0
- package/dist/packages/tarball.js +79 -0
- package/dist/packages/types.d.ts +21 -20
- package/dist/packages/validation.js +0 -3
- package/dist/paths/_internal.d.ts +2 -1
- package/dist/paths/_internal.js +7 -19
- package/dist/paths/conversion.js +5 -9
- package/dist/paths/filenames.d.ts +0 -1
- package/dist/paths/filenames.js +0 -2
- package/dist/paths/normalize.js +4 -5
- package/dist/paths/packages.js +4 -7
- package/dist/paths/predicates.js +9 -16
- package/dist/paths/resolve.js +11 -14
- package/dist/paths/rewire.js +3 -3
- package/dist/paths/socket.js +16 -16
- package/dist/paths/walk.d.ts +1 -1
- package/dist/paths/walk.js +4 -4
- package/dist/perf/report.js +2 -2
- package/dist/perf/types.d.ts +1 -1
- package/dist/pkg-ext/data.js +1 -1
- package/dist/primordials/array.js +9 -9
- package/dist/primordials/date.js +2 -2
- package/dist/primordials/error.js +3 -3
- package/dist/primordials/headers.d.ts +10 -0
- package/dist/primordials/headers.js +23 -0
- package/dist/primordials/intl.d.ts +13 -0
- package/dist/primordials/intl.js +26 -0
- package/dist/primordials/math.js +33 -33
- package/dist/primordials/number.js +9 -9
- package/dist/primordials/object.js +5 -5
- package/dist/primordials/string.d.ts +2 -2
- package/dist/primordials/string.js +6 -6
- package/dist/primordials/symbol.js +3 -3
- package/dist/primordials/uncurry.js +9 -9
- package/dist/process/abort.js +3 -3
- package/dist/process/lock-manager.js +8 -8
- package/dist/process/spawn/_internal.js +6 -8
- package/dist/process/spawn/child.js +14 -14
- package/dist/process/spawn/errors.js +2 -4
- package/dist/process/spawn/kill-tree.d.ts +53 -0
- package/dist/process/spawn/kill-tree.js +85 -0
- package/dist/process/spawn/stdio.js +0 -1
- package/dist/process/spawn/types.d.ts +5 -5
- package/dist/process/transient.js +2 -2
- package/dist/promises/_internal.d.ts +2 -1
- package/dist/promises/_internal.js +2 -6
- package/dist/promises/iterate.js +11 -15
- package/dist/promises/options.js +3 -6
- package/dist/promises/retry.js +4 -5
- package/dist/promises/timers.d.ts +30 -0
- package/dist/promises/timers.js +48 -0
- package/dist/releases/github-archives.d.ts +6 -6
- package/dist/releases/github-archives.js +2 -2
- package/dist/releases/github-asset-url.d.ts +1 -1
- package/dist/releases/github-asset-url.js +5 -5
- package/dist/releases/github-downloads.d.ts +1 -1
- package/dist/releases/github-downloads.js +3 -3
- package/dist/releases/github-listing.d.ts +11 -2
- package/dist/releases/github-listing.js +20 -7
- package/dist/releases/github-retry-config.js +1 -1
- package/dist/releases/github-types.d.ts +6 -6
- package/dist/releases/socket-btm-binary-naming.d.ts +107 -0
- package/dist/releases/socket-btm-binary-naming.js +155 -0
- package/dist/releases/socket-btm.d.ts +8 -115
- package/dist/releases/socket-btm.js +16 -159
- package/dist/schema/types.d.ts +1 -1
- package/dist/sea/detect.js +6 -6
- package/dist/secrets/_internal.d.ts +2 -2
- package/dist/secrets/_internal.js +2 -2
- package/dist/secrets/compare.d.ts +45 -0
- package/dist/secrets/compare.js +61 -0
- package/dist/secrets/keychain.js +6 -4
- package/dist/secrets/linux.js +19 -19
- package/dist/secrets/macos.d.ts +1 -1
- package/dist/secrets/macos.js +13 -13
- package/dist/secrets/rc.d.ts +2 -2
- package/dist/secrets/rc.js +6 -4
- package/dist/secrets/socket-api-token.d.ts +4 -4
- package/dist/secrets/socket-api-token.js +18 -9
- package/dist/secrets/windows.js +14 -13
- package/dist/shadow/skip.js +2 -2
- package/dist/smol/detect.js +9 -10
- package/dist/smol/http.js +6 -7
- package/dist/smol/https.js +6 -7
- package/dist/smol/manifest.d.ts +1 -1
- package/dist/smol/manifest.js +6 -7
- package/dist/smol/path.d.ts +1 -1
- package/dist/smol/path.js +7 -8
- package/dist/smol/primordial.d.ts +4 -0
- package/dist/smol/primordial.js +6 -7
- package/dist/smol/purl.d.ts +1 -1
- package/dist/smol/purl.js +7 -8
- package/dist/smol/versions.js +6 -7
- package/dist/smol/vfs.js +6 -7
- package/dist/sorts/_internal.js +6 -8
- package/dist/sorts/natural.js +10 -12
- package/dist/sorts/semver.js +1 -2
- package/dist/sorts/strings.js +0 -1
- package/dist/sorts/types.d.ts +1 -1
- package/dist/spinner/create-spinner-class.d.ts +38 -0
- package/dist/spinner/create-spinner-class.js +302 -0
- package/dist/spinner/default.js +8 -9
- package/dist/spinner/spinner-internals.d.ts +36 -0
- package/dist/spinner/spinner-internals.js +101 -0
- package/dist/spinner/spinner-shimmer-methods.d.ts +54 -0
- package/dist/spinner/spinner-shimmer-methods.js +143 -0
- package/dist/spinner/spinner-status-methods.d.ts +40 -0
- package/dist/spinner/spinner-status-methods.js +133 -0
- package/dist/spinner/spinner.d.ts +4 -5
- package/dist/spinner/spinner.js +18 -705
- package/dist/spinner/types.d.ts +3 -1
- package/dist/spinner/with.d.ts +10 -0
- package/dist/spinner/with.js +16 -2
- package/dist/stdio/divider.js +1 -1
- package/dist/stdio/footer.js +3 -3
- package/dist/stdio/header.js +4 -4
- package/dist/stdio/progress.js +5 -5
- package/dist/stdio/prompts.d.ts +5 -3
- package/dist/stdio/prompts.js +6 -7
- package/dist/stdio/stdout.js +3 -3
- package/dist/streams/parallel.js +3 -5
- package/dist/streams/transform.js +2 -3
- package/dist/strings/format.js +2 -6
- package/dist/strings/predicates.js +0 -2
- package/dist/strings/search.js +1 -2
- package/dist/strings/transform.js +0 -3
- package/dist/strings/width.js +9 -10
- package/dist/tables/bordered.js +4 -3
- package/dist/tables/padding.js +1 -1
- package/dist/tables/simple.js +8 -5
- package/dist/temporal/instant.js +1 -1
- package/dist/temporal/slots.js +6 -6
- package/dist/temporal/system.js +9 -9
- package/dist/themes/context.d.ts +3 -2
- package/dist/themes/context.js +4 -5
- package/dist/themes/themes.js +15 -15
- package/dist/themes/types.d.ts +3 -3
- package/dist/url/parse.js +0 -2
- package/dist/url/predicates.js +1 -2
- package/dist/url/search-params.js +3 -9
- package/dist/url/types.d.ts +5 -5
- package/dist/versions/_internal.js +3 -3
- package/dist/words/article.js +0 -1
- package/dist/words/capitalize.js +0 -1
- package/dist/words/pluralize.js +15 -5
- package/package.json +247 -106
- package/dist/external-tools/uv/asset-names.d.ts +0 -36
- package/dist/external-tools/uv/asset-names.js +0 -70
- package/dist/external-tools/uv/from-download.d.ts +0 -17
- package/dist/external-tools/uv/from-download.js +0 -47
- package/dist/external-tools/uv/from-path.d.ts +0 -5
- package/dist/external-tools/uv/from-path.js +0 -22
- package/dist/external-tools/uv/from-vfs.d.ts +0 -7
- package/dist/external-tools/uv/from-vfs.js +0 -26
- package/dist/external-tools/uv/resolve.d.ts +0 -25
- package/dist/external-tools/uv/resolve.js +0 -53
- package/dist/external-tools/uv/types.d.ts +0 -24
- package/dist/http-request/checksums.d.ts +0 -69
- package/dist/http-request/checksums.js +0 -108
- package/dist/http-request/http-request.d.ts +0 -12
- package/dist/http-request/http-request.js +0 -11
- package/dist/packages/operations.d.ts +0 -113
- package/dist/packages/operations.js +0 -304
- package/dist/ssri/convert.d.ts +0 -48
- package/dist/ssri/convert.js +0 -69
- package/dist/ssri/parse.d.ts +0 -27
- package/dist/ssri/parse.js +0 -41
- package/dist/ssri/validate.d.ts +0 -41
- package/dist/ssri/validate.js +0 -56
- /package/dist/{bin → cli}/check.d.ts +0 -0
- /package/dist/external-tools/{uv → python}/types.js +0 -0
- /package/dist/fs/{path-cache.d.ts → allowed-dirs-cache.d.ts} +0 -0
- /package/dist/fs/{find-up.d.ts → find.d.ts} +0 -0
- /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
|
@@ -20,12 +20,12 @@ src_external_pacote = require_runtime.__toESM(src_external_pacote);
|
|
|
20
20
|
* categories), the pacote cache path, lifecycle script names, and known
|
|
21
21
|
* package extensions used during manifest processing.
|
|
22
22
|
*/
|
|
23
|
-
let
|
|
24
|
-
let
|
|
25
|
-
let
|
|
26
|
-
let
|
|
27
|
-
let
|
|
28
|
-
let
|
|
23
|
+
let cachedLifecycleScriptNames;
|
|
24
|
+
let cachedPackageDefaultNodeRange;
|
|
25
|
+
let cachedPackageDefaultSocketCategories;
|
|
26
|
+
let cachedPackageExtensions;
|
|
27
|
+
let cachedPacoteCachePath;
|
|
28
|
+
let cachedPackumentCache;
|
|
29
29
|
const PACKAGE = "package";
|
|
30
30
|
const AT_LATEST = "@latest";
|
|
31
31
|
const LATEST = "latest";
|
|
@@ -35,28 +35,24 @@ const PACKAGE_DEFAULT_VERSION = "1.0.0";
|
|
|
35
35
|
* force a re-fetch of registry metadata.
|
|
36
36
|
*/
|
|
37
37
|
function clearPackumentCache() {
|
|
38
|
-
/* c8 ignore next 3 */
|
|
39
|
-
if (
|
|
38
|
+
/* c8 ignore next 3 - uninitialized-cache branch unreachable in tests */
|
|
39
|
+
if (cachedPackumentCache !== void 0) cachedPackumentCache.clear();
|
|
40
40
|
}
|
|
41
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
42
41
|
function getLifecycleScriptNames() {
|
|
43
|
-
if (
|
|
44
|
-
return
|
|
42
|
+
if (cachedLifecycleScriptNames === void 0) cachedLifecycleScriptNames = require_primordials_array.ArrayFrom(require_constants_lifecycle_script_names.lifecycleScriptNames);
|
|
43
|
+
return cachedLifecycleScriptNames;
|
|
45
44
|
}
|
|
46
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
47
45
|
function getPackageDefaultNodeRange() {
|
|
48
|
-
if (
|
|
49
|
-
return
|
|
46
|
+
if (cachedPackageDefaultNodeRange === void 0) cachedPackageDefaultNodeRange = require_constants_package_default_node_range.packageDefaultNodeRange;
|
|
47
|
+
return cachedPackageDefaultNodeRange;
|
|
50
48
|
}
|
|
51
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
52
49
|
function getPackageDefaultSocketCategories() {
|
|
53
|
-
if (
|
|
54
|
-
return
|
|
50
|
+
if (cachedPackageDefaultSocketCategories === void 0) cachedPackageDefaultSocketCategories = require_constants_package_default_socket_categories.packageDefaultSocketCategories;
|
|
51
|
+
return cachedPackageDefaultSocketCategories;
|
|
55
52
|
}
|
|
56
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
57
53
|
function getPackageExtensions() {
|
|
58
|
-
if (
|
|
59
|
-
return
|
|
54
|
+
if (cachedPackageExtensions === void 0) cachedPackageExtensions = require_primordials_object.ObjectEntries(require_pkg_ext_data.packageExtensions);
|
|
55
|
+
return cachedPackageExtensions;
|
|
60
56
|
}
|
|
61
57
|
const PACKUMENT_CACHE_MAX = 500;
|
|
62
58
|
var BoundedPackumentCache = class extends Map {
|
|
@@ -71,22 +67,20 @@ var BoundedPackumentCache = class extends Map {
|
|
|
71
67
|
return super.set(key, value);
|
|
72
68
|
}
|
|
73
69
|
};
|
|
74
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
75
70
|
function getPackumentCache() {
|
|
76
|
-
if (
|
|
77
|
-
return
|
|
71
|
+
if (cachedPackumentCache === void 0) cachedPackumentCache = new BoundedPackumentCache();
|
|
72
|
+
return cachedPackumentCache;
|
|
78
73
|
}
|
|
79
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
80
74
|
function getPacoteCachePath() {
|
|
81
|
-
if (
|
|
75
|
+
if (cachedPacoteCachePath === void 0) try {
|
|
82
76
|
const PacoteFetcherBase = require_primordials_reflect.ReflectGetPrototypeOf(src_external_pacote.default.RegistryFetcher.prototype)?.constructor;
|
|
83
77
|
/* c8 ignore start */
|
|
84
78
|
const cachePath = PacoteFetcherBase ? new PacoteFetcherBase("x", {}).cache : "";
|
|
85
|
-
|
|
79
|
+
cachedPacoteCachePath = cachePath ? require_paths_normalize.normalizePath(cachePath) : "";
|
|
86
80
|
} catch {
|
|
87
|
-
|
|
81
|
+
cachedPacoteCachePath = "";
|
|
88
82
|
}
|
|
89
|
-
return
|
|
83
|
+
return cachedPacoteCachePath;
|
|
90
84
|
}
|
|
91
85
|
|
|
92
86
|
//#endregion
|
|
@@ -14,15 +14,42 @@ export type Libc = 'glibc' | 'musl';
|
|
|
14
14
|
*/
|
|
15
15
|
export type Platform = NodeJS.Platform;
|
|
16
16
|
/**
|
|
17
|
-
* Get the current CPU architecture (memoized).
|
|
17
|
+
* Get the current CPU architecture (memoized), e.g. `x64`, `arm64`.
|
|
18
18
|
*/
|
|
19
19
|
export declare function getArch(): Arch;
|
|
20
20
|
/**
|
|
21
|
-
* Get the
|
|
21
|
+
* Get the host libc variant (memoized): `'musl'` on Alpine-and-similar,
|
|
22
|
+
* `'glibc'` on other Linux, `undefined` off-Linux. Detected by probing for the
|
|
23
|
+
* musl dynamic linker. The single source of truth for libc detection —
|
|
24
|
+
* tool-specific resolvers (`getPythonArch`, `getJreArch`) call this rather than
|
|
25
|
+
* re-probing.
|
|
22
26
|
*/
|
|
23
|
-
export declare function
|
|
27
|
+
export declare function getLibc(): Libc | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Get the current OS (memoized), e.g. `darwin`, `linux`, `win32` — the raw
|
|
30
|
+
* `process.platform` value.
|
|
31
|
+
*/
|
|
32
|
+
export declare function getOs(): Platform;
|
|
33
|
+
/**
|
|
34
|
+
* Get the current host **target** in the pnpm `pack-app` vocabulary (memoized):
|
|
35
|
+
* `<os>-<arch>[-<libc>]`, e.g. `darwin-arm64`, `linux-x64`, `win32-x64`,
|
|
36
|
+
* `linux-x64-musl`. Raw Node `process.platform`/`process.arch` joined with `-`,
|
|
37
|
+
* plus a `-musl` suffix on Alpine. This is the fleet-general naming for
|
|
38
|
+
* non-python / non-JRE tools (matches pnpm's release assets,
|
|
39
|
+
* `pnpm-<os>-<arch>[-<libc>].{tar.gz,zip}`). Tool-specific resolvers that need
|
|
40
|
+
* a different vocabulary own their own helper — see `getPythonArch`
|
|
41
|
+
* (python-build- standalone) / `getJreArch` (Adoptium).
|
|
42
|
+
*/
|
|
43
|
+
export declare function getTarget(): string;
|
|
24
44
|
export declare const DARWIN: boolean;
|
|
25
45
|
export declare const WIN32: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* True when this process was launched as a Chrome (or Chromium) native
|
|
48
|
+
* messaging host. Chrome passes the extension origin URL
|
|
49
|
+
* (`chrome-extension://<id>/`) as `process.argv[2]`; no other invocation shape
|
|
50
|
+
* produces that prefix.
|
|
51
|
+
*/
|
|
52
|
+
export declare const NATIVE_MESSAGING_HOST: boolean;
|
|
26
53
|
export declare const S_IXUSR = 64;
|
|
27
54
|
export declare const S_IXGRP = 8;
|
|
28
55
|
export declare const S_IXOTH = 1;
|
|
@@ -2,38 +2,98 @@
|
|
|
2
2
|
/* Socket Lib - Built with rolldown */
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
const require_node_os = require('../node/os.js');
|
|
5
|
+
let node_fs = require("node:fs");
|
|
5
6
|
|
|
6
7
|
//#region src/constants/platform.ts
|
|
7
8
|
/**
|
|
8
9
|
* @file Platform detection and OS-specific constants.
|
|
9
10
|
*/
|
|
10
|
-
let
|
|
11
|
+
let memoizedArch;
|
|
11
12
|
/**
|
|
12
|
-
* Get the current CPU architecture (memoized).
|
|
13
|
+
* Get the current CPU architecture (memoized), e.g. `x64`, `arm64`.
|
|
13
14
|
*/
|
|
14
15
|
function getArch() {
|
|
15
|
-
if (
|
|
16
|
-
return
|
|
16
|
+
if (memoizedArch === void 0) memoizedArch = require_node_os.getNodeOs().arch();
|
|
17
|
+
return memoizedArch;
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
+
const MUSL_LINKERS = [
|
|
20
|
+
"/lib/ld-musl-x86_64.so.1",
|
|
21
|
+
"/lib/ld-musl-aarch64.so.1",
|
|
22
|
+
"/usr/lib/ld-musl-x86_64.so.1",
|
|
23
|
+
"/usr/lib/ld-musl-aarch64.so.1"
|
|
24
|
+
];
|
|
25
|
+
let memoizedLibc;
|
|
26
|
+
let memoizedLibcProbed = false;
|
|
19
27
|
/**
|
|
20
|
-
* Get the
|
|
28
|
+
* Get the host libc variant (memoized): `'musl'` on Alpine-and-similar,
|
|
29
|
+
* `'glibc'` on other Linux, `undefined` off-Linux. Detected by probing for the
|
|
30
|
+
* musl dynamic linker. The single source of truth for libc detection —
|
|
31
|
+
* tool-specific resolvers (`getPythonArch`, `getJreArch`) call this rather than
|
|
32
|
+
* re-probing.
|
|
21
33
|
*/
|
|
22
|
-
function
|
|
23
|
-
if (
|
|
24
|
-
|
|
34
|
+
function getLibc() {
|
|
35
|
+
if (!memoizedLibcProbed) {
|
|
36
|
+
memoizedLibcProbed = true;
|
|
37
|
+
/* c8 ignore start - Linux-only filesystem probe. */
|
|
38
|
+
if (getOs() !== "linux") memoizedLibc = void 0;
|
|
39
|
+
else {
|
|
40
|
+
memoizedLibc = "glibc";
|
|
41
|
+
for (let i = 0, { length } = MUSL_LINKERS; i < length; i += 1) if ((0, node_fs.existsSync)(MUSL_LINKERS[i])) {
|
|
42
|
+
memoizedLibc = "musl";
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return memoizedLibc;
|
|
25
48
|
}
|
|
26
|
-
|
|
27
|
-
|
|
49
|
+
let memoizedOs;
|
|
50
|
+
/**
|
|
51
|
+
* Get the current OS (memoized), e.g. `darwin`, `linux`, `win32` — the raw
|
|
52
|
+
* `process.platform` value.
|
|
53
|
+
*/
|
|
54
|
+
function getOs() {
|
|
55
|
+
if (memoizedOs === void 0) memoizedOs = require_node_os.getNodeOs().platform();
|
|
56
|
+
return memoizedOs;
|
|
57
|
+
}
|
|
58
|
+
let memoizedTarget;
|
|
59
|
+
/**
|
|
60
|
+
* Get the current host **target** in the pnpm `pack-app` vocabulary (memoized):
|
|
61
|
+
* `<os>-<arch>[-<libc>]`, e.g. `darwin-arm64`, `linux-x64`, `win32-x64`,
|
|
62
|
+
* `linux-x64-musl`. Raw Node `process.platform`/`process.arch` joined with `-`,
|
|
63
|
+
* plus a `-musl` suffix on Alpine. This is the fleet-general naming for
|
|
64
|
+
* non-python / non-JRE tools (matches pnpm's release assets,
|
|
65
|
+
* `pnpm-<os>-<arch>[-<libc>].{tar.gz,zip}`). Tool-specific resolvers that need
|
|
66
|
+
* a different vocabulary own their own helper — see `getPythonArch`
|
|
67
|
+
* (python-build- standalone) / `getJreArch` (Adoptium).
|
|
68
|
+
*/
|
|
69
|
+
function getTarget() {
|
|
70
|
+
if (memoizedTarget === void 0) {
|
|
71
|
+
const libcSuffix = getLibc() === "musl" ? "-musl" : "";
|
|
72
|
+
memoizedTarget = `${getOs()}-${getArch()}${libcSuffix}`;
|
|
73
|
+
}
|
|
74
|
+
return memoizedTarget;
|
|
75
|
+
}
|
|
76
|
+
const DARWIN = getOs() === "darwin";
|
|
77
|
+
const WIN32 = getOs() === "win32";
|
|
78
|
+
/**
|
|
79
|
+
* True when this process was launched as a Chrome (or Chromium) native
|
|
80
|
+
* messaging host. Chrome passes the extension origin URL
|
|
81
|
+
* (`chrome-extension://<id>/`) as `process.argv[2]`; no other invocation shape
|
|
82
|
+
* produces that prefix.
|
|
83
|
+
*/
|
|
84
|
+
const NATIVE_MESSAGING_HOST = typeof process !== "undefined" && typeof process.argv[2] === "string" && process.argv[2].startsWith("chrome-extension://");
|
|
28
85
|
const S_IXUSR = 64;
|
|
29
86
|
const S_IXGRP = 8;
|
|
30
87
|
const S_IXOTH = 1;
|
|
31
88
|
|
|
32
89
|
//#endregion
|
|
33
90
|
exports.DARWIN = DARWIN;
|
|
91
|
+
exports.NATIVE_MESSAGING_HOST = NATIVE_MESSAGING_HOST;
|
|
34
92
|
exports.S_IXGRP = S_IXGRP;
|
|
35
93
|
exports.S_IXOTH = S_IXOTH;
|
|
36
94
|
exports.S_IXUSR = S_IXUSR;
|
|
37
95
|
exports.WIN32 = WIN32;
|
|
38
96
|
exports.getArch = getArch;
|
|
39
|
-
exports.
|
|
97
|
+
exports.getLibc = getLibc;
|
|
98
|
+
exports.getOs = getOs;
|
|
99
|
+
exports.getTarget = getTarget;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Runtime environment detection constants. All checks use only
|
|
3
|
+
* `typeof`-safe global probes so this module is safe to import in browser,
|
|
4
|
+
* Node.js, Deno, Bun, and bundled contexts alike.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* True when running inside a Node.js process. Detected via
|
|
8
|
+
* `process.versions.node` — present in Node, absent in browsers and Deno/Bun
|
|
9
|
+
* which expose a different `process.versions` shape (or no `process` at all).
|
|
10
|
+
*/
|
|
11
|
+
export declare const IS_NODE: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* True when running in a browser context (window + document both defined).
|
|
14
|
+
* Note: Chrome extensions have `window` in popup contexts but not in service
|
|
15
|
+
* workers — check `IS_SERVICE_WORKER` for that case.
|
|
16
|
+
*/
|
|
17
|
+
export declare const IS_BROWSER: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* True when running inside a Web Worker / Chrome MV3 service worker. `self` is
|
|
20
|
+
* defined without `window` in worker contexts.
|
|
21
|
+
*/
|
|
22
|
+
export declare const IS_WORKER: boolean;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
//#region src/constants/runtime.ts
|
|
6
|
+
/**
|
|
7
|
+
* @file Runtime environment detection constants. All checks use only
|
|
8
|
+
* `typeof`-safe global probes so this module is safe to import in browser,
|
|
9
|
+
* Node.js, Deno, Bun, and bundled contexts alike.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* True when running inside a Node.js process. Detected via
|
|
13
|
+
* `process.versions.node` — present in Node, absent in browsers and Deno/Bun
|
|
14
|
+
* which expose a different `process.versions` shape (or no `process` at all).
|
|
15
|
+
*/
|
|
16
|
+
const IS_NODE = typeof process !== "undefined" && typeof process.versions !== "undefined" && typeof process.versions.node === "string";
|
|
17
|
+
/**
|
|
18
|
+
* True when running in a browser context (window + document both defined).
|
|
19
|
+
* Note: Chrome extensions have `window` in popup contexts but not in service
|
|
20
|
+
* workers — check `IS_SERVICE_WORKER` for that case.
|
|
21
|
+
*/
|
|
22
|
+
const IS_BROWSER = typeof window !== "undefined" && typeof document !== "undefined";
|
|
23
|
+
/**
|
|
24
|
+
* True when running inside a Web Worker / Chrome MV3 service worker. `self` is
|
|
25
|
+
* defined without `window` in worker contexts.
|
|
26
|
+
*/
|
|
27
|
+
const IS_WORKER = typeof self !== "undefined" && typeof window === "undefined" && typeof document === "undefined";
|
|
28
|
+
|
|
29
|
+
//#endregion
|
|
30
|
+
exports.IS_BROWSER = IS_BROWSER;
|
|
31
|
+
exports.IS_NODE = IS_NODE;
|
|
32
|
+
exports.IS_WORKER = IS_WORKER;
|
package/dist/constants/socket.js
CHANGED
|
@@ -33,7 +33,7 @@ const SOCKET_REGISTRY_APP_NAME = "registry";
|
|
|
33
33
|
const SOCKET_WHEELHOUSE_APP_NAME = "wheelhouse";
|
|
34
34
|
const SOCKET_APP_PREFIX = "_";
|
|
35
35
|
const SOCKET_LIB_NAME = "@socketsecurity/lib";
|
|
36
|
-
const SOCKET_LIB_VERSION = "6.0.
|
|
36
|
+
const SOCKET_LIB_VERSION = "6.0.7";
|
|
37
37
|
const SOCKET_IPC_HANDSHAKE = "SOCKET_IPC_HANDSHAKE";
|
|
38
38
|
const CACHE_SOCKET_API_DIR = "socket-api";
|
|
39
39
|
const REGISTRY = "registry";
|
package/dist/cover/code.js
CHANGED
|
@@ -38,18 +38,18 @@ function calculateMetric(data) {
|
|
|
38
38
|
async function getCodeCoverage(options) {
|
|
39
39
|
const { coveragePath, generateIfMissing } = {
|
|
40
40
|
__proto__: null,
|
|
41
|
-
coveragePath:
|
|
41
|
+
coveragePath: require_node_path.getNodePath().join(node_process.default.cwd(), "coverage/coverage-final.json"),
|
|
42
42
|
generateIfMissing: false,
|
|
43
43
|
...options
|
|
44
44
|
};
|
|
45
45
|
if (!coveragePath) throw new require_primordials_error.ErrorCtor("Coverage path is required");
|
|
46
|
-
if (!
|
|
46
|
+
if (!require_node_fs.getNodeFs().existsSync(coveragePath)) if (generateIfMissing) await require_process_spawn_child.spawn("vitest", ["run", "--coverage"], {
|
|
47
47
|
cwd: node_process.default.cwd(),
|
|
48
48
|
stdio: "inherit"
|
|
49
49
|
});
|
|
50
50
|
else throw new require_primordials_error.ErrorCtor(`Coverage file not found at "${coveragePath}". Run tests with coverage first.`);
|
|
51
|
-
const coverageData = await
|
|
52
|
-
if (
|
|
51
|
+
const coverageData = await require_fs_read_json.readJson(coveragePath);
|
|
52
|
+
if (!require_objects_predicates.isPlainObject(coverageData)) throw new require_primordials_error.ErrorCtor(`Invalid coverage data format in "${coveragePath}"`);
|
|
53
53
|
const totals = {
|
|
54
54
|
__proto__: null,
|
|
55
55
|
branches: {
|
|
@@ -75,16 +75,16 @@ async function getCodeCoverage(options) {
|
|
|
75
75
|
};
|
|
76
76
|
const v8Data = coverageData;
|
|
77
77
|
for (const fileCoverage of require_primordials_object.ObjectValues(v8Data)) {
|
|
78
|
-
if (
|
|
78
|
+
if (!require_objects_predicates.isPlainObject(fileCoverage)) continue;
|
|
79
79
|
const fc = fileCoverage;
|
|
80
|
-
if (fc.s &&
|
|
80
|
+
if (fc.s && require_objects_predicates.isPlainObject(fc.s)) {
|
|
81
81
|
const statementCounts = require_primordials_object.ObjectValues(fc.s);
|
|
82
82
|
for (const count of statementCounts) if (typeof count === "number") {
|
|
83
83
|
totals.statements.total += 1;
|
|
84
84
|
if (count > 0) totals.statements.covered += 1;
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
if (fc.b &&
|
|
87
|
+
if (fc.b && require_objects_predicates.isPlainObject(fc.b)) {
|
|
88
88
|
const branchCounts = require_primordials_object.ObjectValues(fc.b);
|
|
89
89
|
for (const branches of branchCounts) if (require_primordials_array.ArrayIsArray(branches)) {
|
|
90
90
|
for (const count of branches) if (typeof count === "number") {
|
|
@@ -93,7 +93,7 @@ async function getCodeCoverage(options) {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
if (fc.f &&
|
|
96
|
+
if (fc.f && require_objects_predicates.isPlainObject(fc.f)) {
|
|
97
97
|
const functionCounts = require_primordials_object.ObjectValues(fc.f);
|
|
98
98
|
for (const count of functionCounts) if (typeof count === "number") {
|
|
99
99
|
totals.functions.total += 1;
|
package/dist/cover/formatters.js
CHANGED
|
@@ -95,13 +95,13 @@ function formatCoverage(options) {
|
|
|
95
95
|
if (format === "simple") return overall;
|
|
96
96
|
let output = "";
|
|
97
97
|
output += "Code Coverage:\n";
|
|
98
|
-
output +=
|
|
99
|
-
output +=
|
|
100
|
-
output +=
|
|
101
|
-
output +=
|
|
98
|
+
output += require_strings_format.indentString(`Statements: ${code.statements.percent}%\n`, { count: 2 });
|
|
99
|
+
output += require_strings_format.indentString(`Branches: ${code.branches.percent}%\n`, { count: 2 });
|
|
100
|
+
output += require_strings_format.indentString(`Functions: ${code.functions.percent}%\n`, { count: 2 });
|
|
101
|
+
output += require_strings_format.indentString(`Lines: ${code.lines.percent}%\n`, { count: 2 });
|
|
102
102
|
if (type) {
|
|
103
103
|
output += "\nType Coverage:\n";
|
|
104
|
-
output +=
|
|
104
|
+
output += require_strings_format.indentString(`${type.percent}% (${type.covered}/${type.total})\n`, { count: 2 });
|
|
105
105
|
}
|
|
106
106
|
const overallValue = require_primordials_number.NumberParseFloat(overall);
|
|
107
107
|
const emoji = getCoverageEmoji(require_primordials_number.NumberIsNaN(overallValue) ? 0 : overallValue);
|
package/dist/crypto/hash.d.ts
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
* `node:crypto.hash()` (added v21.7.0 / v20.12.0) and falls back to the
|
|
4
4
|
* streaming `createHash().update().digest()` chain on older runtimes.
|
|
5
5
|
*/
|
|
6
|
+
import type { hash as NodeHash } from 'node:crypto';
|
|
7
|
+
/**
|
|
8
|
+
* Compute the Socket content-address of `bytes`: `Q` +
|
|
9
|
+
* base64url(sha256(bytes)).
|
|
10
|
+
*
|
|
11
|
+
* Matches the blob store's hash scheme so a fetched blob can be verified
|
|
12
|
+
* against the hash it was requested by.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ;```typescript
|
|
16
|
+
* import { blobHashOf } from '@socketsecurity/lib/crypto/hash'
|
|
17
|
+
*
|
|
18
|
+
* blobHashOf(new TextEncoder().encode('hello'))
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function blobHashOf(bytes: NodeJS.ArrayBufferView): string;
|
|
6
22
|
/**
|
|
7
23
|
* Compute a one-shot cryptographic hash.
|
|
8
24
|
*
|
|
@@ -33,4 +49,13 @@ export declare function hash(algorithm: string, data: string | NodeJS.ArrayBuffe
|
|
|
33
49
|
*
|
|
34
50
|
* @internal
|
|
35
51
|
*/
|
|
36
|
-
export declare function nativeHash(): typeof
|
|
52
|
+
export declare function nativeHash(): typeof NodeHash | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Throw if `bytes` does not content-address to `blobHash`. Both `Q`-prefixed
|
|
55
|
+
* (single blob) and `S`-prefixed (file-stream) hashes share the sha256 digest
|
|
56
|
+
* body, so both verify against the same digest; the leading discriminator char
|
|
57
|
+
* is dropped before comparison.
|
|
58
|
+
*
|
|
59
|
+
* @throws {Error} When the recomputed digest does not match `blobHash`.
|
|
60
|
+
*/
|
|
61
|
+
export declare function verifyBlobHash(blobHash: string, bytes: NodeJS.ArrayBufferView): void;
|
package/dist/crypto/hash.js
CHANGED
|
@@ -9,8 +9,26 @@ const require_node_crypto = require('../node/crypto.js');
|
|
|
9
9
|
* `node:crypto.hash()` (added v21.7.0 / v20.12.0) and falls back to the
|
|
10
10
|
* streaming `createHash().update().digest()` chain on older runtimes.
|
|
11
11
|
*/
|
|
12
|
-
let
|
|
13
|
-
let
|
|
12
|
+
let cachedNativeHash;
|
|
13
|
+
let nativeHashProbed = false;
|
|
14
|
+
const BLOB_HASH_PREFIX = "Q";
|
|
15
|
+
/**
|
|
16
|
+
* Compute the Socket content-address of `bytes`: `Q` +
|
|
17
|
+
* base64url(sha256(bytes)).
|
|
18
|
+
*
|
|
19
|
+
* Matches the blob store's hash scheme so a fetched blob can be verified
|
|
20
|
+
* against the hash it was requested by.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ;```typescript
|
|
24
|
+
* import { blobHashOf } from '@socketsecurity/lib/crypto/hash'
|
|
25
|
+
*
|
|
26
|
+
* blobHashOf(new TextEncoder().encode('hello'))
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
function blobHashOf(bytes) {
|
|
30
|
+
return BLOB_HASH_PREFIX + hash("sha256", bytes, "base64url");
|
|
31
|
+
}
|
|
14
32
|
/**
|
|
15
33
|
* Compute a one-shot cryptographic hash.
|
|
16
34
|
*
|
|
@@ -33,11 +51,10 @@ let _hashProbed = false;
|
|
|
33
51
|
* // 'z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg/SpIdNs6c5H0NE8XYXysP+DGNKHfuwvY7kxvUdBeoGlODJ6+SfaPg=='
|
|
34
52
|
* ```
|
|
35
53
|
*/
|
|
36
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
37
54
|
function hash(algorithm, data, outputEncoding) {
|
|
38
|
-
const native =
|
|
55
|
+
const native = nativeHash();
|
|
39
56
|
if (native !== void 0) return native(algorithm, data, outputEncoding);
|
|
40
|
-
return
|
|
57
|
+
return require_node_crypto.getNodeCrypto().createHash(algorithm).update(data).digest(outputEncoding);
|
|
41
58
|
}
|
|
42
59
|
/**
|
|
43
60
|
* Resolve `crypto.hash` (or `undefined` if the runtime predates it).
|
|
@@ -46,16 +63,30 @@ function hash(algorithm, data, outputEncoding) {
|
|
|
46
63
|
*
|
|
47
64
|
* @internal
|
|
48
65
|
*/
|
|
49
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
50
66
|
function nativeHash() {
|
|
51
|
-
if (!
|
|
52
|
-
const fn =
|
|
53
|
-
if (typeof fn === "function")
|
|
54
|
-
|
|
67
|
+
if (!nativeHashProbed) {
|
|
68
|
+
const fn = require_node_crypto.getNodeCrypto().hash;
|
|
69
|
+
if (typeof fn === "function") cachedNativeHash = fn;
|
|
70
|
+
nativeHashProbed = true;
|
|
55
71
|
}
|
|
56
|
-
return
|
|
72
|
+
return cachedNativeHash;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Throw if `bytes` does not content-address to `blobHash`. Both `Q`-prefixed
|
|
76
|
+
* (single blob) and `S`-prefixed (file-stream) hashes share the sha256 digest
|
|
77
|
+
* body, so both verify against the same digest; the leading discriminator char
|
|
78
|
+
* is dropped before comparison.
|
|
79
|
+
*
|
|
80
|
+
* @throws {Error} When the recomputed digest does not match `blobHash`.
|
|
81
|
+
*/
|
|
82
|
+
function verifyBlobHash(blobHash, bytes) {
|
|
83
|
+
const expectedDigest = blobHash.slice(1);
|
|
84
|
+
const actualDigest = hash("sha256", bytes, "base64url");
|
|
85
|
+
if (actualDigest !== expectedDigest) throw new Error(`blob integrity check failed for ${blobHash}: content hashes to ${BLOB_HASH_PREFIX}${actualDigest}`);
|
|
57
86
|
}
|
|
58
87
|
|
|
59
88
|
//#endregion
|
|
89
|
+
exports.blobHashOf = blobHashOf;
|
|
60
90
|
exports.hash = hash;
|
|
61
|
-
exports.nativeHash = nativeHash;
|
|
91
|
+
exports.nativeHash = nativeHash;
|
|
92
|
+
exports.verifyBlobHash = verifyBlobHash;
|
package/dist/debug/_internal.js
CHANGED
|
@@ -22,7 +22,7 @@ src_external_debug = require_runtime.__toESM(src_external_debug);
|
|
|
22
22
|
*/
|
|
23
23
|
const logger = require_logger_default.getDefaultLogger();
|
|
24
24
|
const debugByNamespace = new require_primordials_map_set.MapCtor();
|
|
25
|
-
let
|
|
25
|
+
let pointingTriangle;
|
|
26
26
|
/**
|
|
27
27
|
* Custom log function for debug output.
|
|
28
28
|
*
|
|
@@ -32,9 +32,8 @@ let _pointingTriangle;
|
|
|
32
32
|
only fires when debugJs emits, which requires DEBUG=* env var
|
|
33
33
|
set at the right module-load timing. Tests use the SOCKET_DEBUG
|
|
34
34
|
path which writes via logger.info directly. */
|
|
35
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
36
35
|
function customLog(...args) {
|
|
37
|
-
const util =
|
|
36
|
+
const util = require_node_util.getNodeUtil();
|
|
38
37
|
const inspectOpts = src_external_debug.default.inspectOpts ? {
|
|
39
38
|
...src_external_debug.default.inspectOpts,
|
|
40
39
|
showHidden: src_external_debug.default.inspectOpts.showHidden === null ? void 0 : src_external_debug.default.inspectOpts.showHidden,
|
|
@@ -53,10 +52,9 @@ function customLog(...args) {
|
|
|
53
52
|
/* c8 ignore start - First-call init for module-level glyph; only
|
|
54
53
|
one of the 5 debug functions hits the body. The unicode-fallback
|
|
55
54
|
arm also fires only on terminals without unicode support. */
|
|
56
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
57
55
|
function getPointingTriangle() {
|
|
58
|
-
if (
|
|
59
|
-
return
|
|
56
|
+
if (pointingTriangle === void 0) pointingTriangle = (0, src_external__socketregistry_is_unicode_supported.default)() ? "▸" : ">";
|
|
57
|
+
return pointingTriangle;
|
|
60
58
|
}
|
|
61
59
|
/* c8 ignore stop */
|
|
62
60
|
|
|
@@ -16,7 +16,6 @@ const require_objects_predicates = require('../objects/predicates.js');
|
|
|
16
16
|
*
|
|
17
17
|
* @private
|
|
18
18
|
*/
|
|
19
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
20
19
|
function getCallerInfo(stackOffset = 3) {
|
|
21
20
|
let name = "";
|
|
22
21
|
const captureStackTrace = Error.captureStackTrace;
|
|
@@ -33,14 +32,14 @@ function getCallerInfo(stackOffset = 3) {
|
|
|
33
32
|
if (lineCount < stackOffset) lineStart = i + 1;
|
|
34
33
|
else {
|
|
35
34
|
const line = stack.slice(lineStart, i).trimStart();
|
|
36
|
-
const match = /(?<=^at\s+).*?(
|
|
35
|
+
const match = /(?<=^at\s+).*?(?=$|\s+\()/.exec(line)?.[0];
|
|
37
36
|
/* c8 ignore next - Defensive guard; real V8 stack frames
|
|
38
37
|
always start with 'at '. */
|
|
39
38
|
if (match) {
|
|
40
39
|
name = match.replace(/^(?:async|bound|get|new|set)\s+/, "");
|
|
41
40
|
if (require_primordials_string.StringPrototypeStartsWith(name, "Object.")) {
|
|
42
41
|
const afterDot = require_primordials_string.StringPrototypeSlice(name, 7);
|
|
43
|
-
if (
|
|
42
|
+
if (!require_objects_predicates.hasOwn(Object, afterDot)) name = afterDot;
|
|
44
43
|
}
|
|
45
44
|
}
|
|
46
45
|
break;
|
|
@@ -33,3 +33,10 @@ export declare function isDebugNs(namespaces: string | undefined): boolean;
|
|
|
33
33
|
* @private
|
|
34
34
|
*/
|
|
35
35
|
export declare function isEnabled(namespaces: string | undefined): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Whether SOCKET_DEBUG enables debug output. A namespace value like `*` or
|
|
38
|
+
* `socket:foo` enables it (these aren't boolean literals, so `envAsBoolean`
|
|
39
|
+
* alone would wrongly read them as false); an explicit boolean-false (`0`,
|
|
40
|
+
* `false`, `no`) or an empty/unset value disables it.
|
|
41
|
+
*/
|
|
42
|
+
export declare function isSocketDebugEnabled(): boolean;
|
package/dist/debug/namespace.js
CHANGED
|
@@ -23,7 +23,6 @@ src_external_debug = require_runtime.__toESM(src_external_debug);
|
|
|
23
23
|
*
|
|
24
24
|
* @private
|
|
25
25
|
*/
|
|
26
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
27
26
|
function extractOptions(namespaces) {
|
|
28
27
|
return namespaces !== null && typeof namespaces === "object" ? {
|
|
29
28
|
__proto__: null,
|
|
@@ -38,12 +37,11 @@ function extractOptions(namespaces) {
|
|
|
38
37
|
*
|
|
39
38
|
* @private
|
|
40
39
|
*/
|
|
41
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
42
40
|
function getDebugJsInstance(namespace) {
|
|
43
41
|
let inst = require_debug__internal.debugByNamespace.get(namespace);
|
|
44
42
|
/* c8 ignore start */
|
|
45
43
|
if (inst) return inst;
|
|
46
|
-
if (
|
|
44
|
+
if (!require_env_debug.getDebug() && require_env_socket.getSocketDebug() && (namespace === "error" || namespace === "notice")) src_external_debug.default.enable(namespace);
|
|
47
45
|
/* c8 ignore stop */
|
|
48
46
|
/* c8 ignore next - External debug library call */
|
|
49
47
|
inst = (0, src_external_debug.default)(namespace);
|
|
@@ -54,33 +52,43 @@ function getDebugJsInstance(namespace) {
|
|
|
54
52
|
/**
|
|
55
53
|
* Check if debug mode is enabled.
|
|
56
54
|
*/
|
|
57
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
58
55
|
function isDebug() {
|
|
59
|
-
return
|
|
56
|
+
return isSocketDebugEnabled();
|
|
60
57
|
}
|
|
61
58
|
/**
|
|
62
59
|
* Check if debug mode is enabled.
|
|
63
60
|
*/
|
|
64
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
65
61
|
function isDebugNs(namespaces) {
|
|
66
|
-
return
|
|
62
|
+
return isSocketDebugEnabled() && isEnabled(namespaces);
|
|
67
63
|
}
|
|
68
64
|
/**
|
|
69
65
|
* Check if debug is enabled for given namespaces.
|
|
70
66
|
*
|
|
71
67
|
* @private
|
|
72
68
|
*/
|
|
73
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
74
69
|
function isEnabled(namespaces) {
|
|
75
|
-
if (
|
|
70
|
+
if (!require_env_socket.getSocketDebug()) return false;
|
|
76
71
|
if (typeof namespaces !== "string" || !namespaces || namespaces === "*") return true;
|
|
77
72
|
const split = namespaces.trim().replace(/\s+/g, ",").split(",").filter(Boolean);
|
|
78
73
|
const names = [];
|
|
79
74
|
const skips = [];
|
|
80
75
|
for (const ns of split) if (require_primordials_string.StringPrototypeStartsWith(ns, "-")) skips.push(ns.slice(1));
|
|
81
76
|
else names.push(ns);
|
|
82
|
-
if (names.length && !names.some((ns) =>
|
|
83
|
-
return skips.every((ns) => !
|
|
77
|
+
if (names.length && !names.some((ns) => getDebugJsInstance(ns).enabled)) return false;
|
|
78
|
+
return skips.every((ns) => !getDebugJsInstance(ns).enabled);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Whether SOCKET_DEBUG enables debug output. A namespace value like `*` or
|
|
82
|
+
* `socket:foo` enables it (these aren't boolean literals, so `envAsBoolean`
|
|
83
|
+
* alone would wrongly read them as false); an explicit boolean-false (`0`,
|
|
84
|
+
* `false`, `no`) or an empty/unset value disables it.
|
|
85
|
+
*/
|
|
86
|
+
function isSocketDebugEnabled() {
|
|
87
|
+
const value = require_env_socket.getSocketDebug();
|
|
88
|
+
if (!value) return false;
|
|
89
|
+
const lower = value.trim().toLowerCase();
|
|
90
|
+
if (lower === "0" || lower === "false" || lower === "no") return false;
|
|
91
|
+
return true;
|
|
84
92
|
}
|
|
85
93
|
|
|
86
94
|
//#endregion
|
|
@@ -88,4 +96,5 @@ exports.extractOptions = extractOptions;
|
|
|
88
96
|
exports.getDebugJsInstance = getDebugJsInstance;
|
|
89
97
|
exports.isDebug = isDebug;
|
|
90
98
|
exports.isDebugNs = isDebugNs;
|
|
91
|
-
exports.isEnabled = isEnabled;
|
|
99
|
+
exports.isEnabled = isEnabled;
|
|
100
|
+
exports.isSocketDebugEnabled = isSocketDebugEnabled;
|