@socketsecurity/lib 6.0.6 → 6.0.8

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 (619) hide show
  1. package/CHANGELOG.md +46 -1
  2. package/README.md +1 -1
  3. package/dist/ai/agent-context.d.mts +103 -0
  4. package/dist/ai/agent-context.js +157 -0
  5. package/dist/ai/backends.d.mts +83 -0
  6. package/dist/ai/backends.js +173 -0
  7. package/dist/ai/credentials.d.mts +49 -0
  8. package/dist/ai/credentials.js +82 -0
  9. package/dist/ai/discover.d.mts +6 -2
  10. package/dist/ai/discover.js +4 -3
  11. package/dist/ai/exec.d.mts +52 -0
  12. package/dist/ai/exec.js +92 -0
  13. package/dist/ai/http.d.mts +132 -0
  14. package/dist/ai/http.js +130 -0
  15. package/dist/ai/profiles.d.mts +41 -6
  16. package/dist/ai/profiles.js +52 -10
  17. package/dist/ai/route.d.mts +69 -0
  18. package/dist/ai/route.js +156 -0
  19. package/dist/ai/spawn.d.mts +10 -2
  20. package/dist/ai/spawn.js +56 -31
  21. package/dist/ai/subagent-status.d.mts +48 -0
  22. package/dist/ai/subagent-status.js +57 -0
  23. package/dist/ai/tier.d.mts +60 -0
  24. package/dist/ai/tier.js +53 -0
  25. package/dist/ai/types.d.mts +31 -6
  26. package/dist/ai/worktree.d.mts +6 -6
  27. package/dist/ai/worktree.js +5 -1
  28. package/dist/ansi/strip.d.ts +1 -1
  29. package/dist/ansi/strip.js +0 -2
  30. package/dist/archives/_internal.js +7 -9
  31. package/dist/archives/extract.js +1 -1
  32. package/dist/archives/tar.js +7 -7
  33. package/dist/archives/zip.js +5 -7
  34. package/dist/argv/flag-predicates.d.ts +12 -12
  35. package/dist/argv/flag-predicates.js +17 -17
  36. package/dist/argv/flag-types.d.ts +18 -18
  37. package/dist/argv/flag-types.js +4 -4
  38. package/dist/argv/parse.d.ts +20 -3
  39. package/dist/argv/parse.js +1 -1
  40. package/dist/arrays/_internal.js +11 -12
  41. package/dist/arrays/chunk.js +0 -1
  42. package/dist/arrays/join.d.ts +37 -3
  43. package/dist/arrays/join.js +47 -7
  44. package/dist/arrays/unique.js +0 -1
  45. package/dist/bin/_internal.d.ts +1 -1
  46. package/dist/bin/_internal.js +1 -1
  47. package/dist/bin/exec.js +2 -3
  48. package/dist/bin/find.js +17 -17
  49. package/dist/bin/prim.cjs +36175 -35861
  50. package/dist/bin/resolve.js +13 -14
  51. package/dist/bin/which.js +8 -8
  52. package/dist/cache/ttl/store.js +6 -6
  53. package/dist/checks/primordials-defaults.d.ts +3 -3
  54. package/dist/checks/primordials-defaults.js +3 -3
  55. package/dist/checks/primordials.js +4 -3
  56. package/dist/{bin → cli}/check-primordials.d.ts +18 -13
  57. package/dist/{bin → cli}/check-primordials.js +58 -55
  58. package/dist/{bin → cli}/check.js +3 -3
  59. package/dist/{bin → cli}/socket-lib.d.ts +1 -1
  60. package/dist/{bin → cli}/socket-lib.js +4 -4
  61. package/dist/colors/socket-palette.js +7 -9
  62. package/dist/compression/_internal.d.ts +12 -12
  63. package/dist/compression/_internal.js +18 -18
  64. package/dist/compression/brotli.d.ts +26 -27
  65. package/dist/compression/brotli.js +39 -35
  66. package/dist/compression/gzip.d.ts +23 -23
  67. package/dist/compression/gzip.js +46 -42
  68. package/dist/constants/agents.d.ts +3 -1
  69. package/dist/constants/agents.js +15 -11
  70. package/dist/constants/licenses.js +3 -3
  71. package/dist/constants/node.d.ts +23 -0
  72. package/dist/constants/node.js +47 -15
  73. package/dist/constants/packages.d.ts +3 -0
  74. package/dist/constants/packages.js +24 -29
  75. package/dist/constants/platform.d.ts +30 -3
  76. package/dist/constants/platform.js +72 -12
  77. package/dist/constants/runtime.d.ts +22 -0
  78. package/dist/constants/runtime.js +32 -0
  79. package/dist/constants/socket.d.ts +2 -6
  80. package/dist/constants/socket.js +12 -14
  81. package/dist/cover/code.js +10 -10
  82. package/dist/cover/formatters.js +5 -5
  83. package/dist/crypto/hash.d.ts +30 -2
  84. package/dist/crypto/hash.js +47 -13
  85. package/dist/debug/_internal.js +4 -6
  86. package/dist/debug/caller-info.js +3 -4
  87. package/dist/debug/namespace.d.ts +7 -0
  88. package/dist/debug/namespace.js +21 -12
  89. package/dist/debug/output.js +21 -24
  90. package/dist/debug/types.d.ts +4 -4
  91. package/dist/dlx/arborist.js +18 -8
  92. package/dist/dlx/binary-cache.js +15 -15
  93. package/dist/dlx/binary-download.d.ts +1 -1
  94. package/dist/dlx/binary-download.js +11 -11
  95. package/dist/dlx/binary-resolution.js +17 -15
  96. package/dist/dlx/binary-types.d.ts +5 -5
  97. package/dist/dlx/binary.js +5 -5
  98. package/dist/dlx/cache.js +1 -1
  99. package/dist/dlx/detect.d.ts +42 -25
  100. package/dist/dlx/detect.js +86 -77
  101. package/dist/dlx/dir.js +2 -2
  102. package/dist/dlx/firewall.d.ts +9 -1
  103. package/dist/dlx/firewall.js +1 -1
  104. package/dist/dlx/lockfile.d.ts +19 -18
  105. package/dist/dlx/lockfile.js +19 -16
  106. package/dist/dlx/manifest.d.ts +6 -6
  107. package/dist/dlx/manifest.js +5 -5
  108. package/dist/dlx/package.d.ts +10 -10
  109. package/dist/dlx/package.js +20 -16
  110. package/dist/dlx/packages.js +4 -4
  111. package/dist/dlx/paths.js +7 -7
  112. package/dist/dlx/spec.js +1 -1
  113. package/dist/dlx/types.d.ts +28 -27
  114. package/dist/eco/cargo/parse-lockfile.d.ts +2 -3
  115. package/dist/eco/cargo/parse-lockfile.js +5 -5
  116. package/dist/eco/manifest/analyze-lockfile.js +2 -2
  117. package/dist/eco/manifest/detect-format.js +5 -5
  118. package/dist/eco/manifest/find-packages.js +2 -2
  119. package/dist/eco/manifest/get-package-versions.js +2 -2
  120. package/dist/eco/manifest/get-package.js +2 -2
  121. package/dist/eco/manifest/parse-lockfile.js +2 -2
  122. package/dist/eco/manifest/parse-manifest.js +2 -2
  123. package/dist/eco/manifest/parse.js +2 -2
  124. package/dist/eco/npm/npm/exec.js +2 -2
  125. package/dist/eco/npm/npm/flags.js +7 -12
  126. package/dist/eco/npm/npm/parse-lockfile.d.ts +17 -18
  127. package/dist/eco/npm/npm/parse-lockfile.js +4 -4
  128. package/dist/eco/npm/parse-package-json.d.ts +11 -0
  129. package/dist/eco/npm/parse-package-json.js +3 -3
  130. package/dist/eco/npm/pnpm/exec.d.ts +1 -1
  131. package/dist/eco/npm/pnpm/exec.js +5 -5
  132. package/dist/eco/npm/pnpm/flags.js +0 -3
  133. package/dist/eco/npm/pnpm/parse-lockfile.d.ts +6 -4
  134. package/dist/eco/npm/pnpm/parse-lockfile.js +7 -7
  135. package/dist/eco/npm/script.js +9 -6
  136. package/dist/eco/npm/yarnpkg/yarn/exec.js +4 -4
  137. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +3 -4
  138. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +9 -9
  139. package/dist/effects/pulse-frames.d.ts +3 -1
  140. package/dist/effects/shimmer-keyframes.d.ts +1 -1
  141. package/dist/effects/shimmer-terminal.d.ts +1 -1
  142. package/dist/env/boolean.js +0 -1
  143. package/dist/env/ci.js +0 -1
  144. package/dist/env/debug.js +0 -1
  145. package/dist/env/github-status.d.ts +51 -0
  146. package/dist/env/github-status.js +90 -0
  147. package/dist/env/github.js +0 -8
  148. package/dist/env/home.js +0 -1
  149. package/dist/env/locale.js +0 -3
  150. package/dist/env/node-auth-token.js +0 -1
  151. package/dist/env/node-env.js +0 -1
  152. package/dist/env/node-version-managers.d.ts +53 -0
  153. package/dist/env/node-version-managers.js +90 -0
  154. package/dist/env/npm.js +0 -5
  155. package/dist/env/number.js +0 -1
  156. package/dist/env/package-manager.js +3 -6
  157. package/dist/env/path.js +0 -1
  158. package/dist/env/pre-commit.js +1 -2
  159. package/dist/env/proxy.js +1 -1
  160. package/dist/env/rewire.d.ts +8 -6
  161. package/dist/env/rewire.js +16 -17
  162. package/dist/env/shell.js +0 -1
  163. package/dist/env/socket-cli.js +5 -18
  164. package/dist/env/socket-mcp.d.ts +114 -0
  165. package/dist/env/socket-mcp.js +146 -0
  166. package/dist/env/socket.d.ts +8 -109
  167. package/dist/env/socket.js +22 -167
  168. package/dist/env/string.js +0 -1
  169. package/dist/env/temp-dir.js +0 -3
  170. package/dist/env/term.js +0 -1
  171. package/dist/env/test.js +3 -6
  172. package/dist/env/windows.js +0 -4
  173. package/dist/env/xdg.js +0 -3
  174. package/dist/errors/predicates.js +1 -1
  175. package/dist/events/exit/_internal.d.ts +11 -9
  176. package/dist/events/exit/_internal.js +31 -35
  177. package/dist/events/exit/handler.js +3 -4
  178. package/dist/events/exit/intercept.js +4 -6
  179. package/dist/events/exit/lifecycle.js +16 -18
  180. package/dist/events/exit/signals.js +1 -2
  181. package/dist/events/exit/types.d.ts +6 -5
  182. package/dist/external/@npmcli/package-json.js +2 -2
  183. package/dist/external/@npmcli/promise-spawn.js +3 -1
  184. package/dist/external/npm-pack.js +2 -2
  185. package/dist/external/pico-pack.js +4 -2
  186. package/dist/external/which.js +3 -1
  187. package/dist/external-tools/bazel/asset-names.d.ts +1 -1
  188. package/dist/external-tools/bazel/asset-names.js +5 -2
  189. package/dist/external-tools/bazel/from-download.d.ts +1 -1
  190. package/dist/external-tools/bazel/from-download.js +5 -2
  191. package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
  192. package/dist/external-tools/bazel/resolve-bazel-version.js +4 -0
  193. package/dist/external-tools/bazel/resolve.d.ts +3 -3
  194. package/dist/external-tools/bazel/resolve.js +16 -8
  195. package/dist/external-tools/bazel/types.d.ts +1 -1
  196. package/dist/external-tools/cdxgen/asset-names.d.ts +1 -1
  197. package/dist/external-tools/cdxgen/asset-names.js +5 -2
  198. package/dist/external-tools/cdxgen/from-download.d.ts +1 -1
  199. package/dist/external-tools/cdxgen/from-download.js +7 -4
  200. package/dist/external-tools/cdxgen/from-vfs.js +1 -1
  201. package/dist/external-tools/cdxgen/resolve.d.ts +3 -3
  202. package/dist/external-tools/cdxgen/resolve.js +16 -8
  203. package/dist/external-tools/cdxgen/types.d.ts +1 -1
  204. package/dist/external-tools/from-download.d.ts +3 -3
  205. package/dist/external-tools/from-download.js +12 -6
  206. package/dist/external-tools/from-pip-venv.d.ts +1 -1
  207. package/dist/external-tools/from-pip-venv.js +12 -5
  208. package/dist/external-tools/janus/asset-names.d.ts +1 -1
  209. package/dist/external-tools/janus/asset-names.js +5 -2
  210. package/dist/external-tools/janus/from-download.d.ts +1 -1
  211. package/dist/external-tools/janus/from-download.js +5 -2
  212. package/dist/external-tools/janus/from-vfs.js +1 -1
  213. package/dist/external-tools/janus/resolve.d.ts +3 -3
  214. package/dist/external-tools/janus/resolve.js +16 -8
  215. package/dist/external-tools/janus/types.d.ts +1 -1
  216. package/dist/external-tools/jre/asset-names.d.ts +1 -1
  217. package/dist/external-tools/jre/asset-names.js +5 -2
  218. package/dist/external-tools/jre/detect-platform-arch.d.ts +10 -6
  219. package/dist/external-tools/jre/detect-platform-arch.js +29 -14
  220. package/dist/external-tools/jre/from-download.d.ts +1 -1
  221. package/dist/external-tools/jre/from-download.js +7 -4
  222. package/dist/external-tools/jre/from-java-home.js +2 -2
  223. package/dist/external-tools/jre/from-vfs.js +3 -3
  224. package/dist/external-tools/jre/resolve.d.ts +3 -3
  225. package/dist/external-tools/jre/resolve.js +16 -8
  226. package/dist/external-tools/jre/types.d.ts +1 -1
  227. package/dist/external-tools/manifest.d.ts +25 -7
  228. package/dist/external-tools/manifest.js +13 -13
  229. package/dist/external-tools/opengrep/asset-names.d.ts +1 -1
  230. package/dist/external-tools/opengrep/asset-names.js +5 -2
  231. package/dist/external-tools/opengrep/from-download.d.ts +1 -1
  232. package/dist/external-tools/opengrep/from-download.js +5 -2
  233. package/dist/external-tools/opengrep/from-vfs.js +1 -1
  234. package/dist/external-tools/opengrep/resolve.d.ts +3 -3
  235. package/dist/external-tools/opengrep/resolve.js +16 -8
  236. package/dist/external-tools/opengrep/types.d.ts +1 -1
  237. package/dist/external-tools/python/asset-names.d.ts +76 -0
  238. package/dist/external-tools/python/asset-names.js +111 -0
  239. package/dist/external-tools/python/dlx.d.ts +80 -0
  240. package/dist/external-tools/python/dlx.js +98 -0
  241. package/dist/external-tools/python/from-download.d.ts +53 -0
  242. package/dist/external-tools/python/from-download.js +75 -0
  243. package/dist/external-tools/python/from-path.d.ts +7 -0
  244. package/dist/external-tools/python/from-path.js +23 -0
  245. package/dist/external-tools/python/pin.d.ts +121 -0
  246. package/dist/external-tools/python/pin.js +176 -0
  247. package/dist/external-tools/python/pip-install.d.ts +75 -0
  248. package/dist/external-tools/python/pip-install.js +142 -0
  249. package/dist/external-tools/python/resolve.d.ts +42 -0
  250. package/dist/external-tools/python/resolve.js +66 -0
  251. package/dist/external-tools/python/types.d.ts +49 -0
  252. package/dist/external-tools/sbt/asset-names.d.ts +1 -1
  253. package/dist/external-tools/sbt/asset-names.js +5 -2
  254. package/dist/external-tools/sbt/from-download.d.ts +1 -1
  255. package/dist/external-tools/sbt/from-download.js +5 -2
  256. package/dist/external-tools/sbt/from-vfs.js +1 -1
  257. package/dist/external-tools/sbt/resolve.d.ts +3 -3
  258. package/dist/external-tools/sbt/resolve.js +16 -8
  259. package/dist/external-tools/sbt/types.d.ts +1 -1
  260. package/dist/external-tools/skillspector/from-dlx.d.ts +1 -1
  261. package/dist/external-tools/skillspector/from-dlx.js +10 -3
  262. package/dist/external-tools/skillspector/from-path.js +3 -5
  263. package/dist/external-tools/skillspector/from-vfs.js +1 -1
  264. package/dist/external-tools/skillspector/resolve.d.ts +2 -2
  265. package/dist/external-tools/skillspector/resolve.js +14 -6
  266. package/dist/external-tools/synp/asset-names.d.ts +1 -1
  267. package/dist/external-tools/synp/asset-names.js +6 -2
  268. package/dist/external-tools/synp/from-download.d.ts +1 -1
  269. package/dist/external-tools/synp/from-download.js +7 -4
  270. package/dist/external-tools/synp/from-vfs.js +1 -1
  271. package/dist/external-tools/synp/resolve.d.ts +3 -3
  272. package/dist/external-tools/synp/resolve.js +16 -8
  273. package/dist/external-tools/trivy/asset-names.d.ts +1 -1
  274. package/dist/external-tools/trivy/asset-names.js +5 -2
  275. package/dist/external-tools/trivy/from-download.d.ts +1 -1
  276. package/dist/external-tools/trivy/from-download.js +7 -4
  277. package/dist/external-tools/trivy/from-vfs.js +1 -1
  278. package/dist/external-tools/trivy/resolve.d.ts +3 -3
  279. package/dist/external-tools/trivy/resolve.js +16 -8
  280. package/dist/external-tools/trivy/types.d.ts +1 -1
  281. package/dist/external-tools/trufflehog/asset-names.d.ts +1 -1
  282. package/dist/external-tools/trufflehog/asset-names.js +5 -2
  283. package/dist/external-tools/trufflehog/from-download.d.ts +1 -1
  284. package/dist/external-tools/trufflehog/from-download.js +7 -4
  285. package/dist/external-tools/trufflehog/from-vfs.js +1 -1
  286. package/dist/external-tools/trufflehog/resolve.d.ts +3 -3
  287. package/dist/external-tools/trufflehog/resolve.js +16 -8
  288. package/dist/external-tools/trufflehog/types.d.ts +1 -1
  289. package/dist/fs/_internal.d.ts +1 -1
  290. package/dist/fs/_internal.js +7 -7
  291. package/dist/fs/access.js +5 -9
  292. package/dist/fs/allowed-dirs-cache.d.ts +47 -0
  293. package/dist/fs/allowed-dirs-cache.js +69 -0
  294. package/dist/fs/encoding.js +5 -7
  295. package/dist/fs/{find-up.js → find.js} +12 -14
  296. package/dist/fs/inspect.js +7 -13
  297. package/dist/fs/read-dir.js +7 -10
  298. package/dist/fs/read-file.js +8 -14
  299. package/dist/fs/read-json-cache.d.ts +13 -4
  300. package/dist/fs/read-json-cache.js +9 -6
  301. package/dist/fs/read-json.js +4 -6
  302. package/dist/fs/resolve-module.js +7 -3
  303. package/dist/fs/safe.d.ts +1 -1
  304. package/dist/fs/safe.js +13 -14
  305. package/dist/fs/unique.js +4 -5
  306. package/dist/fs/validate.js +1 -2
  307. package/dist/fs/write-json.js +4 -5
  308. package/dist/git/_internal.js +11 -11
  309. package/dist/git/changed.js +4 -4
  310. package/dist/git/repo.js +5 -7
  311. package/dist/git/staged.js +12 -4
  312. package/dist/git/tracked.d.ts +84 -0
  313. package/dist/git/tracked.js +163 -0
  314. package/dist/git/unstaged.js +12 -4
  315. package/dist/github/ghsa.js +2 -2
  316. package/dist/github/refs-cache.d.ts +1 -1
  317. package/dist/github/refs-cache.js +5 -5
  318. package/dist/github/refs-graphql.js +4 -0
  319. package/dist/github/refs-rest.js +9 -5
  320. package/dist/github/refs.js +15 -10
  321. package/dist/github/{fetch.js → request.js} +13 -2
  322. package/dist/github/token.js +1 -1
  323. package/dist/github/types.d.ts +1 -1
  324. package/dist/globs/_internal.js +8 -10
  325. package/dist/globs/match.js +13 -7
  326. package/dist/globs/matcher.d.ts +3 -3
  327. package/dist/globs/matcher.js +16 -14
  328. package/dist/globs/stream.js +1 -2
  329. package/dist/globs/types.d.ts +24 -24
  330. package/dist/http-request/_internal.d.ts +1 -1
  331. package/dist/http-request/browser.js +10 -4
  332. package/dist/http-request/checksum-file.d.ts +55 -0
  333. package/dist/http-request/checksum-file.js +95 -0
  334. package/dist/http-request/download-types.d.ts +15 -23
  335. package/dist/http-request/download.js +3 -3
  336. package/dist/http-request/{browser-fetch.d.ts → fetch/browser.d.ts} +2 -2
  337. package/dist/http-request/{browser-fetch.js → fetch/browser.js} +4 -4
  338. package/dist/http-request/headers.js +1 -2
  339. package/dist/http-request/request-attempt.js +38 -34
  340. package/dist/http-request/request-types.d.ts +2 -2
  341. package/dist/http-request/request.js +1 -1
  342. package/dist/http-request/user-agent.js +4 -5
  343. package/dist/integrity.d.ts +92 -18
  344. package/dist/integrity.js +125 -30
  345. package/dist/ipc/directory.js +2 -2
  346. package/dist/ipc/paths.js +1 -1
  347. package/dist/ipc/write.js +1 -1
  348. package/dist/ipc-cli/get.js +12 -12
  349. package/dist/json/edit.js +51 -44
  350. package/dist/json/format.js +1 -1
  351. package/dist/json/parse.d.ts +1 -1
  352. package/dist/json/parse.js +3 -7
  353. package/dist/logger/_internal.d.ts +4 -4
  354. package/dist/logger/_internal.js +3 -3
  355. package/dist/logger/colors.js +4 -3
  356. package/dist/logger/console-methods.d.ts +132 -0
  357. package/dist/logger/console-methods.js +169 -0
  358. package/dist/logger/console.d.ts +12 -0
  359. package/dist/logger/console.js +42 -11
  360. package/dist/logger/indentation-methods.d.ts +81 -0
  361. package/dist/logger/indentation-methods.js +121 -0
  362. package/dist/logger/node.d.ts +16 -338
  363. package/dist/logger/node.js +75 -608
  364. package/dist/logger/options.d.ts +39 -0
  365. package/dist/logger/options.js +47 -0
  366. package/dist/logger/semantic-methods.d.ts +63 -0
  367. package/dist/logger/semantic-methods.js +108 -0
  368. package/dist/logger/stream-methods.d.ts +63 -0
  369. package/dist/logger/stream-methods.js +101 -0
  370. package/dist/logger/stream.d.ts +37 -0
  371. package/dist/logger/stream.js +42 -0
  372. package/dist/logger/symbols-builder.js +9 -9
  373. package/dist/logger/symbols.d.ts +2 -25
  374. package/dist/logger/symbols.js +53 -74
  375. package/dist/logger/types.d.ts +1 -1
  376. package/dist/memo/types.d.ts +6 -6
  377. package/dist/native-messaging/host.d.ts +20 -0
  378. package/dist/native-messaging/host.js +120 -0
  379. package/dist/native-messaging/index.d.ts +5 -0
  380. package/dist/native-messaging/index.js +22 -0
  381. package/dist/native-messaging/install.d.ts +60 -0
  382. package/dist/native-messaging/install.js +144 -0
  383. package/dist/native-messaging/rate-limit.d.ts +69 -0
  384. package/dist/native-messaging/rate-limit.js +119 -0
  385. package/dist/native-messaging/run.d.ts +10 -0
  386. package/dist/native-messaging/run.js +17 -0
  387. package/dist/node/async-hooks.js +4 -3
  388. package/dist/node/child-process.js +4 -3
  389. package/dist/node/crypto.js +4 -3
  390. package/dist/node/events.js +4 -3
  391. package/dist/node/fs-promises.js +4 -3
  392. package/dist/node/fs.d.ts +22 -6
  393. package/dist/node/fs.js +17 -3
  394. package/dist/node/http.js +4 -3
  395. package/dist/node/https.js +4 -3
  396. package/dist/node/module.js +10 -6
  397. package/dist/node/os.d.ts +10 -2
  398. package/dist/node/os.js +12 -4
  399. package/dist/node/path.d.ts +11 -2
  400. package/dist/node/path.js +18 -4
  401. package/dist/node/timers-promises.js +4 -3
  402. package/dist/node/url.js +4 -3
  403. package/dist/node/util.js +4 -3
  404. package/dist/objects/getters.js +6 -8
  405. package/dist/objects/inspect.js +1 -4
  406. package/dist/objects/mutate.js +4 -5
  407. package/dist/objects/predicates.js +1 -5
  408. package/dist/objects/sort.js +3 -7
  409. package/dist/packages/edit-class.d.ts +2 -3
  410. package/dist/packages/edit-class.js +53 -48
  411. package/dist/packages/edit.js +12 -14
  412. package/dist/packages/exports.js +15 -21
  413. package/dist/packages/fetch.d.ts +16 -0
  414. package/dist/packages/fetch.js +81 -0
  415. package/dist/packages/find.d.ts +55 -0
  416. package/dist/packages/find.js +65 -0
  417. package/dist/packages/isolation.js +14 -14
  418. package/dist/packages/licenses.js +18 -18
  419. package/dist/packages/manifest.js +16 -19
  420. package/dist/packages/metadata-extensions.d.ts +14 -0
  421. package/dist/packages/metadata-extensions.js +43 -0
  422. package/dist/packages/normalize.js +6 -10
  423. package/dist/packages/provenance.js +17 -19
  424. package/dist/packages/read.d.ts +29 -0
  425. package/dist/packages/read.js +66 -0
  426. package/dist/packages/specs.d.ts +48 -1
  427. package/dist/packages/specs.js +75 -12
  428. package/dist/packages/tarball.d.ts +24 -0
  429. package/dist/packages/tarball.js +81 -0
  430. package/dist/packages/types.d.ts +22 -22
  431. package/dist/packages/validation.js +0 -3
  432. package/dist/paths/_internal.d.ts +2 -1
  433. package/dist/paths/_internal.js +7 -19
  434. package/dist/paths/conversion.js +5 -9
  435. package/dist/paths/dirnames.d.ts +1 -0
  436. package/dist/paths/dirnames.js +2 -0
  437. package/dist/paths/filenames.d.ts +0 -1
  438. package/dist/paths/filenames.js +0 -2
  439. package/dist/paths/normalize.js +4 -5
  440. package/dist/paths/packages.js +4 -7
  441. package/dist/paths/predicates.js +9 -16
  442. package/dist/paths/resolve.js +17 -25
  443. package/dist/paths/rewire.d.ts +5 -0
  444. package/dist/paths/rewire.js +3 -3
  445. package/dist/paths/socket.d.ts +74 -111
  446. package/dist/paths/socket.js +106 -139
  447. package/dist/paths/walk.d.ts +1 -1
  448. package/dist/paths/walk.js +4 -4
  449. package/dist/perf/report.js +2 -2
  450. package/dist/perf/types.d.ts +1 -1
  451. package/dist/pkg-ext/data.js +1 -1
  452. package/dist/primordials/array.js +9 -9
  453. package/dist/primordials/date.js +2 -2
  454. package/dist/primordials/error.js +3 -3
  455. package/dist/primordials/headers.d.ts +10 -0
  456. package/dist/primordials/headers.js +23 -0
  457. package/dist/primordials/intl.d.ts +13 -0
  458. package/dist/primordials/intl.js +26 -0
  459. package/dist/primordials/math.js +33 -33
  460. package/dist/primordials/number.js +9 -9
  461. package/dist/primordials/object.js +5 -5
  462. package/dist/primordials/process.d.ts +88 -0
  463. package/dist/primordials/process.js +132 -0
  464. package/dist/primordials/string.d.ts +2 -2
  465. package/dist/primordials/string.js +6 -6
  466. package/dist/primordials/symbol.js +3 -3
  467. package/dist/primordials/uncurry.d.ts +1 -2
  468. package/dist/primordials/uncurry.js +9 -9
  469. package/dist/process/abort.js +3 -3
  470. package/dist/process/lock-manager.js +8 -8
  471. package/dist/process/spawn/_internal.js +6 -8
  472. package/dist/process/spawn/child.js +20 -14
  473. package/dist/process/spawn/errors.js +3 -5
  474. package/dist/process/spawn/kill-tree.d.ts +53 -0
  475. package/dist/process/spawn/kill-tree.js +85 -0
  476. package/dist/process/spawn/stdio.js +0 -1
  477. package/dist/process/spawn/types.d.ts +5 -5
  478. package/dist/process/transient.js +2 -2
  479. package/dist/promises/_internal.d.ts +2 -1
  480. package/dist/promises/_internal.js +2 -6
  481. package/dist/promises/iterate.js +11 -15
  482. package/dist/promises/options.js +3 -6
  483. package/dist/promises/retry.js +4 -5
  484. package/dist/promises/timers.d.ts +30 -0
  485. package/dist/promises/timers.js +48 -0
  486. package/dist/regexps/spec.js +1 -1
  487. package/dist/releases/github-archives.d.ts +6 -6
  488. package/dist/releases/github-archives.js +3 -3
  489. package/dist/releases/github-asset-url.d.ts +1 -1
  490. package/dist/releases/github-asset-url.js +5 -5
  491. package/dist/releases/github-downloads.d.ts +1 -1
  492. package/dist/releases/github-downloads.js +3 -3
  493. package/dist/releases/github-listing.d.ts +12 -4
  494. package/dist/releases/github-listing.js +20 -7
  495. package/dist/releases/github-retry-config.js +1 -1
  496. package/dist/releases/github-types.d.ts +6 -6
  497. package/dist/releases/socket-btm-binary-naming.d.ts +107 -0
  498. package/dist/releases/socket-btm-binary-naming.js +155 -0
  499. package/dist/releases/socket-btm.d.ts +8 -115
  500. package/dist/releases/socket-btm.js +16 -159
  501. package/dist/schema/types.d.ts +4 -5
  502. package/dist/schema/validate.js +1 -1
  503. package/dist/sea/detect.js +6 -6
  504. package/dist/secrets/_internal.d.ts +2 -2
  505. package/dist/secrets/_internal.js +2 -2
  506. package/dist/secrets/compare.d.ts +45 -0
  507. package/dist/secrets/compare.js +61 -0
  508. package/dist/secrets/find.d.ts +2 -2
  509. package/dist/secrets/find.js +10 -4
  510. package/dist/secrets/keychain.d.ts +1 -1
  511. package/dist/secrets/keychain.js +6 -4
  512. package/dist/secrets/linux.js +40 -52
  513. package/dist/secrets/macos.d.ts +2 -3
  514. package/dist/secrets/macos.js +24 -33
  515. package/dist/secrets/rc.d.ts +4 -4
  516. package/dist/secrets/rc.js +27 -17
  517. package/dist/secrets/socket-api-token.d.ts +4 -4
  518. package/dist/secrets/socket-api-token.js +26 -9
  519. package/dist/secrets/windows.js +32 -37
  520. package/dist/shadow/skip.js +2 -2
  521. package/dist/shell/parse.d.ts +32 -0
  522. package/dist/shell/parse.js +60 -0
  523. package/dist/smol/detect.js +9 -10
  524. package/dist/smol/http.js +6 -7
  525. package/dist/smol/https.js +6 -7
  526. package/dist/smol/manifest.d.ts +1 -1
  527. package/dist/smol/manifest.js +6 -7
  528. package/dist/smol/path.d.ts +1 -1
  529. package/dist/smol/path.js +7 -8
  530. package/dist/smol/primordial.d.ts +4 -0
  531. package/dist/smol/primordial.js +6 -7
  532. package/dist/smol/purl.d.ts +1 -1
  533. package/dist/smol/purl.js +7 -8
  534. package/dist/smol/versions.js +6 -7
  535. package/dist/smol/vfs.js +6 -7
  536. package/dist/sorts/_internal.js +6 -8
  537. package/dist/sorts/natural.js +10 -12
  538. package/dist/sorts/semver.js +1 -2
  539. package/dist/sorts/strings.js +0 -1
  540. package/dist/sorts/types.d.ts +1 -1
  541. package/dist/spinner/create-spinner-class.d.ts +38 -0
  542. package/dist/spinner/create-spinner-class.js +302 -0
  543. package/dist/spinner/default.js +8 -9
  544. package/dist/spinner/spinner-internals.d.ts +36 -0
  545. package/dist/spinner/spinner-internals.js +105 -0
  546. package/dist/spinner/spinner-shimmer-methods.d.ts +54 -0
  547. package/dist/spinner/spinner-shimmer-methods.js +143 -0
  548. package/dist/spinner/spinner-status-methods.d.ts +40 -0
  549. package/dist/spinner/spinner-status-methods.js +133 -0
  550. package/dist/spinner/spinner.d.ts +8 -5
  551. package/dist/spinner/spinner.js +19 -706
  552. package/dist/spinner/types.d.ts +3 -1
  553. package/dist/spinner/with.d.ts +10 -0
  554. package/dist/spinner/with.js +16 -2
  555. package/dist/stdio/divider.js +1 -1
  556. package/dist/stdio/footer.js +3 -3
  557. package/dist/stdio/header.js +4 -4
  558. package/dist/stdio/progress.js +10 -6
  559. package/dist/stdio/prompts.d.ts +7 -5
  560. package/dist/stdio/prompts.js +7 -8
  561. package/dist/stdio/stdout.js +3 -3
  562. package/dist/streams/parallel.js +3 -5
  563. package/dist/streams/transform.js +2 -3
  564. package/dist/strings/format.js +2 -6
  565. package/dist/strings/predicates.js +0 -2
  566. package/dist/strings/search.js +1 -2
  567. package/dist/strings/transform.js +0 -3
  568. package/dist/strings/width.js +9 -10
  569. package/dist/tables/bordered.js +4 -3
  570. package/dist/tables/padding.js +1 -1
  571. package/dist/tables/simple.js +8 -5
  572. package/dist/temporal/instant.js +1 -1
  573. package/dist/temporal/slots.js +6 -6
  574. package/dist/temporal/system.js +9 -9
  575. package/dist/themes/context.d.ts +3 -2
  576. package/dist/themes/context.js +4 -5
  577. package/dist/themes/themes.js +15 -15
  578. package/dist/themes/types.d.ts +3 -3
  579. package/dist/url/assert-safe.d.ts +29 -0
  580. package/dist/url/assert-safe.js +54 -0
  581. package/dist/url/parse.js +0 -2
  582. package/dist/url/predicates.d.ts +31 -1
  583. package/dist/url/predicates.js +43 -3
  584. package/dist/url/search-params.js +3 -9
  585. package/dist/url/types.d.ts +9 -5
  586. package/dist/versions/_internal.js +3 -3
  587. package/dist/words/article.js +0 -1
  588. package/dist/words/capitalize.js +0 -1
  589. package/dist/words/pluralize.js +15 -5
  590. package/package.json +419 -216
  591. package/dist/external-tools/uv/asset-names.d.ts +0 -36
  592. package/dist/external-tools/uv/asset-names.js +0 -70
  593. package/dist/external-tools/uv/from-download.d.ts +0 -17
  594. package/dist/external-tools/uv/from-download.js +0 -47
  595. package/dist/external-tools/uv/from-path.d.ts +0 -5
  596. package/dist/external-tools/uv/from-path.js +0 -22
  597. package/dist/external-tools/uv/from-vfs.d.ts +0 -7
  598. package/dist/external-tools/uv/from-vfs.js +0 -26
  599. package/dist/external-tools/uv/resolve.d.ts +0 -25
  600. package/dist/external-tools/uv/resolve.js +0 -53
  601. package/dist/external-tools/uv/types.d.ts +0 -24
  602. package/dist/fs/path-cache.d.ts +0 -21
  603. package/dist/fs/path-cache.js +0 -34
  604. package/dist/http-request/checksums.d.ts +0 -69
  605. package/dist/http-request/checksums.js +0 -108
  606. package/dist/http-request/http-request.d.ts +0 -12
  607. package/dist/http-request/http-request.js +0 -11
  608. package/dist/packages/operations.d.ts +0 -113
  609. package/dist/packages/operations.js +0 -304
  610. package/dist/ssri/convert.d.ts +0 -48
  611. package/dist/ssri/convert.js +0 -69
  612. package/dist/ssri/parse.d.ts +0 -27
  613. package/dist/ssri/parse.js +0 -41
  614. package/dist/ssri/validate.d.ts +0 -41
  615. package/dist/ssri/validate.js +0 -56
  616. /package/dist/{bin → cli}/check.d.ts +0 -0
  617. /package/dist/external-tools/{uv → python}/types.js +0 -0
  618. /package/dist/fs/{find-up.d.ts → find.d.ts} +0 -0
  619. /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_primordials_error = require('../primordials/error.js');
5
5
  const require_primordials_promise = require('../primordials/promise.js');
6
- let node_child_process = require("node:child_process");
6
+ let _socketsecurity_lib_stable_process_spawn_child = require("@socketsecurity/lib-stable/process/spawn/child");
7
7
 
8
8
  //#region src/secrets/linux.ts
9
9
  /**
@@ -22,19 +22,19 @@ let node_child_process = require("node:child_process");
22
22
  const SECRET_TOOL_BIN = "secret-tool";
23
23
  async function deleteLinux(service, account) {
24
24
  return new require_primordials_promise.PromiseCtor((resolve) => {
25
- const child = (0, node_child_process.spawn)(SECRET_TOOL_BIN, [
25
+ const { process: cp } = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(SECRET_TOOL_BIN, [
26
26
  "clear",
27
27
  "service",
28
28
  service,
29
29
  "user",
30
30
  account
31
31
  ], { stdio: "ignore" });
32
- child.on("error", () => resolve("absent"));
33
- child.on("close", (status) => resolve(status === 0 ? "removed" : "absent"));
32
+ cp.on("error", () => resolve("absent"));
33
+ cp.on("close", (status) => resolve(status === 0 ? "removed" : "absent"));
34
34
  });
35
35
  }
36
36
  function deleteLinuxSync(service, account) {
37
- return (0, node_child_process.spawnSync)(SECRET_TOOL_BIN, [
37
+ return (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECRET_TOOL_BIN, [
38
38
  "clear",
39
39
  "service",
40
40
  service,
@@ -43,38 +43,31 @@ function deleteLinuxSync(service, account) {
43
43
  ], { stdio: "ignore" }).status === 0 ? "removed" : "absent";
44
44
  }
45
45
  function isLinuxBackendAvailable() {
46
- return (0, node_child_process.spawnSync)(SECRET_TOOL_BIN, ["--version"], { stdio: "ignore" }).status === 0;
46
+ return (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECRET_TOOL_BIN, ["--version"], { stdio: "ignore" }).status === 0;
47
47
  }
48
48
  async function readLinux(service, account) {
49
- return new require_primordials_promise.PromiseCtor((resolve) => {
50
- const child = (0, node_child_process.spawn)(SECRET_TOOL_BIN, [
49
+ try {
50
+ const r = await (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(SECRET_TOOL_BIN, [
51
51
  "lookup",
52
52
  "service",
53
53
  service,
54
54
  "user",
55
55
  account
56
- ], { stdio: [
57
- "ignore",
58
- "pipe",
59
- "pipe"
60
- ] });
61
- let stdout = "";
62
- child.stdout.setEncoding("utf8");
63
- child.stdout.on("data", (chunk) => {
64
- stdout += chunk;
65
- });
66
- child.on("error", () => resolve(void 0));
67
- child.on("close", (status) => {
68
- if (status !== 0) {
69
- resolve(void 0);
70
- return;
71
- }
72
- resolve(stdout.trim() || void 0);
56
+ ], {
57
+ stdio: [
58
+ "ignore",
59
+ "pipe",
60
+ "pipe"
61
+ ],
62
+ stdioString: true
73
63
  });
74
- });
64
+ return String(r.stdout ?? "").trim() || void 0;
65
+ } catch {
66
+ return;
67
+ }
75
68
  }
76
69
  function readLinuxSync(service, account) {
77
- const r = (0, node_child_process.spawnSync)(SECRET_TOOL_BIN, [
70
+ const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECRET_TOOL_BIN, [
78
71
  "lookup",
79
72
  "service",
80
73
  service,
@@ -92,37 +85,32 @@ function readLinuxSync(service, account) {
92
85
  return r.stdout.trim() || void 0;
93
86
  }
94
87
  async function writeLinux(service, account, value, label) {
95
- return new require_primordials_promise.PromiseCtor((resolve, reject) => {
96
- const child = (0, node_child_process.spawn)(SECRET_TOOL_BIN, [
97
- "store",
98
- `--label=${label}`,
99
- "service",
100
- service,
101
- "user",
102
- account
103
- ], { stdio: [
88
+ const hint = "Install libsecret-tools (apt install libsecret-tools / dnf install libsecret) or ensure a Secret Service provider (gnome-keyring, kwallet) is running.";
89
+ const child = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(SECRET_TOOL_BIN, [
90
+ "store",
91
+ `--label=${label}`,
92
+ "service",
93
+ service,
94
+ "user",
95
+ account
96
+ ], {
97
+ stdio: [
104
98
  "pipe",
105
99
  "pipe",
106
100
  "pipe"
107
- ] });
108
- let stderr = "";
109
- child.stderr.setEncoding("utf8");
110
- child.stderr.on("data", (chunk) => {
111
- stderr += chunk;
112
- });
113
- child.on("error", (err) => reject(/* @__PURE__ */ new Error(`secret-tool store failed: ${err.message}. Install libsecret-tools (apt install libsecret-tools / dnf install libsecret) or ensure a Secret Service provider (gnome-keyring, kwallet) is running.`)));
114
- child.on("close", (status) => {
115
- if (status === 0) {
116
- resolve();
117
- return;
118
- }
119
- reject(/* @__PURE__ */ new Error(`secret-tool store failed (status=${status}, user=${account}): ${stderr.trim()}. Install libsecret-tools (apt install libsecret-tools / dnf install libsecret) or ensure a Secret Service provider (gnome-keyring, kwallet) is running.`));
120
- });
121
- child.stdin.end(value);
101
+ ],
102
+ stdioString: true
122
103
  });
104
+ child.process.stdin.end(value);
105
+ try {
106
+ await child;
107
+ } catch (e) {
108
+ const err = e;
109
+ throw new require_primordials_error.ErrorCtor(`secret-tool store failed (status=${typeof err?.code === "number" ? err.code : -1}, user=${account}): ${String(err?.stderr ?? err?.message ?? "").trim()}. ${hint}`);
110
+ }
123
111
  }
124
112
  function writeLinuxSync(service, account, value, label) {
125
- const r = (0, node_child_process.spawnSync)(SECRET_TOOL_BIN, [
113
+ const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECRET_TOOL_BIN, [
126
114
  "store",
127
115
  `--label=${label}`,
128
116
  "service",
@@ -23,8 +23,8 @@ export declare function deleteMacOSSync(service: string, account: string): 'remo
23
23
  export declare function isMacOSBackendAvailable(): boolean;
24
24
  export declare function readMacOS(service: string, account: string): Promise<string | undefined>;
25
25
  export declare function readMacOSSync(service: string, account: string): string | undefined;
26
- interface SpawnOpts {
27
- stdio?: 'ignore' | 'pipe' | ['ignore', 'pipe', 'pipe'];
26
+ export interface SpawnOpts {
27
+ stdio?: 'ignore' | 'pipe' | ['ignore', 'pipe', 'pipe'] | undefined;
28
28
  }
29
29
  export declare function runAsync(args: readonly string[], opts?: SpawnOpts): Promise<{
30
30
  status: number | null;
@@ -33,4 +33,3 @@ export declare function runAsync(args: readonly string[], opts?: SpawnOpts): Pro
33
33
  }>;
34
34
  export declare function writeMacOS(service: string, account: string, value: string, label: string): Promise<void>;
35
35
  export declare function writeMacOSSync(service: string, account: string, value: string, label: string): void;
36
- export {};
@@ -2,8 +2,7 @@
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_primordials_error = require('../primordials/error.js');
5
- const require_primordials_promise = require('../primordials/promise.js');
6
- let node_child_process = require("node:child_process");
5
+ let _socketsecurity_lib_stable_process_spawn_child = require("@socketsecurity/lib-stable/process/spawn/child");
7
6
 
8
7
  //#region src/secrets/macos.ts
9
8
  /**
@@ -37,7 +36,7 @@ async function deleteMacOS(service, account) {
37
36
  ], { stdio: "ignore" })).status === 0 ? "removed" : "absent";
38
37
  }
39
38
  function deleteMacOSSync(service, account) {
40
- return (0, node_child_process.spawnSync)(SECURITY_BIN, [
39
+ return (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECURITY_BIN, [
41
40
  "delete-generic-password",
42
41
  "-s",
43
42
  service,
@@ -61,7 +60,7 @@ async function readMacOS(service, account) {
61
60
  return r.stdout.trim() || void 0;
62
61
  }
63
62
  function readMacOSSync(service, account) {
64
- const r = (0, node_child_process.spawnSync)(SECURITY_BIN, [
63
+ const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECURITY_BIN, [
65
64
  "find-generic-password",
66
65
  "-s",
67
66
  service,
@@ -79,38 +78,30 @@ function readMacOSSync(service, account) {
79
78
  if (r.status !== 0) return;
80
79
  return r.stdout.trim() || void 0;
81
80
  }
82
- function runAsync(args, opts = {}) {
83
- return new require_primordials_promise.PromiseCtor((resolve) => {
84
- const child = (0, node_child_process.spawn)(SECURITY_BIN, args, { stdio: opts.stdio ?? [
81
+ async function runAsync(args, opts = {}) {
82
+ const child = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(SECURITY_BIN, args, {
83
+ stdio: opts.stdio ?? [
85
84
  "ignore",
86
85
  "pipe",
87
86
  "pipe"
88
- ] });
89
- let stdout = "";
90
- let stderr = "";
91
- if (child.stdout) {
92
- child.stdout.setEncoding("utf8");
93
- child.stdout.on("data", (chunk) => {
94
- stdout += chunk;
95
- });
96
- }
97
- if (child.stderr) {
98
- child.stderr.setEncoding("utf8");
99
- child.stderr.on("data", (chunk) => {
100
- stderr += chunk;
101
- });
102
- }
103
- child.on("error", () => resolve({
104
- status: -1,
105
- stdout,
106
- stderr
107
- }));
108
- child.on("close", (status) => resolve({
109
- status,
110
- stdout,
111
- stderr
112
- }));
87
+ ],
88
+ stdioString: true
113
89
  });
90
+ try {
91
+ const r = await child;
92
+ return {
93
+ status: typeof r.code === "number" ? r.code : null,
94
+ stderr: String(r.stderr ?? ""),
95
+ stdout: String(r.stdout ?? "")
96
+ };
97
+ } catch (e) {
98
+ const err = e;
99
+ return {
100
+ status: typeof err?.code === "number" ? err.code : -1,
101
+ stderr: String(err?.stderr ?? ""),
102
+ stdout: String(err?.stdout ?? "")
103
+ };
104
+ }
114
105
  }
115
106
  async function writeMacOS(service, account, value, label) {
116
107
  const r = await runAsync([
@@ -133,7 +124,7 @@ async function writeMacOS(service, account, value, label) {
133
124
  if (r.status !== 0) throw new require_primordials_error.ErrorCtor(`security(1) add-generic-password failed (status=${r.status}, account=${account}): ${r.stderr.trim()}`);
134
125
  }
135
126
  function writeMacOSSync(service, account, value, label) {
136
- const r = (0, node_child_process.spawnSync)(SECURITY_BIN, [
127
+ const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECURITY_BIN, [
137
128
  "add-generic-password",
138
129
  "-U",
139
130
  "-A",
@@ -37,7 +37,7 @@
37
37
  * non-interactive shells (Claude Code, IDE plugins, CI runners) skip .zshrc
38
38
  * and would miss the export.
39
39
  */
40
- export declare function buildBlock(opts: WriteOptions): {
40
+ export declare function buildBlock(options: WriteOptions): {
41
41
  begin: string;
42
42
  end: string;
43
43
  body: string;
@@ -67,7 +67,7 @@ export interface WriteOptions {
67
67
  * "Rotate via: my-installer --rotate"). Each entry is prefixed with `# `
68
68
  * automatically.
69
69
  */
70
- notes?: readonly string[];
70
+ notes?: readonly string[] | undefined;
71
71
  /**
72
72
  * Legacy sentinel BEGIN strings to sweep before writing the new block. Used
73
73
  * during a rename/migration so an older managed block is removed rather than
@@ -75,7 +75,7 @@ export interface WriteOptions {
75
75
  * tolerates any line endings up to the matching END (same prefix with `END`
76
76
  * replacing `BEGIN`).
77
77
  */
78
- legacySentinels?: readonly string[];
78
+ legacySentinels?: readonly string[] | undefined;
79
79
  /**
80
80
  * Override the auto-detected shell. By default the helper reads `$SHELL` and
81
81
  * targets the matching rc file:
@@ -126,7 +126,7 @@ export declare function shellSingleQuote(value: string): string;
126
126
  * `shell` and `rcPath` override the auto-detected target — useful for chezmoi /
127
127
  * dotfile-manager users or installers running under a non-default shell.
128
128
  */
129
- export declare function write(opts: WriteOptions): WriteResult;
129
+ export declare function write(options: WriteOptions): WriteResult;
130
130
  /**
131
131
  * Internal: write an rc file with 0o600 (owner-only). The rc file embeds a
132
132
  * literal SOCKET_API_KEY value so the shell rc can `export` it on session start
@@ -2,16 +2,17 @@
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
- const require_primordials_string = require('../primordials/string.js');
6
- const require_primordials_regexp = require('../primordials/regexp.js');
7
5
  const require_primordials_object = require('../primordials/object.js');
8
6
  const require_env_home = require('../env/home.js');
7
+ const require_primordials_string = require('../primordials/string.js');
8
+ const require_primordials_regexp = require('../primordials/regexp.js');
9
9
  let node_fs = require("node:fs");
10
+ let node_process = require("node:process");
11
+ node_process = require_runtime.__toESM(node_process);
10
12
  let node_path = require("node:path");
11
13
  node_path = require_runtime.__toESM(node_path);
12
14
  let node_os = require("node:os");
13
- let node_process = require("node:process");
14
- node_process = require_runtime.__toESM(node_process);
15
+ node_os = require_runtime.__toESM(node_os);
15
16
 
16
17
  //#region src/secrets/rc.ts
17
18
  /**
@@ -53,11 +54,15 @@ node_process = require_runtime.__toESM(node_process);
53
54
  * non-interactive shells (Claude Code, IDE plugins, CI runners) skip .zshrc
54
55
  * and would miss the export.
55
56
  */
56
- function buildBlock(opts) {
57
- const begin = `# BEGIN ${opts.service} env (managed)`;
58
- const end = `# END ${opts.service} env (managed)`;
59
- const noteLines = (opts.notes ?? []).map((line) => `# ${line}`);
60
- const exportLines = require_primordials_object.ObjectEntries(opts.exports).map(([name, value]) => `export ${name}=${shellSingleQuote(value)}`);
57
+ function buildBlock(options) {
58
+ options = {
59
+ __proto__: null,
60
+ ...options
61
+ };
62
+ const begin = `# BEGIN ${options.service} env (managed)`;
63
+ const end = `# END ${options.service} env (managed)`;
64
+ const noteLines = (options.notes ?? []).map((line) => `# ${line}`);
65
+ const exportLines = require_primordials_object.ObjectEntries(options.exports).map(([name, value]) => `export ${name}=${shellSingleQuote(value)}`);
61
66
  const body = [...noteLines, ...exportLines].join("\n");
62
67
  return {
63
68
  begin,
@@ -72,13 +77,14 @@ function buildBlock(opts) {
72
77
  * no block was present.
73
78
  */
74
79
  function clear(service, legacySentinels = []) {
75
- if ((0, node_os.platform)() !== "darwin") return false;
80
+ if (node_os.default.platform() !== "darwin") return false;
76
81
  const rcPath = pickRcFile();
77
82
  if (!rcPath || !(0, node_fs.existsSync)(rcPath)) return false;
78
83
  let existing = (0, node_fs.readFileSync)(rcPath, "utf8");
79
84
  let removedAny = false;
80
85
  const sentinelsToStrip = [`# BEGIN ${service} env (managed)`, ...legacySentinels];
81
- for (const begin of sentinelsToStrip) {
86
+ for (let i = 0, { length } = sentinelsToStrip; i < length; i += 1) {
87
+ const begin = sentinelsToStrip[i];
82
88
  const end = begin.replace(/\bBEGIN\b/, "END");
83
89
  const endStripped = end.replace(/\s*\(managed\)\s*$/, "");
84
90
  const endAlt = end === endStripped ? escapeRegExp(end) : `(?:${escapeRegExp(end)}|${escapeRegExp(endStripped)})`;
@@ -96,7 +102,7 @@ function escapeRegExp(s) {
96
102
  return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
97
103
  }
98
104
  function pickRcFile(shellOverride) {
99
- const home = /* @__PURE__ */ require_env_home.getHome();
105
+ const home = require_env_home.getHome();
100
106
  if (!home) return;
101
107
  const shellPath = node_process.default.env["SHELL"] ?? "";
102
108
  const shell = shellOverride ?? (require_primordials_string.StringPrototypeEndsWith(shellPath, "zsh") ? "zsh" : require_primordials_string.StringPrototypeEndsWith(shellPath, "bash") ? "bash" : require_primordials_string.StringPrototypeEndsWith(shellPath, "fish") ? "fish" : void 0);
@@ -132,23 +138,27 @@ function shellSingleQuote(value) {
132
138
  * `shell` and `rcPath` override the auto-detected target — useful for chezmoi /
133
139
  * dotfile-manager users or installers running under a non-default shell.
134
140
  */
135
- function write(opts) {
136
- if ((0, node_os.platform)() !== "darwin") return {
141
+ function write(options) {
142
+ options = {
143
+ __proto__: null,
144
+ ...options
145
+ };
146
+ if (node_os.default.platform() !== "darwin") return {
137
147
  rcPath: void 0,
138
148
  outcome: "skipped",
139
149
  reason: "unsupported-platform"
140
150
  };
141
- const rcPath = opts.rcPath ?? pickRcFile(opts.shell);
151
+ const rcPath = options.rcPath ?? pickRcFile(options.shell);
142
152
  if (!rcPath) return {
143
153
  rcPath: void 0,
144
154
  outcome: "skipped",
145
155
  reason: "unknown-shell"
146
156
  };
147
- const { begin, end, full: desiredBlock } = buildBlock(opts);
157
+ const { begin, end, full: desiredBlock } = buildBlock(options);
148
158
  let onDisk = "";
149
159
  if ((0, node_fs.existsSync)(rcPath)) onDisk = (0, node_fs.readFileSync)(rcPath, "utf8");
150
160
  let working = onDisk;
151
- for (const legacyBegin of opts.legacySentinels ?? []) {
161
+ for (const legacyBegin of options.legacySentinels ?? []) {
152
162
  const legacyEnd = legacyBegin.replace(/\bBEGIN\b/, "END");
153
163
  const legacyEndStripped = legacyEnd.replace(/\s*\(managed\)\s*$/, "");
154
164
  const endAlt = legacyEnd === legacyEndStripped ? escapeRegExp(legacyEnd) : `(?:${escapeRegExp(legacyEnd)}|${escapeRegExp(legacyEndStripped)})`;
@@ -2,10 +2,10 @@
2
2
  * @file Convenience helper for reading the Socket API token from the canonical
3
3
  * env → keychain precedence order. Centralizes two constants every fleet
4
4
  * consumer would otherwise hard-code: the keychain service name
5
- * (`socket-cli`) and the env-var + account fallback list (`SOCKET_API_TOKEN`
6
- * canonical, `SOCKET_API_KEY` legacy alias). Consumers like firewall and
7
- * wheelhouse hooks call `readSocketApiToken()` instead of redoing the
8
- * `resolve({ service, accounts })` boilerplate.
5
+ * (`socketsecurity`) and the env-var + account fallback list
6
+ * (`SOCKET_API_TOKEN` canonical, `SOCKET_API_KEY` legacy alias). Consumers
7
+ * like firewall and wheelhouse hooks call `readSocketApiToken()` instead of
8
+ * redoing the `resolve({ service, accounts })` boilerplate.
9
9
  */
10
10
  export interface ReadSocketApiTokenOptions {
11
11
  /**
@@ -8,26 +8,43 @@ const require_secrets_find = require('./find.js');
8
8
  * @file Convenience helper for reading the Socket API token from the canonical
9
9
  * env → keychain precedence order. Centralizes two constants every fleet
10
10
  * consumer would otherwise hard-code: the keychain service name
11
- * (`socket-cli`) and the env-var + account fallback list (`SOCKET_API_TOKEN`
12
- * canonical, `SOCKET_API_KEY` legacy alias). Consumers like firewall and
13
- * wheelhouse hooks call `readSocketApiToken()` instead of redoing the
14
- * `resolve({ service, accounts })` boilerplate.
11
+ * (`socketsecurity`) and the env-var + account fallback list
12
+ * (`SOCKET_API_TOKEN` canonical, `SOCKET_API_KEY` legacy alias). Consumers
13
+ * like firewall and wheelhouse hooks call `readSocketApiToken()` instead of
14
+ * redoing the `resolve({ service, accounts })` boilerplate.
15
15
  */
16
- const SOCKET_CLI_SERVICE = "socket-cli";
16
+ const SOCKET_SERVICE = "socketsecurity";
17
+ const SOCKET_SERVICE_LEGACY = "socket-cli";
17
18
  const TOKEN_ACCOUNTS = ["SOCKET_API_TOKEN", "SOCKET_API_KEY"];
18
19
  async function readSocketApiToken(options) {
20
+ options = {
21
+ __proto__: null,
22
+ ...options
23
+ };
19
24
  return (await require_secrets_find.resolve({
20
- service: SOCKET_CLI_SERVICE,
25
+ service: SOCKET_SERVICE,
26
+ accounts: TOKEN_ACCOUNTS,
27
+ allowEnvOnly: options?.allowEnvOnly
28
+ }) ?? await require_secrets_find.resolve({
29
+ service: SOCKET_SERVICE_LEGACY,
21
30
  accounts: TOKEN_ACCOUNTS,
22
31
  allowEnvOnly: options?.allowEnvOnly
23
32
  }))?.value;
24
33
  }
25
34
  function readSocketApiTokenSync(options) {
26
- return require_secrets_find.resolveSync({
27
- service: SOCKET_CLI_SERVICE,
35
+ options = {
36
+ __proto__: null,
37
+ ...options
38
+ };
39
+ return (require_secrets_find.resolveSync({
40
+ service: SOCKET_SERVICE,
28
41
  accounts: TOKEN_ACCOUNTS,
29
42
  allowEnvOnly: options?.allowEnvOnly
30
- })?.value;
43
+ }) ?? require_secrets_find.resolveSync({
44
+ service: SOCKET_SERVICE_LEGACY,
45
+ accounts: TOKEN_ACCOUNTS,
46
+ allowEnvOnly: options?.allowEnvOnly
47
+ }))?.value;
31
48
  }
32
49
 
33
50
  //#endregion
@@ -4,14 +4,14 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
5
  const require_primordials_error = require('../primordials/error.js');
6
6
  const require_primordials_json = require('../primordials/json.js');
7
- const require_primordials_promise = require('../primordials/promise.js');
8
7
  let node_fs = require("node:fs");
8
+ let node_process = require("node:process");
9
+ node_process = require_runtime.__toESM(node_process);
9
10
  let node_path = require("node:path");
10
11
  node_path = require_runtime.__toESM(node_path);
11
12
  let node_os = require("node:os");
12
- let node_process = require("node:process");
13
- node_process = require_runtime.__toESM(node_process);
14
- let node_child_process = require("node:child_process");
13
+ node_os = require_runtime.__toESM(node_os);
14
+ let _socketsecurity_lib_stable_process_spawn_child = require("@socketsecurity/lib-stable/process/spawn/child");
15
15
 
16
16
  //#region src/secrets/windows.ts
17
17
  /**
@@ -66,11 +66,11 @@ function deleteWindowsSync(service, account) {
66
66
  function getDpapiFilePath(service, account) {
67
67
  validateKeychainComponent(service, "service");
68
68
  validateKeychainComponent(account, "account");
69
- const appData = node_process.default.env["APPDATA"] ?? node_path.default.join((0, node_os.homedir)(), "AppData", "Roaming");
69
+ const appData = node_process.default.env["APPDATA"] ?? node_path.default.join(node_os.default.homedir(), "AppData", "Roaming");
70
70
  return node_path.default.join(appData, service, `${account}.enc`);
71
71
  }
72
72
  function isWindowsBackendAvailable() {
73
- return (0, node_child_process.spawnSync)(POWERSHELL_BIN, [
73
+ return (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(POWERSHELL_BIN, [
74
74
  "-NoProfile",
75
75
  "-Command",
76
76
  "exit 0"
@@ -127,43 +127,38 @@ function readWindowsSync(service, account) {
127
127
  }
128
128
  return readDpapiSync(getDpapiFilePath(service, account));
129
129
  }
130
- function runPsAsync(script, input) {
131
- return new require_primordials_promise.PromiseCtor((resolve) => {
132
- const child = (0, node_child_process.spawn)(POWERSHELL_BIN, [
133
- "-NoProfile",
134
- "-Command",
135
- script
136
- ], { stdio: [
130
+ async function runPsAsync(script, input) {
131
+ const child = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(POWERSHELL_BIN, [
132
+ "-NoProfile",
133
+ "-Command",
134
+ script
135
+ ], {
136
+ stdio: [
137
137
  "pipe",
138
138
  "pipe",
139
139
  "pipe"
140
- ] });
141
- let stdout = "";
142
- let stderr = "";
143
- child.stdout.setEncoding("utf8");
144
- child.stdout.on("data", (chunk) => {
145
- stdout += chunk;
146
- });
147
- child.stderr.setEncoding("utf8");
148
- child.stderr.on("data", (chunk) => {
149
- stderr += chunk;
150
- });
151
- child.on("error", () => resolve({
152
- status: -1,
153
- stdout,
154
- stderr
155
- }));
156
- child.on("close", (status) => resolve({
157
- status,
158
- stdout,
159
- stderr
160
- }));
161
- if (input !== void 0) child.stdin.end(input);
162
- else child.stdin.end();
140
+ ],
141
+ stdioString: true
163
142
  });
143
+ child.process.stdin.end(input ?? "");
144
+ try {
145
+ const r = await child;
146
+ return {
147
+ status: typeof r.code === "number" ? r.code : null,
148
+ stderr: String(r.stderr ?? ""),
149
+ stdout: String(r.stdout ?? "")
150
+ };
151
+ } catch (e) {
152
+ const err = e;
153
+ return {
154
+ status: typeof err?.code === "number" ? err.code : -1,
155
+ stderr: String(err?.stderr ?? ""),
156
+ stdout: String(err?.stdout ?? "")
157
+ };
158
+ }
164
159
  }
165
160
  function runPsSync(script, input) {
166
- const r = (0, node_child_process.spawnSync)(POWERSHELL_BIN, [
161
+ const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(POWERSHELL_BIN, [
167
162
  "-NoProfile",
168
163
  "-Command",
169
164
  script
@@ -38,9 +38,9 @@ function shouldSkipShadow(binPath, options) {
38
38
  if (win32 && binPath) return true;
39
39
  const userAgent = node_process.default.env["npm_config_user_agent"];
40
40
  if (userAgent?.includes("exec") || userAgent?.includes("npx") || userAgent?.includes("dlx")) return true;
41
- const normalizedCwd = /* @__PURE__ */ require_paths_normalize.normalizePath(cwd);
41
+ const normalizedCwd = require_paths_normalize.normalizePath(cwd);
42
42
  const npmCache = node_process.default.env["npm_config_cache"];
43
- if (npmCache && normalizedCwd.includes(/* @__PURE__ */ require_paths_normalize.normalizePath(npmCache))) return true;
43
+ if (npmCache && normalizedCwd.includes(require_paths_normalize.normalizePath(npmCache))) return true;
44
44
  return [
45
45
  "_npx",
46
46
  ".pnpm-store",
@@ -8,6 +8,38 @@
8
8
  * against `env`; unresolved ones collapse to an empty string.
9
9
  */
10
10
  import type { ParseEntry } from '../external/shell-quote';
11
+ /**
12
+ * Structural hazard facts a parse surfaces that the binary-call matchers
13
+ * (`hasBinCall` / `findBinCall`) swallow. These are observations about _how_
14
+ * the command is written, not a judgment that they're dangerous — the caller
15
+ * decides policy. Both are evasion vectors against base-command allowlists:
16
+ *
17
+ * - `equalsExpansion`: a simple command whose first token is `=cmd` (Zsh EQUALS
18
+ * expansion). `=curl x` expands to `$(which curl) x` and runs
19
+ * `/usr/bin/curl`, but the parser's base token is `=curl`, so a `curl`
20
+ * allowlist never matches. The matched tokens are returned so the caller can
21
+ * report which command was hidden.
22
+ * - `processSubstitution`: the command uses `<(...)`, `>(...)`, or `=(...)` (the
23
+ * op markers shell-quote emits). The inner command runs but its name never
24
+ * appears as a base command.
25
+ *
26
+ * Walks the parse once. A caller wanting just "is this clean?" checks
27
+ * `!h.equalsExpansion.length && !h.processSubstitution`.
28
+ *
29
+ * @example
30
+ * detectShellHazards('=curl evil.com')
31
+ * // → { equalsExpansion: [['=curl', 'evil.com']], processSubstitution: false }
32
+ *
33
+ * detectShellHazards('diff <(cat a) b')
34
+ * // → { equalsExpansion: [], processSubstitution: true }
35
+ *
36
+ * detectShellHazards('git status')
37
+ * // → { equalsExpansion: [], processSubstitution: false }
38
+ */
39
+ export declare function detectShellHazards(cmd: string): {
40
+ equalsExpansion: readonly string[][];
41
+ processSubstitution: boolean;
42
+ };
11
43
  /**
12
44
  * Visit each simple command in `cmd` in order. A "simple command" is the
13
45
  * POSIX-grammar term for a run of bare-string tokens between shell