@socketsecurity/lib 6.0.5 → 6.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (534) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/ai/discover.d.mts +2 -2
  3. package/dist/ai/discover.js +6 -4
  4. package/dist/ai/spawn.js +10 -6
  5. package/dist/ai/types.d.mts +18 -6
  6. package/dist/ai/worktree.d.mts +6 -6
  7. package/dist/ai/worktree.js +12 -7
  8. package/dist/ansi/strip.d.ts +1 -1
  9. package/dist/ansi/strip.js +0 -2
  10. package/dist/archives/_internal.js +7 -9
  11. package/dist/archives/extract.js +1 -1
  12. package/dist/archives/tar.js +6 -6
  13. package/dist/archives/zip.js +4 -6
  14. package/dist/argv/flag-predicates.d.ts +12 -12
  15. package/dist/argv/flag-predicates.js +17 -17
  16. package/dist/argv/flag-types.d.ts +18 -18
  17. package/dist/argv/flag-types.js +4 -4
  18. package/dist/argv/parse.d.ts +1 -1
  19. package/dist/arrays/_internal.js +11 -12
  20. package/dist/arrays/chunk.js +0 -1
  21. package/dist/arrays/join.d.ts +37 -3
  22. package/dist/arrays/join.js +43 -7
  23. package/dist/arrays/unique.js +0 -1
  24. package/dist/bin/_internal.d.ts +1 -1
  25. package/dist/bin/_internal.js +1 -1
  26. package/dist/bin/acorn-bindgen.cjs +769 -0
  27. package/dist/bin/acorn.wasm +0 -0
  28. package/dist/bin/exec.js +2 -3
  29. package/dist/bin/find.js +13 -13
  30. package/dist/bin/prim.cjs +39244 -0
  31. package/dist/bin/resolve.js +12 -13
  32. package/dist/bin/which.js +8 -8
  33. package/dist/cache/ttl/store.js +5 -5
  34. package/dist/checks/primordials-defaults.d.ts +3 -3
  35. package/dist/checks/primordials-defaults.js +3 -3
  36. package/dist/checks/primordials.js +4 -3
  37. package/dist/{bin → cli}/check-primordials.d.ts +11 -11
  38. package/dist/{bin → cli}/check-primordials.js +56 -52
  39. package/dist/{bin → cli}/check.js +6 -5
  40. package/dist/{bin → cli}/socket-lib.d.ts +1 -1
  41. package/dist/{bin → cli}/socket-lib.js +4 -4
  42. package/dist/colors/socket-palette.js +7 -9
  43. package/dist/compression/_internal.d.ts +12 -12
  44. package/dist/compression/_internal.js +20 -19
  45. package/dist/compression/brotli.d.ts +25 -25
  46. package/dist/compression/brotli.js +37 -44
  47. package/dist/compression/gzip.d.ts +23 -23
  48. package/dist/compression/gzip.js +44 -52
  49. package/dist/constants/agents.d.ts +3 -1
  50. package/dist/constants/agents.js +15 -11
  51. package/dist/constants/licenses.js +3 -3
  52. package/dist/constants/node.d.ts +23 -0
  53. package/dist/constants/node.js +47 -15
  54. package/dist/constants/packages.js +22 -28
  55. package/dist/constants/platform.d.ts +30 -3
  56. package/dist/constants/platform.js +72 -12
  57. package/dist/constants/runtime.d.ts +22 -0
  58. package/dist/constants/runtime.js +32 -0
  59. package/dist/constants/socket.js +1 -1
  60. package/dist/cover/code.js +8 -8
  61. package/dist/cover/formatters.js +5 -5
  62. package/dist/crypto/hash.d.ts +26 -1
  63. package/dist/crypto/hash.js +43 -12
  64. package/dist/debug/_internal.js +4 -6
  65. package/dist/debug/caller-info.js +2 -3
  66. package/dist/debug/namespace.d.ts +7 -0
  67. package/dist/debug/namespace.js +21 -12
  68. package/dist/debug/output.js +21 -24
  69. package/dist/debug/types.d.ts +4 -4
  70. package/dist/dlx/arborist.js +6 -6
  71. package/dist/dlx/binary-cache.js +14 -14
  72. package/dist/dlx/binary-download.d.ts +1 -1
  73. package/dist/dlx/binary-download.js +14 -13
  74. package/dist/dlx/binary-resolution.js +16 -14
  75. package/dist/dlx/binary-types.d.ts +5 -5
  76. package/dist/dlx/binary.js +5 -5
  77. package/dist/dlx/cache.js +1 -1
  78. package/dist/dlx/detect.d.ts +34 -25
  79. package/dist/dlx/detect.js +86 -77
  80. package/dist/dlx/dir.js +2 -2
  81. package/dist/dlx/firewall.d.ts +1 -1
  82. package/dist/dlx/lockfile.d.ts +19 -18
  83. package/dist/dlx/lockfile.js +16 -16
  84. package/dist/dlx/manifest.d.ts +6 -6
  85. package/dist/dlx/manifest.js +5 -5
  86. package/dist/dlx/package.d.ts +10 -10
  87. package/dist/dlx/package.js +16 -16
  88. package/dist/dlx/packages.js +4 -4
  89. package/dist/dlx/paths.js +7 -7
  90. package/dist/dlx/spec.js +1 -1
  91. package/dist/dlx/types.d.ts +28 -27
  92. package/dist/eco/cargo/parse-lockfile.d.ts +1 -1
  93. package/dist/eco/cargo/parse-lockfile.js +2 -2
  94. package/dist/eco/manifest/analyze-lockfile.js +2 -2
  95. package/dist/eco/manifest/detect-format.js +4 -4
  96. package/dist/eco/manifest/find-packages.js +2 -2
  97. package/dist/eco/manifest/get-package-versions.js +2 -2
  98. package/dist/eco/manifest/get-package.js +2 -2
  99. package/dist/eco/manifest/parse-lockfile.js +2 -2
  100. package/dist/eco/manifest/parse-manifest.js +2 -2
  101. package/dist/eco/manifest/parse.js +2 -2
  102. package/dist/eco/npm/npm/exec.js +2 -2
  103. package/dist/eco/npm/npm/flags.js +7 -12
  104. package/dist/eco/npm/npm/parse-lockfile.d.ts +14 -14
  105. package/dist/eco/npm/npm/parse-lockfile.js +3 -3
  106. package/dist/eco/npm/parse-package-json.js +3 -3
  107. package/dist/eco/npm/pnpm/exec.d.ts +1 -1
  108. package/dist/eco/npm/pnpm/exec.js +5 -5
  109. package/dist/eco/npm/pnpm/flags.js +0 -3
  110. package/dist/eco/npm/pnpm/parse-lockfile.d.ts +1 -1
  111. package/dist/eco/npm/pnpm/parse-lockfile.js +4 -4
  112. package/dist/eco/npm/script.js +9 -6
  113. package/dist/eco/npm/yarnpkg/yarn/exec.js +3 -3
  114. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +2 -2
  115. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +8 -8
  116. package/dist/effects/pulse-frames.d.ts +3 -1
  117. package/dist/effects/shimmer-keyframes.d.ts +1 -1
  118. package/dist/effects/shimmer-terminal.d.ts +1 -1
  119. package/dist/env/boolean.js +0 -1
  120. package/dist/env/ci.js +0 -1
  121. package/dist/env/debug.js +0 -1
  122. package/dist/env/github-status.d.ts +51 -0
  123. package/dist/env/github-status.js +90 -0
  124. package/dist/env/github.js +0 -8
  125. package/dist/env/home.js +0 -1
  126. package/dist/env/locale.js +0 -3
  127. package/dist/env/node-auth-token.js +0 -1
  128. package/dist/env/node-env.js +0 -1
  129. package/dist/env/node-version-managers.d.ts +53 -0
  130. package/dist/env/node-version-managers.js +90 -0
  131. package/dist/env/npm.js +0 -5
  132. package/dist/env/number.js +0 -1
  133. package/dist/env/package-manager.js +3 -6
  134. package/dist/env/path.js +0 -1
  135. package/dist/env/pre-commit.js +1 -2
  136. package/dist/env/rewire.d.ts +7 -6
  137. package/dist/env/rewire.js +15 -16
  138. package/dist/env/shell.js +0 -1
  139. package/dist/env/socket-cli.js +5 -18
  140. package/dist/env/socket-mcp.d.ts +114 -0
  141. package/dist/env/socket-mcp.js +146 -0
  142. package/dist/env/socket.d.ts +1 -109
  143. package/dist/env/socket.js +12 -166
  144. package/dist/env/string.js +0 -1
  145. package/dist/env/temp-dir.js +0 -3
  146. package/dist/env/term.js +0 -1
  147. package/dist/env/test.js +3 -6
  148. package/dist/env/windows.js +0 -4
  149. package/dist/env/xdg.js +0 -3
  150. package/dist/events/exit/_internal.d.ts +11 -9
  151. package/dist/events/exit/_internal.js +31 -35
  152. package/dist/events/exit/handler.js +3 -4
  153. package/dist/events/exit/intercept.js +4 -6
  154. package/dist/events/exit/lifecycle.js +16 -18
  155. package/dist/events/exit/signals.js +1 -2
  156. package/dist/events/exit/types.d.ts +6 -5
  157. package/dist/external/@npmcli/package-json.js +2 -2
  158. package/dist/external/@sinclair/typebox/value.js +5 -1
  159. package/dist/external/@sinclair/typebox.js +5 -1
  160. package/dist/external/@socketregistry/packageurl-js.js +27 -0
  161. package/dist/external/npm-pack.js +2 -2
  162. package/dist/external-tools/bazel/read-bazel-version-file.js +1 -1
  163. package/dist/external-tools/bazel/resolve.js +2 -1
  164. package/dist/external-tools/bazel/types.d.ts +1 -1
  165. package/dist/external-tools/cdxgen/from-vfs.js +1 -1
  166. package/dist/external-tools/cdxgen/resolve.js +2 -1
  167. package/dist/external-tools/cdxgen/types.d.ts +1 -1
  168. package/dist/external-tools/from-download.d.ts +1 -1
  169. package/dist/external-tools/from-download.js +1 -1
  170. package/dist/external-tools/from-pip-venv.d.ts +73 -0
  171. package/dist/external-tools/from-pip-venv.js +98 -0
  172. package/dist/external-tools/janus/asset-names.js +1 -1
  173. package/dist/external-tools/janus/from-download.js +3 -5
  174. package/dist/external-tools/janus/from-vfs.js +1 -1
  175. package/dist/external-tools/janus/resolve.js +2 -1
  176. package/dist/external-tools/janus/types.d.ts +1 -1
  177. package/dist/external-tools/jre/detect-platform-arch.d.ts +10 -6
  178. package/dist/external-tools/jre/detect-platform-arch.js +29 -14
  179. package/dist/external-tools/jre/from-download.js +2 -1
  180. package/dist/external-tools/jre/from-vfs.js +1 -1
  181. package/dist/external-tools/jre/resolve.js +2 -1
  182. package/dist/external-tools/jre/types.d.ts +1 -1
  183. package/dist/external-tools/manifest.d.ts +7 -7
  184. package/dist/external-tools/manifest.js +18 -16
  185. package/dist/external-tools/opengrep/from-vfs.js +1 -1
  186. package/dist/external-tools/opengrep/resolve.js +2 -1
  187. package/dist/external-tools/opengrep/types.d.ts +1 -1
  188. package/dist/external-tools/python/asset-names.d.ts +76 -0
  189. package/dist/external-tools/python/asset-names.js +104 -0
  190. package/dist/external-tools/python/dlx.d.ts +80 -0
  191. package/dist/external-tools/python/dlx.js +87 -0
  192. package/dist/external-tools/python/from-download.d.ts +53 -0
  193. package/dist/external-tools/python/from-download.js +68 -0
  194. package/dist/external-tools/python/from-path.d.ts +7 -0
  195. package/dist/external-tools/python/from-path.js +23 -0
  196. package/dist/external-tools/python/pin.d.ts +121 -0
  197. package/dist/external-tools/python/pin.js +173 -0
  198. package/dist/external-tools/python/pip-install.d.ts +75 -0
  199. package/dist/external-tools/python/pip-install.js +139 -0
  200. package/dist/external-tools/python/resolve.d.ts +42 -0
  201. package/dist/external-tools/python/resolve.js +58 -0
  202. package/dist/external-tools/python/types.d.ts +49 -0
  203. package/dist/external-tools/sbt/from-vfs.js +1 -1
  204. package/dist/external-tools/sbt/resolve.js +2 -1
  205. package/dist/external-tools/sbt/types.d.ts +1 -1
  206. package/dist/external-tools/skillspector/from-dlx.d.ts +24 -0
  207. package/dist/external-tools/skillspector/from-dlx.js +41 -0
  208. package/dist/external-tools/skillspector/from-path.d.ts +8 -0
  209. package/dist/external-tools/skillspector/from-path.js +30 -0
  210. package/dist/external-tools/skillspector/from-vfs.d.ts +8 -0
  211. package/dist/external-tools/skillspector/from-vfs.js +27 -0
  212. package/dist/external-tools/skillspector/resolve.d.ts +34 -0
  213. package/dist/external-tools/skillspector/resolve.js +53 -0
  214. package/dist/external-tools/skillspector/types.d.ts +24 -0
  215. package/dist/external-tools/skillspector/types.js +2 -0
  216. package/dist/external-tools/synp/from-download.js +2 -2
  217. package/dist/external-tools/synp/from-vfs.js +1 -1
  218. package/dist/external-tools/synp/resolve.js +2 -1
  219. package/dist/external-tools/trivy/from-vfs.js +1 -1
  220. package/dist/external-tools/trivy/resolve.js +2 -1
  221. package/dist/external-tools/trivy/types.d.ts +1 -1
  222. package/dist/external-tools/trufflehog/from-vfs.js +1 -1
  223. package/dist/external-tools/trufflehog/resolve.js +2 -1
  224. package/dist/external-tools/trufflehog/types.d.ts +1 -1
  225. package/dist/fs/_internal.d.ts +1 -1
  226. package/dist/fs/_internal.js +7 -7
  227. package/dist/fs/access.js +5 -9
  228. package/dist/fs/{path-cache.js → allowed-dirs-cache.js} +1 -1
  229. package/dist/fs/encoding.js +5 -7
  230. package/dist/fs/{find-up.js → find.js} +11 -13
  231. package/dist/fs/inspect.js +7 -13
  232. package/dist/fs/read-dir.js +7 -10
  233. package/dist/fs/read-file.js +8 -14
  234. package/dist/fs/read-json-cache.d.ts +6 -4
  235. package/dist/fs/read-json-cache.js +9 -6
  236. package/dist/fs/read-json.js +4 -6
  237. package/dist/fs/resolve-module.js +1 -1
  238. package/dist/fs/safe.d.ts +1 -1
  239. package/dist/fs/safe.js +12 -13
  240. package/dist/fs/unique.js +4 -5
  241. package/dist/fs/validate.js +1 -2
  242. package/dist/fs/write-json.js +4 -5
  243. package/dist/git/_internal.js +12 -11
  244. package/dist/git/changed.js +4 -4
  245. package/dist/git/repo.js +3 -3
  246. package/dist/git/staged.js +4 -4
  247. package/dist/git/unstaged.js +4 -4
  248. package/dist/github/ghsa.js +2 -2
  249. package/dist/github/refs-cache.d.ts +1 -1
  250. package/dist/github/refs-cache.js +5 -5
  251. package/dist/github/refs-rest.js +5 -5
  252. package/dist/github/{fetch.js → request.js} +13 -2
  253. package/dist/github/token.js +1 -1
  254. package/dist/github/types.d.ts +1 -1
  255. package/dist/globs/_internal.js +7 -9
  256. package/dist/globs/match.js +6 -7
  257. package/dist/globs/matcher.d.ts +3 -3
  258. package/dist/globs/matcher.js +12 -14
  259. package/dist/globs/stream.js +1 -2
  260. package/dist/globs/types.d.ts +24 -24
  261. package/dist/http-request/_internal.d.ts +1 -1
  262. package/dist/http-request/browser.js +21 -13
  263. package/dist/http-request/checksum-file.d.ts +55 -0
  264. package/dist/http-request/checksum-file.js +95 -0
  265. package/dist/http-request/download-types.d.ts +15 -23
  266. package/dist/http-request/download.js +4 -4
  267. package/dist/http-request/headers.d.ts +32 -3
  268. package/dist/http-request/headers.js +41 -13
  269. package/dist/http-request/request-attempt.js +38 -33
  270. package/dist/http-request/request-types.d.ts +7 -2
  271. package/dist/http-request/request.js +33 -16
  272. package/dist/http-request/response-reader.d.ts +12 -1
  273. package/dist/http-request/response-reader.js +22 -2
  274. package/dist/http-request/user-agent.js +3 -4
  275. package/dist/integrity.d.ts +86 -18
  276. package/dist/integrity.js +119 -30
  277. package/dist/ipc/directory.js +2 -2
  278. package/dist/ipc/paths.js +1 -1
  279. package/dist/ipc/write.js +1 -1
  280. package/dist/ipc-cli/get.js +12 -12
  281. package/dist/json/edit.js +13 -14
  282. package/dist/json/format.js +2 -2
  283. package/dist/json/parse.d.ts +1 -1
  284. package/dist/json/parse.js +3 -7
  285. package/dist/logger/_internal.d.ts +4 -4
  286. package/dist/logger/_internal.js +3 -3
  287. package/dist/logger/colors.js +4 -3
  288. package/dist/logger/console-methods.d.ts +132 -0
  289. package/dist/logger/console-methods.js +169 -0
  290. package/dist/logger/console.d.ts +12 -0
  291. package/dist/logger/console.js +42 -11
  292. package/dist/logger/indentation-methods.d.ts +81 -0
  293. package/dist/logger/indentation-methods.js +121 -0
  294. package/dist/logger/node.d.ts +16 -338
  295. package/dist/logger/node.js +75 -608
  296. package/dist/logger/options.d.ts +39 -0
  297. package/dist/logger/options.js +47 -0
  298. package/dist/logger/semantic-methods.d.ts +63 -0
  299. package/dist/logger/semantic-methods.js +108 -0
  300. package/dist/logger/stream-methods.d.ts +63 -0
  301. package/dist/logger/stream-methods.js +101 -0
  302. package/dist/logger/stream.d.ts +37 -0
  303. package/dist/logger/stream.js +42 -0
  304. package/dist/logger/symbols-builder.js +9 -9
  305. package/dist/logger/symbols.d.ts +2 -25
  306. package/dist/logger/symbols.js +53 -74
  307. package/dist/logger/types.d.ts +1 -1
  308. package/dist/memo/types.d.ts +6 -6
  309. package/dist/native-messaging/host.d.ts +20 -0
  310. package/dist/native-messaging/host.js +120 -0
  311. package/dist/native-messaging/index.d.ts +5 -0
  312. package/dist/native-messaging/index.js +22 -0
  313. package/dist/native-messaging/install.d.ts +60 -0
  314. package/dist/native-messaging/install.js +141 -0
  315. package/dist/native-messaging/rate-limit.d.ts +62 -0
  316. package/dist/native-messaging/rate-limit.js +115 -0
  317. package/dist/native-messaging/run.d.ts +10 -0
  318. package/dist/native-messaging/run.js +17 -0
  319. package/dist/node/async-hooks.js +4 -3
  320. package/dist/node/child-process.js +4 -3
  321. package/dist/node/crypto.js +4 -3
  322. package/dist/node/events.js +4 -3
  323. package/dist/node/fs-promises.js +4 -3
  324. package/dist/node/fs.js +4 -3
  325. package/dist/node/http.js +4 -3
  326. package/dist/node/https.js +4 -3
  327. package/dist/node/module.js +10 -6
  328. package/dist/node/os.js +4 -3
  329. package/dist/node/path.js +4 -3
  330. package/dist/node/timers-promises.js +4 -3
  331. package/dist/node/url.js +4 -3
  332. package/dist/node/util.js +4 -3
  333. package/dist/objects/getters.js +5 -7
  334. package/dist/objects/inspect.js +1 -4
  335. package/dist/objects/mutate.js +2 -3
  336. package/dist/objects/predicates.js +0 -4
  337. package/dist/objects/sort.js +3 -7
  338. package/dist/packages/edit-class.js +15 -16
  339. package/dist/packages/edit.js +12 -14
  340. package/dist/packages/exports.js +11 -17
  341. package/dist/packages/fetch.d.ts +16 -0
  342. package/dist/packages/fetch.js +81 -0
  343. package/dist/packages/find.d.ts +55 -0
  344. package/dist/packages/find.js +65 -0
  345. package/dist/packages/isolation.js +14 -14
  346. package/dist/packages/licenses.js +16 -16
  347. package/dist/packages/manifest.js +12 -15
  348. package/dist/packages/metadata-extensions.d.ts +14 -0
  349. package/dist/packages/metadata-extensions.js +43 -0
  350. package/dist/packages/normalize.js +5 -9
  351. package/dist/packages/provenance.d.ts +6 -0
  352. package/dist/packages/provenance.js +25 -18
  353. package/dist/packages/read.d.ts +29 -0
  354. package/dist/packages/read.js +66 -0
  355. package/dist/packages/specs.d.ts +48 -1
  356. package/dist/packages/specs.js +74 -11
  357. package/dist/packages/tarball.d.ts +24 -0
  358. package/dist/packages/tarball.js +79 -0
  359. package/dist/packages/types.d.ts +21 -20
  360. package/dist/packages/validation.js +0 -3
  361. package/dist/paths/_internal.d.ts +2 -1
  362. package/dist/paths/_internal.js +7 -19
  363. package/dist/paths/conversion.js +5 -9
  364. package/dist/paths/filenames.d.ts +0 -1
  365. package/dist/paths/filenames.js +0 -2
  366. package/dist/paths/normalize.js +6 -5
  367. package/dist/paths/packages.js +4 -7
  368. package/dist/paths/predicates.js +9 -16
  369. package/dist/paths/resolve.js +11 -14
  370. package/dist/paths/rewire.js +3 -3
  371. package/dist/paths/socket.js +16 -16
  372. package/dist/paths/walk.d.ts +1 -1
  373. package/dist/paths/walk.js +4 -4
  374. package/dist/perf/report.js +2 -2
  375. package/dist/perf/types.d.ts +1 -1
  376. package/dist/pkg-ext/data.js +1 -1
  377. package/dist/primordials/array.js +9 -9
  378. package/dist/primordials/date.js +2 -2
  379. package/dist/primordials/error.js +3 -3
  380. package/dist/primordials/headers.d.ts +10 -0
  381. package/dist/primordials/headers.js +23 -0
  382. package/dist/primordials/intl.d.ts +13 -0
  383. package/dist/primordials/intl.js +26 -0
  384. package/dist/primordials/math.js +33 -33
  385. package/dist/primordials/number.js +9 -9
  386. package/dist/primordials/object.js +5 -5
  387. package/dist/primordials/string.d.ts +2 -2
  388. package/dist/primordials/string.js +6 -6
  389. package/dist/primordials/symbol.js +3 -3
  390. package/dist/primordials/uncurry.js +9 -9
  391. package/dist/process/abort.js +3 -3
  392. package/dist/process/lock-manager.js +8 -8
  393. package/dist/process/spawn/_internal.js +6 -8
  394. package/dist/process/spawn/child.js +14 -14
  395. package/dist/process/spawn/errors.js +2 -4
  396. package/dist/process/spawn/kill-tree.d.ts +53 -0
  397. package/dist/process/spawn/kill-tree.js +85 -0
  398. package/dist/process/spawn/stdio.js +0 -1
  399. package/dist/process/spawn/types.d.ts +5 -5
  400. package/dist/process/transient.js +2 -2
  401. package/dist/promises/_internal.d.ts +2 -1
  402. package/dist/promises/_internal.js +2 -6
  403. package/dist/promises/iterate.js +12 -16
  404. package/dist/promises/options.js +3 -6
  405. package/dist/promises/retry.js +4 -5
  406. package/dist/promises/timers.d.ts +30 -0
  407. package/dist/promises/timers.js +48 -0
  408. package/dist/releases/github-archives.d.ts +6 -6
  409. package/dist/releases/github-archives.js +2 -2
  410. package/dist/releases/github-asset-url.d.ts +1 -1
  411. package/dist/releases/github-asset-url.js +5 -5
  412. package/dist/releases/github-downloads.d.ts +1 -1
  413. package/dist/releases/github-downloads.js +3 -3
  414. package/dist/releases/github-listing.d.ts +11 -2
  415. package/dist/releases/github-listing.js +20 -7
  416. package/dist/releases/github-retry-config.js +1 -1
  417. package/dist/releases/github-types.d.ts +6 -6
  418. package/dist/releases/socket-btm-binary-naming.d.ts +107 -0
  419. package/dist/releases/socket-btm-binary-naming.js +155 -0
  420. package/dist/releases/socket-btm.d.ts +8 -115
  421. package/dist/releases/socket-btm.js +16 -159
  422. package/dist/schema/types.d.ts +1 -1
  423. package/dist/sea/detect.js +6 -6
  424. package/dist/secrets/_internal.d.ts +2 -2
  425. package/dist/secrets/_internal.js +5 -4
  426. package/dist/secrets/compare.d.ts +45 -0
  427. package/dist/secrets/compare.js +61 -0
  428. package/dist/secrets/keychain.js +9 -6
  429. package/dist/secrets/linux.js +25 -23
  430. package/dist/secrets/macos.d.ts +1 -1
  431. package/dist/secrets/macos.js +18 -16
  432. package/dist/secrets/rc.d.ts +2 -2
  433. package/dist/secrets/rc.js +15 -10
  434. package/dist/secrets/socket-api-token.d.ts +4 -4
  435. package/dist/secrets/socket-api-token.js +18 -9
  436. package/dist/secrets/windows.js +21 -17
  437. package/dist/shadow/skip.js +2 -2
  438. package/dist/shell/parse.d.ts +108 -1
  439. package/dist/shell/parse.js +168 -2
  440. package/dist/smol/detect.js +9 -10
  441. package/dist/smol/http.js +6 -7
  442. package/dist/smol/https.js +6 -7
  443. package/dist/smol/manifest.d.ts +1 -1
  444. package/dist/smol/manifest.js +6 -7
  445. package/dist/smol/path.d.ts +1 -1
  446. package/dist/smol/path.js +7 -8
  447. package/dist/smol/primordial.d.ts +4 -0
  448. package/dist/smol/primordial.js +6 -7
  449. package/dist/smol/purl.d.ts +1 -1
  450. package/dist/smol/purl.js +7 -8
  451. package/dist/smol/versions.js +6 -7
  452. package/dist/smol/vfs.js +6 -7
  453. package/dist/sorts/_internal.js +6 -8
  454. package/dist/sorts/natural.js +10 -12
  455. package/dist/sorts/semver.js +1 -2
  456. package/dist/sorts/strings.js +0 -1
  457. package/dist/sorts/types.d.ts +1 -1
  458. package/dist/spinner/create-spinner-class.d.ts +38 -0
  459. package/dist/spinner/create-spinner-class.js +302 -0
  460. package/dist/spinner/default.js +8 -9
  461. package/dist/spinner/spinner-internals.d.ts +36 -0
  462. package/dist/spinner/spinner-internals.js +101 -0
  463. package/dist/spinner/spinner-shimmer-methods.d.ts +54 -0
  464. package/dist/spinner/spinner-shimmer-methods.js +143 -0
  465. package/dist/spinner/spinner-status-methods.d.ts +40 -0
  466. package/dist/spinner/spinner-status-methods.js +133 -0
  467. package/dist/spinner/spinner.d.ts +4 -5
  468. package/dist/spinner/spinner.js +18 -705
  469. package/dist/spinner/types.d.ts +3 -1
  470. package/dist/spinner/with.d.ts +10 -0
  471. package/dist/spinner/with.js +16 -2
  472. package/dist/stdio/divider.js +1 -1
  473. package/dist/stdio/footer.js +3 -3
  474. package/dist/stdio/header.js +4 -4
  475. package/dist/stdio/progress.js +5 -5
  476. package/dist/stdio/prompts.d.ts +5 -3
  477. package/dist/stdio/prompts.js +6 -7
  478. package/dist/stdio/stdout.js +3 -3
  479. package/dist/streams/parallel.js +3 -5
  480. package/dist/streams/transform.js +2 -3
  481. package/dist/strings/format.js +2 -6
  482. package/dist/strings/predicates.js +0 -2
  483. package/dist/strings/search.js +1 -2
  484. package/dist/strings/transform.js +0 -3
  485. package/dist/strings/width.js +9 -10
  486. package/dist/tables/bordered.js +4 -3
  487. package/dist/tables/padding.js +1 -1
  488. package/dist/tables/simple.js +8 -5
  489. package/dist/temporal/instant.js +4 -2
  490. package/dist/temporal/slots.js +7 -6
  491. package/dist/temporal/system.js +9 -9
  492. package/dist/themes/context.d.ts +3 -2
  493. package/dist/themes/context.js +4 -5
  494. package/dist/themes/themes.js +15 -15
  495. package/dist/themes/types.d.ts +3 -3
  496. package/dist/url/parse.js +0 -2
  497. package/dist/url/predicates.js +1 -2
  498. package/dist/url/search-params.js +3 -9
  499. package/dist/url/types.d.ts +5 -5
  500. package/dist/versions/_internal.js +3 -3
  501. package/dist/words/article.js +0 -1
  502. package/dist/words/capitalize.js +0 -1
  503. package/dist/words/pluralize.d.ts +24 -2
  504. package/dist/words/pluralize.js +47 -2
  505. package/dist/words/types.d.ts +25 -2
  506. package/package.json +289 -108
  507. package/dist/external-tools/uv/asset-names.d.ts +0 -36
  508. package/dist/external-tools/uv/asset-names.js +0 -70
  509. package/dist/external-tools/uv/from-download.d.ts +0 -17
  510. package/dist/external-tools/uv/from-download.js +0 -47
  511. package/dist/external-tools/uv/from-path.d.ts +0 -5
  512. package/dist/external-tools/uv/from-path.js +0 -22
  513. package/dist/external-tools/uv/from-vfs.d.ts +0 -7
  514. package/dist/external-tools/uv/from-vfs.js +0 -26
  515. package/dist/external-tools/uv/resolve.d.ts +0 -25
  516. package/dist/external-tools/uv/resolve.js +0 -52
  517. package/dist/external-tools/uv/types.d.ts +0 -24
  518. package/dist/http-request/checksums.d.ts +0 -69
  519. package/dist/http-request/checksums.js +0 -108
  520. package/dist/http-request/http-request.d.ts +0 -12
  521. package/dist/http-request/http-request.js +0 -11
  522. package/dist/packages/operations.d.ts +0 -113
  523. package/dist/packages/operations.js +0 -304
  524. package/dist/ssri/convert.d.ts +0 -48
  525. package/dist/ssri/convert.js +0 -69
  526. package/dist/ssri/parse.d.ts +0 -27
  527. package/dist/ssri/parse.js +0 -41
  528. package/dist/ssri/validate.d.ts +0 -41
  529. package/dist/ssri/validate.js +0 -56
  530. /package/dist/{bin → cli}/check.d.ts +0 -0
  531. /package/dist/external-tools/{uv → python}/types.js +0 -0
  532. /package/dist/fs/{path-cache.d.ts → allowed-dirs-cache.d.ts} +0 -0
  533. /package/dist/fs/{find-up.d.ts → find.d.ts} +0 -0
  534. /package/dist/github/{fetch.d.ts → request.d.ts} +0 -0
@@ -0,0 +1,61 @@
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
+ let node_crypto = require("node:crypto");
6
+ node_crypto = require_runtime.__toESM(node_crypto);
7
+
8
+ //#region src/secrets/compare.ts
9
+ /**
10
+ * @file Constant-time secret comparison. Wraps Node's `crypto.timingSafeEqual`
11
+ * so every secret comparison in the codebase runs through one helper that
12
+ * refuses to short-circuit on the first mismatched byte. Why this matters:
13
+ *
14
+ * - `===` / `!==` on JS strings short-circuits at the first byte mismatch. An
15
+ * attacker who can measure server response time can binary-search the
16
+ * secret one byte at a time: `'a000...'`, `'b000...'`, … until the response
17
+ * slows down at the right first byte, then on to byte 2. Same trap for
18
+ * `Buffer.compare` and `==`.
19
+ * - `crypto.timingSafeEqual` runs in O(n) regardless of where the first
20
+ * mismatch is. Each iteration is the same cost so the timing channel
21
+ * carries no information about which byte mismatched. Use whenever
22
+ * comparing two values that include a secret (session token, API key, MAC,
23
+ * expected-hash). Don't use for path strings or other non-secret
24
+ * comparisons — `===` is fine there and faster. Patterned after pilcrow's
25
+ * `crypto.go::constantTimeCompare`, the canonical shape in
26
+ * passwordless-example.auth.pilcrowonpaper.com — wrap once, use everywhere,
27
+ * never byte-compare a secret directly.
28
+ */
29
+ /**
30
+ * Compare two secrets in constant time. Returns `true` when the inputs are
31
+ * byte-equal. Returns `false` when they differ **or** when the byte-lengths
32
+ * differ. Never throws.
33
+ *
34
+ * Length mismatch handling: `timingSafeEqual` itself throws on length mismatch
35
+ * (it can't preserve the timing-safety contract across differently- sized
36
+ * buffers). We catch that and return `false` so callers don't need a length
37
+ * pre-check.
38
+ *
39
+ * @example
40
+ * ;```typescript
41
+ * import { compareSecrets } from '@socketsecurity/lib/secrets/compare'
42
+ *
43
+ * if (!compareSecrets(presentedToken, storedToken)) {
44
+ * throw new Error('invalid token')
45
+ * }
46
+ * ```
47
+ *
48
+ * @param a - First secret (string or Buffer).
49
+ * @param b - Second secret (string or Buffer).
50
+ *
51
+ * @returns `true` when `a` and `b` are byte-equal; `false` otherwise.
52
+ */
53
+ function compareSecrets(a, b) {
54
+ const ab = typeof a === "string" ? Buffer.from(a, "utf8") : a;
55
+ const bb = typeof b === "string" ? Buffer.from(b, "utf8") : b;
56
+ if (ab.length !== bb.length) return false;
57
+ return node_crypto.default.timingSafeEqual(ab, bb);
58
+ }
59
+
60
+ //#endregion
61
+ exports.compareSecrets = compareSecrets;
@@ -1,11 +1,14 @@
1
1
  "use strict";
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_runtime = require('../_virtual/_rolldown/runtime.js');
5
+ const require_primordials_error = require('../primordials/error.js');
4
6
  const require_secrets__internal = require('./_internal.js');
5
7
  const require_secrets_macos = require('./macos.js');
6
8
  const require_secrets_linux = require('./linux.js');
7
9
  const require_secrets_windows = require('./windows.js');
8
10
  let node_os = require("node:os");
11
+ node_os = require_runtime.__toESM(node_os);
9
12
 
10
13
  //#region src/secrets/keychain.ts
11
14
  /**
@@ -117,7 +120,7 @@ function deleteSecretSync({ service, account }) {
117
120
  * @internal
118
121
  */
119
122
  function detectPlatform() {
120
- const p = (0, node_os.platform)();
123
+ const p = node_os.default.platform();
121
124
  if (p === "darwin" || p === "linux" || p === "win32") return p;
122
125
  return "other";
123
126
  }
@@ -149,7 +152,7 @@ function getBackendAvailability() {
149
152
  default: return {
150
153
  available: false,
151
154
  toolName: "n/a",
152
- installHint: `Platform ${(0, node_os.platform)()} is not supported.`
155
+ installHint: `Platform ${node_os.default.platform()} is not supported.`
153
156
  };
154
157
  }
155
158
  }
@@ -228,9 +231,9 @@ function readSecretSync({ service, account }) {
228
231
  * shouldn't show "rewrote N secrets" when nothing actually changed).
229
232
  */
230
233
  async function writeSecret({ service, account, value, label }) {
231
- if (!value || typeof value !== "string") throw new TypeError("writeSecret: value must be a non-empty string");
234
+ if (!value || typeof value !== "string") throw new require_primordials_error.TypeErrorCtor("writeSecret: value must be a non-empty string");
232
235
  const platform_ = detectPlatform();
233
- if (platform_ === "other") throw new Error(`Unsupported platform: ${(0, node_os.platform)()}. Secret storage requires macOS, Linux, or Windows.`);
236
+ if (platform_ === "other") throw new require_primordials_error.ErrorCtor(`Unsupported platform: ${node_os.default.platform()}. Secret storage requires macOS, Linux, or Windows.`);
234
237
  if (await readSecret({
235
238
  service,
236
239
  account
@@ -251,9 +254,9 @@ async function writeSecret({ service, account, value, label }) {
251
254
  return "written";
252
255
  }
253
256
  function writeSecretSync({ service, account, value, label }) {
254
- if (!value || typeof value !== "string") throw new TypeError("writeSecret: value must be a non-empty string");
257
+ if (!value || typeof value !== "string") throw new require_primordials_error.TypeErrorCtor("writeSecret: value must be a non-empty string");
255
258
  const platform_ = detectPlatform();
256
- if (platform_ === "other") throw new Error(`Unsupported platform: ${(0, node_os.platform)()}. Secret storage requires macOS, Linux, or Windows.`);
259
+ if (platform_ === "other") throw new require_primordials_error.ErrorCtor(`Unsupported platform: ${node_os.default.platform()}. Secret storage requires macOS, Linux, or Windows.`);
257
260
  if (readSecretSync({
258
261
  service,
259
262
  account
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
- let node_child_process = require("node:child_process");
4
+ const require_primordials_error = require('../primordials/error.js');
5
+ const require_primordials_promise = require('../primordials/promise.js');
6
+ let _socketsecurity_lib_stable_process_spawn_child = require("@socketsecurity/lib-stable/process/spawn/child");
5
7
 
6
8
  //#region src/secrets/linux.ts
7
9
  /**
@@ -19,20 +21,20 @@ let node_child_process = require("node:child_process");
19
21
  */
20
22
  const SECRET_TOOL_BIN = "secret-tool";
21
23
  async function deleteLinux(service, account) {
22
- return new Promise((resolve) => {
23
- const child = (0, node_child_process.spawn)(SECRET_TOOL_BIN, [
24
+ return new require_primordials_promise.PromiseCtor((resolve) => {
25
+ const { process: cp } = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(SECRET_TOOL_BIN, [
24
26
  "clear",
25
27
  "service",
26
28
  service,
27
29
  "user",
28
30
  account
29
31
  ], { stdio: "ignore" });
30
- child.on("error", () => resolve("absent"));
31
- 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"));
32
34
  });
33
35
  }
34
36
  function deleteLinuxSync(service, account) {
35
- return (0, node_child_process.spawnSync)(SECRET_TOOL_BIN, [
37
+ return (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECRET_TOOL_BIN, [
36
38
  "clear",
37
39
  "service",
38
40
  service,
@@ -41,11 +43,11 @@ function deleteLinuxSync(service, account) {
41
43
  ], { stdio: "ignore" }).status === 0 ? "removed" : "absent";
42
44
  }
43
45
  function isLinuxBackendAvailable() {
44
- 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;
45
47
  }
46
48
  async function readLinux(service, account) {
47
- return new Promise((resolve) => {
48
- const child = (0, node_child_process.spawn)(SECRET_TOOL_BIN, [
49
+ return new require_primordials_promise.PromiseCtor((resolve) => {
50
+ const { process: cp } = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(SECRET_TOOL_BIN, [
49
51
  "lookup",
50
52
  "service",
51
53
  service,
@@ -57,12 +59,12 @@ async function readLinux(service, account) {
57
59
  "pipe"
58
60
  ] });
59
61
  let stdout = "";
60
- child.stdout.setEncoding("utf8");
61
- child.stdout.on("data", (chunk) => {
62
+ cp.stdout.setEncoding("utf8");
63
+ cp.stdout.on("data", (chunk) => {
62
64
  stdout += chunk;
63
65
  });
64
- child.on("error", () => resolve(void 0));
65
- child.on("close", (status) => {
66
+ cp.on("error", () => resolve(void 0));
67
+ cp.on("close", (status) => {
66
68
  if (status !== 0) {
67
69
  resolve(void 0);
68
70
  return;
@@ -72,7 +74,7 @@ async function readLinux(service, account) {
72
74
  });
73
75
  }
74
76
  function readLinuxSync(service, account) {
75
- const r = (0, node_child_process.spawnSync)(SECRET_TOOL_BIN, [
77
+ const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECRET_TOOL_BIN, [
76
78
  "lookup",
77
79
  "service",
78
80
  service,
@@ -90,8 +92,8 @@ function readLinuxSync(service, account) {
90
92
  return r.stdout.trim() || void 0;
91
93
  }
92
94
  async function writeLinux(service, account, value, label) {
93
- return new Promise((resolve, reject) => {
94
- const child = (0, node_child_process.spawn)(SECRET_TOOL_BIN, [
95
+ return new require_primordials_promise.PromiseCtor((resolve, reject) => {
96
+ const { process: cp } = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(SECRET_TOOL_BIN, [
95
97
  "store",
96
98
  `--label=${label}`,
97
99
  "service",
@@ -104,23 +106,23 @@ async function writeLinux(service, account, value, label) {
104
106
  "pipe"
105
107
  ] });
106
108
  let stderr = "";
107
- child.stderr.setEncoding("utf8");
108
- child.stderr.on("data", (chunk) => {
109
+ cp.stderr.setEncoding("utf8");
110
+ cp.stderr.on("data", (chunk) => {
109
111
  stderr += chunk;
110
112
  });
111
- 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.`)));
112
- child.on("close", (status) => {
113
+ cp.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
+ cp.on("close", (status) => {
113
115
  if (status === 0) {
114
116
  resolve();
115
117
  return;
116
118
  }
117
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.`));
118
120
  });
119
- child.stdin.end(value);
121
+ cp.stdin.end(value);
120
122
  });
121
123
  }
122
124
  function writeLinuxSync(service, account, value, label) {
123
- const r = (0, node_child_process.spawnSync)(SECRET_TOOL_BIN, [
125
+ const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECRET_TOOL_BIN, [
124
126
  "store",
125
127
  `--label=${label}`,
126
128
  "service",
@@ -136,7 +138,7 @@ function writeLinuxSync(service, account, value, label) {
136
138
  "pipe"
137
139
  ]
138
140
  });
139
- if (r.status !== 0) throw new Error(`secret-tool store failed (status=${r.status}, user=${account}): ${r.stderr.trim()}. Install libsecret-tools (apt install libsecret-tools / dnf install libsecret) or ensure a Secret Service provider (gnome-keyring, kwallet) is running.`);
141
+ if (r.status !== 0) throw new require_primordials_error.ErrorCtor(`secret-tool store failed (status=${r.status}, user=${account}): ${r.stderr.trim()}. Install libsecret-tools (apt install libsecret-tools / dnf install libsecret) or ensure a Secret Service provider (gnome-keyring, kwallet) is running.`);
140
142
  }
141
143
 
142
144
  //#endregion
@@ -24,7 +24,7 @@ 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
26
  interface SpawnOpts {
27
- stdio?: 'ignore' | 'pipe' | ['ignore', 'pipe', 'pipe'];
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;
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
- let node_child_process = require("node:child_process");
4
+ const require_primordials_error = require('../primordials/error.js');
5
+ const require_primordials_promise = require('../primordials/promise.js');
6
+ let _socketsecurity_lib_stable_process_spawn_child = require("@socketsecurity/lib-stable/process/spawn/child");
5
7
 
6
8
  //#region src/secrets/macos.ts
7
9
  /**
@@ -35,7 +37,7 @@ async function deleteMacOS(service, account) {
35
37
  ], { stdio: "ignore" })).status === 0 ? "removed" : "absent";
36
38
  }
37
39
  function deleteMacOSSync(service, account) {
38
- return (0, node_child_process.spawnSync)(SECURITY_BIN, [
40
+ return (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECURITY_BIN, [
39
41
  "delete-generic-password",
40
42
  "-s",
41
43
  service,
@@ -59,7 +61,7 @@ async function readMacOS(service, account) {
59
61
  return r.stdout.trim() || void 0;
60
62
  }
61
63
  function readMacOSSync(service, account) {
62
- const r = (0, node_child_process.spawnSync)(SECURITY_BIN, [
64
+ const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECURITY_BIN, [
63
65
  "find-generic-password",
64
66
  "-s",
65
67
  service,
@@ -78,32 +80,32 @@ function readMacOSSync(service, account) {
78
80
  return r.stdout.trim() || void 0;
79
81
  }
80
82
  function runAsync(args, opts = {}) {
81
- return new Promise((resolve) => {
82
- const child = (0, node_child_process.spawn)(SECURITY_BIN, args, { stdio: opts.stdio ?? [
83
+ return new require_primordials_promise.PromiseCtor((resolve) => {
84
+ const { process: cp } = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(SECURITY_BIN, args, { stdio: opts.stdio ?? [
83
85
  "ignore",
84
86
  "pipe",
85
87
  "pipe"
86
88
  ] });
87
89
  let stdout = "";
88
90
  let stderr = "";
89
- if (child.stdout) {
90
- child.stdout.setEncoding("utf8");
91
- child.stdout.on("data", (chunk) => {
91
+ if (cp.stdout) {
92
+ cp.stdout.setEncoding("utf8");
93
+ cp.stdout.on("data", (chunk) => {
92
94
  stdout += chunk;
93
95
  });
94
96
  }
95
- if (child.stderr) {
96
- child.stderr.setEncoding("utf8");
97
- child.stderr.on("data", (chunk) => {
97
+ if (cp.stderr) {
98
+ cp.stderr.setEncoding("utf8");
99
+ cp.stderr.on("data", (chunk) => {
98
100
  stderr += chunk;
99
101
  });
100
102
  }
101
- child.on("error", () => resolve({
103
+ cp.on("error", () => resolve({
102
104
  status: -1,
103
105
  stdout,
104
106
  stderr
105
107
  }));
106
- child.on("close", (status) => resolve({
108
+ cp.on("close", (status) => resolve({
107
109
  status,
108
110
  stdout,
109
111
  stderr
@@ -128,10 +130,10 @@ async function writeMacOS(service, account, value, label) {
128
130
  "-l",
129
131
  label
130
132
  ]);
131
- if (r.status !== 0) throw new Error(`security(1) add-generic-password failed (status=${r.status}, account=${account}): ${r.stderr.trim()}`);
133
+ if (r.status !== 0) throw new require_primordials_error.ErrorCtor(`security(1) add-generic-password failed (status=${r.status}, account=${account}): ${r.stderr.trim()}`);
132
134
  }
133
135
  function writeMacOSSync(service, account, value, label) {
134
- const r = (0, node_child_process.spawnSync)(SECURITY_BIN, [
136
+ const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(SECURITY_BIN, [
135
137
  "add-generic-password",
136
138
  "-U",
137
139
  "-A",
@@ -155,7 +157,7 @@ function writeMacOSSync(service, account, value, label) {
155
157
  "pipe"
156
158
  ]
157
159
  });
158
- if (r.status !== 0) throw new Error(`security(1) add-generic-password failed (status=${r.status}, account=${account}): ${r.stderr.trim()}`);
160
+ if (r.status !== 0) throw new require_primordials_error.ErrorCtor(`security(1) add-generic-password failed (status=${r.status}, account=${account}): ${r.stderr.trim()}`);
159
161
  }
160
162
 
161
163
  //#endregion
@@ -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:
@@ -2,11 +2,15 @@
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
+ const require_primordials_object = require('../primordials/object.js');
5
8
  const require_env_home = require('../env/home.js');
6
9
  let node_fs = require("node:fs");
7
10
  let node_path = require("node:path");
8
11
  node_path = require_runtime.__toESM(node_path);
9
12
  let node_os = require("node:os");
13
+ node_os = require_runtime.__toESM(node_os);
10
14
  let node_process = require("node:process");
11
15
  node_process = require_runtime.__toESM(node_process);
12
16
 
@@ -54,7 +58,7 @@ function buildBlock(opts) {
54
58
  const begin = `# BEGIN ${opts.service} env (managed)`;
55
59
  const end = `# END ${opts.service} env (managed)`;
56
60
  const noteLines = (opts.notes ?? []).map((line) => `# ${line}`);
57
- const exportLines = Object.entries(opts.exports).map(([name, value]) => `export ${name}=${shellSingleQuote(value)}`);
61
+ const exportLines = require_primordials_object.ObjectEntries(opts.exports).map(([name, value]) => `export ${name}=${shellSingleQuote(value)}`);
58
62
  const body = [...noteLines, ...exportLines].join("\n");
59
63
  return {
60
64
  begin,
@@ -69,17 +73,18 @@ function buildBlock(opts) {
69
73
  * no block was present.
70
74
  */
71
75
  function clear(service, legacySentinels = []) {
72
- if ((0, node_os.platform)() !== "darwin") return false;
76
+ if (node_os.default.platform() !== "darwin") return false;
73
77
  const rcPath = pickRcFile();
74
78
  if (!rcPath || !(0, node_fs.existsSync)(rcPath)) return false;
75
79
  let existing = (0, node_fs.readFileSync)(rcPath, "utf8");
76
80
  let removedAny = false;
77
81
  const sentinelsToStrip = [`# BEGIN ${service} env (managed)`, ...legacySentinels];
78
- for (const begin of sentinelsToStrip) {
82
+ for (let i = 0, { length } = sentinelsToStrip; i < length; i += 1) {
83
+ const begin = sentinelsToStrip[i];
79
84
  const end = begin.replace(/\bBEGIN\b/, "END");
80
85
  const endStripped = end.replace(/\s*\(managed\)\s*$/, "");
81
86
  const endAlt = end === endStripped ? escapeRegExp(end) : `(?:${escapeRegExp(end)}|${escapeRegExp(endStripped)})`;
82
- const re = new RegExp(`\n*${escapeRegExp(begin)}[\\s\\S]*?${endAlt}\n?`, "g");
87
+ const re = new require_primordials_regexp.RegExpCtor(`\n*${escapeRegExp(begin)}[\\s\\S]*?${endAlt}\n?`, "g");
83
88
  const next = existing.replace(re, "\n");
84
89
  if (next !== existing) {
85
90
  removedAny = true;
@@ -93,10 +98,10 @@ function escapeRegExp(s) {
93
98
  return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
94
99
  }
95
100
  function pickRcFile(shellOverride) {
96
- const home = /* @__PURE__ */ require_env_home.getHome();
101
+ const home = require_env_home.getHome();
97
102
  if (!home) return;
98
103
  const shellPath = node_process.default.env["SHELL"] ?? "";
99
- const shell = shellOverride ?? (shellPath.endsWith("zsh") ? "zsh" : shellPath.endsWith("bash") ? "bash" : shellPath.endsWith("fish") ? "fish" : void 0);
104
+ 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);
100
105
  if (shell === "zsh") return node_path.default.join(home, ".zshenv");
101
106
  if (shell === "bash") {
102
107
  const bashrc = node_path.default.join(home, ".bashrc");
@@ -130,7 +135,7 @@ function shellSingleQuote(value) {
130
135
  * dotfile-manager users or installers running under a non-default shell.
131
136
  */
132
137
  function write(opts) {
133
- if ((0, node_os.platform)() !== "darwin") return {
138
+ if (node_os.default.platform() !== "darwin") return {
134
139
  rcPath: void 0,
135
140
  outcome: "skipped",
136
141
  reason: "unsupported-platform"
@@ -149,10 +154,10 @@ function write(opts) {
149
154
  const legacyEnd = legacyBegin.replace(/\bBEGIN\b/, "END");
150
155
  const legacyEndStripped = legacyEnd.replace(/\s*\(managed\)\s*$/, "");
151
156
  const endAlt = legacyEnd === legacyEndStripped ? escapeRegExp(legacyEnd) : `(?:${escapeRegExp(legacyEnd)}|${escapeRegExp(legacyEndStripped)})`;
152
- const legacyRe = new RegExp(`\n*${escapeRegExp(legacyBegin)}[\\s\\S]*?${endAlt}\n?`, "g");
157
+ const legacyRe = new require_primordials_regexp.RegExpCtor(`\n*${escapeRegExp(legacyBegin)}[\\s\\S]*?${endAlt}\n?`, "g");
153
158
  working = working.replace(legacyRe, "\n");
154
159
  }
155
- const match = new RegExp(`${escapeRegExp(begin)}[\\s\\S]*?${escapeRegExp(end)}`).exec(working);
160
+ const match = new require_primordials_regexp.RegExpCtor(`${escapeRegExp(begin)}[\\s\\S]*?${escapeRegExp(end)}`).exec(working);
156
161
  if (match) {
157
162
  if (match[0] === desiredBlock && working === onDisk) return {
158
163
  rcPath,
@@ -164,7 +169,7 @@ function write(opts) {
164
169
  outcome: "updated"
165
170
  };
166
171
  }
167
- const prefix = working.length > 0 && !working.endsWith("\n\n") ? working.endsWith("\n") ? "\n" : "\n\n" : "";
172
+ const prefix = working.length > 0 && !require_primordials_string.StringPrototypeEndsWith(working, "\n\n") ? require_primordials_string.StringPrototypeEndsWith(working, "\n") ? "\n" : "\n\n" : "";
168
173
  writeRcFile(rcPath, `${working}${prefix}${desiredBlock}\n`.replace(/\n{3,}/g, "\n\n"));
169
174
  return {
170
175
  rcPath,
@@ -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,35 @@ 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) {
19
20
  return (await require_secrets_find.resolve({
20
- service: SOCKET_CLI_SERVICE,
21
+ service: SOCKET_SERVICE,
22
+ accounts: TOKEN_ACCOUNTS,
23
+ allowEnvOnly: options?.allowEnvOnly
24
+ }) ?? await require_secrets_find.resolve({
25
+ service: SOCKET_SERVICE_LEGACY,
21
26
  accounts: TOKEN_ACCOUNTS,
22
27
  allowEnvOnly: options?.allowEnvOnly
23
28
  }))?.value;
24
29
  }
25
30
  function readSocketApiTokenSync(options) {
26
- return require_secrets_find.resolveSync({
27
- service: SOCKET_CLI_SERVICE,
31
+ return (require_secrets_find.resolveSync({
32
+ service: SOCKET_SERVICE,
28
33
  accounts: TOKEN_ACCOUNTS,
29
34
  allowEnvOnly: options?.allowEnvOnly
30
- })?.value;
35
+ }) ?? require_secrets_find.resolveSync({
36
+ service: SOCKET_SERVICE_LEGACY,
37
+ accounts: TOKEN_ACCOUNTS,
38
+ allowEnvOnly: options?.allowEnvOnly
39
+ }))?.value;
31
40
  }
32
41
 
33
42
  //#endregion
@@ -2,13 +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_error = require('../primordials/error.js');
6
+ const require_primordials_json = require('../primordials/json.js');
7
+ const require_primordials_promise = require('../primordials/promise.js');
5
8
  let node_fs = require("node:fs");
6
9
  let node_path = require("node:path");
7
10
  node_path = require_runtime.__toESM(node_path);
8
11
  let node_os = require("node:os");
12
+ node_os = require_runtime.__toESM(node_os);
9
13
  let node_process = require("node:process");
10
14
  node_process = require_runtime.__toESM(node_process);
11
- let node_child_process = require("node:child_process");
15
+ let _socketsecurity_lib_stable_process_spawn_child = require("@socketsecurity/lib-stable/process/spawn/child");
12
16
 
13
17
  //#region src/secrets/windows.ts
14
18
  /**
@@ -63,11 +67,11 @@ function deleteWindowsSync(service, account) {
63
67
  function getDpapiFilePath(service, account) {
64
68
  validateKeychainComponent(service, "service");
65
69
  validateKeychainComponent(account, "account");
66
- const appData = node_process.default.env["APPDATA"] ?? node_path.default.join((0, node_os.homedir)(), "AppData", "Roaming");
70
+ const appData = node_process.default.env["APPDATA"] ?? node_path.default.join(node_os.default.homedir(), "AppData", "Roaming");
67
71
  return node_path.default.join(appData, service, `${account}.enc`);
68
72
  }
69
73
  function isWindowsBackendAvailable() {
70
- return (0, node_child_process.spawnSync)(POWERSHELL_BIN, [
74
+ return (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(POWERSHELL_BIN, [
71
75
  "-NoProfile",
72
76
  "-Command",
73
77
  "exit 0"
@@ -125,8 +129,8 @@ function readWindowsSync(service, account) {
125
129
  return readDpapiSync(getDpapiFilePath(service, account));
126
130
  }
127
131
  function runPsAsync(script, input) {
128
- return new Promise((resolve) => {
129
- const child = (0, node_child_process.spawn)(POWERSHELL_BIN, [
132
+ return new require_primordials_promise.PromiseCtor((resolve) => {
133
+ const { process: cp } = (0, _socketsecurity_lib_stable_process_spawn_child.spawn)(POWERSHELL_BIN, [
130
134
  "-NoProfile",
131
135
  "-Command",
132
136
  script
@@ -137,30 +141,30 @@ function runPsAsync(script, input) {
137
141
  ] });
138
142
  let stdout = "";
139
143
  let stderr = "";
140
- child.stdout.setEncoding("utf8");
141
- child.stdout.on("data", (chunk) => {
144
+ cp.stdout.setEncoding("utf8");
145
+ cp.stdout.on("data", (chunk) => {
142
146
  stdout += chunk;
143
147
  });
144
- child.stderr.setEncoding("utf8");
145
- child.stderr.on("data", (chunk) => {
148
+ cp.stderr.setEncoding("utf8");
149
+ cp.stderr.on("data", (chunk) => {
146
150
  stderr += chunk;
147
151
  });
148
- child.on("error", () => resolve({
152
+ cp.on("error", () => resolve({
149
153
  status: -1,
150
154
  stdout,
151
155
  stderr
152
156
  }));
153
- child.on("close", (status) => resolve({
157
+ cp.on("close", (status) => resolve({
154
158
  status,
155
159
  stdout,
156
160
  stderr
157
161
  }));
158
- if (input !== void 0) child.stdin.end(input);
159
- else child.stdin.end();
162
+ if (input !== void 0) cp.stdin.end(input);
163
+ else cp.stdin.end();
160
164
  });
161
165
  }
162
166
  function runPsSync(script, input) {
163
- const r = (0, node_child_process.spawnSync)(POWERSHELL_BIN, [
167
+ const r = (0, _socketsecurity_lib_stable_process_spawn_child.spawnSync)(POWERSHELL_BIN, [
164
168
  "-NoProfile",
165
169
  "-Command",
166
170
  script
@@ -189,7 +193,7 @@ function runPsSync(script, input) {
189
193
  * identifiers (e.g. `socket-cli`, `SOCKET_API_KEY`), not paths.
190
194
  */
191
195
  function validateKeychainComponent(value, name) {
192
- if (/[\\/]/.test(value) || value.includes("..") || value.includes("\0") || value === "" || value === ".") throw new Error(`secrets/windows: ${name} contains path-traversal characters: ${JSON.stringify(value)}. Use a plain identifier (no \\\\, /, .., or NUL).`);
196
+ if (/[\\/]/.test(value) || value.includes("..") || value.includes("\0") || value === "" || value === ".") throw new require_primordials_error.ErrorCtor(`secrets/windows: ${name} contains path-traversal characters: ${require_primordials_json.JSONStringify(value)}. Use a plain identifier (no \\\\, /, .., or NUL).`);
193
197
  }
194
198
  async function writeDpapi(filePath, value) {
195
199
  const dir = node_path.default.dirname(filePath);
@@ -201,7 +205,7 @@ async function writeDpapi(filePath, value) {
201
205
  $protected = [System.Security.Cryptography.ProtectedData]::Protect($bytes, $null, 'CurrentUser')
202
206
  [Convert]::ToBase64String($protected) | Set-Content -Path ${quotePs(filePath)} -NoNewline
203
207
  `, value);
204
- if (r.status !== 0) throw new Error(`DPAPI file write failed: ${r.stderr.trim()}. Install the CredentialManager PowerShell module (\`Install-Module CredentialManager -Scope CurrentUser\`) for a cleaner storage path.`);
208
+ if (r.status !== 0) throw new require_primordials_error.ErrorCtor(`DPAPI file write failed: ${r.stderr.trim()}. Install the CredentialManager PowerShell module (\`Install-Module CredentialManager -Scope CurrentUser\`) for a cleaner storage path.`);
205
209
  }
206
210
  function writeDpapiSync(filePath, value) {
207
211
  const dir = node_path.default.dirname(filePath);
@@ -213,7 +217,7 @@ function writeDpapiSync(filePath, value) {
213
217
  $protected = [System.Security.Cryptography.ProtectedData]::Protect($bytes, $null, 'CurrentUser')
214
218
  [Convert]::ToBase64String($protected) | Set-Content -Path ${quotePs(filePath)} -NoNewline
215
219
  `, value);
216
- if (r.status !== 0) throw new Error(`DPAPI file write failed: ${r.stderr.trim()}. Install the CredentialManager PowerShell module (\`Install-Module CredentialManager -Scope CurrentUser\`) for a cleaner storage path.`);
220
+ if (r.status !== 0) throw new require_primordials_error.ErrorCtor(`DPAPI file write failed: ${r.stderr.trim()}. Install the CredentialManager PowerShell module (\`Install-Module CredentialManager -Scope CurrentUser\`) for a cleaner storage path.`);
217
221
  }
218
222
  async function writeWindows(service, account, value, _label) {
219
223
  if ((await runPsAsync(`
@@ -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",