@socketsecurity/lib 6.0.2 → 6.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/_virtual/_rolldown/runtime.js +45 -0
  3. package/dist/abort/signal.js +53 -59
  4. package/dist/ai/discover.js +110 -110
  5. package/dist/ai/profiles.d.mts +48 -25
  6. package/dist/ai/profiles.js +95 -59
  7. package/dist/ai/spawn.d.mts +2 -2
  8. package/dist/ai/spawn.js +172 -194
  9. package/dist/ai/types.d.mts +3 -3
  10. package/dist/ai/types.js +1 -17
  11. package/dist/ai/worktree.d.mts +2 -2
  12. package/dist/ai/worktree.js +160 -183
  13. package/dist/ansi/constants.js +16 -38
  14. package/dist/ansi/strip.js +44 -41
  15. package/dist/archives/_internal.js +64 -73
  16. package/dist/archives/detect.js +30 -43
  17. package/dist/archives/extract.js +43 -50
  18. package/dist/archives/tar.js +197 -228
  19. package/dist/archives/types.js +1 -17
  20. package/dist/archives/zip.js +85 -121
  21. package/dist/argv/flag-predicates.js +203 -101
  22. package/dist/argv/flag-types.js +96 -113
  23. package/dist/argv/parse-args-string.d.ts +16 -14
  24. package/dist/argv/parse-args-string.js +42 -39
  25. package/dist/argv/parse.js +145 -163
  26. package/dist/arrays/_internal.js +65 -48
  27. package/dist/arrays/chunk.js +51 -40
  28. package/dist/arrays/join.js +87 -35
  29. package/dist/arrays/predicates.js +46 -28
  30. package/dist/arrays/unique.js +45 -31
  31. package/dist/bin/_internal.js +34 -42
  32. package/dist/bin/check-primordials.js +175 -233
  33. package/dist/bin/check.js +51 -72
  34. package/dist/bin/exec.js +70 -74
  35. package/dist/bin/find.js +151 -134
  36. package/dist/bin/resolve.js +180 -246
  37. package/dist/bin/shadow.js +24 -33
  38. package/dist/bin/socket-lib.js +51 -73
  39. package/dist/bin/types.js +1 -17
  40. package/dist/bin/which.js +211 -146
  41. package/dist/cacache/_internal.js +25 -40
  42. package/dist/cacache/clear.js +79 -72
  43. package/dist/cacache/read.js +48 -46
  44. package/dist/cacache/tmp.js +29 -36
  45. package/dist/cacache/types.js +1 -17
  46. package/dist/cacache/write.js +43 -48
  47. package/dist/cache/ttl/store.js +232 -288
  48. package/dist/cache/ttl/types.js +1 -17
  49. package/dist/checks/primordials-defaults.js +83 -89
  50. package/dist/checks/primordials.js +225 -277
  51. package/dist/colors/convert.js +45 -37
  52. package/dist/colors/palette.js +88 -45
  53. package/dist/colors/socket-palette.js +74 -84
  54. package/dist/colors/types.js +1 -17
  55. package/dist/compression/_internal.js +57 -72
  56. package/dist/compression/brotli.js +94 -127
  57. package/dist/compression/gzip.js +95 -121
  58. package/dist/compression/types.js +1 -17
  59. package/dist/constants/agents.js +61 -113
  60. package/dist/constants/encoding.js +19 -42
  61. package/dist/constants/github.js +12 -30
  62. package/dist/constants/licenses.js +48 -63
  63. package/dist/constants/lifecycle-script-names.js +31 -45
  64. package/dist/constants/maintained-node-versions.js +22 -37
  65. package/dist/constants/node.js +226 -167
  66. package/dist/constants/package-default-node-range.js +16 -41
  67. package/dist/constants/package-default-socket-categories.js +12 -30
  68. package/dist/constants/packages.js +77 -126
  69. package/dist/constants/platform.js +27 -49
  70. package/dist/constants/sentinels.js +23 -48
  71. package/dist/constants/socket.js +42 -87
  72. package/dist/constants/testing.js +15 -34
  73. package/dist/constants/time.js +16 -36
  74. package/dist/constants/typescript.js +32 -52
  75. package/dist/cover/code.js +111 -142
  76. package/dist/cover/formatters.js +118 -101
  77. package/dist/cover/type.js +50 -76
  78. package/dist/cover/types.js +1 -17
  79. package/dist/crypto/hash.js +54 -46
  80. package/dist/debug/_internal.js +62 -71
  81. package/dist/debug/caller-info.js +53 -64
  82. package/dist/debug/namespace.js +80 -90
  83. package/dist/debug/output.js +172 -188
  84. package/dist/debug/types.js +1 -17
  85. package/dist/dlx/_internal.js +24 -43
  86. package/dist/dlx/arborist.js +162 -160
  87. package/dist/dlx/binary-cache.js +228 -200
  88. package/dist/dlx/binary-download.js +172 -211
  89. package/dist/dlx/binary-resolution.js +165 -157
  90. package/dist/dlx/binary-types.js +1 -17
  91. package/dist/dlx/binary.js +149 -189
  92. package/dist/dlx/cache.js +45 -30
  93. package/dist/dlx/detect.js +245 -167
  94. package/dist/dlx/dir.js +67 -51
  95. package/dist/dlx/firewall.js +62 -100
  96. package/dist/dlx/lockfile.js +122 -127
  97. package/dist/dlx/manifest.js +264 -274
  98. package/dist/dlx/package.js +241 -244
  99. package/dist/dlx/packages.js +99 -96
  100. package/dist/dlx/paths.js +73 -59
  101. package/dist/dlx/spec.js +52 -60
  102. package/dist/dlx/types.js +1 -17
  103. package/dist/eco/cargo/lockfile-format.js +19 -36
  104. package/dist/eco/cargo/manifest-format.js +17 -35
  105. package/dist/eco/cargo/parse-lockfile.js +210 -237
  106. package/dist/eco/manifest/analyze-lockfile.js +46 -63
  107. package/dist/eco/manifest/detect-format.js +66 -90
  108. package/dist/eco/manifest/find-packages.js +39 -64
  109. package/dist/eco/manifest/get-package-versions.js +27 -48
  110. package/dist/eco/manifest/get-package.js +21 -40
  111. package/dist/eco/manifest/manifest-error.js +14 -35
  112. package/dist/eco/manifest/parse-lockfile.js +40 -86
  113. package/dist/eco/manifest/parse-manifest.js +26 -43
  114. package/dist/eco/manifest/parse.js +26 -47
  115. package/dist/eco/manifest/types.js +1 -17
  116. package/dist/eco/npm/bun/exec.js +23 -32
  117. package/dist/eco/npm/manifest-format.js +21 -35
  118. package/dist/eco/npm/npm/exec.js +51 -61
  119. package/dist/eco/npm/npm/extract-package-name-from-path.js +28 -50
  120. package/dist/eco/npm/npm/flags.js +80 -52
  121. package/dist/eco/npm/npm/lockfile-format.js +21 -40
  122. package/dist/eco/npm/npm/parse-git-url.js +26 -40
  123. package/dist/eco/npm/npm/parse-lockfile.js +184 -210
  124. package/dist/eco/npm/parse-package-json.js +71 -102
  125. package/dist/eco/npm/pnpm/detect-pnpm-version.js +22 -43
  126. package/dist/eco/npm/pnpm/exec.js +51 -62
  127. package/dist/eco/npm/pnpm/flags.js +75 -68
  128. package/dist/eco/npm/pnpm/lockfile-format.js +19 -36
  129. package/dist/eco/npm/pnpm/parse-lockfile.js +235 -259
  130. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +37 -47
  131. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +36 -49
  132. package/dist/eco/npm/script.js +82 -90
  133. package/dist/eco/npm/vlt/exec.js +24 -32
  134. package/dist/eco/npm/yarnpkg/yarn/exec.js +60 -59
  135. package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +20 -36
  136. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +194 -242
  137. package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +37 -61
  138. package/dist/eco/purl.js +50 -60
  139. package/dist/eco/types.js +1 -17
  140. package/dist/effects/pulse-frames.js +64 -65
  141. package/dist/effects/shimmer-keyframes.js +71 -52
  142. package/dist/effects/shimmer-terminal.js +81 -50
  143. package/dist/effects/shimmer.js +290 -153
  144. package/dist/env/boolean.js +42 -43
  145. package/dist/env/case-insensitive.js +54 -39
  146. package/dist/env/ci.js +29 -31
  147. package/dist/env/debug.js +28 -31
  148. package/dist/env/github.js +144 -59
  149. package/dist/env/home.js +38 -31
  150. package/dist/env/locale.js +59 -39
  151. package/dist/env/node-auth-token.js +28 -31
  152. package/dist/env/node-env.js +28 -31
  153. package/dist/env/npm.js +94 -47
  154. package/dist/env/number.js +50 -51
  155. package/dist/env/package-manager.js +95 -83
  156. package/dist/env/path.js +28 -31
  157. package/dist/env/pre-commit.js +30 -32
  158. package/dist/env/proxy.js +121 -122
  159. package/dist/env/rewire.js +204 -96
  160. package/dist/env/shell.js +28 -31
  161. package/dist/env/socket-cli.js +233 -81
  162. package/dist/env/socket.js +521 -156
  163. package/dist/env/string.js +43 -44
  164. package/dist/env/temp-dir.js +59 -39
  165. package/dist/env/term.js +28 -31
  166. package/dist/env/test.js +65 -43
  167. package/dist/env/types.js +1 -17
  168. package/dist/env/windows.js +78 -43
  169. package/dist/env/xdg.js +62 -39
  170. package/dist/errors/message.js +40 -46
  171. package/dist/errors/predicates.js +61 -49
  172. package/dist/errors/stack.js +24 -36
  173. package/dist/events/exit/_internal.js +86 -103
  174. package/dist/events/exit/handler.js +48 -55
  175. package/dist/events/exit/intercept.js +49 -70
  176. package/dist/events/exit/lifecycle.js +92 -101
  177. package/dist/events/exit/signals.js +25 -31
  178. package/dist/events/exit/types.js +1 -17
  179. package/dist/events/warning/handler.js +43 -40
  180. package/dist/events/warning/suppress.js +111 -90
  181. package/dist/external/@npmcli/package-json/lib/read-package.js +132 -153
  182. package/dist/external/@npmcli/package-json/lib/sort.js +73 -105
  183. package/dist/external/@npmcli/package-json.js +12705 -15140
  184. package/dist/external/@npmcli/promise-spawn.js +451 -472
  185. package/dist/external/@sinclair/typebox/value.js +7443 -9002
  186. package/dist/external/@sinclair/typebox.js +7516 -7885
  187. package/dist/external/@socketregistry/is-unicode-supported.js +31 -39
  188. package/dist/external/@socketregistry/packageurl-js.js +6127 -7369
  189. package/dist/external/@socketregistry/yocto-spinner.js +394 -455
  190. package/dist/external/@yarnpkg/extensions.js +435 -1022
  191. package/dist/external/adm-zip.js +2313 -2673
  192. package/dist/external/debug.js +700 -687
  193. package/dist/external/external-pack.js +2658 -3171
  194. package/dist/external/fast-sort.js +124 -138
  195. package/dist/external/get-east-asian-width.js +70 -64
  196. package/dist/external/libnpmexec.js +28 -31
  197. package/dist/external/npm-pack.js +43617 -50137
  198. package/dist/external/p-map.js +198 -222
  199. package/dist/external/pico-pack.js +6735 -7304
  200. package/dist/external/pony-cause.js +143 -139
  201. package/dist/external/shell-quote.js +226 -0
  202. package/dist/external/spdx-pack.js +1283 -1403
  203. package/dist/external/streaming-iterables.js +835 -1052
  204. package/dist/external/tar-fs.js +2769 -3048
  205. package/dist/external/which.js +267 -251
  206. package/dist/external/yargs-parser.js +851 -1074
  207. package/dist/external-tools/bazel/asset-names.js +98 -90
  208. package/dist/external-tools/bazel/from-download.js +52 -46
  209. package/dist/external-tools/bazel/from-path.js +27 -38
  210. package/dist/external-tools/bazel/read-bazel-version-file.js +35 -57
  211. package/dist/external-tools/bazel/resolve-asset-url.js +24 -39
  212. package/dist/external-tools/bazel/resolve-bazel-version.js +34 -56
  213. package/dist/external-tools/bazel/resolve.js +44 -58
  214. package/dist/external-tools/bazel/types.js +1 -17
  215. package/dist/external-tools/cdxgen/asset-names.js +59 -66
  216. package/dist/external-tools/cdxgen/from-download.js +52 -80
  217. package/dist/external-tools/cdxgen/from-path.js +19 -37
  218. package/dist/external-tools/cdxgen/from-vfs.js +22 -43
  219. package/dist/external-tools/cdxgen/resolve.js +48 -63
  220. package/dist/external-tools/cdxgen/types.js +1 -17
  221. package/dist/external-tools/from-download.js +107 -67
  222. package/dist/external-tools/janus/asset-names.js +44 -51
  223. package/dist/external-tools/janus/from-download.js +45 -70
  224. package/dist/external-tools/janus/from-path.js +19 -37
  225. package/dist/external-tools/janus/from-vfs.js +22 -43
  226. package/dist/external-tools/janus/resolve.js +45 -63
  227. package/dist/external-tools/janus/types.js +1 -17
  228. package/dist/external-tools/jre/asset-names.js +109 -82
  229. package/dist/external-tools/jre/detect-platform-arch.js +25 -49
  230. package/dist/external-tools/jre/from-download.js +71 -67
  231. package/dist/external-tools/jre/from-java-home.js +27 -54
  232. package/dist/external-tools/jre/from-path.js +27 -49
  233. package/dist/external-tools/jre/from-vfs.js +39 -60
  234. package/dist/external-tools/jre/resolve.js +55 -68
  235. package/dist/external-tools/jre/types.js +1 -17
  236. package/dist/external-tools/manifest.js +130 -150
  237. package/dist/external-tools/opengrep/asset-names.js +60 -72
  238. package/dist/external-tools/opengrep/from-download.js +58 -80
  239. package/dist/external-tools/opengrep/from-path.js +19 -37
  240. package/dist/external-tools/opengrep/from-vfs.js +23 -43
  241. package/dist/external-tools/opengrep/resolve.js +43 -63
  242. package/dist/external-tools/opengrep/types.js +1 -17
  243. package/dist/external-tools/sbt/asset-names.js +21 -30
  244. package/dist/external-tools/sbt/from-download.js +50 -61
  245. package/dist/external-tools/sbt/from-path.js +23 -38
  246. package/dist/external-tools/sbt/from-vfs.js +30 -44
  247. package/dist/external-tools/sbt/resolve.js +45 -63
  248. package/dist/external-tools/sbt/types.js +1 -17
  249. package/dist/external-tools/synp/asset-names.js +11 -29
  250. package/dist/external-tools/synp/from-download.js +24 -41
  251. package/dist/external-tools/synp/from-path.js +19 -37
  252. package/dist/external-tools/synp/from-vfs.js +22 -43
  253. package/dist/external-tools/synp/resolve.js +43 -62
  254. package/dist/external-tools/synp/types.js +1 -17
  255. package/dist/external-tools/trivy/asset-names.js +51 -62
  256. package/dist/external-tools/trivy/from-download.js +42 -64
  257. package/dist/external-tools/trivy/from-path.js +19 -37
  258. package/dist/external-tools/trivy/from-vfs.js +22 -43
  259. package/dist/external-tools/trivy/resolve.js +43 -63
  260. package/dist/external-tools/trivy/types.js +1 -17
  261. package/dist/external-tools/trufflehog/asset-names.js +54 -66
  262. package/dist/external-tools/trufflehog/from-download.js +44 -62
  263. package/dist/external-tools/trufflehog/from-path.js +21 -37
  264. package/dist/external-tools/trufflehog/from-vfs.js +26 -43
  265. package/dist/external-tools/trufflehog/resolve.js +43 -63
  266. package/dist/external-tools/trufflehog/types.js +1 -17
  267. package/dist/external-tools/uv/asset-names.js +64 -74
  268. package/dist/external-tools/uv/from-download.js +44 -65
  269. package/dist/external-tools/uv/from-path.js +19 -37
  270. package/dist/external-tools/uv/from-vfs.js +22 -43
  271. package/dist/external-tools/uv/resolve.js +42 -63
  272. package/dist/external-tools/uv/types.js +1 -17
  273. package/dist/fs/_internal.js +40 -42
  274. package/dist/fs/access.d.ts +32 -0
  275. package/dist/fs/access.js +66 -0
  276. package/dist/fs/encoding.js +80 -97
  277. package/dist/fs/find-up.js +126 -147
  278. package/dist/fs/inspect.js +168 -99
  279. package/dist/fs/path-cache.js +31 -32
  280. package/dist/fs/read-dir.js +102 -79
  281. package/dist/fs/read-file.js +177 -118
  282. package/dist/fs/read-json-cache.js +150 -134
  283. package/dist/fs/read-json.js +172 -187
  284. package/dist/fs/resolve-module.d.ts +57 -0
  285. package/dist/fs/resolve-module.js +40 -0
  286. package/dist/fs/safe.js +278 -169
  287. package/dist/fs/types.js +1 -17
  288. package/dist/fs/unique.js +52 -48
  289. package/dist/fs/validate.js +56 -43
  290. package/dist/fs/write-json.js +109 -75
  291. package/dist/git/_internal.js +251 -216
  292. package/dist/git/changed.js +191 -74
  293. package/dist/git/repo.js +118 -104
  294. package/dist/git/staged.js +172 -62
  295. package/dist/git/types.js +1 -17
  296. package/dist/git/unstaged.js +175 -62
  297. package/dist/github/constants.js +25 -33
  298. package/dist/github/errors.js +46 -38
  299. package/dist/github/fetch.js +137 -82
  300. package/dist/github/ghsa.js +217 -151
  301. package/dist/github/refs-cache.js +54 -43
  302. package/dist/github/refs-graphql.js +97 -89
  303. package/dist/github/refs-rest.js +70 -101
  304. package/dist/github/refs.js +105 -64
  305. package/dist/github/token.js +96 -48
  306. package/dist/github/types.js +1 -17
  307. package/dist/globs/_internal.js +73 -82
  308. package/dist/globs/defaults.js +40 -59
  309. package/dist/globs/match.js +93 -77
  310. package/dist/globs/matcher.js +104 -92
  311. package/dist/globs/stream.js +43 -55
  312. package/dist/globs/types.js +1 -17
  313. package/dist/http-request/_internal.js +11 -38
  314. package/dist/http-request/browser-fetch.js +19 -29
  315. package/dist/http-request/browser.js +188 -206
  316. package/dist/http-request/checksums.js +101 -65
  317. package/dist/http-request/download-types.js +1 -17
  318. package/dist/http-request/download.js +195 -196
  319. package/dist/http-request/errors.js +39 -47
  320. package/dist/http-request/headers.js +95 -80
  321. package/dist/http-request/http-request.js +10 -35
  322. package/dist/http-request/node.js +71 -97
  323. package/dist/http-request/request-attempt.js +232 -285
  324. package/dist/http-request/request-types.js +1 -17
  325. package/dist/http-request/request.js +106 -108
  326. package/dist/http-request/response-reader.js +47 -51
  327. package/dist/http-request/response-types.js +22 -38
  328. package/dist/http-request/user-agent.js +73 -55
  329. package/dist/integrity.js +105 -106
  330. package/dist/ipc/_internal.js +34 -48
  331. package/dist/ipc/directory.js +55 -63
  332. package/dist/ipc/paths.js +52 -45
  333. package/dist/ipc/types.js +1 -17
  334. package/dist/ipc/write.js +81 -74
  335. package/dist/ipc-cli/get.js +29 -56
  336. package/dist/ipc-cli/types.js +1 -17
  337. package/dist/json/edit.js +182 -242
  338. package/dist/json/format.js +202 -103
  339. package/dist/json/parse.js +206 -109
  340. package/dist/json/types.js +1 -17
  341. package/dist/links/create.js +93 -60
  342. package/dist/links/types.js +1 -17
  343. package/dist/logger/_internal.js +109 -73
  344. package/dist/logger/browser.js +45 -56
  345. package/dist/logger/colors.js +31 -49
  346. package/dist/logger/console.js +89 -112
  347. package/dist/logger/default.js +19 -33
  348. package/dist/logger/logger.js +5 -29
  349. package/dist/logger/node.js +794 -854
  350. package/dist/logger/symbols-builder.js +54 -56
  351. package/dist/logger/symbols.js +135 -118
  352. package/dist/logger/types.js +1 -17
  353. package/dist/memo/_internal.js +39 -49
  354. package/dist/memo/async.js +133 -117
  355. package/dist/memo/clear.js +25 -34
  356. package/dist/memo/decorator.js +43 -37
  357. package/dist/memo/memoize.js +97 -88
  358. package/dist/memo/once.js +42 -41
  359. package/dist/memo/types.js +1 -17
  360. package/dist/memo/weak.js +45 -41
  361. package/dist/node/async-hooks.js +9 -30
  362. package/dist/node/child-process.js +9 -30
  363. package/dist/node/crypto.js +9 -30
  364. package/dist/node/events.js +9 -30
  365. package/dist/node/fs-promises.js +9 -30
  366. package/dist/node/fs.js +9 -30
  367. package/dist/node/http.js +9 -30
  368. package/dist/node/https.js +9 -30
  369. package/dist/node/module.js +20 -34
  370. package/dist/node/os.js +9 -30
  371. package/dist/node/path.js +9 -30
  372. package/dist/node/timers-promises.js +9 -30
  373. package/dist/node/url.js +9 -30
  374. package/dist/node/util.js +9 -30
  375. package/dist/objects/getters.js +185 -126
  376. package/dist/objects/inspect.js +85 -52
  377. package/dist/objects/mutate.js +96 -76
  378. package/dist/objects/predicates.js +112 -59
  379. package/dist/objects/sort.js +120 -76
  380. package/dist/objects/types.js +1 -17
  381. package/dist/packages/edit-class.js +198 -265
  382. package/dist/packages/edit.js +79 -86
  383. package/dist/packages/exports.js +146 -157
  384. package/dist/packages/isolation.js +159 -209
  385. package/dist/packages/licenses.js +207 -189
  386. package/dist/packages/manifest.js +134 -172
  387. package/dist/packages/normalize.js +91 -102
  388. package/dist/packages/operations.d.ts +2 -0
  389. package/dist/packages/operations.js +283 -254
  390. package/dist/packages/provenance.js +195 -245
  391. package/dist/packages/specs.js +94 -84
  392. package/dist/packages/types.js +1 -17
  393. package/dist/packages/validation.js +49 -50
  394. package/dist/paths/_internal.js +82 -86
  395. package/dist/paths/conversion.js +112 -65
  396. package/dist/paths/dirnames.js +17 -42
  397. package/dist/paths/exts.js +23 -54
  398. package/dist/paths/filenames.js +21 -50
  399. package/dist/paths/globs.js +15 -38
  400. package/dist/paths/normalize.js +215 -236
  401. package/dist/paths/packages.js +34 -49
  402. package/dist/paths/predicates.js +184 -106
  403. package/dist/paths/resolve.js +146 -128
  404. package/dist/paths/rewire.js +108 -72
  405. package/dist/paths/socket.js +252 -132
  406. package/dist/paths/walk.d.ts +40 -0
  407. package/dist/paths/walk.js +58 -0
  408. package/dist/perf/_internal.js +10 -28
  409. package/dist/perf/enabled.js +21 -30
  410. package/dist/perf/metrics.js +81 -67
  411. package/dist/perf/report.js +79 -80
  412. package/dist/perf/timer.js +180 -126
  413. package/dist/perf/types.js +1 -17
  414. package/dist/pkg-ext/data.js +29 -82
  415. package/dist/pkg-ext/types.js +1 -17
  416. package/dist/primordials/array.js +120 -198
  417. package/dist/primordials/buffer.js +28 -51
  418. package/dist/primordials/date.js +26 -51
  419. package/dist/primordials/error.js +33 -59
  420. package/dist/primordials/function.js +21 -41
  421. package/dist/primordials/globals.js +25 -48
  422. package/dist/primordials/json.js +14 -30
  423. package/dist/primordials/map-set.js +88 -152
  424. package/dist/primordials/math.js +59 -116
  425. package/dist/primordials/number.js +41 -76
  426. package/dist/primordials/object.js +56 -116
  427. package/dist/primordials/promise.js +28 -52
  428. package/dist/primordials/reflect.js +24 -52
  429. package/dist/primordials/regexp.js +25 -47
  430. package/dist/primordials/string.js +114 -167
  431. package/dist/primordials/symbol.js +40 -72
  432. package/dist/primordials/uncurry.js +38 -55
  433. package/dist/primordials/url.js +27 -66
  434. package/dist/process/_internal.js +7 -32
  435. package/dist/process/abort.js +29 -35
  436. package/dist/process/lock-instance.js +26 -30
  437. package/dist/process/lock-manager.js +279 -307
  438. package/dist/process/lock-types.js +1 -17
  439. package/dist/process/spawn/_internal.js +43 -55
  440. package/dist/process/spawn/child.js +172 -211
  441. package/dist/process/spawn/errors.js +116 -113
  442. package/dist/process/spawn/stdio.js +51 -35
  443. package/dist/process/spawn/types.js +1 -17
  444. package/dist/process/transient.js +49 -66
  445. package/dist/promises/_internal.d.ts +8 -2
  446. package/dist/promises/_internal.js +31 -38
  447. package/dist/promises/iterate.js +238 -102
  448. package/dist/promises/options.js +123 -101
  449. package/dist/promises/queue.js +115 -136
  450. package/dist/promises/resolvers.js +77 -46
  451. package/dist/promises/retry.js +156 -101
  452. package/dist/promises/types.js +1 -17
  453. package/dist/regexps/escape.js +32 -30
  454. package/dist/regexps/hex.js +16 -33
  455. package/dist/regexps/spec.js +53 -81
  456. package/dist/releases/github-archives.js +127 -118
  457. package/dist/releases/github-asset-url.js +162 -155
  458. package/dist/releases/github-assets.js +37 -49
  459. package/dist/releases/github-auth.js +32 -48
  460. package/dist/releases/github-downloads.js +118 -138
  461. package/dist/releases/github-listing.js +175 -154
  462. package/dist/releases/github-retry-config.d.ts +31 -0
  463. package/dist/releases/github-retry-config.js +46 -0
  464. package/dist/releases/github-types.js +1 -17
  465. package/dist/releases/socket-btm.js +273 -192
  466. package/dist/schema/parse.js +35 -36
  467. package/dist/schema/types.js +1 -17
  468. package/dist/schema/validate.js +118 -99
  469. package/dist/sea/detect.js +57 -52
  470. package/dist/secrets/_internal.js +86 -67
  471. package/dist/secrets/find.js +96 -77
  472. package/dist/secrets/keychain.js +315 -309
  473. package/dist/secrets/linux.js +133 -135
  474. package/dist/secrets/macos.js +151 -147
  475. package/dist/secrets/rc.js +182 -181
  476. package/dist/secrets/socket-api-token.js +28 -43
  477. package/dist/secrets/types.js +1 -17
  478. package/dist/secrets/windows.js +184 -242
  479. package/dist/shadow/skip.js +51 -70
  480. package/dist/shadow/types.js +1 -17
  481. package/dist/shell/parse.d.ts +26 -0
  482. package/dist/shell/parse.js +35 -0
  483. package/dist/shell/quote.d.ts +19 -0
  484. package/dist/shell/quote.js +30 -0
  485. package/dist/smol/detect.js +67 -43
  486. package/dist/smol/http.js +33 -37
  487. package/dist/smol/https.js +31 -37
  488. package/dist/smol/manifest.js +33 -37
  489. package/dist/smol/path.d.ts +51 -0
  490. package/dist/smol/path.js +38 -0
  491. package/dist/smol/primordial.js +35 -37
  492. package/dist/smol/purl.js +34 -37
  493. package/dist/smol/versions.js +31 -37
  494. package/dist/smol/vfs.js +46 -38
  495. package/dist/sorts/_internal.js +14 -40
  496. package/dist/sorts/natural.js +57 -64
  497. package/dist/sorts/semver.js +33 -43
  498. package/dist/sorts/strings.js +24 -30
  499. package/dist/sorts/types.js +1 -17
  500. package/dist/spinner/default.js +72 -63
  501. package/dist/spinner/format.js +86 -71
  502. package/dist/spinner/spinner.js +749 -797
  503. package/dist/spinner/types.js +1 -17
  504. package/dist/spinner/with.js +193 -137
  505. package/dist/ssri/convert.js +64 -47
  506. package/dist/ssri/parse.js +38 -37
  507. package/dist/ssri/validate.js +51 -34
  508. package/dist/stdio/_internal.js +50 -46
  509. package/dist/stdio/clear.js +208 -86
  510. package/dist/stdio/divider.js +170 -97
  511. package/dist/stdio/footer.js +116 -110
  512. package/dist/stdio/header.js +117 -90
  513. package/dist/stdio/progress.js +189 -218
  514. package/dist/stdio/prompts.js +244 -168
  515. package/dist/stdio/stderr.js +173 -78
  516. package/dist/stdio/stdout.js +177 -94
  517. package/dist/streams/parallel.js +58 -50
  518. package/dist/streams/transform.js +36 -45
  519. package/dist/strings/format.js +145 -63
  520. package/dist/strings/predicates.js +56 -34
  521. package/dist/strings/search.js +52 -42
  522. package/dist/strings/transform.js +113 -72
  523. package/dist/strings/types.js +1 -17
  524. package/dist/strings/width.js +89 -82
  525. package/dist/tables/bordered.js +81 -81
  526. package/dist/tables/padding.js +36 -46
  527. package/dist/tables/simple.js +62 -70
  528. package/dist/tables/types.js +1 -17
  529. package/dist/temporal/instant.js +72 -81
  530. package/dist/temporal/now.js +40 -31
  531. package/dist/temporal/slots.js +42 -36
  532. package/dist/temporal/system.js +36 -36
  533. package/dist/temporal/temporal.js +11 -41
  534. package/dist/themes/context.js +131 -69
  535. package/dist/themes/resolve.js +207 -132
  536. package/dist/themes/themes.js +225 -194
  537. package/dist/themes/types.js +1 -17
  538. package/dist/url/parse.js +48 -51
  539. package/dist/url/predicates.js +24 -31
  540. package/dist/url/search-params.js +133 -101
  541. package/dist/url/types.js +1 -17
  542. package/dist/versions/_internal.js +31 -33
  543. package/dist/versions/compare.js +80 -58
  544. package/dist/versions/modify.js +41 -39
  545. package/dist/versions/parse.js +88 -64
  546. package/dist/versions/range.js +58 -41
  547. package/dist/versions/types.js +1 -17
  548. package/dist/words/article.js +22 -30
  549. package/dist/words/capitalize.js +25 -34
  550. package/dist/words/pluralize.js +23 -31
  551. package/dist/words/types.js +1 -17
  552. package/package.json +42 -5
@@ -1,47 +1,28 @@
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
- BINARY_PATH_CACHE_MAX_SIZE: () => BINARY_PATH_CACHE_MAX_SIZE,
24
- binaryPathCache: () => binaryPathCache,
25
- binaryPathCacheSet: () => binaryPathCacheSet
26
- });
27
- module.exports = __toCommonJS(internal_exports);
28
- var import_map_set = require("../primordials/map-set");
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_primordials_map_set = require('../primordials/map-set.js');
5
+
6
+ //#region src/dlx/_internal.ts
7
+ /**
8
+ * @file Shared internals for the `dlx/*` module — the bounded LRU cache used by
9
+ * `resolveBinaryPath` on Windows. Webpack-safe lazy `node:fs` / `node:path` /
10
+ * `node:crypto` loaders live in the canonical
11
+ * `@socketsecurity/lib/node/{fs,path,crypto}` helpers — import `getNodeFs` /
12
+ * `getNodePath` / `getNodeCrypto` directly from there.
13
+ */
29
14
  const BINARY_PATH_CACHE_MAX_SIZE = 200;
30
- const binaryPathCache = new import_map_set.MapCtor();
15
+ const binaryPathCache = new require_primordials_map_set.MapCtor();
31
16
  function binaryPathCacheSet(key, value) {
32
- if (binaryPathCache.has(key)) {
33
- binaryPathCache.delete(key);
34
- } else if (binaryPathCache.size >= BINARY_PATH_CACHE_MAX_SIZE) {
35
- const oldest = binaryPathCache.keys().next().value;
36
- if (oldest !== void 0) {
37
- binaryPathCache.delete(oldest);
38
- }
39
- }
40
- binaryPathCache.set(key, value);
17
+ if (binaryPathCache.has(key)) binaryPathCache.delete(key);
18
+ else if (binaryPathCache.size >= 200) {
19
+ const oldest = binaryPathCache.keys().next().value;
20
+ if (oldest !== void 0) binaryPathCache.delete(oldest);
21
+ }
22
+ binaryPathCache.set(key, value);
41
23
  }
42
- // Annotate the CommonJS export names for ESM import in node:
43
- 0 && (module.exports = {
44
- BINARY_PATH_CACHE_MAX_SIZE,
45
- binaryPathCache,
46
- binaryPathCacheSet
47
- });
24
+
25
+ //#endregion
26
+ exports.BINARY_PATH_CACHE_MAX_SIZE = BINARY_PATH_CACHE_MAX_SIZE;
27
+ exports.binaryPathCache = binaryPathCache;
28
+ exports.binaryPathCacheSet = binaryPathCacheSet;
@@ -1,173 +1,175 @@
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 arborist_exports = {};
32
- __export(arborist_exports, {
33
- getBaseArboristOptions: () => getBaseArboristOptions,
34
- readSingleDependency: () => readSingleDependency,
35
- readTopLevelFromIdealTree: () => readTopLevelFromIdealTree,
36
- safeIdealTree: () => safeIdealTree,
37
- safeReify: () => safeReify,
38
- writeSafeNpmrc: () => writeSafeNpmrc
39
- });
40
- module.exports = __toCommonJS(arborist_exports);
41
- var import_arborist = __toESM(require("../external/@npmcli/arborist"));
42
- var import_socket = require("../paths/socket");
43
- var import_array = require("../primordials/array");
44
- var import_error = require("../primordials/error");
45
- var import_json = require("../primordials/json");
46
- var import_object = require("../primordials/object");
47
- var import_fs = require("../node/fs");
48
- var import_path = require("../node/path");
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_primordials_error = require('../primordials/error.js');
6
+ const require_primordials_array = require('../primordials/array.js');
7
+ const require_node_fs = require('../node/fs.js');
8
+ const require_node_path = require('../node/path.js');
9
+ const require_primordials_object = require('../primordials/object.js');
10
+ const require_primordials_json = require('../primordials/json.js');
11
+ const require_paths_socket = require('../paths/socket.js');
12
+ let src_external__npmcli_arborist = require("../external/@npmcli/arborist");
13
+ src_external__npmcli_arborist = require_runtime.__toESM(src_external__npmcli_arborist);
14
+
15
+ //#region src/dlx/arborist.ts
16
+ /**
17
+ * @file Safe Arborist wrapper for dlx installs and lockfile-only resolution.
18
+ * Every Arborist invocation in this module is configured with a fixed set of
19
+ * security-hardening options mirroring socket-cli v1.1.79 SafeArborist:
20
+ *
21
+ * - audit: false — no network call to the npm audit endpoint
22
+ * - fund: false no collection/display of funding URLs
23
+ * - ignoreScripts: true no preinstall/install/postinstall scripts
24
+ * - progress: false no progress bar on stdout
25
+ * - saveBundle: false never update bundledDependencies
26
+ * - silent: true suppress Arborist's default log output `save` varies by
27
+ * operation: {@link safeIdealTree} uses `save: true` so Arborist writes
28
+ * `package-lock.json`; {@link safeReify} uses `save: false` so the caller's
29
+ * `package.json` is never rewritten. A `.npmrc` with the equivalent
30
+ * settings is also written into the install directory as a
31
+ * belt-and-suspenders defense for any downstream tool that reads it.
32
+ */
33
+ /**
34
+ * Fixed Arborist options that must not be overridden by callers. Mirrors
35
+ * socket-cli v1.1.79's SafeArborist overrides: audit: false, fund: false,
36
+ * ignoreScripts: true, save: false, saveBundle: false, silent: true, progress:
37
+ * false.
38
+ */
49
39
  function getBaseArboristOptions(installPath, options) {
50
- return {
51
- __proto__: null,
52
- path: installPath,
53
- cache: (0, import_socket.getSocketCacacheDir)(),
54
- audit: false,
55
- fund: false,
56
- ignoreScripts: true,
57
- progress: false,
58
- save: false,
59
- saveBundle: false,
60
- silent: options.quiet
61
- };
40
+ return {
41
+ __proto__: null,
42
+ path: installPath,
43
+ cache: require_paths_socket.getSocketCacacheDir(),
44
+ audit: false,
45
+ fund: false,
46
+ ignoreScripts: true,
47
+ progress: false,
48
+ save: false,
49
+ saveBundle: false,
50
+ silent: options.quiet
51
+ };
62
52
  }
53
+ /**
54
+ * Read the single declared dependency from a package.json. We only support one
55
+ * top-level dep per snapshot, which keeps the result unambiguous (no "which of
56
+ * N deps did we pin?").
57
+ */
63
58
  function readSingleDependency(packageJsonPath) {
64
- const fs = (0, import_fs.getNodeFs)();
65
- const raw = fs.readFileSync(packageJsonPath, "utf8");
66
- const pkg = (0, import_json.JSONParse)(raw);
67
- const deps = pkg.dependencies ?? {};
68
- const names = (0, import_object.ObjectKeys)(deps);
69
- if (names.length !== 1) {
70
- throw new import_error.ErrorCtor(
71
- `safeIdealTree expects exactly one top-level dependency in ${packageJsonPath}, found ${names.length}`
72
- );
73
- }
74
- return names[0];
59
+ const names = require_primordials_object.ObjectKeys(require_primordials_json.JSONParse((/* @__PURE__ */ require_node_fs.getNodeFs()).readFileSync(packageJsonPath, "utf8")).dependencies ?? {});
60
+ if (names.length !== 1) throw new require_primordials_error.ErrorCtor(`safeIdealTree expects exactly one top-level dependency in ${packageJsonPath}, found ${names.length}`);
61
+ return names[0];
75
62
  }
63
+ /**
64
+ * Read the top-level package from an Arborist idealTree's inventory. Arborist's
65
+ * `Inventory` extends `Map`, so iteration yields `[key, node]` pairs — use
66
+ * `.values()` to get nodes directly.
67
+ */
76
68
  function readTopLevelFromIdealTree(tree, targetName) {
77
- const root = tree;
78
- const inventory = root?.inventory;
79
- if (!inventory || typeof inventory.values !== "function") {
80
- throw new import_error.ErrorCtor("Arborist idealTree missing inventory");
81
- }
82
- for (const node of inventory.values()) {
83
- if (node.isProjectRoot) {
84
- continue;
85
- }
86
- if (node.name === targetName && node.depth === 1) {
87
- if (!node.version || !node.integrity) {
88
- throw new import_error.ErrorCtor(
89
- `Arborist idealTree node for ${targetName} missing version/integrity`
90
- );
91
- }
92
- return {
93
- name: node.name,
94
- version: node.version,
95
- integrity: node.integrity
96
- };
97
- }
98
- }
99
- throw new import_error.ErrorCtor(
100
- `Arborist idealTree inventory has no top-level node for ${targetName}`
101
- );
69
+ const inventory = tree?.inventory;
70
+ if (!inventory || typeof inventory.values !== "function") throw new require_primordials_error.ErrorCtor("Arborist idealTree missing inventory");
71
+ for (const node of inventory.values()) {
72
+ if (node.isProjectRoot) continue;
73
+ if (node.name === targetName && node.depth === 1) {
74
+ if (!node.version || !node.integrity) throw new require_primordials_error.ErrorCtor(`Arborist idealTree node for ${targetName} missing version/integrity`);
75
+ return {
76
+ name: node.name,
77
+ version: node.version,
78
+ integrity: node.integrity
79
+ };
80
+ }
81
+ }
82
+ throw new require_primordials_error.ErrorCtor(`Arborist idealTree inventory has no top-level node for ${targetName}`);
102
83
  }
84
+ /**
85
+ * Run Arborist in `packageLockOnly` mode against a directory that already
86
+ * contains a `package.json` with a single dependency. Resolves the graph
87
+ * against the registry and writes `package-lock.json` into `path`, but does NOT
88
+ * install into `node_modules`.
89
+ *
90
+ * Used by snapshot/bootstrap flows to obtain a lockfile + top-level integrity
91
+ * without paying for a full install.
92
+ *
93
+ * Uses `save: true` (rather than our usual `save: false`) so Arborist actually
94
+ * writes the lockfile — without that flag, `reify()` in `packageLockOnly` mode
95
+ * with no `add` list skips the write.
96
+ */
103
97
  async function safeIdealTree(options) {
104
- const fs = (0, import_fs.getNodeFs)();
105
- const path = (0, import_path.getNodePath)();
106
- const { before, path: installPath, quiet = true } = options;
107
- const targetName = readSingleDependency(
108
- path.join(installPath, "package.json")
109
- );
110
- const arb = new import_arborist.default({
111
- ...getBaseArboristOptions(installPath, { quiet }),
112
- ...before !== void 0 ? { before } : {},
113
- packageLockOnly: true,
114
- save: true
115
- });
116
- const tree = await arb.buildIdealTree();
117
- await arb.reify();
118
- const top = readTopLevelFromIdealTree(tree, targetName);
119
- const lockfile = await fs.promises.readFile(
120
- path.join(installPath, "package-lock.json"),
121
- "utf8"
122
- );
123
- return { ...top, lockfile };
98
+ const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
99
+ const path = /* @__PURE__ */ require_node_path.getNodePath();
100
+ const { before, path: installPath, quiet = true } = options;
101
+ const targetName = readSingleDependency(path.join(installPath, "package.json"));
102
+ const arb = new src_external__npmcli_arborist.default({
103
+ ...getBaseArboristOptions(installPath, { quiet }),
104
+ ...before !== void 0 ? { before } : {},
105
+ packageLockOnly: true,
106
+ save: true
107
+ });
108
+ /* c8 ignore next - External Arborist call */
109
+ const tree = await arb.buildIdealTree();
110
+ /* c8 ignore next - External Arborist call */
111
+ await arb.reify();
112
+ const top = readTopLevelFromIdealTree(tree, targetName);
113
+ const lockfile = await fs.promises.readFile(path.join(installPath, "package-lock.json"), "utf8");
114
+ return {
115
+ ...top,
116
+ lockfile
117
+ };
124
118
  }
119
+ /**
120
+ * Install into `node_modules` using Arborist's reify operation. Honors the
121
+ * committed `package-lock.json` in `path` when `packageLock: true`.
122
+ *
123
+ * Does not fetch registry metadata for versions already pinned by the lockfile
124
+ * — arborist uses the lockfile's `integrity` strings to fetch tarballs by ssri.
125
+ * This is the strongest form of pinning pnpm/npm offer.
126
+ */
125
127
  async function safeReify(options) {
126
- const { packageLock = true, path: installPath, quiet = true } = options;
127
- const arb = new import_arborist.default({
128
- ...getBaseArboristOptions(installPath, { quiet }),
129
- packageLock
130
- });
131
- await arb.reify();
128
+ const { packageLock = true, path: installPath, quiet = true } = options;
129
+ /* c8 ignore next - External Arborist call */
130
+ await new src_external__npmcli_arborist.default({
131
+ ...getBaseArboristOptions(installPath, { quiet }),
132
+ packageLock
133
+ }).reify();
132
134
  }
135
+ /**
136
+ * Write a hardened `.npmrc` into `path`. Used by both preview and pin flows as
137
+ * a second layer of protection alongside the Arborist options.
138
+ *
139
+ * Content written (always): ignore-scripts=true audit=false fund=false
140
+ * save=false save-bundle=false progress=false.
141
+ *
142
+ * When {@link WriteSafeNpmrcOptions.minReleaseDays} is set, also writes:
143
+ * min-release-age=<days>
144
+ *
145
+ * When {@link WriteSafeNpmrcOptions.minReleaseMins} is set, also writes the
146
+ * pnpm-style equivalent: minimum-release-age=<minutes>
147
+ */
133
148
  async function writeSafeNpmrc(installPath, options) {
134
- const fs = (0, import_fs.getNodeFs)();
135
- const path = (0, import_path.getNodePath)();
136
- const { minReleaseDays, minReleaseMins } = {
137
- __proto__: null,
138
- ...options
139
- };
140
- if (minReleaseDays !== void 0 && minReleaseMins !== void 0) {
141
- throw new import_error.ErrorCtor(
142
- "writeSafeNpmrc: minReleaseDays and minReleaseMins are mutually exclusive"
143
- );
144
- }
145
- const lines = [
146
- "ignore-scripts=true",
147
- "audit=false",
148
- "fund=false",
149
- "save=false",
150
- "save-bundle=false",
151
- "progress=false"
152
- ];
153
- if (minReleaseDays !== void 0) {
154
- (0, import_array.ArrayPrototypePush)(lines, `min-release-age=${minReleaseDays}`);
155
- }
156
- if (minReleaseMins !== void 0) {
157
- (0, import_array.ArrayPrototypePush)(lines, `minimum-release-age=${minReleaseMins}`);
158
- }
159
- await fs.promises.writeFile(
160
- path.join(installPath, ".npmrc"),
161
- lines.join("\n") + "\n",
162
- "utf8"
163
- );
149
+ const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
150
+ const path = /* @__PURE__ */ require_node_path.getNodePath();
151
+ const { minReleaseDays, minReleaseMins } = {
152
+ __proto__: null,
153
+ ...options
154
+ };
155
+ if (minReleaseDays !== void 0 && minReleaseMins !== void 0) throw new require_primordials_error.ErrorCtor("writeSafeNpmrc: minReleaseDays and minReleaseMins are mutually exclusive");
156
+ const lines = [
157
+ "ignore-scripts=true",
158
+ "audit=false",
159
+ "fund=false",
160
+ "save=false",
161
+ "save-bundle=false",
162
+ "progress=false"
163
+ ];
164
+ if (minReleaseDays !== void 0) require_primordials_array.ArrayPrototypePush(lines, `min-release-age=${minReleaseDays}`);
165
+ if (minReleaseMins !== void 0) require_primordials_array.ArrayPrototypePush(lines, `minimum-release-age=${minReleaseMins}`);
166
+ await fs.promises.writeFile(path.join(installPath, ".npmrc"), lines.join("\n") + "\n", "utf8");
164
167
  }
165
- // Annotate the CommonJS export names for ESM import in node:
166
- 0 && (module.exports = {
167
- getBaseArboristOptions,
168
- readSingleDependency,
169
- readTopLevelFromIdealTree,
170
- safeIdealTree,
171
- safeReify,
172
- writeSafeNpmrc
173
- });
168
+
169
+ //#endregion
170
+ exports.getBaseArboristOptions = getBaseArboristOptions;
171
+ exports.readSingleDependency = readSingleDependency;
172
+ exports.readTopLevelFromIdealTree = readTopLevelFromIdealTree;
173
+ exports.safeIdealTree = safeIdealTree;
174
+ exports.safeReify = safeReify;
175
+ exports.writeSafeNpmrc = writeSafeNpmrc;