@socketsecurity/lib 6.0.3 → 6.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/dist/_virtual/_rolldown/runtime.js +45 -0
- package/dist/abort/signal.js +53 -59
- package/dist/ai/discover.js +110 -110
- package/dist/ai/profiles.js +94 -65
- package/dist/ai/spawn.js +172 -194
- package/dist/ai/types.js +1 -17
- package/dist/ai/worktree.js +160 -183
- package/dist/ansi/constants.js +16 -38
- package/dist/ansi/strip.js +44 -41
- package/dist/archives/_internal.js +64 -73
- package/dist/archives/detect.js +30 -43
- package/dist/archives/extract.js +43 -50
- package/dist/archives/tar.js +197 -228
- package/dist/archives/types.js +1 -17
- package/dist/archives/zip.js +85 -121
- package/dist/argv/flag-predicates.js +203 -101
- package/dist/argv/flag-types.js +96 -113
- package/dist/argv/parse-args-string.d.ts +16 -14
- package/dist/argv/parse-args-string.js +42 -39
- package/dist/argv/parse.js +145 -163
- package/dist/arrays/_internal.js +65 -48
- package/dist/arrays/chunk.js +51 -40
- package/dist/arrays/join.js +87 -35
- package/dist/arrays/predicates.js +46 -28
- package/dist/arrays/unique.js +45 -31
- package/dist/bin/_internal.js +34 -42
- package/dist/bin/check-primordials.js +175 -233
- package/dist/bin/check.js +51 -72
- package/dist/bin/exec.js +70 -74
- package/dist/bin/find.js +151 -134
- package/dist/bin/resolve.js +180 -246
- package/dist/bin/shadow.js +24 -33
- package/dist/bin/socket-lib.js +51 -73
- package/dist/bin/types.js +1 -17
- package/dist/bin/which.js +211 -146
- package/dist/cacache/_internal.js +25 -40
- package/dist/cacache/clear.js +79 -72
- package/dist/cacache/read.js +48 -46
- package/dist/cacache/tmp.js +29 -36
- package/dist/cacache/types.js +1 -17
- package/dist/cacache/write.js +43 -48
- package/dist/cache/ttl/store.js +232 -288
- package/dist/cache/ttl/types.js +1 -17
- package/dist/checks/primordials-defaults.js +83 -89
- package/dist/checks/primordials.js +225 -277
- package/dist/colors/convert.js +45 -37
- package/dist/colors/palette.js +88 -45
- package/dist/colors/socket-palette.js +74 -84
- package/dist/colors/types.js +1 -17
- package/dist/compression/_internal.js +57 -72
- package/dist/compression/brotli.js +94 -127
- package/dist/compression/gzip.js +95 -121
- package/dist/compression/types.js +1 -17
- package/dist/constants/agents.js +61 -113
- package/dist/constants/encoding.js +19 -42
- package/dist/constants/github.js +12 -30
- package/dist/constants/licenses.js +48 -63
- package/dist/constants/lifecycle-script-names.js +31 -45
- package/dist/constants/maintained-node-versions.js +22 -37
- package/dist/constants/node.js +226 -167
- package/dist/constants/package-default-node-range.js +16 -41
- package/dist/constants/package-default-socket-categories.js +12 -30
- package/dist/constants/packages.js +77 -126
- package/dist/constants/platform.js +27 -49
- package/dist/constants/sentinels.js +23 -48
- package/dist/constants/socket.js +42 -87
- package/dist/constants/testing.js +15 -34
- package/dist/constants/time.js +16 -36
- package/dist/constants/typescript.js +32 -52
- package/dist/cover/code.js +111 -142
- package/dist/cover/formatters.js +118 -101
- package/dist/cover/type.js +50 -76
- package/dist/cover/types.js +1 -17
- package/dist/crypto/hash.js +54 -46
- package/dist/debug/_internal.js +62 -71
- package/dist/debug/caller-info.js +53 -64
- package/dist/debug/namespace.js +80 -90
- package/dist/debug/output.js +172 -188
- package/dist/debug/types.js +1 -17
- package/dist/dlx/_internal.js +24 -43
- package/dist/dlx/arborist.js +162 -160
- package/dist/dlx/binary-cache.js +228 -200
- package/dist/dlx/binary-download.js +172 -211
- package/dist/dlx/binary-resolution.js +165 -157
- package/dist/dlx/binary-types.js +1 -17
- package/dist/dlx/binary.js +149 -189
- package/dist/dlx/cache.js +45 -30
- package/dist/dlx/detect.js +245 -159
- package/dist/dlx/dir.js +67 -51
- package/dist/dlx/firewall.js +62 -100
- package/dist/dlx/lockfile.js +122 -127
- package/dist/dlx/manifest.js +264 -274
- package/dist/dlx/package.js +241 -244
- package/dist/dlx/packages.js +99 -96
- package/dist/dlx/paths.js +73 -59
- package/dist/dlx/spec.js +52 -60
- package/dist/dlx/types.js +1 -17
- package/dist/eco/cargo/lockfile-format.js +19 -36
- package/dist/eco/cargo/manifest-format.js +17 -35
- package/dist/eco/cargo/parse-lockfile.js +210 -237
- package/dist/eco/manifest/analyze-lockfile.js +46 -63
- package/dist/eco/manifest/detect-format.js +66 -90
- package/dist/eco/manifest/find-packages.js +39 -64
- package/dist/eco/manifest/get-package-versions.js +27 -48
- package/dist/eco/manifest/get-package.js +21 -40
- package/dist/eco/manifest/manifest-error.js +14 -35
- package/dist/eco/manifest/parse-lockfile.js +40 -86
- package/dist/eco/manifest/parse-manifest.js +26 -43
- package/dist/eco/manifest/parse.js +26 -47
- package/dist/eco/manifest/types.js +1 -17
- package/dist/eco/npm/bun/exec.js +23 -32
- package/dist/eco/npm/manifest-format.js +21 -35
- package/dist/eco/npm/npm/exec.js +51 -61
- package/dist/eco/npm/npm/extract-package-name-from-path.js +28 -50
- package/dist/eco/npm/npm/flags.js +80 -52
- package/dist/eco/npm/npm/lockfile-format.js +21 -40
- package/dist/eco/npm/npm/parse-git-url.js +26 -40
- package/dist/eco/npm/npm/parse-lockfile.js +184 -210
- package/dist/eco/npm/parse-package-json.js +71 -102
- package/dist/eco/npm/pnpm/detect-pnpm-version.js +22 -43
- package/dist/eco/npm/pnpm/exec.js +51 -62
- package/dist/eco/npm/pnpm/flags.js +75 -68
- package/dist/eco/npm/pnpm/lockfile-format.js +19 -36
- package/dist/eco/npm/pnpm/parse-lockfile.js +235 -259
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +37 -47
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +36 -49
- package/dist/eco/npm/script.js +82 -90
- package/dist/eco/npm/vlt/exec.js +24 -32
- package/dist/eco/npm/yarnpkg/yarn/exec.js +60 -59
- package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +20 -36
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +194 -242
- package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +37 -61
- package/dist/eco/purl.js +50 -60
- package/dist/eco/types.js +1 -17
- package/dist/effects/pulse-frames.js +64 -65
- package/dist/effects/shimmer-keyframes.js +71 -52
- package/dist/effects/shimmer-terminal.js +81 -50
- package/dist/effects/shimmer.js +290 -153
- package/dist/env/boolean.js +42 -43
- package/dist/env/case-insensitive.js +54 -39
- package/dist/env/ci.js +29 -31
- package/dist/env/debug.js +28 -31
- package/dist/env/github.js +144 -59
- package/dist/env/home.js +38 -31
- package/dist/env/locale.js +59 -39
- package/dist/env/node-auth-token.js +28 -31
- package/dist/env/node-env.js +28 -31
- package/dist/env/npm.js +94 -47
- package/dist/env/number.js +50 -51
- package/dist/env/package-manager.js +95 -83
- package/dist/env/path.js +28 -31
- package/dist/env/pre-commit.js +30 -32
- package/dist/env/proxy.js +121 -122
- package/dist/env/rewire.js +204 -96
- package/dist/env/shell.js +28 -31
- package/dist/env/socket-cli.js +233 -81
- package/dist/env/socket.js +521 -156
- package/dist/env/string.js +43 -44
- package/dist/env/temp-dir.js +59 -39
- package/dist/env/term.js +28 -31
- package/dist/env/test.js +65 -43
- package/dist/env/types.js +1 -17
- package/dist/env/windows.js +78 -43
- package/dist/env/xdg.js +62 -39
- package/dist/errors/message.js +40 -46
- package/dist/errors/predicates.js +61 -49
- package/dist/errors/stack.js +24 -36
- package/dist/events/exit/_internal.js +86 -103
- package/dist/events/exit/handler.js +48 -55
- package/dist/events/exit/intercept.js +49 -70
- package/dist/events/exit/lifecycle.js +92 -101
- package/dist/events/exit/signals.js +25 -31
- package/dist/events/exit/types.js +1 -17
- package/dist/events/warning/handler.js +43 -40
- package/dist/events/warning/suppress.js +111 -90
- package/dist/external/@npmcli/package-json/lib/read-package.js +132 -153
- package/dist/external/@npmcli/package-json/lib/sort.js +73 -105
- package/dist/external/@npmcli/package-json.js +12705 -15140
- package/dist/external/@npmcli/promise-spawn.js +451 -472
- package/dist/external/@sinclair/typebox/value.js +7443 -9002
- package/dist/external/@sinclair/typebox.js +7516 -7885
- package/dist/external/@socketregistry/is-unicode-supported.js +31 -39
- package/dist/external/@socketregistry/packageurl-js.js +6127 -7369
- package/dist/external/@socketregistry/yocto-spinner.js +394 -455
- package/dist/external/@yarnpkg/extensions.js +435 -1022
- package/dist/external/adm-zip.js +2313 -2673
- package/dist/external/debug.js +700 -687
- package/dist/external/external-pack.js +2658 -3171
- package/dist/external/fast-sort.js +124 -138
- package/dist/external/get-east-asian-width.js +70 -64
- package/dist/external/libnpmexec.js +28 -31
- package/dist/external/npm-pack.js +43617 -50137
- package/dist/external/p-map.js +198 -222
- package/dist/external/pico-pack.js +6735 -7304
- package/dist/external/pony-cause.js +143 -139
- package/dist/external/shell-quote.js +226 -0
- package/dist/external/spdx-pack.js +1283 -1403
- package/dist/external/streaming-iterables.js +835 -1052
- package/dist/external/tar-fs.js +2769 -3048
- package/dist/external/which.js +267 -251
- package/dist/external/yargs-parser.js +851 -1074
- package/dist/external-tools/bazel/asset-names.js +98 -90
- package/dist/external-tools/bazel/from-download.js +52 -46
- package/dist/external-tools/bazel/from-path.js +27 -38
- package/dist/external-tools/bazel/read-bazel-version-file.js +35 -57
- package/dist/external-tools/bazel/resolve-asset-url.js +24 -39
- package/dist/external-tools/bazel/resolve-bazel-version.js +34 -56
- package/dist/external-tools/bazel/resolve.js +44 -58
- package/dist/external-tools/bazel/types.js +1 -17
- package/dist/external-tools/cdxgen/asset-names.js +59 -66
- package/dist/external-tools/cdxgen/from-download.js +52 -80
- package/dist/external-tools/cdxgen/from-path.js +19 -37
- package/dist/external-tools/cdxgen/from-vfs.js +22 -43
- package/dist/external-tools/cdxgen/resolve.js +48 -63
- package/dist/external-tools/cdxgen/types.js +1 -17
- package/dist/external-tools/from-download.js +107 -67
- package/dist/external-tools/janus/asset-names.js +44 -51
- package/dist/external-tools/janus/from-download.js +45 -70
- package/dist/external-tools/janus/from-path.js +19 -37
- package/dist/external-tools/janus/from-vfs.js +22 -43
- package/dist/external-tools/janus/resolve.js +45 -63
- package/dist/external-tools/janus/types.js +1 -17
- package/dist/external-tools/jre/asset-names.js +109 -82
- package/dist/external-tools/jre/detect-platform-arch.js +25 -49
- package/dist/external-tools/jre/from-download.js +71 -67
- package/dist/external-tools/jre/from-java-home.js +27 -54
- package/dist/external-tools/jre/from-path.js +27 -49
- package/dist/external-tools/jre/from-vfs.js +39 -60
- package/dist/external-tools/jre/resolve.js +55 -68
- package/dist/external-tools/jre/types.js +1 -17
- package/dist/external-tools/manifest.js +130 -150
- package/dist/external-tools/opengrep/asset-names.js +60 -72
- package/dist/external-tools/opengrep/from-download.js +58 -80
- package/dist/external-tools/opengrep/from-path.js +19 -37
- package/dist/external-tools/opengrep/from-vfs.js +23 -43
- package/dist/external-tools/opengrep/resolve.js +43 -63
- package/dist/external-tools/opengrep/types.js +1 -17
- package/dist/external-tools/sbt/asset-names.js +21 -30
- package/dist/external-tools/sbt/from-download.js +50 -61
- package/dist/external-tools/sbt/from-path.js +23 -38
- package/dist/external-tools/sbt/from-vfs.js +30 -44
- package/dist/external-tools/sbt/resolve.js +45 -63
- package/dist/external-tools/sbt/types.js +1 -17
- package/dist/external-tools/synp/asset-names.js +11 -29
- package/dist/external-tools/synp/from-download.js +24 -41
- package/dist/external-tools/synp/from-path.js +19 -37
- package/dist/external-tools/synp/from-vfs.js +22 -43
- package/dist/external-tools/synp/resolve.js +43 -62
- package/dist/external-tools/synp/types.js +1 -17
- package/dist/external-tools/trivy/asset-names.js +51 -62
- package/dist/external-tools/trivy/from-download.js +42 -64
- package/dist/external-tools/trivy/from-path.js +19 -37
- package/dist/external-tools/trivy/from-vfs.js +22 -43
- package/dist/external-tools/trivy/resolve.js +43 -63
- package/dist/external-tools/trivy/types.js +1 -17
- package/dist/external-tools/trufflehog/asset-names.js +54 -66
- package/dist/external-tools/trufflehog/from-download.js +44 -62
- package/dist/external-tools/trufflehog/from-path.js +21 -37
- package/dist/external-tools/trufflehog/from-vfs.js +26 -43
- package/dist/external-tools/trufflehog/resolve.js +43 -63
- package/dist/external-tools/trufflehog/types.js +1 -17
- package/dist/external-tools/uv/asset-names.js +64 -74
- package/dist/external-tools/uv/from-download.js +44 -65
- package/dist/external-tools/uv/from-path.js +19 -37
- package/dist/external-tools/uv/from-vfs.js +22 -43
- package/dist/external-tools/uv/resolve.js +42 -63
- package/dist/external-tools/uv/types.js +1 -17
- package/dist/fs/_internal.js +40 -42
- package/dist/fs/access.js +57 -54
- package/dist/fs/encoding.js +80 -97
- package/dist/fs/find-up.js +126 -125
- package/dist/fs/inspect.js +168 -99
- package/dist/fs/path-cache.js +31 -32
- package/dist/fs/read-dir.js +102 -79
- package/dist/fs/read-file.js +177 -118
- package/dist/fs/read-json-cache.js +150 -134
- package/dist/fs/read-json.js +172 -187
- package/dist/fs/resolve-module.js +35 -58
- package/dist/fs/safe.js +278 -169
- package/dist/fs/types.js +1 -17
- package/dist/fs/unique.js +52 -48
- package/dist/fs/validate.js +56 -40
- package/dist/fs/write-json.js +109 -75
- package/dist/git/_internal.js +251 -216
- package/dist/git/changed.js +191 -74
- package/dist/git/repo.js +118 -104
- package/dist/git/staged.js +172 -62
- package/dist/git/types.js +1 -17
- package/dist/git/unstaged.js +175 -62
- package/dist/github/constants.js +25 -33
- package/dist/github/errors.js +46 -38
- package/dist/github/fetch.js +137 -82
- package/dist/github/ghsa.js +217 -151
- package/dist/github/refs-cache.js +54 -43
- package/dist/github/refs-graphql.js +97 -89
- package/dist/github/refs-rest.js +70 -101
- package/dist/github/refs.js +105 -64
- package/dist/github/token.js +96 -48
- package/dist/github/types.js +1 -17
- package/dist/globs/_internal.js +73 -82
- package/dist/globs/defaults.js +40 -59
- package/dist/globs/match.js +93 -77
- package/dist/globs/matcher.js +104 -92
- package/dist/globs/stream.js +43 -55
- package/dist/globs/types.js +1 -17
- package/dist/http-request/_internal.js +11 -38
- package/dist/http-request/browser-fetch.js +19 -29
- package/dist/http-request/browser.js +188 -206
- package/dist/http-request/checksums.js +101 -65
- package/dist/http-request/download-types.js +1 -17
- package/dist/http-request/download.js +195 -196
- package/dist/http-request/errors.js +39 -47
- package/dist/http-request/headers.js +95 -80
- package/dist/http-request/http-request.js +10 -35
- package/dist/http-request/node.js +71 -97
- package/dist/http-request/request-attempt.js +232 -285
- package/dist/http-request/request-types.js +1 -17
- package/dist/http-request/request.js +106 -108
- package/dist/http-request/response-reader.js +47 -51
- package/dist/http-request/response-types.js +22 -38
- package/dist/http-request/user-agent.js +73 -55
- package/dist/integrity.js +105 -106
- package/dist/ipc/_internal.js +34 -48
- package/dist/ipc/directory.js +55 -63
- package/dist/ipc/paths.js +52 -45
- package/dist/ipc/types.js +1 -17
- package/dist/ipc/write.js +81 -74
- package/dist/ipc-cli/get.js +29 -56
- package/dist/ipc-cli/types.js +1 -17
- package/dist/json/edit.js +182 -242
- package/dist/json/format.js +202 -103
- package/dist/json/parse.js +206 -109
- package/dist/json/types.js +1 -17
- package/dist/links/create.js +93 -60
- package/dist/links/types.js +1 -17
- package/dist/logger/_internal.js +109 -73
- package/dist/logger/browser.js +45 -56
- package/dist/logger/colors.js +31 -49
- package/dist/logger/console.js +89 -112
- package/dist/logger/default.js +19 -33
- package/dist/logger/logger.js +5 -29
- package/dist/logger/node.js +793 -854
- package/dist/logger/symbols-builder.js +54 -56
- package/dist/logger/symbols.js +135 -118
- package/dist/logger/types.js +1 -17
- package/dist/memo/_internal.js +39 -49
- package/dist/memo/async.js +133 -117
- package/dist/memo/clear.js +25 -34
- package/dist/memo/decorator.js +43 -37
- package/dist/memo/memoize.js +97 -88
- package/dist/memo/once.js +42 -41
- package/dist/memo/types.js +1 -17
- package/dist/memo/weak.js +45 -41
- package/dist/node/async-hooks.js +9 -30
- package/dist/node/child-process.js +9 -30
- package/dist/node/crypto.js +9 -30
- package/dist/node/events.js +9 -30
- package/dist/node/fs-promises.js +9 -30
- package/dist/node/fs.js +9 -30
- package/dist/node/http.js +9 -30
- package/dist/node/https.js +9 -30
- package/dist/node/module.js +20 -34
- package/dist/node/os.js +9 -30
- package/dist/node/path.js +9 -30
- package/dist/node/timers-promises.js +9 -30
- package/dist/node/url.js +9 -30
- package/dist/node/util.js +9 -30
- package/dist/objects/getters.js +185 -126
- package/dist/objects/inspect.js +85 -52
- package/dist/objects/mutate.js +96 -76
- package/dist/objects/predicates.js +112 -59
- package/dist/objects/sort.js +120 -76
- package/dist/objects/types.js +1 -17
- package/dist/packages/edit-class.js +198 -265
- package/dist/packages/edit.js +79 -86
- package/dist/packages/exports.js +146 -157
- package/dist/packages/isolation.js +159 -209
- package/dist/packages/licenses.js +207 -189
- package/dist/packages/manifest.js +134 -172
- package/dist/packages/normalize.js +91 -102
- package/dist/packages/operations.d.ts +2 -0
- package/dist/packages/operations.js +283 -254
- package/dist/packages/provenance.js +195 -245
- package/dist/packages/specs.js +94 -84
- package/dist/packages/types.js +1 -17
- package/dist/packages/validation.js +49 -50
- package/dist/paths/_internal.js +82 -86
- package/dist/paths/conversion.js +112 -65
- package/dist/paths/dirnames.js +17 -42
- package/dist/paths/exts.js +23 -54
- package/dist/paths/filenames.js +21 -50
- package/dist/paths/globs.js +15 -38
- package/dist/paths/normalize.js +215 -236
- package/dist/paths/packages.js +34 -49
- package/dist/paths/predicates.js +184 -106
- package/dist/paths/resolve.js +146 -128
- package/dist/paths/rewire.js +108 -72
- package/dist/paths/socket.js +252 -132
- package/dist/paths/walk.js +55 -60
- package/dist/perf/_internal.js +10 -28
- package/dist/perf/enabled.js +21 -30
- package/dist/perf/metrics.js +81 -67
- package/dist/perf/report.js +79 -80
- package/dist/perf/timer.js +180 -126
- package/dist/perf/types.js +1 -17
- package/dist/pkg-ext/data.js +29 -82
- package/dist/pkg-ext/types.js +1 -17
- package/dist/primordials/array.js +120 -198
- package/dist/primordials/buffer.js +28 -51
- package/dist/primordials/date.js +26 -51
- package/dist/primordials/error.js +33 -59
- package/dist/primordials/function.js +21 -41
- package/dist/primordials/globals.js +25 -48
- package/dist/primordials/json.js +14 -30
- package/dist/primordials/map-set.js +88 -152
- package/dist/primordials/math.js +59 -116
- package/dist/primordials/number.js +41 -76
- package/dist/primordials/object.js +56 -116
- package/dist/primordials/promise.js +28 -52
- package/dist/primordials/reflect.js +24 -52
- package/dist/primordials/regexp.js +25 -47
- package/dist/primordials/string.js +114 -167
- package/dist/primordials/symbol.js +40 -72
- package/dist/primordials/uncurry.js +38 -55
- package/dist/primordials/url.js +27 -66
- package/dist/process/_internal.js +7 -32
- package/dist/process/abort.js +29 -35
- package/dist/process/lock-instance.js +26 -30
- package/dist/process/lock-manager.js +279 -307
- package/dist/process/lock-types.js +1 -17
- package/dist/process/spawn/_internal.js +43 -55
- package/dist/process/spawn/child.js +172 -211
- package/dist/process/spawn/errors.js +116 -113
- package/dist/process/spawn/stdio.js +51 -35
- package/dist/process/spawn/types.js +1 -17
- package/dist/process/transient.js +49 -66
- package/dist/promises/_internal.js +31 -34
- package/dist/promises/iterate.js +238 -102
- package/dist/promises/options.js +123 -101
- package/dist/promises/queue.js +115 -136
- package/dist/promises/resolvers.js +77 -46
- package/dist/promises/retry.js +156 -101
- package/dist/promises/types.js +1 -17
- package/dist/regexps/escape.js +32 -30
- package/dist/regexps/hex.js +16 -33
- package/dist/regexps/spec.js +53 -81
- package/dist/releases/github-archives.js +127 -118
- package/dist/releases/github-asset-url.js +162 -146
- package/dist/releases/github-assets.js +37 -49
- package/dist/releases/github-auth.js +32 -48
- package/dist/releases/github-downloads.js +118 -138
- package/dist/releases/github-listing.js +175 -145
- package/dist/releases/github-retry-config.js +41 -47
- package/dist/releases/github-types.js +1 -17
- package/dist/releases/socket-btm.js +273 -192
- package/dist/schema/parse.js +35 -36
- package/dist/schema/types.js +1 -17
- package/dist/schema/validate.js +118 -99
- package/dist/sea/detect.js +57 -52
- package/dist/secrets/_internal.js +86 -67
- package/dist/secrets/find.js +96 -77
- package/dist/secrets/keychain.js +315 -309
- package/dist/secrets/linux.js +133 -135
- package/dist/secrets/macos.js +151 -147
- package/dist/secrets/rc.js +182 -181
- package/dist/secrets/socket-api-token.js +28 -43
- package/dist/secrets/types.js +1 -17
- package/dist/secrets/windows.js +184 -242
- package/dist/shadow/skip.js +51 -70
- package/dist/shadow/types.js +1 -17
- package/dist/shell/parse.d.ts +26 -0
- package/dist/shell/parse.js +35 -0
- package/dist/shell/quote.d.ts +19 -0
- package/dist/shell/quote.js +30 -0
- package/dist/smol/detect.js +67 -43
- package/dist/smol/http.js +33 -37
- package/dist/smol/https.js +31 -37
- package/dist/smol/manifest.js +33 -37
- package/dist/smol/path.js +33 -37
- package/dist/smol/primordial.js +35 -37
- package/dist/smol/purl.js +34 -37
- package/dist/smol/versions.js +31 -37
- package/dist/smol/vfs.js +46 -38
- package/dist/sorts/_internal.js +14 -40
- package/dist/sorts/natural.js +57 -64
- package/dist/sorts/semver.js +33 -43
- package/dist/sorts/strings.js +24 -30
- package/dist/sorts/types.js +1 -17
- package/dist/spinner/default.js +72 -63
- package/dist/spinner/format.js +86 -71
- package/dist/spinner/spinner.js +749 -797
- package/dist/spinner/types.js +1 -17
- package/dist/spinner/with.js +193 -137
- package/dist/ssri/convert.js +64 -47
- package/dist/ssri/parse.js +38 -37
- package/dist/ssri/validate.js +51 -34
- package/dist/stdio/_internal.js +50 -46
- package/dist/stdio/clear.js +208 -86
- package/dist/stdio/divider.js +170 -97
- package/dist/stdio/footer.js +116 -110
- package/dist/stdio/header.js +117 -90
- package/dist/stdio/progress.js +189 -218
- package/dist/stdio/prompts.js +244 -168
- package/dist/stdio/stderr.js +173 -78
- package/dist/stdio/stdout.js +177 -94
- package/dist/streams/parallel.js +58 -50
- package/dist/streams/transform.js +36 -45
- package/dist/strings/format.js +145 -63
- package/dist/strings/predicates.js +56 -34
- package/dist/strings/search.js +52 -42
- package/dist/strings/transform.js +113 -72
- package/dist/strings/types.js +1 -17
- package/dist/strings/width.js +89 -82
- package/dist/tables/bordered.js +81 -81
- package/dist/tables/padding.js +36 -46
- package/dist/tables/simple.js +62 -70
- package/dist/tables/types.js +1 -17
- package/dist/temporal/instant.js +72 -81
- package/dist/temporal/now.js +40 -31
- package/dist/temporal/slots.js +42 -36
- package/dist/temporal/system.js +36 -36
- package/dist/temporal/temporal.js +11 -41
- package/dist/themes/context.js +131 -69
- package/dist/themes/resolve.js +207 -132
- package/dist/themes/themes.js +225 -194
- package/dist/themes/types.js +1 -17
- package/dist/url/parse.js +48 -51
- package/dist/url/predicates.js +24 -31
- package/dist/url/search-params.js +133 -101
- package/dist/url/types.js +1 -17
- package/dist/versions/_internal.js +31 -33
- package/dist/versions/compare.js +80 -58
- package/dist/versions/modify.js +41 -39
- package/dist/versions/parse.js +88 -64
- package/dist/versions/range.js +58 -41
- package/dist/versions/types.js +1 -17
- package/dist/words/article.js +22 -30
- package/dist/words/capitalize.js +25 -34
- package/dist/words/pluralize.js +23 -31
- package/dist/words/types.js +1 -17
- package/package.json +17 -5
|
@@ -1,48 +1,39 @@
|
|
|
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
|
-
var import_retry = require("../promises/retry");
|
|
29
|
-
// @__NO_SIDE_EFFECTS__
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_promises_options = require('../promises/options.js');
|
|
5
|
+
const require_promises_retry = require('../promises/retry.js');
|
|
6
|
+
let src_external_streaming_iterables = require("../external/streaming-iterables");
|
|
7
|
+
|
|
8
|
+
//#region src/streams/transform.ts
|
|
9
|
+
/**
|
|
10
|
+
* @file Streaming transform helper — `transform()` wraps
|
|
11
|
+
* `streaming-iterables.transform` with the project's `pRetry` per-item retry
|
|
12
|
+
* policy.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Transform an iterable with a function.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ;```typescript
|
|
19
|
+
* const lines = ['hello', 'world']
|
|
20
|
+
* for await (const upper of transform(lines, async line => {
|
|
21
|
+
* return line.toUpperCase()
|
|
22
|
+
* })) {
|
|
23
|
+
* console.log(upper) // 'HELLO', 'WORLD'
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
30
28
|
function transform(iterable, func, options) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
});
|
|
39
|
-
return result2;
|
|
40
|
-
},
|
|
41
|
-
iterable
|
|
42
|
-
);
|
|
43
|
-
return result;
|
|
29
|
+
const opts = /* @__PURE__ */ require_promises_options.normalizeIterationOptions(options);
|
|
30
|
+
return (0, src_external_streaming_iterables.transform)(opts.concurrency, async (item) => {
|
|
31
|
+
return await /* @__PURE__ */ require_promises_retry.pRetry((...args) => func(args[0]), {
|
|
32
|
+
...opts.retries,
|
|
33
|
+
args: [item]
|
|
34
|
+
});
|
|
35
|
+
}, iterable);
|
|
44
36
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
});
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
exports.transform = transform;
|
package/dist/strings/format.js
CHANGED
|
@@ -1,73 +1,155 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* Socket Lib - Built with
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
-
var format_exports = {};
|
|
22
|
-
__export(format_exports, {
|
|
23
|
-
applyLinePrefix: () => applyLinePrefix,
|
|
24
|
-
centerText: () => centerText,
|
|
25
|
-
fromCharCode: () => fromCharCode,
|
|
26
|
-
indentString: () => indentString,
|
|
27
|
-
repeatString: () => repeatString
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(format_exports);
|
|
30
|
-
var import_strip = require("../ansi/strip");
|
|
31
|
-
var import_math = require("../primordials/math");
|
|
32
|
-
var import_string = require("../primordials/string");
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_primordials_string = require('../primordials/string.js');
|
|
5
|
+
const require_primordials_math = require('../primordials/math.js');
|
|
6
|
+
const require_ansi_strip = require('../ansi/strip.js');
|
|
7
|
+
|
|
8
|
+
//#region src/strings/format.ts
|
|
9
|
+
/**
|
|
10
|
+
* @file Line formatting helpers: `applyLinePrefix`, `centerText`,
|
|
11
|
+
* `indentString`, `repeatString`. Plus the `fromCharCode` re-export so
|
|
12
|
+
* callers don't have to reach into `primordials/string` for the most common
|
|
13
|
+
* use case.
|
|
14
|
+
*/
|
|
33
15
|
const fromCharCode = String.fromCharCode;
|
|
34
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Apply a prefix to each line of a string.
|
|
18
|
+
*
|
|
19
|
+
* Prepends the specified prefix to the beginning of each line in the input
|
|
20
|
+
* string. If the string contains newlines, the prefix is added after each
|
|
21
|
+
* newline as well. When no prefix is provided or prefix is empty, returns the
|
|
22
|
+
* original string unchanged.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ;```ts
|
|
26
|
+
* applyLinePrefix('hello\nworld', { prefix: '> ' })
|
|
27
|
+
* // Returns: '> hello\n> world'
|
|
28
|
+
*
|
|
29
|
+
* applyLinePrefix('single line', { prefix: ' ' })
|
|
30
|
+
* // Returns: ' single line'
|
|
31
|
+
*
|
|
32
|
+
* applyLinePrefix('no prefix')
|
|
33
|
+
* // Returns: 'no prefix'
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @param str - The string to add prefixes to.
|
|
37
|
+
* @param options - Configuration options.
|
|
38
|
+
*
|
|
39
|
+
* @returns The string with prefix applied to each line
|
|
40
|
+
*/
|
|
41
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
35
42
|
function applyLinePrefix(str, options) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
${prefix}`) : str}` : str;
|
|
43
|
+
const { prefix = "" } = {
|
|
44
|
+
__proto__: null,
|
|
45
|
+
...options
|
|
46
|
+
};
|
|
47
|
+
return prefix.length ? `${prefix}${require_primordials_string.StringPrototypeIncludes(str, "\n") ? str.replace(/\n/g, `\n${prefix}`) : str}` : str;
|
|
42
48
|
}
|
|
43
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Center text within a given width.
|
|
51
|
+
*
|
|
52
|
+
* Adds spaces before and after the text to center it within the specified
|
|
53
|
+
* width. Distributes padding evenly on both sides. When the padding is odd, the
|
|
54
|
+
* extra space is added to the right side. Strips ANSI codes before calculating
|
|
55
|
+
* text length to ensure accurate centering of colored text.
|
|
56
|
+
*
|
|
57
|
+
* If the text is already wider than or equal to the target width, returns the
|
|
58
|
+
* original text unchanged (no truncation occurs).
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ;```ts
|
|
62
|
+
* centerText('hello', 11)
|
|
63
|
+
* // Returns: ' hello '
|
|
64
|
+
*
|
|
65
|
+
* centerText('hi', 10)
|
|
66
|
+
* // Returns: ' hi '
|
|
67
|
+
*
|
|
68
|
+
* centerText('odd', 8)
|
|
69
|
+
* // Returns: ' odd ' (2 left, 3 right)
|
|
70
|
+
*
|
|
71
|
+
* centerText('\x1b[31mred\x1b[0m', 7)
|
|
72
|
+
* // Returns: ' \x1b[31mred\x1b[0m '
|
|
73
|
+
*
|
|
74
|
+
* centerText('too long text', 5)
|
|
75
|
+
* // Returns: 'too long text' (no truncation)
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* @param text - The text to center (may include ANSI codes)
|
|
79
|
+
* @param width - The target width in columns.
|
|
80
|
+
*
|
|
81
|
+
* @returns The centered text with padding
|
|
82
|
+
*/
|
|
83
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
44
84
|
function centerText(text, width) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const rightPad = padding - leftPad;
|
|
52
|
-
return " ".repeat(leftPad) + text + " ".repeat(rightPad);
|
|
85
|
+
const textLength = (/* @__PURE__ */ require_ansi_strip.stripAnsi(text)).length;
|
|
86
|
+
if (textLength >= width) return text;
|
|
87
|
+
const padding = width - textLength;
|
|
88
|
+
const leftPad = require_primordials_math.MathFloor(padding / 2);
|
|
89
|
+
const rightPad = padding - leftPad;
|
|
90
|
+
return " ".repeat(leftPad) + text + " ".repeat(rightPad);
|
|
53
91
|
}
|
|
54
|
-
|
|
92
|
+
/**
|
|
93
|
+
* Indent each line of a string with spaces.
|
|
94
|
+
*
|
|
95
|
+
* Adds the specified number of spaces to the beginning of each non-empty line
|
|
96
|
+
* in the input string. Empty lines (containing only whitespace) are not
|
|
97
|
+
* indented. Uses a regular expression to efficiently handle multi-line
|
|
98
|
+
* strings.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ;```ts
|
|
102
|
+
* indentString('hello\nworld', { count: 2 })
|
|
103
|
+
* // Returns: ' hello\n world'
|
|
104
|
+
*
|
|
105
|
+
* indentString('line1\n\nline3', { count: 4 })
|
|
106
|
+
* // Returns: ' line1\n\n line3'
|
|
107
|
+
*
|
|
108
|
+
* indentString('single line')
|
|
109
|
+
* // Returns: ' single line' (default: 1 space)
|
|
110
|
+
* ```
|
|
111
|
+
*
|
|
112
|
+
* @param str - The string to indent.
|
|
113
|
+
* @param options - Configuration options.
|
|
114
|
+
*
|
|
115
|
+
* @returns The indented string
|
|
116
|
+
*/
|
|
117
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
55
118
|
function indentString(str, options) {
|
|
56
|
-
|
|
57
|
-
|
|
119
|
+
const { count = 1 } = {
|
|
120
|
+
__proto__: null,
|
|
121
|
+
...options
|
|
122
|
+
};
|
|
123
|
+
return str.replace(/^(?!\s*$)/gm, " ".repeat(count));
|
|
58
124
|
}
|
|
59
|
-
|
|
125
|
+
/**
|
|
126
|
+
* Repeat a string a specified number of times.
|
|
127
|
+
*
|
|
128
|
+
* Creates a new string by repeating the input string `count` times. Returns an
|
|
129
|
+
* empty string if count is 0 or negative.
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ;```ts
|
|
133
|
+
* repeatString('hello', 3) // 'hellohellohello'
|
|
134
|
+
* repeatString('x', 5) // 'xxxxx'
|
|
135
|
+
* repeatString('hello', 0) // ''
|
|
136
|
+
* repeatString('hello', -1) // ''
|
|
137
|
+
* ```
|
|
138
|
+
*
|
|
139
|
+
* @param str - The string to repeat.
|
|
140
|
+
* @param count - The number of times to repeat the string.
|
|
141
|
+
*
|
|
142
|
+
* @returns The repeated string, or empty string if count <= 0
|
|
143
|
+
*/
|
|
144
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
60
145
|
function repeatString(str, count) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
return (0, import_string.StringPrototypeRepeat)(str, count);
|
|
146
|
+
if (count <= 0) return "";
|
|
147
|
+
return require_primordials_string.StringPrototypeRepeat(str, count);
|
|
65
148
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
});
|
|
149
|
+
|
|
150
|
+
//#endregion
|
|
151
|
+
exports.applyLinePrefix = applyLinePrefix;
|
|
152
|
+
exports.centerText = centerText;
|
|
153
|
+
exports.fromCharCode = fromCharCode;
|
|
154
|
+
exports.indentString = indentString;
|
|
155
|
+
exports.repeatString = repeatString;
|
|
@@ -1,39 +1,61 @@
|
|
|
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/strings/predicates.ts
|
|
6
|
+
/**
|
|
7
|
+
* Check if a value is a blank string (empty or only whitespace).
|
|
8
|
+
*
|
|
9
|
+
* A blank string is defined as a string that is either: - Completely empty
|
|
10
|
+
* (length 0) - Contains only whitespace characters (spaces, tabs, newlines,
|
|
11
|
+
* etc.)
|
|
12
|
+
*
|
|
13
|
+
* This is useful for validation when you need to ensure user input contains
|
|
14
|
+
* actual content, not just whitespace.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ;```ts
|
|
18
|
+
* isBlankString('') // true
|
|
19
|
+
* isBlankString(' ') // true
|
|
20
|
+
* isBlankString('\n\t ') // true
|
|
21
|
+
* isBlankString('hello') // false
|
|
22
|
+
* isBlankString(null) // false
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @param value - The value to check.
|
|
26
|
+
*
|
|
27
|
+
* @returns `true` if the value is a blank string, `false` otherwise
|
|
28
|
+
*/
|
|
29
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
28
30
|
function isBlankString(value) {
|
|
29
|
-
|
|
31
|
+
return typeof value === "string" && (!value.length || /^\s+$/.test(value));
|
|
30
32
|
}
|
|
31
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Check if a value is a non-empty string.
|
|
35
|
+
*
|
|
36
|
+
* Returns `true` only if the value is a string with at least one character.
|
|
37
|
+
* This includes strings containing only whitespace (use `isBlankString()` if
|
|
38
|
+
* you want to exclude those). Type guard ensures TypeScript knows the value is
|
|
39
|
+
* a string after this check.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ;```ts
|
|
43
|
+
* isNonEmptyString('hello') // true
|
|
44
|
+
* isNonEmptyString(' ') // true (contains whitespace)
|
|
45
|
+
* isNonEmptyString('') // false
|
|
46
|
+
* isNonEmptyString(null) // false
|
|
47
|
+
* isNonEmptyString(123) // false
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @param value - The value to check.
|
|
51
|
+
*
|
|
52
|
+
* @returns `true` if the value is a non-empty string, `false` otherwise
|
|
53
|
+
*/
|
|
54
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
32
55
|
function isNonEmptyString(value) {
|
|
33
|
-
|
|
56
|
+
return typeof value === "string" && value.length > 0;
|
|
34
57
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
});
|
|
58
|
+
|
|
59
|
+
//#endregion
|
|
60
|
+
exports.isBlankString = isBlankString;
|
|
61
|
+
exports.isNonEmptyString = isNonEmptyString;
|
package/dist/strings/search.js
CHANGED
|
@@ -1,45 +1,55 @@
|
|
|
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
|
-
//
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_primordials_string = require('../primordials/string.js');
|
|
5
|
+
const require_primordials_math = require('../primordials/math.js');
|
|
6
|
+
|
|
7
|
+
//#region src/strings/search.ts
|
|
8
|
+
/**
|
|
9
|
+
* @file `search` — like `String.prototype.search` but with a configurable
|
|
10
|
+
* starting index. The native `RegExp.exec` + `lastIndex` dance handles this,
|
|
11
|
+
* but with side-effect risk on shared regexes. This wrapper offers a clean,
|
|
12
|
+
* side-effect-free version.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Search for a regular expression in a string starting from an index.
|
|
16
|
+
*
|
|
17
|
+
* Similar to `String.prototype.search()` but allows specifying a starting
|
|
18
|
+
* position. Returns the index of the first match at or after `fromIndex`, or -1
|
|
19
|
+
* if no match is found. Negative `fromIndex` values count back from the end of
|
|
20
|
+
* the string.
|
|
21
|
+
*
|
|
22
|
+
* This is more efficient than using `str.slice(fromIndex).search()` when you
|
|
23
|
+
* need the absolute position in the original string, as it handles the offset
|
|
24
|
+
* calculation for you.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ;```ts
|
|
28
|
+
* search('hello world hello', /hello/, { fromIndex: 0 }) // 0
|
|
29
|
+
* search('hello world hello', /hello/, { fromIndex: 6 }) // 12
|
|
30
|
+
* search('hello world', /goodbye/, { fromIndex: 0 }) // -1
|
|
31
|
+
* search('hello world', /hello/, { fromIndex: -5 }) // -1
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @param str - The string to search in.
|
|
35
|
+
* @param regexp - The regular expression to search for.
|
|
36
|
+
* @param options - Configuration options.
|
|
37
|
+
*
|
|
38
|
+
* @returns The index of the first match, or -1 if not found
|
|
39
|
+
*/
|
|
40
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
29
41
|
function search(str, regexp, options) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return result === -1 ? -1 : result + offset;
|
|
42
|
+
const { fromIndex = 0 } = {
|
|
43
|
+
__proto__: null,
|
|
44
|
+
...options
|
|
45
|
+
};
|
|
46
|
+
const { length } = str;
|
|
47
|
+
if (fromIndex >= length) return -1;
|
|
48
|
+
if (fromIndex === 0) return require_primordials_string.StringPrototypeSearch(str, regexp);
|
|
49
|
+
const offset = fromIndex < 0 ? require_primordials_math.MathMax(length + fromIndex, 0) : fromIndex;
|
|
50
|
+
const result = require_primordials_string.StringPrototypeSlice(str, offset).search(regexp);
|
|
51
|
+
return result === -1 ? -1 : result + offset;
|
|
41
52
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
});
|
|
53
|
+
|
|
54
|
+
//#endregion
|
|
55
|
+
exports.search = search;
|