@socketsecurity/lib 6.0.3 → 6.0.5
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 +22 -0
- package/dist/_virtual/_rolldown/runtime.js +45 -0
- package/dist/abort/signal.js +53 -59
- package/dist/ai/discover.js +110 -110
- package/dist/ai/profiles.js +94 -65
- package/dist/ai/spawn.js +172 -194
- package/dist/ai/types.js +1 -17
- package/dist/ai/worktree.js +160 -183
- package/dist/ansi/constants.js +16 -38
- package/dist/ansi/strip.js +44 -41
- package/dist/archives/_internal.js +64 -73
- package/dist/archives/detect.js +30 -43
- package/dist/archives/extract.js +43 -50
- package/dist/archives/tar.js +197 -228
- package/dist/archives/types.js +1 -17
- package/dist/archives/zip.js +85 -121
- package/dist/argv/flag-predicates.js +203 -101
- package/dist/argv/flag-types.js +96 -113
- package/dist/argv/parse-args-string.d.ts +16 -14
- package/dist/argv/parse-args-string.js +42 -39
- package/dist/argv/parse.js +145 -163
- package/dist/arrays/_internal.js +65 -48
- package/dist/arrays/chunk.js +51 -40
- package/dist/arrays/join.js +87 -35
- package/dist/arrays/predicates.js +46 -28
- package/dist/arrays/unique.js +45 -31
- package/dist/bin/_internal.js +34 -42
- package/dist/bin/check-primordials.js +175 -233
- package/dist/bin/check.js +51 -72
- package/dist/bin/exec.js +70 -74
- package/dist/bin/find.js +151 -134
- package/dist/bin/resolve.js +180 -246
- package/dist/bin/shadow.js +24 -33
- package/dist/bin/socket-lib.js +51 -73
- package/dist/bin/types.js +1 -17
- package/dist/bin/which.js +211 -146
- package/dist/cacache/_internal.js +25 -40
- package/dist/cacache/clear.js +79 -72
- package/dist/cacache/read.js +48 -46
- package/dist/cacache/tmp.js +29 -36
- package/dist/cacache/types.js +1 -17
- package/dist/cacache/write.js +43 -48
- package/dist/cache/ttl/store.js +232 -288
- package/dist/cache/ttl/types.js +1 -17
- package/dist/checks/primordials-defaults.js +83 -89
- package/dist/checks/primordials.js +225 -277
- package/dist/colors/convert.js +45 -37
- package/dist/colors/palette.js +88 -45
- package/dist/colors/socket-palette.js +74 -84
- package/dist/colors/types.js +1 -17
- package/dist/compression/_internal.js +57 -72
- package/dist/compression/brotli.js +94 -127
- package/dist/compression/gzip.js +95 -121
- package/dist/compression/types.js +1 -17
- package/dist/constants/agents.js +61 -113
- package/dist/constants/encoding.js +19 -42
- package/dist/constants/github.js +12 -30
- package/dist/constants/licenses.js +48 -63
- package/dist/constants/lifecycle-script-names.js +31 -45
- package/dist/constants/maintained-node-versions.js +22 -37
- package/dist/constants/node.js +226 -167
- package/dist/constants/package-default-node-range.js +16 -41
- package/dist/constants/package-default-socket-categories.js +12 -30
- package/dist/constants/packages.js +77 -126
- package/dist/constants/platform.js +27 -49
- package/dist/constants/sentinels.js +23 -48
- package/dist/constants/socket.js +42 -87
- package/dist/constants/testing.js +15 -34
- package/dist/constants/time.js +16 -36
- package/dist/constants/typescript.js +32 -52
- package/dist/cover/code.js +111 -142
- package/dist/cover/formatters.js +118 -101
- package/dist/cover/type.js +50 -76
- package/dist/cover/types.js +1 -17
- package/dist/crypto/hash.js +54 -46
- package/dist/debug/_internal.js +62 -71
- package/dist/debug/caller-info.js +53 -64
- package/dist/debug/namespace.js +80 -90
- package/dist/debug/output.js +172 -188
- package/dist/debug/types.js +1 -17
- package/dist/dlx/_internal.js +24 -43
- package/dist/dlx/arborist.js +162 -160
- package/dist/dlx/binary-cache.js +228 -200
- package/dist/dlx/binary-download.js +172 -211
- package/dist/dlx/binary-resolution.js +165 -157
- package/dist/dlx/binary-types.js +1 -17
- package/dist/dlx/binary.js +149 -189
- package/dist/dlx/cache.js +45 -30
- package/dist/dlx/detect.js +245 -159
- package/dist/dlx/dir.js +67 -51
- package/dist/dlx/firewall.js +62 -100
- package/dist/dlx/lockfile.js +122 -127
- package/dist/dlx/manifest.js +264 -274
- package/dist/dlx/package.js +241 -244
- package/dist/dlx/packages.js +99 -96
- package/dist/dlx/paths.js +73 -59
- package/dist/dlx/spec.js +52 -60
- package/dist/dlx/types.js +1 -17
- package/dist/eco/cargo/lockfile-format.js +19 -36
- package/dist/eco/cargo/manifest-format.js +17 -35
- package/dist/eco/cargo/parse-lockfile.js +210 -237
- package/dist/eco/manifest/analyze-lockfile.js +46 -63
- package/dist/eco/manifest/detect-format.js +66 -90
- package/dist/eco/manifest/find-packages.js +39 -64
- package/dist/eco/manifest/get-package-versions.js +27 -48
- package/dist/eco/manifest/get-package.js +21 -40
- package/dist/eco/manifest/manifest-error.js +14 -35
- package/dist/eco/manifest/parse-lockfile.js +40 -86
- package/dist/eco/manifest/parse-manifest.js +26 -43
- package/dist/eco/manifest/parse.js +26 -47
- package/dist/eco/manifest/types.js +1 -17
- package/dist/eco/npm/bun/exec.js +23 -32
- package/dist/eco/npm/manifest-format.js +21 -35
- package/dist/eco/npm/npm/exec.js +51 -61
- package/dist/eco/npm/npm/extract-package-name-from-path.js +28 -50
- package/dist/eco/npm/npm/flags.js +80 -52
- package/dist/eco/npm/npm/lockfile-format.js +21 -40
- package/dist/eco/npm/npm/parse-git-url.js +26 -40
- package/dist/eco/npm/npm/parse-lockfile.js +184 -210
- package/dist/eco/npm/parse-package-json.js +71 -102
- package/dist/eco/npm/pnpm/detect-pnpm-version.js +22 -43
- package/dist/eco/npm/pnpm/exec.js +51 -62
- package/dist/eco/npm/pnpm/flags.js +75 -68
- package/dist/eco/npm/pnpm/lockfile-format.js +19 -36
- package/dist/eco/npm/pnpm/parse-lockfile.js +235 -259
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +37 -47
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +36 -49
- package/dist/eco/npm/script.js +82 -90
- package/dist/eco/npm/vlt/exec.js +24 -32
- package/dist/eco/npm/yarnpkg/yarn/exec.js +60 -59
- package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +20 -36
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +194 -242
- package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +37 -61
- package/dist/eco/purl.js +50 -60
- package/dist/eco/types.js +1 -17
- package/dist/effects/pulse-frames.js +64 -65
- package/dist/effects/shimmer-keyframes.js +71 -52
- package/dist/effects/shimmer-terminal.js +81 -50
- package/dist/effects/shimmer.js +290 -153
- package/dist/env/boolean.js +42 -43
- package/dist/env/case-insensitive.js +54 -39
- package/dist/env/ci.js +29 -31
- package/dist/env/debug.js +28 -31
- package/dist/env/github.js +144 -59
- package/dist/env/home.js +38 -31
- package/dist/env/locale.js +59 -39
- package/dist/env/node-auth-token.js +28 -31
- package/dist/env/node-env.js +28 -31
- package/dist/env/npm.js +94 -47
- package/dist/env/number.js +50 -51
- package/dist/env/package-manager.js +95 -83
- package/dist/env/path.js +28 -31
- package/dist/env/pre-commit.js +30 -32
- package/dist/env/proxy.js +121 -122
- package/dist/env/rewire.js +204 -96
- package/dist/env/shell.js +28 -31
- package/dist/env/socket-cli.js +233 -81
- package/dist/env/socket.js +521 -156
- package/dist/env/string.js +43 -44
- package/dist/env/temp-dir.js +59 -39
- package/dist/env/term.js +28 -31
- package/dist/env/test.js +65 -43
- package/dist/env/types.js +1 -17
- package/dist/env/windows.js +78 -43
- package/dist/env/xdg.js +62 -39
- package/dist/errors/message.js +40 -46
- package/dist/errors/predicates.js +61 -49
- package/dist/errors/stack.js +24 -36
- package/dist/events/exit/_internal.js +86 -103
- package/dist/events/exit/handler.js +48 -55
- package/dist/events/exit/intercept.js +49 -70
- package/dist/events/exit/lifecycle.js +92 -101
- package/dist/events/exit/signals.js +25 -31
- package/dist/events/exit/types.js +1 -17
- package/dist/events/warning/handler.js +43 -40
- package/dist/events/warning/suppress.js +111 -90
- package/dist/external/@npmcli/package-json/lib/read-package.js +132 -153
- package/dist/external/@npmcli/package-json/lib/sort.js +73 -105
- package/dist/external/@npmcli/package-json.js +12705 -15140
- package/dist/external/@npmcli/promise-spawn.js +451 -472
- package/dist/external/@sinclair/typebox/value.js +7443 -9002
- package/dist/external/@sinclair/typebox.js +7516 -7885
- package/dist/external/@socketregistry/is-unicode-supported.js +31 -39
- package/dist/external/@socketregistry/packageurl-js.js +6127 -7369
- package/dist/external/@socketregistry/yocto-spinner.js +394 -455
- package/dist/external/@yarnpkg/extensions.js +435 -1022
- package/dist/external/adm-zip.js +2313 -2673
- package/dist/external/debug.js +700 -687
- package/dist/external/external-pack.js +2658 -3171
- package/dist/external/fast-sort.js +124 -138
- package/dist/external/get-east-asian-width.js +70 -64
- package/dist/external/libnpmexec.js +28 -31
- package/dist/external/npm-pack.js +43617 -50137
- package/dist/external/p-map.js +198 -222
- package/dist/external/pico-pack.js +6735 -7304
- package/dist/external/pony-cause.js +143 -139
- package/dist/external/shell-quote.js +226 -0
- package/dist/external/spdx-pack.js +1283 -1403
- package/dist/external/streaming-iterables.js +835 -1052
- package/dist/external/tar-fs.js +2769 -3048
- package/dist/external/which.js +267 -251
- package/dist/external/yargs-parser.js +851 -1074
- package/dist/external-tools/bazel/asset-names.js +98 -90
- package/dist/external-tools/bazel/from-download.js +52 -46
- package/dist/external-tools/bazel/from-path.js +27 -38
- package/dist/external-tools/bazel/read-bazel-version-file.js +35 -57
- package/dist/external-tools/bazel/resolve-asset-url.js +24 -39
- package/dist/external-tools/bazel/resolve-bazel-version.js +34 -56
- package/dist/external-tools/bazel/resolve.js +44 -58
- package/dist/external-tools/bazel/types.js +1 -17
- package/dist/external-tools/cdxgen/asset-names.js +59 -66
- package/dist/external-tools/cdxgen/from-download.js +52 -80
- package/dist/external-tools/cdxgen/from-path.js +19 -37
- package/dist/external-tools/cdxgen/from-vfs.js +22 -43
- package/dist/external-tools/cdxgen/resolve.js +48 -63
- package/dist/external-tools/cdxgen/types.js +1 -17
- package/dist/external-tools/from-download.js +107 -67
- package/dist/external-tools/janus/asset-names.js +44 -51
- package/dist/external-tools/janus/from-download.js +45 -70
- package/dist/external-tools/janus/from-path.js +19 -37
- package/dist/external-tools/janus/from-vfs.js +22 -43
- package/dist/external-tools/janus/resolve.js +45 -63
- package/dist/external-tools/janus/types.js +1 -17
- package/dist/external-tools/jre/asset-names.js +109 -82
- package/dist/external-tools/jre/detect-platform-arch.js +25 -49
- package/dist/external-tools/jre/from-download.js +71 -67
- package/dist/external-tools/jre/from-java-home.js +27 -54
- package/dist/external-tools/jre/from-path.js +27 -49
- package/dist/external-tools/jre/from-vfs.js +39 -60
- package/dist/external-tools/jre/resolve.js +55 -68
- package/dist/external-tools/jre/types.js +1 -17
- package/dist/external-tools/manifest.js +130 -150
- package/dist/external-tools/opengrep/asset-names.js +60 -72
- package/dist/external-tools/opengrep/from-download.js +58 -80
- package/dist/external-tools/opengrep/from-path.js +19 -37
- package/dist/external-tools/opengrep/from-vfs.js +23 -43
- package/dist/external-tools/opengrep/resolve.js +43 -63
- package/dist/external-tools/opengrep/types.js +1 -17
- package/dist/external-tools/sbt/asset-names.js +21 -30
- package/dist/external-tools/sbt/from-download.js +50 -61
- package/dist/external-tools/sbt/from-path.js +23 -38
- package/dist/external-tools/sbt/from-vfs.js +30 -44
- package/dist/external-tools/sbt/resolve.js +45 -63
- package/dist/external-tools/sbt/types.js +1 -17
- package/dist/external-tools/synp/asset-names.js +11 -29
- package/dist/external-tools/synp/from-download.js +24 -41
- package/dist/external-tools/synp/from-path.js +19 -37
- package/dist/external-tools/synp/from-vfs.js +22 -43
- package/dist/external-tools/synp/resolve.js +43 -62
- package/dist/external-tools/synp/types.js +1 -17
- package/dist/external-tools/trivy/asset-names.js +51 -62
- package/dist/external-tools/trivy/from-download.js +42 -64
- package/dist/external-tools/trivy/from-path.js +19 -37
- package/dist/external-tools/trivy/from-vfs.js +22 -43
- package/dist/external-tools/trivy/resolve.js +43 -63
- package/dist/external-tools/trivy/types.js +1 -17
- package/dist/external-tools/trufflehog/asset-names.js +54 -66
- package/dist/external-tools/trufflehog/from-download.js +44 -62
- package/dist/external-tools/trufflehog/from-path.js +21 -37
- package/dist/external-tools/trufflehog/from-vfs.js +26 -43
- package/dist/external-tools/trufflehog/resolve.js +43 -63
- package/dist/external-tools/trufflehog/types.js +1 -17
- package/dist/external-tools/uv/asset-names.js +64 -74
- package/dist/external-tools/uv/from-download.js +44 -65
- package/dist/external-tools/uv/from-path.js +19 -37
- package/dist/external-tools/uv/from-vfs.js +22 -43
- package/dist/external-tools/uv/resolve.js +42 -63
- package/dist/external-tools/uv/types.js +1 -17
- package/dist/fs/_internal.js +40 -42
- package/dist/fs/access.js +57 -54
- package/dist/fs/encoding.js +80 -97
- package/dist/fs/find-up.js +126 -125
- package/dist/fs/inspect.js +168 -99
- package/dist/fs/path-cache.js +31 -32
- package/dist/fs/read-dir.js +102 -79
- package/dist/fs/read-file.js +177 -118
- package/dist/fs/read-json-cache.js +150 -134
- package/dist/fs/read-json.js +172 -187
- package/dist/fs/resolve-module.js +35 -58
- package/dist/fs/safe.js +278 -169
- package/dist/fs/types.js +1 -17
- package/dist/fs/unique.js +52 -48
- package/dist/fs/validate.js +56 -40
- package/dist/fs/write-json.js +109 -75
- package/dist/git/_internal.js +251 -216
- package/dist/git/changed.js +191 -74
- package/dist/git/repo.js +118 -104
- package/dist/git/staged.js +172 -62
- package/dist/git/types.js +1 -17
- package/dist/git/unstaged.js +175 -62
- package/dist/github/constants.js +25 -33
- package/dist/github/errors.js +46 -38
- package/dist/github/fetch.js +137 -82
- package/dist/github/ghsa.js +217 -151
- package/dist/github/refs-cache.js +54 -43
- package/dist/github/refs-graphql.js +97 -89
- package/dist/github/refs-rest.js +70 -101
- package/dist/github/refs.js +105 -64
- package/dist/github/token.js +96 -48
- package/dist/github/types.js +1 -17
- package/dist/globs/_internal.js +73 -82
- package/dist/globs/defaults.js +40 -59
- package/dist/globs/match.js +93 -77
- package/dist/globs/matcher.js +104 -92
- package/dist/globs/stream.js +43 -55
- package/dist/globs/types.js +1 -17
- package/dist/http-request/_internal.js +11 -38
- package/dist/http-request/browser-fetch.js +19 -29
- package/dist/http-request/browser.js +188 -206
- package/dist/http-request/checksums.js +101 -65
- package/dist/http-request/download-types.js +1 -17
- package/dist/http-request/download.js +195 -196
- package/dist/http-request/errors.js +39 -47
- package/dist/http-request/headers.js +95 -80
- package/dist/http-request/http-request.js +10 -35
- package/dist/http-request/node.js +71 -97
- package/dist/http-request/request-attempt.js +232 -285
- package/dist/http-request/request-types.js +1 -17
- package/dist/http-request/request.js +106 -108
- package/dist/http-request/response-reader.js +47 -51
- package/dist/http-request/response-types.js +22 -38
- package/dist/http-request/user-agent.js +73 -55
- package/dist/integrity.js +105 -106
- package/dist/ipc/_internal.js +34 -48
- package/dist/ipc/directory.js +55 -63
- package/dist/ipc/paths.js +52 -45
- package/dist/ipc/types.js +1 -17
- package/dist/ipc/write.js +81 -74
- package/dist/ipc-cli/get.js +29 -56
- package/dist/ipc-cli/types.js +1 -17
- package/dist/json/edit.js +182 -242
- package/dist/json/format.js +202 -103
- package/dist/json/parse.js +206 -109
- package/dist/json/types.js +1 -17
- package/dist/links/create.js +93 -60
- package/dist/links/types.js +1 -17
- package/dist/logger/_internal.js +109 -73
- package/dist/logger/browser.js +45 -56
- package/dist/logger/colors.js +31 -49
- package/dist/logger/console.js +89 -112
- package/dist/logger/default.js +19 -33
- package/dist/logger/logger.js +5 -29
- package/dist/logger/node.js +793 -854
- package/dist/logger/symbols-builder.js +54 -56
- package/dist/logger/symbols.js +135 -118
- package/dist/logger/types.js +1 -17
- package/dist/memo/_internal.js +39 -49
- package/dist/memo/async.js +133 -117
- package/dist/memo/clear.js +25 -34
- package/dist/memo/decorator.js +43 -37
- package/dist/memo/memoize.js +97 -88
- package/dist/memo/once.js +42 -41
- package/dist/memo/types.js +1 -17
- package/dist/memo/weak.js +45 -41
- package/dist/node/async-hooks.js +9 -30
- package/dist/node/child-process.js +9 -30
- package/dist/node/crypto.js +9 -30
- package/dist/node/events.js +9 -30
- package/dist/node/fs-promises.js +9 -30
- package/dist/node/fs.js +9 -30
- package/dist/node/http.js +9 -30
- package/dist/node/https.js +9 -30
- package/dist/node/module.js +20 -34
- package/dist/node/os.js +9 -30
- package/dist/node/path.js +9 -30
- package/dist/node/timers-promises.js +9 -30
- package/dist/node/url.js +9 -30
- package/dist/node/util.js +9 -30
- package/dist/objects/getters.js +185 -126
- package/dist/objects/inspect.js +85 -52
- package/dist/objects/mutate.js +96 -76
- package/dist/objects/predicates.js +112 -59
- package/dist/objects/sort.js +120 -76
- package/dist/objects/types.js +1 -17
- package/dist/packages/edit-class.js +198 -265
- package/dist/packages/edit.js +79 -86
- package/dist/packages/exports.js +146 -157
- package/dist/packages/isolation.js +159 -209
- package/dist/packages/licenses.js +207 -189
- package/dist/packages/manifest.js +134 -172
- package/dist/packages/normalize.js +91 -102
- package/dist/packages/operations.d.ts +2 -0
- package/dist/packages/operations.js +283 -254
- package/dist/packages/provenance.js +195 -245
- package/dist/packages/specs.js +94 -84
- package/dist/packages/types.js +1 -17
- package/dist/packages/validation.js +49 -50
- package/dist/paths/_internal.js +82 -86
- package/dist/paths/conversion.js +112 -65
- package/dist/paths/dirnames.js +17 -42
- package/dist/paths/exts.js +23 -54
- package/dist/paths/filenames.js +21 -50
- package/dist/paths/globs.js +15 -38
- package/dist/paths/normalize.js +215 -236
- package/dist/paths/packages.js +34 -49
- package/dist/paths/predicates.js +184 -106
- package/dist/paths/resolve.js +146 -128
- package/dist/paths/rewire.js +108 -72
- package/dist/paths/socket.js +252 -132
- package/dist/paths/walk.js +55 -60
- package/dist/perf/_internal.js +10 -28
- package/dist/perf/enabled.js +21 -30
- package/dist/perf/metrics.js +81 -67
- package/dist/perf/report.js +79 -80
- package/dist/perf/timer.js +180 -126
- package/dist/perf/types.js +1 -17
- package/dist/pkg-ext/data.js +29 -82
- package/dist/pkg-ext/types.js +1 -17
- package/dist/primordials/array.js +120 -198
- package/dist/primordials/buffer.js +28 -51
- package/dist/primordials/date.js +26 -51
- package/dist/primordials/error.js +33 -59
- package/dist/primordials/function.js +21 -41
- package/dist/primordials/globals.js +25 -48
- package/dist/primordials/json.js +14 -30
- package/dist/primordials/map-set.js +88 -152
- package/dist/primordials/math.js +59 -116
- package/dist/primordials/number.js +41 -76
- package/dist/primordials/object.js +56 -116
- package/dist/primordials/promise.js +28 -52
- package/dist/primordials/reflect.js +24 -52
- package/dist/primordials/regexp.js +25 -47
- package/dist/primordials/string.js +114 -167
- package/dist/primordials/symbol.js +40 -72
- package/dist/primordials/uncurry.js +38 -55
- package/dist/primordials/url.js +27 -66
- package/dist/process/_internal.js +7 -32
- package/dist/process/abort.js +29 -35
- package/dist/process/lock-instance.js +26 -30
- package/dist/process/lock-manager.js +279 -307
- package/dist/process/lock-types.js +1 -17
- package/dist/process/spawn/_internal.js +43 -55
- package/dist/process/spawn/child.js +172 -211
- package/dist/process/spawn/errors.js +116 -113
- package/dist/process/spawn/stdio.js +51 -35
- package/dist/process/spawn/types.js +1 -17
- package/dist/process/transient.js +49 -66
- package/dist/promises/_internal.js +31 -34
- package/dist/promises/iterate.js +238 -102
- package/dist/promises/options.js +123 -101
- package/dist/promises/queue.js +115 -136
- package/dist/promises/resolvers.js +77 -46
- package/dist/promises/retry.js +156 -101
- package/dist/promises/types.js +1 -17
- package/dist/regexps/escape.js +32 -30
- package/dist/regexps/hex.js +16 -33
- package/dist/regexps/spec.js +53 -81
- package/dist/releases/github-archives.js +127 -118
- package/dist/releases/github-asset-url.js +162 -146
- package/dist/releases/github-assets.js +37 -49
- package/dist/releases/github-auth.js +32 -48
- package/dist/releases/github-downloads.js +118 -138
- package/dist/releases/github-listing.js +175 -145
- package/dist/releases/github-retry-config.js +41 -47
- package/dist/releases/github-types.js +1 -17
- package/dist/releases/socket-btm.js +273 -192
- package/dist/schema/parse.js +35 -36
- package/dist/schema/types.js +1 -17
- package/dist/schema/validate.js +118 -99
- package/dist/sea/detect.js +57 -52
- package/dist/secrets/_internal.js +86 -67
- package/dist/secrets/find.js +96 -77
- package/dist/secrets/keychain.js +315 -309
- package/dist/secrets/linux.js +133 -135
- package/dist/secrets/macos.js +151 -147
- package/dist/secrets/rc.js +182 -181
- package/dist/secrets/socket-api-token.js +28 -43
- package/dist/secrets/types.js +1 -17
- package/dist/secrets/windows.js +184 -242
- package/dist/shadow/skip.js +51 -70
- package/dist/shadow/types.js +1 -17
- package/dist/shell/parse.d.ts +26 -0
- package/dist/shell/parse.js +35 -0
- package/dist/shell/quote.d.ts +19 -0
- package/dist/shell/quote.js +30 -0
- package/dist/smol/detect.js +67 -43
- package/dist/smol/http.js +33 -37
- package/dist/smol/https.js +31 -37
- package/dist/smol/manifest.js +33 -37
- package/dist/smol/path.js +33 -37
- package/dist/smol/primordial.js +35 -37
- package/dist/smol/purl.js +34 -37
- package/dist/smol/versions.js +31 -37
- package/dist/smol/vfs.js +46 -38
- package/dist/sorts/_internal.js +14 -40
- package/dist/sorts/natural.js +57 -64
- package/dist/sorts/semver.js +33 -43
- package/dist/sorts/strings.js +24 -30
- package/dist/sorts/types.js +1 -17
- package/dist/spinner/default.js +72 -63
- package/dist/spinner/format.js +86 -71
- package/dist/spinner/spinner.js +749 -797
- package/dist/spinner/types.js +1 -17
- package/dist/spinner/with.js +193 -137
- package/dist/ssri/convert.js +64 -47
- package/dist/ssri/parse.js +38 -37
- package/dist/ssri/validate.js +51 -34
- package/dist/stdio/_internal.js +50 -46
- package/dist/stdio/clear.js +208 -86
- package/dist/stdio/divider.js +170 -97
- package/dist/stdio/footer.js +116 -110
- package/dist/stdio/header.js +117 -90
- package/dist/stdio/progress.js +189 -218
- package/dist/stdio/prompts.js +244 -168
- package/dist/stdio/stderr.js +173 -78
- package/dist/stdio/stdout.js +177 -94
- package/dist/streams/parallel.js +58 -50
- package/dist/streams/transform.js +36 -45
- package/dist/strings/format.js +145 -63
- package/dist/strings/predicates.js +56 -34
- package/dist/strings/search.js +52 -42
- package/dist/strings/transform.js +113 -72
- package/dist/strings/types.js +1 -17
- package/dist/strings/width.js +89 -82
- package/dist/tables/bordered.js +81 -81
- package/dist/tables/padding.js +36 -46
- package/dist/tables/simple.js +62 -70
- package/dist/tables/types.js +1 -17
- package/dist/temporal/instant.js +72 -81
- package/dist/temporal/now.js +40 -31
- package/dist/temporal/slots.js +42 -36
- package/dist/temporal/system.js +36 -36
- package/dist/temporal/temporal.js +11 -41
- package/dist/themes/context.js +131 -69
- package/dist/themes/resolve.js +207 -132
- package/dist/themes/themes.js +225 -194
- package/dist/themes/types.js +1 -17
- package/dist/url/parse.js +48 -51
- package/dist/url/predicates.js +24 -31
- package/dist/url/search-params.js +133 -101
- package/dist/url/types.js +1 -17
- package/dist/versions/_internal.js +31 -33
- package/dist/versions/compare.js +80 -58
- package/dist/versions/modify.js +41 -39
- package/dist/versions/parse.js +88 -64
- package/dist/versions/range.js +58 -41
- package/dist/versions/types.js +1 -17
- package/dist/words/article.js +22 -30
- package/dist/words/capitalize.js +25 -34
- package/dist/words/pluralize.js +23 -31
- package/dist/words/types.js +1 -17
- package/package.json +17 -5
|
@@ -1,52 +1,46 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* Socket Lib - Built with
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
GITHUB_RETRY_CONFIG: () => GITHUB_RETRY_CONFIG,
|
|
25
|
-
resolveBaseDelayMs: () => resolveBaseDelayMs
|
|
26
|
-
});
|
|
27
|
-
module.exports = __toCommonJS(github_retry_config_exports);
|
|
28
|
-
var import_number = require("../env/number");
|
|
29
|
-
var import_rewire = require("../env/rewire");
|
|
30
|
-
var import_object = require("../primordials/object");
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_primordials_object = require('../primordials/object.js');
|
|
5
|
+
const require_env_rewire = require('../env/rewire.js');
|
|
6
|
+
const require_env_number = require('../env/number.js');
|
|
7
|
+
|
|
8
|
+
//#region src/releases/github-retry-config.ts
|
|
9
|
+
/**
|
|
10
|
+
* @file Shared retry configuration for the GitHub release helpers
|
|
11
|
+
* (`github-listing`, `github-asset-url`). Exponential backoff over the
|
|
12
|
+
* transient-failure / rate-limit surface. `baseDelayMs` is overridable via
|
|
13
|
+
* `SOCKET_GITHUB_RETRY_BASE_DELAY_MS` — set it to `0` for near-instant
|
|
14
|
+
* retries. Tests set it so the backoff sleep (5s + 10s of real wallclock)
|
|
15
|
+
* doesn't run: pRetry's delay goes through `node:timers/promises`, which
|
|
16
|
+
* `vi.useFakeTimers()` doesn't reliably intercept, so a zero base delay is
|
|
17
|
+
* the robust, fake-timer-independent way to keep these tests fast. CI can
|
|
18
|
+
* also dial it down. Default stays 5000ms for production resilience.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Default base delay (ms) before the first retry when the env override is unset
|
|
22
|
+
* or non-numeric.
|
|
23
|
+
*/
|
|
31
24
|
const DEFAULT_BASE_DELAY_MS = 5e3;
|
|
25
|
+
/**
|
|
26
|
+
* Resolve the retry base delay from `SOCKET_GITHUB_RETRY_BASE_DELAY_MS`,
|
|
27
|
+
* falling back to {@link DEFAULT_BASE_DELAY_MS}. Read live (not memoized) so
|
|
28
|
+
* it's unit-testable by mutating the env — and so a long-lived process that has
|
|
29
|
+
* the env changed under it picks up the new value on next read.
|
|
30
|
+
*
|
|
31
|
+
* @returns The configured base delay in milliseconds.
|
|
32
|
+
*/
|
|
32
33
|
function resolveBaseDelayMs() {
|
|
33
|
-
|
|
34
|
-
(0, import_rewire.getEnvValue)("SOCKET_GITHUB_RETRY_BASE_DELAY_MS"),
|
|
35
|
-
DEFAULT_BASE_DELAY_MS
|
|
36
|
-
);
|
|
34
|
+
return /* @__PURE__ */ require_env_number.envAsNumber(require_env_rewire.getEnvValue("SOCKET_GITHUB_RETRY_BASE_DELAY_MS"), DEFAULT_BASE_DELAY_MS);
|
|
37
35
|
}
|
|
38
|
-
const GITHUB_RETRY_CONFIG =
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
baseDelayMs: resolveBaseDelayMs(),
|
|
44
|
-
// Maximum number of retry attempts (excluding initial request).
|
|
45
|
-
retries: 2
|
|
46
|
-
});
|
|
47
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
48
|
-
0 && (module.exports = {
|
|
49
|
-
DEFAULT_BASE_DELAY_MS,
|
|
50
|
-
GITHUB_RETRY_CONFIG,
|
|
51
|
-
resolveBaseDelayMs
|
|
36
|
+
const GITHUB_RETRY_CONFIG = require_primordials_object.ObjectFreeze({
|
|
37
|
+
__proto__: null,
|
|
38
|
+
backoffFactor: 2,
|
|
39
|
+
baseDelayMs: resolveBaseDelayMs(),
|
|
40
|
+
retries: 2
|
|
52
41
|
});
|
|
42
|
+
|
|
43
|
+
//#endregion
|
|
44
|
+
exports.DEFAULT_BASE_DELAY_MS = DEFAULT_BASE_DELAY_MS;
|
|
45
|
+
exports.GITHUB_RETRY_CONFIG = GITHUB_RETRY_CONFIG;
|
|
46
|
+
exports.resolveBaseDelayMs = resolveBaseDelayMs;
|
|
@@ -1,18 +1,2 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* Socket Lib - Built with
|
|
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 github_types_exports = {};
|
|
18
|
-
module.exports = __toCommonJS(github_types_exports);
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
@@ -1,209 +1,290 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* Socket Lib - Built with
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
-
var socket_btm_exports = {};
|
|
22
|
-
__export(socket_btm_exports, {
|
|
23
|
-
SOCKET_BTM_REPO: () => SOCKET_BTM_REPO,
|
|
24
|
-
detectLibc: () => detectLibc,
|
|
25
|
-
downloadSocketBtmRelease: () => downloadSocketBtmRelease,
|
|
26
|
-
getBinaryAssetName: () => getBinaryAssetName,
|
|
27
|
-
getBinaryName: () => getBinaryName,
|
|
28
|
-
getPlatformArch: () => getPlatformArch
|
|
29
|
-
});
|
|
30
|
-
module.exports = __toCommonJS(socket_btm_exports);
|
|
31
|
-
var import_platform = require("../constants/platform");
|
|
32
|
-
var import_github_asset_url = require("./github-asset-url");
|
|
33
|
-
var import_github_listing = require("./github-listing");
|
|
34
|
-
var import_github_downloads = require("./github-downloads");
|
|
35
|
-
var import_fs = require("../node/fs");
|
|
36
|
-
var import_error = require("../primordials/error");
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_primordials_error = require('../primordials/error.js');
|
|
5
|
+
const require_constants_platform = require('../constants/platform.js');
|
|
6
|
+
const require_node_fs = require('../node/fs.js');
|
|
7
|
+
const require_releases_github_asset_url = require('./github-asset-url.js');
|
|
8
|
+
const require_releases_github_listing = require('./github-listing.js');
|
|
9
|
+
const require_releases_github_downloads = require('./github-downloads.js');
|
|
10
|
+
|
|
11
|
+
//#region src/releases/socket-btm.ts
|
|
12
|
+
/**
|
|
13
|
+
* @file Socket-btm release download utilities.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Socket-btm GitHub repository configuration.
|
|
17
|
+
*/
|
|
37
18
|
const SOCKET_BTM_REPO = {
|
|
38
|
-
|
|
39
|
-
|
|
19
|
+
owner: "SocketDev",
|
|
20
|
+
repo: "socket-btm"
|
|
40
21
|
};
|
|
22
|
+
/**
|
|
23
|
+
* Map Node.js platform to socket-btm asset platform naming. Identity mapping:
|
|
24
|
+
* asset names use `process.platform` verbatim (`darwin`, `linux`, `win32`) to
|
|
25
|
+
* align with pnpm's pack-app, the `--os` / `supportedArchitectures.os` config
|
|
26
|
+
* keys, and the `@pnpm/exe.<os>-<arch>` package convention.
|
|
27
|
+
*/
|
|
41
28
|
const PLATFORM_MAP = {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
29
|
+
__proto__: null,
|
|
30
|
+
darwin: "darwin",
|
|
31
|
+
linux: "linux",
|
|
32
|
+
win32: "win32"
|
|
46
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* Map Node.js arch to socket-btm asset arch naming.
|
|
36
|
+
*/
|
|
47
37
|
const ARCH_MAP = {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
38
|
+
__proto__: null,
|
|
39
|
+
arm64: "arm64",
|
|
40
|
+
x64: "x64"
|
|
51
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* Detect the libc variant (musl or glibc) on Linux systems. Returns undefined
|
|
44
|
+
* for non-Linux platforms.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ;```typescript
|
|
48
|
+
* const libc = detectLibc()
|
|
49
|
+
* console.log(libc) // 'glibc', 'musl', or undefined
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* @returns 'musl', 'glibc', or undefined (for non-Linux)
|
|
53
|
+
*/
|
|
52
54
|
function detectLibc() {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
} catch {
|
|
71
|
-
return "glibc";
|
|
72
|
-
}
|
|
55
|
+
/* c8 ignore next 3 */
|
|
56
|
+
if (require_constants_platform.getPlatform() !== "linux") return;
|
|
57
|
+
/* c8 ignore start - Linux-only musl/glibc detection; tested on
|
|
58
|
+
Linux runners. macOS/Windows runners take the early-return above. */
|
|
59
|
+
try {
|
|
60
|
+
const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
|
|
61
|
+
for (const path of [
|
|
62
|
+
"/lib/ld-musl-x86_64.so.1",
|
|
63
|
+
"/lib/ld-musl-aarch64.so.1",
|
|
64
|
+
"/usr/lib/ld-musl-x86_64.so.1",
|
|
65
|
+
"/usr/lib/ld-musl-aarch64.so.1"
|
|
66
|
+
]) if (fs.existsSync(path)) return "musl";
|
|
67
|
+
return "glibc";
|
|
68
|
+
} catch {
|
|
69
|
+
return "glibc";
|
|
70
|
+
}
|
|
71
|
+
/* c8 ignore stop */
|
|
73
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Download a release from socket-btm.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ;```typescript
|
|
78
|
+
* const binPath = await downloadSocketBtmRelease('lief', {
|
|
79
|
+
* downloadDir: '/tmp/build/downloaded',
|
|
80
|
+
* })
|
|
81
|
+
* ```
|
|
82
|
+
*
|
|
83
|
+
* @param tool - Tool/package name for release matching (e.g., 'lief', 'curl')
|
|
84
|
+
* @param options - Download configuration.
|
|
85
|
+
*
|
|
86
|
+
* @returns Path to the downloaded file
|
|
87
|
+
*/
|
|
74
88
|
async function downloadSocketBtmRelease(tool, options) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
targetPlatform = (0, import_platform.getPlatform)()
|
|
141
|
-
} = binaryConfig;
|
|
142
|
-
const baseName = bin || tool;
|
|
143
|
-
const assetName = getBinaryAssetName(
|
|
144
|
-
baseName,
|
|
145
|
-
targetPlatform,
|
|
146
|
-
targetArch,
|
|
147
|
-
libc
|
|
148
|
-
);
|
|
149
|
-
const platformArch = getPlatformArch(targetPlatform, targetArch, libc);
|
|
150
|
-
const binaryName = getBinaryName(baseName, targetPlatform);
|
|
151
|
-
downloadConfig = {
|
|
152
|
-
owner: SOCKET_BTM_REPO.owner,
|
|
153
|
-
repo: SOCKET_BTM_REPO.repo,
|
|
154
|
-
...cwd !== void 0 && { cwd },
|
|
155
|
-
...downloadDir !== void 0 && { downloadDir },
|
|
156
|
-
toolName: tool,
|
|
157
|
-
platformArch,
|
|
158
|
-
binaryName,
|
|
159
|
-
assetName,
|
|
160
|
-
toolPrefix,
|
|
161
|
-
...tag !== void 0 && { tag },
|
|
162
|
-
quiet,
|
|
163
|
-
removeMacOSQuarantine
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
return await (0, import_github_downloads.downloadGitHubRelease)(downloadConfig);
|
|
89
|
+
const { cwd, downloadDir, quiet = false, tag } = {
|
|
90
|
+
__proto__: null,
|
|
91
|
+
...options ?? {}
|
|
92
|
+
};
|
|
93
|
+
const toolPrefix = `${tool}-`;
|
|
94
|
+
let downloadConfig;
|
|
95
|
+
if (options && "asset" in options) {
|
|
96
|
+
const { asset, output, removeMacOSQuarantine = false } = {
|
|
97
|
+
__proto__: null,
|
|
98
|
+
...options
|
|
99
|
+
};
|
|
100
|
+
let resolvedAsset;
|
|
101
|
+
let resolvedTag = tag;
|
|
102
|
+
if (typeof asset === "string" && !asset.includes("*")) resolvedAsset = asset;
|
|
103
|
+
else {
|
|
104
|
+
if (tag) throw new require_primordials_error.ErrorCtor("Cannot use asset pattern with explicit tag. Either provide exact asset name or omit tag.");
|
|
105
|
+
resolvedTag = await require_releases_github_listing.getLatestRelease(toolPrefix, SOCKET_BTM_REPO, { assetPattern: asset }) ?? void 0;
|
|
106
|
+
if (!resolvedTag) throw new require_primordials_error.ErrorCtor(`No ${tool} release with matching asset pattern found`);
|
|
107
|
+
const assetUrl = await require_releases_github_asset_url.getReleaseAssetUrl(resolvedTag, asset, SOCKET_BTM_REPO);
|
|
108
|
+
/* c8 ignore start */
|
|
109
|
+
if (!assetUrl) throw new require_primordials_error.ErrorCtor(`No matching asset found in release ${resolvedTag}`);
|
|
110
|
+
resolvedAsset = assetUrl.split("/").pop() || asset.toString();
|
|
111
|
+
}
|
|
112
|
+
/* c8 ignore next */
|
|
113
|
+
const outputName = output || resolvedAsset;
|
|
114
|
+
const platformArch = "assets";
|
|
115
|
+
downloadConfig = {
|
|
116
|
+
owner: SOCKET_BTM_REPO.owner,
|
|
117
|
+
repo: SOCKET_BTM_REPO.repo,
|
|
118
|
+
...cwd !== void 0 && { cwd },
|
|
119
|
+
...downloadDir !== void 0 && { downloadDir },
|
|
120
|
+
toolName: tool,
|
|
121
|
+
platformArch,
|
|
122
|
+
binaryName: outputName,
|
|
123
|
+
assetName: resolvedAsset,
|
|
124
|
+
toolPrefix,
|
|
125
|
+
...resolvedTag !== void 0 && { tag: resolvedTag },
|
|
126
|
+
quiet,
|
|
127
|
+
removeMacOSQuarantine
|
|
128
|
+
};
|
|
129
|
+
} else {
|
|
130
|
+
const { bin, libc = detectLibc(), removeMacOSQuarantine = true, targetArch = require_constants_platform.getArch(), targetPlatform = require_constants_platform.getPlatform() } = {
|
|
131
|
+
__proto__: null,
|
|
132
|
+
...options
|
|
133
|
+
};
|
|
134
|
+
const baseName = bin || tool;
|
|
135
|
+
const assetName = getBinaryAssetName(baseName, targetPlatform, targetArch, libc);
|
|
136
|
+
const platformArch = getPlatformArch(targetPlatform, targetArch, libc);
|
|
137
|
+
const binaryName = getBinaryName(baseName, targetPlatform);
|
|
138
|
+
downloadConfig = {
|
|
139
|
+
owner: SOCKET_BTM_REPO.owner,
|
|
140
|
+
repo: SOCKET_BTM_REPO.repo,
|
|
141
|
+
...cwd !== void 0 && { cwd },
|
|
142
|
+
...downloadDir !== void 0 && { downloadDir },
|
|
143
|
+
toolName: tool,
|
|
144
|
+
platformArch,
|
|
145
|
+
binaryName,
|
|
146
|
+
assetName,
|
|
147
|
+
toolPrefix,
|
|
148
|
+
...tag !== void 0 && { tag },
|
|
149
|
+
quiet,
|
|
150
|
+
removeMacOSQuarantine
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
return await require_releases_github_downloads.downloadGitHubRelease(downloadConfig);
|
|
167
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Get asset name for a socket-btm binary.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ;```typescript
|
|
160
|
+
* getBinaryAssetName('lief', 'linux', 'x64', 'musl')
|
|
161
|
+
* // 'lief-linux-x64-musl'
|
|
162
|
+
* ```
|
|
163
|
+
*
|
|
164
|
+
* @param binaryBaseName - Binary basename (e.g., 'binject', 'node')
|
|
165
|
+
* @param platform - Target platform.
|
|
166
|
+
* @param arch - Target architecture.
|
|
167
|
+
* @param libc - Linux libc variant (optional)
|
|
168
|
+
*
|
|
169
|
+
* @returns Asset name (e.g., 'binject-darwin-arm64', 'node-linux-x64-musl')
|
|
170
|
+
*/
|
|
168
171
|
function getBinaryAssetName(binaryBaseName, platform, arch, libc) {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
}
|
|
178
|
-
if (platform === "linux") {
|
|
179
|
-
return `${binaryBaseName}-linux-${mappedArch}${muslSuffix}${ext}`;
|
|
180
|
-
}
|
|
181
|
-
if (platform === "win32") {
|
|
182
|
-
return `${binaryBaseName}-win32-${mappedArch}${ext}`;
|
|
183
|
-
}
|
|
184
|
-
throw new import_error.ErrorCtor(`Unsupported platform: ${platform}`);
|
|
172
|
+
const mappedArch = ARCH_MAP[arch];
|
|
173
|
+
if (!mappedArch) throw new require_primordials_error.ErrorCtor(`Unsupported architecture: ${arch}`);
|
|
174
|
+
const muslSuffix = platform === "linux" && libc === "musl" ? "-musl" : "";
|
|
175
|
+
const ext = platform === "win32" ? ".exe" : "";
|
|
176
|
+
if (platform === "darwin") return `${binaryBaseName}-darwin-${mappedArch}${ext}`;
|
|
177
|
+
if (platform === "linux") return `${binaryBaseName}-linux-${mappedArch}${muslSuffix}${ext}`;
|
|
178
|
+
if (platform === "win32") return `${binaryBaseName}-win32-${mappedArch}${ext}`;
|
|
179
|
+
throw new require_primordials_error.ErrorCtor(`Unsupported platform: ${platform}`);
|
|
185
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Get binary filename for output.
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* ;```typescript
|
|
186
|
+
* getBinaryName('node', 'win32') // 'node.exe'
|
|
187
|
+
* getBinaryName('node', 'linux') // 'node'
|
|
188
|
+
* ```
|
|
189
|
+
*
|
|
190
|
+
* @param binaryBaseName - Binary basename (e.g., 'node', 'binject')
|
|
191
|
+
* @param platform - Target platform.
|
|
192
|
+
*
|
|
193
|
+
* @returns Binary filename (e.g., 'node', 'node.exe')
|
|
194
|
+
*/
|
|
186
195
|
function getBinaryName(binaryBaseName, platform) {
|
|
187
|
-
|
|
196
|
+
return platform === "win32" ? `${binaryBaseName}.exe` : binaryBaseName;
|
|
188
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* Lazily load the fs module to avoid Webpack errors. Uses non-'node:' prefixed
|
|
200
|
+
* require to prevent Webpack bundling issues.
|
|
201
|
+
*
|
|
202
|
+
* @private
|
|
203
|
+
*/
|
|
204
|
+
/**
|
|
205
|
+
* Get platform-arch identifier for directory structure and asset names.
|
|
206
|
+
*
|
|
207
|
+
* # Format: `<os>-<arch>[-<libc>]`
|
|
208
|
+
*
|
|
209
|
+
* The OS segment is `process.platform` verbatim: `darwin` / `linux` / `win32`.
|
|
210
|
+
* The arch segment is `process.arch` verbatim: `x64` / `arm64`. The optional
|
|
211
|
+
* libc suffix is `-musl` (Linux only; the glibc default is unsuffixed to match
|
|
212
|
+
* Node.js's own linuxstatic convention).
|
|
213
|
+
*
|
|
214
|
+
* # Why these specific conventions
|
|
215
|
+
*
|
|
216
|
+
* ## Why `win32`, not `win`
|
|
217
|
+
*
|
|
218
|
+
* `win32` is what `process.platform` returns on every Windows host. Every npm
|
|
219
|
+
* package whose install-time platform filter uses the standard `os` / `cpu` /
|
|
220
|
+
* `libc` manifest fields must match `process.platform` strings exactly (npm
|
|
221
|
+
* compares them verbatim — there's no shorthand layer). Using `win` internally
|
|
222
|
+
* here would have forced a translation every time we constructed an install
|
|
223
|
+
* filter or a target triple, and reviewers would have to remember "we
|
|
224
|
+
* abbreviate on disk but not in package filters." Since the two now match,
|
|
225
|
+
* there's no translation step to get wrong.
|
|
226
|
+
*
|
|
227
|
+
* Pnpm's pack-app (v11+) accepts `<os>-<arch>[-<libc>]` target strings and its
|
|
228
|
+
* shards are `@pnpm/exe.<os>-<arch>` (with `win32`, not `win` — see
|
|
229
|
+
* pnpm#11314). Our naming matches so asset names we emit can flow directly into
|
|
230
|
+
* pack-app's `--target` arg, `pnpm.app.targets` config, and
|
|
231
|
+
* sibling-package-name construction without a translation map.
|
|
232
|
+
*
|
|
233
|
+
* ## Why `-musl` is the suffix (and glibc is unsuffixed)
|
|
234
|
+
*
|
|
235
|
+
* Node.js's own linuxstatic tarballs historically used the unqualified `linux`
|
|
236
|
+
* for glibc and a separate download channel for musl. The pnpm ecosystem
|
|
237
|
+
* codified that as `linux-<arch>` (glibc, default) and `linux-<arch>-musl` (the
|
|
238
|
+
* libc outlier), matching the asymmetric reality of Linux distros — glibc is
|
|
239
|
+
* the majority case, musl is Alpine-and-similar. Adding `-glibc` for the
|
|
240
|
+
* default would be redundant noise in the name.
|
|
241
|
+
*
|
|
242
|
+
* ## Why libc is only appended for Linux
|
|
243
|
+
*
|
|
244
|
+
* MacOS and Windows have exactly one system libc each (Apple libSystem,
|
|
245
|
+
* Microsoft UCRT). A hypothetical `darwin-arm64-libsystem` conveys no
|
|
246
|
+
* information. Node.js, npm, and pnpm all treat libc as a Linux-only axis; we
|
|
247
|
+
* follow the same convention so callers don't have to special- case
|
|
248
|
+
* `'darwin-arm64'.startsWith('darwin-arm64')` style matches.
|
|
249
|
+
*
|
|
250
|
+
* ## Why this function exists at all (vs. inlining)
|
|
251
|
+
*
|
|
252
|
+
* Two upstream APIs that socket-btm consumers end up calling — the npm manifest
|
|
253
|
+
* filter (`os`/`cpu`/`libc`) and pnpm's pack-app `--target` — both need the
|
|
254
|
+
* exact same triple format. Centralizing the construction here means a future
|
|
255
|
+
* schema change (e.g. Node introducing `riscv64`) gets one edit, and the error
|
|
256
|
+
* message for an unsupported platform is uniform across downloaders, pack-app
|
|
257
|
+
* invocations, and the `@socketbin/*` resolver logic.
|
|
258
|
+
*
|
|
259
|
+
* @example
|
|
260
|
+
* ;```typescript
|
|
261
|
+
* getPlatformArch('linux', 'x64', 'musl') // 'linux-x64-musl'
|
|
262
|
+
* getPlatformArch('darwin', 'arm64') // 'darwin-arm64'
|
|
263
|
+
* getPlatformArch('win32', 'x64') // 'win32-x64'
|
|
264
|
+
* getPlatformArch('darwin', 'x64', 'musl') // 'darwin-x64' — libc ignored
|
|
265
|
+
* ```
|
|
266
|
+
*
|
|
267
|
+
* @param platform - Target platform.
|
|
268
|
+
* @param arch - Target architecture.
|
|
269
|
+
* @param libc - Linux libc variant (optional; non-linux platforms ignore)
|
|
270
|
+
*
|
|
271
|
+
* @returns Platform-arch identifier (e.g., 'darwin-arm64', 'linux-x64-musl',
|
|
272
|
+
* 'win32-x64')
|
|
273
|
+
*/
|
|
189
274
|
function getPlatformArch(platform, arch, libc) {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
}
|
|
198
|
-
const muslSuffix = platform === "linux" && libc === "musl" ? "-musl" : "";
|
|
199
|
-
return `${mappedPlatform}-${mappedArch}${muslSuffix}`;
|
|
275
|
+
/* c8 ignore start */
|
|
276
|
+
const mappedPlatform = PLATFORM_MAP[platform];
|
|
277
|
+
if (!mappedPlatform) throw new require_primordials_error.ErrorCtor(`Unsupported platform: ${platform}`);
|
|
278
|
+
const mappedArch = ARCH_MAP[arch];
|
|
279
|
+
if (!mappedArch) throw new require_primordials_error.ErrorCtor(`Unsupported architecture: ${arch}`);
|
|
280
|
+
return `${mappedPlatform}-${mappedArch}${platform === "linux" && libc === "musl" ? "-musl" : ""}`;
|
|
281
|
+
/* c8 ignore stop */
|
|
200
282
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
});
|
|
283
|
+
|
|
284
|
+
//#endregion
|
|
285
|
+
exports.SOCKET_BTM_REPO = SOCKET_BTM_REPO;
|
|
286
|
+
exports.detectLibc = detectLibc;
|
|
287
|
+
exports.downloadSocketBtmRelease = downloadSocketBtmRelease;
|
|
288
|
+
exports.getBinaryAssetName = getBinaryAssetName;
|
|
289
|
+
exports.getBinaryName = getBinaryName;
|
|
290
|
+
exports.getPlatformArch = getPlatformArch;
|