@socketsecurity/lib 6.0.3 → 6.0.4
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 +16 -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 +794 -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/spinner/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 */
|
package/dist/spinner/with.js
CHANGED
|
@@ -1,144 +1,200 @@
|
|
|
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
|
-
|
|
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_colors_convert = require('../colors/convert.js');
|
|
6
|
+
let node_process = require("node:process");
|
|
7
|
+
node_process = require_runtime.__toESM(node_process);
|
|
8
|
+
|
|
9
|
+
//#region src/spinner/with.ts
|
|
10
|
+
/**
|
|
11
|
+
* @file Lifecycle wrappers around `Spinner` — `withSpinner` (async, push-pop
|
|
12
|
+
* options + auto-stop), `withSpinnerRestore` (conditionally restart a
|
|
13
|
+
* previously-spinning instance), and `withSpinnerSync` (sync sibling of
|
|
14
|
+
* `withSpinner`). Each wrapper guarantees `spinner.stop()` runs via
|
|
15
|
+
* `try/finally` even when the inner operation throws, then re-throws the
|
|
16
|
+
* original error so callers see the same failure surface as a plain `await`.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Execute an async operation with spinner lifecycle management. Ensures
|
|
20
|
+
* `spinner.stop()` is always called via try/finally, even if the operation
|
|
21
|
+
* throws. Provides safe cleanup and consistent spinner behavior.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ;```ts
|
|
25
|
+
* import { Spinner } from '@socketsecurity/lib/spinner/spinner'
|
|
26
|
+
* import { withSpinner } from '@socketsecurity/lib/spinner/with'
|
|
27
|
+
*
|
|
28
|
+
* const spinner = Spinner()
|
|
29
|
+
*
|
|
30
|
+
* // With spinner instance
|
|
31
|
+
* const result = await withSpinner({
|
|
32
|
+
* message: 'Processing…',
|
|
33
|
+
* operation: async () => {
|
|
34
|
+
* return await processData()
|
|
35
|
+
* },
|
|
36
|
+
* spinner,
|
|
37
|
+
* })
|
|
38
|
+
*
|
|
39
|
+
* // Without spinner instance (no-op, just runs operation)
|
|
40
|
+
* const result = await withSpinner({
|
|
41
|
+
* message: 'Processing…',
|
|
42
|
+
* operation: async () => {
|
|
43
|
+
* return await processData()
|
|
44
|
+
* },
|
|
45
|
+
* })
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* @template T - Return type of the operation.
|
|
49
|
+
*
|
|
50
|
+
* @param options - Configuration object.
|
|
51
|
+
* @param options.message - Message to display while spinner is running.
|
|
52
|
+
* @param options.operation - Async function to execute.
|
|
53
|
+
* @param options.spinner - Optional spinner instance (if not provided, no
|
|
54
|
+
* spinner is used)
|
|
55
|
+
*
|
|
56
|
+
* @returns Result of the operation
|
|
57
|
+
*
|
|
58
|
+
* @throws Re-throws any error from operation after stopping spinner
|
|
59
|
+
*/
|
|
40
60
|
async function withSpinner(options) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
import_node_process.default.stderr.write("\r\x1B[2K");
|
|
68
|
-
}
|
|
69
|
-
if (savedColor !== void 0) {
|
|
70
|
-
spinner.color = savedColor;
|
|
71
|
-
}
|
|
72
|
-
if (withOptions?.shimmer !== void 0) {
|
|
73
|
-
if (savedShimmerState) {
|
|
74
|
-
spinner.setShimmer({
|
|
75
|
-
color: savedShimmerState.color,
|
|
76
|
-
dir: savedShimmerState.direction,
|
|
77
|
-
speed: savedShimmerState.speed
|
|
78
|
-
});
|
|
79
|
-
} else {
|
|
80
|
-
spinner.disableShimmer();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
61
|
+
const { message, operation, spinner, withOptions } = {
|
|
62
|
+
__proto__: null,
|
|
63
|
+
...options
|
|
64
|
+
};
|
|
65
|
+
if (!spinner) return await operation();
|
|
66
|
+
const savedColor = withOptions?.color !== void 0 ? spinner.color : void 0;
|
|
67
|
+
const savedShimmerState = withOptions?.shimmer !== void 0 ? spinner.shimmerState : void 0;
|
|
68
|
+
if (withOptions?.color !== void 0) spinner.color = require_colors_convert.toRgb(withOptions.color);
|
|
69
|
+
if (withOptions?.shimmer !== void 0) if (typeof withOptions.shimmer === "string") spinner.updateShimmer({ dir: withOptions.shimmer });
|
|
70
|
+
else spinner.setShimmer(withOptions.shimmer);
|
|
71
|
+
spinner.start(message);
|
|
72
|
+
try {
|
|
73
|
+
return await operation();
|
|
74
|
+
} finally {
|
|
75
|
+
const wasSpinning = spinner.isSpinning;
|
|
76
|
+
spinner.stop();
|
|
77
|
+
/* c8 ignore start */
|
|
78
|
+
if (wasSpinning) node_process.default.stderr.write("\r\x1B[2K");
|
|
79
|
+
if (savedColor !== void 0) spinner.color = savedColor;
|
|
80
|
+
if (withOptions?.shimmer !== void 0) if (savedShimmerState) spinner.setShimmer({
|
|
81
|
+
color: savedShimmerState.color,
|
|
82
|
+
dir: savedShimmerState.direction,
|
|
83
|
+
speed: savedShimmerState.speed
|
|
84
|
+
});
|
|
85
|
+
else spinner.disableShimmer();
|
|
86
|
+
}
|
|
84
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Execute an async operation with conditional spinner restart. Useful when you
|
|
90
|
+
* need to temporarily stop a spinner for an operation, then restore it to its
|
|
91
|
+
* previous state (if it was spinning).
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ;```ts
|
|
95
|
+
* import { getDefaultSpinner } from '@socketsecurity/lib/spinner/default'
|
|
96
|
+
* import { withSpinnerRestore } from '@socketsecurity/lib/spinner/with'
|
|
97
|
+
*
|
|
98
|
+
* const spinner = getDefaultSpinner()
|
|
99
|
+
* const wasSpinning = spinner.isSpinning
|
|
100
|
+
* spinner.stop()
|
|
101
|
+
*
|
|
102
|
+
* const result = await withSpinnerRestore({
|
|
103
|
+
* operation: async () => {
|
|
104
|
+
* // Do work without spinner
|
|
105
|
+
* return await someOperation()
|
|
106
|
+
* },
|
|
107
|
+
* spinner,
|
|
108
|
+
* wasSpinning,
|
|
109
|
+
* })
|
|
110
|
+
* // Spinner is automatically restarted if wasSpinning was true
|
|
111
|
+
* ```
|
|
112
|
+
*
|
|
113
|
+
* @template T - Return type of the operation.
|
|
114
|
+
*
|
|
115
|
+
* @param options - Configuration object.
|
|
116
|
+
* @param options.operation - Async function to execute.
|
|
117
|
+
* @param options.spinner - Optional spinner instance to manage.
|
|
118
|
+
* @param options.wasSpinning - Whether spinner was spinning before the
|
|
119
|
+
* operation.
|
|
120
|
+
*
|
|
121
|
+
* @returns Result of the operation
|
|
122
|
+
*
|
|
123
|
+
* @throws Re-throws any error from operation after restoring spinner state
|
|
124
|
+
*/
|
|
85
125
|
async function withSpinnerRestore(options) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
}
|
|
126
|
+
const { operation, spinner, wasSpinning } = {
|
|
127
|
+
__proto__: null,
|
|
128
|
+
...options
|
|
129
|
+
};
|
|
130
|
+
try {
|
|
131
|
+
return await operation();
|
|
132
|
+
} finally {
|
|
133
|
+
if (spinner && wasSpinning) spinner.start();
|
|
134
|
+
}
|
|
97
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Execute a synchronous operation with spinner lifecycle management. Ensures
|
|
138
|
+
* `spinner.stop()` is always called via try/finally, even if the operation
|
|
139
|
+
* throws. Provides safe cleanup and consistent spinner behavior for sync
|
|
140
|
+
* operations.
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ;```ts
|
|
144
|
+
* import { Spinner } from '@socketsecurity/lib/spinner/spinner'
|
|
145
|
+
* import { withSpinnerSync } from '@socketsecurity/lib/spinner/with'
|
|
146
|
+
*
|
|
147
|
+
* const spinner = Spinner()
|
|
148
|
+
*
|
|
149
|
+
* const result = withSpinnerSync({
|
|
150
|
+
* message: 'Processing…',
|
|
151
|
+
* operation: () => {
|
|
152
|
+
* return processDataSync()
|
|
153
|
+
* },
|
|
154
|
+
* spinner,
|
|
155
|
+
* })
|
|
156
|
+
* ```
|
|
157
|
+
*
|
|
158
|
+
* @template T - Return type of the operation.
|
|
159
|
+
*
|
|
160
|
+
* @param options - Configuration object.
|
|
161
|
+
* @param options.message - Message to display while spinner is running.
|
|
162
|
+
* @param options.operation - Synchronous function to execute.
|
|
163
|
+
* @param options.spinner - Optional spinner instance (if not provided, no
|
|
164
|
+
* spinner is used)
|
|
165
|
+
*
|
|
166
|
+
* @returns Result of the operation
|
|
167
|
+
*
|
|
168
|
+
* @throws Re-throws any error from operation after stopping spinner
|
|
169
|
+
*/
|
|
98
170
|
function withSpinnerSync(options) {
|
|
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
|
-
if (savedColor !== void 0) {
|
|
124
|
-
spinner.color = savedColor;
|
|
125
|
-
}
|
|
126
|
-
if (withOptions?.shimmer !== void 0) {
|
|
127
|
-
if (savedShimmerState) {
|
|
128
|
-
spinner.setShimmer({
|
|
129
|
-
color: savedShimmerState.color,
|
|
130
|
-
dir: savedShimmerState.direction,
|
|
131
|
-
speed: savedShimmerState.speed
|
|
132
|
-
});
|
|
133
|
-
} else {
|
|
134
|
-
spinner.disableShimmer();
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
171
|
+
const { message, operation, spinner, withOptions } = {
|
|
172
|
+
__proto__: null,
|
|
173
|
+
...options
|
|
174
|
+
};
|
|
175
|
+
if (!spinner) return operation();
|
|
176
|
+
const savedColor = withOptions?.color !== void 0 ? spinner.color : void 0;
|
|
177
|
+
const savedShimmerState = withOptions?.shimmer !== void 0 ? spinner.shimmerState : void 0;
|
|
178
|
+
if (withOptions?.color !== void 0) spinner.color = require_colors_convert.toRgb(withOptions.color);
|
|
179
|
+
if (withOptions?.shimmer !== void 0) if (typeof withOptions.shimmer === "string") spinner.updateShimmer({ dir: withOptions.shimmer });
|
|
180
|
+
else spinner.setShimmer(withOptions.shimmer);
|
|
181
|
+
spinner.start(message);
|
|
182
|
+
try {
|
|
183
|
+
return operation();
|
|
184
|
+
} finally {
|
|
185
|
+
spinner.stop();
|
|
186
|
+
/* c8 ignore start */
|
|
187
|
+
if (savedColor !== void 0) spinner.color = savedColor;
|
|
188
|
+
if (withOptions?.shimmer !== void 0) if (savedShimmerState) spinner.setShimmer({
|
|
189
|
+
color: savedShimmerState.color,
|
|
190
|
+
dir: savedShimmerState.direction,
|
|
191
|
+
speed: savedShimmerState.speed
|
|
192
|
+
});
|
|
193
|
+
else spinner.disableShimmer();
|
|
194
|
+
}
|
|
138
195
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
});
|
|
196
|
+
|
|
197
|
+
//#endregion
|
|
198
|
+
exports.withSpinner = withSpinner;
|
|
199
|
+
exports.withSpinnerRestore = withSpinnerRestore;
|
|
200
|
+
exports.withSpinnerSync = withSpinnerSync;
|
package/dist/ssri/convert.js
CHANGED
|
@@ -1,52 +1,69 @@
|
|
|
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
|
-
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_primordials_buffer = require('../primordials/buffer.js');
|
|
5
|
+
const require_primordials_error = require('../primordials/error.js');
|
|
6
|
+
|
|
7
|
+
//#region src/ssri/convert.ts
|
|
8
|
+
/**
|
|
9
|
+
* @file SSRI ↔ hex digest conversion helpers — `hexToSsri` wraps a hex digest
|
|
10
|
+
* in `<algorithm>-<base64>` form, `ssriToHex` decodes the base64 half back to
|
|
11
|
+
* hex.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Convert hex format hash to SSRI format.
|
|
15
|
+
*
|
|
16
|
+
* Takes a hash in hex format and converts it to SSRI format with the specified
|
|
17
|
+
* algorithm prefix (defaults to sha256).
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ;```typescript
|
|
21
|
+
* const ssri = hexToSsri(
|
|
22
|
+
* '76682a9fc3bbe62975176e2541f39a8168877d828d5cad8b56461fc36ac2b856',
|
|
23
|
+
* )
|
|
24
|
+
* // Returns: 'sha256-dmgqn8O75il1F24lQfOagWiHfYKNXK2LVkYfw2rCuFY='
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @param hex - Hash in hex format.
|
|
28
|
+
* @param algorithm - Hash algorithm (default: 'sha256')
|
|
29
|
+
*
|
|
30
|
+
* @returns SSRI format hash (algorithm-base64)
|
|
31
|
+
*
|
|
32
|
+
* @throws Error if hex format is invalid
|
|
33
|
+
*/
|
|
34
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
30
35
|
function hexToSsri(hex, algorithm = "sha256") {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
const buffer = (0, import_buffer.BufferFrom)(hex, "hex");
|
|
35
|
-
const base64Hash = (0, import_buffer.BufferPrototypeToString)(buffer, "base64");
|
|
36
|
-
return `${algorithm}-${base64Hash}`;
|
|
36
|
+
if (!/^[a-f0-9]+$/i.test(hex)) throw new require_primordials_error.ErrorCtor(`Invalid hex format: ${hex}`);
|
|
37
|
+
return `${algorithm}-${require_primordials_buffer.BufferPrototypeToString(require_primordials_buffer.BufferFrom(hex, "hex"), "base64")}`;
|
|
37
38
|
}
|
|
38
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Convert SSRI format hash to hex format.
|
|
41
|
+
*
|
|
42
|
+
* Takes a hash in SSRI format (e.g., "sha256-base64hash") and converts it to
|
|
43
|
+
* standard hex format (e.g., "hexstring").
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ;```typescript
|
|
47
|
+
* const hex = ssriToHex(
|
|
48
|
+
* 'sha256-dmgqn8O75il1F24lQfOagWiHfYKNXK2LVkYfw2rCuFY=',
|
|
49
|
+
* )
|
|
50
|
+
* // Returns: '76682a9fc3bbe62975176e2541f39a8168877d828d5cad8b56461fc36ac2b856'
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* @param ssri - Hash in SSRI format (algorithm-base64)
|
|
54
|
+
*
|
|
55
|
+
* @returns Hex string representation of the hash
|
|
56
|
+
*
|
|
57
|
+
* @throws Error if SSRI format is invalid
|
|
58
|
+
*/
|
|
59
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
39
60
|
function ssriToHex(ssri) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const base64Hash = match[2];
|
|
45
|
-
const buffer = (0, import_buffer.BufferFrom)(base64Hash, "base64");
|
|
46
|
-
return (0, import_buffer.BufferPrototypeToString)(buffer, "hex");
|
|
61
|
+
const match = /^([a-z0-9]+)-([A-Za-z0-9+/]+=*)$/i.exec(ssri);
|
|
62
|
+
if (!match || !match[2] || match[2].length < 2) throw new require_primordials_error.ErrorCtor(`Invalid SSRI format: ${ssri}`);
|
|
63
|
+
const base64Hash = match[2];
|
|
64
|
+
return require_primordials_buffer.BufferPrototypeToString(require_primordials_buffer.BufferFrom(base64Hash, "base64"), "hex");
|
|
47
65
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
});
|
|
66
|
+
|
|
67
|
+
//#endregion
|
|
68
|
+
exports.hexToSsri = hexToSsri;
|
|
69
|
+
exports.ssriToHex = ssriToHex;
|
package/dist/ssri/parse.js
CHANGED
|
@@ -1,40 +1,41 @@
|
|
|
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
|
-
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_primordials_error = require('../primordials/error.js');
|
|
5
|
+
|
|
6
|
+
//#region src/ssri/parse.ts
|
|
7
|
+
/**
|
|
8
|
+
* @file SSRI parser — splits a `<algorithm>-<base64hash>` string into its
|
|
9
|
+
* component fields.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Parse SSRI format into components.
|
|
13
|
+
*
|
|
14
|
+
* Extracts the algorithm and base64 hash from an SSRI string.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ;```typescript
|
|
18
|
+
* const { algorithm, base64Hash } = parseSsri(
|
|
19
|
+
* 'sha256-dmgqn8O75il1F24lQfOagWiHfYKNXK2LVkYfw2rCuFY=',
|
|
20
|
+
* )
|
|
21
|
+
* // Returns: { algorithm: 'sha256', base64Hash: 'dmgqn8O75il1F24lQfOagWiHfYKNXK2LVkYfw2rCuFY=' }
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @param ssri - Hash in SSRI format.
|
|
25
|
+
*
|
|
26
|
+
* @returns Object with algorithm and base64Hash properties
|
|
27
|
+
*
|
|
28
|
+
* @throws Error if SSRI format is invalid
|
|
29
|
+
*/
|
|
30
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
28
31
|
function parseSsri(ssri) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
return { algorithm, base64Hash };
|
|
32
|
+
const match = /^([a-z0-9]+)-([A-Za-z0-9+/]+=*)$/i.exec(ssri);
|
|
33
|
+
if (!match || !match[1] || !match[2] || match[2].length < 2) throw new require_primordials_error.ErrorCtor(`Invalid SSRI format: ${ssri}`);
|
|
34
|
+
return {
|
|
35
|
+
algorithm: match[1],
|
|
36
|
+
base64Hash: match[2]
|
|
37
|
+
};
|
|
36
38
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
});
|
|
39
|
+
|
|
40
|
+
//#endregion
|
|
41
|
+
exports.parseSsri = parseSsri;
|
package/dist/ssri/validate.js
CHANGED
|
@@ -1,39 +1,56 @@
|
|
|
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
|
-
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
//#region src/ssri/validate.ts
|
|
6
|
+
/**
|
|
7
|
+
* @file SSRI/hex format validators — predicates that report whether a string
|
|
8
|
+
* looks like a hex digest or an SSRI integrity string. Validation is purely
|
|
9
|
+
* lexical; the predicates do not verify algorithm strength or digest length.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Check if a string is valid hex format.
|
|
13
|
+
*
|
|
14
|
+
* Validates that a string contains only hexadecimal characters (0-9, a-f). Does
|
|
15
|
+
* not verify hash length or algorithm.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ;```typescript
|
|
19
|
+
* isValidHex(
|
|
20
|
+
* '76682a9fc3bbe62975176e2541f39a8168877d828d5cad8b56461fc36ac2b856',
|
|
21
|
+
* ) // true
|
|
22
|
+
* isValidHex('sha256-dmgqn8O75il1F24lQfOagWiHfYKNXK2LVkYfw2rCuFY=') // false
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @param value - String to validate.
|
|
26
|
+
*
|
|
27
|
+
* @returns True if string is valid hex format
|
|
28
|
+
*/
|
|
29
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
28
30
|
function isValidHex(value) {
|
|
29
|
-
|
|
31
|
+
return /^[a-f0-9]+$/i.test(value);
|
|
30
32
|
}
|
|
31
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Check if a string is valid SSRI format.
|
|
35
|
+
*
|
|
36
|
+
* Validates that a string matches the SSRI format pattern (algorithm-base64).
|
|
37
|
+
* Does not verify that the base64 encoding is valid.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ;```typescript
|
|
41
|
+
* isValidSsri('sha256-dmgqn8O75il1F24lQfOagWiHfYKNXK2LVkYfw2rCuFY=') // true
|
|
42
|
+
* isValidSsri('76682a9f...') // false
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @param value - String to validate.
|
|
46
|
+
*
|
|
47
|
+
* @returns True if string matches SSRI format
|
|
48
|
+
*/
|
|
49
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
32
50
|
function isValidSsri(value) {
|
|
33
|
-
|
|
51
|
+
return /^[a-z0-9]+-[A-Za-z0-9+/]{2,}=*$/i.test(value);
|
|
34
52
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
});
|
|
53
|
+
|
|
54
|
+
//#endregion
|
|
55
|
+
exports.isValidHex = isValidHex;
|
|
56
|
+
exports.isValidSsri = isValidSsri;
|