@socketsecurity/lib 6.0.5 → 6.0.7

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 (534) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/ai/discover.d.mts +2 -2
  3. package/dist/ai/discover.js +6 -4
  4. package/dist/ai/spawn.js +10 -6
  5. package/dist/ai/types.d.mts +18 -6
  6. package/dist/ai/worktree.d.mts +6 -6
  7. package/dist/ai/worktree.js +12 -7
  8. package/dist/ansi/strip.d.ts +1 -1
  9. package/dist/ansi/strip.js +0 -2
  10. package/dist/archives/_internal.js +7 -9
  11. package/dist/archives/extract.js +1 -1
  12. package/dist/archives/tar.js +6 -6
  13. package/dist/archives/zip.js +4 -6
  14. package/dist/argv/flag-predicates.d.ts +12 -12
  15. package/dist/argv/flag-predicates.js +17 -17
  16. package/dist/argv/flag-types.d.ts +18 -18
  17. package/dist/argv/flag-types.js +4 -4
  18. package/dist/argv/parse.d.ts +1 -1
  19. package/dist/arrays/_internal.js +11 -12
  20. package/dist/arrays/chunk.js +0 -1
  21. package/dist/arrays/join.d.ts +37 -3
  22. package/dist/arrays/join.js +43 -7
  23. package/dist/arrays/unique.js +0 -1
  24. package/dist/bin/_internal.d.ts +1 -1
  25. package/dist/bin/_internal.js +1 -1
  26. package/dist/bin/acorn-bindgen.cjs +769 -0
  27. package/dist/bin/acorn.wasm +0 -0
  28. package/dist/bin/exec.js +2 -3
  29. package/dist/bin/find.js +13 -13
  30. package/dist/bin/prim.cjs +39244 -0
  31. package/dist/bin/resolve.js +12 -13
  32. package/dist/bin/which.js +8 -8
  33. package/dist/cache/ttl/store.js +5 -5
  34. package/dist/checks/primordials-defaults.d.ts +3 -3
  35. package/dist/checks/primordials-defaults.js +3 -3
  36. package/dist/checks/primordials.js +4 -3
  37. package/dist/{bin → cli}/check-primordials.d.ts +11 -11
  38. package/dist/{bin → cli}/check-primordials.js +56 -52
  39. package/dist/{bin → cli}/check.js +6 -5
  40. package/dist/{bin → cli}/socket-lib.d.ts +1 -1
  41. package/dist/{bin → cli}/socket-lib.js +4 -4
  42. package/dist/colors/socket-palette.js +7 -9
  43. package/dist/compression/_internal.d.ts +12 -12
  44. package/dist/compression/_internal.js +20 -19
  45. package/dist/compression/brotli.d.ts +25 -25
  46. package/dist/compression/brotli.js +37 -44
  47. package/dist/compression/gzip.d.ts +23 -23
  48. package/dist/compression/gzip.js +44 -52
  49. package/dist/constants/agents.d.ts +3 -1
  50. package/dist/constants/agents.js +15 -11
  51. package/dist/constants/licenses.js +3 -3
  52. package/dist/constants/node.d.ts +23 -0
  53. package/dist/constants/node.js +47 -15
  54. package/dist/constants/packages.js +22 -28
  55. package/dist/constants/platform.d.ts +30 -3
  56. package/dist/constants/platform.js +72 -12
  57. package/dist/constants/runtime.d.ts +22 -0
  58. package/dist/constants/runtime.js +32 -0
  59. package/dist/constants/socket.js +1 -1
  60. package/dist/cover/code.js +8 -8
  61. package/dist/cover/formatters.js +5 -5
  62. package/dist/crypto/hash.d.ts +26 -1
  63. package/dist/crypto/hash.js +43 -12
  64. package/dist/debug/_internal.js +4 -6
  65. package/dist/debug/caller-info.js +2 -3
  66. package/dist/debug/namespace.d.ts +7 -0
  67. package/dist/debug/namespace.js +21 -12
  68. package/dist/debug/output.js +21 -24
  69. package/dist/debug/types.d.ts +4 -4
  70. package/dist/dlx/arborist.js +6 -6
  71. package/dist/dlx/binary-cache.js +14 -14
  72. package/dist/dlx/binary-download.d.ts +1 -1
  73. package/dist/dlx/binary-download.js +14 -13
  74. package/dist/dlx/binary-resolution.js +16 -14
  75. package/dist/dlx/binary-types.d.ts +5 -5
  76. package/dist/dlx/binary.js +5 -5
  77. package/dist/dlx/cache.js +1 -1
  78. package/dist/dlx/detect.d.ts +34 -25
  79. package/dist/dlx/detect.js +86 -77
  80. package/dist/dlx/dir.js +2 -2
  81. package/dist/dlx/firewall.d.ts +1 -1
  82. package/dist/dlx/lockfile.d.ts +19 -18
  83. package/dist/dlx/lockfile.js +16 -16
  84. package/dist/dlx/manifest.d.ts +6 -6
  85. package/dist/dlx/manifest.js +5 -5
  86. package/dist/dlx/package.d.ts +10 -10
  87. package/dist/dlx/package.js +16 -16
  88. package/dist/dlx/packages.js +4 -4
  89. package/dist/dlx/paths.js +7 -7
  90. package/dist/dlx/spec.js +1 -1
  91. package/dist/dlx/types.d.ts +28 -27
  92. package/dist/eco/cargo/parse-lockfile.d.ts +1 -1
  93. package/dist/eco/cargo/parse-lockfile.js +2 -2
  94. package/dist/eco/manifest/analyze-lockfile.js +2 -2
  95. package/dist/eco/manifest/detect-format.js +4 -4
  96. package/dist/eco/manifest/find-packages.js +2 -2
  97. package/dist/eco/manifest/get-package-versions.js +2 -2
  98. package/dist/eco/manifest/get-package.js +2 -2
  99. package/dist/eco/manifest/parse-lockfile.js +2 -2
  100. package/dist/eco/manifest/parse-manifest.js +2 -2
  101. package/dist/eco/manifest/parse.js +2 -2
  102. package/dist/eco/npm/npm/exec.js +2 -2
  103. package/dist/eco/npm/npm/flags.js +7 -12
  104. package/dist/eco/npm/npm/parse-lockfile.d.ts +14 -14
  105. package/dist/eco/npm/npm/parse-lockfile.js +3 -3
  106. package/dist/eco/npm/parse-package-json.js +3 -3
  107. package/dist/eco/npm/pnpm/exec.d.ts +1 -1
  108. package/dist/eco/npm/pnpm/exec.js +5 -5
  109. package/dist/eco/npm/pnpm/flags.js +0 -3
  110. package/dist/eco/npm/pnpm/parse-lockfile.d.ts +1 -1
  111. package/dist/eco/npm/pnpm/parse-lockfile.js +4 -4
  112. package/dist/eco/npm/script.js +9 -6
  113. package/dist/eco/npm/yarnpkg/yarn/exec.js +3 -3
  114. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +2 -2
  115. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +8 -8
  116. package/dist/effects/pulse-frames.d.ts +3 -1
  117. package/dist/effects/shimmer-keyframes.d.ts +1 -1
  118. package/dist/effects/shimmer-terminal.d.ts +1 -1
  119. package/dist/env/boolean.js +0 -1
  120. package/dist/env/ci.js +0 -1
  121. package/dist/env/debug.js +0 -1
  122. package/dist/env/github-status.d.ts +51 -0
  123. package/dist/env/github-status.js +90 -0
  124. package/dist/env/github.js +0 -8
  125. package/dist/env/home.js +0 -1
  126. package/dist/env/locale.js +0 -3
  127. package/dist/env/node-auth-token.js +0 -1
  128. package/dist/env/node-env.js +0 -1
  129. package/dist/env/node-version-managers.d.ts +53 -0
  130. package/dist/env/node-version-managers.js +90 -0
  131. package/dist/env/npm.js +0 -5
  132. package/dist/env/number.js +0 -1
  133. package/dist/env/package-manager.js +3 -6
  134. package/dist/env/path.js +0 -1
  135. package/dist/env/pre-commit.js +1 -2
  136. package/dist/env/rewire.d.ts +7 -6
  137. package/dist/env/rewire.js +15 -16
  138. package/dist/env/shell.js +0 -1
  139. package/dist/env/socket-cli.js +5 -18
  140. package/dist/env/socket-mcp.d.ts +114 -0
  141. package/dist/env/socket-mcp.js +146 -0
  142. package/dist/env/socket.d.ts +1 -109
  143. package/dist/env/socket.js +12 -166
  144. package/dist/env/string.js +0 -1
  145. package/dist/env/temp-dir.js +0 -3
  146. package/dist/env/term.js +0 -1
  147. package/dist/env/test.js +3 -6
  148. package/dist/env/windows.js +0 -4
  149. package/dist/env/xdg.js +0 -3
  150. package/dist/events/exit/_internal.d.ts +11 -9
  151. package/dist/events/exit/_internal.js +31 -35
  152. package/dist/events/exit/handler.js +3 -4
  153. package/dist/events/exit/intercept.js +4 -6
  154. package/dist/events/exit/lifecycle.js +16 -18
  155. package/dist/events/exit/signals.js +1 -2
  156. package/dist/events/exit/types.d.ts +6 -5
  157. package/dist/external/@npmcli/package-json.js +2 -2
  158. package/dist/external/@sinclair/typebox/value.js +5 -1
  159. package/dist/external/@sinclair/typebox.js +5 -1
  160. package/dist/external/@socketregistry/packageurl-js.js +27 -0
  161. package/dist/external/npm-pack.js +2 -2
  162. package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
  163. package/dist/external-tools/bazel/resolve.js +2 -1
  164. package/dist/external-tools/bazel/types.d.ts +1 -1
  165. package/dist/external-tools/cdxgen/from-vfs.js +1 -1
  166. package/dist/external-tools/cdxgen/resolve.js +2 -1
  167. package/dist/external-tools/cdxgen/types.d.ts +1 -1
  168. package/dist/external-tools/from-download.d.ts +1 -1
  169. package/dist/external-tools/from-download.js +1 -1
  170. package/dist/external-tools/from-pip-venv.d.ts +73 -0
  171. package/dist/external-tools/from-pip-venv.js +98 -0
  172. package/dist/external-tools/janus/asset-names.js +1 -1
  173. package/dist/external-tools/janus/from-download.js +3 -5
  174. package/dist/external-tools/janus/from-vfs.js +1 -1
  175. package/dist/external-tools/janus/resolve.js +2 -1
  176. package/dist/external-tools/janus/types.d.ts +1 -1
  177. package/dist/external-tools/jre/detect-platform-arch.d.ts +10 -6
  178. package/dist/external-tools/jre/detect-platform-arch.js +29 -14
  179. package/dist/external-tools/jre/from-download.js +2 -1
  180. package/dist/external-tools/jre/from-vfs.js +1 -1
  181. package/dist/external-tools/jre/resolve.js +2 -1
  182. package/dist/external-tools/jre/types.d.ts +1 -1
  183. package/dist/external-tools/manifest.d.ts +7 -7
  184. package/dist/external-tools/manifest.js +18 -16
  185. package/dist/external-tools/opengrep/from-vfs.js +1 -1
  186. package/dist/external-tools/opengrep/resolve.js +2 -1
  187. package/dist/external-tools/opengrep/types.d.ts +1 -1
  188. package/dist/external-tools/python/asset-names.d.ts +76 -0
  189. package/dist/external-tools/python/asset-names.js +104 -0
  190. package/dist/external-tools/python/dlx.d.ts +80 -0
  191. package/dist/external-tools/python/dlx.js +87 -0
  192. package/dist/external-tools/python/from-download.d.ts +53 -0
  193. package/dist/external-tools/python/from-download.js +68 -0
  194. package/dist/external-tools/python/from-path.d.ts +7 -0
  195. package/dist/external-tools/python/from-path.js +23 -0
  196. package/dist/external-tools/python/pin.d.ts +121 -0
  197. package/dist/external-tools/python/pin.js +173 -0
  198. package/dist/external-tools/python/pip-install.d.ts +75 -0
  199. package/dist/external-tools/python/pip-install.js +139 -0
  200. package/dist/external-tools/python/resolve.d.ts +42 -0
  201. package/dist/external-tools/python/resolve.js +58 -0
  202. package/dist/external-tools/python/types.d.ts +49 -0
  203. package/dist/external-tools/sbt/from-vfs.js +1 -1
  204. package/dist/external-tools/sbt/resolve.js +2 -1
  205. package/dist/external-tools/sbt/types.d.ts +1 -1
  206. package/dist/external-tools/skillspector/from-dlx.d.ts +24 -0
  207. package/dist/external-tools/skillspector/from-dlx.js +41 -0
  208. package/dist/external-tools/skillspector/from-path.d.ts +8 -0
  209. package/dist/external-tools/skillspector/from-path.js +30 -0
  210. package/dist/external-tools/skillspector/from-vfs.d.ts +8 -0
  211. package/dist/external-tools/skillspector/from-vfs.js +27 -0
  212. package/dist/external-tools/skillspector/resolve.d.ts +34 -0
  213. package/dist/external-tools/skillspector/resolve.js +53 -0
  214. package/dist/external-tools/skillspector/types.d.ts +24 -0
  215. package/dist/external-tools/skillspector/types.js +2 -0
  216. package/dist/external-tools/synp/from-download.js +2 -2
  217. package/dist/external-tools/synp/from-vfs.js +1 -1
  218. package/dist/external-tools/synp/resolve.js +2 -1
  219. package/dist/external-tools/trivy/from-vfs.js +1 -1
  220. package/dist/external-tools/trivy/resolve.js +2 -1
  221. package/dist/external-tools/trivy/types.d.ts +1 -1
  222. package/dist/external-tools/trufflehog/from-vfs.js +1 -1
  223. package/dist/external-tools/trufflehog/resolve.js +2 -1
  224. package/dist/external-tools/trufflehog/types.d.ts +1 -1
  225. package/dist/fs/_internal.d.ts +1 -1
  226. package/dist/fs/_internal.js +7 -7
  227. package/dist/fs/access.js +5 -9
  228. package/dist/fs/{path-cache.js → allowed-dirs-cache.js} +1 -1
  229. package/dist/fs/encoding.js +5 -7
  230. package/dist/fs/{find-up.js → find.js} +11 -13
  231. package/dist/fs/inspect.js +7 -13
  232. package/dist/fs/read-dir.js +7 -10
  233. package/dist/fs/read-file.js +8 -14
  234. package/dist/fs/read-json-cache.d.ts +6 -4
  235. package/dist/fs/read-json-cache.js +9 -6
  236. package/dist/fs/read-json.js +4 -6
  237. package/dist/fs/resolve-module.js +1 -1
  238. package/dist/fs/safe.d.ts +1 -1
  239. package/dist/fs/safe.js +12 -13
  240. package/dist/fs/unique.js +4 -5
  241. package/dist/fs/validate.js +1 -2
  242. package/dist/fs/write-json.js +4 -5
  243. package/dist/git/_internal.js +12 -11
  244. package/dist/git/changed.js +4 -4
  245. package/dist/git/repo.js +3 -3
  246. package/dist/git/staged.js +4 -4
  247. package/dist/git/unstaged.js +4 -4
  248. package/dist/github/ghsa.js +2 -2
  249. package/dist/github/refs-cache.d.ts +1 -1
  250. package/dist/github/refs-cache.js +5 -5
  251. package/dist/github/refs-rest.js +5 -5
  252. package/dist/github/{fetch.js → request.js} +13 -2
  253. package/dist/github/token.js +1 -1
  254. package/dist/github/types.d.ts +1 -1
  255. package/dist/globs/_internal.js +7 -9
  256. package/dist/globs/match.js +6 -7
  257. package/dist/globs/matcher.d.ts +3 -3
  258. package/dist/globs/matcher.js +12 -14
  259. package/dist/globs/stream.js +1 -2
  260. package/dist/globs/types.d.ts +24 -24
  261. package/dist/http-request/_internal.d.ts +1 -1
  262. package/dist/http-request/browser.js +21 -13
  263. package/dist/http-request/checksum-file.d.ts +55 -0
  264. package/dist/http-request/checksum-file.js +95 -0
  265. package/dist/http-request/download-types.d.ts +15 -23
  266. package/dist/http-request/download.js +4 -4
  267. package/dist/http-request/headers.d.ts +32 -3
  268. package/dist/http-request/headers.js +41 -13
  269. package/dist/http-request/request-attempt.js +38 -33
  270. package/dist/http-request/request-types.d.ts +7 -2
  271. package/dist/http-request/request.js +33 -16
  272. package/dist/http-request/response-reader.d.ts +12 -1
  273. package/dist/http-request/response-reader.js +22 -2
  274. package/dist/http-request/user-agent.js +3 -4
  275. package/dist/integrity.d.ts +86 -18
  276. package/dist/integrity.js +119 -30
  277. package/dist/ipc/directory.js +2 -2
  278. package/dist/ipc/paths.js +1 -1
  279. package/dist/ipc/write.js +1 -1
  280. package/dist/ipc-cli/get.js +12 -12
  281. package/dist/json/edit.js +13 -14
  282. package/dist/json/format.js +2 -2
  283. package/dist/json/parse.d.ts +1 -1
  284. package/dist/json/parse.js +3 -7
  285. package/dist/logger/_internal.d.ts +4 -4
  286. package/dist/logger/_internal.js +3 -3
  287. package/dist/logger/colors.js +4 -3
  288. package/dist/logger/console-methods.d.ts +132 -0
  289. package/dist/logger/console-methods.js +169 -0
  290. package/dist/logger/console.d.ts +12 -0
  291. package/dist/logger/console.js +42 -11
  292. package/dist/logger/indentation-methods.d.ts +81 -0
  293. package/dist/logger/indentation-methods.js +121 -0
  294. package/dist/logger/node.d.ts +16 -338
  295. package/dist/logger/node.js +75 -608
  296. package/dist/logger/options.d.ts +39 -0
  297. package/dist/logger/options.js +47 -0
  298. package/dist/logger/semantic-methods.d.ts +63 -0
  299. package/dist/logger/semantic-methods.js +108 -0
  300. package/dist/logger/stream-methods.d.ts +63 -0
  301. package/dist/logger/stream-methods.js +101 -0
  302. package/dist/logger/stream.d.ts +37 -0
  303. package/dist/logger/stream.js +42 -0
  304. package/dist/logger/symbols-builder.js +9 -9
  305. package/dist/logger/symbols.d.ts +2 -25
  306. package/dist/logger/symbols.js +53 -74
  307. package/dist/logger/types.d.ts +1 -1
  308. package/dist/memo/types.d.ts +6 -6
  309. package/dist/native-messaging/host.d.ts +20 -0
  310. package/dist/native-messaging/host.js +120 -0
  311. package/dist/native-messaging/index.d.ts +5 -0
  312. package/dist/native-messaging/index.js +22 -0
  313. package/dist/native-messaging/install.d.ts +60 -0
  314. package/dist/native-messaging/install.js +141 -0
  315. package/dist/native-messaging/rate-limit.d.ts +62 -0
  316. package/dist/native-messaging/rate-limit.js +115 -0
  317. package/dist/native-messaging/run.d.ts +10 -0
  318. package/dist/native-messaging/run.js +17 -0
  319. package/dist/node/async-hooks.js +4 -3
  320. package/dist/node/child-process.js +4 -3
  321. package/dist/node/crypto.js +4 -3
  322. package/dist/node/events.js +4 -3
  323. package/dist/node/fs-promises.js +4 -3
  324. package/dist/node/fs.js +4 -3
  325. package/dist/node/http.js +4 -3
  326. package/dist/node/https.js +4 -3
  327. package/dist/node/module.js +10 -6
  328. package/dist/node/os.js +4 -3
  329. package/dist/node/path.js +4 -3
  330. package/dist/node/timers-promises.js +4 -3
  331. package/dist/node/url.js +4 -3
  332. package/dist/node/util.js +4 -3
  333. package/dist/objects/getters.js +5 -7
  334. package/dist/objects/inspect.js +1 -4
  335. package/dist/objects/mutate.js +2 -3
  336. package/dist/objects/predicates.js +0 -4
  337. package/dist/objects/sort.js +3 -7
  338. package/dist/packages/edit-class.js +15 -16
  339. package/dist/packages/edit.js +12 -14
  340. package/dist/packages/exports.js +11 -17
  341. package/dist/packages/fetch.d.ts +16 -0
  342. package/dist/packages/fetch.js +81 -0
  343. package/dist/packages/find.d.ts +55 -0
  344. package/dist/packages/find.js +65 -0
  345. package/dist/packages/isolation.js +14 -14
  346. package/dist/packages/licenses.js +16 -16
  347. package/dist/packages/manifest.js +12 -15
  348. package/dist/packages/metadata-extensions.d.ts +14 -0
  349. package/dist/packages/metadata-extensions.js +43 -0
  350. package/dist/packages/normalize.js +5 -9
  351. package/dist/packages/provenance.d.ts +6 -0
  352. package/dist/packages/provenance.js +25 -18
  353. package/dist/packages/read.d.ts +29 -0
  354. package/dist/packages/read.js +66 -0
  355. package/dist/packages/specs.d.ts +48 -1
  356. package/dist/packages/specs.js +74 -11
  357. package/dist/packages/tarball.d.ts +24 -0
  358. package/dist/packages/tarball.js +79 -0
  359. package/dist/packages/types.d.ts +21 -20
  360. package/dist/packages/validation.js +0 -3
  361. package/dist/paths/_internal.d.ts +2 -1
  362. package/dist/paths/_internal.js +7 -19
  363. package/dist/paths/conversion.js +5 -9
  364. package/dist/paths/filenames.d.ts +0 -1
  365. package/dist/paths/filenames.js +0 -2
  366. package/dist/paths/normalize.js +6 -5
  367. package/dist/paths/packages.js +4 -7
  368. package/dist/paths/predicates.js +9 -16
  369. package/dist/paths/resolve.js +11 -14
  370. package/dist/paths/rewire.js +3 -3
  371. package/dist/paths/socket.js +16 -16
  372. package/dist/paths/walk.d.ts +1 -1
  373. package/dist/paths/walk.js +4 -4
  374. package/dist/perf/report.js +2 -2
  375. package/dist/perf/types.d.ts +1 -1
  376. package/dist/pkg-ext/data.js +1 -1
  377. package/dist/primordials/array.js +9 -9
  378. package/dist/primordials/date.js +2 -2
  379. package/dist/primordials/error.js +3 -3
  380. package/dist/primordials/headers.d.ts +10 -0
  381. package/dist/primordials/headers.js +23 -0
  382. package/dist/primordials/intl.d.ts +13 -0
  383. package/dist/primordials/intl.js +26 -0
  384. package/dist/primordials/math.js +33 -33
  385. package/dist/primordials/number.js +9 -9
  386. package/dist/primordials/object.js +5 -5
  387. package/dist/primordials/string.d.ts +2 -2
  388. package/dist/primordials/string.js +6 -6
  389. package/dist/primordials/symbol.js +3 -3
  390. package/dist/primordials/uncurry.js +9 -9
  391. package/dist/process/abort.js +3 -3
  392. package/dist/process/lock-manager.js +8 -8
  393. package/dist/process/spawn/_internal.js +6 -8
  394. package/dist/process/spawn/child.js +14 -14
  395. package/dist/process/spawn/errors.js +2 -4
  396. package/dist/process/spawn/kill-tree.d.ts +53 -0
  397. package/dist/process/spawn/kill-tree.js +85 -0
  398. package/dist/process/spawn/stdio.js +0 -1
  399. package/dist/process/spawn/types.d.ts +5 -5
  400. package/dist/process/transient.js +2 -2
  401. package/dist/promises/_internal.d.ts +2 -1
  402. package/dist/promises/_internal.js +2 -6
  403. package/dist/promises/iterate.js +12 -16
  404. package/dist/promises/options.js +3 -6
  405. package/dist/promises/retry.js +4 -5
  406. package/dist/promises/timers.d.ts +30 -0
  407. package/dist/promises/timers.js +48 -0
  408. package/dist/releases/github-archives.d.ts +6 -6
  409. package/dist/releases/github-archives.js +2 -2
  410. package/dist/releases/github-asset-url.d.ts +1 -1
  411. package/dist/releases/github-asset-url.js +5 -5
  412. package/dist/releases/github-downloads.d.ts +1 -1
  413. package/dist/releases/github-downloads.js +3 -3
  414. package/dist/releases/github-listing.d.ts +11 -2
  415. package/dist/releases/github-listing.js +20 -7
  416. package/dist/releases/github-retry-config.js +1 -1
  417. package/dist/releases/github-types.d.ts +6 -6
  418. package/dist/releases/socket-btm-binary-naming.d.ts +107 -0
  419. package/dist/releases/socket-btm-binary-naming.js +155 -0
  420. package/dist/releases/socket-btm.d.ts +8 -115
  421. package/dist/releases/socket-btm.js +16 -159
  422. package/dist/schema/types.d.ts +1 -1
  423. package/dist/sea/detect.js +6 -6
  424. package/dist/secrets/_internal.d.ts +2 -2
  425. package/dist/secrets/_internal.js +5 -4
  426. package/dist/secrets/compare.d.ts +45 -0
  427. package/dist/secrets/compare.js +61 -0
  428. package/dist/secrets/keychain.js +9 -6
  429. package/dist/secrets/linux.js +25 -23
  430. package/dist/secrets/macos.d.ts +1 -1
  431. package/dist/secrets/macos.js +18 -16
  432. package/dist/secrets/rc.d.ts +2 -2
  433. package/dist/secrets/rc.js +15 -10
  434. package/dist/secrets/socket-api-token.d.ts +4 -4
  435. package/dist/secrets/socket-api-token.js +18 -9
  436. package/dist/secrets/windows.js +21 -17
  437. package/dist/shadow/skip.js +2 -2
  438. package/dist/shell/parse.d.ts +108 -1
  439. package/dist/shell/parse.js +168 -2
  440. package/dist/smol/detect.js +9 -10
  441. package/dist/smol/http.js +6 -7
  442. package/dist/smol/https.js +6 -7
  443. package/dist/smol/manifest.d.ts +1 -1
  444. package/dist/smol/manifest.js +6 -7
  445. package/dist/smol/path.d.ts +1 -1
  446. package/dist/smol/path.js +7 -8
  447. package/dist/smol/primordial.d.ts +4 -0
  448. package/dist/smol/primordial.js +6 -7
  449. package/dist/smol/purl.d.ts +1 -1
  450. package/dist/smol/purl.js +7 -8
  451. package/dist/smol/versions.js +6 -7
  452. package/dist/smol/vfs.js +6 -7
  453. package/dist/sorts/_internal.js +6 -8
  454. package/dist/sorts/natural.js +10 -12
  455. package/dist/sorts/semver.js +1 -2
  456. package/dist/sorts/strings.js +0 -1
  457. package/dist/sorts/types.d.ts +1 -1
  458. package/dist/spinner/create-spinner-class.d.ts +38 -0
  459. package/dist/spinner/create-spinner-class.js +302 -0
  460. package/dist/spinner/default.js +8 -9
  461. package/dist/spinner/spinner-internals.d.ts +36 -0
  462. package/dist/spinner/spinner-internals.js +101 -0
  463. package/dist/spinner/spinner-shimmer-methods.d.ts +54 -0
  464. package/dist/spinner/spinner-shimmer-methods.js +143 -0
  465. package/dist/spinner/spinner-status-methods.d.ts +40 -0
  466. package/dist/spinner/spinner-status-methods.js +133 -0
  467. package/dist/spinner/spinner.d.ts +4 -5
  468. package/dist/spinner/spinner.js +18 -705
  469. package/dist/spinner/types.d.ts +3 -1
  470. package/dist/spinner/with.d.ts +10 -0
  471. package/dist/spinner/with.js +16 -2
  472. package/dist/stdio/divider.js +1 -1
  473. package/dist/stdio/footer.js +3 -3
  474. package/dist/stdio/header.js +4 -4
  475. package/dist/stdio/progress.js +5 -5
  476. package/dist/stdio/prompts.d.ts +5 -3
  477. package/dist/stdio/prompts.js +6 -7
  478. package/dist/stdio/stdout.js +3 -3
  479. package/dist/streams/parallel.js +3 -5
  480. package/dist/streams/transform.js +2 -3
  481. package/dist/strings/format.js +2 -6
  482. package/dist/strings/predicates.js +0 -2
  483. package/dist/strings/search.js +1 -2
  484. package/dist/strings/transform.js +0 -3
  485. package/dist/strings/width.js +9 -10
  486. package/dist/tables/bordered.js +4 -3
  487. package/dist/tables/padding.js +1 -1
  488. package/dist/tables/simple.js +8 -5
  489. package/dist/temporal/instant.js +4 -2
  490. package/dist/temporal/slots.js +7 -6
  491. package/dist/temporal/system.js +9 -9
  492. package/dist/themes/context.d.ts +3 -2
  493. package/dist/themes/context.js +4 -5
  494. package/dist/themes/themes.js +15 -15
  495. package/dist/themes/types.d.ts +3 -3
  496. package/dist/url/parse.js +0 -2
  497. package/dist/url/predicates.js +1 -2
  498. package/dist/url/search-params.js +3 -9
  499. package/dist/url/types.d.ts +5 -5
  500. package/dist/versions/_internal.js +3 -3
  501. package/dist/words/article.js +0 -1
  502. package/dist/words/capitalize.js +0 -1
  503. package/dist/words/pluralize.d.ts +24 -2
  504. package/dist/words/pluralize.js +47 -2
  505. package/dist/words/types.d.ts +25 -2
  506. package/package.json +289 -108
  507. package/dist/external-tools/uv/asset-names.d.ts +0 -36
  508. package/dist/external-tools/uv/asset-names.js +0 -70
  509. package/dist/external-tools/uv/from-download.d.ts +0 -17
  510. package/dist/external-tools/uv/from-download.js +0 -47
  511. package/dist/external-tools/uv/from-path.d.ts +0 -5
  512. package/dist/external-tools/uv/from-path.js +0 -22
  513. package/dist/external-tools/uv/from-vfs.d.ts +0 -7
  514. package/dist/external-tools/uv/from-vfs.js +0 -26
  515. package/dist/external-tools/uv/resolve.d.ts +0 -25
  516. package/dist/external-tools/uv/resolve.js +0 -52
  517. package/dist/external-tools/uv/types.d.ts +0 -24
  518. package/dist/http-request/checksums.d.ts +0 -69
  519. package/dist/http-request/checksums.js +0 -108
  520. package/dist/http-request/http-request.d.ts +0 -12
  521. package/dist/http-request/http-request.js +0 -11
  522. package/dist/packages/operations.d.ts +0 -113
  523. package/dist/packages/operations.js +0 -304
  524. package/dist/ssri/convert.d.ts +0 -48
  525. package/dist/ssri/convert.js +0 -69
  526. package/dist/ssri/parse.d.ts +0 -27
  527. package/dist/ssri/parse.js +0 -41
  528. package/dist/ssri/validate.d.ts +0 -41
  529. package/dist/ssri/validate.js +0 -56
  530. /package/dist/{bin → cli}/check.d.ts +0 -0
  531. /package/dist/external-tools/{uv → python}/types.js +0 -0
  532. /package/dist/fs/{path-cache.d.ts → allowed-dirs-cache.d.ts} +0 -0
  533. /package/dist/fs/{find-up.d.ts → find.d.ts} +0 -0
  534. /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
@@ -2,31 +2,26 @@
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
- const require_primordials_error = require('../primordials/error.js');
6
- const require_primordials_math = require('../primordials/math.js');
7
- const require_primordials_array = require('../primordials/array.js');
8
- const require_primordials_object = require('../primordials/object.js');
9
- const require_strings_predicates = require('../strings/predicates.js');
10
- const require_themes_themes = require('../themes/themes.js');
11
- const require_themes_context = require('../themes/context.js');
12
- const require_logger_symbols = require('../logger/symbols.js');
13
5
  const require_logger_default = require('../logger/default.js');
14
- const require_process_abort = require('../process/abort.js');
15
- const require_colors_convert = require('../colors/convert.js');
16
- const require_debug_namespace = require('../debug/namespace.js');
17
- const require_effects_shimmer = require('../effects/shimmer.js');
18
- const require_effects_shimmer_terminal = require('../effects/shimmer-terminal.js');
19
6
  const require_env_ci = require('../env/ci.js');
20
- const require_strings_width = require('../strings/width.js');
21
- const require_themes_resolve = require('../themes/resolve.js');
22
7
  const require_spinner_format = require('./format.js');
8
+ const require_spinner_create_spinner_class = require('./create-spinner-class.js');
23
9
  const require_spinner_default = require('./default.js');
24
10
  let src_external__socketregistry_yocto_spinner = require("../external/@socketregistry/yocto-spinner");
25
11
  src_external__socketregistry_yocto_spinner = require_runtime.__toESM(src_external__socketregistry_yocto_spinner);
26
12
 
27
13
  //#region src/spinner/spinner.ts
28
- let _Spinner;
29
- let _defaultSpinner;
14
+ /**
15
+ * @file Spinner factory — lazily builds the Socket `Spinner` class that wraps
16
+ * `yocto-spinner` with Socket-specific behaviors (custom RGB color pipeline,
17
+ * shimmer, progress bar, indented step messages, status methods that don't
18
+ * auto-stop, *AndStop variants that auto-clear). The class graph is
19
+ * constructed by `createSpinnerClass()` so the `super()` call binds against
20
+ * the live `YoctoSpinner` constructor resolved here; building it lazily keeps
21
+ * the module free of side effects at import time.
22
+ */
23
+ let SpinnerCtor;
24
+ let defaultSpinnerStyle;
30
25
  /**
31
26
  * Create a spinner instance for displaying loading indicators. Provides an
32
27
  * animated CLI spinner with status messages, progress tracking, and shimmer
@@ -55,697 +50,15 @@ let _defaultSpinner;
55
50
  *
56
51
  * @returns New spinner instance
57
52
  */
58
- /* @__NO_SIDE_EFFECTS__ */
59
53
  function Spinner(options) {
60
- if (_Spinner === void 0) {
54
+ if (SpinnerCtor === void 0) {
61
55
  const YoctoSpinnerClass = (0, src_external__socketregistry_yocto_spinner.default)({}).constructor;
62
- /* c8 ignore stop */
63
- const logger = require_logger_default.getDefaultLogger();
64
- _Spinner = class SpinnerClass extends YoctoSpinnerClass {
65
- #baseText = "";
66
- #indentation = "";
67
- #progress;
68
- #shimmer;
69
- #shimmerSavedConfig;
70
- constructor(options) {
71
- const opts = {
72
- __proto__: null,
73
- ...options
74
- };
75
- let theme = require_themes_context.getTheme();
76
- if (opts.theme) if (typeof opts.theme === "string") theme = require_themes_themes.THEMES[opts.theme] ?? theme;
77
- else theme = opts.theme;
78
- let defaultColor = theme.colors.primary;
79
- if (theme.effects?.spinner?.color) {
80
- const resolved = require_themes_resolve.resolveColor(theme.effects.spinner.color, theme.colors);
81
- if (resolved === "inherit" || require_primordials_array.ArrayIsArray(resolved[0])) defaultColor = theme.colors.primary;
82
- else defaultColor = resolved;
83
- }
84
- const spinnerColor = opts.color ?? defaultColor;
85
- if (require_colors_convert.isRgbTuple(spinnerColor) && (spinnerColor.length !== 3 || !spinnerColor.every((n) => typeof n === "number" && n >= 0 && n <= 255))) throw new require_primordials_error.TypeErrorCtor("RGB color must be an array of 3 numbers between 0 and 255");
86
- const spinnerColorRgb = require_colors_convert.toRgb(spinnerColor);
87
- let shimmerInfo;
88
- if (opts.shimmer) {
89
- let shimmerDir;
90
- let shimmerColor;
91
- let shimmerSpeed = 1 / 3;
92
- if (typeof opts.shimmer === "string") {
93
- shimmerDir = opts.shimmer;
94
- shimmerColor = require_spinner_format.COLOR_INHERIT;
95
- } else {
96
- const shimmerConfig = {
97
- __proto__: null,
98
- ...opts.shimmer
99
- };
100
- shimmerDir = shimmerConfig.dir ?? "ltr";
101
- shimmerColor = shimmerConfig.color ?? "inherit";
102
- shimmerSpeed = shimmerConfig.speed ?? 1 / 3;
103
- }
104
- shimmerInfo = {
105
- __proto__: null,
106
- color: shimmerColor,
107
- direction: shimmerDir,
108
- speed: shimmerSpeed,
109
- frame: 0
110
- };
111
- }
112
- super({
113
- signal: require_process_abort.getAbortSignal(),
114
- ...opts,
115
- color: spinnerColorRgb,
116
- onRenderFrame: (frame, text, applyColor) => {
117
- const spacing = /* @__PURE__ */ require_strings_width.stringWidth(frame) === 1 ? " " : " ";
118
- return frame ? `${applyColor(frame)}${spacing}${text}` : text;
119
- },
120
- onFrameUpdate: shimmerInfo ? () => {
121
- if (this.#baseText) super.text = this.#buildDisplayText();
122
- } : void 0
123
- });
124
- this.#shimmer = shimmerInfo;
125
- this.#shimmerSavedConfig = shimmerInfo;
126
- }
127
- get color() {
128
- const value = super.color;
129
- return require_colors_convert.isRgbTuple(value) ? value : require_colors_convert.toRgb(value);
130
- }
131
- set color(value) {
132
- super.color = require_colors_convert.isRgbTuple(value) ? value : require_colors_convert.toRgb(value);
133
- }
134
- get shimmerState() {
135
- if (!this.#shimmer) return;
136
- return {
137
- __proto__: null,
138
- color: this.#shimmer.color,
139
- direction: this.#shimmer.direction,
140
- speed: this.#shimmer.speed,
141
- frame: this.#shimmer.frame
142
- };
143
- }
144
- /**
145
- * Apply a yocto-spinner method and update logger state. Handles text
146
- * normalization, extra arguments, and logger tracking.
147
- *
148
- * @private
149
- */
150
- #apply(methodName, args) {
151
- let extras;
152
- let text = require_primordials_array.ArrayPrototypeAt(args, 0);
153
- if (typeof text === "string") extras = require_primordials_array.ArrayPrototypeSlice(args, 1);
154
- else {
155
- extras = args;
156
- text = "";
157
- }
158
- const wasSpinning = this.isSpinning;
159
- const normalized = require_spinner_format.normalizeText(text);
160
- if (methodName === "stop" && !normalized) super[methodName]();
161
- else super[methodName](normalized);
162
- if (methodName === "stop") {
163
- if (wasSpinning && normalized) {
164
- logger[require_logger_symbols.lastWasBlankSymbol](/* @__PURE__ */ require_strings_predicates.isBlankString(normalized));
165
- logger[require_logger_symbols.incLogCallCountSymbol]();
166
- }
167
- } else {
168
- logger[require_logger_symbols.lastWasBlankSymbol](false);
169
- logger[require_logger_symbols.incLogCallCountSymbol]();
170
- }
171
- /* c8 ignore start */
172
- if (extras.length) {
173
- logger.log(...extras);
174
- logger[require_logger_symbols.lastWasBlankSymbol](false);
175
- }
176
- /* c8 ignore stop */
177
- return this;
178
- }
179
- /**
180
- * Build the complete display text with progress, shimmer, and
181
- * indentation. Combines base text, progress bar, shimmer effects, and
182
- * indentation.
183
- *
184
- * @private
185
- */
186
- #buildDisplayText() {
187
- let displayText = this.#baseText;
188
- /* c8 ignore start */
189
- if (this.#progress) {
190
- const progressText = require_spinner_format.formatProgress(this.#progress);
191
- displayText = displayText ? `${displayText} ${progressText}` : progressText;
192
- }
193
- if (displayText && this.#shimmer) {
194
- let shimmerColor;
195
- if (this.#shimmer.color === "inherit") shimmerColor = this.color;
196
- else if (require_primordials_array.ArrayIsArray(this.#shimmer.color[0])) shimmerColor = this.#shimmer.color;
197
- else shimmerColor = require_colors_convert.toRgb(this.#shimmer.color);
198
- if (!/* @__PURE__ */ require_env_ci.getCI() && this.#shimmer.direction !== "none") {
199
- const chars = [...displayText];
200
- const colors = require_effects_shimmer.frameColors(require_effects_shimmer.configToSpec({
201
- color: shimmerColor,
202
- dir: this.#shimmer.direction,
203
- speed: this.#shimmer.speed
204
- }, chars.length), chars.length, this.#shimmer.frame);
205
- displayText = require_effects_shimmer_terminal.colorsToAnsi(displayText, colors);
206
- this.#shimmer.frame++;
207
- }
208
- }
209
- if (this.#indentation && displayText) displayText = this.#indentation + displayText;
210
- /* c8 ignore stop */
211
- return displayText;
212
- }
213
- /**
214
- * Show a status message without stopping the spinner. Outputs the symbol
215
- * and message to stderr, then continues spinning.
216
- *
217
- * @private
218
- */
219
- #showStatusAndKeepSpinning(symbolType, args) {
220
- let text = require_primordials_array.ArrayPrototypeAt(args, 0);
221
- let extras;
222
- if (typeof text === "string") extras = require_primordials_array.ArrayPrototypeSlice(args, 1);
223
- else {
224
- extras = args;
225
- text = "";
226
- }
227
- logger.error(`${require_logger_symbols.LOG_SYMBOLS[symbolType]} ${text}`, ...extras);
228
- return this;
229
- }
230
- /**
231
- * Update the spinner's displayed text. Rebuilds display text and triggers
232
- * render.
233
- *
234
- * @private
235
- */
236
- #updateSpinnerText() {
237
- super.text = this.#buildDisplayText();
238
- }
239
- /**
240
- * Show a debug message (ℹ) without stopping the spinner. Only displays if
241
- * debug mode is enabled via environment variable. Outputs to stderr and
242
- * continues spinning.
243
- *
244
- * @param text - Debug message to display.
245
- * @param extras - Additional values to log.
246
- *
247
- * @returns This spinner for chaining
248
- */
249
- debug(text, ...extras) {
250
- if (/* @__PURE__ */ require_debug_namespace.isDebug()) return this.#showStatusAndKeepSpinning("info", [text, ...extras]);
251
- return this;
252
- }
253
- /**
254
- * Show a debug message (ℹ) and stop the spinner. Only displays if debug
255
- * mode is enabled via environment variable. Auto-clears the spinner line
256
- * before displaying the message.
257
- *
258
- * @param text - Debug message to display.
259
- * @param extras - Additional values to log.
260
- *
261
- * @returns This spinner for chaining
262
- */
263
- debugAndStop(text, ...extras) {
264
- if (/* @__PURE__ */ require_debug_namespace.isDebug()) return this.#apply("info", [text, ...extras]);
265
- return this;
266
- }
267
- /**
268
- * Decrease indentation level by removing spaces from the left. Pass 0 to
269
- * reset indentation to zero completely.
270
- *
271
- * @default spaces=2
272
- *
273
- * @param spaces - Number of spaces to remove.
274
- *
275
- * @returns This spinner for chaining
276
- */
277
- dedent(spaces) {
278
- if (spaces === 0) this.#indentation = "";
279
- else {
280
- const amount = spaces ?? 2;
281
- const newLength = require_primordials_math.MathMax(0, this.#indentation.length - amount);
282
- this.#indentation = this.#indentation.slice(0, newLength);
283
- }
284
- this.#updateSpinnerText();
285
- return this;
286
- }
287
- /**
288
- * Disable shimmer effect. Preserves config for later re-enable via
289
- * enableShimmer().
290
- *
291
- * @example
292
- * spinner.disableShimmer()
293
- *
294
- * @returns This spinner for chaining
295
- */
296
- disableShimmer() {
297
- this.#shimmer = void 0;
298
- this.#updateSpinnerText();
299
- return this;
300
- }
301
- /**
302
- * Show a done/success message (✓) without stopping the spinner. Alias for
303
- * `success()` with a shorter name.
304
- *
305
- * DESIGN DECISION: Unlike yocto-spinner, our `done()` does NOT stop the
306
- * spinner. Use `doneAndStop()` if you want to stop the spinner.
307
- *
308
- * @param text - Message to display.
309
- * @param extras - Additional values to log.
310
- *
311
- * @returns This spinner for chaining
312
- */
313
- done(text, ...extras) {
314
- return this.#showStatusAndKeepSpinning("success", [text, ...extras]);
315
- }
316
- /**
317
- * Show a done/success message (✓) and stop the spinner. Auto-clears the
318
- * spinner line before displaying the success message.
319
- *
320
- * @param text - Message to display.
321
- * @param extras - Additional values to log.
322
- *
323
- * @returns This spinner for chaining
324
- */
325
- doneAndStop(text, ...extras) {
326
- return this.#apply("success", [text, ...extras]);
327
- }
328
- /**
329
- * Enable shimmer effect. Restores saved config or uses defaults if no
330
- * saved config exists.
331
- *
332
- * @example
333
- * spinner.enableShimmer()
334
- *
335
- * @returns This spinner for chaining
336
- */
337
- enableShimmer() {
338
- if (this.#shimmerSavedConfig) this.#shimmer = {
339
- ...this.#shimmerSavedConfig,
340
- frame: 0
341
- };
342
- else {
343
- this.#shimmer = {
344
- __proto__: null,
345
- color: require_spinner_format.COLOR_INHERIT,
346
- direction: "ltr",
347
- speed: 1 / 3,
348
- frame: 0
349
- };
350
- this.#shimmerSavedConfig = this.#shimmer;
351
- }
352
- this.#updateSpinnerText();
353
- return this;
354
- }
355
- /**
356
- * Show a failure message (✗) without stopping the spinner. DESIGN
357
- * DECISION: Unlike yocto-spinner, our `fail()` does NOT stop the spinner.
358
- * This allows displaying errors while continuing to spin. Use
359
- * `failAndStop()` if you want to stop the spinner.
360
- *
361
- * @param text - Error message to display.
362
- * @param extras - Additional values to log.
363
- *
364
- * @returns This spinner for chaining
365
- */
366
- fail(text, ...extras) {
367
- return this.#showStatusAndKeepSpinning("fail", [text, ...extras]);
368
- }
369
- /**
370
- * Show a failure message (✗) and stop the spinner. Auto-clears the
371
- * spinner line before displaying the error message.
372
- *
373
- * @param text - Error message to display.
374
- * @param extras - Additional values to log.
375
- *
376
- * @returns This spinner for chaining
377
- */
378
- failAndStop(text, ...extras) {
379
- return this.#apply("error", [text, ...extras]);
380
- }
381
- /**
382
- * Increase indentation level by adding spaces to the left. Pass 0 to
383
- * reset indentation to zero completely.
384
- *
385
- * @default spaces=2
386
- *
387
- * @param spaces - Number of spaces to add.
388
- *
389
- * @returns This spinner for chaining
390
- */
391
- indent(spaces) {
392
- /* c8 ignore start */
393
- if (spaces === 0) this.#indentation = "";
394
- else {
395
- const amount = spaces ?? 2;
396
- this.#indentation += " ".repeat(amount);
397
- }
398
- /* c8 ignore stop */
399
- this.#updateSpinnerText();
400
- return this;
401
- }
402
- /**
403
- * Show an info message (ℹ) without stopping the spinner. Outputs to
404
- * stderr and continues spinning.
405
- *
406
- * @param text - Info message to display.
407
- * @param extras - Additional values to log.
408
- *
409
- * @returns This spinner for chaining
410
- */
411
- info(text, ...extras) {
412
- return this.#showStatusAndKeepSpinning("info", [text, ...extras]);
413
- }
414
- /**
415
- * Show an info message (ℹ) and stop the spinner. Auto-clears the spinner
416
- * line before displaying the message.
417
- *
418
- * @param text - Info message to display.
419
- * @param extras - Additional values to log.
420
- *
421
- * @returns This spinner for chaining
422
- */
423
- infoAndStop(text, ...extras) {
424
- return this.#apply("info", [text, ...extras]);
425
- }
426
- /**
427
- * Log a message to stdout without stopping the spinner. Unlike other
428
- * status methods, this outputs to stdout for data logging.
429
- *
430
- * @param args - Values to log to stdout.
431
- *
432
- * @returns This spinner for chaining
433
- */
434
- log(...args) {
435
- logger.log(...args);
436
- return this;
437
- }
438
- /**
439
- * Log a message to stdout and stop the spinner. Auto-clears the spinner
440
- * line before displaying the message.
441
- *
442
- * @param text - Message to display.
443
- * @param extras - Additional values to log.
444
- *
445
- * @returns This spinner for chaining
446
- */
447
- logAndStop(text, ...extras) {
448
- return this.#apply("stop", [text, ...extras]);
449
- }
450
- /**
451
- * Update progress information displayed with the spinner. Shows a
452
- * progress bar with percentage and optional unit label.
453
- *
454
- * @param current - Current progress value.
455
- * @param total - Total/maximum progress value.
456
- * @param unit - Optional unit label (e.g., 'files', 'items')
457
- *
458
- * @returns This spinner for chaining
459
- */
460
- progress = (current, total, unit) => {
461
- this.#progress = {
462
- __proto__: null,
463
- current,
464
- total,
465
- ...unit ? { unit } : {}
466
- };
467
- this.#updateSpinnerText();
468
- return this;
469
- };
470
- /**
471
- * Increment progress by a specified amount. Updates the progress bar
472
- * displayed with the spinner. Clamps the result between 0 and the total
473
- * value.
474
- *
475
- * @default amount=1
476
- *
477
- * @param amount - Amount to increment by.
478
- *
479
- * @returns This spinner for chaining
480
- */
481
- progressStep(amount = 1) {
482
- /* c8 ignore start */
483
- if (this.#progress) {
484
- const newCurrent = this.#progress.current + amount;
485
- this.#progress = {
486
- __proto__: null,
487
- current: require_primordials_math.MathMax(0, Math.min(newCurrent, this.#progress.total)),
488
- total: this.#progress.total,
489
- ...this.#progress.unit ? { unit: this.#progress.unit } : {}
490
- };
491
- this.#updateSpinnerText();
492
- }
493
- return this;
494
- /* c8 ignore stop */
495
- }
496
- /**
497
- * Show a skip message (↻) without stopping the spinner. Outputs to stderr
498
- * and continues spinning.
499
- *
500
- * @param text - Skip message to display.
501
- * @param extras - Additional values to log.
502
- *
503
- * @returns This spinner for chaining
504
- */
505
- skip(text, ...extras) {
506
- return this.#showStatusAndKeepSpinning("skip", [text, ...extras]);
507
- }
508
- /**
509
- * Show a skip message (↻) and stop the spinner. Auto-clears the spinner
510
- * line before displaying the message.
511
- *
512
- * Implementation note: Unlike other *AndStop methods (successAndStop,
513
- * failAndStop, etc.), this method cannot use #apply() with a 'skip'
514
- * method name because yocto-spinner doesn't have a built-in 'skip'
515
- * method. Instead, we manually stop the spinner then log the message with
516
- * the skip symbol.
517
- *
518
- * @param text - Skip message to display.
519
- * @param extras - Additional values to log.
520
- *
521
- * @returns This spinner for chaining
522
- */
523
- skipAndStop(text, ...extras) {
524
- this.#apply("stop", []);
525
- const normalized = require_spinner_format.normalizeText(text);
526
- /* c8 ignore start */
527
- if (normalized) logger.error(`${require_logger_symbols.LOG_SYMBOLS["skip"]} ${normalized}`, ...extras);
528
- return this;
529
- /* c8 ignore stop */
530
- }
531
- /**
532
- * Set complete shimmer configuration. Replaces any existing shimmer
533
- * config with the provided values. Undefined properties will use default
534
- * values.
535
- *
536
- * @example
537
- * spinner.setShimmer({
538
- * color: [255, 0, 0],
539
- * dir: 'rtl',
540
- * speed: 0.5,
541
- * })
542
- *
543
- * @param config - Complete shimmer configuration.
544
- *
545
- * @returns This spinner for chaining
546
- */
547
- setShimmer(config) {
548
- this.#shimmer = {
549
- __proto__: null,
550
- color: config.color ?? "inherit",
551
- direction: config.dir ?? "ltr",
552
- speed: config.speed ?? 1 / 3,
553
- frame: 0
554
- };
555
- this.#shimmerSavedConfig = this.#shimmer;
556
- this.#updateSpinnerText();
557
- return this;
558
- }
559
- /**
560
- * Start the spinner animation with optional text. Begins displaying the
561
- * animated spinner on stderr.
562
- *
563
- * @param text - Optional text to display with the spinner.
564
- *
565
- * @returns This spinner for chaining
566
- */
567
- start(...args) {
568
- /* c8 ignore start */
569
- if (args.length) {
570
- const normalized = require_spinner_format.normalizeText(require_primordials_array.ArrayPrototypeAt(args, 0));
571
- if (!normalized) {
572
- this.#baseText = "";
573
- super.text = "";
574
- } else this.#baseText = normalized;
575
- }
576
- /* c8 ignore stop */
577
- this.#updateSpinnerText();
578
- return this.#apply("start", []);
579
- }
580
- /**
581
- * Log a main step message to stderr without stopping the spinner. Adds a
582
- * blank line before the message for visual separation. Aligns with
583
- * `logger.step()` to use stderr for status messages.
584
- *
585
- * @param text - Step message to display.
586
- * @param extras - Additional values to log.
587
- *
588
- * @returns This spinner for chaining
589
- */
590
- step(text, ...extras) {
591
- /* c8 ignore start */
592
- if (typeof text === "string") {
593
- logger.error("");
594
- logger.error(text, ...extras);
595
- }
596
- return this;
597
- /* c8 ignore stop */
598
- }
599
- /**
600
- * Stop the spinner animation and clear internal state. Auto-clears the
601
- * spinner line via yocto-spinner.stop(). Resets progress, shimmer, and
602
- * text state.
603
- *
604
- * @param text - Optional final text to display after stopping.
605
- *
606
- * @returns This spinner for chaining
607
- */
608
- stop(...args) {
609
- this.#baseText = "";
610
- this.#progress = void 0;
611
- this.#shimmer = void 0;
612
- return this.#apply("stop", args);
613
- }
614
- /**
615
- * Log an indented substep message to stderr without stopping the spinner.
616
- * Adds 2-space indentation to the message. Aligns with `logger.substep()`
617
- * to use stderr for status messages.
618
- *
619
- * @param text - Substep message to display.
620
- * @param extras - Additional values to log.
621
- *
622
- * @returns This spinner for chaining
623
- */
624
- substep(text, ...extras) {
625
- /* c8 ignore start */
626
- if (typeof text === "string") logger.error(` ${text}`, ...extras);
627
- return this;
628
- /* c8 ignore stop */
629
- }
630
- /**
631
- * Show a success message (✓) without stopping the spinner. DESIGN
632
- * DECISION: Unlike yocto-spinner, our `success()` does NOT stop the
633
- * spinner. This allows displaying success messages while continuing to
634
- * spin for multi-step operations. Use `successAndStop()` if you want to
635
- * stop the spinner.
636
- *
637
- * @param text - Success message to display.
638
- * @param extras - Additional values to log.
639
- *
640
- * @returns This spinner for chaining
641
- */
642
- success(text, ...extras) {
643
- return this.#showStatusAndKeepSpinning("success", [text, ...extras]);
644
- }
645
- /**
646
- * Show a success message (✓) and stop the spinner. Auto-clears the
647
- * spinner line before displaying the success message.
648
- *
649
- * @param text - Success message to display.
650
- * @param extras - Additional values to log.
651
- *
652
- * @returns This spinner for chaining
653
- */
654
- successAndStop(text, ...extras) {
655
- return this.#apply("success", [text, ...extras]);
656
- }
657
- text(value) {
658
- if (arguments.length === 0) return this.#baseText;
659
- this.#baseText = value ?? "";
660
- this.#updateSpinnerText();
661
- return this;
662
- }
663
- /**
664
- * Update partial shimmer configuration. Merges with existing config,
665
- * enabling shimmer if currently disabled.
666
- *
667
- * @example
668
- * // Update just the speed
669
- * spinner.updateShimmer({ speed: 0.5 })
670
- *
671
- * // Update direction
672
- * spinner.updateShimmer({ dir: 'rtl' })
673
- *
674
- * // Update multiple properties
675
- * spinner.updateShimmer({ color: [255, 0, 0], speed: 0.8 })
676
- *
677
- * @param config - Partial shimmer configuration to merge.
678
- *
679
- * @returns This spinner for chaining
680
- */
681
- updateShimmer(config) {
682
- /* c8 ignore start */
683
- const partialConfig = {
684
- __proto__: null,
685
- ...config
686
- };
687
- const update = { __proto__: null };
688
- if (partialConfig.color !== void 0) update.color = partialConfig.color;
689
- if (partialConfig.dir !== void 0) update.direction = partialConfig.dir;
690
- if (partialConfig.speed !== void 0) update.speed = partialConfig.speed;
691
- if (this.#shimmer) this.#shimmer = {
692
- ...this.#shimmer,
693
- ...update
694
- };
695
- else if (this.#shimmerSavedConfig) this.#shimmer = {
696
- ...this.#shimmerSavedConfig,
697
- ...update,
698
- frame: 0
699
- };
700
- else this.#shimmer = {
701
- __proto__: null,
702
- color: require_spinner_format.COLOR_INHERIT,
703
- direction: "ltr",
704
- speed: 1 / 3,
705
- frame: 0,
706
- ...update
707
- };
708
- this.#shimmerSavedConfig = this.#shimmer;
709
- this.#updateSpinnerText();
710
- return this;
711
- /* c8 ignore stop */
712
- }
713
- /**
714
- * Show a warning message (⚠) without stopping the spinner. Outputs to
715
- * stderr and continues spinning.
716
- *
717
- * @param text - Warning message to display.
718
- * @param extras - Additional values to log.
719
- *
720
- * @returns This spinner for chaining
721
- */
722
- warn(text, ...extras) {
723
- return this.#showStatusAndKeepSpinning("warn", [text, ...extras]);
724
- }
725
- /**
726
- * Show a warning message (⚠) and stop the spinner. Auto-clears the
727
- * spinner line before displaying the warning message.
728
- *
729
- * @param text - Warning message to display.
730
- * @param extras - Additional values to log.
731
- *
732
- * @returns This spinner for chaining
733
- */
734
- warnAndStop(text, ...extras) {
735
- return this.#apply("warning", [text, ...extras]);
736
- }
737
- };
738
- require_primordials_object.ObjectDefineProperties(_Spinner.prototype, {
739
- error: require_spinner_format.desc(_Spinner.prototype.fail),
740
- errorAndStop: require_spinner_format.desc(_Spinner.prototype.failAndStop),
741
- warning: require_spinner_format.desc(_Spinner.prototype.warn),
742
- warningAndStop: require_spinner_format.desc(_Spinner.prototype.warnAndStop)
743
- });
744
- /* c8 ignore start */
745
- _defaultSpinner = /* @__PURE__ */ require_env_ci.getCI() ? require_spinner_format.ciSpinner : /* @__PURE__ */ require_spinner_default.getCliSpinners("socket");
56
+ SpinnerCtor = require_spinner_create_spinner_class.createSpinnerClass(YoctoSpinnerClass, require_logger_default.getDefaultLogger());
57
+ /* c8 ignore start - getCI() returns false in test runs so the CI arm is unexercised */
58
+ defaultSpinnerStyle = require_env_ci.getCI() ? require_spinner_format.ciSpinner : require_spinner_default.getCliSpinners("socket");
746
59
  }
747
- return new _Spinner({
748
- spinner: _defaultSpinner,
60
+ return new SpinnerCtor({
61
+ spinner: defaultSpinnerStyle,
749
62
  ...options
750
63
  });
751
64
  }