@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/promises/iterate.js
CHANGED
|
@@ -1,111 +1,247 @@
|
|
|
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
|
-
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_promises_options = require('./options.js');
|
|
5
|
+
const require_promises_retry = require('./retry.js');
|
|
6
|
+
const require_primordials_promise = require('../primordials/promise.js');
|
|
7
|
+
const require_arrays_chunk = require('../arrays/chunk.js');
|
|
8
|
+
|
|
9
|
+
//#region src/promises/iterate.ts
|
|
10
|
+
/**
|
|
11
|
+
* @file Concurrency-controlled async iteration helpers: `pEach`, `pEachChunk`,
|
|
12
|
+
* `pFilter`, `pFilterChunk`. All four use `pRetry` internally so each item's
|
|
13
|
+
* callback can be retried independently without affecting siblings. The chunk
|
|
14
|
+
* vs. concurrency distinction:
|
|
15
|
+
*
|
|
16
|
+
* - `pEach` / `pFilter` use a **concurrency limit**: split the input into
|
|
17
|
+
* chunks of size `concurrency`, process each chunk in parallel, then move
|
|
18
|
+
* on to the next chunk.
|
|
19
|
+
* - `pEachChunk` / `pFilterChunk` operate on **pre-chunked input**: the caller
|
|
20
|
+
* decides chunk boundaries (e.g., bulk-insert batch size, pagination page
|
|
21
|
+
* size). Useful when chunk size != concurrency cap.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Execute an async function for each array element with concurrency control.
|
|
25
|
+
*
|
|
26
|
+
* Processes array items in parallel batches (chunks) with configurable
|
|
27
|
+
* concurrency. Each item's callback can be retried independently on failure.
|
|
28
|
+
* Similar to `Promise.all(array.map(fn))` but with controlled parallelism.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* // Process items serially (concurrency: 1)
|
|
32
|
+
* await pEach(urls, async url => {
|
|
33
|
+
* await fetch(url)
|
|
34
|
+
* })
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* // Process 5 items at a time
|
|
38
|
+
* await pEach(
|
|
39
|
+
* files,
|
|
40
|
+
* async file => {
|
|
41
|
+
* await processFile(file)
|
|
42
|
+
* },
|
|
43
|
+
* 5,
|
|
44
|
+
* )
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* // With retries and cancellation
|
|
48
|
+
* const controller = new AbortController()
|
|
49
|
+
* await pEach(
|
|
50
|
+
* tasks,
|
|
51
|
+
* async task => {
|
|
52
|
+
* await executeTask(task)
|
|
53
|
+
* },
|
|
54
|
+
* {
|
|
55
|
+
* concurrency: 3,
|
|
56
|
+
* retries: 2,
|
|
57
|
+
* signal: controller.signal,
|
|
58
|
+
* },
|
|
59
|
+
* )
|
|
60
|
+
*
|
|
61
|
+
* @template T - The type of array elements.
|
|
62
|
+
*
|
|
63
|
+
* @param array - The array to iterate over.
|
|
64
|
+
* @param callbackFn - Async function to execute for each item.
|
|
65
|
+
* @param options - Concurrency as number, or full iteration options, or
|
|
66
|
+
* undefined.
|
|
67
|
+
*
|
|
68
|
+
* @returns Promise that resolves when all items are processed
|
|
69
|
+
*/
|
|
70
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
34
71
|
async function pEach(array, callbackFn, options) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
...retries,
|
|
46
|
-
args: [item],
|
|
47
|
-
signal
|
|
48
|
-
})
|
|
49
|
-
)
|
|
50
|
-
);
|
|
51
|
-
}
|
|
72
|
+
const { concurrency, retries, signal } = /* @__PURE__ */ require_promises_options.normalizeIterationOptions(options);
|
|
73
|
+
const chunks = /* @__PURE__ */ require_arrays_chunk.arrayChunk(array, concurrency);
|
|
74
|
+
for (const chunk of chunks) {
|
|
75
|
+
if (signal?.aborted) return;
|
|
76
|
+
await require_primordials_promise.PromiseAllSettled(chunk.map((item) => /* @__PURE__ */ require_promises_retry.pRetry((...args) => callbackFn(args[0]), {
|
|
77
|
+
...retries,
|
|
78
|
+
args: [item],
|
|
79
|
+
signal
|
|
80
|
+
})));
|
|
81
|
+
}
|
|
52
82
|
}
|
|
53
|
-
|
|
83
|
+
/**
|
|
84
|
+
* Process array in chunks with an async callback.
|
|
85
|
+
*
|
|
86
|
+
* Divides the array into fixed-size chunks and processes each chunk
|
|
87
|
+
* sequentially with the callback. Useful for batch operations like bulk
|
|
88
|
+
* database inserts or API calls with payload size limits.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* // Insert records in batches of 100
|
|
92
|
+
* await pEachChunk(
|
|
93
|
+
* records,
|
|
94
|
+
* async chunk => {
|
|
95
|
+
* await db.batchInsert(chunk)
|
|
96
|
+
* },
|
|
97
|
+
* { chunkSize: 100 },
|
|
98
|
+
* )
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* // Upload files in batches with retries
|
|
102
|
+
* await pEachChunk(
|
|
103
|
+
* files,
|
|
104
|
+
* async batch => {
|
|
105
|
+
* await uploadBatch(batch)
|
|
106
|
+
* },
|
|
107
|
+
* {
|
|
108
|
+
* chunkSize: 50,
|
|
109
|
+
* retries: 3,
|
|
110
|
+
* baseDelayMs: 1000,
|
|
111
|
+
* },
|
|
112
|
+
* )
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* // Process with cancellation support
|
|
116
|
+
* const controller = new AbortController()
|
|
117
|
+
* await pEachChunk(
|
|
118
|
+
* items,
|
|
119
|
+
* async chunk => {
|
|
120
|
+
* await processChunk(chunk)
|
|
121
|
+
* },
|
|
122
|
+
* {
|
|
123
|
+
* chunkSize: 25,
|
|
124
|
+
* signal: controller.signal,
|
|
125
|
+
* },
|
|
126
|
+
* )
|
|
127
|
+
*
|
|
128
|
+
* @template T - The type of array elements.
|
|
129
|
+
*
|
|
130
|
+
* @param array - The array to process in chunks.
|
|
131
|
+
* @param callbackFn - Async function to execute for each chunk.
|
|
132
|
+
* @param options - Chunk size and retry options.
|
|
133
|
+
*
|
|
134
|
+
* @returns Promise that resolves when all chunks are processed
|
|
135
|
+
*/
|
|
136
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
54
137
|
async function pEachChunk(array, callbackFn, options) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
});
|
|
67
|
-
}
|
|
138
|
+
const { chunkSize = 100, ...retryOpts } = options || {};
|
|
139
|
+
const chunks = /* @__PURE__ */ require_arrays_chunk.arrayChunk(array, chunkSize);
|
|
140
|
+
const normalizedRetryOpts = /* @__PURE__ */ require_promises_options.normalizeRetryOptions(retryOpts);
|
|
141
|
+
const { signal } = normalizedRetryOpts;
|
|
142
|
+
for (const chunk of chunks) {
|
|
143
|
+
if (signal?.aborted) return;
|
|
144
|
+
await /* @__PURE__ */ require_promises_retry.pRetry((...args) => callbackFn(args[0]), {
|
|
145
|
+
...normalizedRetryOpts,
|
|
146
|
+
args: [chunk]
|
|
147
|
+
});
|
|
148
|
+
}
|
|
68
149
|
}
|
|
69
|
-
|
|
150
|
+
/**
|
|
151
|
+
* Filter an array asynchronously with concurrency control.
|
|
152
|
+
*
|
|
153
|
+
* Tests each element with an async predicate function, processing items in
|
|
154
|
+
* parallel batches. Returns a new array with only items that pass the test.
|
|
155
|
+
* Similar to `array.filter()` but for async predicates with controlled
|
|
156
|
+
* concurrency.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* // Filter serially
|
|
160
|
+
* const activeUsers = await pFilter(users, async user => {
|
|
161
|
+
* return await isUserActive(user.id)
|
|
162
|
+
* })
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* // Filter with concurrency
|
|
166
|
+
* const validFiles = await pFilter(
|
|
167
|
+
* filePaths,
|
|
168
|
+
* async path => {
|
|
169
|
+
* return existsSync(path)
|
|
170
|
+
* },
|
|
171
|
+
* 10,
|
|
172
|
+
* )
|
|
173
|
+
*
|
|
174
|
+
* @example
|
|
175
|
+
* // With retries for flaky checks
|
|
176
|
+
* const reachable = await pFilter(
|
|
177
|
+
* endpoints,
|
|
178
|
+
* async url => {
|
|
179
|
+
* const response = await fetch(url)
|
|
180
|
+
* return response.ok
|
|
181
|
+
* },
|
|
182
|
+
* {
|
|
183
|
+
* concurrency: 5,
|
|
184
|
+
* retries: 2,
|
|
185
|
+
* },
|
|
186
|
+
* )
|
|
187
|
+
*
|
|
188
|
+
* @template T - The type of array elements.
|
|
189
|
+
*
|
|
190
|
+
* @param array - The array to filter.
|
|
191
|
+
* @param callbackFn - Async predicate function returning true to keep item.
|
|
192
|
+
* @param options - Concurrency as number, or full iteration options, or
|
|
193
|
+
* undefined.
|
|
194
|
+
*
|
|
195
|
+
* @returns Promise resolving to filtered array
|
|
196
|
+
*/
|
|
197
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
70
198
|
async function pFilter(array, callbackFn, options) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
(0, import_chunk.arrayChunk)(array, iterOpts.concurrency),
|
|
74
|
-
callbackFn,
|
|
75
|
-
iterOpts.retries
|
|
76
|
-
)).flat();
|
|
199
|
+
const iterOpts = /* @__PURE__ */ require_promises_options.normalizeIterationOptions(options);
|
|
200
|
+
return (await /* @__PURE__ */ pFilterChunk(/* @__PURE__ */ require_arrays_chunk.arrayChunk(array, iterOpts.concurrency), callbackFn, iterOpts.retries)).flat();
|
|
77
201
|
}
|
|
78
|
-
|
|
202
|
+
/**
|
|
203
|
+
* Filter chunked arrays with an async predicate.
|
|
204
|
+
*
|
|
205
|
+
* Internal helper for `pFilter`. Processes pre-chunked arrays, applying the
|
|
206
|
+
* predicate to each element within each chunk with retry support.
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* const chunks = [
|
|
210
|
+
* [1, 2],
|
|
211
|
+
* [3, 4],
|
|
212
|
+
* [5, 6],
|
|
213
|
+
* ]
|
|
214
|
+
* const filtered = await pFilterChunk(chunks, async n => n % 2 === 0)
|
|
215
|
+
* // => [[2], [4], [6]]
|
|
216
|
+
*
|
|
217
|
+
* @template T - The type of array elements.
|
|
218
|
+
*
|
|
219
|
+
* @param chunks - Pre-chunked array (array of arrays)
|
|
220
|
+
* @param callbackFn - Async predicate function.
|
|
221
|
+
* @param options - Retry count as number, or full retry options, or undefined.
|
|
222
|
+
*
|
|
223
|
+
* @returns Promise resolving to array of filtered chunks
|
|
224
|
+
*/
|
|
225
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
79
226
|
async function pFilterChunk(chunks, callbackFn, options) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
})
|
|
95
|
-
)
|
|
96
|
-
);
|
|
97
|
-
const predicateResults = settled.map(
|
|
98
|
-
(r) => r.status === "fulfilled" ? r.value : false
|
|
99
|
-
);
|
|
100
|
-
filteredChunks[i] = chunk.filter((_v, i2) => predicateResults[i2]);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return filteredChunks;
|
|
227
|
+
const retryOpts = /* @__PURE__ */ require_promises_options.normalizeRetryOptions(options);
|
|
228
|
+
const { signal } = retryOpts;
|
|
229
|
+
const { length } = chunks;
|
|
230
|
+
const filteredChunks = Array(length);
|
|
231
|
+
for (let i = 0; i < length; i += 1) if (signal?.aborted) filteredChunks[i] = [];
|
|
232
|
+
else {
|
|
233
|
+
const chunk = chunks[i];
|
|
234
|
+
const predicateResults = (await require_primordials_promise.PromiseAllSettled(chunk.map((value) => /* @__PURE__ */ require_promises_retry.pRetry((...args) => callbackFn(args[0]), {
|
|
235
|
+
...retryOpts,
|
|
236
|
+
args: [value]
|
|
237
|
+
})))).map((r) => r.status === "fulfilled" ? r.value : false);
|
|
238
|
+
filteredChunks[i] = chunk.filter((_v, i) => predicateResults[i]);
|
|
239
|
+
}
|
|
240
|
+
return filteredChunks;
|
|
104
241
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
});
|
|
242
|
+
|
|
243
|
+
//#endregion
|
|
244
|
+
exports.pEach = pEach;
|
|
245
|
+
exports.pEachChunk = pEachChunk;
|
|
246
|
+
exports.pFilter = pFilter;
|
|
247
|
+
exports.pFilterChunk = pFilterChunk;
|
package/dist/promises/options.js
CHANGED
|
@@ -1,108 +1,130 @@
|
|
|
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
|
-
//
|
|
2
|
+
/* Socket Lib - Built with rolldown */
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
const require_primordials_math = require('../primordials/math.js');
|
|
5
|
+
const require_promises__internal = require('./_internal.js');
|
|
6
|
+
|
|
7
|
+
//#region src/promises/options.ts
|
|
8
|
+
/**
|
|
9
|
+
* @file Option-shape normalizers for the iteration / retry helpers. Three free
|
|
10
|
+
* functions — kept together because they're a tiny cluster of pure transforms
|
|
11
|
+
* that callers cycle through: `resolveRetryOptions` (number-shorthand →
|
|
12
|
+
* minimal object) → `normalizeRetryOptions` (defaults + signal binding) →
|
|
13
|
+
* `normalizeIterationOptions` (concurrency + retries combined).
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Normalize options for iteration functions.
|
|
17
|
+
*
|
|
18
|
+
* Converts various option formats into a consistent structure with defaults
|
|
19
|
+
* applied. Handles number shorthand for concurrency and ensures minimum
|
|
20
|
+
* values.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* // Number shorthand for concurrency
|
|
24
|
+
* normalizeIterationOptions(5)
|
|
25
|
+
* // => { concurrency: 5, retries: {...}, signal: AbortSignal }
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* // Full options
|
|
29
|
+
* normalizeIterationOptions({ concurrency: 3, retries: 2 })
|
|
30
|
+
* // => { concurrency: 3, retries: {...}, signal: AbortSignal }
|
|
31
|
+
*
|
|
32
|
+
* @param options - Concurrency as number, or full options object, or undefined.
|
|
33
|
+
*
|
|
34
|
+
* @returns Normalized options with concurrency, retries, and signal
|
|
35
|
+
*/
|
|
36
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
31
37
|
function normalizeIterationOptions(options) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
concurrency: normalizedConcurrency,
|
|
46
|
-
retries: /* @__PURE__ */ normalizeRetryOptions({ signal, ...retryOpts }),
|
|
47
|
-
signal
|
|
48
|
-
};
|
|
38
|
+
const { concurrency = 1, retries, signal = require_promises__internal.abortSignal } = {
|
|
39
|
+
__proto__: null,
|
|
40
|
+
...typeof options === "number" ? { concurrency: options } : options
|
|
41
|
+
};
|
|
42
|
+
return {
|
|
43
|
+
__proto__: null,
|
|
44
|
+
concurrency: require_primordials_math.MathMax(1, concurrency),
|
|
45
|
+
retries: /* @__PURE__ */ normalizeRetryOptions({
|
|
46
|
+
signal,
|
|
47
|
+
.../* @__PURE__ */ resolveRetryOptions(retries)
|
|
48
|
+
}),
|
|
49
|
+
signal
|
|
50
|
+
};
|
|
49
51
|
}
|
|
50
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Normalize options for retry functionality.
|
|
54
|
+
*
|
|
55
|
+
* Converts various retry option formats into a complete configuration with all
|
|
56
|
+
* defaults. Handles legacy property names (`factor`, `minTimeout`,
|
|
57
|
+
* `maxTimeout`) and merges them with modern equivalents.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* // Number shorthand
|
|
61
|
+
* normalizeRetryOptions(3)
|
|
62
|
+
* // => { retries: 3, baseDelayMs: 200, backoffFactor: 2, ... }
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* // Full options with defaults filled in
|
|
66
|
+
* normalizeRetryOptions({ retries: 5, baseDelayMs: 500 })
|
|
67
|
+
* // => { retries: 5, baseDelayMs: 500, backoffFactor: 2, jitter: true, ... }
|
|
68
|
+
*
|
|
69
|
+
* @param options - Retry count as number, or full options object, or undefined.
|
|
70
|
+
*
|
|
71
|
+
* @returns Normalized retry options with all properties set
|
|
72
|
+
*/
|
|
73
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
51
74
|
function normalizeRetryOptions(options) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
// (attempt: number, error: unknown, delay: number) => void
|
|
66
|
-
onRetry,
|
|
67
|
-
// Whether onRetry can cancel retries by returning `false`.
|
|
68
|
-
onRetryCancelOnFalse = false,
|
|
69
|
-
// Whether onRetry will rethrow errors.
|
|
70
|
-
onRetryRethrow = false,
|
|
71
|
-
// Number of retry attempts (0 = no retries, only initial attempt).
|
|
72
|
-
retries = 0,
|
|
73
|
-
// AbortSignal used to support cancellation.
|
|
74
|
-
signal = import_internal.abortSignal
|
|
75
|
-
} = resolved;
|
|
76
|
-
return {
|
|
77
|
-
args,
|
|
78
|
-
backoffFactor,
|
|
79
|
-
baseDelayMs,
|
|
80
|
-
jitter,
|
|
81
|
-
maxDelayMs,
|
|
82
|
-
onRetry,
|
|
83
|
-
onRetryCancelOnFalse,
|
|
84
|
-
onRetryRethrow,
|
|
85
|
-
retries,
|
|
86
|
-
signal
|
|
87
|
-
};
|
|
75
|
+
const { args = [], backoffFactor = 2, baseDelayMs = 200, jitter = true, maxDelayMs = 1e4, onRetry, onRetryCancelOnFalse = false, onRetryRethrow = false, retries = 0, signal = require_promises__internal.abortSignal } = /* @__PURE__ */ resolveRetryOptions(options);
|
|
76
|
+
return {
|
|
77
|
+
args,
|
|
78
|
+
backoffFactor,
|
|
79
|
+
baseDelayMs,
|
|
80
|
+
jitter,
|
|
81
|
+
maxDelayMs,
|
|
82
|
+
onRetry,
|
|
83
|
+
onRetryCancelOnFalse,
|
|
84
|
+
onRetryRethrow,
|
|
85
|
+
retries,
|
|
86
|
+
signal
|
|
87
|
+
};
|
|
88
88
|
}
|
|
89
|
-
|
|
89
|
+
/**
|
|
90
|
+
* Resolve retry options from various input formats.
|
|
91
|
+
*
|
|
92
|
+
* Converts shorthand and partial options into a base configuration that can be
|
|
93
|
+
* further normalized. This is an internal helper for option processing.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* resolveRetryOptions(3)
|
|
97
|
+
* // => { retries: 3, minTimeout: 200, maxTimeout: 10000, factor: 2 }
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* resolveRetryOptions({ retries: 5, maxTimeout: 5000 })
|
|
101
|
+
* // => { retries: 5, minTimeout: 200, maxTimeout: 5000, factor: 2 }
|
|
102
|
+
*
|
|
103
|
+
* @param options - Retry count as number, or partial options object, or
|
|
104
|
+
* undefined.
|
|
105
|
+
*
|
|
106
|
+
* @returns Resolved retry options with defaults for basic properties
|
|
107
|
+
*/
|
|
108
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
90
109
|
function resolveRetryOptions(options) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
110
|
+
const defaults = {
|
|
111
|
+
__proto__: null,
|
|
112
|
+
retries: 0,
|
|
113
|
+
baseDelayMs: 200,
|
|
114
|
+
maxDelayMs: 1e4,
|
|
115
|
+
backoffFactor: 2
|
|
116
|
+
};
|
|
117
|
+
if (typeof options === "number") return {
|
|
118
|
+
...defaults,
|
|
119
|
+
retries: options
|
|
120
|
+
};
|
|
121
|
+
return options ? {
|
|
122
|
+
...defaults,
|
|
123
|
+
...options
|
|
124
|
+
} : defaults;
|
|
102
125
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
});
|
|
126
|
+
|
|
127
|
+
//#endregion
|
|
128
|
+
exports.normalizeIterationOptions = normalizeIterationOptions;
|
|
129
|
+
exports.normalizeRetryOptions = normalizeRetryOptions;
|
|
130
|
+
exports.resolveRetryOptions = resolveRetryOptions;
|