@socketsecurity/lib 6.0.2 → 6.0.4

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