@socketsecurity/lib 6.0.6 → 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 (499) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/dist/ai/discover.d.mts +2 -2
  3. package/dist/ai/discover.js +3 -2
  4. package/dist/ai/spawn.js +2 -1
  5. package/dist/ai/types.d.mts +18 -6
  6. package/dist/ai/worktree.d.mts +6 -6
  7. package/dist/ai/worktree.js +1 -1
  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 +3 -5
  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/exec.js +2 -3
  27. package/dist/bin/find.js +13 -13
  28. package/dist/bin/prim.cjs +22736 -22556
  29. package/dist/bin/resolve.js +12 -13
  30. package/dist/bin/which.js +8 -8
  31. package/dist/cache/ttl/store.js +5 -5
  32. package/dist/checks/primordials-defaults.d.ts +3 -3
  33. package/dist/checks/primordials-defaults.js +3 -3
  34. package/dist/checks/primordials.js +4 -3
  35. package/dist/{bin → cli}/check-primordials.d.ts +11 -11
  36. package/dist/{bin → cli}/check-primordials.js +55 -52
  37. package/dist/{bin → cli}/check.js +3 -3
  38. package/dist/{bin → cli}/socket-lib.d.ts +1 -1
  39. package/dist/{bin → cli}/socket-lib.js +4 -4
  40. package/dist/colors/socket-palette.js +7 -9
  41. package/dist/compression/_internal.d.ts +12 -12
  42. package/dist/compression/_internal.js +17 -17
  43. package/dist/compression/brotli.d.ts +25 -25
  44. package/dist/compression/brotli.js +33 -33
  45. package/dist/compression/gzip.d.ts +23 -23
  46. package/dist/compression/gzip.js +40 -40
  47. package/dist/constants/agents.d.ts +3 -1
  48. package/dist/constants/agents.js +15 -11
  49. package/dist/constants/licenses.js +3 -3
  50. package/dist/constants/node.d.ts +23 -0
  51. package/dist/constants/node.js +47 -15
  52. package/dist/constants/packages.js +22 -28
  53. package/dist/constants/platform.d.ts +30 -3
  54. package/dist/constants/platform.js +72 -12
  55. package/dist/constants/runtime.d.ts +22 -0
  56. package/dist/constants/runtime.js +32 -0
  57. package/dist/constants/socket.js +1 -1
  58. package/dist/cover/code.js +8 -8
  59. package/dist/cover/formatters.js +5 -5
  60. package/dist/crypto/hash.d.ts +26 -1
  61. package/dist/crypto/hash.js +43 -12
  62. package/dist/debug/_internal.js +4 -6
  63. package/dist/debug/caller-info.js +2 -3
  64. package/dist/debug/namespace.d.ts +7 -0
  65. package/dist/debug/namespace.js +21 -12
  66. package/dist/debug/output.js +21 -24
  67. package/dist/debug/types.d.ts +4 -4
  68. package/dist/dlx/arborist.js +6 -6
  69. package/dist/dlx/binary-cache.js +14 -14
  70. package/dist/dlx/binary-download.d.ts +1 -1
  71. package/dist/dlx/binary-download.js +11 -11
  72. package/dist/dlx/binary-resolution.js +16 -14
  73. package/dist/dlx/binary-types.d.ts +5 -5
  74. package/dist/dlx/binary.js +5 -5
  75. package/dist/dlx/cache.js +1 -1
  76. package/dist/dlx/detect.d.ts +34 -25
  77. package/dist/dlx/detect.js +86 -77
  78. package/dist/dlx/dir.js +2 -2
  79. package/dist/dlx/firewall.d.ts +1 -1
  80. package/dist/dlx/lockfile.d.ts +19 -18
  81. package/dist/dlx/lockfile.js +16 -16
  82. package/dist/dlx/manifest.d.ts +6 -6
  83. package/dist/dlx/manifest.js +5 -5
  84. package/dist/dlx/package.d.ts +10 -10
  85. package/dist/dlx/package.js +16 -16
  86. package/dist/dlx/packages.js +4 -4
  87. package/dist/dlx/paths.js +7 -7
  88. package/dist/dlx/spec.js +1 -1
  89. package/dist/dlx/types.d.ts +28 -27
  90. package/dist/eco/cargo/parse-lockfile.d.ts +1 -1
  91. package/dist/eco/cargo/parse-lockfile.js +2 -2
  92. package/dist/eco/manifest/analyze-lockfile.js +2 -2
  93. package/dist/eco/manifest/detect-format.js +4 -4
  94. package/dist/eco/manifest/find-packages.js +2 -2
  95. package/dist/eco/manifest/get-package-versions.js +2 -2
  96. package/dist/eco/manifest/get-package.js +2 -2
  97. package/dist/eco/manifest/parse-lockfile.js +2 -2
  98. package/dist/eco/manifest/parse-manifest.js +2 -2
  99. package/dist/eco/manifest/parse.js +2 -2
  100. package/dist/eco/npm/npm/exec.js +2 -2
  101. package/dist/eco/npm/npm/flags.js +7 -12
  102. package/dist/eco/npm/npm/parse-lockfile.d.ts +14 -14
  103. package/dist/eco/npm/npm/parse-lockfile.js +3 -3
  104. package/dist/eco/npm/parse-package-json.js +3 -3
  105. package/dist/eco/npm/pnpm/exec.d.ts +1 -1
  106. package/dist/eco/npm/pnpm/exec.js +5 -5
  107. package/dist/eco/npm/pnpm/flags.js +0 -3
  108. package/dist/eco/npm/pnpm/parse-lockfile.d.ts +1 -1
  109. package/dist/eco/npm/pnpm/parse-lockfile.js +4 -4
  110. package/dist/eco/npm/script.js +9 -6
  111. package/dist/eco/npm/yarnpkg/yarn/exec.js +3 -3
  112. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +2 -2
  113. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +8 -8
  114. package/dist/effects/pulse-frames.d.ts +3 -1
  115. package/dist/effects/shimmer-keyframes.d.ts +1 -1
  116. package/dist/effects/shimmer-terminal.d.ts +1 -1
  117. package/dist/env/boolean.js +0 -1
  118. package/dist/env/ci.js +0 -1
  119. package/dist/env/debug.js +0 -1
  120. package/dist/env/github-status.d.ts +51 -0
  121. package/dist/env/github-status.js +90 -0
  122. package/dist/env/github.js +0 -8
  123. package/dist/env/home.js +0 -1
  124. package/dist/env/locale.js +0 -3
  125. package/dist/env/node-auth-token.js +0 -1
  126. package/dist/env/node-env.js +0 -1
  127. package/dist/env/node-version-managers.d.ts +53 -0
  128. package/dist/env/node-version-managers.js +90 -0
  129. package/dist/env/npm.js +0 -5
  130. package/dist/env/number.js +0 -1
  131. package/dist/env/package-manager.js +3 -6
  132. package/dist/env/path.js +0 -1
  133. package/dist/env/pre-commit.js +1 -2
  134. package/dist/env/rewire.d.ts +7 -6
  135. package/dist/env/rewire.js +15 -16
  136. package/dist/env/shell.js +0 -1
  137. package/dist/env/socket-cli.js +5 -18
  138. package/dist/env/socket-mcp.d.ts +114 -0
  139. package/dist/env/socket-mcp.js +146 -0
  140. package/dist/env/socket.d.ts +1 -109
  141. package/dist/env/socket.js +12 -167
  142. package/dist/env/string.js +0 -1
  143. package/dist/env/temp-dir.js +0 -3
  144. package/dist/env/term.js +0 -1
  145. package/dist/env/test.js +3 -6
  146. package/dist/env/windows.js +0 -4
  147. package/dist/env/xdg.js +0 -3
  148. package/dist/events/exit/_internal.d.ts +11 -9
  149. package/dist/events/exit/_internal.js +31 -35
  150. package/dist/events/exit/handler.js +3 -4
  151. package/dist/events/exit/intercept.js +4 -6
  152. package/dist/events/exit/lifecycle.js +16 -18
  153. package/dist/events/exit/signals.js +1 -2
  154. package/dist/events/exit/types.d.ts +6 -5
  155. package/dist/external/@npmcli/package-json.js +2 -2
  156. package/dist/external/npm-pack.js +2 -2
  157. package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
  158. package/dist/external-tools/bazel/types.d.ts +1 -1
  159. package/dist/external-tools/cdxgen/from-vfs.js +1 -1
  160. package/dist/external-tools/cdxgen/types.d.ts +1 -1
  161. package/dist/external-tools/from-download.d.ts +1 -1
  162. package/dist/external-tools/from-download.js +1 -1
  163. package/dist/external-tools/janus/from-vfs.js +1 -1
  164. package/dist/external-tools/janus/types.d.ts +1 -1
  165. package/dist/external-tools/jre/detect-platform-arch.d.ts +10 -6
  166. package/dist/external-tools/jre/detect-platform-arch.js +29 -14
  167. package/dist/external-tools/jre/from-vfs.js +1 -1
  168. package/dist/external-tools/jre/types.d.ts +1 -1
  169. package/dist/external-tools/manifest.d.ts +7 -7
  170. package/dist/external-tools/manifest.js +12 -12
  171. package/dist/external-tools/opengrep/from-vfs.js +1 -1
  172. package/dist/external-tools/opengrep/types.d.ts +1 -1
  173. package/dist/external-tools/python/asset-names.d.ts +76 -0
  174. package/dist/external-tools/python/asset-names.js +104 -0
  175. package/dist/external-tools/python/dlx.d.ts +80 -0
  176. package/dist/external-tools/python/dlx.js +87 -0
  177. package/dist/external-tools/python/from-download.d.ts +53 -0
  178. package/dist/external-tools/python/from-download.js +68 -0
  179. package/dist/external-tools/python/from-path.d.ts +7 -0
  180. package/dist/external-tools/python/from-path.js +23 -0
  181. package/dist/external-tools/python/pin.d.ts +121 -0
  182. package/dist/external-tools/python/pin.js +173 -0
  183. package/dist/external-tools/python/pip-install.d.ts +75 -0
  184. package/dist/external-tools/python/pip-install.js +139 -0
  185. package/dist/external-tools/python/resolve.d.ts +42 -0
  186. package/dist/external-tools/python/resolve.js +58 -0
  187. package/dist/external-tools/python/types.d.ts +49 -0
  188. package/dist/external-tools/sbt/from-vfs.js +1 -1
  189. package/dist/external-tools/sbt/types.d.ts +1 -1
  190. package/dist/external-tools/skillspector/from-path.js +3 -5
  191. package/dist/external-tools/skillspector/from-vfs.js +1 -1
  192. package/dist/external-tools/synp/from-download.js +2 -2
  193. package/dist/external-tools/synp/from-vfs.js +1 -1
  194. package/dist/external-tools/trivy/from-vfs.js +1 -1
  195. package/dist/external-tools/trivy/types.d.ts +1 -1
  196. package/dist/external-tools/trufflehog/from-vfs.js +1 -1
  197. package/dist/external-tools/trufflehog/types.d.ts +1 -1
  198. package/dist/fs/_internal.d.ts +1 -1
  199. package/dist/fs/_internal.js +7 -7
  200. package/dist/fs/access.js +5 -9
  201. package/dist/fs/{path-cache.js → allowed-dirs-cache.js} +1 -1
  202. package/dist/fs/encoding.js +5 -7
  203. package/dist/fs/{find-up.js → find.js} +11 -13
  204. package/dist/fs/inspect.js +7 -13
  205. package/dist/fs/read-dir.js +7 -10
  206. package/dist/fs/read-file.js +8 -14
  207. package/dist/fs/read-json-cache.d.ts +6 -4
  208. package/dist/fs/read-json-cache.js +9 -6
  209. package/dist/fs/read-json.js +4 -6
  210. package/dist/fs/resolve-module.js +1 -1
  211. package/dist/fs/safe.d.ts +1 -1
  212. package/dist/fs/safe.js +12 -13
  213. package/dist/fs/unique.js +4 -5
  214. package/dist/fs/validate.js +1 -2
  215. package/dist/fs/write-json.js +4 -5
  216. package/dist/git/_internal.js +10 -10
  217. package/dist/git/changed.js +4 -4
  218. package/dist/git/repo.js +3 -3
  219. package/dist/git/staged.js +4 -4
  220. package/dist/git/unstaged.js +4 -4
  221. package/dist/github/ghsa.js +2 -2
  222. package/dist/github/refs-cache.d.ts +1 -1
  223. package/dist/github/refs-cache.js +5 -5
  224. package/dist/github/refs-rest.js +5 -5
  225. package/dist/github/{fetch.js → request.js} +13 -2
  226. package/dist/github/token.js +1 -1
  227. package/dist/github/types.d.ts +1 -1
  228. package/dist/globs/_internal.js +7 -9
  229. package/dist/globs/match.js +4 -6
  230. package/dist/globs/matcher.d.ts +3 -3
  231. package/dist/globs/matcher.js +12 -14
  232. package/dist/globs/stream.js +1 -2
  233. package/dist/globs/types.d.ts +24 -24
  234. package/dist/http-request/_internal.d.ts +1 -1
  235. package/dist/http-request/browser.js +4 -2
  236. package/dist/http-request/checksum-file.d.ts +55 -0
  237. package/dist/http-request/checksum-file.js +95 -0
  238. package/dist/http-request/download-types.d.ts +15 -23
  239. package/dist/http-request/download.js +3 -3
  240. package/dist/http-request/headers.js +0 -1
  241. package/dist/http-request/request-attempt.js +37 -33
  242. package/dist/http-request/request-types.d.ts +2 -2
  243. package/dist/http-request/request.js +1 -1
  244. package/dist/http-request/user-agent.js +3 -4
  245. package/dist/integrity.d.ts +86 -18
  246. package/dist/integrity.js +119 -30
  247. package/dist/ipc/directory.js +2 -2
  248. package/dist/ipc/paths.js +1 -1
  249. package/dist/ipc/write.js +1 -1
  250. package/dist/ipc-cli/get.js +12 -12
  251. package/dist/json/edit.js +13 -14
  252. package/dist/json/format.js +2 -2
  253. package/dist/json/parse.d.ts +1 -1
  254. package/dist/json/parse.js +3 -7
  255. package/dist/logger/_internal.d.ts +4 -4
  256. package/dist/logger/_internal.js +3 -3
  257. package/dist/logger/colors.js +4 -3
  258. package/dist/logger/console-methods.d.ts +132 -0
  259. package/dist/logger/console-methods.js +169 -0
  260. package/dist/logger/console.d.ts +12 -0
  261. package/dist/logger/console.js +42 -11
  262. package/dist/logger/indentation-methods.d.ts +81 -0
  263. package/dist/logger/indentation-methods.js +121 -0
  264. package/dist/logger/node.d.ts +16 -338
  265. package/dist/logger/node.js +75 -608
  266. package/dist/logger/options.d.ts +39 -0
  267. package/dist/logger/options.js +47 -0
  268. package/dist/logger/semantic-methods.d.ts +63 -0
  269. package/dist/logger/semantic-methods.js +108 -0
  270. package/dist/logger/stream-methods.d.ts +63 -0
  271. package/dist/logger/stream-methods.js +101 -0
  272. package/dist/logger/stream.d.ts +37 -0
  273. package/dist/logger/stream.js +42 -0
  274. package/dist/logger/symbols-builder.js +9 -9
  275. package/dist/logger/symbols.d.ts +2 -25
  276. package/dist/logger/symbols.js +53 -74
  277. package/dist/logger/types.d.ts +1 -1
  278. package/dist/memo/types.d.ts +6 -6
  279. package/dist/native-messaging/host.d.ts +20 -0
  280. package/dist/native-messaging/host.js +120 -0
  281. package/dist/native-messaging/index.d.ts +5 -0
  282. package/dist/native-messaging/index.js +22 -0
  283. package/dist/native-messaging/install.d.ts +60 -0
  284. package/dist/native-messaging/install.js +141 -0
  285. package/dist/native-messaging/rate-limit.d.ts +62 -0
  286. package/dist/native-messaging/rate-limit.js +115 -0
  287. package/dist/native-messaging/run.d.ts +10 -0
  288. package/dist/native-messaging/run.js +17 -0
  289. package/dist/node/async-hooks.js +4 -3
  290. package/dist/node/child-process.js +4 -3
  291. package/dist/node/crypto.js +4 -3
  292. package/dist/node/events.js +4 -3
  293. package/dist/node/fs-promises.js +4 -3
  294. package/dist/node/fs.js +4 -3
  295. package/dist/node/http.js +4 -3
  296. package/dist/node/https.js +4 -3
  297. package/dist/node/module.js +10 -6
  298. package/dist/node/os.js +4 -3
  299. package/dist/node/path.js +4 -3
  300. package/dist/node/timers-promises.js +4 -3
  301. package/dist/node/url.js +4 -3
  302. package/dist/node/util.js +4 -3
  303. package/dist/objects/getters.js +5 -7
  304. package/dist/objects/inspect.js +1 -4
  305. package/dist/objects/mutate.js +2 -3
  306. package/dist/objects/predicates.js +0 -4
  307. package/dist/objects/sort.js +3 -7
  308. package/dist/packages/edit-class.js +15 -16
  309. package/dist/packages/edit.js +12 -14
  310. package/dist/packages/exports.js +11 -17
  311. package/dist/packages/fetch.d.ts +16 -0
  312. package/dist/packages/fetch.js +81 -0
  313. package/dist/packages/find.d.ts +55 -0
  314. package/dist/packages/find.js +65 -0
  315. package/dist/packages/isolation.js +14 -14
  316. package/dist/packages/licenses.js +16 -16
  317. package/dist/packages/manifest.js +12 -15
  318. package/dist/packages/metadata-extensions.d.ts +14 -0
  319. package/dist/packages/metadata-extensions.js +43 -0
  320. package/dist/packages/normalize.js +5 -9
  321. package/dist/packages/provenance.js +16 -18
  322. package/dist/packages/read.d.ts +29 -0
  323. package/dist/packages/read.js +66 -0
  324. package/dist/packages/specs.d.ts +48 -1
  325. package/dist/packages/specs.js +74 -11
  326. package/dist/packages/tarball.d.ts +24 -0
  327. package/dist/packages/tarball.js +79 -0
  328. package/dist/packages/types.d.ts +21 -20
  329. package/dist/packages/validation.js +0 -3
  330. package/dist/paths/_internal.d.ts +2 -1
  331. package/dist/paths/_internal.js +7 -19
  332. package/dist/paths/conversion.js +5 -9
  333. package/dist/paths/filenames.d.ts +0 -1
  334. package/dist/paths/filenames.js +0 -2
  335. package/dist/paths/normalize.js +4 -5
  336. package/dist/paths/packages.js +4 -7
  337. package/dist/paths/predicates.js +9 -16
  338. package/dist/paths/resolve.js +11 -14
  339. package/dist/paths/rewire.js +3 -3
  340. package/dist/paths/socket.js +16 -16
  341. package/dist/paths/walk.d.ts +1 -1
  342. package/dist/paths/walk.js +4 -4
  343. package/dist/perf/report.js +2 -2
  344. package/dist/perf/types.d.ts +1 -1
  345. package/dist/pkg-ext/data.js +1 -1
  346. package/dist/primordials/array.js +9 -9
  347. package/dist/primordials/date.js +2 -2
  348. package/dist/primordials/error.js +3 -3
  349. package/dist/primordials/headers.d.ts +10 -0
  350. package/dist/primordials/headers.js +23 -0
  351. package/dist/primordials/intl.d.ts +13 -0
  352. package/dist/primordials/intl.js +26 -0
  353. package/dist/primordials/math.js +33 -33
  354. package/dist/primordials/number.js +9 -9
  355. package/dist/primordials/object.js +5 -5
  356. package/dist/primordials/string.d.ts +2 -2
  357. package/dist/primordials/string.js +6 -6
  358. package/dist/primordials/symbol.js +3 -3
  359. package/dist/primordials/uncurry.js +9 -9
  360. package/dist/process/abort.js +3 -3
  361. package/dist/process/lock-manager.js +8 -8
  362. package/dist/process/spawn/_internal.js +6 -8
  363. package/dist/process/spawn/child.js +14 -14
  364. package/dist/process/spawn/errors.js +2 -4
  365. package/dist/process/spawn/kill-tree.d.ts +53 -0
  366. package/dist/process/spawn/kill-tree.js +85 -0
  367. package/dist/process/spawn/stdio.js +0 -1
  368. package/dist/process/spawn/types.d.ts +5 -5
  369. package/dist/process/transient.js +2 -2
  370. package/dist/promises/_internal.d.ts +2 -1
  371. package/dist/promises/_internal.js +2 -6
  372. package/dist/promises/iterate.js +11 -15
  373. package/dist/promises/options.js +3 -6
  374. package/dist/promises/retry.js +4 -5
  375. package/dist/promises/timers.d.ts +30 -0
  376. package/dist/promises/timers.js +48 -0
  377. package/dist/releases/github-archives.d.ts +6 -6
  378. package/dist/releases/github-archives.js +2 -2
  379. package/dist/releases/github-asset-url.d.ts +1 -1
  380. package/dist/releases/github-asset-url.js +5 -5
  381. package/dist/releases/github-downloads.d.ts +1 -1
  382. package/dist/releases/github-downloads.js +3 -3
  383. package/dist/releases/github-listing.d.ts +11 -2
  384. package/dist/releases/github-listing.js +20 -7
  385. package/dist/releases/github-retry-config.js +1 -1
  386. package/dist/releases/github-types.d.ts +6 -6
  387. package/dist/releases/socket-btm-binary-naming.d.ts +107 -0
  388. package/dist/releases/socket-btm-binary-naming.js +155 -0
  389. package/dist/releases/socket-btm.d.ts +8 -115
  390. package/dist/releases/socket-btm.js +16 -159
  391. package/dist/schema/types.d.ts +1 -1
  392. package/dist/sea/detect.js +6 -6
  393. package/dist/secrets/_internal.d.ts +2 -2
  394. package/dist/secrets/_internal.js +2 -2
  395. package/dist/secrets/compare.d.ts +45 -0
  396. package/dist/secrets/compare.js +61 -0
  397. package/dist/secrets/keychain.js +6 -4
  398. package/dist/secrets/linux.js +19 -19
  399. package/dist/secrets/macos.d.ts +1 -1
  400. package/dist/secrets/macos.js +13 -13
  401. package/dist/secrets/rc.d.ts +2 -2
  402. package/dist/secrets/rc.js +6 -4
  403. package/dist/secrets/socket-api-token.d.ts +4 -4
  404. package/dist/secrets/socket-api-token.js +18 -9
  405. package/dist/secrets/windows.js +14 -13
  406. package/dist/shadow/skip.js +2 -2
  407. package/dist/smol/detect.js +9 -10
  408. package/dist/smol/http.js +6 -7
  409. package/dist/smol/https.js +6 -7
  410. package/dist/smol/manifest.d.ts +1 -1
  411. package/dist/smol/manifest.js +6 -7
  412. package/dist/smol/path.d.ts +1 -1
  413. package/dist/smol/path.js +7 -8
  414. package/dist/smol/primordial.d.ts +4 -0
  415. package/dist/smol/primordial.js +6 -7
  416. package/dist/smol/purl.d.ts +1 -1
  417. package/dist/smol/purl.js +7 -8
  418. package/dist/smol/versions.js +6 -7
  419. package/dist/smol/vfs.js +6 -7
  420. package/dist/sorts/_internal.js +6 -8
  421. package/dist/sorts/natural.js +10 -12
  422. package/dist/sorts/semver.js +1 -2
  423. package/dist/sorts/strings.js +0 -1
  424. package/dist/sorts/types.d.ts +1 -1
  425. package/dist/spinner/create-spinner-class.d.ts +38 -0
  426. package/dist/spinner/create-spinner-class.js +302 -0
  427. package/dist/spinner/default.js +8 -9
  428. package/dist/spinner/spinner-internals.d.ts +36 -0
  429. package/dist/spinner/spinner-internals.js +101 -0
  430. package/dist/spinner/spinner-shimmer-methods.d.ts +54 -0
  431. package/dist/spinner/spinner-shimmer-methods.js +143 -0
  432. package/dist/spinner/spinner-status-methods.d.ts +40 -0
  433. package/dist/spinner/spinner-status-methods.js +133 -0
  434. package/dist/spinner/spinner.d.ts +4 -5
  435. package/dist/spinner/spinner.js +18 -705
  436. package/dist/spinner/types.d.ts +3 -1
  437. package/dist/spinner/with.d.ts +10 -0
  438. package/dist/spinner/with.js +16 -2
  439. package/dist/stdio/divider.js +1 -1
  440. package/dist/stdio/footer.js +3 -3
  441. package/dist/stdio/header.js +4 -4
  442. package/dist/stdio/progress.js +5 -5
  443. package/dist/stdio/prompts.d.ts +5 -3
  444. package/dist/stdio/prompts.js +6 -7
  445. package/dist/stdio/stdout.js +3 -3
  446. package/dist/streams/parallel.js +3 -5
  447. package/dist/streams/transform.js +2 -3
  448. package/dist/strings/format.js +2 -6
  449. package/dist/strings/predicates.js +0 -2
  450. package/dist/strings/search.js +1 -2
  451. package/dist/strings/transform.js +0 -3
  452. package/dist/strings/width.js +9 -10
  453. package/dist/tables/bordered.js +4 -3
  454. package/dist/tables/padding.js +1 -1
  455. package/dist/tables/simple.js +8 -5
  456. package/dist/temporal/instant.js +1 -1
  457. package/dist/temporal/slots.js +6 -6
  458. package/dist/temporal/system.js +9 -9
  459. package/dist/themes/context.d.ts +3 -2
  460. package/dist/themes/context.js +4 -5
  461. package/dist/themes/themes.js +15 -15
  462. package/dist/themes/types.d.ts +3 -3
  463. package/dist/url/parse.js +0 -2
  464. package/dist/url/predicates.js +1 -2
  465. package/dist/url/search-params.js +3 -9
  466. package/dist/url/types.d.ts +5 -5
  467. package/dist/versions/_internal.js +3 -3
  468. package/dist/words/article.js +0 -1
  469. package/dist/words/capitalize.js +0 -1
  470. package/dist/words/pluralize.js +15 -5
  471. package/package.json +247 -106
  472. package/dist/external-tools/uv/asset-names.d.ts +0 -36
  473. package/dist/external-tools/uv/asset-names.js +0 -70
  474. package/dist/external-tools/uv/from-download.d.ts +0 -17
  475. package/dist/external-tools/uv/from-download.js +0 -47
  476. package/dist/external-tools/uv/from-path.d.ts +0 -5
  477. package/dist/external-tools/uv/from-path.js +0 -22
  478. package/dist/external-tools/uv/from-vfs.d.ts +0 -7
  479. package/dist/external-tools/uv/from-vfs.js +0 -26
  480. package/dist/external-tools/uv/resolve.d.ts +0 -25
  481. package/dist/external-tools/uv/resolve.js +0 -53
  482. package/dist/external-tools/uv/types.d.ts +0 -24
  483. package/dist/http-request/checksums.d.ts +0 -69
  484. package/dist/http-request/checksums.js +0 -108
  485. package/dist/http-request/http-request.d.ts +0 -12
  486. package/dist/http-request/http-request.js +0 -11
  487. package/dist/packages/operations.d.ts +0 -113
  488. package/dist/packages/operations.js +0 -304
  489. package/dist/ssri/convert.d.ts +0 -48
  490. package/dist/ssri/convert.js +0 -69
  491. package/dist/ssri/parse.d.ts +0 -27
  492. package/dist/ssri/parse.js +0 -41
  493. package/dist/ssri/validate.d.ts +0 -41
  494. package/dist/ssri/validate.js +0 -56
  495. /package/dist/{bin → cli}/check.d.ts +0 -0
  496. /package/dist/external-tools/{uv → python}/types.js +0 -0
  497. /package/dist/fs/{path-cache.d.ts → allowed-dirs-cache.d.ts} +0 -0
  498. /package/dist/fs/{find-up.d.ts → find.d.ts} +0 -0
  499. /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
@@ -16,8 +16,8 @@ src_external__socketregistry_yocto_spinner = require_runtime.__toESM(src_externa
16
16
  * and memoized; `getDefaultSpinner()` defers `Spinner()` construction until
17
17
  * first call so module initialization stays cheap.
18
18
  */
19
- let _cliSpinners;
20
- let _spinner;
19
+ let cliSpinners;
20
+ let spinner;
21
21
  /**
22
22
  * Get available CLI spinner styles or a specific style by name. Extends the
23
23
  * standard cli-spinners collection with Socket custom spinners.
@@ -42,17 +42,16 @@ let _spinner;
42
42
  *
43
43
  * @see https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json
44
44
  */
45
- /*@__NO_SIDE_EFFECTS__*/
46
45
  function getCliSpinners(styleName) {
47
- if (_cliSpinners === void 0)
46
+ if (cliSpinners === void 0)
48
47
  /* c8 ignore stop */
49
- _cliSpinners = {
48
+ cliSpinners = {
50
49
  __proto__: null,
51
50
  ...(0, src_external__socketregistry_yocto_spinner.default)({}).constructor.spinners,
52
51
  socket: require_effects_pulse_frames.generateSocketSpinnerFrames()
53
52
  };
54
- if (typeof styleName === "string" && _cliSpinners) return /* @__PURE__ */ require_objects_predicates.hasOwn(_cliSpinners, styleName) ? _cliSpinners[styleName] : void 0;
55
- return _cliSpinners;
53
+ if (typeof styleName === "string" && cliSpinners) return require_objects_predicates.hasOwn(cliSpinners, styleName) ? cliSpinners[styleName] : void 0;
54
+ return cliSpinners;
56
55
  }
57
56
  /**
58
57
  * Get the default spinner instance. Lazily creates the spinner to avoid
@@ -70,8 +69,8 @@ function getCliSpinners(styleName) {
70
69
  * @returns Shared default spinner instance
71
70
  */
72
71
  function getDefaultSpinner() {
73
- if (_spinner === void 0) _spinner = /* @__PURE__ */ require_spinner_spinner.Spinner();
74
- return _spinner;
72
+ if (spinner === void 0) spinner = require_spinner_spinner.Spinner();
73
+ return spinner;
75
74
  }
76
75
 
77
76
  //#endregion
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @file Pure helpers extracted from the Socket `Spinner` class body: option
3
+ * parsing (theme/color resolution, shimmer config) and the shimmer rendering
4
+ * pass. Keeping these side-effect-free and outside the class keeps the class
5
+ * module focused on method wiring and under the file-size cap.
6
+ */
7
+ import type { ColorRgb } from '../colors/types';
8
+ import type { ShimmerInfo, SpinnerOptions } from './types';
9
+ /**
10
+ * Apply the shimmer effect to display text. Mutates the shimmer frame counter
11
+ * as it advances. Skips work in CI or when the direction is 'none'.
12
+ *
13
+ * @param displayText - Text to colorize.
14
+ * @param shimmer - Mutable shimmer state (frame counter is advanced).
15
+ * @param currentColor - The spinner's current RGB color (used for inherit).
16
+ *
17
+ * @returns Colorized text, or the input unchanged when shimmer is skipped.
18
+ */
19
+ export declare function applyShimmer(displayText: string, shimmer: ShimmerInfo, currentColor: ColorRgb): string;
20
+ /**
21
+ * Parse the shimmer option (object or direction string) into a `ShimmerInfo`.
22
+ *
23
+ * @param shimmer - The `shimmer` option value.
24
+ *
25
+ * @returns Parsed shimmer state, or undefined when shimmer is disabled.
26
+ */
27
+ export declare function parseShimmerOption(shimmer: SpinnerOptions['shimmer']): ShimmerInfo | undefined;
28
+ /**
29
+ * Resolve the spinner's RGB color from options and the active theme. Validates
30
+ * RGB tuples and falls back to the theme's primary color.
31
+ *
32
+ * @param opts - Normalized spinner options.
33
+ *
34
+ * @returns Resolved RGB color tuple.
35
+ */
36
+ export declare function resolveSpinnerColorRgb(opts: SpinnerOptions): ColorRgb;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_primordials_error = require('../primordials/error.js');
5
+ const require_primordials_array = require('../primordials/array.js');
6
+ const require_themes_themes = require('../themes/themes.js');
7
+ const require_themes_context = require('../themes/context.js');
8
+ const require_env_ci = require('../env/ci.js');
9
+ const require_colors_convert = require('../colors/convert.js');
10
+ const require_spinner_format = require('./format.js');
11
+ const require_effects_shimmer = require('../effects/shimmer.js');
12
+ const require_effects_shimmer_terminal = require('../effects/shimmer-terminal.js');
13
+ const require_themes_resolve = require('../themes/resolve.js');
14
+
15
+ //#region src/spinner/spinner-internals.ts
16
+ /**
17
+ * Apply the shimmer effect to display text. Mutates the shimmer frame counter
18
+ * as it advances. Skips work in CI or when the direction is 'none'.
19
+ *
20
+ * @param displayText - Text to colorize.
21
+ * @param shimmer - Mutable shimmer state (frame counter is advanced).
22
+ * @param currentColor - The spinner's current RGB color (used for inherit).
23
+ *
24
+ * @returns Colorized text, or the input unchanged when shimmer is skipped.
25
+ */
26
+ function applyShimmer(displayText, shimmer, currentColor) {
27
+ let shimmerColor;
28
+ if (shimmer.color === "inherit") shimmerColor = currentColor;
29
+ else if (require_primordials_array.ArrayIsArray(shimmer.color[0])) shimmerColor = shimmer.color;
30
+ else shimmerColor = require_colors_convert.toRgb(shimmer.color);
31
+ if (!require_env_ci.getCI() && shimmer.direction !== "none") {
32
+ const chars = [...displayText];
33
+ const colors = require_effects_shimmer.frameColors(require_effects_shimmer.configToSpec({
34
+ color: shimmerColor,
35
+ dir: shimmer.direction,
36
+ speed: shimmer.speed
37
+ }, chars.length), chars.length, shimmer.frame);
38
+ shimmer.frame++;
39
+ return require_effects_shimmer_terminal.colorsToAnsi(displayText, colors);
40
+ }
41
+ return displayText;
42
+ }
43
+ /**
44
+ * Parse the shimmer option (object or direction string) into a `ShimmerInfo`.
45
+ *
46
+ * @param shimmer - The `shimmer` option value.
47
+ *
48
+ * @returns Parsed shimmer state, or undefined when shimmer is disabled.
49
+ */
50
+ function parseShimmerOption(shimmer) {
51
+ if (!shimmer) return;
52
+ let shimmerDir;
53
+ let shimmerColor;
54
+ let shimmerSpeed = 1 / 3;
55
+ if (typeof shimmer === "string") {
56
+ shimmerDir = shimmer;
57
+ shimmerColor = require_spinner_format.COLOR_INHERIT;
58
+ } else {
59
+ const shimmerConfig = {
60
+ __proto__: null,
61
+ ...shimmer
62
+ };
63
+ shimmerDir = shimmerConfig.dir ?? "ltr";
64
+ shimmerColor = shimmerConfig.color ?? "inherit";
65
+ shimmerSpeed = shimmerConfig.speed ?? 1 / 3;
66
+ }
67
+ return {
68
+ __proto__: null,
69
+ color: shimmerColor,
70
+ direction: shimmerDir,
71
+ speed: shimmerSpeed,
72
+ frame: 0
73
+ };
74
+ }
75
+ /**
76
+ * Resolve the spinner's RGB color from options and the active theme. Validates
77
+ * RGB tuples and falls back to the theme's primary color.
78
+ *
79
+ * @param opts - Normalized spinner options.
80
+ *
81
+ * @returns Resolved RGB color tuple.
82
+ */
83
+ function resolveSpinnerColorRgb(opts) {
84
+ let theme = require_themes_context.getTheme();
85
+ if (opts.theme) if (typeof opts.theme === "string") theme = require_themes_themes.THEMES[opts.theme] ?? theme;
86
+ else theme = opts.theme;
87
+ let defaultColor = theme.colors.primary;
88
+ if (theme.effects?.spinner?.color) {
89
+ const resolved = require_themes_resolve.resolveColor(theme.effects.spinner.color, theme.colors);
90
+ if (resolved === "inherit" || require_primordials_array.ArrayIsArray(resolved[0])) defaultColor = theme.colors.primary;
91
+ else defaultColor = resolved;
92
+ }
93
+ const spinnerColor = opts.color ?? defaultColor;
94
+ 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");
95
+ return require_colors_convert.toRgb(spinnerColor);
96
+ }
97
+
98
+ //#endregion
99
+ exports.applyShimmer = applyShimmer;
100
+ exports.parseShimmerOption = parseShimmerOption;
101
+ exports.resolveSpinnerColorRgb = resolveSpinnerColorRgb;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @file Shimmer-configuration methods for the Socket `Spinner` class, split out
3
+ * of `create-spinner-class.ts` to keep that module under the file-size cap.
4
+ * The methods read and write the spinner's shimmer state through well-known
5
+ * symbols (`getShimmerSymbol`, `setShimmerSymbol`, `getSavedShimmerSymbol`,
6
+ * `setSavedShimmerSymbol`, `updateTextSymbol`) the class exposes, so they
7
+ * share the same private state without crossing the private-field boundary.
8
+ * `installShimmerMethods()` defines them on the prototype after the class is
9
+ * built.
10
+ */
11
+ import type { ShimmerInfo, SpinnerInstance } from './types';
12
+ /**
13
+ * Well-known symbol the spinner class exposes to read its current shimmer
14
+ * state.
15
+ */
16
+ export declare const getShimmerSymbol: unique symbol;
17
+ /**
18
+ * Well-known symbol the spinner class exposes to replace its current shimmer
19
+ * state.
20
+ */
21
+ export declare const setShimmerSymbol: unique symbol;
22
+ /**
23
+ * Well-known symbol the spinner class exposes to read the saved shimmer config
24
+ * that `enableShimmer()` restores from.
25
+ */
26
+ export declare const getSavedShimmerSymbol: unique symbol;
27
+ /**
28
+ * Well-known symbol the spinner class exposes to replace the saved shimmer
29
+ * config.
30
+ */
31
+ export declare const setSavedShimmerSymbol: unique symbol;
32
+ /**
33
+ * Well-known symbol the spinner class exposes for its `#updateSpinnerText`
34
+ * helper so the shimmer methods can trigger a re-render after a state change.
35
+ */
36
+ export declare const updateTextSymbol: unique symbol;
37
+ /**
38
+ * Runtime shape of the spinner instance the shimmer methods operate on.
39
+ */
40
+ export type ShimmerHost = SpinnerInstance & {
41
+ [getShimmerSymbol]: () => ShimmerInfo | undefined;
42
+ [setShimmerSymbol]: (value: ShimmerInfo | undefined) => void;
43
+ [getSavedShimmerSymbol]: () => ShimmerInfo | undefined;
44
+ [setSavedShimmerSymbol]: (value: ShimmerInfo | undefined) => void;
45
+ [updateTextSymbol]: () => void;
46
+ };
47
+ /**
48
+ * Install the shimmer-configuration methods + `shimmerState` getter onto the
49
+ * spinner prototype. The methods reach the spinner's private shimmer state
50
+ * through the well-known symbols the class exposes.
51
+ *
52
+ * @param proto - The spinner class prototype to augment.
53
+ */
54
+ export declare function installShimmerMethods(proto: object): void;
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_spinner_format = require('./format.js');
5
+
6
+ //#region src/spinner/spinner-shimmer-methods.ts
7
+ /**
8
+ * Well-known symbol the spinner class exposes to read its current shimmer
9
+ * state.
10
+ */
11
+ const getShimmerSymbol = Symbol.for("socket.spinner.getShimmer");
12
+ /**
13
+ * Well-known symbol the spinner class exposes to replace its current shimmer
14
+ * state.
15
+ */
16
+ const setShimmerSymbol = Symbol.for("socket.spinner.setShimmer");
17
+ /**
18
+ * Well-known symbol the spinner class exposes to read the saved shimmer config
19
+ * that `enableShimmer()` restores from.
20
+ */
21
+ const getSavedShimmerSymbol = Symbol.for("socket.spinner.getSavedShimmer");
22
+ /**
23
+ * Well-known symbol the spinner class exposes to replace the saved shimmer
24
+ * config.
25
+ */
26
+ const setSavedShimmerSymbol = Symbol.for("socket.spinner.setSavedShimmer");
27
+ /**
28
+ * Well-known symbol the spinner class exposes for its `#updateSpinnerText`
29
+ * helper so the shimmer methods can trigger a re-render after a state change.
30
+ */
31
+ const updateTextSymbol = Symbol.for("socket.spinner.updateText");
32
+ /**
33
+ * Install the shimmer-configuration methods + `shimmerState` getter onto the
34
+ * spinner prototype. The methods reach the spinner's private shimmer state
35
+ * through the well-known symbols the class exposes.
36
+ *
37
+ * @param proto - The spinner class prototype to augment.
38
+ */
39
+ function installShimmerMethods(proto) {
40
+ const target = proto;
41
+ function shimmerState() {
42
+ const shimmer = this[getShimmerSymbol]();
43
+ if (!shimmer) return;
44
+ return {
45
+ __proto__: null,
46
+ color: shimmer.color,
47
+ direction: shimmer.direction,
48
+ speed: shimmer.speed,
49
+ frame: shimmer.frame
50
+ };
51
+ }
52
+ function disableShimmer() {
53
+ this[setShimmerSymbol](void 0);
54
+ this[updateTextSymbol]();
55
+ return this;
56
+ }
57
+ function enableShimmer() {
58
+ const saved = this[getSavedShimmerSymbol]();
59
+ if (saved) this[setShimmerSymbol]({
60
+ ...saved,
61
+ frame: 0
62
+ });
63
+ else {
64
+ const next = {
65
+ __proto__: null,
66
+ color: require_spinner_format.COLOR_INHERIT,
67
+ direction: "ltr",
68
+ speed: 1 / 3,
69
+ frame: 0
70
+ };
71
+ this[setShimmerSymbol](next);
72
+ this[setSavedShimmerSymbol](next);
73
+ }
74
+ this[updateTextSymbol]();
75
+ return this;
76
+ }
77
+ function setShimmer(config) {
78
+ const next = {
79
+ __proto__: null,
80
+ color: config.color ?? "inherit",
81
+ direction: config.dir ?? "ltr",
82
+ speed: config.speed ?? 1 / 3,
83
+ frame: 0
84
+ };
85
+ this[setShimmerSymbol](next);
86
+ this[setSavedShimmerSymbol](next);
87
+ this[updateTextSymbol]();
88
+ return this;
89
+ }
90
+ function updateShimmer(config) {
91
+ /* c8 ignore start - each partial-config field branch fires only when caller updates that field; shimmer-state cascade covers three init paths */
92
+ const partialConfig = {
93
+ __proto__: null,
94
+ ...config
95
+ };
96
+ const update = { __proto__: null };
97
+ if (partialConfig.color !== void 0) update.color = partialConfig.color;
98
+ if (partialConfig.dir !== void 0) update.direction = partialConfig.dir;
99
+ if (partialConfig.speed !== void 0) update.speed = partialConfig.speed;
100
+ const shimmer = this[getShimmerSymbol]();
101
+ const saved = this[getSavedShimmerSymbol]();
102
+ let next;
103
+ if (shimmer) next = {
104
+ ...shimmer,
105
+ ...update
106
+ };
107
+ else if (saved) next = {
108
+ ...saved,
109
+ ...update,
110
+ frame: 0
111
+ };
112
+ else next = {
113
+ __proto__: null,
114
+ color: require_spinner_format.COLOR_INHERIT,
115
+ direction: "ltr",
116
+ speed: 1 / 3,
117
+ frame: 0,
118
+ ...update
119
+ };
120
+ this[setShimmerSymbol](next);
121
+ this[setSavedShimmerSymbol](next);
122
+ this[updateTextSymbol]();
123
+ return this;
124
+ /* c8 ignore stop */
125
+ }
126
+ Object.defineProperty(target, "shimmerState", {
127
+ configurable: true,
128
+ enumerable: false,
129
+ get: shimmerState
130
+ });
131
+ target["disableShimmer"] = disableShimmer;
132
+ target["enableShimmer"] = enableShimmer;
133
+ target["setShimmer"] = setShimmer;
134
+ target["updateShimmer"] = updateShimmer;
135
+ }
136
+
137
+ //#endregion
138
+ exports.getSavedShimmerSymbol = getSavedShimmerSymbol;
139
+ exports.getShimmerSymbol = getShimmerSymbol;
140
+ exports.installShimmerMethods = installShimmerMethods;
141
+ exports.setSavedShimmerSymbol = setSavedShimmerSymbol;
142
+ exports.setShimmerSymbol = setShimmerSymbol;
143
+ exports.updateTextSymbol = updateTextSymbol;
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @file Status-presentation methods for the Socket `Spinner` class, split out
3
+ * of `create-spinner-class.ts` to keep that module under the file-size cap.
4
+ * Each method is a thin delegation to one of the two internal helpers the
5
+ * class exposes via well-known symbols (`applyStatusSymbol`,
6
+ * `showStatusSymbol`); `installStatusMethods()` defines them on the spinner
7
+ * prototype after the class is built so they share the same private state.
8
+ */
9
+ import type { SpinnerLogger } from './create-spinner-class';
10
+ import type { SpinnerInstance, SymbolType } from './types';
11
+ /**
12
+ * Well-known symbol the spinner class uses to expose its `#apply` helper so the
13
+ * status methods in this module can drive a yocto-spinner method + logger
14
+ * update without reaching into a private field across the file boundary.
15
+ */
16
+ export declare const applyStatusSymbol: unique symbol;
17
+ /**
18
+ * Well-known symbol the spinner class uses to expose its
19
+ * `#showStatusAndKeepSpinning` helper so the status methods here can emit a
20
+ * symbol-prefixed status line without stopping the spinner.
21
+ */
22
+ export declare const showStatusSymbol: unique symbol;
23
+ /**
24
+ * Runtime shape of the spinner instance the status methods operate on. Only the
25
+ * two symbol-keyed helpers are needed; everything else is reached through the
26
+ * module-scope `logger`.
27
+ */
28
+ export type StatusHost = SpinnerInstance & {
29
+ [applyStatusSymbol]: (methodName: string, args: unknown[]) => SpinnerInstance;
30
+ [showStatusSymbol]: (symbolType: SymbolType, args: unknown[]) => SpinnerInstance;
31
+ };
32
+ /**
33
+ * Install the status-presentation methods onto the spinner prototype. The
34
+ * methods close over `logger` for the stdout/stderr writes and reach the
35
+ * spinner's private helpers through the two well-known symbols.
36
+ *
37
+ * @param proto - The spinner class prototype to augment.
38
+ * @param logger - Default logger used for status output.
39
+ */
40
+ export declare function installStatusMethods(proto: object, logger: SpinnerLogger): void;
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_logger_symbols = require('../logger/symbols.js');
5
+ const require_spinner_format = require('./format.js');
6
+ const require_debug_namespace = require('../debug/namespace.js');
7
+
8
+ //#region src/spinner/spinner-status-methods.ts
9
+ /**
10
+ * @file Status-presentation methods for the Socket `Spinner` class, split out
11
+ * of `create-spinner-class.ts` to keep that module under the file-size cap.
12
+ * Each method is a thin delegation to one of the two internal helpers the
13
+ * class exposes via well-known symbols (`applyStatusSymbol`,
14
+ * `showStatusSymbol`); `installStatusMethods()` defines them on the spinner
15
+ * prototype after the class is built so they share the same private state.
16
+ */
17
+ /**
18
+ * Well-known symbol the spinner class uses to expose its `#apply` helper so the
19
+ * status methods in this module can drive a yocto-spinner method + logger
20
+ * update without reaching into a private field across the file boundary.
21
+ */
22
+ const applyStatusSymbol = Symbol.for("socket.spinner.applyStatus");
23
+ /**
24
+ * Well-known symbol the spinner class uses to expose its
25
+ * `#showStatusAndKeepSpinning` helper so the status methods here can emit a
26
+ * symbol-prefixed status line without stopping the spinner.
27
+ */
28
+ const showStatusSymbol = Symbol.for("socket.spinner.showStatus");
29
+ /**
30
+ * Install the status-presentation methods onto the spinner prototype. The
31
+ * methods close over `logger` for the stdout/stderr writes and reach the
32
+ * spinner's private helpers through the two well-known symbols.
33
+ *
34
+ * @param proto - The spinner class prototype to augment.
35
+ * @param logger - Default logger used for status output.
36
+ */
37
+ function installStatusMethods(proto, logger) {
38
+ const target = proto;
39
+ function debug(text, ...extras) {
40
+ if (require_debug_namespace.isDebug()) return this[showStatusSymbol]("info", [text, ...extras]);
41
+ return this;
42
+ }
43
+ function debugAndStop(text, ...extras) {
44
+ if (require_debug_namespace.isDebug()) return this[applyStatusSymbol]("info", [text, ...extras]);
45
+ return this;
46
+ }
47
+ function done(text, ...extras) {
48
+ return this[showStatusSymbol]("success", [text, ...extras]);
49
+ }
50
+ function doneAndStop(text, ...extras) {
51
+ return this[applyStatusSymbol]("success", [text, ...extras]);
52
+ }
53
+ function fail(text, ...extras) {
54
+ return this[showStatusSymbol]("fail", [text, ...extras]);
55
+ }
56
+ function failAndStop(text, ...extras) {
57
+ return this[applyStatusSymbol]("error", [text, ...extras]);
58
+ }
59
+ function info(text, ...extras) {
60
+ return this[showStatusSymbol]("info", [text, ...extras]);
61
+ }
62
+ function infoAndStop(text, ...extras) {
63
+ return this[applyStatusSymbol]("info", [text, ...extras]);
64
+ }
65
+ function log(...args) {
66
+ logger.log(...args);
67
+ return this;
68
+ }
69
+ function logAndStop(text, ...extras) {
70
+ return this[applyStatusSymbol]("stop", [text, ...extras]);
71
+ }
72
+ function skip(text, ...extras) {
73
+ return this[showStatusSymbol]("skip", [text, ...extras]);
74
+ }
75
+ function skipAndStop(text, ...extras) {
76
+ this[applyStatusSymbol]("stop", []);
77
+ const normalized = require_spinner_format.normalizeText(text);
78
+ /* c8 ignore start - empty-text no-op fires when text is undefined or whitespace-only */
79
+ if (normalized) logger.error(`${require_logger_symbols.LOG_SYMBOLS["skip"]} ${normalized}`, ...extras);
80
+ return this;
81
+ /* c8 ignore stop */
82
+ }
83
+ function step(text, ...extras) {
84
+ /* c8 ignore start - text-omitted no-op arm fires when caller invokes step() bare */
85
+ if (typeof text === "string") {
86
+ logger.error("");
87
+ logger.error(text, ...extras);
88
+ }
89
+ return this;
90
+ /* c8 ignore stop */
91
+ }
92
+ function substep(text, ...extras) {
93
+ /* c8 ignore start - text-omitted no-op arm fires when caller invokes substep() bare */
94
+ if (typeof text === "string") logger.error(` ${text}`, ...extras);
95
+ return this;
96
+ /* c8 ignore stop */
97
+ }
98
+ function success(text, ...extras) {
99
+ return this[showStatusSymbol]("success", [text, ...extras]);
100
+ }
101
+ function successAndStop(text, ...extras) {
102
+ return this[applyStatusSymbol]("success", [text, ...extras]);
103
+ }
104
+ function warn(text, ...extras) {
105
+ return this[showStatusSymbol]("warn", [text, ...extras]);
106
+ }
107
+ function warnAndStop(text, ...extras) {
108
+ return this[applyStatusSymbol]("warning", [text, ...extras]);
109
+ }
110
+ target["debug"] = debug;
111
+ target["debugAndStop"] = debugAndStop;
112
+ target["done"] = done;
113
+ target["doneAndStop"] = doneAndStop;
114
+ target["fail"] = fail;
115
+ target["failAndStop"] = failAndStop;
116
+ target["info"] = info;
117
+ target["infoAndStop"] = infoAndStop;
118
+ target["log"] = log;
119
+ target["logAndStop"] = logAndStop;
120
+ target["skip"] = skip;
121
+ target["skipAndStop"] = skipAndStop;
122
+ target["step"] = step;
123
+ target["substep"] = substep;
124
+ target["success"] = success;
125
+ target["successAndStop"] = successAndStop;
126
+ target["warn"] = warn;
127
+ target["warnAndStop"] = warnAndStop;
128
+ }
129
+
130
+ //#endregion
131
+ exports.applyStatusSymbol = applyStatusSymbol;
132
+ exports.installStatusMethods = installStatusMethods;
133
+ exports.showStatusSymbol = showStatusSymbol;
@@ -1,12 +1,11 @@
1
1
  /**
2
- * @file Spinner factory — builds the lazy-init `Spinner` class that wraps
2
+ * @file Spinner factory — lazily builds the Socket `Spinner` class that wraps
3
3
  * `yocto-spinner` with Socket-specific behaviors (custom RGB color pipeline,
4
4
  * shimmer, progress bar, indented step messages, status methods that don't
5
5
  * auto-stop, *AndStop variants that auto-clear). The class graph is
6
- * constructed inside the factory body so the `super()` call binds against the
7
- * live `YoctoSpinner` constructor; splitting it further would require
8
- * exposing the parent class as a module-level dependency, which breaks the
9
- * lazy-init guarantee.
6
+ * constructed by `createSpinnerClass()` so the `super()` call binds against
7
+ * the live `YoctoSpinner` constructor resolved here; building it lazily keeps
8
+ * the module free of side effects at import time.
10
9
  */
11
10
  import type { SpinnerInstance, SpinnerOptions } from './types';
12
11
  /**