@socketsecurity/lib 6.0.2 → 6.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/_virtual/_rolldown/runtime.js +45 -0
  3. package/dist/abort/signal.js +53 -59
  4. package/dist/ai/discover.js +110 -110
  5. package/dist/ai/profiles.d.mts +48 -25
  6. package/dist/ai/profiles.js +95 -59
  7. package/dist/ai/spawn.d.mts +2 -2
  8. package/dist/ai/spawn.js +172 -194
  9. package/dist/ai/types.d.mts +3 -3
  10. package/dist/ai/types.js +1 -17
  11. package/dist/ai/worktree.d.mts +2 -2
  12. package/dist/ai/worktree.js +160 -183
  13. package/dist/ansi/constants.js +16 -38
  14. package/dist/ansi/strip.js +44 -41
  15. package/dist/archives/_internal.js +64 -73
  16. package/dist/archives/detect.js +30 -43
  17. package/dist/archives/extract.js +43 -50
  18. package/dist/archives/tar.js +197 -228
  19. package/dist/archives/types.js +1 -17
  20. package/dist/archives/zip.js +85 -121
  21. package/dist/argv/flag-predicates.js +203 -101
  22. package/dist/argv/flag-types.js +96 -113
  23. package/dist/argv/parse-args-string.d.ts +16 -14
  24. package/dist/argv/parse-args-string.js +42 -39
  25. package/dist/argv/parse.js +145 -163
  26. package/dist/arrays/_internal.js +65 -48
  27. package/dist/arrays/chunk.js +51 -40
  28. package/dist/arrays/join.js +87 -35
  29. package/dist/arrays/predicates.js +46 -28
  30. package/dist/arrays/unique.js +45 -31
  31. package/dist/bin/_internal.js +34 -42
  32. package/dist/bin/check-primordials.js +175 -233
  33. package/dist/bin/check.js +51 -72
  34. package/dist/bin/exec.js +70 -74
  35. package/dist/bin/find.js +151 -134
  36. package/dist/bin/resolve.js +180 -246
  37. package/dist/bin/shadow.js +24 -33
  38. package/dist/bin/socket-lib.js +51 -73
  39. package/dist/bin/types.js +1 -17
  40. package/dist/bin/which.js +211 -146
  41. package/dist/cacache/_internal.js +25 -40
  42. package/dist/cacache/clear.js +79 -72
  43. package/dist/cacache/read.js +48 -46
  44. package/dist/cacache/tmp.js +29 -36
  45. package/dist/cacache/types.js +1 -17
  46. package/dist/cacache/write.js +43 -48
  47. package/dist/cache/ttl/store.js +232 -288
  48. package/dist/cache/ttl/types.js +1 -17
  49. package/dist/checks/primordials-defaults.js +83 -89
  50. package/dist/checks/primordials.js +225 -277
  51. package/dist/colors/convert.js +45 -37
  52. package/dist/colors/palette.js +88 -45
  53. package/dist/colors/socket-palette.js +74 -84
  54. package/dist/colors/types.js +1 -17
  55. package/dist/compression/_internal.js +57 -72
  56. package/dist/compression/brotli.js +94 -127
  57. package/dist/compression/gzip.js +95 -121
  58. package/dist/compression/types.js +1 -17
  59. package/dist/constants/agents.js +61 -113
  60. package/dist/constants/encoding.js +19 -42
  61. package/dist/constants/github.js +12 -30
  62. package/dist/constants/licenses.js +48 -63
  63. package/dist/constants/lifecycle-script-names.js +31 -45
  64. package/dist/constants/maintained-node-versions.js +22 -37
  65. package/dist/constants/node.js +226 -167
  66. package/dist/constants/package-default-node-range.js +16 -41
  67. package/dist/constants/package-default-socket-categories.js +12 -30
  68. package/dist/constants/packages.js +77 -126
  69. package/dist/constants/platform.js +27 -49
  70. package/dist/constants/sentinels.js +23 -48
  71. package/dist/constants/socket.js +42 -87
  72. package/dist/constants/testing.js +15 -34
  73. package/dist/constants/time.js +16 -36
  74. package/dist/constants/typescript.js +32 -52
  75. package/dist/cover/code.js +111 -142
  76. package/dist/cover/formatters.js +118 -101
  77. package/dist/cover/type.js +50 -76
  78. package/dist/cover/types.js +1 -17
  79. package/dist/crypto/hash.js +54 -46
  80. package/dist/debug/_internal.js +62 -71
  81. package/dist/debug/caller-info.js +53 -64
  82. package/dist/debug/namespace.js +80 -90
  83. package/dist/debug/output.js +172 -188
  84. package/dist/debug/types.js +1 -17
  85. package/dist/dlx/_internal.js +24 -43
  86. package/dist/dlx/arborist.js +162 -160
  87. package/dist/dlx/binary-cache.js +228 -200
  88. package/dist/dlx/binary-download.js +172 -211
  89. package/dist/dlx/binary-resolution.js +165 -157
  90. package/dist/dlx/binary-types.js +1 -17
  91. package/dist/dlx/binary.js +149 -189
  92. package/dist/dlx/cache.js +45 -30
  93. package/dist/dlx/detect.js +245 -167
  94. package/dist/dlx/dir.js +67 -51
  95. package/dist/dlx/firewall.js +62 -100
  96. package/dist/dlx/lockfile.js +122 -127
  97. package/dist/dlx/manifest.js +264 -274
  98. package/dist/dlx/package.js +241 -244
  99. package/dist/dlx/packages.js +99 -96
  100. package/dist/dlx/paths.js +73 -59
  101. package/dist/dlx/spec.js +52 -60
  102. package/dist/dlx/types.js +1 -17
  103. package/dist/eco/cargo/lockfile-format.js +19 -36
  104. package/dist/eco/cargo/manifest-format.js +17 -35
  105. package/dist/eco/cargo/parse-lockfile.js +210 -237
  106. package/dist/eco/manifest/analyze-lockfile.js +46 -63
  107. package/dist/eco/manifest/detect-format.js +66 -90
  108. package/dist/eco/manifest/find-packages.js +39 -64
  109. package/dist/eco/manifest/get-package-versions.js +27 -48
  110. package/dist/eco/manifest/get-package.js +21 -40
  111. package/dist/eco/manifest/manifest-error.js +14 -35
  112. package/dist/eco/manifest/parse-lockfile.js +40 -86
  113. package/dist/eco/manifest/parse-manifest.js +26 -43
  114. package/dist/eco/manifest/parse.js +26 -47
  115. package/dist/eco/manifest/types.js +1 -17
  116. package/dist/eco/npm/bun/exec.js +23 -32
  117. package/dist/eco/npm/manifest-format.js +21 -35
  118. package/dist/eco/npm/npm/exec.js +51 -61
  119. package/dist/eco/npm/npm/extract-package-name-from-path.js +28 -50
  120. package/dist/eco/npm/npm/flags.js +80 -52
  121. package/dist/eco/npm/npm/lockfile-format.js +21 -40
  122. package/dist/eco/npm/npm/parse-git-url.js +26 -40
  123. package/dist/eco/npm/npm/parse-lockfile.js +184 -210
  124. package/dist/eco/npm/parse-package-json.js +71 -102
  125. package/dist/eco/npm/pnpm/detect-pnpm-version.js +22 -43
  126. package/dist/eco/npm/pnpm/exec.js +51 -62
  127. package/dist/eco/npm/pnpm/flags.js +75 -68
  128. package/dist/eco/npm/pnpm/lockfile-format.js +19 -36
  129. package/dist/eco/npm/pnpm/parse-lockfile.js +235 -259
  130. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +37 -47
  131. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +36 -49
  132. package/dist/eco/npm/script.js +82 -90
  133. package/dist/eco/npm/vlt/exec.js +24 -32
  134. package/dist/eco/npm/yarnpkg/yarn/exec.js +60 -59
  135. package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +20 -36
  136. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +194 -242
  137. package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +37 -61
  138. package/dist/eco/purl.js +50 -60
  139. package/dist/eco/types.js +1 -17
  140. package/dist/effects/pulse-frames.js +64 -65
  141. package/dist/effects/shimmer-keyframes.js +71 -52
  142. package/dist/effects/shimmer-terminal.js +81 -50
  143. package/dist/effects/shimmer.js +290 -153
  144. package/dist/env/boolean.js +42 -43
  145. package/dist/env/case-insensitive.js +54 -39
  146. package/dist/env/ci.js +29 -31
  147. package/dist/env/debug.js +28 -31
  148. package/dist/env/github.js +144 -59
  149. package/dist/env/home.js +38 -31
  150. package/dist/env/locale.js +59 -39
  151. package/dist/env/node-auth-token.js +28 -31
  152. package/dist/env/node-env.js +28 -31
  153. package/dist/env/npm.js +94 -47
  154. package/dist/env/number.js +50 -51
  155. package/dist/env/package-manager.js +95 -83
  156. package/dist/env/path.js +28 -31
  157. package/dist/env/pre-commit.js +30 -32
  158. package/dist/env/proxy.js +121 -122
  159. package/dist/env/rewire.js +204 -96
  160. package/dist/env/shell.js +28 -31
  161. package/dist/env/socket-cli.js +233 -81
  162. package/dist/env/socket.js +521 -156
  163. package/dist/env/string.js +43 -44
  164. package/dist/env/temp-dir.js +59 -39
  165. package/dist/env/term.js +28 -31
  166. package/dist/env/test.js +65 -43
  167. package/dist/env/types.js +1 -17
  168. package/dist/env/windows.js +78 -43
  169. package/dist/env/xdg.js +62 -39
  170. package/dist/errors/message.js +40 -46
  171. package/dist/errors/predicates.js +61 -49
  172. package/dist/errors/stack.js +24 -36
  173. package/dist/events/exit/_internal.js +86 -103
  174. package/dist/events/exit/handler.js +48 -55
  175. package/dist/events/exit/intercept.js +49 -70
  176. package/dist/events/exit/lifecycle.js +92 -101
  177. package/dist/events/exit/signals.js +25 -31
  178. package/dist/events/exit/types.js +1 -17
  179. package/dist/events/warning/handler.js +43 -40
  180. package/dist/events/warning/suppress.js +111 -90
  181. package/dist/external/@npmcli/package-json/lib/read-package.js +132 -153
  182. package/dist/external/@npmcli/package-json/lib/sort.js +73 -105
  183. package/dist/external/@npmcli/package-json.js +12705 -15140
  184. package/dist/external/@npmcli/promise-spawn.js +451 -472
  185. package/dist/external/@sinclair/typebox/value.js +7443 -9002
  186. package/dist/external/@sinclair/typebox.js +7516 -7885
  187. package/dist/external/@socketregistry/is-unicode-supported.js +31 -39
  188. package/dist/external/@socketregistry/packageurl-js.js +6127 -7369
  189. package/dist/external/@socketregistry/yocto-spinner.js +394 -455
  190. package/dist/external/@yarnpkg/extensions.js +435 -1022
  191. package/dist/external/adm-zip.js +2313 -2673
  192. package/dist/external/debug.js +700 -687
  193. package/dist/external/external-pack.js +2658 -3171
  194. package/dist/external/fast-sort.js +124 -138
  195. package/dist/external/get-east-asian-width.js +70 -64
  196. package/dist/external/libnpmexec.js +28 -31
  197. package/dist/external/npm-pack.js +43617 -50137
  198. package/dist/external/p-map.js +198 -222
  199. package/dist/external/pico-pack.js +6735 -7304
  200. package/dist/external/pony-cause.js +143 -139
  201. package/dist/external/shell-quote.js +226 -0
  202. package/dist/external/spdx-pack.js +1283 -1403
  203. package/dist/external/streaming-iterables.js +835 -1052
  204. package/dist/external/tar-fs.js +2769 -3048
  205. package/dist/external/which.js +267 -251
  206. package/dist/external/yargs-parser.js +851 -1074
  207. package/dist/external-tools/bazel/asset-names.js +98 -90
  208. package/dist/external-tools/bazel/from-download.js +52 -46
  209. package/dist/external-tools/bazel/from-path.js +27 -38
  210. package/dist/external-tools/bazel/read-bazel-version-file.js +35 -57
  211. package/dist/external-tools/bazel/resolve-asset-url.js +24 -39
  212. package/dist/external-tools/bazel/resolve-bazel-version.js +34 -56
  213. package/dist/external-tools/bazel/resolve.js +44 -58
  214. package/dist/external-tools/bazel/types.js +1 -17
  215. package/dist/external-tools/cdxgen/asset-names.js +59 -66
  216. package/dist/external-tools/cdxgen/from-download.js +52 -80
  217. package/dist/external-tools/cdxgen/from-path.js +19 -37
  218. package/dist/external-tools/cdxgen/from-vfs.js +22 -43
  219. package/dist/external-tools/cdxgen/resolve.js +48 -63
  220. package/dist/external-tools/cdxgen/types.js +1 -17
  221. package/dist/external-tools/from-download.js +107 -67
  222. package/dist/external-tools/janus/asset-names.js +44 -51
  223. package/dist/external-tools/janus/from-download.js +45 -70
  224. package/dist/external-tools/janus/from-path.js +19 -37
  225. package/dist/external-tools/janus/from-vfs.js +22 -43
  226. package/dist/external-tools/janus/resolve.js +45 -63
  227. package/dist/external-tools/janus/types.js +1 -17
  228. package/dist/external-tools/jre/asset-names.js +109 -82
  229. package/dist/external-tools/jre/detect-platform-arch.js +25 -49
  230. package/dist/external-tools/jre/from-download.js +71 -67
  231. package/dist/external-tools/jre/from-java-home.js +27 -54
  232. package/dist/external-tools/jre/from-path.js +27 -49
  233. package/dist/external-tools/jre/from-vfs.js +39 -60
  234. package/dist/external-tools/jre/resolve.js +55 -68
  235. package/dist/external-tools/jre/types.js +1 -17
  236. package/dist/external-tools/manifest.js +130 -150
  237. package/dist/external-tools/opengrep/asset-names.js +60 -72
  238. package/dist/external-tools/opengrep/from-download.js +58 -80
  239. package/dist/external-tools/opengrep/from-path.js +19 -37
  240. package/dist/external-tools/opengrep/from-vfs.js +23 -43
  241. package/dist/external-tools/opengrep/resolve.js +43 -63
  242. package/dist/external-tools/opengrep/types.js +1 -17
  243. package/dist/external-tools/sbt/asset-names.js +21 -30
  244. package/dist/external-tools/sbt/from-download.js +50 -61
  245. package/dist/external-tools/sbt/from-path.js +23 -38
  246. package/dist/external-tools/sbt/from-vfs.js +30 -44
  247. package/dist/external-tools/sbt/resolve.js +45 -63
  248. package/dist/external-tools/sbt/types.js +1 -17
  249. package/dist/external-tools/synp/asset-names.js +11 -29
  250. package/dist/external-tools/synp/from-download.js +24 -41
  251. package/dist/external-tools/synp/from-path.js +19 -37
  252. package/dist/external-tools/synp/from-vfs.js +22 -43
  253. package/dist/external-tools/synp/resolve.js +43 -62
  254. package/dist/external-tools/synp/types.js +1 -17
  255. package/dist/external-tools/trivy/asset-names.js +51 -62
  256. package/dist/external-tools/trivy/from-download.js +42 -64
  257. package/dist/external-tools/trivy/from-path.js +19 -37
  258. package/dist/external-tools/trivy/from-vfs.js +22 -43
  259. package/dist/external-tools/trivy/resolve.js +43 -63
  260. package/dist/external-tools/trivy/types.js +1 -17
  261. package/dist/external-tools/trufflehog/asset-names.js +54 -66
  262. package/dist/external-tools/trufflehog/from-download.js +44 -62
  263. package/dist/external-tools/trufflehog/from-path.js +21 -37
  264. package/dist/external-tools/trufflehog/from-vfs.js +26 -43
  265. package/dist/external-tools/trufflehog/resolve.js +43 -63
  266. package/dist/external-tools/trufflehog/types.js +1 -17
  267. package/dist/external-tools/uv/asset-names.js +64 -74
  268. package/dist/external-tools/uv/from-download.js +44 -65
  269. package/dist/external-tools/uv/from-path.js +19 -37
  270. package/dist/external-tools/uv/from-vfs.js +22 -43
  271. package/dist/external-tools/uv/resolve.js +42 -63
  272. package/dist/external-tools/uv/types.js +1 -17
  273. package/dist/fs/_internal.js +40 -42
  274. package/dist/fs/access.d.ts +32 -0
  275. package/dist/fs/access.js +66 -0
  276. package/dist/fs/encoding.js +80 -97
  277. package/dist/fs/find-up.js +126 -147
  278. package/dist/fs/inspect.js +168 -99
  279. package/dist/fs/path-cache.js +31 -32
  280. package/dist/fs/read-dir.js +102 -79
  281. package/dist/fs/read-file.js +177 -118
  282. package/dist/fs/read-json-cache.js +150 -134
  283. package/dist/fs/read-json.js +172 -187
  284. package/dist/fs/resolve-module.d.ts +57 -0
  285. package/dist/fs/resolve-module.js +40 -0
  286. package/dist/fs/safe.js +278 -169
  287. package/dist/fs/types.js +1 -17
  288. package/dist/fs/unique.js +52 -48
  289. package/dist/fs/validate.js +56 -43
  290. package/dist/fs/write-json.js +109 -75
  291. package/dist/git/_internal.js +251 -216
  292. package/dist/git/changed.js +191 -74
  293. package/dist/git/repo.js +118 -104
  294. package/dist/git/staged.js +172 -62
  295. package/dist/git/types.js +1 -17
  296. package/dist/git/unstaged.js +175 -62
  297. package/dist/github/constants.js +25 -33
  298. package/dist/github/errors.js +46 -38
  299. package/dist/github/fetch.js +137 -82
  300. package/dist/github/ghsa.js +217 -151
  301. package/dist/github/refs-cache.js +54 -43
  302. package/dist/github/refs-graphql.js +97 -89
  303. package/dist/github/refs-rest.js +70 -101
  304. package/dist/github/refs.js +105 -64
  305. package/dist/github/token.js +96 -48
  306. package/dist/github/types.js +1 -17
  307. package/dist/globs/_internal.js +73 -82
  308. package/dist/globs/defaults.js +40 -59
  309. package/dist/globs/match.js +93 -77
  310. package/dist/globs/matcher.js +104 -92
  311. package/dist/globs/stream.js +43 -55
  312. package/dist/globs/types.js +1 -17
  313. package/dist/http-request/_internal.js +11 -38
  314. package/dist/http-request/browser-fetch.js +19 -29
  315. package/dist/http-request/browser.js +188 -206
  316. package/dist/http-request/checksums.js +101 -65
  317. package/dist/http-request/download-types.js +1 -17
  318. package/dist/http-request/download.js +195 -196
  319. package/dist/http-request/errors.js +39 -47
  320. package/dist/http-request/headers.js +95 -80
  321. package/dist/http-request/http-request.js +10 -35
  322. package/dist/http-request/node.js +71 -97
  323. package/dist/http-request/request-attempt.js +232 -285
  324. package/dist/http-request/request-types.js +1 -17
  325. package/dist/http-request/request.js +106 -108
  326. package/dist/http-request/response-reader.js +47 -51
  327. package/dist/http-request/response-types.js +22 -38
  328. package/dist/http-request/user-agent.js +73 -55
  329. package/dist/integrity.js +105 -106
  330. package/dist/ipc/_internal.js +34 -48
  331. package/dist/ipc/directory.js +55 -63
  332. package/dist/ipc/paths.js +52 -45
  333. package/dist/ipc/types.js +1 -17
  334. package/dist/ipc/write.js +81 -74
  335. package/dist/ipc-cli/get.js +29 -56
  336. package/dist/ipc-cli/types.js +1 -17
  337. package/dist/json/edit.js +182 -242
  338. package/dist/json/format.js +202 -103
  339. package/dist/json/parse.js +206 -109
  340. package/dist/json/types.js +1 -17
  341. package/dist/links/create.js +93 -60
  342. package/dist/links/types.js +1 -17
  343. package/dist/logger/_internal.js +109 -73
  344. package/dist/logger/browser.js +45 -56
  345. package/dist/logger/colors.js +31 -49
  346. package/dist/logger/console.js +89 -112
  347. package/dist/logger/default.js +19 -33
  348. package/dist/logger/logger.js +5 -29
  349. package/dist/logger/node.js +794 -854
  350. package/dist/logger/symbols-builder.js +54 -56
  351. package/dist/logger/symbols.js +135 -118
  352. package/dist/logger/types.js +1 -17
  353. package/dist/memo/_internal.js +39 -49
  354. package/dist/memo/async.js +133 -117
  355. package/dist/memo/clear.js +25 -34
  356. package/dist/memo/decorator.js +43 -37
  357. package/dist/memo/memoize.js +97 -88
  358. package/dist/memo/once.js +42 -41
  359. package/dist/memo/types.js +1 -17
  360. package/dist/memo/weak.js +45 -41
  361. package/dist/node/async-hooks.js +9 -30
  362. package/dist/node/child-process.js +9 -30
  363. package/dist/node/crypto.js +9 -30
  364. package/dist/node/events.js +9 -30
  365. package/dist/node/fs-promises.js +9 -30
  366. package/dist/node/fs.js +9 -30
  367. package/dist/node/http.js +9 -30
  368. package/dist/node/https.js +9 -30
  369. package/dist/node/module.js +20 -34
  370. package/dist/node/os.js +9 -30
  371. package/dist/node/path.js +9 -30
  372. package/dist/node/timers-promises.js +9 -30
  373. package/dist/node/url.js +9 -30
  374. package/dist/node/util.js +9 -30
  375. package/dist/objects/getters.js +185 -126
  376. package/dist/objects/inspect.js +85 -52
  377. package/dist/objects/mutate.js +96 -76
  378. package/dist/objects/predicates.js +112 -59
  379. package/dist/objects/sort.js +120 -76
  380. package/dist/objects/types.js +1 -17
  381. package/dist/packages/edit-class.js +198 -265
  382. package/dist/packages/edit.js +79 -86
  383. package/dist/packages/exports.js +146 -157
  384. package/dist/packages/isolation.js +159 -209
  385. package/dist/packages/licenses.js +207 -189
  386. package/dist/packages/manifest.js +134 -172
  387. package/dist/packages/normalize.js +91 -102
  388. package/dist/packages/operations.d.ts +2 -0
  389. package/dist/packages/operations.js +283 -254
  390. package/dist/packages/provenance.js +195 -245
  391. package/dist/packages/specs.js +94 -84
  392. package/dist/packages/types.js +1 -17
  393. package/dist/packages/validation.js +49 -50
  394. package/dist/paths/_internal.js +82 -86
  395. package/dist/paths/conversion.js +112 -65
  396. package/dist/paths/dirnames.js +17 -42
  397. package/dist/paths/exts.js +23 -54
  398. package/dist/paths/filenames.js +21 -50
  399. package/dist/paths/globs.js +15 -38
  400. package/dist/paths/normalize.js +215 -236
  401. package/dist/paths/packages.js +34 -49
  402. package/dist/paths/predicates.js +184 -106
  403. package/dist/paths/resolve.js +146 -128
  404. package/dist/paths/rewire.js +108 -72
  405. package/dist/paths/socket.js +252 -132
  406. package/dist/paths/walk.d.ts +40 -0
  407. package/dist/paths/walk.js +58 -0
  408. package/dist/perf/_internal.js +10 -28
  409. package/dist/perf/enabled.js +21 -30
  410. package/dist/perf/metrics.js +81 -67
  411. package/dist/perf/report.js +79 -80
  412. package/dist/perf/timer.js +180 -126
  413. package/dist/perf/types.js +1 -17
  414. package/dist/pkg-ext/data.js +29 -82
  415. package/dist/pkg-ext/types.js +1 -17
  416. package/dist/primordials/array.js +120 -198
  417. package/dist/primordials/buffer.js +28 -51
  418. package/dist/primordials/date.js +26 -51
  419. package/dist/primordials/error.js +33 -59
  420. package/dist/primordials/function.js +21 -41
  421. package/dist/primordials/globals.js +25 -48
  422. package/dist/primordials/json.js +14 -30
  423. package/dist/primordials/map-set.js +88 -152
  424. package/dist/primordials/math.js +59 -116
  425. package/dist/primordials/number.js +41 -76
  426. package/dist/primordials/object.js +56 -116
  427. package/dist/primordials/promise.js +28 -52
  428. package/dist/primordials/reflect.js +24 -52
  429. package/dist/primordials/regexp.js +25 -47
  430. package/dist/primordials/string.js +114 -167
  431. package/dist/primordials/symbol.js +40 -72
  432. package/dist/primordials/uncurry.js +38 -55
  433. package/dist/primordials/url.js +27 -66
  434. package/dist/process/_internal.js +7 -32
  435. package/dist/process/abort.js +29 -35
  436. package/dist/process/lock-instance.js +26 -30
  437. package/dist/process/lock-manager.js +279 -307
  438. package/dist/process/lock-types.js +1 -17
  439. package/dist/process/spawn/_internal.js +43 -55
  440. package/dist/process/spawn/child.js +172 -211
  441. package/dist/process/spawn/errors.js +116 -113
  442. package/dist/process/spawn/stdio.js +51 -35
  443. package/dist/process/spawn/types.js +1 -17
  444. package/dist/process/transient.js +49 -66
  445. package/dist/promises/_internal.d.ts +8 -2
  446. package/dist/promises/_internal.js +31 -38
  447. package/dist/promises/iterate.js +238 -102
  448. package/dist/promises/options.js +123 -101
  449. package/dist/promises/queue.js +115 -136
  450. package/dist/promises/resolvers.js +77 -46
  451. package/dist/promises/retry.js +156 -101
  452. package/dist/promises/types.js +1 -17
  453. package/dist/regexps/escape.js +32 -30
  454. package/dist/regexps/hex.js +16 -33
  455. package/dist/regexps/spec.js +53 -81
  456. package/dist/releases/github-archives.js +127 -118
  457. package/dist/releases/github-asset-url.js +162 -155
  458. package/dist/releases/github-assets.js +37 -49
  459. package/dist/releases/github-auth.js +32 -48
  460. package/dist/releases/github-downloads.js +118 -138
  461. package/dist/releases/github-listing.js +175 -154
  462. package/dist/releases/github-retry-config.d.ts +31 -0
  463. package/dist/releases/github-retry-config.js +46 -0
  464. package/dist/releases/github-types.js +1 -17
  465. package/dist/releases/socket-btm.js +273 -192
  466. package/dist/schema/parse.js +35 -36
  467. package/dist/schema/types.js +1 -17
  468. package/dist/schema/validate.js +118 -99
  469. package/dist/sea/detect.js +57 -52
  470. package/dist/secrets/_internal.js +86 -67
  471. package/dist/secrets/find.js +96 -77
  472. package/dist/secrets/keychain.js +315 -309
  473. package/dist/secrets/linux.js +133 -135
  474. package/dist/secrets/macos.js +151 -147
  475. package/dist/secrets/rc.js +182 -181
  476. package/dist/secrets/socket-api-token.js +28 -43
  477. package/dist/secrets/types.js +1 -17
  478. package/dist/secrets/windows.js +184 -242
  479. package/dist/shadow/skip.js +51 -70
  480. package/dist/shadow/types.js +1 -17
  481. package/dist/shell/parse.d.ts +26 -0
  482. package/dist/shell/parse.js +35 -0
  483. package/dist/shell/quote.d.ts +19 -0
  484. package/dist/shell/quote.js +30 -0
  485. package/dist/smol/detect.js +67 -43
  486. package/dist/smol/http.js +33 -37
  487. package/dist/smol/https.js +31 -37
  488. package/dist/smol/manifest.js +33 -37
  489. package/dist/smol/path.d.ts +51 -0
  490. package/dist/smol/path.js +38 -0
  491. package/dist/smol/primordial.js +35 -37
  492. package/dist/smol/purl.js +34 -37
  493. package/dist/smol/versions.js +31 -37
  494. package/dist/smol/vfs.js +46 -38
  495. package/dist/sorts/_internal.js +14 -40
  496. package/dist/sorts/natural.js +57 -64
  497. package/dist/sorts/semver.js +33 -43
  498. package/dist/sorts/strings.js +24 -30
  499. package/dist/sorts/types.js +1 -17
  500. package/dist/spinner/default.js +72 -63
  501. package/dist/spinner/format.js +86 -71
  502. package/dist/spinner/spinner.js +749 -797
  503. package/dist/spinner/types.js +1 -17
  504. package/dist/spinner/with.js +193 -137
  505. package/dist/ssri/convert.js +64 -47
  506. package/dist/ssri/parse.js +38 -37
  507. package/dist/ssri/validate.js +51 -34
  508. package/dist/stdio/_internal.js +50 -46
  509. package/dist/stdio/clear.js +208 -86
  510. package/dist/stdio/divider.js +170 -97
  511. package/dist/stdio/footer.js +116 -110
  512. package/dist/stdio/header.js +117 -90
  513. package/dist/stdio/progress.js +189 -218
  514. package/dist/stdio/prompts.js +244 -168
  515. package/dist/stdio/stderr.js +173 -78
  516. package/dist/stdio/stdout.js +177 -94
  517. package/dist/streams/parallel.js +58 -50
  518. package/dist/streams/transform.js +36 -45
  519. package/dist/strings/format.js +145 -63
  520. package/dist/strings/predicates.js +56 -34
  521. package/dist/strings/search.js +52 -42
  522. package/dist/strings/transform.js +113 -72
  523. package/dist/strings/types.js +1 -17
  524. package/dist/strings/width.js +89 -82
  525. package/dist/tables/bordered.js +81 -81
  526. package/dist/tables/padding.js +36 -46
  527. package/dist/tables/simple.js +62 -70
  528. package/dist/tables/types.js +1 -17
  529. package/dist/temporal/instant.js +72 -81
  530. package/dist/temporal/now.js +40 -31
  531. package/dist/temporal/slots.js +42 -36
  532. package/dist/temporal/system.js +36 -36
  533. package/dist/temporal/temporal.js +11 -41
  534. package/dist/themes/context.js +131 -69
  535. package/dist/themes/resolve.js +207 -132
  536. package/dist/themes/themes.js +225 -194
  537. package/dist/themes/types.js +1 -17
  538. package/dist/url/parse.js +48 -51
  539. package/dist/url/predicates.js +24 -31
  540. package/dist/url/search-params.js +133 -101
  541. package/dist/url/types.js +1 -17
  542. package/dist/versions/_internal.js +31 -33
  543. package/dist/versions/compare.js +80 -58
  544. package/dist/versions/modify.js +41 -39
  545. package/dist/versions/parse.js +88 -64
  546. package/dist/versions/range.js +58 -41
  547. package/dist/versions/types.js +1 -17
  548. package/dist/words/article.js +22 -30
  549. package/dist/words/capitalize.js +25 -34
  550. package/dist/words/pluralize.js +23 -31
  551. package/dist/words/types.js +1 -17
  552. package/package.json +42 -5
package/dist/eco/purl.js CHANGED
@@ -1,63 +1,53 @@
1
1
  "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
- var purl_exports = {};
22
- __export(purl_exports, {
23
- PURL_Type: () => PURL_Type
24
- });
25
- module.exports = __toCommonJS(purl_exports);
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ //#region src/eco/purl.ts
6
+ /**
7
+ * @file PURL (Package URL) ecosystem identifiers shared across every package
8
+ * manager Socket understands.
9
+ *
10
+ * - `PURL_Type` runtime const mapping uppercase keys to lowercase ecosystem
11
+ * slugs (e.g. `PURL_Type.NPM === 'npm'`)
12
+ * - `PURLString` string-union of every PURL ecosystem slug
13
+ * - `EcosystemString` semantic alias of `PURLString` for places where
14
+ * "ecosystem" reads more naturally than "PURL string" Based on
15
+ * SocketPURL_Type from socket-sdk-js.
16
+ */
26
17
  const PURL_Type = {
27
- ALPM: "alpm",
28
- APK: "apk",
29
- BITBUCKET: "bitbucket",
30
- COCOAPODS: "cocoapods",
31
- CARGO: "cargo",
32
- CHROME: "chrome",
33
- COMPOSER: "composer",
34
- CONAN: "conan",
35
- CONDA: "conda",
36
- CRAN: "cran",
37
- DEB: "deb",
38
- DOCKER: "docker",
39
- GEM: "gem",
40
- GENERIC: "generic",
41
- GITHUB: "github",
42
- GOLANG: "golang",
43
- HACKAGE: "hackage",
44
- HEX: "hex",
45
- HUGGINGFACE: "huggingface",
46
- MAVEN: "maven",
47
- MLFLOW: "mlflow",
48
- NPM: "npm",
49
- NUGET: "nuget",
50
- OCI: "oci",
51
- PUB: "pub",
52
- PYPI: "pypi",
53
- QPKG: "qpkg",
54
- RPM: "rpm",
55
- SWID: "swid",
56
- SWIFT: "swift",
57
- VCS: "vcs",
58
- VSCODE: "vscode"
18
+ ALPM: "alpm",
19
+ APK: "apk",
20
+ BITBUCKET: "bitbucket",
21
+ COCOAPODS: "cocoapods",
22
+ CARGO: "cargo",
23
+ CHROME: "chrome",
24
+ COMPOSER: "composer",
25
+ CONAN: "conan",
26
+ CONDA: "conda",
27
+ CRAN: "cran",
28
+ DEB: "deb",
29
+ DOCKER: "docker",
30
+ GEM: "gem",
31
+ GENERIC: "generic",
32
+ GITHUB: "github",
33
+ GOLANG: "golang",
34
+ HACKAGE: "hackage",
35
+ HEX: "hex",
36
+ HUGGINGFACE: "huggingface",
37
+ MAVEN: "maven",
38
+ MLFLOW: "mlflow",
39
+ NPM: "npm",
40
+ NUGET: "nuget",
41
+ OCI: "oci",
42
+ PUB: "pub",
43
+ PYPI: "pypi",
44
+ QPKG: "qpkg",
45
+ RPM: "rpm",
46
+ SWID: "swid",
47
+ SWIFT: "swift",
48
+ VCS: "vcs",
49
+ VSCODE: "vscode"
59
50
  };
60
- // Annotate the CommonJS export names for ESM import in node:
61
- 0 && (module.exports = {
62
- PURL_Type
63
- });
51
+
52
+ //#endregion
53
+ exports.PURL_Type = PURL_Type;
package/dist/eco/types.js CHANGED
@@ -1,18 +1,2 @@
1
1
  "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (let key of __getOwnPropNames(from))
11
- if (!__hasOwnProp.call(to, key) && key !== except)
12
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- }
14
- return to;
15
- };
16
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
17
- var types_exports = {};
18
- module.exports = __toCommonJS(types_exports);
2
+ /* Socket Lib - Built with rolldown */
@@ -1,68 +1,67 @@
1
1
  "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
- var pulse_frames_exports = {};
22
- __export(pulse_frames_exports, {
23
- generateSocketSpinnerFrames: () => generateSocketSpinnerFrames
24
- });
25
- module.exports = __toCommonJS(pulse_frames_exports);
26
- var import_constants = require("../ansi/constants");
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_ansi_constants = require('../ansi/constants.js');
5
+
6
+ //#region src/effects/pulse-frames.ts
7
+ /**
8
+ * @file Socket pulse animation frames generator. Generates themeable pulsing
9
+ * animation frames using sparkles ( ✦) and lightning (⚡). Follows the
10
+ * cli-spinners format: https://github.com/sindresorhus/cli-spinners.
11
+ */
12
+ /**
13
+ * Generate Socket pulse animation frames. Creates a pulsing throbber using
14
+ * Unicode sparkles and lightning symbols. Frames use brightness modifiers
15
+ * (bold/dim) but no embedded colors. Yocto-spinner applies the current spinner
16
+ * color to each frame.
17
+ *
18
+ * Returns a spinner definition compatible with cli-spinners format.
19
+ *
20
+ * @example
21
+ * ;```typescript
22
+ * const { frames, interval } = generateSocketSpinnerFrames()
23
+ * console.log(frames.length, interval) // 18 50
24
+ * ```
25
+ *
26
+ * @see https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json
27
+ */
27
28
  function generateSocketSpinnerFrames(options) {
28
- const opts = { __proto__: null, ...options };
29
- const interval = opts.interval ?? 50;
30
- const bold = import_constants.ANSI_BOLD;
31
- const dim = import_constants.ANSI_DIM;
32
- const reset = import_constants.ANSI_RESET;
33
- const lightning = "\u26A1\uFE0E";
34
- const starFilled = "\u2726\uFE0E ";
35
- const starOutline = "\u2727\uFE0E ";
36
- const starTiny = "\u22C6\uFE0E ";
37
- const frames = [
38
- // Build up from dim to bright
39
- `${dim}${starOutline}${reset}`,
40
- `${dim}${starOutline}${reset}`,
41
- `${dim}${starTiny}${reset}`,
42
- `${starFilled}${reset}`,
43
- `${starFilled}${reset}`,
44
- `${bold}${starFilled}${reset}`,
45
- `${bold}${starFilled}${reset}`,
46
- `${bold}${lightning}${reset}`,
47
- `${bold}${lightning}${reset}`,
48
- `${bold}${lightning}${reset}`,
49
- // Fade down
50
- `${bold}${lightning}${reset}`,
51
- `${bold}${lightning}${reset}`,
52
- `${bold}${starFilled}${reset}`,
53
- `${bold}${starFilled}${reset}`,
54
- `${starFilled}${reset}`,
55
- `${starFilled}${reset}`,
56
- `${dim}${starTiny}${reset}`,
57
- `${dim}${starOutline}${reset}`
58
- ];
59
- return {
60
- __proto__: null,
61
- frames,
62
- interval
63
- };
29
+ const interval = {
30
+ __proto__: null,
31
+ ...options
32
+ }.interval ?? 50;
33
+ const bold = require_ansi_constants.ANSI_BOLD;
34
+ const dim = require_ansi_constants.ANSI_DIM;
35
+ const reset = require_ansi_constants.ANSI_RESET;
36
+ const lightning = "⚡︎";
37
+ const starFilled = "✦︎ ";
38
+ const starOutline = "✧︎ ";
39
+ const starTiny = "⋆︎ ";
40
+ return {
41
+ __proto__: null,
42
+ frames: [
43
+ `${dim}${starOutline}${reset}`,
44
+ `${dim}${starOutline}${reset}`,
45
+ `${dim}${starTiny}${reset}`,
46
+ `${starFilled}${reset}`,
47
+ `${starFilled}${reset}`,
48
+ `${bold}${starFilled}${reset}`,
49
+ `${bold}${starFilled}${reset}`,
50
+ `${bold}${lightning}${reset}`,
51
+ `${bold}${lightning}${reset}`,
52
+ `${bold}${lightning}${reset}`,
53
+ `${bold}${lightning}${reset}`,
54
+ `${bold}${lightning}${reset}`,
55
+ `${bold}${starFilled}${reset}`,
56
+ `${bold}${starFilled}${reset}`,
57
+ `${starFilled}${reset}`,
58
+ `${starFilled}${reset}`,
59
+ `${dim}${starTiny}${reset}`,
60
+ `${dim}${starOutline}${reset}`
61
+ ],
62
+ interval
63
+ };
64
64
  }
65
- // Annotate the CommonJS export names for ESM import in node:
66
- 0 && (module.exports = {
67
- generateSocketSpinnerFrames
68
- });
65
+
66
+ //#endregion
67
+ exports.generateSocketSpinnerFrames = generateSocketSpinnerFrames;
@@ -1,55 +1,74 @@
1
1
  "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
- var shimmer_keyframes_exports = {};
22
- __export(shimmer_keyframes_exports, {
23
- toShimmerKeyframes: () => toShimmerKeyframes
24
- });
25
- module.exports = __toCommonJS(shimmer_keyframes_exports);
26
- var import_shimmer = require("./shimmer");
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_effects_shimmer = require('./shimmer.js');
5
+
6
+ //#region src/effects/shimmer-keyframes.ts
7
+ /**
8
+ * @file SVG keyframe batcher for the shimmer engine. Pre-renders N frames of
9
+ * the engine and emits per-character keyTimes / values arrays suitable for
10
+ * SVG SMIL `<animate>` elements. The output is deduplicated (consecutive
11
+ * identical colors collapse to a single keyframe) and closed with a `t=1`
12
+ * anchor so the animation loops cleanly. Use with `calcMode="discrete"` to
13
+ * reproduce the engine's output exactly no SMIL interpolation between
14
+ * frames, each frame holds until the next changes.
15
+ *
16
+ * @example
17
+ * ;```ts
18
+ * import { configToSpec } from '@socketsecurity/lib/effects/shimmer'
19
+ * import { toShimmerKeyframes } from '@socketsecurity/lib/effects/shimmer-keyframes'
20
+ * const spec = configToSpec({ color: RAINBOW_GRADIENT, dir: 'ltr' }, 10)
21
+ * const tracks = toShimmerKeyframes(spec, 10, 60)
22
+ * // Emit one <animate> per char in your SVG:
23
+ * // <animate attributeName="fill" calcMode="discrete"
24
+ * // keyTimes={tracks[i].times.join(';')}
25
+ * // values={tracks[i].values.join(';')}
26
+ * // dur="3s" repeatCount="indefinite" />
27
+ * ```
28
+ */
29
+ /**
30
+ * Render N frames of a shimmer spec into per-character keyframe tracks.
31
+ *
32
+ * Output is one {@link Keyframes} object per char. Consecutive identical colors
33
+ * collapse — only the first occurrence emits a keyframe, the rest are implicit
34
+ * (SMIL holds the previous value). A final keyframe at `t=1` closes the loop
35
+ * with the same value as `t=0` so playback wraps cleanly.
36
+ *
37
+ * Use with `calcMode="discrete"` to reproduce the engine's per-frame output
38
+ * exactly (no SMIL interpolation between frames).
39
+ *
40
+ * @param spec Functional shimmer specification.
41
+ * @param textLength Number of chars to colorize.
42
+ * @param frames Total frame count to bake into the loop.
43
+ *
44
+ * @returns One Keyframes track per char index, in order
45
+ */
27
46
  function toShimmerKeyframes(spec, textLength, frames) {
28
- const tracks = [];
29
- for (let i = 0; i < textLength; i++) {
30
- tracks.push({ times: [], values: [] });
31
- }
32
- for (let f = 0; f < frames; f++) {
33
- const t = f / frames;
34
- const colors = (0, import_shimmer.frameColors)(spec, textLength, f);
35
- for (let i = 0; i < textLength; i++) {
36
- const c = colors[i];
37
- const v = `rgb(${c[0]},${c[1]},${c[2]})`;
38
- const track = tracks[i];
39
- if (track.values[track.values.length - 1] !== v) {
40
- track.times.push(t);
41
- track.values.push(v);
42
- }
43
- }
44
- }
45
- for (let i = 0; i < textLength; i++) {
46
- const track = tracks[i];
47
- track.times.push(1);
48
- track.values.push(track.values[0] ?? "rgb(0,0,0)");
49
- }
50
- return tracks;
47
+ const tracks = [];
48
+ for (let i = 0; i < textLength; i++) tracks.push({
49
+ times: [],
50
+ values: []
51
+ });
52
+ for (let f = 0; f < frames; f++) {
53
+ const t = f / frames;
54
+ const colors = require_effects_shimmer.frameColors(spec, textLength, f);
55
+ for (let i = 0; i < textLength; i++) {
56
+ const c = colors[i];
57
+ const v = `rgb(${c[0]},${c[1]},${c[2]})`;
58
+ const track = tracks[i];
59
+ if (track.values[track.values.length - 1] !== v) {
60
+ track.times.push(t);
61
+ track.values.push(v);
62
+ }
63
+ }
64
+ }
65
+ for (let i = 0; i < textLength; i++) {
66
+ const track = tracks[i];
67
+ track.times.push(1);
68
+ track.values.push(track.values[0] ?? "rgb(0,0,0)");
69
+ }
70
+ return tracks;
51
71
  }
52
- // Annotate the CommonJS export names for ESM import in node:
53
- 0 && (module.exports = {
54
- toShimmerKeyframes
55
- });
72
+
73
+ //#endregion
74
+ exports.toShimmerKeyframes = toShimmerKeyframes;
@@ -1,57 +1,88 @@
1
1
  "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
- var shimmer_terminal_exports = {};
22
- __export(shimmer_terminal_exports, {
23
- ANSI_RESET: () => import_constants.ANSI_RESET,
24
- ansiTruecolor: () => ansiTruecolor,
25
- colorsToAnsi: () => colorsToAnsi,
26
- renderFrame: () => renderFrame
27
- });
28
- module.exports = __toCommonJS(shimmer_terminal_exports);
29
- var import_constants = require("../ansi/constants");
30
- var import_shimmer = require("./shimmer");
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_ansi_constants = require('../ansi/constants.js');
5
+ const require_effects_shimmer = require('./shimmer.js');
6
+
7
+ //#region src/effects/shimmer-terminal.ts
8
+ /**
9
+ * @file Terminal renderer for the shimmer engine. Turns the engine's `RGB[]`
10
+ * output into a single ANSI-escaped string ready to write to stdout/stderr.
11
+ * Uses 24-bit truecolor escape sequences (`\x1b[38;2;R;G;Bm`) which most
12
+ * modern terminals (iTerm2, Terminal.app, Windows Terminal, Alacritty,
13
+ * Ghostty, kitty, gnome-terminal) support natively. Terminals that lack
14
+ * truecolor (basic `xterm`, some serial consoles) will display the raw escape
15
+ * codes call sites that need to support those terminals should fall back to
16
+ * {@link colorsToAnsi}'s "no colors" path or skip rendering entirely. The
17
+ * high-level {@link renderFrame} convenience runs the full pipeline (engine →
18
+ * ANSI) in one call. {@link colorsToAnsi} is the lower-level helper for when
19
+ * you already have an `RGB[]` from {@link frameColors}.
20
+ *
21
+ * @example
22
+ * ;```ts
23
+ * import { configToSpec } from '@socketsecurity/lib/effects/shimmer'
24
+ * import { renderFrame } from '@socketsecurity/lib/effects/shimmer-terminal'
25
+ * const spec = configToSpec(
26
+ * { color: [140, 82, 255], dir: 'ltr' },
27
+ * 'Loading'.length,
28
+ * )
29
+ * process.stdout.write(renderFrame(spec, 'Loading', frame))
30
+ * ```
31
+ */
32
+ /**
33
+ * Build the 24-bit truecolor foreground escape for an RGB tuple. Returns
34
+ * `\x1b[38;2;R;G;Bm`. Exported so callers building ANSI by hand can use the
35
+ * same helper.
36
+ */
31
37
  function ansiTruecolor([r, g, b]) {
32
- return `\x1B[38;2;${r};${g};${b}m`;
38
+ return `\x1b[38;2;${r};${g};${b}m`;
33
39
  }
40
+ /**
41
+ * Wrap each char of `text` in a 24-bit truecolor ANSI escape using the matching
42
+ * color from `colors`. Each char is followed by an ANSI reset so adjacent
43
+ * uncolored output isn't tinted.
44
+ *
45
+ * Caller is responsible for grapheme segmentation if the text contains complex
46
+ * graphemes (combining marks, ZWJ sequences). This function uses spread
47
+ * iteration which handles BMP code points and surrogate pairs but treats each
48
+ * grapheme cluster as multiple "chars."
49
+ *
50
+ * If `colors.length` is shorter than the text's char count, surplus chars are
51
+ * emitted without color (uncolored tail).
52
+ *
53
+ * @param text Input string to color.
54
+ * @param colors Per-char colors; index `i` colors char `i`
55
+ *
56
+ * @returns ANSI-escaped string
57
+ */
34
58
  function colorsToAnsi(text, colors) {
35
- const chars = [...text];
36
- let out = "";
37
- for (let i = 0; i < chars.length; i++) {
38
- const c = colors[i];
39
- if (c === void 0) {
40
- out += chars[i];
41
- continue;
42
- }
43
- out += `${ansiTruecolor(c)}${chars[i]}${import_constants.ANSI_RESET}`;
44
- }
45
- return out;
59
+ const chars = [...text];
60
+ let out = "";
61
+ for (let i = 0; i < chars.length; i++) {
62
+ const c = colors[i];
63
+ if (c === void 0) {
64
+ out += chars[i];
65
+ continue;
66
+ }
67
+ out += `${ansiTruecolor(c)}${chars[i]}${require_ansi_constants.ANSI_RESET}`;
68
+ }
69
+ return out;
46
70
  }
71
+ /**
72
+ * Render a single shimmer frame as ANSI-escaped text. Convenience wrapper over
73
+ * {@link frameColors} + {@link colorsToAnsi} for callers that don't need the
74
+ * intermediate `RGB[]`.
75
+ *
76
+ * @param spec Functional shimmer specification (see {@link ShimmerSpec})
77
+ * @param text The string to colorize.
78
+ * @param frame Caller-controlled frame counter.
79
+ */
47
80
  function renderFrame(spec, text, frame) {
48
- const chars = [...text];
49
- return colorsToAnsi(text, (0, import_shimmer.frameColors)(spec, chars.length, frame));
81
+ return colorsToAnsi(text, require_effects_shimmer.frameColors(spec, [...text].length, frame));
50
82
  }
51
- // Annotate the CommonJS export names for ESM import in node:
52
- 0 && (module.exports = {
53
- ANSI_RESET,
54
- ansiTruecolor,
55
- colorsToAnsi,
56
- renderFrame
57
- });
83
+
84
+ //#endregion
85
+ exports.ANSI_RESET = require_ansi_constants.ANSI_RESET;
86
+ exports.ansiTruecolor = ansiTruecolor;
87
+ exports.colorsToAnsi = colorsToAnsi;
88
+ exports.renderFrame = renderFrame;