@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/secrets/windows.js
CHANGED
|
@@ -1,318 +1,260 @@
|
|
|
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
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
31
|
-
var windows_exports = {};
|
|
32
|
-
__export(windows_exports, {
|
|
33
|
-
buildTarget: () => buildTarget,
|
|
34
|
-
deleteWindows: () => deleteWindows,
|
|
35
|
-
deleteWindowsSync: () => deleteWindowsSync,
|
|
36
|
-
getDpapiFilePath: () => getDpapiFilePath,
|
|
37
|
-
isWindowsBackendAvailable: () => isWindowsBackendAvailable,
|
|
38
|
-
quotePs: () => quotePs,
|
|
39
|
-
readDpapi: () => readDpapi,
|
|
40
|
-
readDpapiSync: () => readDpapiSync,
|
|
41
|
-
readWindows: () => readWindows,
|
|
42
|
-
readWindowsSync: () => readWindowsSync,
|
|
43
|
-
runPsAsync: () => runPsAsync,
|
|
44
|
-
runPsSync: () => runPsSync,
|
|
45
|
-
validateKeychainComponent: () => validateKeychainComponent,
|
|
46
|
-
writeDpapi: () => writeDpapi,
|
|
47
|
-
writeDpapiSync: () => writeDpapiSync,
|
|
48
|
-
writeWindows: () => writeWindows,
|
|
49
|
-
writeWindowsSync: () => writeWindowsSync
|
|
50
|
-
});
|
|
51
|
-
module.exports = __toCommonJS(windows_exports);
|
|
52
|
-
var import_node_child_process = require("node:child_process");
|
|
53
|
-
var import_node_fs = require("node:fs");
|
|
54
|
-
var import_node_os = require("node:os");
|
|
55
|
-
var import_node_path = __toESM(require("node:path"));
|
|
56
|
-
var import_node_process = __toESM(require("node:process"));
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_runtime = require('../_virtual/_rolldown/runtime.js');
|
|
5
|
+
let node_fs = require("node:fs");
|
|
6
|
+
let node_path = require("node:path");
|
|
7
|
+
node_path = require_runtime.__toESM(node_path);
|
|
8
|
+
let node_os = require("node:os");
|
|
9
|
+
let node_process = require("node:process");
|
|
10
|
+
node_process = require_runtime.__toESM(node_process);
|
|
11
|
+
let node_child_process = require("node:child_process");
|
|
12
|
+
|
|
13
|
+
//#region src/secrets/windows.ts
|
|
14
|
+
/**
|
|
15
|
+
* @file Windows backend via PowerShell CredentialManager module, with a
|
|
16
|
+
* DPAPI-encrypted file fallback. Two paths, tried in order:
|
|
17
|
+
*
|
|
18
|
+
* 1. CredentialManager PowerShell module (`New-StoredCredential` /
|
|
19
|
+
* `Get-StoredCredential` / `Remove-StoredCredential`). The cleanest path —
|
|
20
|
+
* stored credentials live in the Windows Credential Manager, the same
|
|
21
|
+
* place `cmdkey` writes to. Requires the module to be installed
|
|
22
|
+
* (`Install-Module CredentialManager -Scope CurrentUser`).
|
|
23
|
+
* 2. DPAPI-encrypted file under `%APPDATA%\<service>\<account>.enc`. Used when
|
|
24
|
+
* the CredentialManager module isn't available.
|
|
25
|
+
* `System.Security.Cryptography.ProtectedData` encrypts under the
|
|
26
|
+
* current-user machine key — readable only by this user on this machine,
|
|
27
|
+
* never plaintext. The target name composed for CredentialManager is
|
|
28
|
+
* `service:account` (matching `cmdkey /generic:<target>` convention).
|
|
29
|
+
*/
|
|
57
30
|
const POWERSHELL_BIN = "powershell";
|
|
58
31
|
function buildTarget(service, account) {
|
|
59
|
-
|
|
32
|
+
return `${service}:${account}`;
|
|
60
33
|
}
|
|
61
34
|
async function deleteWindows(service, account) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
35
|
+
const target = buildTarget(service, account);
|
|
36
|
+
let removedAny = false;
|
|
37
|
+
if ((await runPsAsync(`
|
|
65
38
|
try { Remove-StoredCredential -Target ${quotePs(target)}; exit 0 }
|
|
66
39
|
catch { exit 1 }
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const { rmSync } = await import("node:fs");
|
|
76
|
-
rmSync(filePath, { force: true });
|
|
77
|
-
removedAny = true;
|
|
78
|
-
} catch {
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return removedAny ? "removed" : "absent";
|
|
40
|
+
`)).status === 0) removedAny = true;
|
|
41
|
+
const filePath = getDpapiFilePath(service, account);
|
|
42
|
+
if ((0, node_fs.existsSync)(filePath)) try {
|
|
43
|
+
const { rmSync } = await import("node:fs");
|
|
44
|
+
rmSync(filePath, { force: true });
|
|
45
|
+
removedAny = true;
|
|
46
|
+
} catch {}
|
|
47
|
+
return removedAny ? "removed" : "absent";
|
|
82
48
|
}
|
|
83
49
|
function deleteWindowsSync(service, account) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
50
|
+
const target = buildTarget(service, account);
|
|
51
|
+
let removedAny = false;
|
|
52
|
+
if (runPsSync(`
|
|
87
53
|
try { Remove-StoredCredential -Target ${quotePs(target)}; exit 0 }
|
|
88
54
|
catch { exit 1 }
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
try {
|
|
97
|
-
const fsMod = require("node:fs");
|
|
98
|
-
fsMod.rmSync(filePath, { force: true });
|
|
99
|
-
removedAny = true;
|
|
100
|
-
} catch {
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return removedAny ? "removed" : "absent";
|
|
55
|
+
`).status === 0) removedAny = true;
|
|
56
|
+
const filePath = getDpapiFilePath(service, account);
|
|
57
|
+
if ((0, node_fs.existsSync)(filePath)) try {
|
|
58
|
+
require("node:fs").rmSync(filePath, { force: true });
|
|
59
|
+
removedAny = true;
|
|
60
|
+
} catch {}
|
|
61
|
+
return removedAny ? "removed" : "absent";
|
|
104
62
|
}
|
|
105
63
|
function getDpapiFilePath(service, account) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
64
|
+
validateKeychainComponent(service, "service");
|
|
65
|
+
validateKeychainComponent(account, "account");
|
|
66
|
+
const appData = node_process.default.env["APPDATA"] ?? node_path.default.join((0, node_os.homedir)(), "AppData", "Roaming");
|
|
67
|
+
return node_path.default.join(appData, service, `${account}.enc`);
|
|
110
68
|
}
|
|
111
69
|
function isWindowsBackendAvailable() {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
70
|
+
return (0, node_child_process.spawnSync)(POWERSHELL_BIN, [
|
|
71
|
+
"-NoProfile",
|
|
72
|
+
"-Command",
|
|
73
|
+
"exit 0"
|
|
74
|
+
], { stdio: "ignore" }).status === 0;
|
|
116
75
|
}
|
|
117
76
|
function quotePs(value) {
|
|
118
|
-
|
|
77
|
+
return `'${value.replace(/'/g, "''")}'`;
|
|
119
78
|
}
|
|
120
79
|
async function readDpapi(filePath) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
124
|
-
const script = `
|
|
80
|
+
if (!(0, node_fs.existsSync)(filePath)) return;
|
|
81
|
+
const r = await runPsAsync(`
|
|
125
82
|
Add-Type -AssemblyName System.Security
|
|
126
83
|
$bytes = [Convert]::FromBase64String((Get-Content -Raw ${quotePs(filePath)}))
|
|
127
84
|
$plain = [System.Security.Cryptography.ProtectedData]::Unprotect($bytes, $null, 'CurrentUser')
|
|
128
85
|
[System.Text.Encoding]::UTF8.GetString($plain)
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
return void 0;
|
|
133
|
-
}
|
|
134
|
-
const out = r.stdout.trim();
|
|
135
|
-
return out || void 0;
|
|
86
|
+
`);
|
|
87
|
+
if (r.status !== 0) return;
|
|
88
|
+
return r.stdout.trim() || void 0;
|
|
136
89
|
}
|
|
137
90
|
function readDpapiSync(filePath) {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
141
|
-
const script = `
|
|
91
|
+
if (!(0, node_fs.existsSync)(filePath)) return;
|
|
92
|
+
const r = runPsSync(`
|
|
142
93
|
Add-Type -AssemblyName System.Security
|
|
143
94
|
$bytes = [Convert]::FromBase64String((Get-Content -Raw ${quotePs(filePath)}))
|
|
144
95
|
$plain = [System.Security.Cryptography.ProtectedData]::Unprotect($bytes, $null, 'CurrentUser')
|
|
145
96
|
[System.Text.Encoding]::UTF8.GetString($plain)
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
return void 0;
|
|
150
|
-
}
|
|
151
|
-
const out = r.stdout.trim();
|
|
152
|
-
return out || void 0;
|
|
97
|
+
`);
|
|
98
|
+
if (r.status !== 0) return;
|
|
99
|
+
return r.stdout.trim() || void 0;
|
|
153
100
|
}
|
|
154
101
|
async function readWindows(service, account) {
|
|
155
|
-
|
|
156
|
-
const script = `
|
|
102
|
+
const ps = await runPsAsync(`
|
|
157
103
|
try {
|
|
158
|
-
(Get-StoredCredential -Target ${quotePs(
|
|
104
|
+
(Get-StoredCredential -Target ${quotePs(buildTarget(service, account))}).Password |
|
|
159
105
|
ConvertFrom-SecureString -AsPlainText
|
|
160
106
|
} catch { exit 1 }
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
return readDpapi(getDpapiFilePath(service, account));
|
|
107
|
+
`);
|
|
108
|
+
if (ps.status === 0) {
|
|
109
|
+
const out = ps.stdout.trim();
|
|
110
|
+
if (out) return out;
|
|
111
|
+
}
|
|
112
|
+
return readDpapi(getDpapiFilePath(service, account));
|
|
170
113
|
}
|
|
171
114
|
function readWindowsSync(service, account) {
|
|
172
|
-
|
|
173
|
-
const script = `
|
|
115
|
+
const ps = runPsSync(`
|
|
174
116
|
try {
|
|
175
|
-
(Get-StoredCredential -Target ${quotePs(
|
|
117
|
+
(Get-StoredCredential -Target ${quotePs(buildTarget(service, account))}).Password |
|
|
176
118
|
ConvertFrom-SecureString -AsPlainText
|
|
177
119
|
} catch { exit 1 }
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
return readDpapiSync(getDpapiFilePath(service, account));
|
|
120
|
+
`);
|
|
121
|
+
if (ps.status === 0) {
|
|
122
|
+
const out = ps.stdout.trim();
|
|
123
|
+
if (out) return out;
|
|
124
|
+
}
|
|
125
|
+
return readDpapiSync(getDpapiFilePath(service, account));
|
|
187
126
|
}
|
|
188
127
|
function runPsAsync(script, input) {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
128
|
+
return new Promise((resolve) => {
|
|
129
|
+
const child = (0, node_child_process.spawn)(POWERSHELL_BIN, [
|
|
130
|
+
"-NoProfile",
|
|
131
|
+
"-Command",
|
|
132
|
+
script
|
|
133
|
+
], { stdio: [
|
|
134
|
+
"pipe",
|
|
135
|
+
"pipe",
|
|
136
|
+
"pipe"
|
|
137
|
+
] });
|
|
138
|
+
let stdout = "";
|
|
139
|
+
let stderr = "";
|
|
140
|
+
child.stdout.setEncoding("utf8");
|
|
141
|
+
child.stdout.on("data", (chunk) => {
|
|
142
|
+
stdout += chunk;
|
|
143
|
+
});
|
|
144
|
+
child.stderr.setEncoding("utf8");
|
|
145
|
+
child.stderr.on("data", (chunk) => {
|
|
146
|
+
stderr += chunk;
|
|
147
|
+
});
|
|
148
|
+
child.on("error", () => resolve({
|
|
149
|
+
status: -1,
|
|
150
|
+
stdout,
|
|
151
|
+
stderr
|
|
152
|
+
}));
|
|
153
|
+
child.on("close", (status) => resolve({
|
|
154
|
+
status,
|
|
155
|
+
stdout,
|
|
156
|
+
stderr
|
|
157
|
+
}));
|
|
158
|
+
if (input !== void 0) child.stdin.end(input);
|
|
159
|
+
else child.stdin.end();
|
|
160
|
+
});
|
|
211
161
|
}
|
|
212
162
|
function runPsSync(script, input) {
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
163
|
+
const r = (0, node_child_process.spawnSync)(POWERSHELL_BIN, [
|
|
164
|
+
"-NoProfile",
|
|
165
|
+
"-Command",
|
|
166
|
+
script
|
|
167
|
+
], {
|
|
168
|
+
encoding: "utf8",
|
|
169
|
+
input,
|
|
170
|
+
stdio: [
|
|
171
|
+
"pipe",
|
|
172
|
+
"pipe",
|
|
173
|
+
"pipe"
|
|
174
|
+
]
|
|
175
|
+
});
|
|
176
|
+
return {
|
|
177
|
+
status: r.status,
|
|
178
|
+
stdout: r.stdout,
|
|
179
|
+
stderr: r.stderr
|
|
180
|
+
};
|
|
219
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* Reject identifier components (service / account names) that contain path
|
|
184
|
+
* separators, `..` segments, or NUL bytes. These would escape the intended
|
|
185
|
+
* `%APPDATA%\<service>\<account>.enc` layout and let a caller read or overwrite
|
|
186
|
+
* arbitrary files under the user's profile.
|
|
187
|
+
*
|
|
188
|
+
* Throws on bad input rather than sanitizing — callers should pass logical
|
|
189
|
+
* identifiers (e.g. `socket-cli`, `SOCKET_API_KEY`), not paths.
|
|
190
|
+
*/
|
|
220
191
|
function validateKeychainComponent(value, name) {
|
|
221
|
-
|
|
222
|
-
throw new Error(
|
|
223
|
-
`secrets/windows: ${name} contains path-traversal characters: ${JSON.stringify(value)}. Use a plain identifier (no \\\\, /, .., or NUL).`
|
|
224
|
-
);
|
|
225
|
-
}
|
|
192
|
+
if (/[\\/]/.test(value) || value.includes("..") || value.includes("\0") || value === "" || value === ".") throw new Error(`secrets/windows: ${name} contains path-traversal characters: ${JSON.stringify(value)}. Use a plain identifier (no \\\\, /, .., or NUL).`);
|
|
226
193
|
}
|
|
227
194
|
async function writeDpapi(filePath, value) {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
}
|
|
232
|
-
const script = `
|
|
195
|
+
const dir = node_path.default.dirname(filePath);
|
|
196
|
+
if (!(0, node_fs.existsSync)(dir)) (0, node_fs.mkdirSync)(dir, { recursive: true });
|
|
197
|
+
const r = await runPsAsync(`
|
|
233
198
|
Add-Type -AssemblyName System.Security
|
|
234
199
|
$token = [Console]::In.ReadToEnd().Trim()
|
|
235
200
|
$bytes = [System.Text.Encoding]::UTF8.GetBytes($token)
|
|
236
201
|
$protected = [System.Security.Cryptography.ProtectedData]::Protect($bytes, $null, 'CurrentUser')
|
|
237
202
|
[Convert]::ToBase64String($protected) | Set-Content -Path ${quotePs(filePath)} -NoNewline
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
if (r.status !== 0) {
|
|
241
|
-
throw new Error(
|
|
242
|
-
`DPAPI file write failed: ${r.stderr.trim()}. Install the CredentialManager PowerShell module (\`Install-Module CredentialManager -Scope CurrentUser\`) for a cleaner storage path.`
|
|
243
|
-
);
|
|
244
|
-
}
|
|
203
|
+
`, value);
|
|
204
|
+
if (r.status !== 0) throw new Error(`DPAPI file write failed: ${r.stderr.trim()}. Install the CredentialManager PowerShell module (\`Install-Module CredentialManager -Scope CurrentUser\`) for a cleaner storage path.`);
|
|
245
205
|
}
|
|
246
206
|
function writeDpapiSync(filePath, value) {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
}
|
|
251
|
-
const script = `
|
|
207
|
+
const dir = node_path.default.dirname(filePath);
|
|
208
|
+
if (!(0, node_fs.existsSync)(dir)) (0, node_fs.mkdirSync)(dir, { recursive: true });
|
|
209
|
+
const r = runPsSync(`
|
|
252
210
|
Add-Type -AssemblyName System.Security
|
|
253
211
|
$token = [Console]::In.ReadToEnd().Trim()
|
|
254
212
|
$bytes = [System.Text.Encoding]::UTF8.GetBytes($token)
|
|
255
213
|
$protected = [System.Security.Cryptography.ProtectedData]::Protect($bytes, $null, 'CurrentUser')
|
|
256
214
|
[Convert]::ToBase64String($protected) | Set-Content -Path ${quotePs(filePath)} -NoNewline
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
if (r.status !== 0) {
|
|
260
|
-
throw new Error(
|
|
261
|
-
`DPAPI file write failed: ${r.stderr.trim()}. Install the CredentialManager PowerShell module (\`Install-Module CredentialManager -Scope CurrentUser\`) for a cleaner storage path.`
|
|
262
|
-
);
|
|
263
|
-
}
|
|
215
|
+
`, value);
|
|
216
|
+
if (r.status !== 0) throw new Error(`DPAPI file write failed: ${r.stderr.trim()}. Install the CredentialManager PowerShell module (\`Install-Module CredentialManager -Scope CurrentUser\`) for a cleaner storage path.`);
|
|
264
217
|
}
|
|
265
218
|
async function writeWindows(service, account, value, _label) {
|
|
266
|
-
|
|
267
|
-
const psScript = `
|
|
219
|
+
if ((await runPsAsync(`
|
|
268
220
|
$token = $input | Out-String
|
|
269
221
|
$token = $token.Trim()
|
|
270
222
|
$secure = ConvertTo-SecureString $token -AsPlainText -Force
|
|
271
223
|
try {
|
|
272
|
-
New-StoredCredential -Target ${quotePs(
|
|
224
|
+
New-StoredCredential -Target ${quotePs(buildTarget(service, account))} -UserName ${quotePs(account)} -SecurePassword $secure -Persist LocalMachine | Out-Null
|
|
273
225
|
exit 0
|
|
274
226
|
} catch { exit 1 }
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
if (ps.status === 0) {
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
await writeDpapi(getDpapiFilePath(service, account), value);
|
|
227
|
+
`, value)).status === 0) return;
|
|
228
|
+
await writeDpapi(getDpapiFilePath(service, account), value);
|
|
281
229
|
}
|
|
282
230
|
function writeWindowsSync(service, account, value, _label) {
|
|
283
|
-
|
|
284
|
-
const psScript = `
|
|
231
|
+
if (runPsSync(`
|
|
285
232
|
$token = $input | Out-String
|
|
286
233
|
$token = $token.Trim()
|
|
287
234
|
$secure = ConvertTo-SecureString $token -AsPlainText -Force
|
|
288
235
|
try {
|
|
289
|
-
New-StoredCredential -Target ${quotePs(
|
|
236
|
+
New-StoredCredential -Target ${quotePs(buildTarget(service, account))} -UserName ${quotePs(account)} -SecurePassword $secure -Persist LocalMachine | Out-Null
|
|
290
237
|
exit 0
|
|
291
238
|
} catch { exit 1 }
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
if (ps.status === 0) {
|
|
295
|
-
return;
|
|
296
|
-
}
|
|
297
|
-
writeDpapiSync(getDpapiFilePath(service, account), value);
|
|
239
|
+
`, value).status === 0) return;
|
|
240
|
+
writeDpapiSync(getDpapiFilePath(service, account), value);
|
|
298
241
|
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
});
|
|
242
|
+
|
|
243
|
+
//#endregion
|
|
244
|
+
exports.buildTarget = buildTarget;
|
|
245
|
+
exports.deleteWindows = deleteWindows;
|
|
246
|
+
exports.deleteWindowsSync = deleteWindowsSync;
|
|
247
|
+
exports.getDpapiFilePath = getDpapiFilePath;
|
|
248
|
+
exports.isWindowsBackendAvailable = isWindowsBackendAvailable;
|
|
249
|
+
exports.quotePs = quotePs;
|
|
250
|
+
exports.readDpapi = readDpapi;
|
|
251
|
+
exports.readDpapiSync = readDpapiSync;
|
|
252
|
+
exports.readWindows = readWindows;
|
|
253
|
+
exports.readWindowsSync = readWindowsSync;
|
|
254
|
+
exports.runPsAsync = runPsAsync;
|
|
255
|
+
exports.runPsSync = runPsSync;
|
|
256
|
+
exports.validateKeychainComponent = validateKeychainComponent;
|
|
257
|
+
exports.writeDpapi = writeDpapi;
|
|
258
|
+
exports.writeDpapiSync = writeDpapiSync;
|
|
259
|
+
exports.writeWindows = writeWindows;
|
|
260
|
+
exports.writeWindowsSync = writeWindowsSync;
|
package/dist/shadow/skip.js
CHANGED
|
@@ -1,73 +1,54 @@
|
|
|
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
|
-
shouldSkipShadow: () => shouldSkipShadow
|
|
34
|
-
});
|
|
35
|
-
module.exports = __toCommonJS(skip_exports);
|
|
36
|
-
var import_node_process = __toESM(require("node:process"));
|
|
37
|
-
var import_normalize = require("../paths/normalize");
|
|
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_paths_normalize = require('../paths/normalize.js');
|
|
6
|
+
let node_process = require("node:process");
|
|
7
|
+
node_process = require_runtime.__toESM(node_process);
|
|
8
|
+
|
|
9
|
+
//#region src/shadow/skip.ts
|
|
10
|
+
/**
|
|
11
|
+
* @file Shadow binary installation utilities for Socket ecosystem. Provides
|
|
12
|
+
* logic to determine when shadow binary installation should be skipped.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Determines if shadow binaries should be installed. Shadows should NOT be
|
|
16
|
+
* installed when: - Running in a temporary execution context (exec/npx/dlx) -
|
|
17
|
+
* On Windows with an existing binary path (required for Windows to function)
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ;```typescript
|
|
21
|
+
* if (shouldSkipShadow(binPath, { cwd: process.cwd() })) {
|
|
22
|
+
* console.log('Skipping shadow binary installation')
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @param binPath - Path to the binary being shadowed.
|
|
27
|
+
* @param options - Configuration options.
|
|
28
|
+
* @param options.cwd - Current working directory path to check.
|
|
29
|
+
* @param options.win32 - Whether running on Windows.
|
|
30
|
+
*
|
|
31
|
+
* @returns True if shadow installation should be skipped
|
|
32
|
+
*/
|
|
38
33
|
function shouldSkipShadow(binPath, options) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const tempPatterns = [
|
|
57
|
-
// npm's npx cache directory
|
|
58
|
-
"_npx",
|
|
59
|
-
// pnpm dlx temporary store
|
|
60
|
-
".pnpm-store",
|
|
61
|
-
// Common dlx directory prefix
|
|
62
|
-
"dlx-",
|
|
63
|
-
// Yarn Berry PnP virtual packages.
|
|
64
|
-
".yarn/$$",
|
|
65
|
-
// Yarn on Windows uses normalized forward slash paths.
|
|
66
|
-
"AppData/Local/Temp/xfs-"
|
|
67
|
-
];
|
|
68
|
-
return tempPatterns.some((pattern) => normalizedCwd.includes(pattern));
|
|
34
|
+
const { cwd = node_process.default.cwd(), win32 = false } = {
|
|
35
|
+
__proto__: null,
|
|
36
|
+
...options
|
|
37
|
+
};
|
|
38
|
+
if (win32 && binPath) return true;
|
|
39
|
+
const userAgent = node_process.default.env["npm_config_user_agent"];
|
|
40
|
+
if (userAgent?.includes("exec") || userAgent?.includes("npx") || userAgent?.includes("dlx")) return true;
|
|
41
|
+
const normalizedCwd = /* @__PURE__ */ require_paths_normalize.normalizePath(cwd);
|
|
42
|
+
const npmCache = node_process.default.env["npm_config_cache"];
|
|
43
|
+
if (npmCache && normalizedCwd.includes(/* @__PURE__ */ require_paths_normalize.normalizePath(npmCache))) return true;
|
|
44
|
+
return [
|
|
45
|
+
"_npx",
|
|
46
|
+
".pnpm-store",
|
|
47
|
+
"dlx-",
|
|
48
|
+
".yarn/$$",
|
|
49
|
+
"AppData/Local/Temp/xfs-"
|
|
50
|
+
].some((pattern) => normalizedCwd.includes(pattern));
|
|
69
51
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
});
|
|
52
|
+
|
|
53
|
+
//#endregion
|
|
54
|
+
exports.shouldSkipShadow = shouldSkipShadow;
|
package/dist/shadow/types.js
CHANGED
|
@@ -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 types_exports = {};
|
|
18
|
-
module.exports = __toCommonJS(types_exports);
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|