@socketsecurity/lib 6.0.6 → 6.0.8
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 +46 -1
- package/README.md +1 -1
- package/dist/ai/agent-context.d.mts +103 -0
- package/dist/ai/agent-context.js +157 -0
- package/dist/ai/backends.d.mts +83 -0
- package/dist/ai/backends.js +173 -0
- package/dist/ai/credentials.d.mts +49 -0
- package/dist/ai/credentials.js +82 -0
- package/dist/ai/discover.d.mts +6 -2
- package/dist/ai/discover.js +4 -3
- package/dist/ai/exec.d.mts +52 -0
- package/dist/ai/exec.js +92 -0
- package/dist/ai/http.d.mts +132 -0
- package/dist/ai/http.js +130 -0
- package/dist/ai/profiles.d.mts +41 -6
- package/dist/ai/profiles.js +52 -10
- package/dist/ai/route.d.mts +69 -0
- package/dist/ai/route.js +156 -0
- package/dist/ai/spawn.d.mts +10 -2
- package/dist/ai/spawn.js +56 -31
- package/dist/ai/subagent-status.d.mts +48 -0
- package/dist/ai/subagent-status.js +57 -0
- package/dist/ai/tier.d.mts +60 -0
- package/dist/ai/tier.js +53 -0
- package/dist/ai/types.d.mts +31 -6
- package/dist/ai/worktree.d.mts +6 -6
- package/dist/ai/worktree.js +5 -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 +7 -7
- package/dist/archives/zip.js +5 -7
- 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 +20 -3
- package/dist/argv/parse.js +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 +47 -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 +17 -17
- package/dist/bin/prim.cjs +36175 -35861
- package/dist/bin/resolve.js +13 -14
- package/dist/bin/which.js +8 -8
- package/dist/cache/ttl/store.js +6 -6
- 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 +18 -13
- package/dist/{bin → cli}/check-primordials.js +58 -55
- 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 +18 -18
- package/dist/compression/brotli.d.ts +26 -27
- package/dist/compression/brotli.js +39 -35
- package/dist/compression/gzip.d.ts +23 -23
- package/dist/compression/gzip.js +46 -42
- 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.d.ts +3 -0
- package/dist/constants/packages.js +24 -29
- 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.d.ts +2 -6
- package/dist/constants/socket.js +12 -14
- package/dist/cover/code.js +10 -10
- package/dist/cover/formatters.js +5 -5
- package/dist/crypto/hash.d.ts +30 -2
- package/dist/crypto/hash.js +47 -13
- package/dist/debug/_internal.js +4 -6
- package/dist/debug/caller-info.js +3 -4
- 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 +18 -8
- package/dist/dlx/binary-cache.js +15 -15
- package/dist/dlx/binary-download.d.ts +1 -1
- package/dist/dlx/binary-download.js +11 -11
- package/dist/dlx/binary-resolution.js +17 -15
- 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 +42 -25
- package/dist/dlx/detect.js +86 -77
- package/dist/dlx/dir.js +2 -2
- package/dist/dlx/firewall.d.ts +9 -1
- package/dist/dlx/firewall.js +1 -1
- package/dist/dlx/lockfile.d.ts +19 -18
- package/dist/dlx/lockfile.js +19 -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 +20 -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 +2 -3
- package/dist/eco/cargo/parse-lockfile.js +5 -5
- package/dist/eco/manifest/analyze-lockfile.js +2 -2
- package/dist/eco/manifest/detect-format.js +5 -5
- 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 +17 -18
- package/dist/eco/npm/npm/parse-lockfile.js +4 -4
- package/dist/eco/npm/parse-package-json.d.ts +11 -0
- 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 +6 -4
- package/dist/eco/npm/pnpm/parse-lockfile.js +7 -7
- package/dist/eco/npm/script.js +9 -6
- package/dist/eco/npm/yarnpkg/yarn/exec.js +4 -4
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +3 -4
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +9 -9
- 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/proxy.js +1 -1
- package/dist/env/rewire.d.ts +8 -6
- package/dist/env/rewire.js +16 -17
- 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 +8 -109
- package/dist/env/socket.js +22 -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/errors/predicates.js +1 -1
- 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/@npmcli/promise-spawn.js +3 -1
- package/dist/external/npm-pack.js +2 -2
- package/dist/external/pico-pack.js +4 -2
- package/dist/external/which.js +3 -1
- package/dist/external-tools/bazel/asset-names.d.ts +1 -1
- package/dist/external-tools/bazel/asset-names.js +5 -2
- package/dist/external-tools/bazel/from-download.d.ts +1 -1
- package/dist/external-tools/bazel/from-download.js +5 -2
- package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
- package/dist/external-tools/bazel/resolve-bazel-version.js +4 -0
- package/dist/external-tools/bazel/resolve.d.ts +3 -3
- package/dist/external-tools/bazel/resolve.js +16 -8
- package/dist/external-tools/bazel/types.d.ts +1 -1
- package/dist/external-tools/cdxgen/asset-names.d.ts +1 -1
- package/dist/external-tools/cdxgen/asset-names.js +5 -2
- package/dist/external-tools/cdxgen/from-download.d.ts +1 -1
- package/dist/external-tools/cdxgen/from-download.js +7 -4
- package/dist/external-tools/cdxgen/from-vfs.js +1 -1
- package/dist/external-tools/cdxgen/resolve.d.ts +3 -3
- package/dist/external-tools/cdxgen/resolve.js +16 -8
- package/dist/external-tools/cdxgen/types.d.ts +1 -1
- package/dist/external-tools/from-download.d.ts +3 -3
- package/dist/external-tools/from-download.js +12 -6
- package/dist/external-tools/from-pip-venv.d.ts +1 -1
- package/dist/external-tools/from-pip-venv.js +12 -5
- package/dist/external-tools/janus/asset-names.d.ts +1 -1
- package/dist/external-tools/janus/asset-names.js +5 -2
- package/dist/external-tools/janus/from-download.d.ts +1 -1
- package/dist/external-tools/janus/from-download.js +5 -2
- package/dist/external-tools/janus/from-vfs.js +1 -1
- package/dist/external-tools/janus/resolve.d.ts +3 -3
- package/dist/external-tools/janus/resolve.js +16 -8
- package/dist/external-tools/janus/types.d.ts +1 -1
- package/dist/external-tools/jre/asset-names.d.ts +1 -1
- package/dist/external-tools/jre/asset-names.js +5 -2
- 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.d.ts +1 -1
- package/dist/external-tools/jre/from-download.js +7 -4
- package/dist/external-tools/jre/from-java-home.js +2 -2
- package/dist/external-tools/jre/from-vfs.js +3 -3
- package/dist/external-tools/jre/resolve.d.ts +3 -3
- package/dist/external-tools/jre/resolve.js +16 -8
- package/dist/external-tools/jre/types.d.ts +1 -1
- package/dist/external-tools/manifest.d.ts +25 -7
- package/dist/external-tools/manifest.js +13 -13
- package/dist/external-tools/opengrep/asset-names.d.ts +1 -1
- package/dist/external-tools/opengrep/asset-names.js +5 -2
- package/dist/external-tools/opengrep/from-download.d.ts +1 -1
- package/dist/external-tools/opengrep/from-download.js +5 -2
- package/dist/external-tools/opengrep/from-vfs.js +1 -1
- package/dist/external-tools/opengrep/resolve.d.ts +3 -3
- package/dist/external-tools/opengrep/resolve.js +16 -8
- 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 +111 -0
- package/dist/external-tools/python/dlx.d.ts +80 -0
- package/dist/external-tools/python/dlx.js +98 -0
- package/dist/external-tools/python/from-download.d.ts +53 -0
- package/dist/external-tools/python/from-download.js +75 -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 +176 -0
- package/dist/external-tools/python/pip-install.d.ts +75 -0
- package/dist/external-tools/python/pip-install.js +142 -0
- package/dist/external-tools/python/resolve.d.ts +42 -0
- package/dist/external-tools/python/resolve.js +66 -0
- package/dist/external-tools/python/types.d.ts +49 -0
- package/dist/external-tools/sbt/asset-names.d.ts +1 -1
- package/dist/external-tools/sbt/asset-names.js +5 -2
- package/dist/external-tools/sbt/from-download.d.ts +1 -1
- package/dist/external-tools/sbt/from-download.js +5 -2
- package/dist/external-tools/sbt/from-vfs.js +1 -1
- package/dist/external-tools/sbt/resolve.d.ts +3 -3
- package/dist/external-tools/sbt/resolve.js +16 -8
- package/dist/external-tools/sbt/types.d.ts +1 -1
- package/dist/external-tools/skillspector/from-dlx.d.ts +1 -1
- package/dist/external-tools/skillspector/from-dlx.js +10 -3
- package/dist/external-tools/skillspector/from-path.js +3 -5
- package/dist/external-tools/skillspector/from-vfs.js +1 -1
- package/dist/external-tools/skillspector/resolve.d.ts +2 -2
- package/dist/external-tools/skillspector/resolve.js +14 -6
- package/dist/external-tools/synp/asset-names.d.ts +1 -1
- package/dist/external-tools/synp/asset-names.js +6 -2
- package/dist/external-tools/synp/from-download.d.ts +1 -1
- package/dist/external-tools/synp/from-download.js +7 -4
- package/dist/external-tools/synp/from-vfs.js +1 -1
- package/dist/external-tools/synp/resolve.d.ts +3 -3
- package/dist/external-tools/synp/resolve.js +16 -8
- package/dist/external-tools/trivy/asset-names.d.ts +1 -1
- package/dist/external-tools/trivy/asset-names.js +5 -2
- package/dist/external-tools/trivy/from-download.d.ts +1 -1
- package/dist/external-tools/trivy/from-download.js +7 -4
- package/dist/external-tools/trivy/from-vfs.js +1 -1
- package/dist/external-tools/trivy/resolve.d.ts +3 -3
- package/dist/external-tools/trivy/resolve.js +16 -8
- package/dist/external-tools/trivy/types.d.ts +1 -1
- package/dist/external-tools/trufflehog/asset-names.d.ts +1 -1
- package/dist/external-tools/trufflehog/asset-names.js +5 -2
- package/dist/external-tools/trufflehog/from-download.d.ts +1 -1
- package/dist/external-tools/trufflehog/from-download.js +7 -4
- package/dist/external-tools/trufflehog/from-vfs.js +1 -1
- package/dist/external-tools/trufflehog/resolve.d.ts +3 -3
- package/dist/external-tools/trufflehog/resolve.js +16 -8
- 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/allowed-dirs-cache.d.ts +47 -0
- package/dist/fs/allowed-dirs-cache.js +69 -0
- package/dist/fs/encoding.js +5 -7
- package/dist/fs/{find-up.js → find.js} +12 -14
- 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 +13 -4
- package/dist/fs/read-json-cache.js +9 -6
- package/dist/fs/read-json.js +4 -6
- package/dist/fs/resolve-module.js +7 -3
- package/dist/fs/safe.d.ts +1 -1
- package/dist/fs/safe.js +13 -14
- 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 +11 -11
- package/dist/git/changed.js +4 -4
- package/dist/git/repo.js +5 -7
- package/dist/git/staged.js +12 -4
- package/dist/git/tracked.d.ts +84 -0
- package/dist/git/tracked.js +163 -0
- package/dist/git/unstaged.js +12 -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-graphql.js +4 -0
- package/dist/github/refs-rest.js +9 -5
- package/dist/github/refs.js +15 -10
- 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 +8 -10
- package/dist/globs/match.js +13 -7
- package/dist/globs/matcher.d.ts +3 -3
- package/dist/globs/matcher.js +16 -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 +10 -4
- 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/{browser-fetch.d.ts → fetch/browser.d.ts} +2 -2
- package/dist/http-request/{browser-fetch.js → fetch/browser.js} +4 -4
- package/dist/http-request/headers.js +1 -2
- package/dist/http-request/request-attempt.js +38 -34
- 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 +4 -5
- package/dist/integrity.d.ts +92 -18
- package/dist/integrity.js +125 -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 +51 -44
- package/dist/json/format.js +1 -1
- 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 +144 -0
- package/dist/native-messaging/rate-limit.d.ts +69 -0
- package/dist/native-messaging/rate-limit.js +119 -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.d.ts +22 -6
- package/dist/node/fs.js +17 -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.d.ts +10 -2
- package/dist/node/os.js +12 -4
- package/dist/node/path.d.ts +11 -2
- package/dist/node/path.js +18 -4
- 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 +6 -8
- package/dist/objects/inspect.js +1 -4
- package/dist/objects/mutate.js +4 -5
- package/dist/objects/predicates.js +1 -5
- package/dist/objects/sort.js +3 -7
- package/dist/packages/edit-class.d.ts +2 -3
- package/dist/packages/edit-class.js +53 -48
- package/dist/packages/edit.js +12 -14
- package/dist/packages/exports.js +15 -21
- 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 +18 -18
- package/dist/packages/manifest.js +16 -19
- package/dist/packages/metadata-extensions.d.ts +14 -0
- package/dist/packages/metadata-extensions.js +43 -0
- package/dist/packages/normalize.js +6 -10
- package/dist/packages/provenance.js +17 -19
- 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 +75 -12
- package/dist/packages/tarball.d.ts +24 -0
- package/dist/packages/tarball.js +81 -0
- package/dist/packages/types.d.ts +22 -22
- 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/dirnames.d.ts +1 -0
- package/dist/paths/dirnames.js +2 -0
- 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 +17 -25
- package/dist/paths/rewire.d.ts +5 -0
- package/dist/paths/rewire.js +3 -3
- package/dist/paths/socket.d.ts +74 -111
- package/dist/paths/socket.js +106 -139
- 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/process.d.ts +88 -0
- package/dist/primordials/process.js +132 -0
- 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.d.ts +1 -2
- 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 +20 -14
- package/dist/process/spawn/errors.js +3 -5
- 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/regexps/spec.js +1 -1
- package/dist/releases/github-archives.d.ts +6 -6
- package/dist/releases/github-archives.js +3 -3
- 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 +12 -4
- 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 +4 -5
- package/dist/schema/validate.js +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/find.d.ts +2 -2
- package/dist/secrets/find.js +10 -4
- package/dist/secrets/keychain.d.ts +1 -1
- package/dist/secrets/keychain.js +6 -4
- package/dist/secrets/linux.js +40 -52
- package/dist/secrets/macos.d.ts +2 -3
- package/dist/secrets/macos.js +24 -33
- package/dist/secrets/rc.d.ts +4 -4
- package/dist/secrets/rc.js +27 -17
- package/dist/secrets/socket-api-token.d.ts +4 -4
- package/dist/secrets/socket-api-token.js +26 -9
- package/dist/secrets/windows.js +32 -37
- package/dist/shadow/skip.js +2 -2
- package/dist/shell/parse.d.ts +32 -0
- package/dist/shell/parse.js +60 -0
- 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 +105 -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 +8 -5
- package/dist/spinner/spinner.js +19 -706
- 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 +10 -6
- package/dist/stdio/prompts.d.ts +7 -5
- package/dist/stdio/prompts.js +7 -8
- 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/assert-safe.d.ts +29 -0
- package/dist/url/assert-safe.js +54 -0
- package/dist/url/parse.js +0 -2
- package/dist/url/predicates.d.ts +31 -1
- package/dist/url/predicates.js +43 -3
- package/dist/url/search-params.js +3 -9
- package/dist/url/types.d.ts +9 -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 +419 -216
- 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/fs/path-cache.d.ts +0 -21
- package/dist/fs/path-cache.js +0 -34
- 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/{find-up.d.ts → find.d.ts} +0 -0
- /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
package/dist/temporal/system.js
CHANGED
|
@@ -18,10 +18,10 @@ const require_primordials_globals = require('../primordials/globals.js');
|
|
|
18
18
|
* polyfill makes for browser hosts. Spec:
|
|
19
19
|
* https://tc39.es/proposal-temporal/#sec-temporal-systemutcepochnanoseconds.
|
|
20
20
|
*/
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
21
|
+
const hrtimeBigint = globalThis.process?.hrtime?.bigint;
|
|
22
|
+
const anchorWallMs = require_primordials_globals.BigIntCtor(require_primordials_date.DateNow());
|
|
23
|
+
const anchorHrns = hrtimeBigint ? hrtimeBigint() : 0n;
|
|
24
|
+
const NS_PER_MS = 1000000n;
|
|
25
25
|
/**
|
|
26
26
|
* Returns the current UTC time as nanoseconds since 1970-01-01T00:00:00Z.
|
|
27
27
|
*
|
|
@@ -29,13 +29,13 @@ const _NS_PER_MS = 1000000n;
|
|
|
29
29
|
* module load), millisecond elsewhere.
|
|
30
30
|
*/
|
|
31
31
|
function systemUTCEpochNanoseconds() {
|
|
32
|
-
if (
|
|
33
|
-
const elapsedNs =
|
|
34
|
-
return
|
|
32
|
+
if (hrtimeBigint) {
|
|
33
|
+
const elapsedNs = hrtimeBigint() - anchorHrns;
|
|
34
|
+
return anchorWallMs * NS_PER_MS + elapsedNs;
|
|
35
35
|
}
|
|
36
36
|
/* c8 ignore next - Non-Node runtime fallback; tests always run under Node
|
|
37
|
-
where
|
|
38
|
-
return require_primordials_globals.BigIntCtor(require_primordials_date.DateNow()) *
|
|
37
|
+
where hrtimeBigint is bound from process.hrtime.bigint. */
|
|
38
|
+
return require_primordials_globals.BigIntCtor(require_primordials_date.DateNow()) * NS_PER_MS;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
//#endregion
|
package/dist/themes/context.d.ts
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* context isolation via AsyncLocalStorage.
|
|
4
4
|
*/
|
|
5
5
|
import type { Theme } from './types';
|
|
6
|
-
import {
|
|
6
|
+
import type { ThemeName } from './themes';
|
|
7
|
+
import type * as AsyncHooks from 'node:async_hooks';
|
|
7
8
|
/**
|
|
8
9
|
* Theme change event listener signature.
|
|
9
10
|
*/
|
|
@@ -19,7 +20,7 @@ export declare function emitThemeChange(theme: Theme): void;
|
|
|
19
20
|
*
|
|
20
21
|
* @private
|
|
21
22
|
*/
|
|
22
|
-
export declare function getAsyncHooks(): typeof
|
|
23
|
+
export declare function getAsyncHooks(): typeof AsyncHooks;
|
|
23
24
|
/**
|
|
24
25
|
* Get the active theme from context.
|
|
25
26
|
*
|
package/dist/themes/context.js
CHANGED
|
@@ -5,7 +5,7 @@ const require_primordials_map_set = require('../primordials/map-set.js');
|
|
|
5
5
|
const require_themes_themes = require('./themes.js');
|
|
6
6
|
|
|
7
7
|
//#region src/themes/context.ts
|
|
8
|
-
let
|
|
8
|
+
let asyncHooks;
|
|
9
9
|
/**
|
|
10
10
|
* Emit theme change event to listeners.
|
|
11
11
|
*
|
|
@@ -19,15 +19,14 @@ function emitThemeChange(theme) {
|
|
|
19
19
|
*
|
|
20
20
|
* @private
|
|
21
21
|
*/
|
|
22
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
23
22
|
function getAsyncHooks() {
|
|
24
|
-
if (
|
|
25
|
-
return
|
|
23
|
+
if (asyncHooks === void 0) asyncHooks = /*@__PURE__*/ require("node:async_hooks");
|
|
24
|
+
return asyncHooks;
|
|
26
25
|
}
|
|
27
26
|
/**
|
|
28
27
|
* AsyncLocalStorage for theme context isolation.
|
|
29
28
|
*/
|
|
30
|
-
const { AsyncLocalStorage } =
|
|
29
|
+
const { AsyncLocalStorage } = getAsyncHooks();
|
|
31
30
|
const themeStorage = new AsyncLocalStorage();
|
|
32
31
|
/**
|
|
33
32
|
* Fallback theme for global context.
|
package/dist/themes/themes.js
CHANGED
|
@@ -8,8 +8,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
8
8
|
* designed for focus and elegance.
|
|
9
9
|
*/
|
|
10
10
|
const SOCKET_THEME = {
|
|
11
|
-
name: "socket",
|
|
12
|
-
displayName: "Socket Security",
|
|
13
11
|
colors: {
|
|
14
12
|
primary: [
|
|
15
13
|
140,
|
|
@@ -26,6 +24,7 @@ const SOCKET_THEME = {
|
|
|
26
24
|
link: "cyanBright",
|
|
27
25
|
prompt: "primary"
|
|
28
26
|
},
|
|
27
|
+
displayName: "Socket Security",
|
|
29
28
|
effects: {
|
|
30
29
|
spinner: {
|
|
31
30
|
color: "primary",
|
|
@@ -41,15 +40,14 @@ const SOCKET_THEME = {
|
|
|
41
40
|
meta: {
|
|
42
41
|
description: "Signature theme with refined violet and subtle shimmer",
|
|
43
42
|
version: "1.0.0"
|
|
44
|
-
}
|
|
43
|
+
},
|
|
44
|
+
name: "socket"
|
|
45
45
|
};
|
|
46
46
|
/**
|
|
47
47
|
* Sunset — Vibrant twilight gradient. Warm sunset palette with orange and
|
|
48
48
|
* purple/pink tones.
|
|
49
49
|
*/
|
|
50
50
|
const SUNSET_THEME = {
|
|
51
|
-
name: "sunset",
|
|
52
|
-
displayName: "Sunset",
|
|
53
51
|
colors: {
|
|
54
52
|
primary: [
|
|
55
53
|
255,
|
|
@@ -71,6 +69,7 @@ const SUNSET_THEME = {
|
|
|
71
69
|
link: "primary",
|
|
72
70
|
prompt: "primary"
|
|
73
71
|
},
|
|
72
|
+
displayName: "Sunset",
|
|
74
73
|
effects: {
|
|
75
74
|
spinner: {
|
|
76
75
|
color: "primary",
|
|
@@ -94,15 +93,14 @@ const SUNSET_THEME = {
|
|
|
94
93
|
meta: {
|
|
95
94
|
description: "Warm sunset theme with purple-to-orange gradient",
|
|
96
95
|
version: "2.0.0"
|
|
97
|
-
}
|
|
96
|
+
},
|
|
97
|
+
name: "sunset"
|
|
98
98
|
};
|
|
99
99
|
/**
|
|
100
100
|
* Terracotta — Solid warmth. Rich terracotta and ember tones for grounded
|
|
101
101
|
* confidence.
|
|
102
102
|
*/
|
|
103
103
|
const TERRACOTTA_THEME = {
|
|
104
|
-
name: "terracotta",
|
|
105
|
-
displayName: "Terracotta",
|
|
106
104
|
colors: {
|
|
107
105
|
primary: [
|
|
108
106
|
255,
|
|
@@ -124,6 +122,7 @@ const TERRACOTTA_THEME = {
|
|
|
124
122
|
link: "secondary",
|
|
125
123
|
prompt: "primary"
|
|
126
124
|
},
|
|
125
|
+
displayName: "Terracotta",
|
|
127
126
|
effects: {
|
|
128
127
|
spinner: {
|
|
129
128
|
color: "primary",
|
|
@@ -139,14 +138,13 @@ const TERRACOTTA_THEME = {
|
|
|
139
138
|
meta: {
|
|
140
139
|
description: "Solid theme with rich terracotta and ember warmth",
|
|
141
140
|
version: "1.0.0"
|
|
142
|
-
}
|
|
141
|
+
},
|
|
142
|
+
name: "terracotta"
|
|
143
143
|
};
|
|
144
144
|
/**
|
|
145
145
|
* Lush — Steel elegance. Python-inspired steel blue with golden accents.
|
|
146
146
|
*/
|
|
147
147
|
const LUSH_THEME = {
|
|
148
|
-
name: "lush",
|
|
149
|
-
displayName: "Lush",
|
|
150
148
|
colors: {
|
|
151
149
|
primary: [
|
|
152
150
|
70,
|
|
@@ -168,6 +166,7 @@ const LUSH_THEME = {
|
|
|
168
166
|
link: "cyanBright",
|
|
169
167
|
prompt: "primary"
|
|
170
168
|
},
|
|
169
|
+
displayName: "Lush",
|
|
171
170
|
effects: { spinner: {
|
|
172
171
|
color: "primary",
|
|
173
172
|
style: "dots"
|
|
@@ -175,15 +174,14 @@ const LUSH_THEME = {
|
|
|
175
174
|
meta: {
|
|
176
175
|
description: "Elegant theme with steel blue and golden harmony",
|
|
177
176
|
version: "1.0.0"
|
|
178
|
-
}
|
|
177
|
+
},
|
|
178
|
+
name: "lush"
|
|
179
179
|
};
|
|
180
180
|
/**
|
|
181
181
|
* Ultra — Premium intensity. Prismatic shimmer for deep analysis, where
|
|
182
182
|
* complexity meets elegance.
|
|
183
183
|
*/
|
|
184
184
|
const ULTRA_THEME = {
|
|
185
|
-
name: "ultra",
|
|
186
|
-
displayName: "Ultra",
|
|
187
185
|
colors: {
|
|
188
186
|
primary: [
|
|
189
187
|
140,
|
|
@@ -200,6 +198,7 @@ const ULTRA_THEME = {
|
|
|
200
198
|
link: "cyanBright",
|
|
201
199
|
prompt: "primary"
|
|
202
200
|
},
|
|
201
|
+
displayName: "Ultra",
|
|
203
202
|
effects: {
|
|
204
203
|
spinner: {
|
|
205
204
|
color: "inherit",
|
|
@@ -215,7 +214,8 @@ const ULTRA_THEME = {
|
|
|
215
214
|
meta: {
|
|
216
215
|
description: "Premium theme with prismatic shimmer for deep analysis",
|
|
217
216
|
version: "1.0.0"
|
|
218
|
-
}
|
|
217
|
+
},
|
|
218
|
+
name: "ultra"
|
|
219
219
|
};
|
|
220
220
|
/**
|
|
221
221
|
* Theme registry — Curated palette collection.
|
package/dist/themes/types.d.ts
CHANGED
|
@@ -75,7 +75,7 @@ export type ThemeEffects = {
|
|
|
75
75
|
* Animation style.
|
|
76
76
|
*/
|
|
77
77
|
style?: SpinnerStyle | string | undefined;
|
|
78
|
-
};
|
|
78
|
+
} | undefined;
|
|
79
79
|
/**
|
|
80
80
|
* Shimmer configuration.
|
|
81
81
|
*/
|
|
@@ -96,7 +96,7 @@ export type ThemeEffects = {
|
|
|
96
96
|
* Speed (steps per frame)
|
|
97
97
|
*/
|
|
98
98
|
speed?: number | undefined;
|
|
99
|
-
};
|
|
99
|
+
} | undefined;
|
|
100
100
|
/**
|
|
101
101
|
* Pulse configuration.
|
|
102
102
|
*/
|
|
@@ -105,7 +105,7 @@ export type ThemeEffects = {
|
|
|
105
105
|
* Speed (milliseconds)
|
|
106
106
|
*/
|
|
107
107
|
speed?: number | undefined;
|
|
108
|
-
};
|
|
108
|
+
} | undefined;
|
|
109
109
|
};
|
|
110
110
|
/**
|
|
111
111
|
* Theme metadata — descriptive information.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file SSRF guard for operator- or issuer-supplied URLs — `assertSafeHttpUrl`
|
|
3
|
+
* parses a raw URL, rejects non-HTTP(S) schemes, and refuses hosts that
|
|
4
|
+
* resolve to loopback / private / link-local ranges (cloud metadata, redis,
|
|
5
|
+
* internal services). A server that fetches a URL it did not author (an OAuth
|
|
6
|
+
* issuer, an introspection endpoint advertised in its metadata, a webhook
|
|
7
|
+
* target) runs the candidate through this before the request leaves the box.
|
|
8
|
+
*/
|
|
9
|
+
import type { AssertSafeHttpUrlOptions } from './types';
|
|
10
|
+
/**
|
|
11
|
+
* Parse `rawUrl` and assert it is safe to fetch server-side, returning the
|
|
12
|
+
* parsed `URL`. Throws when the value does not parse, uses a scheme other than
|
|
13
|
+
* `http:` / `https:`, or resolves to a loopback / private / link-local host.
|
|
14
|
+
* Set `allowLocalhost` to permit `localhost` / `127.0.0.1` / `::1` for
|
|
15
|
+
* local-stack development. `label` names the subject in the thrown message.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ;```typescript
|
|
19
|
+
* assertSafeHttpUrl('https://api.example.com', { label: 'OAuth issuer' })
|
|
20
|
+
* // → URL { href: 'https://api.example.com/' }
|
|
21
|
+
*
|
|
22
|
+
* assertSafeHttpUrl('http://169.254.169.254/latest/meta-data')
|
|
23
|
+
* // → throws: resolves to a private/loopback host
|
|
24
|
+
*
|
|
25
|
+
* assertSafeHttpUrl('ftp://example.com')
|
|
26
|
+
* // → throws: must use http(s)
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function assertSafeHttpUrl(rawUrl: string, options?: AssertSafeHttpUrlOptions | undefined): URL;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_url_predicates = require('./predicates.js');
|
|
5
|
+
|
|
6
|
+
//#region src/url/assert-safe.ts
|
|
7
|
+
/**
|
|
8
|
+
* @file SSRF guard for operator- or issuer-supplied URLs — `assertSafeHttpUrl`
|
|
9
|
+
* parses a raw URL, rejects non-HTTP(S) schemes, and refuses hosts that
|
|
10
|
+
* resolve to loopback / private / link-local ranges (cloud metadata, redis,
|
|
11
|
+
* internal services). A server that fetches a URL it did not author (an OAuth
|
|
12
|
+
* issuer, an introspection endpoint advertised in its metadata, a webhook
|
|
13
|
+
* target) runs the candidate through this before the request leaves the box.
|
|
14
|
+
*/
|
|
15
|
+
const UrlCtor = URL;
|
|
16
|
+
/**
|
|
17
|
+
* Parse `rawUrl` and assert it is safe to fetch server-side, returning the
|
|
18
|
+
* parsed `URL`. Throws when the value does not parse, uses a scheme other than
|
|
19
|
+
* `http:` / `https:`, or resolves to a loopback / private / link-local host.
|
|
20
|
+
* Set `allowLocalhost` to permit `localhost` / `127.0.0.1` / `::1` for
|
|
21
|
+
* local-stack development. `label` names the subject in the thrown message.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ;```typescript
|
|
25
|
+
* assertSafeHttpUrl('https://api.example.com', { label: 'OAuth issuer' })
|
|
26
|
+
* // → URL { href: 'https://api.example.com/' }
|
|
27
|
+
*
|
|
28
|
+
* assertSafeHttpUrl('http://169.254.169.254/latest/meta-data')
|
|
29
|
+
* // → throws: resolves to a private/loopback host
|
|
30
|
+
*
|
|
31
|
+
* assertSafeHttpUrl('ftp://example.com')
|
|
32
|
+
* // → throws: must use http(s)
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
function assertSafeHttpUrl(rawUrl, options) {
|
|
36
|
+
const { allowLocalhost = false, label = "URL" } = {
|
|
37
|
+
__proto__: null,
|
|
38
|
+
...options
|
|
39
|
+
};
|
|
40
|
+
let url;
|
|
41
|
+
try {
|
|
42
|
+
url = new UrlCtor(rawUrl);
|
|
43
|
+
} catch {
|
|
44
|
+
throw new Error(`${label} is not a valid URL: ${rawUrl}. Provide an absolute http(s) URL.`);
|
|
45
|
+
}
|
|
46
|
+
if (url.protocol !== "http:" && url.protocol !== "https:") throw new Error(`${label} must use http(s): ${rawUrl}. Got scheme "${url.protocol}"; use http: or https:.`);
|
|
47
|
+
const { hostname } = url;
|
|
48
|
+
if (allowLocalhost && require_url_predicates.isLoopbackHost(hostname)) return url;
|
|
49
|
+
if (require_url_predicates.isPrivateHost(hostname)) throw new Error(`${label} resolves to a private/loopback host and is refused: ${rawUrl}. Point it at a public host.`);
|
|
50
|
+
return url;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
//#endregion
|
|
54
|
+
exports.assertSafeHttpUrl = assertSafeHttpUrl;
|
package/dist/url/parse.js
CHANGED
|
@@ -19,7 +19,6 @@ const UrlCtor = URL;
|
|
|
19
19
|
* createRelativeUrl('/api/test', { base: 'https://example.com' }) // 'https://example.com/api/test'
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
23
22
|
function createRelativeUrl(path, options) {
|
|
24
23
|
const { base = "" } = {
|
|
25
24
|
__proto__: null,
|
|
@@ -42,7 +41,6 @@ function createRelativeUrl(path, options) {
|
|
|
42
41
|
* parseUrl('invalid') // undefined
|
|
43
42
|
* ```
|
|
44
43
|
*/
|
|
45
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
46
44
|
function parseUrl(value) {
|
|
47
45
|
try {
|
|
48
46
|
return new UrlCtor(value);
|
package/dist/url/predicates.d.ts
CHANGED
|
@@ -1,7 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file URL type-guard predicates — `isUrl` answers whether a value parses as a
|
|
3
|
-
* valid URL via `parseUrl`.
|
|
3
|
+
* valid URL via `parseUrl`. `isLoopbackHost` / `isPrivateHost` classify a
|
|
4
|
+
* hostname for SSRF guards: a server that fetches an operator- or
|
|
5
|
+
* issuer-supplied URL uses these to refuse hosts that resolve to the local
|
|
6
|
+
* machine or an internal network (cloud metadata, redis, link-local).
|
|
4
7
|
*/
|
|
8
|
+
/**
|
|
9
|
+
* Check whether a hostname is a loopback address — `localhost`, `127.0.0.1`, or
|
|
10
|
+
* IPv6 `::1`. Compares case-insensitively; pass a bare hostname, not a URL.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ;```typescript
|
|
14
|
+
* isLoopbackHost('localhost') // true
|
|
15
|
+
* isLoopbackHost('127.0.0.1') // true
|
|
16
|
+
* isLoopbackHost('example.com') // false
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function isLoopbackHost(hostname: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Check whether a hostname resolves to a private / loopback / link-local
|
|
22
|
+
* address an SSRF probe would target (the local machine, RFC 1918 ranges, IPv6
|
|
23
|
+
* loopback / ULA / link-local). Loopback hosts count as private. Compares
|
|
24
|
+
* case-insensitively; pass a bare hostname, not a URL.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ;```typescript
|
|
28
|
+
* isPrivateHost('127.0.0.1') // true
|
|
29
|
+
* isPrivateHost('10.0.0.5') // true
|
|
30
|
+
* isPrivateHost('169.254.169.254') // true
|
|
31
|
+
* isPrivateHost('example.com') // false
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function isPrivateHost(hostname: string): boolean;
|
|
5
35
|
/**
|
|
6
36
|
* Check if a value is a valid URL.
|
|
7
37
|
*
|
package/dist/url/predicates.js
CHANGED
|
@@ -1,13 +1,52 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* Socket Lib - Built with rolldown */
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_primordials_string = require('../primordials/string.js');
|
|
5
|
+
const require_primordials_regexp = require('../primordials/regexp.js');
|
|
4
6
|
const require_url_parse = require('./parse.js');
|
|
5
7
|
|
|
6
8
|
//#region src/url/predicates.ts
|
|
7
9
|
/**
|
|
8
10
|
* @file URL type-guard predicates — `isUrl` answers whether a value parses as a
|
|
9
|
-
* valid URL via `parseUrl`.
|
|
11
|
+
* valid URL via `parseUrl`. `isLoopbackHost` / `isPrivateHost` classify a
|
|
12
|
+
* hostname for SSRF guards: a server that fetches an operator- or
|
|
13
|
+
* issuer-supplied URL uses these to refuse hosts that resolve to the local
|
|
14
|
+
* machine or an internal network (cloud metadata, redis, link-local).
|
|
10
15
|
*/
|
|
16
|
+
const PRIVATE_HOST_REGEXP = /^(?:0\.0\.0\.0$|10\.|127\.|169\.254\.|172\.(?:1[6-9]|2\d|3[01])\.|192\.168\.|\[?::1\]?$|\[?fc00:|\[?fd|\[?fe80:)/u;
|
|
17
|
+
/**
|
|
18
|
+
* Check whether a hostname is a loopback address — `localhost`, `127.0.0.1`, or
|
|
19
|
+
* IPv6 `::1`. Compares case-insensitively; pass a bare hostname, not a URL.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ;```typescript
|
|
23
|
+
* isLoopbackHost('localhost') // true
|
|
24
|
+
* isLoopbackHost('127.0.0.1') // true
|
|
25
|
+
* isLoopbackHost('example.com') // false
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
function isLoopbackHost(hostname) {
|
|
29
|
+
const host = require_primordials_string.StringPrototypeToLowerCase(hostname);
|
|
30
|
+
return host === "::1" || host === "127.0.0.1" || host === "localhost";
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Check whether a hostname resolves to a private / loopback / link-local
|
|
34
|
+
* address an SSRF probe would target (the local machine, RFC 1918 ranges, IPv6
|
|
35
|
+
* loopback / ULA / link-local). Loopback hosts count as private. Compares
|
|
36
|
+
* case-insensitively; pass a bare hostname, not a URL.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ;```typescript
|
|
40
|
+
* isPrivateHost('127.0.0.1') // true
|
|
41
|
+
* isPrivateHost('10.0.0.5') // true
|
|
42
|
+
* isPrivateHost('169.254.169.254') // true
|
|
43
|
+
* isPrivateHost('example.com') // false
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
function isPrivateHost(hostname) {
|
|
47
|
+
const host = require_primordials_string.StringPrototypeToLowerCase(hostname);
|
|
48
|
+
return isLoopbackHost(host) || require_primordials_regexp.RegExpPrototypeTest(PRIVATE_HOST_REGEXP, host);
|
|
49
|
+
}
|
|
11
50
|
/**
|
|
12
51
|
* Check if a value is a valid URL.
|
|
13
52
|
*
|
|
@@ -18,10 +57,11 @@ const require_url_parse = require('./parse.js');
|
|
|
18
57
|
* isUrl(null) // false
|
|
19
58
|
* ```
|
|
20
59
|
*/
|
|
21
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
22
60
|
function isUrl(value) {
|
|
23
|
-
return (typeof value === "string" && value !== "" || value !== null && typeof value === "object") &&
|
|
61
|
+
return (typeof value === "string" && value !== "" || value !== null && typeof value === "object") && !!require_url_parse.parseUrl(value);
|
|
24
62
|
}
|
|
25
63
|
|
|
26
64
|
//#endregion
|
|
65
|
+
exports.isLoopbackHost = isLoopbackHost;
|
|
66
|
+
exports.isPrivateHost = isPrivateHost;
|
|
27
67
|
exports.isUrl = isUrl;
|
|
@@ -20,7 +20,6 @@ const BooleanCtor = Boolean;
|
|
|
20
20
|
* urlSearchParamsAsArray(null) // []
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
24
23
|
function urlSearchParamsAsArray(value) {
|
|
25
24
|
return typeof value === "string" ? value.trim().split(/, */).map((v) => v.trim()).filter(BooleanCtor) : [];
|
|
26
25
|
}
|
|
@@ -34,7 +33,6 @@ function urlSearchParamsAsArray(value) {
|
|
|
34
33
|
* urlSearchParamsAsBoolean(null) // false
|
|
35
34
|
* ```
|
|
36
35
|
*/
|
|
37
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
38
36
|
function urlSearchParamsAsBoolean(value, options) {
|
|
39
37
|
const { defaultValue = false } = {
|
|
40
38
|
__proto__: null,
|
|
@@ -44,7 +42,7 @@ function urlSearchParamsAsBoolean(value, options) {
|
|
|
44
42
|
const trimmed = value.trim();
|
|
45
43
|
if (trimmed === "") return !!defaultValue;
|
|
46
44
|
const lowered = trimmed.toLowerCase();
|
|
47
|
-
return lowered === "1" || lowered === "
|
|
45
|
+
return lowered === "1" || lowered === "on" || lowered === "true" || lowered === "yes";
|
|
48
46
|
}
|
|
49
47
|
if (value === null || value === void 0) return !!defaultValue;
|
|
50
48
|
return !!value;
|
|
@@ -59,7 +57,6 @@ function urlSearchParamsAsBoolean(value, options) {
|
|
|
59
57
|
* urlSearchParamsAsNumber(params, 'other') // 0
|
|
60
58
|
* ```
|
|
61
59
|
*/
|
|
62
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
63
60
|
function urlSearchParamsAsNumber(params, key, options) {
|
|
64
61
|
const { defaultValue = 0 } = {
|
|
65
62
|
__proto__: null,
|
|
@@ -84,7 +81,6 @@ function urlSearchParamsAsNumber(params, key, options) {
|
|
|
84
81
|
* urlSearchParamsAsString(params, 'other') // ''
|
|
85
82
|
* ```
|
|
86
83
|
*/
|
|
87
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
88
84
|
function urlSearchParamsAsString(params, key, options) {
|
|
89
85
|
const { defaultValue = "" } = {
|
|
90
86
|
__proto__: null,
|
|
@@ -105,12 +101,11 @@ function urlSearchParamsAsString(params, key, options) {
|
|
|
105
101
|
* urlSearchParamsGetArray(params, 'tags') // ['a', 'b', 'c']
|
|
106
102
|
* ```
|
|
107
103
|
*/
|
|
108
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
109
104
|
function urlSearchParamsGetArray(params, key) {
|
|
110
105
|
if (params && typeof params.getAll === "function") {
|
|
111
106
|
const values = params.getAll(key);
|
|
112
107
|
const firstValue = values[0];
|
|
113
|
-
if (values.length === 1 && firstValue && firstValue.includes(",")) return
|
|
108
|
+
if (values.length === 1 && firstValue && firstValue.includes(",")) return urlSearchParamsAsArray(firstValue);
|
|
114
109
|
return values;
|
|
115
110
|
}
|
|
116
111
|
return [];
|
|
@@ -125,7 +120,6 @@ function urlSearchParamsGetArray(params, key) {
|
|
|
125
120
|
* urlSearchParamsGetBoolean(params, 'other') // false
|
|
126
121
|
* ```
|
|
127
122
|
*/
|
|
128
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
129
123
|
function urlSearchParamsGetBoolean(params, key, options) {
|
|
130
124
|
const { defaultValue = false } = {
|
|
131
125
|
__proto__: null,
|
|
@@ -133,7 +127,7 @@ function urlSearchParamsGetBoolean(params, key, options) {
|
|
|
133
127
|
};
|
|
134
128
|
if (params && typeof params.get === "function") {
|
|
135
129
|
const value = params.get(key);
|
|
136
|
-
return value !== null ?
|
|
130
|
+
return value !== null ? urlSearchParamsAsBoolean(value, { defaultValue }) : defaultValue;
|
|
137
131
|
}
|
|
138
132
|
return defaultValue;
|
|
139
133
|
}
|
package/dist/url/types.d.ts
CHANGED
|
@@ -3,18 +3,22 @@
|
|
|
3
3
|
* `createRelativeUrl`, `urlSearchParamsAs*`, and `urlSearchParamsGet*`. Pure
|
|
4
4
|
* types, no runtime side effects.
|
|
5
5
|
*/
|
|
6
|
+
export interface AssertSafeHttpUrlOptions {
|
|
7
|
+
label?: string | undefined;
|
|
8
|
+
allowLocalhost?: boolean | undefined;
|
|
9
|
+
}
|
|
6
10
|
export interface CreateRelativeUrlOptions {
|
|
7
|
-
base?: string;
|
|
11
|
+
base?: string | undefined;
|
|
8
12
|
}
|
|
9
13
|
export interface UrlSearchParamsAsBooleanOptions {
|
|
10
|
-
defaultValue?: boolean;
|
|
14
|
+
defaultValue?: boolean | undefined;
|
|
11
15
|
}
|
|
12
16
|
export interface UrlSearchParamsAsNumberOptions {
|
|
13
|
-
defaultValue?: number;
|
|
17
|
+
defaultValue?: number | undefined;
|
|
14
18
|
}
|
|
15
19
|
export interface UrlSearchParamsAsStringOptions {
|
|
16
|
-
defaultValue?: string;
|
|
20
|
+
defaultValue?: string | undefined;
|
|
17
21
|
}
|
|
18
22
|
export interface UrlSearchParamsGetBooleanOptions {
|
|
19
|
-
defaultValue?: boolean;
|
|
23
|
+
defaultValue?: boolean | undefined;
|
|
20
24
|
}
|
|
@@ -15,20 +15,20 @@ const require_smol_versions = require('../smol/versions.js');
|
|
|
15
15
|
* shape (`{major, minor, patch}`) which only `semver.parse` exposes — those
|
|
16
16
|
* leaves use `getSemver()` directly instead of going through `impl`.
|
|
17
17
|
*/
|
|
18
|
-
const
|
|
18
|
+
const semver = require("../external/semver");
|
|
19
19
|
/**
|
|
20
20
|
* The vendored `semver` JS implementation. Always available — used directly by
|
|
21
21
|
* the leaves that need the parsed `{major, minor, patch}` shape (which
|
|
22
22
|
* smol-versions doesn't expose).
|
|
23
23
|
*/
|
|
24
24
|
function getSemver() {
|
|
25
|
-
return
|
|
25
|
+
return semver;
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* Resolved version implementation: smol-versions on the smol Node binary,
|
|
29
29
|
* otherwise the vendored `semver`. Bound once at module load.
|
|
30
30
|
*/
|
|
31
|
-
const impl =
|
|
31
|
+
const impl = require_smol_versions.getSmolVersions() ?? semver;
|
|
32
32
|
|
|
33
33
|
//#endregion
|
|
34
34
|
exports.getSemver = getSemver;
|
package/dist/words/article.js
CHANGED
package/dist/words/capitalize.js
CHANGED
package/dist/words/pluralize.js
CHANGED
|
@@ -1,22 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* Socket Lib - Built with rolldown */
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_primordials_intl = require('../primordials/intl.js');
|
|
4
5
|
|
|
5
6
|
//#region src/words/pluralize.ts
|
|
7
|
+
/**
|
|
8
|
+
* @file Count-based pluralization. Two modes:
|
|
9
|
+
*
|
|
10
|
+
* - Default: appends a trailing `'s'` when the count is anything other than 1.
|
|
11
|
+
* Zero-cost; no Intl dependency on the hot path.
|
|
12
|
+
* - Dictionary: when `options.forms` is given, selects from a caller-supplied
|
|
13
|
+
* dictionary of forms keyed by plural category. Honors locale + cardinal /
|
|
14
|
+
* ordinal via `Intl.PluralRules`. Required `plural` acts as the fallback
|
|
15
|
+
* for any category not explicitly listed.
|
|
16
|
+
*/
|
|
6
17
|
const CLDR_TO_FIELD = {
|
|
18
|
+
few: "few",
|
|
19
|
+
many: "many",
|
|
7
20
|
one: "singular",
|
|
8
21
|
other: "plural",
|
|
9
|
-
zero: "zero",
|
|
10
22
|
two: "two",
|
|
11
|
-
|
|
12
|
-
many: "many"
|
|
23
|
+
zero: "zero"
|
|
13
24
|
};
|
|
14
25
|
const RULES_CACHE = /* @__PURE__ */ new Map();
|
|
15
26
|
function getRules(locale, type) {
|
|
16
27
|
const key = `${locale}:${type}`;
|
|
17
28
|
let r = RULES_CACHE.get(key);
|
|
18
29
|
if (!r) {
|
|
19
|
-
r = new
|
|
30
|
+
r = new require_primordials_intl.IntlPluralRules(locale, { type });
|
|
20
31
|
RULES_CACHE.set(key, r);
|
|
21
32
|
}
|
|
22
33
|
return r;
|
|
@@ -46,7 +57,6 @@ function getRules(locale, type) {
|
|
|
46
57
|
* }) // 'nd'
|
|
47
58
|
* ```
|
|
48
59
|
*/
|
|
49
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
50
60
|
function pluralize(word, options) {
|
|
51
61
|
const { count = 1, forms, locale = "en-US", type = "cardinal" } = {
|
|
52
62
|
__proto__: null,
|