@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.
Files changed (542) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/_virtual/_rolldown/runtime.js +45 -0
  3. package/dist/abort/signal.js +53 -59
  4. package/dist/ai/discover.js +110 -110
  5. package/dist/ai/profiles.js +94 -65
  6. package/dist/ai/spawn.js +172 -194
  7. package/dist/ai/types.js +1 -17
  8. package/dist/ai/worktree.js +160 -183
  9. package/dist/ansi/constants.js +16 -38
  10. package/dist/ansi/strip.js +44 -41
  11. package/dist/archives/_internal.js +64 -73
  12. package/dist/archives/detect.js +30 -43
  13. package/dist/archives/extract.js +43 -50
  14. package/dist/archives/tar.js +197 -228
  15. package/dist/archives/types.js +1 -17
  16. package/dist/archives/zip.js +85 -121
  17. package/dist/argv/flag-predicates.js +203 -101
  18. package/dist/argv/flag-types.js +96 -113
  19. package/dist/argv/parse-args-string.d.ts +16 -14
  20. package/dist/argv/parse-args-string.js +42 -39
  21. package/dist/argv/parse.js +145 -163
  22. package/dist/arrays/_internal.js +65 -48
  23. package/dist/arrays/chunk.js +51 -40
  24. package/dist/arrays/join.js +87 -35
  25. package/dist/arrays/predicates.js +46 -28
  26. package/dist/arrays/unique.js +45 -31
  27. package/dist/bin/_internal.js +34 -42
  28. package/dist/bin/check-primordials.js +175 -233
  29. package/dist/bin/check.js +51 -72
  30. package/dist/bin/exec.js +70 -74
  31. package/dist/bin/find.js +151 -134
  32. package/dist/bin/resolve.js +180 -246
  33. package/dist/bin/shadow.js +24 -33
  34. package/dist/bin/socket-lib.js +51 -73
  35. package/dist/bin/types.js +1 -17
  36. package/dist/bin/which.js +211 -146
  37. package/dist/cacache/_internal.js +25 -40
  38. package/dist/cacache/clear.js +79 -72
  39. package/dist/cacache/read.js +48 -46
  40. package/dist/cacache/tmp.js +29 -36
  41. package/dist/cacache/types.js +1 -17
  42. package/dist/cacache/write.js +43 -48
  43. package/dist/cache/ttl/store.js +232 -288
  44. package/dist/cache/ttl/types.js +1 -17
  45. package/dist/checks/primordials-defaults.js +83 -89
  46. package/dist/checks/primordials.js +225 -277
  47. package/dist/colors/convert.js +45 -37
  48. package/dist/colors/palette.js +88 -45
  49. package/dist/colors/socket-palette.js +74 -84
  50. package/dist/colors/types.js +1 -17
  51. package/dist/compression/_internal.js +57 -72
  52. package/dist/compression/brotli.js +94 -127
  53. package/dist/compression/gzip.js +95 -121
  54. package/dist/compression/types.js +1 -17
  55. package/dist/constants/agents.js +61 -113
  56. package/dist/constants/encoding.js +19 -42
  57. package/dist/constants/github.js +12 -30
  58. package/dist/constants/licenses.js +48 -63
  59. package/dist/constants/lifecycle-script-names.js +31 -45
  60. package/dist/constants/maintained-node-versions.js +22 -37
  61. package/dist/constants/node.js +226 -167
  62. package/dist/constants/package-default-node-range.js +16 -41
  63. package/dist/constants/package-default-socket-categories.js +12 -30
  64. package/dist/constants/packages.js +77 -126
  65. package/dist/constants/platform.js +27 -49
  66. package/dist/constants/sentinels.js +23 -48
  67. package/dist/constants/socket.js +42 -87
  68. package/dist/constants/testing.js +15 -34
  69. package/dist/constants/time.js +16 -36
  70. package/dist/constants/typescript.js +32 -52
  71. package/dist/cover/code.js +111 -142
  72. package/dist/cover/formatters.js +118 -101
  73. package/dist/cover/type.js +50 -76
  74. package/dist/cover/types.js +1 -17
  75. package/dist/crypto/hash.js +54 -46
  76. package/dist/debug/_internal.js +62 -71
  77. package/dist/debug/caller-info.js +53 -64
  78. package/dist/debug/namespace.js +80 -90
  79. package/dist/debug/output.js +172 -188
  80. package/dist/debug/types.js +1 -17
  81. package/dist/dlx/_internal.js +24 -43
  82. package/dist/dlx/arborist.js +162 -160
  83. package/dist/dlx/binary-cache.js +228 -200
  84. package/dist/dlx/binary-download.js +172 -211
  85. package/dist/dlx/binary-resolution.js +165 -157
  86. package/dist/dlx/binary-types.js +1 -17
  87. package/dist/dlx/binary.js +149 -189
  88. package/dist/dlx/cache.js +45 -30
  89. package/dist/dlx/detect.js +245 -159
  90. package/dist/dlx/dir.js +67 -51
  91. package/dist/dlx/firewall.js +62 -100
  92. package/dist/dlx/lockfile.js +122 -127
  93. package/dist/dlx/manifest.js +264 -274
  94. package/dist/dlx/package.js +241 -244
  95. package/dist/dlx/packages.js +99 -96
  96. package/dist/dlx/paths.js +73 -59
  97. package/dist/dlx/spec.js +52 -60
  98. package/dist/dlx/types.js +1 -17
  99. package/dist/eco/cargo/lockfile-format.js +19 -36
  100. package/dist/eco/cargo/manifest-format.js +17 -35
  101. package/dist/eco/cargo/parse-lockfile.js +210 -237
  102. package/dist/eco/manifest/analyze-lockfile.js +46 -63
  103. package/dist/eco/manifest/detect-format.js +66 -90
  104. package/dist/eco/manifest/find-packages.js +39 -64
  105. package/dist/eco/manifest/get-package-versions.js +27 -48
  106. package/dist/eco/manifest/get-package.js +21 -40
  107. package/dist/eco/manifest/manifest-error.js +14 -35
  108. package/dist/eco/manifest/parse-lockfile.js +40 -86
  109. package/dist/eco/manifest/parse-manifest.js +26 -43
  110. package/dist/eco/manifest/parse.js +26 -47
  111. package/dist/eco/manifest/types.js +1 -17
  112. package/dist/eco/npm/bun/exec.js +23 -32
  113. package/dist/eco/npm/manifest-format.js +21 -35
  114. package/dist/eco/npm/npm/exec.js +51 -61
  115. package/dist/eco/npm/npm/extract-package-name-from-path.js +28 -50
  116. package/dist/eco/npm/npm/flags.js +80 -52
  117. package/dist/eco/npm/npm/lockfile-format.js +21 -40
  118. package/dist/eco/npm/npm/parse-git-url.js +26 -40
  119. package/dist/eco/npm/npm/parse-lockfile.js +184 -210
  120. package/dist/eco/npm/parse-package-json.js +71 -102
  121. package/dist/eco/npm/pnpm/detect-pnpm-version.js +22 -43
  122. package/dist/eco/npm/pnpm/exec.js +51 -62
  123. package/dist/eco/npm/pnpm/flags.js +75 -68
  124. package/dist/eco/npm/pnpm/lockfile-format.js +19 -36
  125. package/dist/eco/npm/pnpm/parse-lockfile.js +235 -259
  126. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +37 -47
  127. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +36 -49
  128. package/dist/eco/npm/script.js +82 -90
  129. package/dist/eco/npm/vlt/exec.js +24 -32
  130. package/dist/eco/npm/yarnpkg/yarn/exec.js +60 -59
  131. package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +20 -36
  132. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +194 -242
  133. package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +37 -61
  134. package/dist/eco/purl.js +50 -60
  135. package/dist/eco/types.js +1 -17
  136. package/dist/effects/pulse-frames.js +64 -65
  137. package/dist/effects/shimmer-keyframes.js +71 -52
  138. package/dist/effects/shimmer-terminal.js +81 -50
  139. package/dist/effects/shimmer.js +290 -153
  140. package/dist/env/boolean.js +42 -43
  141. package/dist/env/case-insensitive.js +54 -39
  142. package/dist/env/ci.js +29 -31
  143. package/dist/env/debug.js +28 -31
  144. package/dist/env/github.js +144 -59
  145. package/dist/env/home.js +38 -31
  146. package/dist/env/locale.js +59 -39
  147. package/dist/env/node-auth-token.js +28 -31
  148. package/dist/env/node-env.js +28 -31
  149. package/dist/env/npm.js +94 -47
  150. package/dist/env/number.js +50 -51
  151. package/dist/env/package-manager.js +95 -83
  152. package/dist/env/path.js +28 -31
  153. package/dist/env/pre-commit.js +30 -32
  154. package/dist/env/proxy.js +121 -122
  155. package/dist/env/rewire.js +204 -96
  156. package/dist/env/shell.js +28 -31
  157. package/dist/env/socket-cli.js +233 -81
  158. package/dist/env/socket.js +521 -156
  159. package/dist/env/string.js +43 -44
  160. package/dist/env/temp-dir.js +59 -39
  161. package/dist/env/term.js +28 -31
  162. package/dist/env/test.js +65 -43
  163. package/dist/env/types.js +1 -17
  164. package/dist/env/windows.js +78 -43
  165. package/dist/env/xdg.js +62 -39
  166. package/dist/errors/message.js +40 -46
  167. package/dist/errors/predicates.js +61 -49
  168. package/dist/errors/stack.js +24 -36
  169. package/dist/events/exit/_internal.js +86 -103
  170. package/dist/events/exit/handler.js +48 -55
  171. package/dist/events/exit/intercept.js +49 -70
  172. package/dist/events/exit/lifecycle.js +92 -101
  173. package/dist/events/exit/signals.js +25 -31
  174. package/dist/events/exit/types.js +1 -17
  175. package/dist/events/warning/handler.js +43 -40
  176. package/dist/events/warning/suppress.js +111 -90
  177. package/dist/external/@npmcli/package-json/lib/read-package.js +132 -153
  178. package/dist/external/@npmcli/package-json/lib/sort.js +73 -105
  179. package/dist/external/@npmcli/package-json.js +12705 -15140
  180. package/dist/external/@npmcli/promise-spawn.js +451 -472
  181. package/dist/external/@sinclair/typebox/value.js +7443 -9002
  182. package/dist/external/@sinclair/typebox.js +7516 -7885
  183. package/dist/external/@socketregistry/is-unicode-supported.js +31 -39
  184. package/dist/external/@socketregistry/packageurl-js.js +6127 -7369
  185. package/dist/external/@socketregistry/yocto-spinner.js +394 -455
  186. package/dist/external/@yarnpkg/extensions.js +435 -1022
  187. package/dist/external/adm-zip.js +2313 -2673
  188. package/dist/external/debug.js +700 -687
  189. package/dist/external/external-pack.js +2658 -3171
  190. package/dist/external/fast-sort.js +124 -138
  191. package/dist/external/get-east-asian-width.js +70 -64
  192. package/dist/external/libnpmexec.js +28 -31
  193. package/dist/external/npm-pack.js +43617 -50137
  194. package/dist/external/p-map.js +198 -222
  195. package/dist/external/pico-pack.js +6735 -7304
  196. package/dist/external/pony-cause.js +143 -139
  197. package/dist/external/shell-quote.js +226 -0
  198. package/dist/external/spdx-pack.js +1283 -1403
  199. package/dist/external/streaming-iterables.js +835 -1052
  200. package/dist/external/tar-fs.js +2769 -3048
  201. package/dist/external/which.js +267 -251
  202. package/dist/external/yargs-parser.js +851 -1074
  203. package/dist/external-tools/bazel/asset-names.js +98 -90
  204. package/dist/external-tools/bazel/from-download.js +52 -46
  205. package/dist/external-tools/bazel/from-path.js +27 -38
  206. package/dist/external-tools/bazel/read-bazel-version-file.js +35 -57
  207. package/dist/external-tools/bazel/resolve-asset-url.js +24 -39
  208. package/dist/external-tools/bazel/resolve-bazel-version.js +34 -56
  209. package/dist/external-tools/bazel/resolve.js +44 -58
  210. package/dist/external-tools/bazel/types.js +1 -17
  211. package/dist/external-tools/cdxgen/asset-names.js +59 -66
  212. package/dist/external-tools/cdxgen/from-download.js +52 -80
  213. package/dist/external-tools/cdxgen/from-path.js +19 -37
  214. package/dist/external-tools/cdxgen/from-vfs.js +22 -43
  215. package/dist/external-tools/cdxgen/resolve.js +48 -63
  216. package/dist/external-tools/cdxgen/types.js +1 -17
  217. package/dist/external-tools/from-download.js +107 -67
  218. package/dist/external-tools/janus/asset-names.js +44 -51
  219. package/dist/external-tools/janus/from-download.js +45 -70
  220. package/dist/external-tools/janus/from-path.js +19 -37
  221. package/dist/external-tools/janus/from-vfs.js +22 -43
  222. package/dist/external-tools/janus/resolve.js +45 -63
  223. package/dist/external-tools/janus/types.js +1 -17
  224. package/dist/external-tools/jre/asset-names.js +109 -82
  225. package/dist/external-tools/jre/detect-platform-arch.js +25 -49
  226. package/dist/external-tools/jre/from-download.js +71 -67
  227. package/dist/external-tools/jre/from-java-home.js +27 -54
  228. package/dist/external-tools/jre/from-path.js +27 -49
  229. package/dist/external-tools/jre/from-vfs.js +39 -60
  230. package/dist/external-tools/jre/resolve.js +55 -68
  231. package/dist/external-tools/jre/types.js +1 -17
  232. package/dist/external-tools/manifest.js +130 -150
  233. package/dist/external-tools/opengrep/asset-names.js +60 -72
  234. package/dist/external-tools/opengrep/from-download.js +58 -80
  235. package/dist/external-tools/opengrep/from-path.js +19 -37
  236. package/dist/external-tools/opengrep/from-vfs.js +23 -43
  237. package/dist/external-tools/opengrep/resolve.js +43 -63
  238. package/dist/external-tools/opengrep/types.js +1 -17
  239. package/dist/external-tools/sbt/asset-names.js +21 -30
  240. package/dist/external-tools/sbt/from-download.js +50 -61
  241. package/dist/external-tools/sbt/from-path.js +23 -38
  242. package/dist/external-tools/sbt/from-vfs.js +30 -44
  243. package/dist/external-tools/sbt/resolve.js +45 -63
  244. package/dist/external-tools/sbt/types.js +1 -17
  245. package/dist/external-tools/synp/asset-names.js +11 -29
  246. package/dist/external-tools/synp/from-download.js +24 -41
  247. package/dist/external-tools/synp/from-path.js +19 -37
  248. package/dist/external-tools/synp/from-vfs.js +22 -43
  249. package/dist/external-tools/synp/resolve.js +43 -62
  250. package/dist/external-tools/synp/types.js +1 -17
  251. package/dist/external-tools/trivy/asset-names.js +51 -62
  252. package/dist/external-tools/trivy/from-download.js +42 -64
  253. package/dist/external-tools/trivy/from-path.js +19 -37
  254. package/dist/external-tools/trivy/from-vfs.js +22 -43
  255. package/dist/external-tools/trivy/resolve.js +43 -63
  256. package/dist/external-tools/trivy/types.js +1 -17
  257. package/dist/external-tools/trufflehog/asset-names.js +54 -66
  258. package/dist/external-tools/trufflehog/from-download.js +44 -62
  259. package/dist/external-tools/trufflehog/from-path.js +21 -37
  260. package/dist/external-tools/trufflehog/from-vfs.js +26 -43
  261. package/dist/external-tools/trufflehog/resolve.js +43 -63
  262. package/dist/external-tools/trufflehog/types.js +1 -17
  263. package/dist/external-tools/uv/asset-names.js +64 -74
  264. package/dist/external-tools/uv/from-download.js +44 -65
  265. package/dist/external-tools/uv/from-path.js +19 -37
  266. package/dist/external-tools/uv/from-vfs.js +22 -43
  267. package/dist/external-tools/uv/resolve.js +42 -63
  268. package/dist/external-tools/uv/types.js +1 -17
  269. package/dist/fs/_internal.js +40 -42
  270. package/dist/fs/access.js +57 -54
  271. package/dist/fs/encoding.js +80 -97
  272. package/dist/fs/find-up.js +126 -125
  273. package/dist/fs/inspect.js +168 -99
  274. package/dist/fs/path-cache.js +31 -32
  275. package/dist/fs/read-dir.js +102 -79
  276. package/dist/fs/read-file.js +177 -118
  277. package/dist/fs/read-json-cache.js +150 -134
  278. package/dist/fs/read-json.js +172 -187
  279. package/dist/fs/resolve-module.js +35 -58
  280. package/dist/fs/safe.js +278 -169
  281. package/dist/fs/types.js +1 -17
  282. package/dist/fs/unique.js +52 -48
  283. package/dist/fs/validate.js +56 -40
  284. package/dist/fs/write-json.js +109 -75
  285. package/dist/git/_internal.js +251 -216
  286. package/dist/git/changed.js +191 -74
  287. package/dist/git/repo.js +118 -104
  288. package/dist/git/staged.js +172 -62
  289. package/dist/git/types.js +1 -17
  290. package/dist/git/unstaged.js +175 -62
  291. package/dist/github/constants.js +25 -33
  292. package/dist/github/errors.js +46 -38
  293. package/dist/github/fetch.js +137 -82
  294. package/dist/github/ghsa.js +217 -151
  295. package/dist/github/refs-cache.js +54 -43
  296. package/dist/github/refs-graphql.js +97 -89
  297. package/dist/github/refs-rest.js +70 -101
  298. package/dist/github/refs.js +105 -64
  299. package/dist/github/token.js +96 -48
  300. package/dist/github/types.js +1 -17
  301. package/dist/globs/_internal.js +73 -82
  302. package/dist/globs/defaults.js +40 -59
  303. package/dist/globs/match.js +93 -77
  304. package/dist/globs/matcher.js +104 -92
  305. package/dist/globs/stream.js +43 -55
  306. package/dist/globs/types.js +1 -17
  307. package/dist/http-request/_internal.js +11 -38
  308. package/dist/http-request/browser-fetch.js +19 -29
  309. package/dist/http-request/browser.js +188 -206
  310. package/dist/http-request/checksums.js +101 -65
  311. package/dist/http-request/download-types.js +1 -17
  312. package/dist/http-request/download.js +195 -196
  313. package/dist/http-request/errors.js +39 -47
  314. package/dist/http-request/headers.js +95 -80
  315. package/dist/http-request/http-request.js +10 -35
  316. package/dist/http-request/node.js +71 -97
  317. package/dist/http-request/request-attempt.js +232 -285
  318. package/dist/http-request/request-types.js +1 -17
  319. package/dist/http-request/request.js +106 -108
  320. package/dist/http-request/response-reader.js +47 -51
  321. package/dist/http-request/response-types.js +22 -38
  322. package/dist/http-request/user-agent.js +73 -55
  323. package/dist/integrity.js +105 -106
  324. package/dist/ipc/_internal.js +34 -48
  325. package/dist/ipc/directory.js +55 -63
  326. package/dist/ipc/paths.js +52 -45
  327. package/dist/ipc/types.js +1 -17
  328. package/dist/ipc/write.js +81 -74
  329. package/dist/ipc-cli/get.js +29 -56
  330. package/dist/ipc-cli/types.js +1 -17
  331. package/dist/json/edit.js +182 -242
  332. package/dist/json/format.js +202 -103
  333. package/dist/json/parse.js +206 -109
  334. package/dist/json/types.js +1 -17
  335. package/dist/links/create.js +93 -60
  336. package/dist/links/types.js +1 -17
  337. package/dist/logger/_internal.js +109 -73
  338. package/dist/logger/browser.js +45 -56
  339. package/dist/logger/colors.js +31 -49
  340. package/dist/logger/console.js +89 -112
  341. package/dist/logger/default.js +19 -33
  342. package/dist/logger/logger.js +5 -29
  343. package/dist/logger/node.js +793 -854
  344. package/dist/logger/symbols-builder.js +54 -56
  345. package/dist/logger/symbols.js +135 -118
  346. package/dist/logger/types.js +1 -17
  347. package/dist/memo/_internal.js +39 -49
  348. package/dist/memo/async.js +133 -117
  349. package/dist/memo/clear.js +25 -34
  350. package/dist/memo/decorator.js +43 -37
  351. package/dist/memo/memoize.js +97 -88
  352. package/dist/memo/once.js +42 -41
  353. package/dist/memo/types.js +1 -17
  354. package/dist/memo/weak.js +45 -41
  355. package/dist/node/async-hooks.js +9 -30
  356. package/dist/node/child-process.js +9 -30
  357. package/dist/node/crypto.js +9 -30
  358. package/dist/node/events.js +9 -30
  359. package/dist/node/fs-promises.js +9 -30
  360. package/dist/node/fs.js +9 -30
  361. package/dist/node/http.js +9 -30
  362. package/dist/node/https.js +9 -30
  363. package/dist/node/module.js +20 -34
  364. package/dist/node/os.js +9 -30
  365. package/dist/node/path.js +9 -30
  366. package/dist/node/timers-promises.js +9 -30
  367. package/dist/node/url.js +9 -30
  368. package/dist/node/util.js +9 -30
  369. package/dist/objects/getters.js +185 -126
  370. package/dist/objects/inspect.js +85 -52
  371. package/dist/objects/mutate.js +96 -76
  372. package/dist/objects/predicates.js +112 -59
  373. package/dist/objects/sort.js +120 -76
  374. package/dist/objects/types.js +1 -17
  375. package/dist/packages/edit-class.js +198 -265
  376. package/dist/packages/edit.js +79 -86
  377. package/dist/packages/exports.js +146 -157
  378. package/dist/packages/isolation.js +159 -209
  379. package/dist/packages/licenses.js +207 -189
  380. package/dist/packages/manifest.js +134 -172
  381. package/dist/packages/normalize.js +91 -102
  382. package/dist/packages/operations.d.ts +2 -0
  383. package/dist/packages/operations.js +283 -254
  384. package/dist/packages/provenance.js +195 -245
  385. package/dist/packages/specs.js +94 -84
  386. package/dist/packages/types.js +1 -17
  387. package/dist/packages/validation.js +49 -50
  388. package/dist/paths/_internal.js +82 -86
  389. package/dist/paths/conversion.js +112 -65
  390. package/dist/paths/dirnames.js +17 -42
  391. package/dist/paths/exts.js +23 -54
  392. package/dist/paths/filenames.js +21 -50
  393. package/dist/paths/globs.js +15 -38
  394. package/dist/paths/normalize.js +215 -236
  395. package/dist/paths/packages.js +34 -49
  396. package/dist/paths/predicates.js +184 -106
  397. package/dist/paths/resolve.js +146 -128
  398. package/dist/paths/rewire.js +108 -72
  399. package/dist/paths/socket.js +252 -132
  400. package/dist/paths/walk.js +55 -60
  401. package/dist/perf/_internal.js +10 -28
  402. package/dist/perf/enabled.js +21 -30
  403. package/dist/perf/metrics.js +81 -67
  404. package/dist/perf/report.js +79 -80
  405. package/dist/perf/timer.js +180 -126
  406. package/dist/perf/types.js +1 -17
  407. package/dist/pkg-ext/data.js +29 -82
  408. package/dist/pkg-ext/types.js +1 -17
  409. package/dist/primordials/array.js +120 -198
  410. package/dist/primordials/buffer.js +28 -51
  411. package/dist/primordials/date.js +26 -51
  412. package/dist/primordials/error.js +33 -59
  413. package/dist/primordials/function.js +21 -41
  414. package/dist/primordials/globals.js +25 -48
  415. package/dist/primordials/json.js +14 -30
  416. package/dist/primordials/map-set.js +88 -152
  417. package/dist/primordials/math.js +59 -116
  418. package/dist/primordials/number.js +41 -76
  419. package/dist/primordials/object.js +56 -116
  420. package/dist/primordials/promise.js +28 -52
  421. package/dist/primordials/reflect.js +24 -52
  422. package/dist/primordials/regexp.js +25 -47
  423. package/dist/primordials/string.js +114 -167
  424. package/dist/primordials/symbol.js +40 -72
  425. package/dist/primordials/uncurry.js +38 -55
  426. package/dist/primordials/url.js +27 -66
  427. package/dist/process/_internal.js +7 -32
  428. package/dist/process/abort.js +29 -35
  429. package/dist/process/lock-instance.js +26 -30
  430. package/dist/process/lock-manager.js +279 -307
  431. package/dist/process/lock-types.js +1 -17
  432. package/dist/process/spawn/_internal.js +43 -55
  433. package/dist/process/spawn/child.js +172 -211
  434. package/dist/process/spawn/errors.js +116 -113
  435. package/dist/process/spawn/stdio.js +51 -35
  436. package/dist/process/spawn/types.js +1 -17
  437. package/dist/process/transient.js +49 -66
  438. package/dist/promises/_internal.js +31 -34
  439. package/dist/promises/iterate.js +238 -102
  440. package/dist/promises/options.js +123 -101
  441. package/dist/promises/queue.js +115 -136
  442. package/dist/promises/resolvers.js +77 -46
  443. package/dist/promises/retry.js +156 -101
  444. package/dist/promises/types.js +1 -17
  445. package/dist/regexps/escape.js +32 -30
  446. package/dist/regexps/hex.js +16 -33
  447. package/dist/regexps/spec.js +53 -81
  448. package/dist/releases/github-archives.js +127 -118
  449. package/dist/releases/github-asset-url.js +162 -146
  450. package/dist/releases/github-assets.js +37 -49
  451. package/dist/releases/github-auth.js +32 -48
  452. package/dist/releases/github-downloads.js +118 -138
  453. package/dist/releases/github-listing.js +175 -145
  454. package/dist/releases/github-retry-config.js +41 -47
  455. package/dist/releases/github-types.js +1 -17
  456. package/dist/releases/socket-btm.js +273 -192
  457. package/dist/schema/parse.js +35 -36
  458. package/dist/schema/types.js +1 -17
  459. package/dist/schema/validate.js +118 -99
  460. package/dist/sea/detect.js +57 -52
  461. package/dist/secrets/_internal.js +86 -67
  462. package/dist/secrets/find.js +96 -77
  463. package/dist/secrets/keychain.js +315 -309
  464. package/dist/secrets/linux.js +133 -135
  465. package/dist/secrets/macos.js +151 -147
  466. package/dist/secrets/rc.js +182 -181
  467. package/dist/secrets/socket-api-token.js +28 -43
  468. package/dist/secrets/types.js +1 -17
  469. package/dist/secrets/windows.js +184 -242
  470. package/dist/shadow/skip.js +51 -70
  471. package/dist/shadow/types.js +1 -17
  472. package/dist/shell/parse.d.ts +26 -0
  473. package/dist/shell/parse.js +35 -0
  474. package/dist/shell/quote.d.ts +19 -0
  475. package/dist/shell/quote.js +30 -0
  476. package/dist/smol/detect.js +67 -43
  477. package/dist/smol/http.js +33 -37
  478. package/dist/smol/https.js +31 -37
  479. package/dist/smol/manifest.js +33 -37
  480. package/dist/smol/path.js +33 -37
  481. package/dist/smol/primordial.js +35 -37
  482. package/dist/smol/purl.js +34 -37
  483. package/dist/smol/versions.js +31 -37
  484. package/dist/smol/vfs.js +46 -38
  485. package/dist/sorts/_internal.js +14 -40
  486. package/dist/sorts/natural.js +57 -64
  487. package/dist/sorts/semver.js +33 -43
  488. package/dist/sorts/strings.js +24 -30
  489. package/dist/sorts/types.js +1 -17
  490. package/dist/spinner/default.js +72 -63
  491. package/dist/spinner/format.js +86 -71
  492. package/dist/spinner/spinner.js +749 -797
  493. package/dist/spinner/types.js +1 -17
  494. package/dist/spinner/with.js +193 -137
  495. package/dist/ssri/convert.js +64 -47
  496. package/dist/ssri/parse.js +38 -37
  497. package/dist/ssri/validate.js +51 -34
  498. package/dist/stdio/_internal.js +50 -46
  499. package/dist/stdio/clear.js +208 -86
  500. package/dist/stdio/divider.js +170 -97
  501. package/dist/stdio/footer.js +116 -110
  502. package/dist/stdio/header.js +117 -90
  503. package/dist/stdio/progress.js +189 -218
  504. package/dist/stdio/prompts.js +244 -168
  505. package/dist/stdio/stderr.js +173 -78
  506. package/dist/stdio/stdout.js +177 -94
  507. package/dist/streams/parallel.js +58 -50
  508. package/dist/streams/transform.js +36 -45
  509. package/dist/strings/format.js +145 -63
  510. package/dist/strings/predicates.js +56 -34
  511. package/dist/strings/search.js +52 -42
  512. package/dist/strings/transform.js +113 -72
  513. package/dist/strings/types.js +1 -17
  514. package/dist/strings/width.js +89 -82
  515. package/dist/tables/bordered.js +81 -81
  516. package/dist/tables/padding.js +36 -46
  517. package/dist/tables/simple.js +62 -70
  518. package/dist/tables/types.js +1 -17
  519. package/dist/temporal/instant.js +72 -81
  520. package/dist/temporal/now.js +40 -31
  521. package/dist/temporal/slots.js +42 -36
  522. package/dist/temporal/system.js +36 -36
  523. package/dist/temporal/temporal.js +11 -41
  524. package/dist/themes/context.js +131 -69
  525. package/dist/themes/resolve.js +207 -132
  526. package/dist/themes/themes.js +225 -194
  527. package/dist/themes/types.js +1 -17
  528. package/dist/url/parse.js +48 -51
  529. package/dist/url/predicates.js +24 -31
  530. package/dist/url/search-params.js +133 -101
  531. package/dist/url/types.js +1 -17
  532. package/dist/versions/_internal.js +31 -33
  533. package/dist/versions/compare.js +80 -58
  534. package/dist/versions/modify.js +41 -39
  535. package/dist/versions/parse.js +88 -64
  536. package/dist/versions/range.js +58 -41
  537. package/dist/versions/types.js +1 -17
  538. package/dist/words/article.js +22 -30
  539. package/dist/words/capitalize.js +25 -34
  540. package/dist/words/pluralize.js +23 -31
  541. package/dist/words/types.js +1 -17
  542. package/package.json +17 -5
@@ -1,111 +1,247 @@
1
1
  "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
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 iterate_exports = {};
22
- __export(iterate_exports, {
23
- pEach: () => pEach,
24
- pEachChunk: () => pEachChunk,
25
- pFilter: () => pFilter,
26
- pFilterChunk: () => pFilterChunk
27
- });
28
- module.exports = __toCommonJS(iterate_exports);
29
- var import_chunk = require("../arrays/chunk");
30
- var import_promise = require("../primordials/promise");
31
- var import_options = require("./options");
32
- var import_retry = require("./retry");
33
- // @__NO_SIDE_EFFECTS__
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
- const iterOpts = (0, import_options.normalizeIterationOptions)(options);
36
- const { concurrency, retries, signal } = iterOpts;
37
- const chunks = (0, import_chunk.arrayChunk)(array, concurrency);
38
- for (const chunk of chunks) {
39
- if (signal?.aborted) {
40
- return;
41
- }
42
- await (0, import_promise.PromiseAllSettled)(
43
- chunk.map(
44
- (item) => (0, import_retry.pRetry)((...args) => callbackFn(args[0]), {
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
- // @__NO_SIDE_EFFECTS__
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
- const { chunkSize = 100, ...retryOpts } = options || {};
56
- const chunks = (0, import_chunk.arrayChunk)(array, chunkSize);
57
- const normalizedRetryOpts = (0, import_options.normalizeRetryOptions)(retryOpts);
58
- const { signal } = normalizedRetryOpts;
59
- for (const chunk of chunks) {
60
- if (signal?.aborted) {
61
- return;
62
- }
63
- await (0, import_retry.pRetry)((...args) => callbackFn(args[0]), {
64
- ...normalizedRetryOpts,
65
- args: [chunk]
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
- // @__NO_SIDE_EFFECTS__
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
- const iterOpts = (0, import_options.normalizeIterationOptions)(options);
72
- return (await /* @__PURE__ */ pFilterChunk(
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
- // @__NO_SIDE_EFFECTS__
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
- const retryOpts = (0, import_options.normalizeRetryOptions)(options);
81
- const { signal } = retryOpts;
82
- const { length } = chunks;
83
- const filteredChunks = Array(length);
84
- for (let i = 0; i < length; i += 1) {
85
- if (signal?.aborted) {
86
- filteredChunks[i] = [];
87
- } else {
88
- const chunk = chunks[i];
89
- const settled = await (0, import_promise.PromiseAllSettled)(
90
- chunk.map(
91
- (value) => (0, import_retry.pRetry)((...args) => callbackFn(args[0]), {
92
- ...retryOpts,
93
- args: [value]
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
- // Annotate the CommonJS export names for ESM import in node:
106
- 0 && (module.exports = {
107
- pEach,
108
- pEachChunk,
109
- pFilter,
110
- pFilterChunk
111
- });
242
+
243
+ //#endregion
244
+ exports.pEach = pEach;
245
+ exports.pEachChunk = pEachChunk;
246
+ exports.pFilter = pFilter;
247
+ exports.pFilterChunk = pFilterChunk;
@@ -1,108 +1,130 @@
1
1
  "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
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 options_exports = {};
22
- __export(options_exports, {
23
- normalizeIterationOptions: () => normalizeIterationOptions,
24
- normalizeRetryOptions: () => normalizeRetryOptions,
25
- resolveRetryOptions: () => resolveRetryOptions
26
- });
27
- module.exports = __toCommonJS(options_exports);
28
- var import_math = require("../primordials/math");
29
- var import_internal = require("./_internal");
30
- // @__NO_SIDE_EFFECTS__
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
- const opts = typeof options === "number" ? { concurrency: options } : options;
33
- const {
34
- // The number of concurrent executions performed at one time.
35
- concurrency = 1,
36
- // Retries as a number or options object.
37
- retries,
38
- // AbortSignal used to support cancellation.
39
- signal = import_internal.abortSignal
40
- } = { __proto__: null, ...opts };
41
- const normalizedConcurrency = (0, import_math.MathMax)(1, concurrency);
42
- const retryOpts = /* @__PURE__ */ resolveRetryOptions(retries);
43
- return {
44
- __proto__: null,
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
- // @__NO_SIDE_EFFECTS__
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
- const resolved = /* @__PURE__ */ resolveRetryOptions(options);
53
- const {
54
- // Arguments to pass to the callback function.
55
- args = [],
56
- // Multiplier for exponential backoff (e.g., 2 doubles delay each retry).
57
- backoffFactor = 2,
58
- // Initial delay before the first retry (in milliseconds).
59
- baseDelayMs = 200,
60
- // Whether to apply randomness to spread out retries.
61
- jitter = true,
62
- // Upper limit for any backoff delay (in milliseconds).
63
- maxDelayMs = 1e4,
64
- // Optional callback invoked on each retry attempt:
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
- // @__NO_SIDE_EFFECTS__
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
- const defaults = {
92
- __proto__: null,
93
- retries: 0,
94
- baseDelayMs: 200,
95
- maxDelayMs: 1e4,
96
- backoffFactor: 2
97
- };
98
- if (typeof options === "number") {
99
- return { ...defaults, retries: options };
100
- }
101
- return options ? { ...defaults, ...options } : defaults;
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
- // Annotate the CommonJS export names for ESM import in node:
104
- 0 && (module.exports = {
105
- normalizeIterationOptions,
106
- normalizeRetryOptions,
107
- resolveRetryOptions
108
- });
126
+
127
+ //#endregion
128
+ exports.normalizeIterationOptions = normalizeIterationOptions;
129
+ exports.normalizeRetryOptions = normalizeRetryOptions;
130
+ exports.resolveRetryOptions = resolveRetryOptions;