@socketsecurity/lib 5.28.0 → 6.0.1
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 +135 -37
- package/README.md +26 -17
- package/dist/abort/signal.d.ts +28 -0
- package/dist/{abort.js → abort/signal.js} +12 -10
- package/dist/ai/discover.d.mts +50 -0
- package/dist/ai/discover.js +128 -0
- package/dist/ai/profiles.d.mts +39 -0
- package/dist/ai/profiles.js +61 -0
- package/dist/ai/spawn.d.mts +49 -0
- package/dist/ai/spawn.js +207 -0
- package/dist/ai/types.d.mts +117 -0
- package/dist/ai/types.js +18 -0
- package/dist/ai/worktree.d.mts +104 -0
- package/dist/ai/worktree.js +200 -0
- package/dist/ansi/constants.d.ts +10 -0
- package/dist/ansi/constants.js +45 -0
- package/dist/ansi/strip.d.ts +33 -0
- package/dist/{ansi.js → ansi/strip.js} +7 -24
- package/dist/archives/_internal.d.ts +39 -0
- package/dist/archives/_internal.js +87 -0
- package/dist/archives/detect.d.ts +19 -0
- package/dist/archives/detect.js +46 -0
- package/dist/archives/extract.d.ts +22 -0
- package/dist/archives/extract.js +53 -0
- package/dist/archives/tar.d.ts +42 -0
- package/dist/archives/tar.js +233 -0
- package/dist/archives/types.d.ts +34 -0
- package/dist/archives/types.js +18 -0
- package/dist/archives/zip.d.ts +20 -0
- package/dist/archives/zip.js +124 -0
- package/dist/argv/flag-predicates.d.ts +179 -0
- package/dist/argv/flag-predicates.js +118 -0
- package/dist/argv/flag-types.d.ts +123 -0
- package/dist/argv/flag-types.js +116 -0
- package/dist/argv/parse-args-string.d.ts +30 -0
- package/dist/argv/parse-args-string.js +42 -0
- package/dist/argv/parse.d.ts +34 -33
- package/dist/argv/parse.js +6 -4
- package/dist/arrays/_internal.d.ts +43 -0
- package/dist/{arrays.js → arrays/_internal.js} +8 -41
- package/dist/arrays/chunk.d.ts +37 -0
- package/dist/arrays/chunk.js +43 -0
- package/dist/arrays/join.d.ts +76 -0
- package/dist/{env/helpers.js → arrays/join.js} +12 -18
- package/dist/arrays/predicates.d.ts +40 -0
- package/dist/arrays/predicates.js +30 -0
- package/dist/arrays/unique.d.ts +36 -0
- package/dist/arrays/unique.js +34 -0
- package/dist/bin/_internal.d.ts +22 -0
- package/dist/bin/_internal.js +43 -0
- package/dist/bin/check-primordials.d.ts +41 -15
- package/dist/bin/check-primordials.js +49 -28
- package/dist/bin/check.d.ts +7 -12
- package/dist/bin/check.js +6 -2
- package/dist/bin/exec.d.ts +37 -0
- package/dist/bin/exec.js +79 -0
- package/dist/bin/find.d.ts +58 -0
- package/dist/bin/find.js +143 -0
- package/dist/bin/resolve.d.ts +30 -0
- package/dist/bin/resolve.js +249 -0
- package/dist/bin/shadow.d.ts +16 -0
- package/dist/bin/shadow.js +36 -0
- package/dist/bin/socket-lib.d.ts +10 -14
- package/dist/bin/socket-lib.js +19 -4
- package/dist/bin/types.d.ts +34 -0
- package/dist/bin/types.js +18 -0
- package/dist/bin/which.d.ts +111 -0
- package/dist/bin/which.js +155 -0
- package/dist/cacache/_internal.d.ts +15 -0
- package/dist/cacache/_internal.js +43 -0
- package/dist/cacache/clear.d.ts +43 -0
- package/dist/cacache/clear.js +77 -0
- package/dist/cacache/read.d.ts +31 -0
- package/dist/cacache/read.js +51 -0
- package/dist/cacache/tmp.d.ts +18 -0
- package/dist/cacache/tmp.js +39 -0
- package/dist/cacache/types.d.ts +37 -0
- package/dist/cacache/types.js +18 -0
- package/dist/cacache/write.d.ts +31 -0
- package/dist/cacache/write.js +53 -0
- package/dist/cache/ttl/store.d.ts +29 -0
- package/dist/{cache-with-ttl.js → cache/ttl/store.js} +45 -37
- package/dist/cache/ttl/types.d.ts +109 -0
- package/dist/cache/ttl/types.js +18 -0
- package/dist/checks/primordials-defaults.d.ts +20 -0
- package/dist/checks/primordials-defaults.js +92 -0
- package/dist/checks/primordials.d.ts +69 -61
- package/dist/checks/primordials.js +141 -92
- package/dist/colors/convert.d.ts +35 -0
- package/dist/colors/convert.js +42 -0
- package/dist/colors/palette.d.ts +7 -0
- package/dist/{colors.js → colors/palette.js} +5 -17
- package/dist/colors/socket-palette.d.ts +69 -0
- package/dist/colors/socket-palette.js +91 -0
- package/dist/colors/types.d.ts +29 -0
- package/dist/colors/types.js +18 -0
- package/dist/compression/_internal.d.ts +33 -0
- package/dist/compression/_internal.js +77 -0
- package/dist/compression/brotli.d.ts +82 -0
- package/dist/{compression.js → compression/brotli.js} +17 -145
- package/dist/compression/gzip.d.ts +70 -0
- package/dist/compression/gzip.js +142 -0
- package/dist/compression/types.d.ts +37 -0
- package/dist/compression/types.js +18 -0
- package/dist/constants/agents.d.ts +4 -3
- package/dist/constants/agents.js +7 -4
- package/dist/constants/encoding.d.ts +3 -3
- package/dist/constants/github.d.ts +2 -3
- package/dist/constants/licenses.d.ts +5 -5
- package/dist/constants/licenses.js +2 -2
- package/dist/constants/lifecycle-script-names.d.ts +3 -4
- package/dist/constants/lifecycle-script-names.js +2 -2
- package/dist/constants/maintained-node-versions.d.ts +1 -1
- package/dist/constants/maintained-node-versions.js +3 -4
- package/dist/constants/node.d.ts +21 -20
- package/dist/constants/node.js +4 -4
- package/dist/constants/package-default-node-range.d.ts +1 -1
- package/dist/constants/package-default-socket-categories.d.ts +1 -1
- package/dist/constants/package-default-socket-categories.js +2 -2
- package/dist/constants/packages.d.ts +4 -4
- package/dist/constants/packages.js +7 -5
- package/dist/constants/platform.d.ts +3 -1
- package/dist/constants/platform.js +3 -10
- package/dist/constants/{core.d.ts → sentinels.d.ts} +4 -4
- package/dist/constants/{core.js → sentinels.js} +3 -3
- package/dist/constants/socket.d.ts +4 -6
- package/dist/constants/socket.js +6 -9
- package/dist/constants/testing.d.ts +3 -3
- package/dist/constants/time.d.ts +3 -3
- package/dist/constants/typescript.d.ts +3 -3
- package/dist/cover/code.d.ts +11 -3
- package/dist/cover/code.js +27 -37
- package/dist/cover/formatters.d.ts +19 -15
- package/dist/cover/formatters.js +21 -18
- package/dist/cover/type.d.ts +4 -3
- package/dist/cover/type.js +10 -9
- package/dist/cover/types.d.ts +1 -1
- package/dist/crypto/hash.d.ts +36 -0
- package/dist/{crypto.js → crypto/hash.js} +17 -17
- package/dist/debug/_internal.d.ts +25 -0
- package/dist/debug/_internal.js +77 -0
- package/dist/debug/caller-info.d.ts +12 -0
- package/dist/debug/caller-info.js +67 -0
- package/dist/debug/namespace.d.ts +35 -0
- package/dist/debug/namespace.js +101 -0
- package/dist/{debug.d.ts → debug/output.d.ts} +23 -42
- package/dist/debug/output.js +209 -0
- package/dist/debug/types.d.ts +21 -0
- package/dist/debug/types.js +18 -0
- package/dist/dlx/_internal.d.ts +10 -0
- package/dist/dlx/_internal.js +47 -0
- package/dist/dlx/arborist.d.ts +86 -61
- package/dist/dlx/arborist.js +30 -35
- package/dist/dlx/binary-cache.d.ts +108 -0
- package/dist/dlx/binary-cache.js +212 -0
- package/dist/dlx/binary-download.d.ts +67 -0
- package/dist/dlx/binary-download.js +216 -0
- package/dist/dlx/binary-resolution.d.ts +61 -0
- package/dist/dlx/binary-resolution.js +164 -0
- package/dist/dlx/binary-types.d.ts +144 -0
- package/dist/dlx/binary-types.js +18 -0
- package/dist/dlx/binary.d.ts +39 -268
- package/dist/dlx/binary.js +40 -321
- package/dist/dlx/cache.d.ts +21 -16
- package/dist/dlx/cache.js +2 -2
- package/dist/dlx/detect.d.ts +94 -68
- package/dist/dlx/detect.js +32 -35
- package/dist/dlx/dir.d.ts +20 -18
- package/dist/dlx/dir.js +7 -14
- package/dist/dlx/firewall.d.ts +27 -0
- package/dist/dlx/firewall.js +107 -0
- package/dist/dlx/lockfile.d.ts +73 -56
- package/dist/dlx/lockfile.js +36 -44
- package/dist/dlx/manifest.d.ts +50 -51
- package/dist/dlx/manifest.js +52 -53
- package/dist/dlx/package.d.ts +83 -279
- package/dist/dlx/package.js +45 -267
- package/dist/dlx/packages.d.ts +22 -20
- package/dist/dlx/packages.js +15 -20
- package/dist/dlx/paths.d.ts +26 -23
- package/dist/dlx/paths.js +8 -15
- package/dist/dlx/spec.d.ts +25 -0
- package/dist/dlx/spec.js +63 -0
- package/dist/dlx/types.d.ts +142 -0
- package/dist/dlx/types.js +18 -0
- package/dist/eco/cargo/lockfile-format.d.ts +8 -0
- package/dist/eco/cargo/lockfile-format.js +39 -0
- package/dist/eco/cargo/manifest-format.d.ts +7 -0
- package/dist/eco/cargo/manifest-format.js +38 -0
- package/dist/eco/cargo/parse-lockfile.d.ts +84 -0
- package/dist/eco/cargo/parse-lockfile.js +257 -0
- package/dist/eco/manifest/analyze-lockfile.d.ts +10 -0
- package/dist/eco/manifest/analyze-lockfile.js +67 -0
- package/dist/eco/manifest/detect-format.d.ts +15 -0
- package/dist/eco/manifest/detect-format.js +98 -0
- package/dist/eco/manifest/find-packages.d.ts +14 -0
- package/dist/eco/manifest/find-packages.js +69 -0
- package/dist/eco/manifest/get-package-versions.d.ts +8 -0
- package/dist/eco/manifest/get-package-versions.js +52 -0
- package/dist/eco/manifest/get-package.d.ts +10 -0
- package/dist/eco/manifest/get-package.js +44 -0
- package/dist/eco/manifest/manifest-error.d.ts +18 -0
- package/dist/eco/manifest/manifest-error.js +37 -0
- package/dist/eco/manifest/parse-lockfile.d.ts +16 -0
- package/dist/eco/manifest/parse-lockfile.js +91 -0
- package/dist/eco/manifest/parse-manifest.d.ts +12 -0
- package/dist/eco/manifest/parse-manifest.js +48 -0
- package/dist/eco/manifest/parse.d.ts +9 -0
- package/dist/eco/manifest/parse.js +52 -0
- package/dist/eco/manifest/types.d.ts +10 -0
- package/dist/eco/manifest/types.js +18 -0
- package/dist/eco/npm/bun/exec.d.ts +15 -0
- package/dist/eco/npm/bun/exec.js +35 -0
- package/dist/eco/npm/manifest-format.d.ts +11 -0
- package/dist/eco/npm/manifest-format.js +38 -0
- package/dist/eco/npm/npm/exec.d.ts +24 -0
- package/dist/eco/npm/npm/exec.js +64 -0
- package/dist/eco/npm/npm/extract-package-name-from-path.d.ts +9 -0
- package/dist/eco/npm/npm/extract-package-name-from-path.js +54 -0
- package/dist/eco/npm/npm/flags.d.ts +62 -0
- package/dist/eco/npm/npm/flags.js +63 -0
- package/dist/eco/npm/npm/lockfile-format.d.ts +9 -0
- package/dist/eco/npm/npm/lockfile-format.js +42 -0
- package/dist/eco/npm/npm/parse-git-url.d.ts +13 -0
- package/dist/eco/npm/npm/parse-git-url.js +43 -0
- package/dist/eco/npm/npm/parse-lockfile.d.ts +70 -0
- package/dist/eco/npm/npm/parse-lockfile.js +224 -0
- package/dist/eco/npm/parse-package-json.d.ts +16 -0
- package/dist/eco/npm/parse-package-json.js +115 -0
- package/dist/eco/npm/pnpm/detect-pnpm-version.d.ts +7 -0
- package/dist/eco/npm/pnpm/detect-pnpm-version.js +47 -0
- package/dist/eco/npm/pnpm/exec.d.ts +26 -0
- package/dist/eco/npm/pnpm/exec.js +65 -0
- package/dist/eco/npm/pnpm/flags.d.ts +44 -0
- package/dist/eco/npm/pnpm/flags.js +76 -0
- package/dist/eco/npm/pnpm/lockfile-format.d.ts +8 -0
- package/dist/eco/npm/pnpm/lockfile-format.js +39 -0
- package/dist/eco/npm/pnpm/parse-lockfile.d.ts +69 -0
- package/dist/eco/npm/pnpm/parse-lockfile.js +274 -0
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.d.ts +15 -0
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +50 -0
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.d.ts +11 -0
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +52 -0
- package/dist/eco/npm/script.d.ts +35 -0
- package/dist/eco/npm/script.js +93 -0
- package/dist/eco/npm/vlt/exec.d.ts +16 -0
- package/dist/eco/npm/vlt/exec.js +35 -0
- package/dist/eco/npm/yarnpkg/yarn/exec.d.ts +28 -0
- package/dist/eco/npm/yarnpkg/yarn/exec.js +63 -0
- package/dist/eco/npm/yarnpkg/yarn/lockfile-format.d.ts +9 -0
- package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +39 -0
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +61 -0
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +261 -0
- package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.d.ts +16 -0
- package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +68 -0
- package/dist/{types.d.ts → eco/purl.d.ts} +14 -26
- package/dist/{types.js → eco/purl.js} +3 -3
- package/dist/eco/types.d.ts +51 -0
- package/dist/eco/types.js +18 -0
- package/dist/effects/pulse-frames.d.ts +16 -17
- package/dist/effects/pulse-frames.js +4 -4
- package/dist/effects/shimmer-keyframes.d.ts +39 -37
- package/dist/effects/shimmer-terminal.d.ts +43 -42
- package/dist/effects/shimmer-terminal.js +3 -3
- package/dist/effects/shimmer.d.ts +172 -153
- package/dist/effects/shimmer.js +78 -76
- package/dist/env/boolean.d.ts +33 -0
- package/dist/env/boolean.js +46 -0
- package/dist/env/case-insensitive.d.ts +42 -0
- package/dist/env/case-insensitive.js +42 -0
- package/dist/env/ci.d.ts +11 -12
- package/dist/env/debug.d.ts +10 -10
- package/dist/env/github.d.ts +71 -74
- package/dist/env/home.d.ts +15 -14
- package/dist/env/locale.d.ts +26 -29
- package/dist/env/node-auth-token.d.ts +10 -10
- package/dist/env/node-env.d.ts +10 -10
- package/dist/env/npm.d.ts +45 -47
- package/dist/env/number.d.ts +29 -0
- package/dist/env/number.js +54 -0
- package/dist/env/package-manager.d.ts +36 -33
- package/dist/env/package-manager.js +3 -3
- package/dist/env/path.d.ts +10 -10
- package/dist/env/pre-commit.d.ts +11 -11
- package/dist/env/pre-commit.js +2 -2
- package/dist/env/proxy.d.ts +44 -0
- package/dist/env/proxy.js +126 -0
- package/dist/env/rewire.d.ts +105 -99
- package/dist/env/rewire.js +11 -8
- package/dist/env/shell.d.ts +10 -10
- package/dist/env/socket-cli.d.ts +109 -125
- package/dist/env/socket-cli.js +7 -12
- package/dist/env/socket.d.ts +347 -130
- package/dist/env/socket.js +107 -8
- package/dist/env/string.d.ts +28 -0
- package/dist/env/string.js +47 -0
- package/dist/env/temp-dir.d.ts +26 -29
- package/dist/env/term.d.ts +10 -10
- package/dist/env/test.d.ts +29 -31
- package/dist/env/test.js +5 -4
- package/dist/env/types.d.ts +62 -0
- package/dist/env/types.js +18 -0
- package/dist/env/windows.d.ts +37 -38
- package/dist/env/xdg.d.ts +29 -29
- package/dist/errors/message.d.ts +27 -0
- package/dist/errors/message.js +49 -0
- package/dist/errors/predicates.d.ts +46 -0
- package/dist/{errors.js → errors/predicates.js} +13 -43
- package/dist/errors/stack.d.ts +16 -0
- package/dist/errors/stack.js +39 -0
- package/dist/events/exit/_internal.d.ts +68 -0
- package/dist/events/exit/_internal.js +127 -0
- package/dist/events/exit/handler.d.ts +20 -0
- package/dist/events/exit/handler.js +58 -0
- package/dist/events/exit/intercept.d.ts +8 -0
- package/dist/events/exit/intercept.js +75 -0
- package/dist/events/exit/lifecycle.d.ts +28 -0
- package/dist/events/exit/lifecycle.js +109 -0
- package/dist/events/exit/signals.d.ts +16 -0
- package/dist/events/exit/signals.js +34 -0
- package/dist/events/exit/types.d.ts +21 -0
- package/dist/events/exit/types.js +18 -0
- package/dist/events/warning/handler.d.ts +31 -0
- package/dist/events/warning/handler.js +43 -0
- package/dist/events/warning/suppress.d.ts +65 -0
- package/dist/{suppress-warnings.js → events/warning/suppress.js} +16 -28
- package/dist/external/@npmcli/package-json/lib/read-package.js +11 -1
- package/dist/external/@npmcli/package-json.js +300 -82
- package/dist/external/@npmcli/promise-spawn.js +15 -1
- package/dist/external/@socketregistry/packageurl-js.js +7 -1
- package/dist/external/@socketregistry/yocto-spinner.js +5 -1
- package/dist/external/@yarnpkg/extensions.js +1 -1
- package/dist/external/adm-zip.js +20 -4
- package/dist/external/debug.js +15 -1
- package/dist/external/external-pack.js +20 -4
- package/dist/external/fast-sort.js +3 -1
- package/dist/external/get-east-asian-width.js +3 -1
- package/dist/external/libnpmexec.js +5 -1
- package/dist/external/npm-pack.js +344 -113
- package/dist/external/p-map.js +7 -1
- package/dist/external/pico-pack.js +17 -1
- package/dist/external/pony-cause.js +1 -1
- package/dist/external/spdx-pack.js +3 -1
- package/dist/external/supports-color.js +1 -1
- package/dist/external/tar-fs.js +15 -1
- package/dist/external/which.js +11 -1
- package/dist/external/yargs-parser.js +15 -1
- package/dist/external-tools/bazel/asset-names.d.ts +66 -0
- package/dist/external-tools/bazel/asset-names.js +96 -0
- package/dist/external-tools/bazel/from-download.d.ts +49 -0
- package/dist/external-tools/bazel/from-download.js +49 -0
- package/dist/external-tools/bazel/from-path.d.ts +8 -0
- package/dist/external-tools/bazel/from-path.js +41 -0
- package/dist/external-tools/bazel/read-bazel-version-file.d.ts +12 -0
- package/dist/external-tools/bazel/read-bazel-version-file.js +61 -0
- package/dist/external-tools/bazel/resolve-asset-url.d.ts +14 -0
- package/dist/external-tools/bazel/resolve-asset-url.js +42 -0
- package/dist/external-tools/bazel/resolve-bazel-version.d.ts +19 -0
- package/dist/external-tools/bazel/resolve-bazel-version.js +59 -0
- package/dist/external-tools/bazel/resolve.d.ts +35 -0
- package/dist/external-tools/bazel/resolve.js +68 -0
- package/dist/external-tools/bazel/types.d.ts +22 -0
- package/dist/external-tools/bazel/types.js +18 -0
- package/dist/external-tools/cdxgen/asset-names.d.ts +58 -0
- package/dist/external-tools/cdxgen/asset-names.js +79 -0
- package/dist/external-tools/cdxgen/from-download.d.ts +43 -0
- package/dist/external-tools/cdxgen/from-download.js +83 -0
- package/dist/external-tools/cdxgen/from-path.d.ts +5 -0
- package/dist/external-tools/cdxgen/from-path.js +40 -0
- package/dist/external-tools/cdxgen/from-vfs.d.ts +7 -0
- package/dist/external-tools/cdxgen/from-vfs.js +47 -0
- package/dist/external-tools/cdxgen/resolve.d.ts +32 -0
- package/dist/external-tools/cdxgen/resolve.js +73 -0
- package/dist/external-tools/cdxgen/types.d.ts +33 -0
- package/dist/external-tools/cdxgen/types.js +18 -0
- package/dist/external-tools/from-download.d.ts +162 -0
- package/dist/external-tools/from-download.js +72 -0
- package/dist/external-tools/janus/asset-names.d.ts +43 -0
- package/dist/external-tools/janus/asset-names.js +57 -0
- package/dist/external-tools/janus/from-download.d.ts +26 -0
- package/dist/external-tools/janus/from-download.js +73 -0
- package/dist/external-tools/janus/from-path.d.ts +5 -0
- package/dist/external-tools/janus/from-path.js +40 -0
- package/dist/external-tools/janus/from-vfs.d.ts +7 -0
- package/dist/external-tools/janus/from-vfs.js +47 -0
- package/dist/external-tools/janus/resolve.d.ts +28 -0
- package/dist/external-tools/janus/resolve.js +73 -0
- package/dist/external-tools/janus/types.d.ts +24 -0
- package/dist/external-tools/janus/types.js +18 -0
- package/dist/external-tools/jre/asset-names.d.ts +91 -0
- package/dist/external-tools/jre/asset-names.js +88 -0
- package/dist/external-tools/jre/detect-platform-arch.d.ts +8 -0
- package/dist/external-tools/jre/detect-platform-arch.js +52 -0
- package/dist/external-tools/jre/from-download.d.ts +62 -0
- package/dist/external-tools/jre/from-download.js +70 -0
- package/dist/external-tools/jre/from-java-home.d.ts +10 -0
- package/dist/external-tools/jre/from-java-home.js +57 -0
- package/dist/external-tools/jre/from-path.d.ts +9 -0
- package/dist/external-tools/jre/from-path.js +52 -0
- package/dist/external-tools/jre/from-vfs.d.ts +17 -0
- package/dist/external-tools/jre/from-vfs.js +64 -0
- package/dist/external-tools/jre/resolve.d.ts +40 -0
- package/dist/external-tools/jre/resolve.js +78 -0
- package/dist/external-tools/jre/types.d.ts +28 -0
- package/dist/external-tools/jre/types.js +18 -0
- package/dist/external-tools/manifest.d.ts +105 -0
- package/dist/external-tools/manifest.js +167 -0
- package/dist/external-tools/opengrep/asset-names.d.ts +44 -0
- package/dist/external-tools/opengrep/asset-names.js +78 -0
- package/dist/external-tools/opengrep/from-download.d.ts +17 -0
- package/dist/external-tools/opengrep/from-download.js +83 -0
- package/dist/external-tools/opengrep/from-path.d.ts +5 -0
- package/dist/external-tools/opengrep/from-path.js +40 -0
- package/dist/external-tools/opengrep/from-vfs.d.ts +8 -0
- package/dist/external-tools/opengrep/from-vfs.js +47 -0
- package/dist/external-tools/opengrep/resolve.d.ts +26 -0
- package/dist/external-tools/opengrep/resolve.js +73 -0
- package/dist/external-tools/opengrep/types.d.ts +24 -0
- package/dist/external-tools/opengrep/types.js +18 -0
- package/dist/external-tools/sbt/asset-names.d.ts +31 -0
- package/dist/external-tools/sbt/asset-names.js +33 -0
- package/dist/external-tools/sbt/from-download.d.ts +44 -0
- package/dist/external-tools/sbt/from-download.js +64 -0
- package/dist/external-tools/sbt/from-path.d.ts +8 -0
- package/dist/external-tools/sbt/from-path.js +41 -0
- package/dist/external-tools/sbt/from-vfs.d.ts +14 -0
- package/dist/external-tools/sbt/from-vfs.js +48 -0
- package/dist/external-tools/sbt/resolve.d.ts +31 -0
- package/dist/external-tools/sbt/resolve.js +73 -0
- package/dist/external-tools/sbt/types.d.ts +32 -0
- package/dist/external-tools/sbt/types.js +18 -0
- package/dist/external-tools/synp/asset-names.d.ts +14 -0
- package/dist/external-tools/synp/asset-names.js +32 -0
- package/dist/external-tools/synp/from-download.d.ts +18 -0
- package/dist/external-tools/synp/from-download.js +44 -0
- package/dist/external-tools/synp/from-path.d.ts +5 -0
- package/dist/external-tools/synp/from-path.js +40 -0
- package/dist/external-tools/synp/from-vfs.d.ts +7 -0
- package/dist/external-tools/synp/from-vfs.js +47 -0
- package/dist/external-tools/synp/resolve.d.ts +21 -0
- package/dist/external-tools/synp/resolve.js +72 -0
- package/dist/external-tools/synp/types.d.ts +19 -0
- package/dist/external-tools/synp/types.js +18 -0
- package/dist/external-tools/trivy/asset-names.d.ts +34 -0
- package/dist/external-tools/trivy/asset-names.js +68 -0
- package/dist/external-tools/trivy/from-download.d.ts +17 -0
- package/dist/external-tools/trivy/from-download.js +67 -0
- package/dist/external-tools/trivy/from-path.d.ts +5 -0
- package/dist/external-tools/trivy/from-path.js +40 -0
- package/dist/external-tools/trivy/from-vfs.d.ts +7 -0
- package/dist/external-tools/trivy/from-vfs.js +47 -0
- package/dist/external-tools/trivy/resolve.d.ts +26 -0
- package/dist/external-tools/trivy/resolve.js +73 -0
- package/dist/external-tools/trivy/types.d.ts +24 -0
- package/dist/external-tools/trivy/types.js +18 -0
- package/dist/external-tools/trufflehog/asset-names.d.ts +34 -0
- package/dist/external-tools/trufflehog/asset-names.js +72 -0
- package/dist/external-tools/trufflehog/from-download.d.ts +37 -0
- package/dist/external-tools/trufflehog/from-download.js +65 -0
- package/dist/external-tools/trufflehog/from-path.d.ts +7 -0
- package/dist/external-tools/trufflehog/from-path.js +40 -0
- package/dist/external-tools/trufflehog/from-vfs.d.ts +11 -0
- package/dist/external-tools/trufflehog/from-vfs.js +47 -0
- package/dist/external-tools/trufflehog/resolve.d.ts +30 -0
- package/dist/external-tools/trufflehog/resolve.js +73 -0
- package/dist/external-tools/trufflehog/types.d.ts +25 -0
- package/dist/external-tools/trufflehog/types.js +18 -0
- package/dist/external-tools/uv/asset-names.d.ts +36 -0
- package/dist/external-tools/uv/asset-names.js +80 -0
- package/dist/external-tools/uv/from-download.d.ts +17 -0
- package/dist/external-tools/uv/from-download.js +68 -0
- package/dist/external-tools/uv/from-path.d.ts +5 -0
- package/dist/external-tools/uv/from-path.js +40 -0
- package/dist/external-tools/uv/from-vfs.d.ts +7 -0
- package/dist/external-tools/uv/from-vfs.js +47 -0
- package/dist/external-tools/uv/resolve.d.ts +25 -0
- package/dist/external-tools/uv/resolve.js +73 -0
- package/dist/external-tools/uv/types.d.ts +24 -0
- package/dist/external-tools/uv/types.js +18 -0
- package/dist/fs/_internal.d.ts +22 -0
- package/dist/fs/_internal.js +48 -0
- package/dist/fs/encoding.d.ts +49 -0
- package/dist/fs/encoding.js +102 -0
- package/dist/fs/find-up.d.ts +58 -0
- package/dist/fs/find-up.js +152 -0
- package/dist/fs/inspect.d.ts +117 -0
- package/dist/fs/inspect.js +112 -0
- package/dist/fs/path-cache.d.ts +21 -0
- package/dist/fs/path-cache.js +35 -0
- package/dist/fs/read-dir.d.ts +66 -0
- package/dist/fs/read-dir.js +86 -0
- package/dist/fs/read-file.d.ts +150 -0
- package/dist/fs/read-file.js +131 -0
- package/dist/fs/read-json-cache.d.ts +83 -0
- package/dist/fs/read-json-cache.js +156 -0
- package/dist/fs/read-json.d.ts +77 -0
- package/dist/fs/read-json.js +192 -0
- package/dist/fs/safe.d.ts +153 -0
- package/dist/fs/safe.js +182 -0
- package/dist/fs/types.d.ts +291 -0
- package/dist/fs/types.js +18 -0
- package/dist/fs/unique.d.ts +29 -0
- package/dist/fs/unique.js +51 -0
- package/dist/fs/validate.d.ts +40 -0
- package/dist/fs/validate.js +46 -0
- package/dist/fs/write-json.d.ts +78 -0
- package/dist/fs/write-json.js +83 -0
- package/dist/git/_internal.d.ts +105 -0
- package/dist/git/_internal.js +236 -0
- package/dist/git/changed.d.ts +145 -0
- package/dist/git/changed.js +83 -0
- package/dist/git/repo.d.ts +62 -0
- package/dist/git/repo.js +111 -0
- package/dist/git/staged.d.ts +138 -0
- package/dist/git/staged.js +71 -0
- package/dist/git/types.d.ts +109 -0
- package/dist/git/types.js +18 -0
- package/dist/git/unstaged.d.ts +141 -0
- package/dist/git/unstaged.js +71 -0
- package/dist/github/constants.d.ts +18 -0
- package/dist/github/constants.js +36 -0
- package/dist/github/errors.d.ts +36 -0
- package/dist/github/errors.js +40 -0
- package/dist/github/fetch.d.ts +89 -0
- package/dist/github/fetch.js +87 -0
- package/dist/github/ghsa.d.ts +118 -0
- package/dist/github/ghsa.js +178 -0
- package/dist/github/refs-cache.d.ts +40 -0
- package/dist/github/refs-cache.js +49 -0
- package/dist/github/refs-graphql.d.ts +42 -0
- package/dist/github/refs-graphql.js +109 -0
- package/dist/github/refs-rest.d.ts +23 -0
- package/dist/github/refs-rest.js +104 -0
- package/dist/github/refs.d.ts +84 -0
- package/dist/github/refs.js +67 -0
- package/dist/github/token.d.ts +77 -0
- package/dist/github/token.js +55 -0
- package/dist/github/types.d.ts +277 -0
- package/dist/github/types.js +18 -0
- package/dist/globs/_internal.d.ts +46 -0
- package/dist/globs/_internal.js +96 -0
- package/dist/globs/defaults.d.ts +7 -0
- package/dist/globs/defaults.js +61 -0
- package/dist/globs/match.d.ts +59 -0
- package/dist/globs/match.js +84 -0
- package/dist/globs/matcher.d.ts +46 -0
- package/dist/globs/matcher.js +99 -0
- package/dist/globs/stream.d.ts +18 -0
- package/dist/globs/stream.js +58 -0
- package/dist/globs/types.d.ts +35 -0
- package/dist/globs/types.js +18 -0
- package/dist/http-request/_internal.d.ts +18 -0
- package/dist/http-request/_internal.js +39 -0
- package/dist/http-request/browser-fetch.d.ts +10 -0
- package/dist/http-request/browser-fetch.js +32 -0
- package/dist/http-request/browser.d.ts +190 -0
- package/dist/http-request/browser.js +224 -0
- package/dist/http-request/checksums.d.ts +69 -0
- package/dist/http-request/checksums.js +72 -0
- package/dist/http-request/convenience.d.ts +104 -0
- package/dist/http-request/convenience.js +96 -0
- package/dist/http-request/download-types.d.ts +224 -0
- package/dist/http-request/download-types.js +18 -0
- package/dist/http-request/download.d.ts +71 -0
- package/dist/http-request/download.js +201 -0
- package/dist/http-request/errors.d.ts +23 -0
- package/dist/http-request/errors.js +50 -0
- package/dist/http-request/headers.d.ts +57 -0
- package/dist/http-request/headers.js +86 -0
- package/dist/http-request/request-attempt.d.ts +21 -0
- package/dist/http-request/request-attempt.js +288 -0
- package/dist/http-request/request-types.d.ts +253 -0
- package/dist/http-request/request-types.js +18 -0
- package/dist/http-request/request.d.ts +59 -0
- package/dist/http-request/request.js +111 -0
- package/dist/http-request/response-reader.d.ts +25 -0
- package/dist/http-request/response-reader.js +54 -0
- package/dist/http-request/response-types.d.ts +123 -0
- package/dist/http-request/response-types.js +40 -0
- package/dist/http-request/user-agent.d.ts +55 -0
- package/dist/http-request/user-agent.js +61 -0
- package/dist/{dlx/integrity.d.ts → integrity.d.ts} +36 -30
- package/dist/{dlx/integrity.js → integrity.js} +25 -19
- package/dist/ipc/_internal.d.ts +25 -0
- package/dist/ipc/_internal.js +50 -0
- package/dist/ipc/directory.d.ts +18 -0
- package/dist/ipc/directory.js +66 -0
- package/dist/ipc/paths.d.ts +37 -0
- package/dist/ipc/paths.js +48 -0
- package/dist/ipc/types.d.ts +22 -0
- package/dist/ipc/types.js +18 -0
- package/dist/ipc/write.d.ts +39 -0
- package/dist/ipc/write.js +77 -0
- package/dist/ipc-cli/get.d.ts +21 -0
- package/dist/{ipc-cli.js → ipc-cli/get.js} +5 -5
- package/dist/ipc-cli/types.d.ts +14 -0
- package/dist/ipc-cli/types.js +18 -0
- package/dist/json/edit.d.ts +22 -8
- package/dist/json/edit.js +85 -96
- package/dist/json/format.d.ts +100 -86
- package/dist/json/format.js +4 -3
- package/dist/json/parse.d.ts +113 -88
- package/dist/json/parse.js +30 -24
- package/dist/json/types.d.ts +133 -117
- package/dist/links/create.d.ts +65 -0
- package/dist/{links.js → links/create.js} +10 -10
- package/dist/links/types.d.ts +19 -0
- package/dist/links/types.js +18 -0
- package/dist/logger/_internal.d.ts +82 -0
- package/dist/logger/_internal.js +80 -0
- package/dist/logger/browser.d.ts +16 -0
- package/dist/logger/browser.js +65 -0
- package/dist/logger/colors.d.ts +18 -0
- package/dist/logger/colors.js +54 -0
- package/dist/logger/console.d.ts +33 -0
- package/dist/logger/console.js +119 -0
- package/dist/logger/default.d.ts +405 -0
- package/dist/logger/default.js +854 -0
- package/dist/logger/symbols-builder.d.ts +29 -0
- package/dist/logger/symbols-builder.js +61 -0
- package/dist/logger/symbols.d.ts +61 -0
- package/dist/logger/symbols.js +129 -0
- package/dist/logger/types.d.ts +88 -0
- package/dist/logger/types.js +18 -0
- package/dist/memo/_internal.d.ts +16 -0
- package/dist/memo/_internal.js +53 -0
- package/dist/memo/async.d.ts +32 -0
- package/dist/memo/async.js +120 -0
- package/dist/memo/clear.d.ts +15 -0
- package/dist/memo/clear.js +37 -0
- package/dist/memo/decorator.d.ts +29 -0
- package/dist/memo/decorator.js +40 -0
- package/dist/memo/memoize.d.ts +33 -0
- package/dist/memo/memoize.js +91 -0
- package/dist/memo/once.d.ts +25 -0
- package/dist/memo/once.js +44 -0
- package/dist/memo/types.d.ts +43 -0
- package/dist/memo/types.js +18 -0
- package/dist/memo/weak.d.ts +26 -0
- package/dist/memo/weak.js +44 -0
- package/dist/node/async-hooks.d.ts +2 -2
- package/dist/node/child-process.d.ts +5 -7
- package/dist/node/crypto.d.ts +2 -2
- package/dist/node/events.d.ts +2 -2
- package/dist/node/fs-promises.d.ts +2 -2
- package/dist/node/fs.d.ts +6 -10
- package/dist/node/http.d.ts +2 -2
- package/dist/node/https.d.ts +2 -2
- package/dist/node/module.d.ts +7 -0
- package/dist/node/module.js +41 -0
- package/dist/node/os.d.ts +2 -2
- package/dist/node/path.d.ts +2 -2
- package/dist/node/timers-promises.d.ts +2 -2
- package/dist/node/url.d.ts +2 -2
- package/dist/node/util.d.ts +2 -2
- package/dist/objects/getters.d.ts +116 -0
- package/dist/objects/getters.js +137 -0
- package/dist/objects/inspect.d.ts +67 -0
- package/dist/objects/inspect.js +59 -0
- package/dist/objects/mutate.d.ts +72 -0
- package/dist/objects/mutate.js +81 -0
- package/dist/objects/predicates.d.ts +96 -0
- package/dist/objects/predicates.js +68 -0
- package/dist/objects/sort.d.ts +88 -0
- package/dist/objects/sort.js +85 -0
- package/dist/objects/types.d.ts +68 -0
- package/dist/objects/types.js +18 -0
- package/dist/packages/edit-class.d.ts +39 -0
- package/dist/packages/edit-class.js +269 -0
- package/dist/packages/edit.d.ts +60 -61
- package/dist/packages/edit.js +21 -286
- package/dist/packages/exports.d.ts +30 -28
- package/dist/packages/exports.js +38 -34
- package/dist/packages/isolation.d.ts +16 -7
- package/dist/packages/isolation.js +52 -59
- package/dist/packages/licenses.d.ts +49 -45
- package/dist/packages/licenses.js +13 -18
- package/dist/packages/manifest.d.ts +14 -14
- package/dist/packages/manifest.js +16 -15
- package/dist/packages/normalize.d.ts +17 -16
- package/dist/packages/normalize.js +20 -17
- package/dist/packages/operations.d.ts +49 -36
- package/dist/packages/operations.js +30 -15
- package/dist/packages/provenance.d.ts +22 -9
- package/dist/packages/provenance.js +76 -66
- package/dist/packages/specs.d.ts +21 -21
- package/dist/packages/specs.js +7 -7
- package/dist/{packages.d.ts → packages/types.d.ts} +14 -20
- package/dist/packages/types.js +18 -0
- package/dist/packages/validation.d.ts +13 -13
- package/dist/packages/validation.js +2 -2
- package/dist/paths/_internal.d.ts +51 -0
- package/dist/paths/_internal.js +102 -0
- package/dist/paths/conversion.d.ts +82 -0
- package/dist/paths/conversion.js +74 -0
- package/dist/paths/dirnames.d.ts +1 -1
- package/dist/paths/exts.d.ts +1 -1
- package/dist/paths/filenames.d.ts +1 -1
- package/dist/paths/globs.d.ts +1 -1
- package/dist/paths/normalize.d.ts +30 -440
- package/dist/paths/normalize.js +49 -289
- package/dist/paths/packages.d.ts +7 -1
- package/dist/paths/packages.js +7 -12
- package/dist/paths/predicates.d.ts +129 -0
- package/dist/paths/predicates.js +121 -0
- package/dist/paths/resolve.d.ts +71 -0
- package/dist/paths/resolve.js +135 -0
- package/dist/paths/rewire.d.ts +37 -38
- package/dist/paths/rewire.js +3 -3
- package/dist/paths/socket.d.ts +146 -47
- package/dist/paths/socket.js +23 -25
- package/dist/perf/_internal.d.ts +10 -0
- package/dist/perf/_internal.js +30 -0
- package/dist/perf/enabled.d.ts +13 -0
- package/dist/perf/enabled.js +33 -0
- package/dist/perf/metrics.d.ts +51 -0
- package/dist/perf/metrics.js +74 -0
- package/dist/perf/report.d.ts +40 -0
- package/dist/perf/report.js +85 -0
- package/dist/perf/timer.d.ts +100 -0
- package/dist/perf/timer.js +137 -0
- package/dist/perf/types.d.ts +15 -0
- package/dist/perf/types.js +18 -0
- package/dist/pkg-ext/data.d.ts +8 -0
- package/dist/{package-extensions.js → pkg-ext/data.js} +4 -4
- package/dist/pkg-ext/types.d.ts +6 -0
- package/dist/pkg-ext/types.js +18 -0
- package/dist/primordials/array.d.ts +73 -0
- package/dist/primordials/array.js +220 -0
- package/dist/primordials/buffer.d.ts +17 -0
- package/dist/primordials/buffer.js +61 -0
- package/dist/primordials/date.d.ts +16 -0
- package/dist/primordials/date.js +56 -0
- package/dist/primordials/error.d.ts +19 -0
- package/dist/primordials/error.js +75 -0
- package/dist/primordials/function.d.ts +10 -0
- package/dist/primordials/function.js +42 -0
- package/dist/primordials/globals.d.ts +20 -0
- package/dist/primordials/globals.js +60 -0
- package/dist/primordials/json.d.ts +11 -0
- package/dist/primordials/json.js +33 -0
- package/dist/primordials/map-set.d.ts +35 -0
- package/dist/primordials/map-set.js +115 -0
- package/dist/primordials/math.d.ts +51 -0
- package/dist/primordials/math.js +161 -0
- package/dist/primordials/number.d.ts +25 -0
- package/dist/primordials/number.js +92 -0
- package/dist/primordials/object.d.ts +74 -0
- package/dist/primordials/object.js +142 -0
- package/dist/primordials/promise.d.ts +34 -0
- package/dist/primordials/promise.js +61 -0
- package/dist/primordials/reflect.d.ts +18 -0
- package/dist/primordials/reflect.js +66 -0
- package/dist/primordials/regexp.d.ts +14 -0
- package/dist/primordials/regexp.js +50 -0
- package/dist/primordials/string.d.ts +71 -0
- package/dist/primordials/string.js +174 -0
- package/dist/primordials/symbol.d.ts +28 -0
- package/dist/primordials/symbol.js +94 -0
- package/dist/primordials/uncurry.d.ts +18 -0
- package/dist/primordials/uncurry.js +65 -0
- package/dist/primordials/url.d.ts +13 -0
- package/dist/primordials/url.js +69 -0
- package/dist/process/_internal.d.ts +8 -0
- package/dist/process/_internal.js +33 -0
- package/dist/process/abort.d.ts +20 -0
- package/dist/{constants/process.js → process/abort.js} +3 -3
- package/dist/process/lock-instance.d.ts +19 -0
- package/dist/process/lock-instance.js +31 -0
- package/dist/process/lock-manager.d.ts +152 -0
- package/dist/{process-lock.js → process/lock-manager.js} +98 -106
- package/dist/process/lock-types.d.ts +43 -0
- package/dist/process/lock-types.js +18 -0
- package/dist/process/spawn/_internal.d.ts +24 -0
- package/dist/process/spawn/_internal.js +62 -0
- package/dist/process/spawn/child.d.ts +134 -0
- package/dist/process/spawn/child.js +216 -0
- package/dist/process/spawn/errors.d.ts +45 -0
- package/dist/process/spawn/errors.js +118 -0
- package/dist/process/spawn/stdio.d.ts +37 -0
- package/dist/process/spawn/stdio.js +38 -0
- package/dist/process/spawn/types.d.ts +325 -0
- package/dist/process/spawn/types.js +18 -0
- package/dist/process/transient.d.ts +22 -0
- package/dist/{temporary-executor.js → process/transient.js} +8 -8
- package/dist/promises/_internal.d.ts +15 -0
- package/dist/promises/_internal.js +41 -0
- package/dist/promises/iterate.d.ts +190 -0
- package/dist/promises/iterate.js +111 -0
- package/dist/promises/options.d.ts +76 -0
- package/dist/promises/options.js +108 -0
- package/dist/promises/queue.d.ts +51 -0
- package/dist/{promise-queue.js → promises/queue.js} +27 -22
- package/dist/promises/resolvers.d.ts +55 -0
- package/dist/promises/resolvers.js +49 -0
- package/dist/promises/retry.d.ts +105 -0
- package/dist/promises/retry.js +104 -0
- package/dist/promises/types.d.ts +203 -0
- package/dist/promises/types.js +18 -0
- package/dist/regexps/escape.d.ts +6 -0
- package/dist/regexps/escape.js +32 -0
- package/dist/regexps/hex.d.ts +7 -0
- package/dist/regexps/hex.js +38 -0
- package/dist/regexps/spec.d.ts +15 -0
- package/dist/{regexps.js → regexps/spec.js} +32 -36
- package/dist/releases/github-archives.d.ts +47 -36
- package/dist/releases/github-archives.js +22 -36
- package/dist/releases/github-asset-url.d.ts +72 -0
- package/dist/releases/github-asset-url.js +167 -0
- package/dist/releases/github-assets.d.ts +13 -11
- package/dist/releases/github-assets.js +2 -2
- package/dist/releases/github-auth.d.ts +9 -9
- package/dist/releases/github-downloads.d.ts +31 -26
- package/dist/releases/github-downloads.js +24 -36
- package/dist/releases/github-listing.d.ts +105 -0
- package/dist/releases/github-listing.js +171 -0
- package/dist/releases/github-types.d.ts +45 -19
- package/dist/releases/socket-btm.d.ts +149 -99
- package/dist/releases/socket-btm.js +14 -20
- package/dist/schema/parse.d.ts +14 -15
- package/dist/schema/parse.js +2 -2
- package/dist/schema/types.d.ts +49 -37
- package/dist/schema/validate.d.ts +42 -19
- package/dist/schema/validate.js +15 -6
- package/dist/sea/detect.d.ts +37 -0
- package/dist/sea/{util.js → detect.js} +6 -6
- package/dist/secrets/_internal.d.ts +57 -0
- package/dist/secrets/_internal.js +84 -0
- package/dist/secrets/find.d.ts +79 -0
- package/dist/secrets/find.js +84 -0
- package/dist/secrets/keychain.d.ts +138 -0
- package/dist/secrets/keychain.js +328 -0
- package/dist/secrets/linux.d.ts +20 -0
- package/dist/secrets/linux.js +151 -0
- package/dist/secrets/macos.d.ts +36 -0
- package/dist/secrets/macos.js +165 -0
- package/dist/secrets/rc.d.ts +139 -0
- package/dist/secrets/rc.js +196 -0
- package/dist/secrets/socket-api-token.d.ts +23 -0
- package/dist/secrets/socket-api-token.js +50 -0
- package/dist/secrets/types.d.ts +69 -0
- package/dist/secrets/types.js +18 -0
- package/dist/secrets/windows.d.ts +50 -0
- package/dist/secrets/windows.js +318 -0
- package/dist/shadow/skip.d.ts +25 -0
- package/dist/{shadow.js → shadow/skip.js} +4 -4
- package/dist/shadow/types.d.ts +8 -0
- package/dist/shadow/types.js +18 -0
- package/dist/smol/detect.d.ts +80 -0
- package/dist/smol/{util.js → detect.js} +16 -24
- package/dist/smol/http.d.ts +60 -0
- package/dist/smol/http.js +42 -0
- package/dist/smol/https.d.ts +59 -0
- package/dist/smol/https.js +42 -0
- package/dist/smol/manifest.d.ts +140 -0
- package/dist/smol/manifest.js +42 -0
- package/dist/smol/primordial.d.ts +16 -21
- package/dist/smol/primordial.js +7 -11
- package/dist/smol/purl.d.ts +84 -0
- package/dist/smol/purl.js +42 -0
- package/dist/smol/versions.d.ts +11 -14
- package/dist/smol/versions.js +7 -11
- package/dist/smol/vfs.d.ts +99 -0
- package/dist/smol/vfs.js +43 -0
- package/dist/sorts/_internal.d.ts +9 -0
- package/dist/sorts/_internal.js +47 -0
- package/dist/sorts/natural.d.ts +39 -0
- package/dist/{sorts.js → sorts/natural.js} +5 -42
- package/dist/sorts/semver.d.ts +15 -0
- package/dist/sorts/semver.js +46 -0
- package/dist/sorts/strings.d.ts +16 -0
- package/dist/sorts/strings.js +33 -0
- package/dist/sorts/types.d.ts +7 -0
- package/dist/sorts/types.js +18 -0
- package/dist/spinner/default.d.ts +49 -0
- package/dist/spinner/default.js +70 -0
- package/dist/spinner/format.d.ts +64 -0
- package/dist/spinner/format.js +83 -0
- package/dist/spinner/spinner.d.ts +40 -0
- package/dist/spinner/spinner.js +802 -0
- package/dist/spinner/types.d.ts +368 -0
- package/dist/spinner/types.js +18 -0
- package/dist/spinner/with.d.ts +125 -0
- package/dist/spinner/with.js +144 -0
- package/dist/ssri/convert.d.ts +48 -0
- package/dist/{ssri.js → ssri/convert.js} +11 -34
- package/dist/ssri/parse.d.ts +27 -0
- package/dist/ssri/parse.js +40 -0
- package/dist/ssri/validate.d.ts +41 -0
- package/dist/ssri/validate.js +39 -0
- package/dist/stdio/{_stream.d.ts → _internal.d.ts} +10 -5
- package/dist/stdio/{_stream.js → _internal.js} +3 -3
- package/dist/stdio/clear.d.ts +98 -84
- package/dist/stdio/divider.d.ts +100 -78
- package/dist/stdio/divider.js +36 -14
- package/dist/stdio/footer.d.ts +75 -51
- package/dist/stdio/footer.js +28 -18
- package/dist/stdio/header.d.ts +61 -50
- package/dist/stdio/header.js +15 -13
- package/dist/stdio/progress.d.ts +67 -57
- package/dist/stdio/progress.js +55 -51
- package/dist/stdio/prompts.d.ts +147 -100
- package/dist/stdio/prompts.js +23 -15
- package/dist/stdio/stderr.d.ts +86 -84
- package/dist/stdio/stderr.js +6 -6
- package/dist/stdio/stdout.d.ts +77 -78
- package/dist/stdio/stdout.js +6 -6
- package/dist/streams/parallel.d.ts +40 -0
- package/dist/{streams.js → streams/parallel.js} +10 -27
- package/dist/streams/transform.d.ts +20 -0
- package/dist/streams/transform.js +48 -0
- package/dist/strings/format.d.ts +115 -0
- package/dist/strings/format.js +73 -0
- package/dist/strings/predicates.d.ts +52 -0
- package/dist/strings/predicates.js +39 -0
- package/dist/strings/search.d.ts +34 -0
- package/dist/strings/search.js +45 -0
- package/dist/strings/transform.d.ts +80 -0
- package/dist/strings/transform.js +79 -0
- package/dist/strings/types.d.ts +38 -0
- package/dist/strings/types.js +18 -0
- package/dist/strings/width.d.ts +42 -0
- package/dist/strings/width.js +95 -0
- package/dist/tables/bordered.d.ts +44 -0
- package/dist/tables/bordered.js +84 -0
- package/dist/tables/padding.d.ts +18 -0
- package/dist/tables/padding.js +51 -0
- package/dist/tables/simple.d.ts +36 -0
- package/dist/tables/simple.js +73 -0
- package/dist/tables/types.d.ts +15 -0
- package/dist/tables/types.js +18 -0
- package/dist/temporal/instant.d.ts +39 -0
- package/dist/temporal/instant.js +91 -0
- package/dist/temporal/now.d.ts +24 -0
- package/dist/temporal/now.js +34 -0
- package/dist/temporal/slots.d.ts +32 -0
- package/dist/temporal/slots.js +45 -0
- package/dist/temporal/system.d.ts +20 -0
- package/dist/temporal/system.js +42 -0
- package/dist/temporal/temporal.d.ts +22 -0
- package/dist/temporal/temporal.js +43 -0
- package/dist/themes/context.d.ts +65 -48
- package/dist/themes/context.js +6 -2
- package/dist/themes/resolve.d.ts +90 -0
- package/dist/themes/{utils.js → resolve.js} +6 -6
- package/dist/themes/themes.d.ts +14 -16
- package/dist/themes/types.d.ts +93 -35
- package/dist/url/parse.d.ts +26 -0
- package/dist/url/parse.js +57 -0
- package/dist/url/predicates.d.ts +15 -0
- package/dist/url/predicates.js +34 -0
- package/dist/url/search-params.d.ts +71 -0
- package/dist/{url.js → url/search-params.js} +19 -54
- package/dist/url/types.d.ts +20 -0
- package/dist/url/types.js +18 -0
- package/dist/versions/_internal.d.ts +24 -0
- package/dist/versions/_internal.js +37 -0
- package/dist/versions/compare.d.ts +57 -0
- package/dist/versions/compare.js +65 -0
- package/dist/versions/modify.d.ts +28 -0
- package/dist/versions/modify.js +44 -0
- package/dist/versions/parse.d.ts +67 -0
- package/dist/versions/parse.js +77 -0
- package/dist/versions/range.d.ts +45 -0
- package/dist/versions/range.js +50 -0
- package/dist/versions/types.d.ts +13 -0
- package/dist/versions/types.js +18 -0
- package/dist/words/article.d.ts +14 -0
- package/dist/words/article.js +33 -0
- package/dist/words/capitalize.d.ts +15 -0
- package/dist/{words.js → words/capitalize.js} +5 -18
- package/dist/words/pluralize.d.ts +16 -0
- package/dist/words/pluralize.js +34 -0
- package/dist/words/types.d.ts +7 -0
- package/dist/words/types.js +18 -0
- package/package.json +2154 -252
- package/dist/abort.d.ts +0 -27
- package/dist/agent.d.ts +0 -196
- package/dist/agent.js +0 -287
- package/dist/ansi.d.ts +0 -39
- package/dist/archives.d.ts +0 -95
- package/dist/archives.js +0 -408
- package/dist/argv/flags.d.ts +0 -292
- package/dist/argv/flags.js +0 -297
- package/dist/arrays.d.ts +0 -168
- package/dist/bin.d.ts +0 -181
- package/dist/bin.js +0 -544
- package/dist/cacache.d.ts +0 -130
- package/dist/cacache.js +0 -156
- package/dist/cache-with-ttl.d.ts +0 -165
- package/dist/colors.d.ts +0 -49
- package/dist/compression.d.ts +0 -218
- package/dist/constants/process.d.ts +0 -20
- package/dist/crypto.d.ts +0 -36
- package/dist/debug.js +0 -337
- package/dist/env/helpers.d.ts +0 -66
- package/dist/env.d.ts +0 -182
- package/dist/env.js +0 -205
- package/dist/errors.d.ts +0 -100
- package/dist/fs.d.ts +0 -916
- package/dist/fs.js +0 -808
- package/dist/git.d.ts +0 -546
- package/dist/git.js +0 -409
- package/dist/github.d.ts +0 -526
- package/dist/github.js +0 -448
- package/dist/globs.d.ts +0 -119
- package/dist/globs.js +0 -282
- package/dist/http-request.d.ts +0 -951
- package/dist/http-request.js +0 -761
- package/dist/ipc-cli.d.ts +0 -28
- package/dist/ipc.d.ts +0 -76
- package/dist/ipc.js +0 -130
- package/dist/links.d.ts +0 -69
- package/dist/logger.d.ts +0 -993
- package/dist/logger.js +0 -1498
- package/dist/memoization.d.ts +0 -131
- package/dist/memoization.js +0 -243
- package/dist/objects.d.ts +0 -500
- package/dist/objects.js +0 -303
- package/dist/package-extensions.d.ts +0 -9
- package/dist/packages.js +0 -132
- package/dist/performance.d.ts +0 -181
- package/dist/performance.js +0 -233
- package/dist/primordials.d.ts +0 -420
- package/dist/primordials.js +0 -1116
- package/dist/process-lock.d.ts +0 -180
- package/dist/promise-queue.d.ts +0 -48
- package/dist/promises.d.ts +0 -506
- package/dist/promises.js +0 -292
- package/dist/regexps.d.ts +0 -6
- package/dist/releases/github-api.d.ts +0 -56
- package/dist/releases/github-api.js +0 -275
- package/dist/sea/util.d.ts +0 -43
- package/dist/shadow.d.ts +0 -28
- package/dist/signal-exit.d.ts +0 -50
- package/dist/signal-exit.js +0 -247
- package/dist/smol/util.d.ts +0 -87
- package/dist/sorts.d.ts +0 -59
- package/dist/spawn.d.ts +0 -454
- package/dist/spawn.js +0 -334
- package/dist/spinner.d.ts +0 -444
- package/dist/spinner.js +0 -988
- package/dist/ssri.d.ts +0 -90
- package/dist/streams.d.ts +0 -45
- package/dist/strings.d.ts +0 -414
- package/dist/strings.js +0 -218
- package/dist/suppress-warnings.d.ts +0 -81
- package/dist/tables.d.ts +0 -73
- package/dist/tables.js +0 -133
- package/dist/temporary-executor.d.ts +0 -20
- package/dist/themes/utils.d.ts +0 -86
- package/dist/url.d.ts +0 -114
- package/dist/versions.d.ts +0 -207
- package/dist/versions.js +0 -181
- package/dist/words.d.ts +0 -39
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Types for HTTP download + checksum-fetch operations. Split out of
|
|
3
|
+
* `http-request/types.ts` for size hygiene.
|
|
4
|
+
*
|
|
5
|
+
* - `HttpDownloadOptions` / `HttpDownloadResult` — file-download surface
|
|
6
|
+
* - `Checksums` / `FetchChecksumsOptions` — checksum-file helpers
|
|
7
|
+
*/
|
|
8
|
+
import type { IncomingHttpHeaders } from 'node:http';
|
|
9
|
+
import type { Logger } from '../logger/default';
|
|
10
|
+
/**
|
|
11
|
+
* Configuration options for file downloads.
|
|
12
|
+
*/
|
|
13
|
+
export interface HttpDownloadOptions {
|
|
14
|
+
/**
|
|
15
|
+
* Custom CA certificates for TLS connections. When provided, these
|
|
16
|
+
* certificates are used for the download request. See `HttpRequestOptions.ca`
|
|
17
|
+
* for details.
|
|
18
|
+
*/
|
|
19
|
+
ca?: string[] | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Whether to automatically follow HTTP redirects (3xx status codes). This is
|
|
22
|
+
* essential for downloading from services that use CDN redirects, such as
|
|
23
|
+
* GitHub release assets which return HTTP 302 to their CDN.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ;```ts
|
|
27
|
+
* // Follow redirects (default) - works with GitHub releases
|
|
28
|
+
* await httpDownload(
|
|
29
|
+
* 'https://github.com/org/repo/releases/download/v1.0.0/file.zip',
|
|
30
|
+
* '/tmp/file.zip',
|
|
31
|
+
* )
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @default true
|
|
35
|
+
*/
|
|
36
|
+
followRedirects?: boolean | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* HTTP headers to send with the download request. A `User-Agent` header is
|
|
39
|
+
* automatically added if not provided.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ;```ts
|
|
43
|
+
* await httpDownload('https://example.com/file.zip', '/tmp/file.zip', {
|
|
44
|
+
* headers: {
|
|
45
|
+
* Authorization: 'Bearer token123',
|
|
46
|
+
* },
|
|
47
|
+
* })
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
headers?: Record<string, string> | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Logger instance for automatic progress logging. When provided with
|
|
53
|
+
* `progressInterval`, will automatically log download progress. If both
|
|
54
|
+
* `onProgress` and `logger` are provided, `onProgress` takes precedence.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ;```ts
|
|
58
|
+
* import { getDefaultLogger } from '@socketsecurity/lib/logger/default'
|
|
59
|
+
*
|
|
60
|
+
* const logger = getDefaultLogger()
|
|
61
|
+
* await httpDownload('https://example.com/file.zip', '/tmp/file.zip', {
|
|
62
|
+
* logger,
|
|
63
|
+
* progressInterval: 10, // Log every 10%
|
|
64
|
+
* })
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
logger?: Logger | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Maximum number of redirects to follow before throwing an error. Only
|
|
70
|
+
* relevant when `followRedirects` is `true`.
|
|
71
|
+
*
|
|
72
|
+
* @default 5
|
|
73
|
+
*/
|
|
74
|
+
maxRedirects?: number | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* Callback for tracking download progress. Called periodically as data is
|
|
77
|
+
* received. Takes precedence over `logger` if both are provided.
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```ts
|
|
81
|
+
* await httpDownload(
|
|
82
|
+
* 'https://example.com/large-file.zip',
|
|
83
|
+
* '/tmp/file.zip',
|
|
84
|
+
* {
|
|
85
|
+
* onProgress: (downloaded, total) => {
|
|
86
|
+
* const percent = ((downloaded / total) * 100).toFixed(1)
|
|
87
|
+
* console.log(`Progress: ${percent}%`)
|
|
88
|
+
* },
|
|
89
|
+
* },
|
|
90
|
+
* )
|
|
91
|
+
* ```
|
|
92
|
+
*
|
|
93
|
+
* @param downloaded - Number of bytes downloaded so far.
|
|
94
|
+
* @param total - Total file size in bytes (from Content-Length header)
|
|
95
|
+
*/
|
|
96
|
+
onProgress?: ((downloaded: number, total: number) => void) | undefined;
|
|
97
|
+
/**
|
|
98
|
+
* Progress reporting interval as a percentage (0-100). Only used when
|
|
99
|
+
* `logger` is provided. Progress will be logged each time the download
|
|
100
|
+
* advances by this percentage.
|
|
101
|
+
*
|
|
102
|
+
* @default 10
|
|
103
|
+
*/
|
|
104
|
+
progressInterval?: number | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* Number of retry attempts for failed downloads. Uses exponential backoff:
|
|
107
|
+
* delay = `retryDelay` * 2^attempt.
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ;```ts
|
|
111
|
+
* await httpDownload('https://example.com/file.zip', '/tmp/file.zip', {
|
|
112
|
+
* retries: 3,
|
|
113
|
+
* retryDelay: 2000,
|
|
114
|
+
* })
|
|
115
|
+
* ```
|
|
116
|
+
*
|
|
117
|
+
* @default 0
|
|
118
|
+
*/
|
|
119
|
+
retries?: number | undefined;
|
|
120
|
+
/**
|
|
121
|
+
* Initial delay in milliseconds before first retry. Subsequent retries use
|
|
122
|
+
* exponential backoff.
|
|
123
|
+
*
|
|
124
|
+
* @default 1000
|
|
125
|
+
*/
|
|
126
|
+
retryDelay?: number | undefined;
|
|
127
|
+
/**
|
|
128
|
+
* Download timeout in milliseconds. If the download takes longer than this,
|
|
129
|
+
* it will be aborted.
|
|
130
|
+
*
|
|
131
|
+
* @default 120000
|
|
132
|
+
*/
|
|
133
|
+
timeout?: number | undefined;
|
|
134
|
+
/**
|
|
135
|
+
* Expected SHA256 hash of the downloaded file. If provided, the download will
|
|
136
|
+
* fail if the computed hash doesn't match. The hash should be a lowercase hex
|
|
137
|
+
* string (64 characters).
|
|
138
|
+
*
|
|
139
|
+
* Use `fetchChecksums()` to fetch hashes from a checksums URL, then pass the
|
|
140
|
+
* specific hash here.
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ;```ts
|
|
144
|
+
* // Verify download integrity with direct hash
|
|
145
|
+
* await httpDownload('https://example.com/file.zip', '/tmp/file.zip', {
|
|
146
|
+
* sha256:
|
|
147
|
+
* 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
|
|
148
|
+
* })
|
|
149
|
+
*
|
|
150
|
+
* // Verify using checksums from a URL
|
|
151
|
+
* const checksums = await fetchChecksums(
|
|
152
|
+
* 'https://example.com/checksums.txt',
|
|
153
|
+
* )
|
|
154
|
+
* await httpDownload('https://example.com/file.zip', '/tmp/file.zip', {
|
|
155
|
+
* sha256: checksums['file.zip'],
|
|
156
|
+
* })
|
|
157
|
+
* ```
|
|
158
|
+
*/
|
|
159
|
+
sha256?: string | undefined;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Result of a successful file download.
|
|
163
|
+
*/
|
|
164
|
+
export interface HttpDownloadResult {
|
|
165
|
+
/**
|
|
166
|
+
* HTTP response headers from the final response (after redirects).
|
|
167
|
+
*/
|
|
168
|
+
headers: IncomingHttpHeaders;
|
|
169
|
+
/**
|
|
170
|
+
* Whether the download succeeded (status 200-299). Always true on success
|
|
171
|
+
* (non-2xx throws).
|
|
172
|
+
*/
|
|
173
|
+
ok: true;
|
|
174
|
+
/**
|
|
175
|
+
* Absolute path where the file was saved.
|
|
176
|
+
*/
|
|
177
|
+
path: string;
|
|
178
|
+
/**
|
|
179
|
+
* Total size of downloaded file in bytes.
|
|
180
|
+
*/
|
|
181
|
+
size: number;
|
|
182
|
+
/**
|
|
183
|
+
* HTTP status code from the final response (after redirects).
|
|
184
|
+
*/
|
|
185
|
+
status: number;
|
|
186
|
+
/**
|
|
187
|
+
* HTTP status message from the final response (after redirects).
|
|
188
|
+
*/
|
|
189
|
+
statusText: string;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Map of filenames to their SHA256 hashes. Keys are filenames (not paths),
|
|
193
|
+
* values are lowercase hex-encoded SHA256 hashes.
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* ;```ts
|
|
197
|
+
* const checksums: Checksums = {
|
|
198
|
+
* 'file.zip':
|
|
199
|
+
* 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
|
|
200
|
+
* 'other.tar.gz': 'abc123...',
|
|
201
|
+
* }
|
|
202
|
+
* ```
|
|
203
|
+
*/
|
|
204
|
+
export type Checksums = Record<string, string>;
|
|
205
|
+
/**
|
|
206
|
+
* Options for fetching checksums from a URL.
|
|
207
|
+
*/
|
|
208
|
+
export interface FetchChecksumsOptions {
|
|
209
|
+
/**
|
|
210
|
+
* Custom CA certificates for TLS connections. See `HttpRequestOptions.ca` for
|
|
211
|
+
* details.
|
|
212
|
+
*/
|
|
213
|
+
ca?: string[] | undefined;
|
|
214
|
+
/**
|
|
215
|
+
* HTTP headers to send with the request.
|
|
216
|
+
*/
|
|
217
|
+
headers?: Record<string, string> | undefined;
|
|
218
|
+
/**
|
|
219
|
+
* Request timeout in milliseconds.
|
|
220
|
+
*
|
|
221
|
+
* @default 30000
|
|
222
|
+
*/
|
|
223
|
+
timeout?: number | undefined;
|
|
224
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Socket Lib - Built with esbuild */
|
|
3
|
+
"use strict";
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(from))
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
12
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
17
|
+
var download_types_exports = {};
|
|
18
|
+
module.exports = __toCommonJS(download_types_exports);
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Streaming file downloads with retries, progress callbacks, and SHA-256
|
|
3
|
+
* verification. `httpDownload` is the public entry — it writes to a
|
|
4
|
+
* randomly-named sibling temp file first, then atomic-renames into place on
|
|
5
|
+
* success so a failed run never leaves a half-written file at `destPath`.
|
|
6
|
+
* `httpDownloadAttempt` is one streaming pass; the retry / hash-check loop
|
|
7
|
+
* sits in `httpDownload`. `httpDownloadAttempt` is exported (not private) per
|
|
8
|
+
* `export-top-level-functions` — it lives here next to the only caller, and
|
|
9
|
+
* it uses `httpRequestAttempt(... { stream: true })` from `request.ts` to
|
|
10
|
+
* obtain the unconsumed `rawResponse` it pipes to disk.
|
|
11
|
+
*/
|
|
12
|
+
import type { HttpDownloadOptions, HttpDownloadResult } from './download-types';
|
|
13
|
+
/**
|
|
14
|
+
* Download a file from a URL to a local path with redirect support, retry
|
|
15
|
+
* logic, and progress callbacks. Uses streaming to avoid loading entire file in
|
|
16
|
+
* memory.
|
|
17
|
+
*
|
|
18
|
+
* The download is streamed directly to disk, making it memory-efficient even
|
|
19
|
+
* for large files. Progress callbacks allow for real-time download status
|
|
20
|
+
* updates.
|
|
21
|
+
*
|
|
22
|
+
* Automatically follows HTTP redirects (3xx status codes) by default, making it
|
|
23
|
+
* suitable for downloading from services like GitHub releases that redirect to
|
|
24
|
+
* CDN URLs.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* // Simple download
|
|
29
|
+
* const result = await httpDownload(
|
|
30
|
+
* 'https://example.com/file.zip',
|
|
31
|
+
* '/tmp/file.zip',
|
|
32
|
+
* )
|
|
33
|
+
* console.log(`Downloaded ${result.size} bytes to ${result.path}`)
|
|
34
|
+
*
|
|
35
|
+
* // Download from GitHub releases (handles 302 redirect automatically)
|
|
36
|
+
* await httpDownload(
|
|
37
|
+
* 'https://github.com/org/repo/releases/download/v1.0.0/binary.tar.gz',
|
|
38
|
+
* '/tmp/binary.tar.gz',
|
|
39
|
+
* )
|
|
40
|
+
*
|
|
41
|
+
* // With progress tracking
|
|
42
|
+
* await httpDownload('https://example.com/large-file.zip', '/tmp/file.zip', {
|
|
43
|
+
* onProgress: (downloaded, total) => {
|
|
44
|
+
* const percent = ((downloaded / total) * 100).toFixed(1)
|
|
45
|
+
* console.log(`Progress: ${percent}% (${downloaded}/${total} bytes)`)
|
|
46
|
+
* },
|
|
47
|
+
* })
|
|
48
|
+
*
|
|
49
|
+
* // With retries and custom timeout
|
|
50
|
+
* await httpDownload('https://example.com/file.zip', '/tmp/file.zip', {
|
|
51
|
+
* retries: 3,
|
|
52
|
+
* retryDelay: 2000,
|
|
53
|
+
* timeout: 300000, // 5 minutes
|
|
54
|
+
* headers: { Authorization: 'Bearer token123' },
|
|
55
|
+
* })
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @param url - The URL to download from (must start with http:// or https://)
|
|
59
|
+
* @param destPath - Absolute path where the file should be saved.
|
|
60
|
+
* @param options - Download configuration options.
|
|
61
|
+
*
|
|
62
|
+
* @returns Promise resolving to download result with path and size
|
|
63
|
+
*
|
|
64
|
+
* @throws {Error} When all retries are exhausted, download fails, or file
|
|
65
|
+
* cannot be written.
|
|
66
|
+
*/
|
|
67
|
+
export declare function httpDownload(url: string, destPath: string, options?: HttpDownloadOptions | undefined): Promise<HttpDownloadResult>;
|
|
68
|
+
/**
|
|
69
|
+
* Single download attempt using httpRequestAttempt with stream: true.
|
|
70
|
+
*/
|
|
71
|
+
export declare function httpDownloadAttempt(url: string, destPath: string, options: HttpDownloadOptions): Promise<HttpDownloadResult>;
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Socket Lib - Built with esbuild */
|
|
3
|
+
"use strict";
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
var download_exports = {};
|
|
22
|
+
__export(download_exports, {
|
|
23
|
+
httpDownload: () => httpDownload,
|
|
24
|
+
httpDownloadAttempt: () => httpDownloadAttempt
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(download_exports);
|
|
27
|
+
var import_promises = require("node:timers/promises");
|
|
28
|
+
var import_safe = require("../fs/safe");
|
|
29
|
+
var import_buffer = require("../primordials/buffer");
|
|
30
|
+
var import_error = require("../primordials/error");
|
|
31
|
+
var import_math = require("../primordials/math");
|
|
32
|
+
var import_number = require("../primordials/number");
|
|
33
|
+
var import_promise = require("../primordials/promise");
|
|
34
|
+
var import_internal = require("./_internal");
|
|
35
|
+
var import_request = require("./request");
|
|
36
|
+
var import_response_types = require("./response-types");
|
|
37
|
+
async function httpDownload(url, destPath, options) {
|
|
38
|
+
const {
|
|
39
|
+
ca,
|
|
40
|
+
followRedirects = true,
|
|
41
|
+
headers = {},
|
|
42
|
+
logger,
|
|
43
|
+
maxRedirects = 5,
|
|
44
|
+
onProgress,
|
|
45
|
+
progressInterval = 10,
|
|
46
|
+
retries = 0,
|
|
47
|
+
retryDelay = 1e3,
|
|
48
|
+
sha256,
|
|
49
|
+
timeout = 12e4
|
|
50
|
+
} = { __proto__: null, ...options };
|
|
51
|
+
let progressCallback;
|
|
52
|
+
if (onProgress) {
|
|
53
|
+
progressCallback = onProgress;
|
|
54
|
+
} else if (logger) {
|
|
55
|
+
let lastPercent = 0;
|
|
56
|
+
progressCallback = (downloaded, total) => {
|
|
57
|
+
const percent = total === 0 ? 0 : (0, import_math.MathFloor)(downloaded / total * 100);
|
|
58
|
+
if (percent >= lastPercent + progressInterval) {
|
|
59
|
+
logger.log(
|
|
60
|
+
` Progress: ${percent}% (${(downloaded / 1024 / 1024).toFixed(1)} MB / ${(total / 1024 / 1024).toFixed(1)} MB)`
|
|
61
|
+
);
|
|
62
|
+
lastPercent = percent;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const crypto = (0, import_internal.getCrypto)();
|
|
67
|
+
const fs = (0, import_internal.getFs)();
|
|
68
|
+
const tempSuffix = crypto.randomBytes(6).toString("hex");
|
|
69
|
+
const tempPath = `${destPath}.${tempSuffix}.download`;
|
|
70
|
+
if (fs.existsSync(tempPath)) {
|
|
71
|
+
await (0, import_safe.safeDelete)(tempPath);
|
|
72
|
+
}
|
|
73
|
+
let lastError;
|
|
74
|
+
for (let attempt = 0; attempt <= retries; attempt++) {
|
|
75
|
+
try {
|
|
76
|
+
const result = await httpDownloadAttempt(url, tempPath, {
|
|
77
|
+
ca,
|
|
78
|
+
followRedirects,
|
|
79
|
+
headers,
|
|
80
|
+
maxRedirects,
|
|
81
|
+
onProgress: progressCallback,
|
|
82
|
+
timeout
|
|
83
|
+
});
|
|
84
|
+
if (sha256) {
|
|
85
|
+
const fileContent = await fs.promises.readFile(tempPath);
|
|
86
|
+
const computedHash = crypto.createHash("sha256").update(fileContent).digest("hex");
|
|
87
|
+
const expectedHash = sha256.toLowerCase();
|
|
88
|
+
if (computedHash.length !== expectedHash.length || !crypto.timingSafeEqual(
|
|
89
|
+
(0, import_buffer.BufferFrom)(computedHash),
|
|
90
|
+
Buffer.from(expectedHash)
|
|
91
|
+
)) {
|
|
92
|
+
await (0, import_safe.safeDelete)(tempPath);
|
|
93
|
+
throw new import_error.ErrorCtor(
|
|
94
|
+
`Checksum verification failed for ${url}
|
|
95
|
+
Expected: ${expectedHash}
|
|
96
|
+
Computed: ${computedHash}`
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
await fs.promises.rename(tempPath, destPath);
|
|
101
|
+
return {
|
|
102
|
+
...result,
|
|
103
|
+
path: destPath
|
|
104
|
+
};
|
|
105
|
+
} catch (e) {
|
|
106
|
+
lastError = e;
|
|
107
|
+
if (fs.existsSync(tempPath)) {
|
|
108
|
+
await (0, import_safe.safeDelete)(tempPath);
|
|
109
|
+
}
|
|
110
|
+
if (attempt === retries) {
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
const delayMs = retryDelay * 2 ** attempt;
|
|
114
|
+
await (0, import_promises.setTimeout)(delayMs);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
throw lastError || new import_error.ErrorCtor("Download failed after retries");
|
|
118
|
+
}
|
|
119
|
+
async function httpDownloadAttempt(url, destPath, options) {
|
|
120
|
+
const {
|
|
121
|
+
ca,
|
|
122
|
+
followRedirects = true,
|
|
123
|
+
headers = {},
|
|
124
|
+
maxRedirects = 5,
|
|
125
|
+
onProgress,
|
|
126
|
+
timeout = 12e4
|
|
127
|
+
} = { __proto__: null, ...options };
|
|
128
|
+
const response = await (0, import_request.httpRequestAttempt)(url, {
|
|
129
|
+
ca,
|
|
130
|
+
followRedirects,
|
|
131
|
+
headers,
|
|
132
|
+
maxRedirects,
|
|
133
|
+
method: "GET",
|
|
134
|
+
stream: true,
|
|
135
|
+
timeout
|
|
136
|
+
});
|
|
137
|
+
if (!response.ok) {
|
|
138
|
+
throw new import_response_types.HttpResponseError(
|
|
139
|
+
response,
|
|
140
|
+
`Download failed: HTTP ${response.status} ${response.statusText}`
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
const res = response.rawResponse;
|
|
144
|
+
if (!res) {
|
|
145
|
+
throw new import_error.ErrorCtor("Stream response missing rawResponse");
|
|
146
|
+
}
|
|
147
|
+
const { createWriteStream } = (0, import_internal.getFs)();
|
|
148
|
+
const totalSize = (0, import_number.NumberParseInt)(
|
|
149
|
+
response.headers["content-length"] || "0",
|
|
150
|
+
10
|
|
151
|
+
);
|
|
152
|
+
return await new import_promise.PromiseCtor((resolve, reject) => {
|
|
153
|
+
let downloadedSize = 0;
|
|
154
|
+
const fileStream = createWriteStream(destPath);
|
|
155
|
+
const cleanupPartial = () => {
|
|
156
|
+
;
|
|
157
|
+
(async () => {
|
|
158
|
+
try {
|
|
159
|
+
await (0, import_safe.safeDelete)(destPath);
|
|
160
|
+
} catch {
|
|
161
|
+
}
|
|
162
|
+
})();
|
|
163
|
+
};
|
|
164
|
+
fileStream.on("error", (error) => {
|
|
165
|
+
fileStream.destroy();
|
|
166
|
+
cleanupPartial();
|
|
167
|
+
reject(
|
|
168
|
+
new import_error.ErrorCtor(`Failed to write file: ${error.message}`, {
|
|
169
|
+
cause: error
|
|
170
|
+
})
|
|
171
|
+
);
|
|
172
|
+
});
|
|
173
|
+
res.on("data", (chunk) => {
|
|
174
|
+
downloadedSize += chunk.length;
|
|
175
|
+
if (onProgress && totalSize > 0) {
|
|
176
|
+
onProgress(downloadedSize, totalSize);
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
fileStream.on("finish", () => {
|
|
180
|
+
resolve({
|
|
181
|
+
headers: response.headers,
|
|
182
|
+
ok: true,
|
|
183
|
+
path: destPath,
|
|
184
|
+
size: downloadedSize,
|
|
185
|
+
status: response.status,
|
|
186
|
+
statusText: response.statusText
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
res.on("error", (error) => {
|
|
190
|
+
fileStream.destroy();
|
|
191
|
+
cleanupPartial();
|
|
192
|
+
reject(error);
|
|
193
|
+
});
|
|
194
|
+
res.pipe(fileStream);
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
198
|
+
0 && (module.exports = {
|
|
199
|
+
httpDownload,
|
|
200
|
+
httpDownloadAttempt
|
|
201
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Error-message enrichment for HTTP/HTTPS requests. `enrichErrorMessage`
|
|
3
|
+
* translates Node.js network error codes (`ECONNREFUSED`, `ENOTFOUND`,
|
|
4
|
+
* `ETIMEDOUT`, etc.) into user-facing guidance prefixed with the failing
|
|
5
|
+
* method + URL. The wording is generic — no product-specific branding — so
|
|
6
|
+
* the request leaves can use it for any caller. `request.ts` invokes this on
|
|
7
|
+
* the `request` `'error'` event before rejecting, which is what surfaces the
|
|
8
|
+
* actionable messages to consumers.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Build an enriched error message based on the error code. Generic guidance (no
|
|
12
|
+
* product-specific branding).
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ;```typescript
|
|
16
|
+
* try {
|
|
17
|
+
* await fetch('https://api.example.com')
|
|
18
|
+
* } catch (e) {
|
|
19
|
+
* console.error(enrichErrorMessage('https://api.example.com', 'GET', e))
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function enrichErrorMessage(url: string, method: string, error: NodeJS.ErrnoException): string;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Socket Lib - Built with esbuild */
|
|
3
|
+
"use strict";
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
var errors_exports = {};
|
|
22
|
+
__export(errors_exports, {
|
|
23
|
+
enrichErrorMessage: () => enrichErrorMessage
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(errors_exports);
|
|
26
|
+
function enrichErrorMessage(url, method, error) {
|
|
27
|
+
const code = error.code;
|
|
28
|
+
let message = `${method} request failed: ${url}`;
|
|
29
|
+
if (code === "ECONNREFUSED") {
|
|
30
|
+
message += "\n\u2192 Connection refused. Server is unreachable.\n\u2192 Check: Network connectivity and firewall settings.";
|
|
31
|
+
} else if (code === "ENOTFOUND") {
|
|
32
|
+
message += "\n\u2192 DNS lookup failed. Cannot resolve hostname.\n\u2192 Check: Internet connection and DNS settings.";
|
|
33
|
+
} else if (code === "ETIMEDOUT") {
|
|
34
|
+
message += "\n\u2192 Connection timed out. Network or server issue.\n\u2192 Try: Check network connectivity and retry.";
|
|
35
|
+
} else if (code === "ECONNRESET") {
|
|
36
|
+
message += "\n\u2192 Connection reset by server. Possible network interruption.\n\u2192 Try: Retry the request.";
|
|
37
|
+
} else if (code === "EPIPE") {
|
|
38
|
+
message += "\n\u2192 Broken pipe. Server closed connection unexpectedly.\n\u2192 Check: Authentication credentials and permissions.";
|
|
39
|
+
} else if (code === "CERT_HAS_EXPIRED" || code === "UNABLE_TO_VERIFY_LEAF_SIGNATURE") {
|
|
40
|
+
message += "\n\u2192 SSL/TLS certificate error.\n\u2192 Check: System time and date are correct.\n\u2192 Try: Update CA certificates on your system.";
|
|
41
|
+
} else if (code) {
|
|
42
|
+
message += `
|
|
43
|
+
\u2192 Error code: ${code}`;
|
|
44
|
+
}
|
|
45
|
+
return message;
|
|
46
|
+
}
|
|
47
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
48
|
+
0 && (module.exports = {
|
|
49
|
+
enrichErrorMessage
|
|
50
|
+
});
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Header utilities for HTTP/HTTPS requests. Two pure-data helpers:
|
|
3
|
+
*
|
|
4
|
+
* - `parseRetryAfterHeader` turns a `Retry-After` header value (delay-seconds
|
|
5
|
+
* OR HTTP-date per RFC 7231 §7.1.3) into a millisecond delay for `onRetry`
|
|
6
|
+
* callbacks.
|
|
7
|
+
* - `sanitizeHeaders` redacts `Authorization`, `Cookie`, and the other
|
|
8
|
+
* credential-bearing headers before they reach a logger or telemetry
|
|
9
|
+
* payload. No I/O — these can be imported anywhere without dragging the
|
|
10
|
+
* Node.js `http`/`https` modules into the bundle.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Parse a `Retry-After` HTTP header value into milliseconds.
|
|
14
|
+
*
|
|
15
|
+
* Supports both formats defined in RFC 7231 §7.1.3:
|
|
16
|
+
*
|
|
17
|
+
* - **delay-seconds**: integer number of seconds (e.g., `"120"`)
|
|
18
|
+
* - **HTTP-date**: an absolute date/time (e.g., `"Fri, 31 Dec 2027 23:59:59
|
|
19
|
+
* GMT"`)
|
|
20
|
+
*
|
|
21
|
+
* When the header is an array (multiple values), the first element is used.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ;```ts
|
|
25
|
+
* import { setTimeout as delay } from 'node:timers/promises'
|
|
26
|
+
* const ms = parseRetryAfterHeader(response.headers['retry-after'])
|
|
27
|
+
* if (ms !== undefined) {
|
|
28
|
+
* await delay(ms)
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @param value - The raw Retry-After header value(s)
|
|
33
|
+
*
|
|
34
|
+
* @returns Delay in milliseconds, or `undefined` if the value cannot be parsed
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseRetryAfterHeader(value: string | string[] | undefined): number | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Redact sensitive HTTP headers for safe logging and telemetry.
|
|
39
|
+
*
|
|
40
|
+
* Replaces values of sensitive headers (Authorization, Cookie, etc.) with
|
|
41
|
+
* `[REDACTED]`. Non-sensitive headers are passed through unchanged. Array
|
|
42
|
+
* values are joined with `', '`.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ;```ts
|
|
46
|
+
* const safe = sanitizeHeaders({
|
|
47
|
+
* authorization: 'Bearer secret',
|
|
48
|
+
* 'content-type': 'application/json',
|
|
49
|
+
* })
|
|
50
|
+
* // { authorization: '[REDACTED]', 'content-type': 'application/json' }
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* @param headers - HTTP headers to sanitize.
|
|
54
|
+
*
|
|
55
|
+
* @returns A new object with sensitive values redacted
|
|
56
|
+
*/
|
|
57
|
+
export declare function sanitizeHeaders(headers: Record<string, unknown> | undefined): Record<string, string>;
|