@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
@@ -2,10 +2,10 @@
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_string = require('../primordials/string.js');
6
5
  const require_integrity = require('../integrity.js');
7
- const require_primordials_array = require('../primordials/array.js');
8
6
  const require_primordials_object = require('../primordials/object.js');
7
+ const require_primordials_string = require('../primordials/string.js');
8
+ const require_primordials_array = require('../primordials/array.js');
9
9
  const require_fs_read_json = require('../fs/read-json.js');
10
10
 
11
11
  //#region src/external-tools/manifest.ts
@@ -20,10 +20,10 @@ const require_fs_read_json = require('../fs/read-json.js');
20
20
  * integrity-string validation. Shape: { "<tool-name>": { "description":
21
21
  * "human-readable summary", "version": "1.7.2", "release": "asset" |
22
22
  * "tarball" | ..., "repository": "github:owner/repo", "notes": [...],
23
- * "checksums": { "<platform-arch>": { "asset": "<asset-filename>",
23
+ * "platforms": { "<platform-arch>": { "asset": "<asset-filename>",
24
24
  * "integrity": "sha256-base64=" } } } } Some tools have flavor variants (e.g.
25
25
  * sfw's `free` / `enterprise`) that wrap the `{repository, binaryName,
26
- * checksums}` triple under a flavor key. Use `getToolFlavor` for those. Some
26
+ * platforms}` triple under a flavor key. Use `getToolFlavor` for those. Some
27
27
  * entries (e.g. `rust`) describe a system tool with a different shape —
28
28
  * they're skipped by `getTool` and fully readable only via the raw
29
29
  * `readManifest` returning unknown.
@@ -52,14 +52,14 @@ function parseChecksum(raw, toolName, platformKey) {
52
52
  if (!isObject(raw)) throw new require_primordials_error.ErrorCtor(`external-tools.json: tool '${toolName}' checksum entry '${platformKey}' must be an object, got: ${typeof raw}`);
53
53
  const r = raw;
54
54
  if (typeof r.asset !== "string" || r.asset.length === 0) throw new require_primordials_error.ErrorCtor(`external-tools.json: tool '${toolName}' platform '${platformKey}' is missing a non-empty 'asset' string`);
55
- if (typeof r.integrity !== "string" || !require_integrity.isIntegrityString(r.integrity)) throw new require_primordials_error.ErrorCtor(`external-tools.json: tool '${toolName}' platform '${platformKey}' has an invalid 'integrity' (expected SRI sha512 or sha256 form): ${r.integrity}`);
55
+ if (typeof r.integrity !== "string" || !require_integrity.isIntegrity(r.integrity)) throw new require_primordials_error.ErrorCtor(`external-tools.json: tool '${toolName}' platform '${platformKey}' has an invalid 'integrity' (expected SRI sha512 or sha256 form): ${r.integrity}`);
56
56
  return {
57
57
  asset: r.asset,
58
58
  integrity: r.integrity
59
59
  };
60
60
  }
61
- function parseChecksums(raw, toolName) {
62
- if (!isObject(raw)) throw new require_primordials_error.ErrorCtor(`external-tools.json: tool '${toolName}' is missing a 'checksums' object`);
61
+ function parsePlatforms(raw, toolName) {
62
+ if (!isObject(raw)) throw new require_primordials_error.ErrorCtor(`external-tools.json: tool '${toolName}' is missing a 'platforms' object`);
63
63
  const out = {};
64
64
  for (const platformKey of require_primordials_object.ObjectKeys(raw)) out[platformKey] = parseChecksum(raw[platformKey], toolName, platformKey);
65
65
  return out;
@@ -70,7 +70,7 @@ function parseToolEntry(raw, toolName) {
70
70
  raw
71
71
  };
72
72
  const r = raw;
73
- if (isObject(r.checksums)) {
73
+ if (isObject(r.platforms)) {
74
74
  if (typeof r.description !== "string" || typeof r.version !== "string" || typeof r.release !== "string" || typeof r.repository !== "string") return {
75
75
  kind: "other",
76
76
  raw
@@ -84,7 +84,7 @@ function parseToolEntry(raw, toolName) {
84
84
  repository: r.repository,
85
85
  binaryName: typeof r.binaryName === "string" ? r.binaryName : void 0,
86
86
  notes: require_primordials_array.ArrayIsArray(r.notes) ? r.notes : void 0,
87
- checksums: parseChecksums(r.checksums, toolName)
87
+ platforms: parsePlatforms(r.platforms, toolName)
88
88
  }
89
89
  };
90
90
  }
@@ -105,7 +105,7 @@ function parseToolEntry(raw, toolName) {
105
105
  * callers can handle them out-of-band without blocking the manifest read.
106
106
  */
107
107
  async function readExternalToolsManifest(filepath) {
108
- const raw = await /* @__PURE__ */ require_fs_read_json.readJson(filepath);
108
+ const raw = await require_fs_read_json.readJson(filepath);
109
109
  if (!isObject(raw)) throw new require_primordials_error.ErrorCtor(`external-tools.json: expected top-level object, got: ${typeof raw}`);
110
110
  const tools = {};
111
111
  for (const toolName of require_primordials_object.ObjectKeys(raw)) {
@@ -120,12 +120,12 @@ function tryParseFlavored(raw, toolName) {
120
120
  const value = raw[key];
121
121
  if (!isObject(value)) continue;
122
122
  const rf = value;
123
- if (!isObject(rf.checksums)) continue;
123
+ if (!isObject(rf.platforms)) continue;
124
124
  if (typeof rf.repository !== "string") continue;
125
125
  flavors[key] = {
126
126
  repository: rf.repository,
127
127
  binaryName: typeof rf.binaryName === "string" ? rf.binaryName : void 0,
128
- checksums: parseChecksums(rf.checksums, `${toolName}.${key}`)
128
+ platforms: parsePlatforms(rf.platforms, `${toolName}.${key}`)
129
129
  };
130
130
  }
131
131
  if (require_primordials_object.ObjectKeys(flavors).length === 0) return;
@@ -143,7 +143,7 @@ exports.getTool = getTool;
143
143
  exports.getToolFlavor = getToolFlavor;
144
144
  exports.isObject = isObject;
145
145
  exports.parseChecksum = parseChecksum;
146
- exports.parseChecksums = parseChecksums;
146
+ exports.parsePlatforms = parsePlatforms;
147
147
  exports.parseToolEntry = parseToolEntry;
148
148
  exports.readExternalToolsManifest = readExternalToolsManifest;
149
149
  exports.tryParseFlavored = tryParseFlavored;
@@ -41,4 +41,4 @@ export interface OpengrepDownloadOptions {
41
41
  *
42
42
  * Reference: https://github.com/opengrep/opengrep/releases.
43
43
  */
44
- export declare function getOpengrepDownloadUrl(opts: OpengrepDownloadOptions): string | undefined;
44
+ export declare function getOpengrepDownloadUrl(options: OpengrepDownloadOptions): string | undefined;
@@ -53,8 +53,11 @@ function getOpengrepAssetEntry(platformArch) {
53
53
  *
54
54
  * Reference: https://github.com/opengrep/opengrep/releases.
55
55
  */
56
- function getOpengrepDownloadUrl(opts) {
57
- const { platformArch, version } = opts;
56
+ function getOpengrepDownloadUrl(options) {
57
+ const { platformArch, version } = {
58
+ __proto__: null,
59
+ ...options
60
+ };
58
61
  const entry = OPENGREP_ASSET_MAP[platformArch];
59
62
  if (!entry) return;
60
63
  return `https://github.com/opengrep/opengrep/releases/download/v${version}/` + entry.asset;
@@ -14,4 +14,4 @@ export interface OpengrepFromDownloadOptions {
14
14
  cacheDir?: string | undefined;
15
15
  downloader?: BinaryDownloader | undefined;
16
16
  }
17
- export declare function opengrepFromDownload(opts: OpengrepFromDownloadOptions): Promise<ResolvedOpengrep | undefined>;
17
+ export declare function opengrepFromDownload(options: OpengrepFromDownloadOptions): Promise<ResolvedOpengrep | undefined>;
@@ -17,8 +17,11 @@ node_path = require_runtime.__toESM(node_path);
17
17
  * bare binaries (no extraction); Windows ships a zip. The asset-map's
18
18
  * `isArchive` flag drives extraction vs. copy.
19
19
  */
20
- async function opengrepFromDownload(opts) {
21
- const { cacheDir, downloader, integrity, platformArch, version } = opts;
20
+ async function opengrepFromDownload(options) {
21
+ const { cacheDir, downloader, integrity, platformArch, version } = {
22
+ __proto__: null,
23
+ ...options
24
+ };
22
25
  const url = require_external_tools_opengrep_asset_names.getOpengrepDownloadUrl({
23
26
  version,
24
27
  platformArch
@@ -11,7 +11,7 @@ const require_smol_vfs = require('../../smol/vfs.js');
11
11
  */
12
12
  const OPENGREP_VFS_KEY = "opengrep";
13
13
  async function opengrepFromVfs() {
14
- const vfs = /* @__PURE__ */ require_smol_vfs.getSmolVfs();
14
+ const vfs = require_smol_vfs.getSmolVfs();
15
15
  if (!vfs) return;
16
16
  /* c8 ignore start - smol Node binary only. */
17
17
  if (!vfs.has("opengrep")) return;
@@ -20,7 +20,7 @@ export interface ResolveOpengrepOptions {
20
20
  downloader?: BinaryDownloader | undefined;
21
21
  } | undefined;
22
22
  }
23
- export declare function cacheKey(opts: ResolveOpengrepOptions | undefined): string;
24
- export declare function doResolveOpengrep(opts?: ResolveOpengrepOptions | undefined): Promise<ResolvedOpengrep | undefined>;
23
+ export declare function cacheKey(options: ResolveOpengrepOptions | undefined): string;
24
+ export declare function doResolveOpengrep(options?: ResolveOpengrepOptions | undefined): Promise<ResolvedOpengrep | undefined>;
25
25
  export declare function resetOpengrepResolution(): void;
26
- export declare function resolveOpengrep(opts?: ResolveOpengrepOptions | undefined): Promise<ResolvedOpengrep | undefined>;
26
+ export declare function resolveOpengrep(options?: ResolveOpengrepOptions | undefined): Promise<ResolvedOpengrep | undefined>;
@@ -18,30 +18,38 @@ const require_external_tools_opengrep_from_vfs = require('./from-vfs.js');
18
18
  * per option-shape.
19
19
  */
20
20
  const resolutionCache = new require_primordials_map_set.MapCtor();
21
- function cacheKey(opts) {
22
- if (!opts?.downloadIfMissing) return "local-only";
23
- const { cacheDir, integrity, platformArch, version } = opts.downloadIfMissing;
21
+ function cacheKey(options) {
22
+ options = {
23
+ __proto__: null,
24
+ ...options
25
+ };
26
+ if (!options?.downloadIfMissing) return "local-only";
27
+ const { cacheDir, integrity, platformArch, version } = options.downloadIfMissing;
24
28
  return `dl:${version}:${platformArch}:${typeof integrity === "string" ? integrity : integrity ? `${integrity.type}:${integrity.value}` : ""}:${cacheDir ?? ""}`;
25
29
  }
26
- async function doResolveOpengrep(opts) {
30
+ async function doResolveOpengrep(options) {
31
+ options = {
32
+ __proto__: null,
33
+ ...options
34
+ };
27
35
  const fromVfs = await require_external_tools_opengrep_from_vfs.opengrepFromVfs();
28
36
  /* c8 ignore start - smol Node binary only. */
29
37
  if (fromVfs) return fromVfs;
30
38
  /* c8 ignore stop */
31
39
  const fromPath = await require_external_tools_opengrep_from_path.opengrepFromPath();
32
40
  if (fromPath) return fromPath;
33
- if (opts?.downloadIfMissing) return require_external_tools_opengrep_from_download.opengrepFromDownload(opts.downloadIfMissing);
41
+ if (options?.downloadIfMissing) return require_external_tools_opengrep_from_download.opengrepFromDownload(options.downloadIfMissing);
34
42
  }
35
43
  /* c8 ignore start - test-only escape hatch. */
36
44
  function resetOpengrepResolution() {
37
45
  resolutionCache.clear();
38
46
  }
39
47
  /* c8 ignore stop */
40
- function resolveOpengrep(opts) {
41
- const key = cacheKey(opts);
48
+ function resolveOpengrep(options) {
49
+ const key = cacheKey(options);
42
50
  let cached = resolutionCache.get(key);
43
51
  if (!cached) {
44
- cached = doResolveOpengrep(opts);
52
+ cached = doResolveOpengrep(options);
45
53
  resolutionCache.set(key, cached);
46
54
  }
47
55
  return cached;
@@ -20,5 +20,5 @@ export interface ResolvedOpengrep {
20
20
  /**
21
21
  * See {@link ResolvedToolIntegrity}.
22
22
  */
23
- readonly integrity?: ResolvedToolIntegrity;
23
+ readonly integrity?: ResolvedToolIntegrity | undefined;
24
24
  }
@@ -0,0 +1,76 @@
1
+ /**
2
+ * @file Python-build-standalone release asset mapping. Astral publishes
3
+ * per-platform CPython archives under
4
+ * https://github.com/astral-sh/python-build-standalone/releases/download/<tag>/.
5
+ * Asset name shape: `cpython-<version>+<tag>-<triple>-install_only.tar.gz`.
6
+ * The `install_only` flavor is a relocatable runtime (no build artifacts),
7
+ * extracted one directory deep (`python/bin/python3`).
8
+ */
9
+ /**
10
+ * Python-build-standalone default pin — the fleet-canonical CPython build,
11
+ * matching socket-cli's `bundle-tools.json`. Consumers that don't pass their
12
+ * own pin resolve against this. Bump it like any dependency (soak-aware), in
13
+ * lockstep with socket-cli (drift-watch). The `checksums` map is keyed by asset
14
+ * filename so the download tier verifies the exact tarball per platform.
15
+ */
16
+ export declare const DEFAULT_PYTHON_PIN: Readonly<{
17
+ __proto__: null;
18
+ version: "3.11.14";
19
+ tag: "20260203";
20
+ checksums: Readonly<{
21
+ __proto__: null;
22
+ 'cpython-3.11.14+20260203-aarch64-apple-darwin-install_only.tar.gz': "63e3352fefd3b6494f73f46f51c6581c57a7e0d98775e6e00229d14a67ec3ce9";
23
+ 'cpython-3.11.14+20260203-aarch64-pc-windows-msvc-install_only.tar.gz': "cb7828c131a005da367f7dba3a561bed91619452de870e531ee03344b2ac346f";
24
+ 'cpython-3.11.14+20260203-aarch64-unknown-linux-gnu-install_only.tar.gz': "7341a5a0acd65f2c7c7a228d8bafa6561d220ffed26293d6a02c15ae2ee86af5";
25
+ 'cpython-3.11.14+20260203-aarch64-unknown-linux-musl-install_only.tar.gz': "f0e5988c108187b12eb4d53cbac33a499a8e38e1693104432e1faabbab14c664";
26
+ 'cpython-3.11.14+20260203-x86_64-apple-darwin-install_only.tar.gz': "f3b63051a9b1ffb4f663d928ebaec4311435cb67f3bdfa5634953df93397f25e";
27
+ 'cpython-3.11.14+20260203-x86_64-pc-windows-msvc-install_only.tar.gz': "d220beff465bdc97bf5874be8ffbf07278e5bdf9a064cab932b5d93b542e3e86";
28
+ 'cpython-3.11.14+20260203-x86_64-unknown-linux-gnu-install_only.tar.gz': "67abde21b6e074b58c0f738f0c4802b23827a7d49707dcaf3ed4dadf572f3f37";
29
+ 'cpython-3.11.14+20260203-x86_64-unknown-linux-musl-install_only.tar.gz': "290de5199a9647d4de4adcf13a79a7c59f060357853bf41fd6d1a69b4b5fd00c";
30
+ }>;
31
+ }>;
32
+ /**
33
+ * Resolve the current host to a python-build-standalone `platform-arch` key (a
34
+ * `PLATFORM_TRIPLES` key, e.g. `darwin-arm64`, `linux-x64-musl`, `win-x64`).
35
+ * Owns the python-build-standalone vocabulary end to end: Node's `win32`
36
+ * becomes `win`, and an Alpine host gets a `-musl` suffix so it resolves to the
37
+ * real musl triple (upstream ships both gnu and musl Linux builds). Returns
38
+ * `undefined` when the host platform/arch has no upstream prebuilt.
39
+ *
40
+ * Separate from `getJreArch` (jre/Adoptium vocabulary) and from the shared
41
+ * `getPlatformArch` — neither matches python-build-standalone's key set.
42
+ */
43
+ export declare function getPythonArch(): string | undefined;
44
+ export interface PythonAssetOptions {
45
+ /**
46
+ * CPython version, e.g. `3.11.14`.
47
+ */
48
+ readonly version: string;
49
+ /**
50
+ * Python-build-standalone release tag, e.g. `20260203`.
51
+ */
52
+ readonly tag: string;
53
+ /**
54
+ * Target `platform-arch`, e.g. `darwin-arm64`. Omit to auto-detect the
55
+ * current host via {@link getPythonArch}; pass an explicit value to resolve
56
+ * the asset for a different target (e.g. cross-platform packaging).
57
+ */
58
+ readonly arch?: string | undefined;
59
+ }
60
+ export interface PythonAsset {
61
+ /**
62
+ * Full asset filename:
63
+ * `cpython-<version>+<tag>-<triple>-install_only.tar.gz`.
64
+ */
65
+ readonly assetName: string;
66
+ /**
67
+ * Absolute download URL for the asset (with `+` percent-encoded as `%2B`).
68
+ */
69
+ readonly url: string;
70
+ }
71
+ /**
72
+ * Resolve the python-build-standalone download for a version + tag + platform.
73
+ * Returns the asset filename and URL, or `undefined` when the platform-arch has
74
+ * no upstream prebuilt.
75
+ */
76
+ export declare function pythonAsset(options: PythonAssetOptions): PythonAsset | undefined;
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_runtime = require('../../_virtual/_rolldown/runtime.js');
5
+ const require_constants_platform = require('../../constants/platform.js');
6
+ const require_primordials_object = require('../../primordials/object.js');
7
+ let node_process = require("node:process");
8
+ node_process = require_runtime.__toESM(node_process);
9
+
10
+ //#region src/external-tools/python/asset-names.ts
11
+ /**
12
+ * @file Python-build-standalone release asset mapping. Astral publishes
13
+ * per-platform CPython archives under
14
+ * https://github.com/astral-sh/python-build-standalone/releases/download/<tag>/.
15
+ * Asset name shape: `cpython-<version>+<tag>-<triple>-install_only.tar.gz`.
16
+ * The `install_only` flavor is a relocatable runtime (no build artifacts),
17
+ * extracted one directory deep (`python/bin/python3`).
18
+ */
19
+ const PLATFORM_TRIPLES = require_primordials_object.ObjectFreeze({
20
+ __proto__: null,
21
+ "darwin-arm64": "aarch64-apple-darwin",
22
+ "darwin-x64": "x86_64-apple-darwin",
23
+ "linux-arm64": "aarch64-unknown-linux-gnu",
24
+ "linux-arm64-musl": "aarch64-unknown-linux-musl",
25
+ "linux-x64": "x86_64-unknown-linux-gnu",
26
+ "linux-x64-musl": "x86_64-unknown-linux-musl",
27
+ "win-arm64": "aarch64-pc-windows-msvc",
28
+ "win-x64": "x86_64-pc-windows-msvc"
29
+ });
30
+ const NODE_PLATFORM_TO_PY = require_primordials_object.ObjectFreeze({
31
+ __proto__: null,
32
+ darwin: "darwin",
33
+ linux: "linux",
34
+ win32: "win"
35
+ });
36
+ const NODE_ARCH_TO_PY = require_primordials_object.ObjectFreeze({
37
+ __proto__: null,
38
+ arm64: "arm64",
39
+ x64: "x64"
40
+ });
41
+ const RELEASE_BASE = "https://github.com/astral-sh/python-build-standalone/releases/download";
42
+ /**
43
+ * Python-build-standalone default pin — the fleet-canonical CPython build,
44
+ * matching socket-cli's `bundle-tools.json`. Consumers that don't pass their
45
+ * own pin resolve against this. Bump it like any dependency (soak-aware), in
46
+ * lockstep with socket-cli (drift-watch). The `checksums` map is keyed by asset
47
+ * filename so the download tier verifies the exact tarball per platform.
48
+ */
49
+ const DEFAULT_PYTHON_PIN = require_primordials_object.ObjectFreeze({
50
+ __proto__: null,
51
+ version: "3.11.14",
52
+ tag: "20260203",
53
+ checksums: require_primordials_object.ObjectFreeze({
54
+ __proto__: null,
55
+ "cpython-3.11.14+20260203-aarch64-apple-darwin-install_only.tar.gz": "63e3352fefd3b6494f73f46f51c6581c57a7e0d98775e6e00229d14a67ec3ce9",
56
+ "cpython-3.11.14+20260203-aarch64-pc-windows-msvc-install_only.tar.gz": "cb7828c131a005da367f7dba3a561bed91619452de870e531ee03344b2ac346f",
57
+ "cpython-3.11.14+20260203-aarch64-unknown-linux-gnu-install_only.tar.gz": "7341a5a0acd65f2c7c7a228d8bafa6561d220ffed26293d6a02c15ae2ee86af5",
58
+ "cpython-3.11.14+20260203-aarch64-unknown-linux-musl-install_only.tar.gz": "f0e5988c108187b12eb4d53cbac33a499a8e38e1693104432e1faabbab14c664",
59
+ "cpython-3.11.14+20260203-x86_64-apple-darwin-install_only.tar.gz": "f3b63051a9b1ffb4f663d928ebaec4311435cb67f3bdfa5634953df93397f25e",
60
+ "cpython-3.11.14+20260203-x86_64-pc-windows-msvc-install_only.tar.gz": "d220beff465bdc97bf5874be8ffbf07278e5bdf9a064cab932b5d93b542e3e86",
61
+ "cpython-3.11.14+20260203-x86_64-unknown-linux-gnu-install_only.tar.gz": "67abde21b6e074b58c0f738f0c4802b23827a7d49707dcaf3ed4dadf572f3f37",
62
+ "cpython-3.11.14+20260203-x86_64-unknown-linux-musl-install_only.tar.gz": "290de5199a9647d4de4adcf13a79a7c59f060357853bf41fd6d1a69b4b5fd00c"
63
+ })
64
+ });
65
+ /**
66
+ * Resolve the current host to a python-build-standalone `platform-arch` key (a
67
+ * `PLATFORM_TRIPLES` key, e.g. `darwin-arm64`, `linux-x64-musl`, `win-x64`).
68
+ * Owns the python-build-standalone vocabulary end to end: Node's `win32`
69
+ * becomes `win`, and an Alpine host gets a `-musl` suffix so it resolves to the
70
+ * real musl triple (upstream ships both gnu and musl Linux builds). Returns
71
+ * `undefined` when the host platform/arch has no upstream prebuilt.
72
+ *
73
+ * Separate from `getJreArch` (jre/Adoptium vocabulary) and from the shared
74
+ * `getPlatformArch` — neither matches python-build-standalone's key set.
75
+ */
76
+ function getPythonArch() {
77
+ /* c8 ignore start - depends on process.platform/arch + libc probe. */
78
+ const platform = NODE_PLATFORM_TO_PY[node_process.default.platform];
79
+ const arch = NODE_ARCH_TO_PY[node_process.default.arch];
80
+ if (!platform || !arch) return;
81
+ const key = `${platform}-${arch}${platform === "linux" && require_constants_platform.getLibc() === "musl" ? "-musl" : ""}`;
82
+ return PLATFORM_TRIPLES[key] ? key : void 0;
83
+ /* c8 ignore stop */
84
+ }
85
+ /**
86
+ * Resolve the python-build-standalone download for a version + tag + platform.
87
+ * Returns the asset filename and URL, or `undefined` when the platform-arch has
88
+ * no upstream prebuilt.
89
+ */
90
+ function pythonAsset(options) {
91
+ options = {
92
+ __proto__: null,
93
+ ...options
94
+ };
95
+ const { tag, version } = {
96
+ __proto__: null,
97
+ ...options
98
+ };
99
+ const arch = options.arch ?? getPythonArch();
100
+ const triple = arch ? PLATFORM_TRIPLES[arch] : void 0;
101
+ if (!triple) return;
102
+ return {
103
+ assetName: `cpython-${version}+${tag}-${triple}-install_only.tar.gz`,
104
+ url: `${RELEASE_BASE}/${tag}/cpython-${`${version}%2B${tag}`}-${triple}-install_only.tar.gz`
105
+ };
106
+ }
107
+
108
+ //#endregion
109
+ exports.DEFAULT_PYTHON_PIN = DEFAULT_PYTHON_PIN;
110
+ exports.getPythonArch = getPythonArch;
111
+ exports.pythonAsset = pythonAsset;
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @file One-call dlx convenience wrappers for python: resolve (or download) a
3
+ * CPython into the known dlx location, then run a pip primitive against it —
4
+ * so callers don't thread `pythonBin` by hand. Mirrors how `dlx/package.ts`'s
5
+ * `dlxPackage` wraps `downloadNpmPackage`. The dlx Python path is
6
+ * deterministic given the pin (`pythonCacheDir(version, tag, arch)` →
7
+ * `~/.socket/_dlx/python/...`), so the wrapper resolves to that known
8
+ * location and hands the interpreter path to the pip fn itself:
9
+ *
10
+ * - `dlxPipInstall({ python, spec })` → `resolvePython` + `downloadPipPackage`
11
+ * - `dlxPipPin({ python, spec })` → `resolvePython` + `resolvePipPackagePin`
12
+ * The lower-level primitives (`downloadPipPackage`, `resolvePipPackagePin`)
13
+ * keep `pythonBin` required — they're the interpreter-agnostic layer. Use
14
+ * them directly when you already hold an interpreter path; use these
15
+ * wrappers when you have a pin and want one call.
16
+ */
17
+ import type { DownloadPipPackageResult } from './pip-install';
18
+ import type { PipPackagePin } from './pin';
19
+ import type { PythonBuildPin } from './types';
20
+ export interface DlxPipOptions {
21
+ /**
22
+ * Python-build-standalone pin (version + tag + optional integrity). The dlx
23
+ * interpreter location is derived from this — that's why no `pythonBin` is
24
+ * needed. Omit `arch` to auto-detect the host.
25
+ */
26
+ readonly python: PythonBuildPin & {
27
+ readonly arch?: string | undefined;
28
+ };
29
+ /**
30
+ * Prefer the downloaded dlx CPython over any PATH interpreter. Default false:
31
+ * a PATH `python3` wins when present, the dlx build is the fallback. Pass
32
+ * `true` for an exact, reproducible interpreter regardless of host Python.
33
+ */
34
+ readonly preferDownload?: boolean | undefined;
35
+ }
36
+ export interface DlxPipInstallOptions extends DlxPipOptions {
37
+ /**
38
+ * Optional sha256 hash of the top-level artifact, forwarded to
39
+ * `downloadPipPackage` (pip `--require-hashes`).
40
+ */
41
+ readonly hash?: string | undefined;
42
+ /**
43
+ * Pip install spec: `<pkg>==<version>` or `git+https://<url>@<sha>`.
44
+ */
45
+ readonly spec: string;
46
+ }
47
+ export interface DlxPipPinOptions extends DlxPipOptions {
48
+ /**
49
+ * Pip spec to pin: `<pkg>==<version>` or `git+https://<url>@<sha>`.
50
+ */
51
+ readonly spec: string;
52
+ }
53
+ /**
54
+ * Thrown when the python pin can't be resolved to an interpreter (no PATH
55
+ * Python and the download tier missed — e.g. unsupported host arch).
56
+ */
57
+ export declare class DlxPythonUnavailableError extends Error {
58
+ constructor(message: string, options?: {
59
+ cause?: unknown | undefined;
60
+ } | undefined);
61
+ }
62
+ /**
63
+ * Resolve (or download) the dlx CPython for `python`, then pip-install `spec`
64
+ * into a content-addressed dlx dir. One-call form of `resolvePython` +
65
+ * `downloadPipPackage`. The returned result includes the interpreter path used,
66
+ * so callers can run the tool: `spawn(pythonBin, ['-m', '<module>'], { env: {
67
+ * PYTHONPATH: packageDir } })`.
68
+ */
69
+ export declare function dlxPipInstall(options: DlxPipInstallOptions): Promise<DownloadPipPackageResult & {
70
+ pythonBin: string;
71
+ }>;
72
+ /**
73
+ * Resolve (or download) the dlx CPython for `python`, then generate a
74
+ * hash-pinned closure for `spec`. One-call form of `resolvePython` +
75
+ * `resolvePipPackagePin`.
76
+ */
77
+ export declare function dlxPipPin(options: DlxPipPinOptions): Promise<PipPackagePin & {
78
+ pythonBin: string;
79
+ }>;
80
+ export declare function resolveOrThrow(options: DlxPipOptions): Promise<string>;
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_external_tools_python_pip_install = require('./pip-install.js');
5
+ const require_external_tools_python_pin = require('./pin.js');
6
+ const require_external_tools_python_resolve = require('./resolve.js');
7
+
8
+ //#region src/external-tools/python/dlx.ts
9
+ /**
10
+ * @file One-call dlx convenience wrappers for python: resolve (or download) a
11
+ * CPython into the known dlx location, then run a pip primitive against it —
12
+ * so callers don't thread `pythonBin` by hand. Mirrors how `dlx/package.ts`'s
13
+ * `dlxPackage` wraps `downloadNpmPackage`. The dlx Python path is
14
+ * deterministic given the pin (`pythonCacheDir(version, tag, arch)` →
15
+ * `~/.socket/_dlx/python/...`), so the wrapper resolves to that known
16
+ * location and hands the interpreter path to the pip fn itself:
17
+ *
18
+ * - `dlxPipInstall({ python, spec })` → `resolvePython` + `downloadPipPackage`
19
+ * - `dlxPipPin({ python, spec })` → `resolvePython` + `resolvePipPackagePin`
20
+ * The lower-level primitives (`downloadPipPackage`, `resolvePipPackagePin`)
21
+ * keep `pythonBin` required — they're the interpreter-agnostic layer. Use
22
+ * them directly when you already hold an interpreter path; use these
23
+ * wrappers when you have a pin and want one call.
24
+ */
25
+ /**
26
+ * Thrown when the python pin can't be resolved to an interpreter (no PATH
27
+ * Python and the download tier missed — e.g. unsupported host arch).
28
+ */
29
+ var DlxPythonUnavailableError = class extends Error {
30
+ constructor(message, options) {
31
+ super(message, options);
32
+ this.name = "DlxPythonUnavailableError";
33
+ }
34
+ };
35
+ /**
36
+ * Resolve (or download) the dlx CPython for `python`, then pip-install `spec`
37
+ * into a content-addressed dlx dir. One-call form of `resolvePython` +
38
+ * `downloadPipPackage`. The returned result includes the interpreter path used,
39
+ * so callers can run the tool: `spawn(pythonBin, ['-m', '<module>'], { env: {
40
+ * PYTHONPATH: packageDir } })`.
41
+ */
42
+ async function dlxPipInstall(options) {
43
+ options = {
44
+ __proto__: null,
45
+ ...options
46
+ };
47
+ const pythonBin = await resolveOrThrow(options);
48
+ return {
49
+ ...await require_external_tools_python_pip_install.downloadPipPackage({
50
+ hash: options.hash,
51
+ pythonBin,
52
+ spec: options.spec
53
+ }),
54
+ pythonBin
55
+ };
56
+ }
57
+ /**
58
+ * Resolve (or download) the dlx CPython for `python`, then generate a
59
+ * hash-pinned closure for `spec`. One-call form of `resolvePython` +
60
+ * `resolvePipPackagePin`.
61
+ */
62
+ async function dlxPipPin(options) {
63
+ options = {
64
+ __proto__: null,
65
+ ...options
66
+ };
67
+ const pythonBin = await resolveOrThrow(options);
68
+ return {
69
+ ...await require_external_tools_python_pin.resolvePipPackagePin({
70
+ pythonBin,
71
+ spec: options.spec
72
+ }),
73
+ pythonBin
74
+ };
75
+ }
76
+ async function resolveOrThrow(options) {
77
+ const { preferDownload, python } = {
78
+ __proto__: null,
79
+ ...options
80
+ };
81
+ const resolved = await require_external_tools_python_resolve.resolvePython({
82
+ preferDownload,
83
+ downloadIfMissing: {
84
+ arch: python.arch,
85
+ integrity: python.integrity,
86
+ tag: python.tag,
87
+ version: python.version
88
+ }
89
+ });
90
+ if (!resolved) throw new DlxPythonUnavailableError(`dlx python: could not resolve a CPython interpreter for ${python.version}+${python.tag} — no host python3 and the python-build-standalone download tier missed (unsupported host arch?)`);
91
+ return resolved.path;
92
+ }
93
+
94
+ //#endregion
95
+ exports.DlxPythonUnavailableError = DlxPythonUnavailableError;
96
+ exports.dlxPipInstall = dlxPipInstall;
97
+ exports.dlxPipPin = dlxPipPin;
98
+ exports.resolveOrThrow = resolveOrThrow;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @file `pythonFromDownload()` — fetches a python-build-standalone CPython into
3
+ * the DLX cache and returns a `ResolvedPython` pointing at the interpreter.
4
+ * The `install_only` tarball extracts to a `python/` subdirectory, so the
5
+ * interpreter lands at `<extractedDir>/python/bin/python3` (or
6
+ * `python/python.exe` on Windows) — no strip.
7
+ */
8
+ import type { BinaryDownloader } from '../from-download';
9
+ import type { HashSpec } from '../../integrity';
10
+ import type { ResolvedPython } from './types';
11
+ export interface PythonFromDownloadOptions {
12
+ /**
13
+ * CPython version, e.g. `3.11.14`.
14
+ */
15
+ version: string;
16
+ /**
17
+ * Python-build-standalone release tag, e.g. `20260203`.
18
+ */
19
+ tag: string;
20
+ /**
21
+ * Target `platform-arch`, e.g. `darwin-arm64`. Omit to auto-detect the
22
+ * current host via {@link getPythonArch}.
23
+ */
24
+ arch?: string | undefined;
25
+ /**
26
+ * Optional pinned integrity (hex SHA-256 or SRI) for the tarball.
27
+ */
28
+ integrity?: HashSpec | undefined;
29
+ /**
30
+ * Override the extraction directory. Defaults to
31
+ * `~/.socket/_dlx/python/<version>-<tag>-<arch>`.
32
+ */
33
+ cacheDir?: string | undefined;
34
+ /**
35
+ * Inject a custom downloader (tests / alternate cache). Defaults to dlx.
36
+ */
37
+ downloader?: BinaryDownloader | undefined;
38
+ }
39
+ /**
40
+ * Return the absolute path to the interpreter inside an extracted
41
+ * python-build-standalone tree. The layout follows the TARGET arch, not the
42
+ * host: a Windows target nests the interpreter at `python/python.exe`, every
43
+ * other target at `python/bin/python3`. Keying off `process.platform` would be
44
+ * wrong when cross-resolving (e.g. a Windows host downloading a linux-x64
45
+ * build). `arch` is a platform-arch key like `win-x64` / `linux-x64`; omit it
46
+ * to fall back to the host platform.
47
+ */
48
+ export declare function pythonBinPath(extractedDir: string, arch?: string | undefined): string;
49
+ /**
50
+ * Default DLX cache directory for a python build pin.
51
+ */
52
+ export declare function pythonCacheDir(version: string, tag: string, arch: string): string;
53
+ export declare function pythonFromDownload(options: PythonFromDownloadOptions): Promise<ResolvedPython | undefined>;