@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/effects/shimmer.js
CHANGED
|
@@ -1,182 +1,319 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* Socket Lib - Built with
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_primordials_error = require('../primordials/error.js');
|
|
5
|
+
const require_primordials_math = require('../primordials/math.js');
|
|
6
|
+
const require_primordials_array = require('../primordials/array.js');
|
|
7
|
+
|
|
8
|
+
//#region src/effects/shimmer.ts
|
|
9
|
+
/**
|
|
10
|
+
* @file Shimmer animation engine — pure functions, zero deps. Animates a "wave"
|
|
11
|
+
* of color sweeping across a string. Designed for terminal spinners but the
|
|
12
|
+
* engine output is just `RGB[]`, so adapters can render to ANSI, SVG
|
|
13
|
+
* keyframes, Ink components, or anything else. The engine is one function:
|
|
14
|
+
* `frameColors(spec, length, frame) → RGB[]`. It is pure — same inputs
|
|
15
|
+
* produce the same output, no shared state. A {@link ShimmerSpec} bundles
|
|
16
|
+
* three orthogonal pieces:
|
|
17
|
+
*
|
|
18
|
+
* 1. `positionAt(frame)` — the wave's center at frame N (in char units; negative
|
|
19
|
+
* = off-screen left, > textLength = off-screen right). Built-ins:
|
|
20
|
+
* {@link ltrSweep}, {@link rtlSweep}, {@link bidirectionalSweep},
|
|
21
|
+
* {@link randomSweep}, {@link noSweep}.
|
|
22
|
+
* 2. `kernel(signedDistance, ctx)` — given a char's signed distance from the
|
|
23
|
+
* wave center, produce its color. Built-ins: {@link blockKernel} (hard
|
|
24
|
+
* on/off) and {@link smoothKernel} (soft glow).
|
|
25
|
+
* 3. `baseColor(i)` / `highlightColor(i)` — per-char palette anchors fed to the
|
|
26
|
+
* kernel as `ctx.baseColor` and `ctx.highlightColor`. Build these with
|
|
27
|
+
* {@link solidColor} (one color for every char) or {@link gradient} (cycle
|
|
28
|
+
* through a palette). Most callers don't build a spec by hand.
|
|
29
|
+
* {@link configToSpec} translates the flat {@link ShimmerConfig} (`{
|
|
30
|
+
* color, dir, speed, … }`) into a spec using sensible defaults. The
|
|
31
|
+
* spinner uses this internally. Adapters in `shimmer-terminal.ts` and
|
|
32
|
+
* `shimmer-keyframes.ts` consume the engine's `RGB[]` output and render it
|
|
33
|
+
* to ANSI escape sequences or SVG SMIL keyframes respectively.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* Smooth socket-lib-style shimmer over a single color:
|
|
37
|
+
* ```ts
|
|
38
|
+
* import { configToSpec, frameColors } from '@socketsecurity/lib/effects/shimmer'
|
|
39
|
+
* const spec = configToSpec({ color: [140, 82, 255], dir: 'ltr' }, 'Loading'.length)
|
|
40
|
+
* const colorsAtFrame0 = frameColors(spec, 7, 0)
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* Discrete claude-code-style shimmer with a rainbow gradient:
|
|
45
|
+
* ```ts
|
|
46
|
+
* import { configToSpec } from '@socketsecurity/lib/effects/shimmer'
|
|
47
|
+
* import { RAINBOW_GRADIENT } from '@socketsecurity/lib/themes/resolve'
|
|
48
|
+
* const spec = configToSpec(
|
|
49
|
+
* { color: RAINBOW_GRADIENT, dir: 'ltr', kernel: 'block' },
|
|
50
|
+
* 'ultrathink'.length,
|
|
51
|
+
* )
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
/**
|
|
55
|
+
* Default base color used by {@link configToSpec} when `color` is omitted.
|
|
56
|
+
* Socket purple — matches the spinner's default color.
|
|
57
|
+
*/
|
|
58
|
+
const DEFAULT_BASE_COLOR = [
|
|
59
|
+
140,
|
|
60
|
+
82,
|
|
61
|
+
255
|
|
62
|
+
];
|
|
63
|
+
/**
|
|
64
|
+
* Default highlight color used by {@link configToSpec} when `highlight` is
|
|
65
|
+
* omitted. Pure white.
|
|
66
|
+
*/
|
|
67
|
+
const WHITE = [
|
|
68
|
+
255,
|
|
69
|
+
255,
|
|
70
|
+
255
|
|
71
|
+
];
|
|
72
|
+
/**
|
|
73
|
+
* Build a position function for bidirectional motion: the wave does one
|
|
74
|
+
* left-to-right pass, then one right-to-left pass, then loops.
|
|
75
|
+
*
|
|
76
|
+
* @default padding=2
|
|
77
|
+
*
|
|
78
|
+
* @param textLength Number of chars in the target string.
|
|
79
|
+
* @param padding Off-screen chars on each side.
|
|
80
|
+
*/
|
|
46
81
|
function bidirectionalSweep(textLength, padding = 2) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return textLength + padding - 1 - (f - cycle);
|
|
55
|
-
};
|
|
82
|
+
const cycle = textLength + 2 * padding;
|
|
83
|
+
const fullCycle = cycle * 2;
|
|
84
|
+
return (frame) => {
|
|
85
|
+
const f = (frame % fullCycle + fullCycle) % fullCycle;
|
|
86
|
+
if (f < cycle) return f - padding;
|
|
87
|
+
return textLength + padding - 1 - (f - cycle);
|
|
88
|
+
};
|
|
56
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Linearly interpolate between two RGB colors. `t` is clamped to [0, 1].
|
|
92
|
+
*
|
|
93
|
+
* @param a Color at `t=0`
|
|
94
|
+
* @param b Color at `t=1`
|
|
95
|
+
* @param t Blend factor; values outside [0, 1] are clamped.
|
|
96
|
+
*
|
|
97
|
+
* @returns Blended RGB with each channel rounded to integer
|
|
98
|
+
*/
|
|
57
99
|
function blendRgb(a, b, t) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
100
|
+
const k = t < 0 ? 0 : t > 1 ? 1 : t;
|
|
101
|
+
return [
|
|
102
|
+
require_primordials_math.MathRound(a[0] + (b[0] - a[0]) * k),
|
|
103
|
+
require_primordials_math.MathRound(a[1] + (b[1] - a[1]) * k),
|
|
104
|
+
require_primordials_math.MathRound(a[2] + (b[2] - a[2]) * k)
|
|
105
|
+
];
|
|
64
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Discrete on/off kernel — each char is either fully `highlightColor` (within
|
|
109
|
+
* `halfWidth` of the wave center) or fully `baseColor`. No blend.
|
|
110
|
+
*
|
|
111
|
+
* Matches claude-code's spinner behavior at `halfWidth=1` (a 3-char bright
|
|
112
|
+
* zone: the char at the wave center plus its left and right neighbors).
|
|
113
|
+
*
|
|
114
|
+
* @default halfWidth=1
|
|
115
|
+
*
|
|
116
|
+
* @param halfWidth Chars on each side of the wave center to highlight.
|
|
117
|
+
*/
|
|
65
118
|
function blockKernel(halfWidth = 1) {
|
|
66
|
-
|
|
119
|
+
return (d, ctx) => require_primordials_math.MathAbs(d) <= halfWidth ? ctx.highlightColor : ctx.baseColor;
|
|
67
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Translate a flat {@link ShimmerConfig} into a {@link ShimmerSpec}. Applies
|
|
123
|
+
* defaults for omitted fields; resolves `color` and `highlight` (which may be a
|
|
124
|
+
* single RGB or a palette) into per-char palette functions.
|
|
125
|
+
*
|
|
126
|
+
* The spinner uses this internally; callers who only need the standard shape
|
|
127
|
+
* can call this directly. Advanced callers can construct a `ShimmerSpec` by
|
|
128
|
+
* hand to plug in custom kernels or position generators.
|
|
129
|
+
*/
|
|
68
130
|
function configToSpec(config, textLength) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
131
|
+
const dir = config.dir ?? "ltr";
|
|
132
|
+
const padding = config.padding ?? 2;
|
|
133
|
+
const speed = config.speed ?? 1 / 3;
|
|
134
|
+
const baseColor = resolvePalette(config.color, DEFAULT_BASE_COLOR);
|
|
135
|
+
const highlightColor = resolvePalette(config.highlight, WHITE);
|
|
136
|
+
const kernel = config.kernel === "block" ? blockKernel(1) : smoothKernel(config.width ?? 2.5);
|
|
137
|
+
const sweep = directionToSweep(dir, textLength, padding);
|
|
138
|
+
return {
|
|
139
|
+
positionAt: (frame) => sweep(frame * speed),
|
|
140
|
+
kernel,
|
|
141
|
+
baseColor,
|
|
142
|
+
highlightColor
|
|
143
|
+
};
|
|
82
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Translate a {@link ShimmerDirection} string to its position-generator
|
|
147
|
+
* function. Used by {@link configToSpec}; exported for callers that want to swap
|
|
148
|
+
* kernel or palette while keeping the standard sweep mapping.
|
|
149
|
+
*/
|
|
83
150
|
function directionToSweep(dir, textLength, padding) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
case "none":
|
|
92
|
-
return noSweep();
|
|
93
|
-
default:
|
|
94
|
-
return ltrSweep(textLength, padding);
|
|
95
|
-
}
|
|
151
|
+
switch (dir) {
|
|
152
|
+
case "rtl": return rtlSweep(textLength, padding);
|
|
153
|
+
case "bi": return bidirectionalSweep(textLength, padding);
|
|
154
|
+
case "random": return randomSweep(textLength, padding);
|
|
155
|
+
case "none": return noSweep();
|
|
156
|
+
default: return ltrSweep(textLength, padding);
|
|
157
|
+
}
|
|
96
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Compute per-character colors for a single frame. This is the engine.
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ;```ts
|
|
164
|
+
* const colors = frameColors(spec, 'Loading'.length, frameCounter)
|
|
165
|
+
* // colors[0] = the color of 'L' at this frame
|
|
166
|
+
* // colors[6] = the color of 'g' at this frame
|
|
167
|
+
* ```
|
|
168
|
+
*
|
|
169
|
+
* @param spec Functional shimmer specification.
|
|
170
|
+
* @param textLength Number of chars to color.
|
|
171
|
+
* @param frame Caller-controlled frame counter (any number; the position
|
|
172
|
+
* generator handles wrapping)
|
|
173
|
+
*
|
|
174
|
+
* @returns One RGB tuple per char index, in order
|
|
175
|
+
*/
|
|
97
176
|
function frameColors(spec, textLength, frame) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
177
|
+
const wavePos = spec.positionAt(frame);
|
|
178
|
+
const out = [];
|
|
179
|
+
for (let i = 0; i < textLength; i++) {
|
|
180
|
+
const ctx = {
|
|
181
|
+
__proto__: null,
|
|
182
|
+
baseColor: spec.baseColor(i),
|
|
183
|
+
highlightColor: spec.highlightColor(i)
|
|
184
|
+
};
|
|
185
|
+
out.push(spec.kernel(i - wavePos, ctx));
|
|
186
|
+
}
|
|
187
|
+
return out;
|
|
109
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Build a per-char palette function that cycles through a fixed palette: `(i)
|
|
191
|
+
* => palette[i % palette.length]`.
|
|
192
|
+
*
|
|
193
|
+
* @throws {Error} If `palette` is empty
|
|
194
|
+
*/
|
|
110
195
|
function gradient(palette) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
return (i) => palette[i % palette.length];
|
|
196
|
+
if (palette.length === 0) throw new require_primordials_error.ErrorCtor("gradient palette must not be empty");
|
|
197
|
+
return (i) => palette[i % palette.length];
|
|
115
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Build a position function for left-to-right motion: the wave starts at
|
|
201
|
+
* `-padding` (off-screen left), advances by 1 per frame, exits at `textLength +
|
|
202
|
+
* padding`, then wraps.
|
|
203
|
+
*
|
|
204
|
+
* @default padding=2
|
|
205
|
+
*
|
|
206
|
+
* @param textLength Number of chars in the target string.
|
|
207
|
+
* @param padding Off-screen chars on each side.
|
|
208
|
+
*/
|
|
116
209
|
function ltrSweep(textLength, padding = 2) {
|
|
117
|
-
|
|
118
|
-
|
|
210
|
+
const cycle = textLength + 2 * padding;
|
|
211
|
+
return (frame) => (frame % cycle + cycle) % cycle - padding;
|
|
119
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Build a position function that hides the wave forever. Returns `-Infinity`
|
|
215
|
+
* for every frame so the kernel always sees `signedDistance` > `halfWidth` and
|
|
216
|
+
* produces base colors. Used by `configToSpec` when `dir: 'none'`.
|
|
217
|
+
*/
|
|
120
218
|
function noSweep() {
|
|
121
|
-
|
|
219
|
+
return () => -Infinity;
|
|
122
220
|
}
|
|
221
|
+
/**
|
|
222
|
+
* Build a position function that randomly picks LTR or RTL at each cycle
|
|
223
|
+
* boundary. The PRNG is configurable (defaults to `Math.random`) so callers can
|
|
224
|
+
* seed it for reproducible animations.
|
|
225
|
+
*
|
|
226
|
+
* @default padding=2, random=Math.random
|
|
227
|
+
*
|
|
228
|
+
* @param textLength Number of chars in the target string.
|
|
229
|
+
* @param padding Off-screen chars on each side.
|
|
230
|
+
* @param random PRNG returning [0, 1); defaults to `Math.random`
|
|
231
|
+
*/
|
|
123
232
|
function randomSweep(textLength, padding = 2, random = Math.random) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
233
|
+
const cycle = textLength + 2 * padding;
|
|
234
|
+
let dir = random() < .5 ? "ltr" : "rtl";
|
|
235
|
+
let lastCycleIndex = 0;
|
|
236
|
+
return (frame) => {
|
|
237
|
+
const f = (frame % (cycle * 2 ** 30) + cycle * 2 ** 30) % (cycle * 2 ** 30);
|
|
238
|
+
const cycleIndex = require_primordials_math.MathFloor(f / cycle);
|
|
239
|
+
if (cycleIndex !== lastCycleIndex) {
|
|
240
|
+
dir = random() < .5 ? "ltr" : "rtl";
|
|
241
|
+
lastCycleIndex = cycleIndex;
|
|
242
|
+
}
|
|
243
|
+
const inCycle = f % cycle;
|
|
244
|
+
return dir === "ltr" ? inCycle - padding : textLength + padding - 1 - inCycle;
|
|
245
|
+
};
|
|
137
246
|
}
|
|
247
|
+
/**
|
|
248
|
+
* Resolve a {@link ShimmerConfig.color}-shaped input into a per-char palette
|
|
249
|
+
* function. Accepts a single RGB tuple, an ordered palette, or `undefined` (in
|
|
250
|
+
* which case `defaultColor` is used).
|
|
251
|
+
*
|
|
252
|
+
* Used internally by {@link configToSpec}; exported so callers can build partial
|
|
253
|
+
* specs that share the same input-shape rules.
|
|
254
|
+
*/
|
|
138
255
|
function resolvePalette(source, defaultColor) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if ((0, import_array.ArrayIsArray)(source[0])) {
|
|
143
|
-
return gradient(source);
|
|
144
|
-
}
|
|
145
|
-
return solidColor(source);
|
|
256
|
+
if (source === void 0) return solidColor(defaultColor);
|
|
257
|
+
if (require_primordials_array.ArrayIsArray(source[0])) return gradient(source);
|
|
258
|
+
return solidColor(source);
|
|
146
259
|
}
|
|
260
|
+
/**
|
|
261
|
+
* Build a position function for right-to-left motion: the wave starts at the
|
|
262
|
+
* right edge, decreases by 1 per frame, exits at `-padding` left of char 0,
|
|
263
|
+
* then wraps.
|
|
264
|
+
*
|
|
265
|
+
* @default padding=2
|
|
266
|
+
*
|
|
267
|
+
* @param textLength Number of chars in the target string.
|
|
268
|
+
* @param padding Off-screen chars on each side.
|
|
269
|
+
*/
|
|
147
270
|
function rtlSweep(textLength, padding = 2) {
|
|
148
|
-
|
|
149
|
-
|
|
271
|
+
const cycle = textLength + 2 * padding;
|
|
272
|
+
return (frame) => textLength + padding - 1 - (frame % cycle + cycle) % cycle;
|
|
150
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* Smooth blend kernel — char's color blends from `baseColor` toward
|
|
276
|
+
* `highlightColor` as it approaches the wave center. Falloff curve is `(1 -
|
|
277
|
+
* |d|/halfWidth)^falloff`, giving a soft glow with a wider radius than
|
|
278
|
+
* `blockKernel`.
|
|
279
|
+
*
|
|
280
|
+
* Matches socket-lib's previous default at `halfWidth=2.5, falloff=2.5`.
|
|
281
|
+
*
|
|
282
|
+
* @default halfWidth=2.5, falloff=2.5
|
|
283
|
+
*
|
|
284
|
+
* @param halfWidth Chars on each side affected by the wave.
|
|
285
|
+
* @param falloff Intensity exponent (higher = sharper peak)
|
|
286
|
+
*/
|
|
151
287
|
function smoothKernel(halfWidth = 2.5, falloff = 2.5) {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
return blendRgb(ctx.baseColor, ctx.highlightColor, t);
|
|
159
|
-
};
|
|
288
|
+
return (d, ctx) => {
|
|
289
|
+
const dist = require_primordials_math.MathAbs(d);
|
|
290
|
+
if (dist >= halfWidth) return ctx.baseColor;
|
|
291
|
+
const t = (1 - dist / halfWidth) ** falloff;
|
|
292
|
+
return blendRgb(ctx.baseColor, ctx.highlightColor, t);
|
|
293
|
+
};
|
|
160
294
|
}
|
|
295
|
+
/**
|
|
296
|
+
* Build a per-char palette function that returns the same color for every char
|
|
297
|
+
* index. Useful when shimmering text with a single base color.
|
|
298
|
+
*/
|
|
161
299
|
function solidColor(color) {
|
|
162
|
-
|
|
300
|
+
return () => color;
|
|
163
301
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
});
|
|
302
|
+
|
|
303
|
+
//#endregion
|
|
304
|
+
exports.DEFAULT_BASE_COLOR = DEFAULT_BASE_COLOR;
|
|
305
|
+
exports.WHITE = WHITE;
|
|
306
|
+
exports.bidirectionalSweep = bidirectionalSweep;
|
|
307
|
+
exports.blendRgb = blendRgb;
|
|
308
|
+
exports.blockKernel = blockKernel;
|
|
309
|
+
exports.configToSpec = configToSpec;
|
|
310
|
+
exports.directionToSweep = directionToSweep;
|
|
311
|
+
exports.frameColors = frameColors;
|
|
312
|
+
exports.gradient = gradient;
|
|
313
|
+
exports.ltrSweep = ltrSweep;
|
|
314
|
+
exports.noSweep = noSweep;
|
|
315
|
+
exports.randomSweep = randomSweep;
|
|
316
|
+
exports.resolvePalette = resolvePalette;
|
|
317
|
+
exports.rtlSweep = rtlSweep;
|
|
318
|
+
exports.smoothKernel = smoothKernel;
|
|
319
|
+
exports.solidColor = solidColor;
|
package/dist/env/boolean.js
CHANGED
|
@@ -1,46 +1,45 @@
|
|
|
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
|
-
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
//#region src/env/boolean.ts
|
|
6
|
+
/**
|
|
7
|
+
* Convert an environment variable value to a boolean.
|
|
8
|
+
*
|
|
9
|
+
* Back-compat overload: passing a bare boolean as the second argument is
|
|
10
|
+
* equivalent to `{ defaultValue: B }`.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ;```typescript
|
|
14
|
+
* import { envAsBoolean } from '@socketsecurity/lib/env/boolean'
|
|
15
|
+
*
|
|
16
|
+
* envAsBoolean('true') // true
|
|
17
|
+
* envAsBoolean('1') // true
|
|
18
|
+
* envAsBoolean('yes') // true
|
|
19
|
+
* envAsBoolean(' true ') // true (trimmed)
|
|
20
|
+
* envAsBoolean(' true ', { trim: false }) // false (strict)
|
|
21
|
+
* envAsBoolean(undefined) // false
|
|
22
|
+
* envAsBoolean(undefined, true) // true (legacy positional default)
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @param value - The value to convert.
|
|
26
|
+
* @param defaultValueOrOptions - Default (boolean) or options object.
|
|
27
|
+
*
|
|
28
|
+
* @returns `true` if value is '1', 'true', or 'yes' (case-insensitive), `false`
|
|
29
|
+
* otherwise.
|
|
30
|
+
*/
|
|
31
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
27
32
|
function envAsBoolean(value, defaultValueOrOptions = false) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
if (value === null || value === void 0) {
|
|
39
|
-
return !!defaultValue;
|
|
40
|
-
}
|
|
41
|
-
return !!value;
|
|
33
|
+
const { defaultValue = false, trim = true } = typeof defaultValueOrOptions === "boolean" ? { defaultValue: defaultValueOrOptions } : defaultValueOrOptions ?? {};
|
|
34
|
+
if (typeof value === "string") {
|
|
35
|
+
const candidate = trim ? value.trim() : value;
|
|
36
|
+
if (!candidate) return !!defaultValue;
|
|
37
|
+
const lower = candidate.toLowerCase();
|
|
38
|
+
return lower === "1" || lower === "true" || lower === "yes";
|
|
39
|
+
}
|
|
40
|
+
if (value === null || value === void 0) return !!defaultValue;
|
|
41
|
+
return !!value;
|
|
42
42
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
});
|
|
43
|
+
|
|
44
|
+
//#endregion
|
|
45
|
+
exports.envAsBoolean = envAsBoolean;
|