@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
package/dist/dlx/package.js
CHANGED
|
@@ -1,254 +1,251 @@
|
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
var import_binary_resolution2 = require("./binary-resolution");
|
|
64
|
-
var import_firewall2 = require("./firewall");
|
|
65
|
-
var import_spec2 = require("./spec");
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_runtime = require('../_virtual/_rolldown/runtime.js');
|
|
5
|
+
const require_primordials_error = require('../primordials/error.js');
|
|
6
|
+
const require_constants_platform = require('../constants/platform.js');
|
|
7
|
+
const require_primordials_regexp = require('../primordials/regexp.js');
|
|
8
|
+
const require_paths_normalize = require('../paths/normalize.js');
|
|
9
|
+
const require_node_fs = require('../node/fs.js');
|
|
10
|
+
const require_node_path = require('../node/path.js');
|
|
11
|
+
const require_errors_predicates = require('../errors/predicates.js');
|
|
12
|
+
const require_process_spawn_child = require('../process/spawn/child.js');
|
|
13
|
+
const require_paths_socket = require('../paths/socket.js');
|
|
14
|
+
const require_fs_safe = require('../fs/safe.js');
|
|
15
|
+
const require_dlx__internal = require('./_internal.js');
|
|
16
|
+
const require_process_lock_instance = require('../process/lock-instance.js');
|
|
17
|
+
const require_dlx_cache = require('./cache.js');
|
|
18
|
+
const require_dlx_binary_resolution = require('./binary-resolution.js');
|
|
19
|
+
const require_dlx_firewall = require('./firewall.js');
|
|
20
|
+
const require_dlx_spec = require('./spec.js');
|
|
21
|
+
let src_external__npmcli_arborist = require("../external/@npmcli/arborist");
|
|
22
|
+
src_external__npmcli_arborist = require_runtime.__toESM(src_external__npmcli_arborist);
|
|
23
|
+
|
|
24
|
+
//#region src/dlx/package.ts
|
|
25
|
+
/**
|
|
26
|
+
* @file DLX package execution — install and execute npm packages. This module
|
|
27
|
+
* provides functionality to install and execute npm packages in the
|
|
28
|
+
* ~/.socket/_dlx directory, similar to npx but with Socket's own cache. Uses
|
|
29
|
+
* content-addressed storage like npm's _npx:
|
|
30
|
+
*
|
|
31
|
+
* - Hash is generated from package spec (name@version)
|
|
32
|
+
* - Each unique spec gets its own directory: ~/.socket/_dlx/<hash>/
|
|
33
|
+
* - Allows caching multiple versions of the same package Concurrency
|
|
34
|
+
* protection:
|
|
35
|
+
* - Uses process-lock to prevent concurrent installation corruption
|
|
36
|
+
* - Lock file created at ~/.socket/_dlx/<hash>/concurrency.lock
|
|
37
|
+
* - Uses npm npx's concurrency.lock naming convention (5s stale, 2s touching)
|
|
38
|
+
* - Prevents multiple processes from corrupting the same package installation
|
|
39
|
+
* Version range handling:
|
|
40
|
+
* - Exact versions (1.0.0) use cache if available
|
|
41
|
+
* - Range versions (^1.0.0, ~1.0.0) auto-force to get latest within range
|
|
42
|
+
* - User can override with explicit force: false Key difference from
|
|
43
|
+
* dlx/binary.ts:
|
|
44
|
+
* - dlx/binary.ts: Downloads standalone binaries from URLs
|
|
45
|
+
* - dlx/package.ts: Installs npm packages from registries Implementation:
|
|
46
|
+
* - Uses Arborist for package installation (like npx, no npm CLI required)
|
|
47
|
+
* - Split into downloadPackage() and executePackage() for flexibility
|
|
48
|
+
* - dlxPackage() combines both for convenience Module shape: this file holds
|
|
49
|
+
* the three async orchestrators (`dlxPackage`, `downloadPackage`,
|
|
50
|
+
* `ensurePackageInstalled`) and the synchronous `executePackage`. The
|
|
51
|
+
* supporting surface lives in sibling leaves and is re-exported here so
|
|
52
|
+
* existing `dlx/package` importers keep working unchanged:
|
|
53
|
+
* - types — `./types`
|
|
54
|
+
* - PURL + firewall — `./firewall`
|
|
55
|
+
* - spec parsing — `./spec`
|
|
56
|
+
* - binary resolution — `./binary-resolution`
|
|
57
|
+
* - lazy `node:fs` / `node:path` + LRU cache — `./_internal`
|
|
58
|
+
*/
|
|
59
|
+
/**
|
|
60
|
+
* Regex to check if a version string contains range operators. Matches any
|
|
61
|
+
* version with range operators: ~, ^, >, <, =, x, X, *, spaces, or ||.
|
|
62
|
+
*/
|
|
66
63
|
const rangeOperatorsRegExp = /[~^><=xX* ]|\|\|/;
|
|
64
|
+
/**
|
|
65
|
+
* Execute a package via DLX - install if needed and run its binary.
|
|
66
|
+
*
|
|
67
|
+
* This is the Socket equivalent of npx/pnpm dlx/yarn dlx, but using our own
|
|
68
|
+
* cache directory (~/.socket/_dlx) and installation logic.
|
|
69
|
+
*
|
|
70
|
+
* Auto-forces reinstall for version ranges to get latest within range.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ;```typescript
|
|
74
|
+
* // Download and execute cdxgen
|
|
75
|
+
* const result = await dlxPackage(['--version'], {
|
|
76
|
+
* package: '@cyclonedx/cdxgen@10.0.0',
|
|
77
|
+
* })
|
|
78
|
+
* await result.spawnPromise
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
67
81
|
async function dlxPackage(args, options, spawnExtra) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
);
|
|
75
|
-
return {
|
|
76
|
-
...downloadResult,
|
|
77
|
-
spawnPromise
|
|
78
|
-
};
|
|
82
|
+
const downloadResult = await downloadPackage(options);
|
|
83
|
+
const spawnPromise = executePackage(downloadResult.binaryPath, args, options.spawnOptions, spawnExtra);
|
|
84
|
+
return {
|
|
85
|
+
...downloadResult,
|
|
86
|
+
spawnPromise
|
|
87
|
+
};
|
|
79
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Download and install a package without executing it. This is useful for
|
|
91
|
+
* self-update or when you need the package files but don't want to run the
|
|
92
|
+
* binary immediately.
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ;```typescript
|
|
96
|
+
* // Install @socketsecurity/cli without running it
|
|
97
|
+
* const result = await downloadPackage({
|
|
98
|
+
* package: '@socketsecurity/cli@1.2.0',
|
|
99
|
+
* force: true,
|
|
100
|
+
* })
|
|
101
|
+
* console.log('Installed to:', result.packageDir)
|
|
102
|
+
* console.log('Binary at:', result.binaryPath)
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
80
105
|
async function downloadPackage(options) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
force,
|
|
101
|
-
{ hash, installRoot, lockfile }
|
|
102
|
-
);
|
|
103
|
-
const binaryPath = (0, import_binary_resolution.findBinaryPath)(packageDir, packageName, binaryName);
|
|
104
|
-
(0, import_binary_resolution.makePackageBinsExecutable)(packageDir, packageName);
|
|
105
|
-
return {
|
|
106
|
-
binaryPath,
|
|
107
|
-
installed,
|
|
108
|
-
packageDir
|
|
109
|
-
};
|
|
106
|
+
const { binaryName, force: userForce, hash, installRoot, lockfile, package: packageSpec, yes } = {
|
|
107
|
+
__proto__: null,
|
|
108
|
+
...options
|
|
109
|
+
};
|
|
110
|
+
const { name: packageName, version: packageVersion } = require_dlx_spec.parsePackageSpec(packageSpec);
|
|
111
|
+
const isVersionRange = packageVersion !== void 0 && require_primordials_regexp.RegExpPrototypeTest(rangeOperatorsRegExp, packageVersion);
|
|
112
|
+
const force = userForce !== void 0 ? userForce : yes === true ? true : isVersionRange;
|
|
113
|
+
const { installed, packageDir } = await ensurePackageInstalled(packageName, packageVersion ? `${packageName}@${packageVersion}` : packageName, force, {
|
|
114
|
+
hash,
|
|
115
|
+
installRoot,
|
|
116
|
+
lockfile
|
|
117
|
+
});
|
|
118
|
+
const binaryPath = require_dlx_binary_resolution.findBinaryPath(packageDir, packageName, binaryName);
|
|
119
|
+
require_dlx_binary_resolution.makePackageBinsExecutable(packageDir, packageName);
|
|
120
|
+
return {
|
|
121
|
+
binaryPath,
|
|
122
|
+
installed,
|
|
123
|
+
packageDir
|
|
124
|
+
};
|
|
110
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Install package to ~/.socket/_dlx/<hash>/ if not already installed. Uses
|
|
128
|
+
* pacote for installation (no npm CLI required). Protected by process lock to
|
|
129
|
+
* prevent concurrent installation corruption.
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```typescript
|
|
133
|
+
* const { installed, packageDir } = await ensurePackageInstalled(
|
|
134
|
+
* 'prettier',
|
|
135
|
+
* 'prettier@3.0.0',
|
|
136
|
+
* false,
|
|
137
|
+
* )
|
|
138
|
+
* console.log(`Installed: ${installed}, dir: ${packageDir}`)
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
111
141
|
async function ensurePackageInstalled(packageName, packageSpec, force, install) {
|
|
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
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
ignoreScripts: true,
|
|
185
|
-
// Security: Enable binary links (needed for dlx to execute the package binary).
|
|
186
|
-
binLinks: true,
|
|
187
|
-
// Suppress funding messages (unneeded for ephemeral dlx installs).
|
|
188
|
-
fund: false,
|
|
189
|
-
// Skip audit (unneeded for ephemeral dlx installs).
|
|
190
|
-
audit: false,
|
|
191
|
-
// Suppress output (unneeded for ephemeral dlx installs).
|
|
192
|
-
silent: true
|
|
193
|
-
});
|
|
194
|
-
await arb.buildIdealTree({ add: [packageSpec] });
|
|
195
|
-
await (0, import_firewall.checkFirewallPurls)(arb, packageName);
|
|
196
|
-
await arb.reify({ save: true });
|
|
197
|
-
} catch (e) {
|
|
198
|
-
if ((0, import_predicates.isError)(e) && e.message.startsWith("Socket Firewall blocked")) {
|
|
199
|
-
throw e;
|
|
200
|
-
}
|
|
201
|
-
const code = e?.code;
|
|
202
|
-
if (code === "E404" || code === "ETARGET") {
|
|
203
|
-
throw new import_error.ErrorCtor(
|
|
204
|
-
`Package not found: ${packageSpec}
|
|
205
|
-
Verify the package exists on npm registry and check the version.
|
|
206
|
-
Visit https://www.npmjs.com/package/${packageName} to see available versions.`,
|
|
207
|
-
{ cause: e }
|
|
208
|
-
);
|
|
209
|
-
}
|
|
210
|
-
if (code === "ENOTFOUND" || code === "ETIMEDOUT" || code === "EAI_AGAIN") {
|
|
211
|
-
throw new import_error.ErrorCtor(
|
|
212
|
-
`Network error installing ${packageSpec}
|
|
213
|
-
Check your internet connection and try again.`,
|
|
214
|
-
{ cause: e }
|
|
215
|
-
);
|
|
216
|
-
}
|
|
217
|
-
throw new import_error.ErrorCtor(
|
|
218
|
-
`Failed to install package: ${packageSpec}
|
|
219
|
-
Destination: ${installedDir}
|
|
220
|
-
Check npm registry connectivity or package name.`,
|
|
221
|
-
{ cause: e }
|
|
222
|
-
);
|
|
223
|
-
}
|
|
224
|
-
return { installed: true, packageDir };
|
|
225
|
-
},
|
|
226
|
-
{
|
|
227
|
-
// Align with npm npx locking strategy.
|
|
228
|
-
staleMs: 5e3,
|
|
229
|
-
touchIntervalMs: 2e3
|
|
230
|
-
}
|
|
231
|
-
);
|
|
142
|
+
const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
|
|
143
|
+
const path = /* @__PURE__ */ require_node_path.getNodePath();
|
|
144
|
+
const packageDir = /* @__PURE__ */ require_paths_normalize.normalizePath(install?.installRoot ?? path.join(require_paths_socket.getSocketDlxDir(), require_dlx_cache.generateCacheKey(packageSpec)));
|
|
145
|
+
const installedDir = /* @__PURE__ */ require_paths_normalize.normalizePath(path.join(packageDir, "node_modules", packageName));
|
|
146
|
+
try {
|
|
147
|
+
await require_fs_safe.safeMkdir(packageDir);
|
|
148
|
+
} catch (e) {
|
|
149
|
+
const code = e.code;
|
|
150
|
+
if (code === "EACCES" || code === "EPERM") throw new require_primordials_error.ErrorCtor(`Permission denied creating package directory: ${packageDir}\nPlease check directory permissions or run with appropriate access.`, { cause: e });
|
|
151
|
+
if (code === "EROFS") throw new require_primordials_error.ErrorCtor(`Cannot create package directory on read-only filesystem: ${packageDir}\nEnsure the filesystem is writable or set SOCKET_DLX_DIR to a writable location.`, { cause: e });
|
|
152
|
+
throw new require_primordials_error.ErrorCtor(`Failed to create package directory: ${packageDir}`, { cause: e });
|
|
153
|
+
}
|
|
154
|
+
const lockPath = path.join(packageDir, "concurrency.lock");
|
|
155
|
+
return await require_process_lock_instance.processLock.withLock(lockPath, async () => {
|
|
156
|
+
if (!force && fs.existsSync(installedDir)) {
|
|
157
|
+
const pkgJsonPath = path.join(installedDir, "package.json");
|
|
158
|
+
if (fs.existsSync(pkgJsonPath)) return {
|
|
159
|
+
installed: false,
|
|
160
|
+
packageDir
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
if (install?.lockfile !== void 0) {
|
|
164
|
+
const spec = install.lockfile;
|
|
165
|
+
const lockDest = path.join(packageDir, "package-lock.json");
|
|
166
|
+
let isContent;
|
|
167
|
+
let value;
|
|
168
|
+
if (typeof spec === "string") {
|
|
169
|
+
isContent = spec.trimStart().startsWith("{");
|
|
170
|
+
value = spec;
|
|
171
|
+
} else {
|
|
172
|
+
isContent = spec.type === "content";
|
|
173
|
+
value = spec.value;
|
|
174
|
+
}
|
|
175
|
+
if (isContent) fs.writeFileSync(lockDest, value, "utf8");
|
|
176
|
+
else fs.copyFileSync(value, lockDest);
|
|
177
|
+
fs.writeFileSync(path.join(packageDir, ".npmrc"), "ignore-scripts=true\naudit=false\nfund=false\nsave=false\n", "utf8");
|
|
178
|
+
}
|
|
179
|
+
try {
|
|
180
|
+
/* c8 ignore start */
|
|
181
|
+
const arb = new src_external__npmcli_arborist.default({
|
|
182
|
+
path: packageDir,
|
|
183
|
+
/* c8 ignore stop */
|
|
184
|
+
cache: require_paths_socket.getSocketCacacheDir(),
|
|
185
|
+
omit: ["dev"],
|
|
186
|
+
ignoreScripts: true,
|
|
187
|
+
binLinks: true,
|
|
188
|
+
fund: false,
|
|
189
|
+
audit: false,
|
|
190
|
+
silent: true
|
|
191
|
+
});
|
|
192
|
+
/* c8 ignore next - External Arborist call */
|
|
193
|
+
await arb.buildIdealTree({ add: [packageSpec] });
|
|
194
|
+
/* c8 ignore next - External API call */
|
|
195
|
+
await require_dlx_firewall.checkFirewallPurls(arb, packageName);
|
|
196
|
+
/* c8 ignore next - External Arborist call */
|
|
197
|
+
await arb.reify({ save: true });
|
|
198
|
+
} catch (e) {
|
|
199
|
+
if (require_errors_predicates.isError(e) && e.message.startsWith("Socket Firewall blocked")) throw e;
|
|
200
|
+
const code = e?.code;
|
|
201
|
+
if (code === "E404" || code === "ETARGET") throw new require_primordials_error.ErrorCtor(`Package not found: ${packageSpec}\nVerify the package exists on npm registry and check the version.
|
|
202
|
+
Visit https://www.npmjs.com/package/${packageName} to see available versions.`, { cause: e });
|
|
203
|
+
if (code === "ENOTFOUND" || code === "ETIMEDOUT" || code === "EAI_AGAIN") throw new require_primordials_error.ErrorCtor(`Network error installing ${packageSpec}\nCheck your internet connection and try again.`, { cause: e });
|
|
204
|
+
throw new require_primordials_error.ErrorCtor(`Failed to install package: ${packageSpec}\nDestination: ${installedDir}\nCheck npm registry connectivity or package name.`, { cause: e });
|
|
205
|
+
}
|
|
206
|
+
return {
|
|
207
|
+
installed: true,
|
|
208
|
+
packageDir
|
|
209
|
+
};
|
|
210
|
+
}, {
|
|
211
|
+
staleMs: 5e3,
|
|
212
|
+
touchIntervalMs: 2e3
|
|
213
|
+
});
|
|
232
214
|
}
|
|
215
|
+
/**
|
|
216
|
+
* Execute a package's binary with cross-platform shell handling. The package
|
|
217
|
+
* must already be installed (use downloadPackage first).
|
|
218
|
+
*
|
|
219
|
+
* On Windows, script files (.bat, .cmd, .ps1) require shell: true. Matches
|
|
220
|
+
* npm/npx execution behavior.
|
|
221
|
+
*
|
|
222
|
+
* @example
|
|
223
|
+
* ;```typescript
|
|
224
|
+
* // Execute an already-installed package
|
|
225
|
+
* const downloaded = await downloadPackage({ package: 'cowsay@1.5.0' })
|
|
226
|
+
* const result = await executePackage(
|
|
227
|
+
* downloaded.binaryPath,
|
|
228
|
+
* ['Hello World'],
|
|
229
|
+
* { stdio: 'inherit' },
|
|
230
|
+
* )
|
|
231
|
+
* ```
|
|
232
|
+
*/
|
|
233
233
|
function executePackage(binaryPath, args, spawnOptions, spawnExtra) {
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
} : spawnOptions;
|
|
239
|
-
return (0, import_child.spawn)(binaryPath, args, finalOptions, spawnExtra);
|
|
234
|
+
return require_process_spawn_child.spawn(binaryPath, args, require_constants_platform.WIN32 && /\.(?:bat|cmd|ps1)$/i.test(binaryPath) ? {
|
|
235
|
+
...spawnOptions,
|
|
236
|
+
shell: true
|
|
237
|
+
} : spawnOptions, spawnExtra);
|
|
240
238
|
}
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
});
|
|
239
|
+
|
|
240
|
+
//#endregion
|
|
241
|
+
exports.binaryPathCacheSet = require_dlx__internal.binaryPathCacheSet;
|
|
242
|
+
exports.checkFirewallPurls = require_dlx_firewall.checkFirewallPurls;
|
|
243
|
+
exports.dlxPackage = dlxPackage;
|
|
244
|
+
exports.downloadPackage = downloadPackage;
|
|
245
|
+
exports.ensurePackageInstalled = ensurePackageInstalled;
|
|
246
|
+
exports.executePackage = executePackage;
|
|
247
|
+
exports.findBinaryPath = require_dlx_binary_resolution.findBinaryPath;
|
|
248
|
+
exports.makePackageBinsExecutable = require_dlx_binary_resolution.makePackageBinsExecutable;
|
|
249
|
+
exports.npmPurl = require_dlx_firewall.npmPurl;
|
|
250
|
+
exports.parsePackageSpec = require_dlx_spec.parsePackageSpec;
|
|
251
|
+
exports.resolveBinaryPath = require_dlx_binary_resolution.resolveBinaryPath;
|