@socketsecurity/lib 6.0.3 → 6.0.5

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 (542) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/_virtual/_rolldown/runtime.js +45 -0
  3. package/dist/abort/signal.js +53 -59
  4. package/dist/ai/discover.js +110 -110
  5. package/dist/ai/profiles.js +94 -65
  6. package/dist/ai/spawn.js +172 -194
  7. package/dist/ai/types.js +1 -17
  8. package/dist/ai/worktree.js +160 -183
  9. package/dist/ansi/constants.js +16 -38
  10. package/dist/ansi/strip.js +44 -41
  11. package/dist/archives/_internal.js +64 -73
  12. package/dist/archives/detect.js +30 -43
  13. package/dist/archives/extract.js +43 -50
  14. package/dist/archives/tar.js +197 -228
  15. package/dist/archives/types.js +1 -17
  16. package/dist/archives/zip.js +85 -121
  17. package/dist/argv/flag-predicates.js +203 -101
  18. package/dist/argv/flag-types.js +96 -113
  19. package/dist/argv/parse-args-string.d.ts +16 -14
  20. package/dist/argv/parse-args-string.js +42 -39
  21. package/dist/argv/parse.js +145 -163
  22. package/dist/arrays/_internal.js +65 -48
  23. package/dist/arrays/chunk.js +51 -40
  24. package/dist/arrays/join.js +87 -35
  25. package/dist/arrays/predicates.js +46 -28
  26. package/dist/arrays/unique.js +45 -31
  27. package/dist/bin/_internal.js +34 -42
  28. package/dist/bin/check-primordials.js +175 -233
  29. package/dist/bin/check.js +51 -72
  30. package/dist/bin/exec.js +70 -74
  31. package/dist/bin/find.js +151 -134
  32. package/dist/bin/resolve.js +180 -246
  33. package/dist/bin/shadow.js +24 -33
  34. package/dist/bin/socket-lib.js +51 -73
  35. package/dist/bin/types.js +1 -17
  36. package/dist/bin/which.js +211 -146
  37. package/dist/cacache/_internal.js +25 -40
  38. package/dist/cacache/clear.js +79 -72
  39. package/dist/cacache/read.js +48 -46
  40. package/dist/cacache/tmp.js +29 -36
  41. package/dist/cacache/types.js +1 -17
  42. package/dist/cacache/write.js +43 -48
  43. package/dist/cache/ttl/store.js +232 -288
  44. package/dist/cache/ttl/types.js +1 -17
  45. package/dist/checks/primordials-defaults.js +83 -89
  46. package/dist/checks/primordials.js +225 -277
  47. package/dist/colors/convert.js +45 -37
  48. package/dist/colors/palette.js +88 -45
  49. package/dist/colors/socket-palette.js +74 -84
  50. package/dist/colors/types.js +1 -17
  51. package/dist/compression/_internal.js +57 -72
  52. package/dist/compression/brotli.js +94 -127
  53. package/dist/compression/gzip.js +95 -121
  54. package/dist/compression/types.js +1 -17
  55. package/dist/constants/agents.js +61 -113
  56. package/dist/constants/encoding.js +19 -42
  57. package/dist/constants/github.js +12 -30
  58. package/dist/constants/licenses.js +48 -63
  59. package/dist/constants/lifecycle-script-names.js +31 -45
  60. package/dist/constants/maintained-node-versions.js +22 -37
  61. package/dist/constants/node.js +226 -167
  62. package/dist/constants/package-default-node-range.js +16 -41
  63. package/dist/constants/package-default-socket-categories.js +12 -30
  64. package/dist/constants/packages.js +77 -126
  65. package/dist/constants/platform.js +27 -49
  66. package/dist/constants/sentinels.js +23 -48
  67. package/dist/constants/socket.js +42 -87
  68. package/dist/constants/testing.js +15 -34
  69. package/dist/constants/time.js +16 -36
  70. package/dist/constants/typescript.js +32 -52
  71. package/dist/cover/code.js +111 -142
  72. package/dist/cover/formatters.js +118 -101
  73. package/dist/cover/type.js +50 -76
  74. package/dist/cover/types.js +1 -17
  75. package/dist/crypto/hash.js +54 -46
  76. package/dist/debug/_internal.js +62 -71
  77. package/dist/debug/caller-info.js +53 -64
  78. package/dist/debug/namespace.js +80 -90
  79. package/dist/debug/output.js +172 -188
  80. package/dist/debug/types.js +1 -17
  81. package/dist/dlx/_internal.js +24 -43
  82. package/dist/dlx/arborist.js +162 -160
  83. package/dist/dlx/binary-cache.js +228 -200
  84. package/dist/dlx/binary-download.js +172 -211
  85. package/dist/dlx/binary-resolution.js +165 -157
  86. package/dist/dlx/binary-types.js +1 -17
  87. package/dist/dlx/binary.js +149 -189
  88. package/dist/dlx/cache.js +45 -30
  89. package/dist/dlx/detect.js +245 -159
  90. package/dist/dlx/dir.js +67 -51
  91. package/dist/dlx/firewall.js +62 -100
  92. package/dist/dlx/lockfile.js +122 -127
  93. package/dist/dlx/manifest.js +264 -274
  94. package/dist/dlx/package.js +241 -244
  95. package/dist/dlx/packages.js +99 -96
  96. package/dist/dlx/paths.js +73 -59
  97. package/dist/dlx/spec.js +52 -60
  98. package/dist/dlx/types.js +1 -17
  99. package/dist/eco/cargo/lockfile-format.js +19 -36
  100. package/dist/eco/cargo/manifest-format.js +17 -35
  101. package/dist/eco/cargo/parse-lockfile.js +210 -237
  102. package/dist/eco/manifest/analyze-lockfile.js +46 -63
  103. package/dist/eco/manifest/detect-format.js +66 -90
  104. package/dist/eco/manifest/find-packages.js +39 -64
  105. package/dist/eco/manifest/get-package-versions.js +27 -48
  106. package/dist/eco/manifest/get-package.js +21 -40
  107. package/dist/eco/manifest/manifest-error.js +14 -35
  108. package/dist/eco/manifest/parse-lockfile.js +40 -86
  109. package/dist/eco/manifest/parse-manifest.js +26 -43
  110. package/dist/eco/manifest/parse.js +26 -47
  111. package/dist/eco/manifest/types.js +1 -17
  112. package/dist/eco/npm/bun/exec.js +23 -32
  113. package/dist/eco/npm/manifest-format.js +21 -35
  114. package/dist/eco/npm/npm/exec.js +51 -61
  115. package/dist/eco/npm/npm/extract-package-name-from-path.js +28 -50
  116. package/dist/eco/npm/npm/flags.js +80 -52
  117. package/dist/eco/npm/npm/lockfile-format.js +21 -40
  118. package/dist/eco/npm/npm/parse-git-url.js +26 -40
  119. package/dist/eco/npm/npm/parse-lockfile.js +184 -210
  120. package/dist/eco/npm/parse-package-json.js +71 -102
  121. package/dist/eco/npm/pnpm/detect-pnpm-version.js +22 -43
  122. package/dist/eco/npm/pnpm/exec.js +51 -62
  123. package/dist/eco/npm/pnpm/flags.js +75 -68
  124. package/dist/eco/npm/pnpm/lockfile-format.js +19 -36
  125. package/dist/eco/npm/pnpm/parse-lockfile.js +235 -259
  126. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +37 -47
  127. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +36 -49
  128. package/dist/eco/npm/script.js +82 -90
  129. package/dist/eco/npm/vlt/exec.js +24 -32
  130. package/dist/eco/npm/yarnpkg/yarn/exec.js +60 -59
  131. package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +20 -36
  132. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +194 -242
  133. package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +37 -61
  134. package/dist/eco/purl.js +50 -60
  135. package/dist/eco/types.js +1 -17
  136. package/dist/effects/pulse-frames.js +64 -65
  137. package/dist/effects/shimmer-keyframes.js +71 -52
  138. package/dist/effects/shimmer-terminal.js +81 -50
  139. package/dist/effects/shimmer.js +290 -153
  140. package/dist/env/boolean.js +42 -43
  141. package/dist/env/case-insensitive.js +54 -39
  142. package/dist/env/ci.js +29 -31
  143. package/dist/env/debug.js +28 -31
  144. package/dist/env/github.js +144 -59
  145. package/dist/env/home.js +38 -31
  146. package/dist/env/locale.js +59 -39
  147. package/dist/env/node-auth-token.js +28 -31
  148. package/dist/env/node-env.js +28 -31
  149. package/dist/env/npm.js +94 -47
  150. package/dist/env/number.js +50 -51
  151. package/dist/env/package-manager.js +95 -83
  152. package/dist/env/path.js +28 -31
  153. package/dist/env/pre-commit.js +30 -32
  154. package/dist/env/proxy.js +121 -122
  155. package/dist/env/rewire.js +204 -96
  156. package/dist/env/shell.js +28 -31
  157. package/dist/env/socket-cli.js +233 -81
  158. package/dist/env/socket.js +521 -156
  159. package/dist/env/string.js +43 -44
  160. package/dist/env/temp-dir.js +59 -39
  161. package/dist/env/term.js +28 -31
  162. package/dist/env/test.js +65 -43
  163. package/dist/env/types.js +1 -17
  164. package/dist/env/windows.js +78 -43
  165. package/dist/env/xdg.js +62 -39
  166. package/dist/errors/message.js +40 -46
  167. package/dist/errors/predicates.js +61 -49
  168. package/dist/errors/stack.js +24 -36
  169. package/dist/events/exit/_internal.js +86 -103
  170. package/dist/events/exit/handler.js +48 -55
  171. package/dist/events/exit/intercept.js +49 -70
  172. package/dist/events/exit/lifecycle.js +92 -101
  173. package/dist/events/exit/signals.js +25 -31
  174. package/dist/events/exit/types.js +1 -17
  175. package/dist/events/warning/handler.js +43 -40
  176. package/dist/events/warning/suppress.js +111 -90
  177. package/dist/external/@npmcli/package-json/lib/read-package.js +132 -153
  178. package/dist/external/@npmcli/package-json/lib/sort.js +73 -105
  179. package/dist/external/@npmcli/package-json.js +12705 -15140
  180. package/dist/external/@npmcli/promise-spawn.js +451 -472
  181. package/dist/external/@sinclair/typebox/value.js +7443 -9002
  182. package/dist/external/@sinclair/typebox.js +7516 -7885
  183. package/dist/external/@socketregistry/is-unicode-supported.js +31 -39
  184. package/dist/external/@socketregistry/packageurl-js.js +6127 -7369
  185. package/dist/external/@socketregistry/yocto-spinner.js +394 -455
  186. package/dist/external/@yarnpkg/extensions.js +435 -1022
  187. package/dist/external/adm-zip.js +2313 -2673
  188. package/dist/external/debug.js +700 -687
  189. package/dist/external/external-pack.js +2658 -3171
  190. package/dist/external/fast-sort.js +124 -138
  191. package/dist/external/get-east-asian-width.js +70 -64
  192. package/dist/external/libnpmexec.js +28 -31
  193. package/dist/external/npm-pack.js +43617 -50137
  194. package/dist/external/p-map.js +198 -222
  195. package/dist/external/pico-pack.js +6735 -7304
  196. package/dist/external/pony-cause.js +143 -139
  197. package/dist/external/shell-quote.js +226 -0
  198. package/dist/external/spdx-pack.js +1283 -1403
  199. package/dist/external/streaming-iterables.js +835 -1052
  200. package/dist/external/tar-fs.js +2769 -3048
  201. package/dist/external/which.js +267 -251
  202. package/dist/external/yargs-parser.js +851 -1074
  203. package/dist/external-tools/bazel/asset-names.js +98 -90
  204. package/dist/external-tools/bazel/from-download.js +52 -46
  205. package/dist/external-tools/bazel/from-path.js +27 -38
  206. package/dist/external-tools/bazel/read-bazel-version-file.js +35 -57
  207. package/dist/external-tools/bazel/resolve-asset-url.js +24 -39
  208. package/dist/external-tools/bazel/resolve-bazel-version.js +34 -56
  209. package/dist/external-tools/bazel/resolve.js +44 -58
  210. package/dist/external-tools/bazel/types.js +1 -17
  211. package/dist/external-tools/cdxgen/asset-names.js +59 -66
  212. package/dist/external-tools/cdxgen/from-download.js +52 -80
  213. package/dist/external-tools/cdxgen/from-path.js +19 -37
  214. package/dist/external-tools/cdxgen/from-vfs.js +22 -43
  215. package/dist/external-tools/cdxgen/resolve.js +48 -63
  216. package/dist/external-tools/cdxgen/types.js +1 -17
  217. package/dist/external-tools/from-download.js +107 -67
  218. package/dist/external-tools/janus/asset-names.js +44 -51
  219. package/dist/external-tools/janus/from-download.js +45 -70
  220. package/dist/external-tools/janus/from-path.js +19 -37
  221. package/dist/external-tools/janus/from-vfs.js +22 -43
  222. package/dist/external-tools/janus/resolve.js +45 -63
  223. package/dist/external-tools/janus/types.js +1 -17
  224. package/dist/external-tools/jre/asset-names.js +109 -82
  225. package/dist/external-tools/jre/detect-platform-arch.js +25 -49
  226. package/dist/external-tools/jre/from-download.js +71 -67
  227. package/dist/external-tools/jre/from-java-home.js +27 -54
  228. package/dist/external-tools/jre/from-path.js +27 -49
  229. package/dist/external-tools/jre/from-vfs.js +39 -60
  230. package/dist/external-tools/jre/resolve.js +55 -68
  231. package/dist/external-tools/jre/types.js +1 -17
  232. package/dist/external-tools/manifest.js +130 -150
  233. package/dist/external-tools/opengrep/asset-names.js +60 -72
  234. package/dist/external-tools/opengrep/from-download.js +58 -80
  235. package/dist/external-tools/opengrep/from-path.js +19 -37
  236. package/dist/external-tools/opengrep/from-vfs.js +23 -43
  237. package/dist/external-tools/opengrep/resolve.js +43 -63
  238. package/dist/external-tools/opengrep/types.js +1 -17
  239. package/dist/external-tools/sbt/asset-names.js +21 -30
  240. package/dist/external-tools/sbt/from-download.js +50 -61
  241. package/dist/external-tools/sbt/from-path.js +23 -38
  242. package/dist/external-tools/sbt/from-vfs.js +30 -44
  243. package/dist/external-tools/sbt/resolve.js +45 -63
  244. package/dist/external-tools/sbt/types.js +1 -17
  245. package/dist/external-tools/synp/asset-names.js +11 -29
  246. package/dist/external-tools/synp/from-download.js +24 -41
  247. package/dist/external-tools/synp/from-path.js +19 -37
  248. package/dist/external-tools/synp/from-vfs.js +22 -43
  249. package/dist/external-tools/synp/resolve.js +43 -62
  250. package/dist/external-tools/synp/types.js +1 -17
  251. package/dist/external-tools/trivy/asset-names.js +51 -62
  252. package/dist/external-tools/trivy/from-download.js +42 -64
  253. package/dist/external-tools/trivy/from-path.js +19 -37
  254. package/dist/external-tools/trivy/from-vfs.js +22 -43
  255. package/dist/external-tools/trivy/resolve.js +43 -63
  256. package/dist/external-tools/trivy/types.js +1 -17
  257. package/dist/external-tools/trufflehog/asset-names.js +54 -66
  258. package/dist/external-tools/trufflehog/from-download.js +44 -62
  259. package/dist/external-tools/trufflehog/from-path.js +21 -37
  260. package/dist/external-tools/trufflehog/from-vfs.js +26 -43
  261. package/dist/external-tools/trufflehog/resolve.js +43 -63
  262. package/dist/external-tools/trufflehog/types.js +1 -17
  263. package/dist/external-tools/uv/asset-names.js +64 -74
  264. package/dist/external-tools/uv/from-download.js +44 -65
  265. package/dist/external-tools/uv/from-path.js +19 -37
  266. package/dist/external-tools/uv/from-vfs.js +22 -43
  267. package/dist/external-tools/uv/resolve.js +42 -63
  268. package/dist/external-tools/uv/types.js +1 -17
  269. package/dist/fs/_internal.js +40 -42
  270. package/dist/fs/access.js +57 -54
  271. package/dist/fs/encoding.js +80 -97
  272. package/dist/fs/find-up.js +126 -125
  273. package/dist/fs/inspect.js +168 -99
  274. package/dist/fs/path-cache.js +31 -32
  275. package/dist/fs/read-dir.js +102 -79
  276. package/dist/fs/read-file.js +177 -118
  277. package/dist/fs/read-json-cache.js +150 -134
  278. package/dist/fs/read-json.js +172 -187
  279. package/dist/fs/resolve-module.js +35 -58
  280. package/dist/fs/safe.js +278 -169
  281. package/dist/fs/types.js +1 -17
  282. package/dist/fs/unique.js +52 -48
  283. package/dist/fs/validate.js +56 -40
  284. package/dist/fs/write-json.js +109 -75
  285. package/dist/git/_internal.js +251 -216
  286. package/dist/git/changed.js +191 -74
  287. package/dist/git/repo.js +118 -104
  288. package/dist/git/staged.js +172 -62
  289. package/dist/git/types.js +1 -17
  290. package/dist/git/unstaged.js +175 -62
  291. package/dist/github/constants.js +25 -33
  292. package/dist/github/errors.js +46 -38
  293. package/dist/github/fetch.js +137 -82
  294. package/dist/github/ghsa.js +217 -151
  295. package/dist/github/refs-cache.js +54 -43
  296. package/dist/github/refs-graphql.js +97 -89
  297. package/dist/github/refs-rest.js +70 -101
  298. package/dist/github/refs.js +105 -64
  299. package/dist/github/token.js +96 -48
  300. package/dist/github/types.js +1 -17
  301. package/dist/globs/_internal.js +73 -82
  302. package/dist/globs/defaults.js +40 -59
  303. package/dist/globs/match.js +93 -77
  304. package/dist/globs/matcher.js +104 -92
  305. package/dist/globs/stream.js +43 -55
  306. package/dist/globs/types.js +1 -17
  307. package/dist/http-request/_internal.js +11 -38
  308. package/dist/http-request/browser-fetch.js +19 -29
  309. package/dist/http-request/browser.js +188 -206
  310. package/dist/http-request/checksums.js +101 -65
  311. package/dist/http-request/download-types.js +1 -17
  312. package/dist/http-request/download.js +195 -196
  313. package/dist/http-request/errors.js +39 -47
  314. package/dist/http-request/headers.js +95 -80
  315. package/dist/http-request/http-request.js +10 -35
  316. package/dist/http-request/node.js +71 -97
  317. package/dist/http-request/request-attempt.js +232 -285
  318. package/dist/http-request/request-types.js +1 -17
  319. package/dist/http-request/request.js +106 -108
  320. package/dist/http-request/response-reader.js +47 -51
  321. package/dist/http-request/response-types.js +22 -38
  322. package/dist/http-request/user-agent.js +73 -55
  323. package/dist/integrity.js +105 -106
  324. package/dist/ipc/_internal.js +34 -48
  325. package/dist/ipc/directory.js +55 -63
  326. package/dist/ipc/paths.js +52 -45
  327. package/dist/ipc/types.js +1 -17
  328. package/dist/ipc/write.js +81 -74
  329. package/dist/ipc-cli/get.js +29 -56
  330. package/dist/ipc-cli/types.js +1 -17
  331. package/dist/json/edit.js +182 -242
  332. package/dist/json/format.js +202 -103
  333. package/dist/json/parse.js +206 -109
  334. package/dist/json/types.js +1 -17
  335. package/dist/links/create.js +93 -60
  336. package/dist/links/types.js +1 -17
  337. package/dist/logger/_internal.js +109 -73
  338. package/dist/logger/browser.js +45 -56
  339. package/dist/logger/colors.js +31 -49
  340. package/dist/logger/console.js +89 -112
  341. package/dist/logger/default.js +19 -33
  342. package/dist/logger/logger.js +5 -29
  343. package/dist/logger/node.js +793 -854
  344. package/dist/logger/symbols-builder.js +54 -56
  345. package/dist/logger/symbols.js +135 -118
  346. package/dist/logger/types.js +1 -17
  347. package/dist/memo/_internal.js +39 -49
  348. package/dist/memo/async.js +133 -117
  349. package/dist/memo/clear.js +25 -34
  350. package/dist/memo/decorator.js +43 -37
  351. package/dist/memo/memoize.js +97 -88
  352. package/dist/memo/once.js +42 -41
  353. package/dist/memo/types.js +1 -17
  354. package/dist/memo/weak.js +45 -41
  355. package/dist/node/async-hooks.js +9 -30
  356. package/dist/node/child-process.js +9 -30
  357. package/dist/node/crypto.js +9 -30
  358. package/dist/node/events.js +9 -30
  359. package/dist/node/fs-promises.js +9 -30
  360. package/dist/node/fs.js +9 -30
  361. package/dist/node/http.js +9 -30
  362. package/dist/node/https.js +9 -30
  363. package/dist/node/module.js +20 -34
  364. package/dist/node/os.js +9 -30
  365. package/dist/node/path.js +9 -30
  366. package/dist/node/timers-promises.js +9 -30
  367. package/dist/node/url.js +9 -30
  368. package/dist/node/util.js +9 -30
  369. package/dist/objects/getters.js +185 -126
  370. package/dist/objects/inspect.js +85 -52
  371. package/dist/objects/mutate.js +96 -76
  372. package/dist/objects/predicates.js +112 -59
  373. package/dist/objects/sort.js +120 -76
  374. package/dist/objects/types.js +1 -17
  375. package/dist/packages/edit-class.js +198 -265
  376. package/dist/packages/edit.js +79 -86
  377. package/dist/packages/exports.js +146 -157
  378. package/dist/packages/isolation.js +159 -209
  379. package/dist/packages/licenses.js +207 -189
  380. package/dist/packages/manifest.js +134 -172
  381. package/dist/packages/normalize.js +91 -102
  382. package/dist/packages/operations.d.ts +2 -0
  383. package/dist/packages/operations.js +283 -254
  384. package/dist/packages/provenance.js +195 -245
  385. package/dist/packages/specs.js +94 -84
  386. package/dist/packages/types.js +1 -17
  387. package/dist/packages/validation.js +49 -50
  388. package/dist/paths/_internal.js +82 -86
  389. package/dist/paths/conversion.js +112 -65
  390. package/dist/paths/dirnames.js +17 -42
  391. package/dist/paths/exts.js +23 -54
  392. package/dist/paths/filenames.js +21 -50
  393. package/dist/paths/globs.js +15 -38
  394. package/dist/paths/normalize.js +215 -236
  395. package/dist/paths/packages.js +34 -49
  396. package/dist/paths/predicates.js +184 -106
  397. package/dist/paths/resolve.js +146 -128
  398. package/dist/paths/rewire.js +108 -72
  399. package/dist/paths/socket.js +252 -132
  400. package/dist/paths/walk.js +55 -60
  401. package/dist/perf/_internal.js +10 -28
  402. package/dist/perf/enabled.js +21 -30
  403. package/dist/perf/metrics.js +81 -67
  404. package/dist/perf/report.js +79 -80
  405. package/dist/perf/timer.js +180 -126
  406. package/dist/perf/types.js +1 -17
  407. package/dist/pkg-ext/data.js +29 -82
  408. package/dist/pkg-ext/types.js +1 -17
  409. package/dist/primordials/array.js +120 -198
  410. package/dist/primordials/buffer.js +28 -51
  411. package/dist/primordials/date.js +26 -51
  412. package/dist/primordials/error.js +33 -59
  413. package/dist/primordials/function.js +21 -41
  414. package/dist/primordials/globals.js +25 -48
  415. package/dist/primordials/json.js +14 -30
  416. package/dist/primordials/map-set.js +88 -152
  417. package/dist/primordials/math.js +59 -116
  418. package/dist/primordials/number.js +41 -76
  419. package/dist/primordials/object.js +56 -116
  420. package/dist/primordials/promise.js +28 -52
  421. package/dist/primordials/reflect.js +24 -52
  422. package/dist/primordials/regexp.js +25 -47
  423. package/dist/primordials/string.js +114 -167
  424. package/dist/primordials/symbol.js +40 -72
  425. package/dist/primordials/uncurry.js +38 -55
  426. package/dist/primordials/url.js +27 -66
  427. package/dist/process/_internal.js +7 -32
  428. package/dist/process/abort.js +29 -35
  429. package/dist/process/lock-instance.js +26 -30
  430. package/dist/process/lock-manager.js +279 -307
  431. package/dist/process/lock-types.js +1 -17
  432. package/dist/process/spawn/_internal.js +43 -55
  433. package/dist/process/spawn/child.js +172 -211
  434. package/dist/process/spawn/errors.js +116 -113
  435. package/dist/process/spawn/stdio.js +51 -35
  436. package/dist/process/spawn/types.js +1 -17
  437. package/dist/process/transient.js +49 -66
  438. package/dist/promises/_internal.js +31 -34
  439. package/dist/promises/iterate.js +238 -102
  440. package/dist/promises/options.js +123 -101
  441. package/dist/promises/queue.js +115 -136
  442. package/dist/promises/resolvers.js +77 -46
  443. package/dist/promises/retry.js +156 -101
  444. package/dist/promises/types.js +1 -17
  445. package/dist/regexps/escape.js +32 -30
  446. package/dist/regexps/hex.js +16 -33
  447. package/dist/regexps/spec.js +53 -81
  448. package/dist/releases/github-archives.js +127 -118
  449. package/dist/releases/github-asset-url.js +162 -146
  450. package/dist/releases/github-assets.js +37 -49
  451. package/dist/releases/github-auth.js +32 -48
  452. package/dist/releases/github-downloads.js +118 -138
  453. package/dist/releases/github-listing.js +175 -145
  454. package/dist/releases/github-retry-config.js +41 -47
  455. package/dist/releases/github-types.js +1 -17
  456. package/dist/releases/socket-btm.js +273 -192
  457. package/dist/schema/parse.js +35 -36
  458. package/dist/schema/types.js +1 -17
  459. package/dist/schema/validate.js +118 -99
  460. package/dist/sea/detect.js +57 -52
  461. package/dist/secrets/_internal.js +86 -67
  462. package/dist/secrets/find.js +96 -77
  463. package/dist/secrets/keychain.js +315 -309
  464. package/dist/secrets/linux.js +133 -135
  465. package/dist/secrets/macos.js +151 -147
  466. package/dist/secrets/rc.js +182 -181
  467. package/dist/secrets/socket-api-token.js +28 -43
  468. package/dist/secrets/types.js +1 -17
  469. package/dist/secrets/windows.js +184 -242
  470. package/dist/shadow/skip.js +51 -70
  471. package/dist/shadow/types.js +1 -17
  472. package/dist/shell/parse.d.ts +26 -0
  473. package/dist/shell/parse.js +35 -0
  474. package/dist/shell/quote.d.ts +19 -0
  475. package/dist/shell/quote.js +30 -0
  476. package/dist/smol/detect.js +67 -43
  477. package/dist/smol/http.js +33 -37
  478. package/dist/smol/https.js +31 -37
  479. package/dist/smol/manifest.js +33 -37
  480. package/dist/smol/path.js +33 -37
  481. package/dist/smol/primordial.js +35 -37
  482. package/dist/smol/purl.js +34 -37
  483. package/dist/smol/versions.js +31 -37
  484. package/dist/smol/vfs.js +46 -38
  485. package/dist/sorts/_internal.js +14 -40
  486. package/dist/sorts/natural.js +57 -64
  487. package/dist/sorts/semver.js +33 -43
  488. package/dist/sorts/strings.js +24 -30
  489. package/dist/sorts/types.js +1 -17
  490. package/dist/spinner/default.js +72 -63
  491. package/dist/spinner/format.js +86 -71
  492. package/dist/spinner/spinner.js +749 -797
  493. package/dist/spinner/types.js +1 -17
  494. package/dist/spinner/with.js +193 -137
  495. package/dist/ssri/convert.js +64 -47
  496. package/dist/ssri/parse.js +38 -37
  497. package/dist/ssri/validate.js +51 -34
  498. package/dist/stdio/_internal.js +50 -46
  499. package/dist/stdio/clear.js +208 -86
  500. package/dist/stdio/divider.js +170 -97
  501. package/dist/stdio/footer.js +116 -110
  502. package/dist/stdio/header.js +117 -90
  503. package/dist/stdio/progress.js +189 -218
  504. package/dist/stdio/prompts.js +244 -168
  505. package/dist/stdio/stderr.js +173 -78
  506. package/dist/stdio/stdout.js +177 -94
  507. package/dist/streams/parallel.js +58 -50
  508. package/dist/streams/transform.js +36 -45
  509. package/dist/strings/format.js +145 -63
  510. package/dist/strings/predicates.js +56 -34
  511. package/dist/strings/search.js +52 -42
  512. package/dist/strings/transform.js +113 -72
  513. package/dist/strings/types.js +1 -17
  514. package/dist/strings/width.js +89 -82
  515. package/dist/tables/bordered.js +81 -81
  516. package/dist/tables/padding.js +36 -46
  517. package/dist/tables/simple.js +62 -70
  518. package/dist/tables/types.js +1 -17
  519. package/dist/temporal/instant.js +72 -81
  520. package/dist/temporal/now.js +40 -31
  521. package/dist/temporal/slots.js +42 -36
  522. package/dist/temporal/system.js +36 -36
  523. package/dist/temporal/temporal.js +11 -41
  524. package/dist/themes/context.js +131 -69
  525. package/dist/themes/resolve.js +207 -132
  526. package/dist/themes/themes.js +225 -194
  527. package/dist/themes/types.js +1 -17
  528. package/dist/url/parse.js +48 -51
  529. package/dist/url/predicates.js +24 -31
  530. package/dist/url/search-params.js +133 -101
  531. package/dist/url/types.js +1 -17
  532. package/dist/versions/_internal.js +31 -33
  533. package/dist/versions/compare.js +80 -58
  534. package/dist/versions/modify.js +41 -39
  535. package/dist/versions/parse.js +88 -64
  536. package/dist/versions/range.js +58 -41
  537. package/dist/versions/types.js +1 -17
  538. package/dist/words/article.js +22 -30
  539. package/dist/words/capitalize.js +25 -34
  540. package/dist/words/pluralize.js +23 -31
  541. package/dist/words/types.js +1 -17
  542. package/package.json +17 -5
@@ -1,39 +1,38 @@
1
1
  "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
- var parse_exports = {};
22
- __export(parse_exports, {
23
- parseSchema: () => parseSchema
24
- });
25
- module.exports = __toCommonJS(parse_exports);
26
- var import_validate = require("./validate");
27
- var import_error = require("../primordials/error");
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_primordials_error = require('../primordials/error.js');
5
+ const require_schema_validate = require('./validate.js');
6
+
7
+ //#region src/schema/parse.ts
8
+ /**
9
+ * @file Throwing twin of `validateSchema`. Use `parseSchema(schema, data)` for
10
+ * fail-fast trust boundaries (app startup, config files, internal
11
+ * assertions). Use the non-throwing `validateSchema` for recoverable input
12
+ * (form fields, API request bodies, anywhere errors need to surface to a
13
+ * user).
14
+ *
15
+ * @example
16
+ * ;```ts
17
+ * import { z } from 'zod'
18
+ * import { parseSchema } from '@socketsecurity/lib/schema/parse'
19
+ *
20
+ * const Config = z.object({ host: z.string(), port: z.number() })
21
+ * const config = parseSchema(Config, json) // throws on invalid
22
+ * ```
23
+ */
24
+ /**
25
+ * Parse `data` against `schema` and return the validated value.
26
+ *
27
+ * @throws {Error} When validation fails. The message lists all issues as `path:
28
+ * message, path: message, ...`. Use `validateSchema` if you need structured
29
+ * access to the error list.
30
+ */
28
31
  function parseSchema(schema, data) {
29
- const result = (0, import_validate.validateSchema)(schema, data);
30
- if (result.ok) {
31
- return result.value;
32
- }
33
- const summary = result.errors.map((e) => `${e.path.join(".") || "(root)"}: ${e.message}`).join(", ");
34
- throw new import_error.ErrorCtor(`Validation failed: ${summary}`);
32
+ const result = require_schema_validate.validateSchema(schema, data);
33
+ if (result.ok) return result.value;
34
+ throw new require_primordials_error.ErrorCtor(`Validation failed: ${result.errors.map((e) => `${e.path.join(".") || "(root)"}: ${e.message}`).join(", ")}`);
35
35
  }
36
- // Annotate the CommonJS export names for ESM import in node:
37
- 0 && (module.exports = {
38
- parseSchema
39
- });
36
+
37
+ //#endregion
38
+ exports.parseSchema = parseSchema;
@@ -1,18 +1,2 @@
1
1
  "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (let key of __getOwnPropNames(from))
11
- if (!__hasOwnProp.call(to, key) && key !== except)
12
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- }
14
- return to;
15
- };
16
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
17
- var types_exports = {};
18
- module.exports = __toCommonJS(types_exports);
2
+ /* Socket Lib - Built with rolldown */
@@ -1,108 +1,127 @@
1
1
  "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
- var validate_exports = {};
22
- __export(validate_exports, {
23
- isTypeBoxSchema: () => isTypeBoxSchema,
24
- normalizeTypeBoxErrors: () => normalizeTypeBoxErrors,
25
- normalizeZodError: () => normalizeZodError,
26
- validateSchema: () => validateSchema
27
- });
28
- module.exports = __toCommonJS(validate_exports);
29
- var import_array = require("../primordials/array");
30
- var import_error = require("../primordials/error");
31
- var import_number = require("../primordials/number");
32
- var import_object = require("../primordials/object");
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_primordials_error = require('../primordials/error.js');
5
+ const require_primordials_number = require('../primordials/number.js');
6
+ const require_primordials_array = require('../primordials/array.js');
7
+ const require_primordials_object = require('../primordials/object.js');
8
+
9
+ //#region src/schema/validate.ts
10
+ /**
11
+ * @file Universal schema validator — non-throwing. Accepts any Zod-shaped
12
+ * schema (`.safeParse`-exposing) and returns a tagged result `{ ok: true,
13
+ * value } | { ok: false, errors }` with normalized `{ path, message }`
14
+ * issues. No runtime dependency on `zod` — detection is purely structural.
15
+ *
16
+ * @example
17
+ * ;```ts
18
+ * import { z } from 'zod'
19
+ * import { validateSchema } from '@socketsecurity/lib/schema/validate'
20
+ *
21
+ * const User = z.object({ name: z.string() })
22
+ * const r = validateSchema(User, data)
23
+ * if (r.ok)
24
+ * r.value.name // string
25
+ * else r.errors // ValidationIssue[]
26
+ * ```
27
+ *
28
+ * @internal
29
+ * socket-lib additionally recognizes TypeBox schemas for its own internal
30
+ * use (e.g. `src/ipc.ts`'s stub-file validation). That path is not a
31
+ * supported consumer API.
32
+ */
33
+ /**
34
+ * Detect a TypeBox schema structurally: object with a symbol key whose
35
+ * description is `'TypeBox.Kind'`, holding a string value.
36
+ *
37
+ * @internal
38
+ */
33
39
  function isTypeBoxSchema(schema) {
34
- if (schema === null || typeof schema !== "object") {
35
- return false;
36
- }
37
- for (const sym of (0, import_object.ObjectGetOwnPropertySymbols)(schema)) {
38
- if (sym.description === "TypeBox.Kind") {
39
- return typeof schema[sym] === "string";
40
- }
41
- }
42
- return false;
40
+ if (schema === null || typeof schema !== "object") return false;
41
+ for (const sym of require_primordials_object.ObjectGetOwnPropertySymbols(schema)) if (sym.description === "TypeBox.Kind") return typeof schema[sym] === "string";
42
+ return false;
43
43
  }
44
+ /**
45
+ * Normalize a TypeBox `ValueError` iterator into plain issues. TypeBox paths
46
+ * are JSON Pointers (`/user/0/name`); convert to arrays.
47
+ *
48
+ * @internal
49
+ */
44
50
  function normalizeTypeBoxErrors(errors) {
45
- const out = [];
46
- for (const err of errors) {
47
- const segs = err.path.split("/").filter(Boolean);
48
- out.push({
49
- path: segs.map((s) => {
50
- const n = Number(s);
51
- return (0, import_number.NumberIsInteger)(n) && String(n) === s ? n : s;
52
- }),
53
- message: err.message
54
- });
55
- }
56
- return out;
51
+ const out = [];
52
+ for (const err of errors) {
53
+ const segs = err.path.split("/").filter(Boolean);
54
+ out.push({
55
+ path: segs.map((s) => {
56
+ const n = Number(s);
57
+ return require_primordials_number.NumberIsInteger(n) && String(n) === s ? n : s;
58
+ }),
59
+ message: err.message
60
+ });
61
+ }
62
+ return out;
57
63
  }
64
+ /**
65
+ * Normalize a Zod error object (v3 or v4) into plain issues. Both versions
66
+ * expose `.issues: Array<{ path, message }>`.
67
+ *
68
+ * @internal
69
+ */
58
70
  function normalizeZodError(err) {
59
- if (err === null || typeof err !== "object") {
60
- return [{ path: [], message: String(err) }];
61
- }
62
- const issues = err.issues;
63
- if (!(0, import_array.ArrayIsArray)(issues)) {
64
- return [{ path: [], message: "Unknown validation error" }];
65
- }
66
- return issues.map((issue) => {
67
- const i = issue;
68
- return {
69
- path: (0, import_array.ArrayIsArray)(i.path) ? i.path : [],
70
- message: typeof i.message === "string" ? i.message : "Invalid value"
71
- };
72
- });
71
+ if (err === null || typeof err !== "object") return [{
72
+ path: [],
73
+ message: String(err)
74
+ }];
75
+ const issues = err.issues;
76
+ if (!require_primordials_array.ArrayIsArray(issues)) return [{
77
+ path: [],
78
+ message: "Unknown validation error"
79
+ }];
80
+ return issues.map((issue) => {
81
+ const i = issue;
82
+ return {
83
+ path: require_primordials_array.ArrayIsArray(i.path) ? i.path : [],
84
+ message: typeof i.message === "string" ? i.message : "Invalid value"
85
+ };
86
+ });
73
87
  }
88
+ /**
89
+ * Validate `data` against a Zod-style `schema`. Non-throwing.
90
+ *
91
+ * The return type narrows `value` to `Infer<S>`, so callers get `z.infer<typeof
92
+ * S>` with no casts. Errors are normalized to `{ path, message }` regardless of
93
+ * the underlying validator.
94
+ *
95
+ * @throws {TypeError} When `schema` is not a recognized validator kind.
96
+ */
74
97
  function validateSchema(schema, data) {
75
- if (isTypeBoxSchema(schema)) {
76
- const { Value } = require("../external/@sinclair/typebox/value");
77
- if (Value.Check(schema, data)) {
78
- return { ok: true, value: data };
79
- }
80
- return {
81
- ok: false,
82
- errors: normalizeTypeBoxErrors(Value.Errors(schema, data))
83
- };
84
- }
85
- if (schema !== null && typeof schema === "object" && typeof schema.safeParse === "function") {
86
- const result = schema.safeParse(data);
87
- if (result.success === true) {
88
- return {
89
- ok: true,
90
- value: result.data
91
- };
92
- }
93
- return {
94
- ok: false,
95
- errors: normalizeZodError(result.error)
96
- };
97
- }
98
- throw new import_error.TypeErrorCtor(
99
- "validateSchema: unsupported schema kind. Expected a Zod schema or an object with a safeParse method."
100
- );
98
+ if (isTypeBoxSchema(schema)) {
99
+ const { Value } = require("../external/@sinclair/typebox/value");
100
+ if (Value.Check(schema, data)) return {
101
+ ok: true,
102
+ value: data
103
+ };
104
+ return {
105
+ ok: false,
106
+ errors: normalizeTypeBoxErrors(Value.Errors(schema, data))
107
+ };
108
+ }
109
+ if (schema !== null && typeof schema === "object" && typeof schema.safeParse === "function") {
110
+ const result = schema.safeParse(data);
111
+ if (result.success === true) return {
112
+ ok: true,
113
+ value: result.data
114
+ };
115
+ return {
116
+ ok: false,
117
+ errors: normalizeZodError(result.error)
118
+ };
119
+ }
120
+ throw new require_primordials_error.TypeErrorCtor("validateSchema: unsupported schema kind. Expected a Zod schema or an object with a safeParse method.");
101
121
  }
102
- // Annotate the CommonJS export names for ESM import in node:
103
- 0 && (module.exports = {
104
- isTypeBoxSchema,
105
- normalizeTypeBoxErrors,
106
- normalizeZodError,
107
- validateSchema
108
- });
122
+
123
+ //#endregion
124
+ exports.isTypeBoxSchema = isTypeBoxSchema;
125
+ exports.normalizeTypeBoxErrors = normalizeTypeBoxErrors;
126
+ exports.normalizeZodError = normalizeZodError;
127
+ exports.validateSchema = validateSchema;
@@ -1,58 +1,63 @@
1
1
  "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __create = Object.create;
5
- var __defProp = Object.defineProperty;
6
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
- var __getOwnPropNames = Object.getOwnPropertyNames;
8
- var __getProtoOf = Object.getPrototypeOf;
9
- var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __export = (target, all) => {
11
- for (var name in all)
12
- __defProp(target, name, { get: all[name], enumerable: true });
13
- };
14
- var __copyProps = (to, from, except, desc) => {
15
- if (from && typeof from === "object" || typeof from === "function") {
16
- for (let key of __getOwnPropNames(from))
17
- if (!__hasOwnProp.call(to, key) && key !== except)
18
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
- }
20
- return to;
21
- };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
- // If the importer is in node compatibility mode or this is not an ESM
24
- // file that has been converted to a CommonJS file using a Babel-
25
- // compatible transform (i.e. "__esModule" has not been set), then set
26
- // "default" to the CommonJS "module.exports" for node compatibility.
27
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
28
- mod
29
- ));
30
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
31
- var detect_exports = {};
32
- __export(detect_exports, {
33
- getSeaBinaryPath: () => getSeaBinaryPath,
34
- isSeaBinary: () => isSeaBinary
35
- });
36
- module.exports = __toCommonJS(detect_exports);
37
- var import_node_process = __toESM(require("node:process"));
38
- var import_normalize = require("../paths/normalize");
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_paths_normalize = require('../paths/normalize.js');
6
+ let node_process = require("node:process");
7
+ node_process = require_runtime.__toESM(node_process);
8
+
9
+ //#region src/sea/detect.ts
10
+ /**
11
+ * @file SEA (Single Executable Application) binary detection + path accessor.
12
+ * Two responsibilities (mirror of `src/smol/detect.ts` shape):
13
+ *
14
+ * 1. `isSeaBinary()` memoized boolean detector for whether the current process
15
+ * is running as a Node.js Single Executable Application. Probes via Node
16
+ * 24+'s `node:sea.isSea()` native API; falls back to `false` on older
17
+ * runtimes.
18
+ * 2. `getSeaBinaryPath()` returns the path of the SEA binary
19
+ * (`process.argv[0]` normalized) when running as SEA, otherwise
20
+ * `undefined`. Defensive across runtimes: returns `false` / `undefined`
21
+ * cleanly on stock Node < 24, browsers, Deno, Bun.
22
+ */
23
+ /**
24
+ * Cached SEA detection result.
25
+ */
39
26
  let _isSea;
27
+ /**
28
+ * Get the current SEA binary path. Only valid when running as a SEA binary.
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * const binPath = getSeaBinaryPath()
33
+ * if (binPath) {
34
+ * console.log(`Running as SEA binary: ${binPath}`)
35
+ * }
36
+ * ```
37
+ */
40
38
  function getSeaBinaryPath() {
41
- return isSeaBinary() && import_node_process.default.argv[0] ? (0, import_normalize.normalizePath)(import_node_process.default.argv[0]) : void 0;
39
+ return isSeaBinary() && node_process.default.argv[0] ? /* @__PURE__ */ require_paths_normalize.normalizePath(node_process.default.argv[0]) : void 0;
42
40
  }
41
+ /**
42
+ * Detect if the current process is running as a SEA binary. Uses Node.js 24+
43
+ * native API with caching for performance.
44
+ *
45
+ * @example
46
+ * ;```typescript
47
+ * if (isSeaBinary()) {
48
+ * console.log('Running as a Single Executable Application')
49
+ * }
50
+ * ```
51
+ */
43
52
  function isSeaBinary() {
44
- if (_isSea === void 0) {
45
- try {
46
- const seaModule = require("node:sea");
47
- _isSea = seaModule.isSea();
48
- } catch {
49
- _isSea = false;
50
- }
51
- }
52
- return _isSea ?? false;
53
+ if (_isSea === void 0) try {
54
+ _isSea = require("node:sea").isSea();
55
+ } catch {
56
+ _isSea = false;
57
+ }
58
+ return _isSea ?? false;
53
59
  }
54
- // Annotate the CommonJS export names for ESM import in node:
55
- 0 && (module.exports = {
56
- getSeaBinaryPath,
57
- isSeaBinary
58
- });
60
+
61
+ //#endregion
62
+ exports.getSeaBinaryPath = getSeaBinaryPath;
63
+ exports.isSeaBinary = isSeaBinary;
@@ -1,84 +1,103 @@
1
1
  "use strict";
2
- /* Socket Lib - Built with esbuild */
3
- "use strict";
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
- var internal_exports = {};
22
- __export(internal_exports, {
23
- cacheKey: () => cacheKey,
24
- dedupeRead: () => dedupeRead,
25
- getCached: () => getCached,
26
- has: () => has,
27
- invalidate: () => invalidate,
28
- invalidateAll: () => invalidateAll,
29
- setCached: () => setCached
30
- });
31
- module.exports = __toCommonJS(internal_exports);
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ //#region src/secrets/_internal.ts
6
+ /**
7
+ * @file Private internals for `secrets/` — process-scoped read cache for the
8
+ * keychain backend. Underscore-prefixed and skipped by the export generator
9
+ * (`dist/**\/_*` ignore pattern in
10
+ * `scripts/fix/generate-package-exports.mts`) so this module is NOT part of
11
+ * the public API surface. Imported by `./keychain.ts`. Every `readSecret`
12
+ * call shells out to the OS credential CLI (`security`, `secret-tool`,
13
+ * PowerShell). On macOS, the first read of a given entry by a new binary path
14
+ * triggers a Keychain auth prompt unless the entry was written with `-A -T
15
+ * ''` (which we now do — see `./macos.ts`). Even so, every read is a process
16
+ * spawn, which costs a few ms per call. For tools that read the same secret
17
+ * multiple times within one process (CLI commands handling multiple
18
+ * subcommands, MCP request handlers serving sibling endpoints), a
19
+ * process-scoped cache eliminates the redundant work. Lifetime: a single Node
20
+ * process. The cache lives in module-level state; importing this module from
21
+ * a child process gets a fresh cache. No persistence to disk — for that, see
22
+ * `./rc.ts` which materializes a one-time `export` block into the shell rc.
23
+ * Invalidation: callers MUST invalidate the cache when they write/delete the
24
+ * same `{service, account}` pair. The public keychain.ts wraps writeSecret /
25
+ * deleteSecret so cache eviction happens automatically. Concurrency:
26
+ * in-flight reads of the same key share a single Promise so two `await
27
+ * readSecret(...)` calls don't spawn two `security` processes for the same
28
+ * entry. Once the Promise resolves, the value is cached. If the read returns
29
+ * undefined (entry missing), `undefined` is cached too — callers that want a
30
+ * re-check after creating the entry must call `invalidate`.
31
+ */
32
32
  const valueCache = /* @__PURE__ */ new Map();
33
33
  const inflight = /* @__PURE__ */ new Map();
34
34
  function cacheKey(service, account) {
35
- return `${service} ${account}`;
35
+ return `${service} ${account}`;
36
36
  }
37
+ /**
38
+ * Coordinate concurrent reads of the same key. The first caller registers a
39
+ * Promise; subsequent callers receive the same Promise instead of spawning
40
+ * another OS call. On settle, the Promise's inflight slot is dropped and the
41
+ * value is cached.
42
+ */
37
43
  async function dedupeRead(service, account, reader) {
38
- const key = cacheKey(service, account);
39
- if (valueCache.has(key)) {
40
- return valueCache.get(key);
41
- }
42
- const existing = inflight.get(key);
43
- if (existing) {
44
- return existing;
45
- }
46
- const promise = (async () => {
47
- try {
48
- const value = await reader();
49
- valueCache.set(key, value);
50
- return value;
51
- } finally {
52
- inflight.delete(key);
53
- }
54
- })();
55
- inflight.set(key, promise);
56
- return promise;
44
+ const key = cacheKey(service, account);
45
+ if (valueCache.has(key)) return valueCache.get(key);
46
+ const existing = inflight.get(key);
47
+ if (existing) return existing;
48
+ const promise = (async () => {
49
+ try {
50
+ const value = await reader();
51
+ valueCache.set(key, value);
52
+ return value;
53
+ } finally {
54
+ inflight.delete(key);
55
+ }
56
+ })();
57
+ inflight.set(key, promise);
58
+ return promise;
57
59
  }
60
+ /**
61
+ * Look up a cached value. Returns `undefined` for both "cached as absent" and
62
+ * "not yet cached" — callers that need to distinguish those cases should use
63
+ * `has` first.
64
+ */
58
65
  function getCached(service, account) {
59
- return valueCache.get(cacheKey(service, account));
66
+ return valueCache.get(cacheKey(service, account));
60
67
  }
61
68
  function has(service, account) {
62
- return valueCache.has(cacheKey(service, account));
69
+ return valueCache.has(cacheKey(service, account));
63
70
  }
71
+ /**
72
+ * Drop a cached value. Called by `writeSecret` / `deleteSecret` after the
73
+ * underlying OS state changes so a subsequent `readSecret` reflects the new
74
+ * reality. Also called by `invalidateAll()` for service-wide refreshes.
75
+ */
64
76
  function invalidate(service, account) {
65
- valueCache.delete(cacheKey(service, account));
66
- inflight.delete(cacheKey(service, account));
77
+ valueCache.delete(cacheKey(service, account));
78
+ inflight.delete(cacheKey(service, account));
67
79
  }
80
+ /**
81
+ * Wipe the entire cache. Tests use this between cases; consumers generally
82
+ * don't need it (process exit drops the cache anyway).
83
+ */
68
84
  function invalidateAll() {
69
- valueCache.clear();
70
- inflight.clear();
85
+ valueCache.clear();
86
+ inflight.clear();
71
87
  }
88
+ /**
89
+ * Store a value (or `undefined` to record an absent entry) so later reads of
90
+ * the same key short-circuit the OS call.
91
+ */
72
92
  function setCached(service, account, value) {
73
- valueCache.set(cacheKey(service, account), value);
93
+ valueCache.set(cacheKey(service, account), value);
74
94
  }
75
- // Annotate the CommonJS export names for ESM import in node:
76
- 0 && (module.exports = {
77
- cacheKey,
78
- dedupeRead,
79
- getCached,
80
- has,
81
- invalidate,
82
- invalidateAll,
83
- setCached
84
- });
95
+
96
+ //#endregion
97
+ exports.cacheKey = cacheKey;
98
+ exports.dedupeRead = dedupeRead;
99
+ exports.getCached = getCached;
100
+ exports.has = has;
101
+ exports.invalidate = invalidate;
102
+ exports.invalidateAll = invalidateAll;
103
+ exports.setCached = setCached;