@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
package/dist/fs/safe.js CHANGED
@@ -1,182 +1,291 @@
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 safe_exports = {};
22
- __export(safe_exports, {
23
- getDel: () => getDel,
24
- safeDelete: () => safeDelete,
25
- safeDeleteSync: () => safeDeleteSync,
26
- safeMkdir: () => safeMkdir,
27
- safeMkdirSync: () => safeMkdirSync
28
- });
29
- module.exports = __toCommonJS(safe_exports);
30
- var import_predicates = require("../arrays/predicates");
31
- var import_predicates2 = require("../errors/predicates");
32
- var import_fs = require("../node/fs");
33
- var import_path = require("../node/path");
34
- var import_mutate = require("../objects/mutate");
35
- var import_normalize = require("../paths/normalize");
36
- var import_array = require("../primordials/array");
37
- var import_globals = require("../primordials/globals");
38
- var import_string = require("../primordials/string");
39
- var import_retry = require("../promises/retry");
40
- var import_internal = require("./_internal");
41
- var import_path_cache = require("./path-cache");
42
- const defaultRemoveOptions = (0, import_mutate.objectFreeze)({
43
- __proto__: null,
44
- force: true,
45
- maxRetries: 3,
46
- recursive: true,
47
- retryDelay: 200
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_primordials_string = require('../primordials/string.js');
5
+ const require_paths__internal = require('../paths/_internal.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_errors_predicates = require('../errors/predicates.js');
10
+ const require_primordials_globals = require('../primordials/globals.js');
11
+ const require_arrays_predicates = require('../arrays/predicates.js');
12
+ const require_objects_mutate = require('../objects/mutate.js');
13
+ const require_promises_retry = require('../promises/retry.js');
14
+ const require_fs__internal = require('./_internal.js');
15
+
16
+ //#region src/fs/safe.ts
17
+ /**
18
+ * @file Safe deletion + idempotent directory creation. The delete helpers gate
19
+ * destructive operations behind an "allowed directories" allow-list (temp
20
+ * dir, cacache dir, ~/.socket); paths outside those need an explicit `force:
21
+ * true`. The mkdir helpers default to `recursive: true` and swallow `EEXIST`
22
+ * so concurrent callers don't race-condition each other.
23
+ */
24
+ const defaultRemoveOptions = require_objects_mutate.objectFreeze({
25
+ __proto__: null,
26
+ force: true,
27
+ maxRetries: 3,
28
+ recursive: true,
29
+ retryDelay: 200
48
30
  });
49
31
  let _del;
50
- // @__NO_SIDE_EFFECTS__
32
+ /* @__NO_SIDE_EFFECTS__ */
51
33
  function getDel() {
52
- if (_del === void 0) {
53
- _del = require("../external/del");
54
- }
55
- return _del;
34
+ if (_del === void 0) _del = /* @__PURE__ */ require("../external/del");
35
+ return _del;
56
36
  }
37
+ /**
38
+ * Safely delete a file or directory asynchronously with built-in protections.
39
+ *
40
+ * Uses [`del`](https://socket.dev/npm/package/del/overview/8.0.1) for safer
41
+ * deletion with these safety features:
42
+ *
43
+ * - By default, prevents deleting the current working directory (cwd) and above
44
+ * - Allows deleting within cwd (descendant paths) without force option
45
+ * - Automatically uses force: true for temp directory, cacache, and ~/.socket
46
+ * subdirectories
47
+ * - Protects against accidental deletion of parent directories via `../` paths
48
+ *
49
+ * @example
50
+ * ;```ts
51
+ * // Delete files within cwd (safe by default)
52
+ * await safeDelete('./build')
53
+ * await safeDelete('./dist')
54
+ *
55
+ * // Delete with glob patterns
56
+ * await safeDelete(['./temp/**', '!./temp/keep.txt'])
57
+ *
58
+ * // Delete with custom retry settings
59
+ * await safeDelete('./flaky-dir', { maxRetries: 5, retryDelay: 500 })
60
+ *
61
+ * // Force delete cwd or above (requires explicit force: true)
62
+ * await safeDelete('../parent-dir', { force: true })
63
+ * ```
64
+ *
65
+ * @param filepath - Path or array of paths to delete (supports glob patterns)
66
+ * @param options - Deletion options including force, retries, and recursion.
67
+ * @param options.force - Set to true to allow deleting cwd and above (use with
68
+ * caution)
69
+ *
70
+ * @throws {Error} When attempting to delete protected paths without force
71
+ * option.
72
+ */
57
73
  async function safeDelete(filepath, options) {
58
- const opts = { __proto__: null, ...options };
59
- const patterns = (0, import_predicates.isArray)(filepath) ? filepath.map(import_normalize.pathLikeToString) : [(0, import_normalize.pathLikeToString)(filepath)];
60
- let shouldForce = opts.force !== false;
61
- if (!shouldForce && patterns.length > 0) {
62
- const path = (0, import_path.getNodePath)();
63
- const allowedDirs = (0, import_internal.getAllowedDirectories)();
64
- const allInAllowedDirs = patterns.every((pattern) => {
65
- const resolvedPath = path.resolve(pattern);
66
- for (const allowedDir of allowedDirs) {
67
- const isInAllowedDir = (0, import_string.StringPrototypeStartsWith)(resolvedPath, allowedDir + path.sep) || resolvedPath === allowedDir;
68
- const relativePath = path.relative(allowedDir, resolvedPath);
69
- const isGoingBackward = (0, import_string.StringPrototypeStartsWith)(relativePath, "..");
70
- if (isInAllowedDir && !isGoingBackward) {
71
- return true;
72
- }
73
- }
74
- return false;
75
- });
76
- if (allInAllowedDirs) {
77
- shouldForce = true;
78
- }
79
- }
80
- const maxRetries = opts.maxRetries ?? defaultRemoveOptions.maxRetries;
81
- const retryDelay = opts.retryDelay ?? defaultRemoveOptions.retryDelay;
82
- const del = /* @__PURE__ */ getDel();
83
- await (0, import_retry.pRetry)(
84
- async () => {
85
- await del.deleteAsync(patterns, {
86
- dryRun: false,
87
- force: shouldForce,
88
- onlyFiles: false
89
- });
90
- },
91
- {
92
- retries: maxRetries,
93
- baseDelayMs: retryDelay,
94
- backoffFactor: 2,
95
- signal: opts.signal
96
- }
97
- );
74
+ const opts = {
75
+ __proto__: null,
76
+ ...options
77
+ };
78
+ const patterns = require_arrays_predicates.isArray(filepath) ? filepath.map(require_paths__internal.pathLikeToString) : [/* @__PURE__ */ require_paths__internal.pathLikeToString(filepath)];
79
+ /* c8 ignore start */
80
+ let shouldForce = opts.force !== false;
81
+ if (!shouldForce && patterns.length > 0) {
82
+ const path = /* @__PURE__ */ require_node_path.getNodePath();
83
+ const allowedDirs = require_fs__internal.getAllowedDirectories();
84
+ if (patterns.every((pattern) => {
85
+ const resolvedPath = path.resolve(pattern);
86
+ for (const allowedDir of allowedDirs) {
87
+ const isInAllowedDir = require_primordials_string.StringPrototypeStartsWith(resolvedPath, allowedDir + path.sep) || resolvedPath === allowedDir;
88
+ const isGoingBackward = require_primordials_string.StringPrototypeStartsWith(path.relative(allowedDir, resolvedPath), "..");
89
+ if (isInAllowedDir && !isGoingBackward) return true;
90
+ }
91
+ return false;
92
+ })) shouldForce = true;
93
+ }
94
+ /* c8 ignore stop */
95
+ const maxRetries = opts.maxRetries ?? defaultRemoveOptions.maxRetries;
96
+ const retryDelay = opts.retryDelay ?? defaultRemoveOptions.retryDelay;
97
+ /* c8 ignore start - External del call */
98
+ const del = /* @__PURE__ */ getDel();
99
+ await /* @__PURE__ */ require_promises_retry.pRetry(async () => {
100
+ await del.deleteAsync(patterns, {
101
+ dryRun: false,
102
+ force: shouldForce,
103
+ onlyFiles: false
104
+ });
105
+ }, {
106
+ retries: maxRetries,
107
+ baseDelayMs: retryDelay,
108
+ backoffFactor: 2,
109
+ signal: opts.signal
110
+ });
111
+ /* c8 ignore stop */
98
112
  }
113
+ /**
114
+ * Safely delete a file or directory synchronously with built-in protections.
115
+ *
116
+ * Uses [`del`](https://socket.dev/npm/package/del/overview/8.0.1) for safer
117
+ * deletion with these safety features:
118
+ *
119
+ * - By default, prevents deleting the current working directory (cwd) and above
120
+ * - Allows deleting within cwd (descendant paths) without force option
121
+ * - Automatically uses force: true for temp directory, cacache, and ~/.socket
122
+ * subdirectories
123
+ * - Protects against accidental deletion of parent directories via `../` paths
124
+ *
125
+ * @example
126
+ * ;```ts
127
+ * // Delete files within cwd (safe by default)
128
+ * safeDeleteSync('./build')
129
+ * safeDeleteSync('./dist')
130
+ *
131
+ * // Delete with glob patterns
132
+ * safeDeleteSync(['./temp/**', '!./temp/keep.txt'])
133
+ *
134
+ * // Delete multiple paths
135
+ * safeDeleteSync(['./coverage', './reports'])
136
+ *
137
+ * // Force delete cwd or above (requires explicit force: true)
138
+ * safeDeleteSync('../parent-dir', { force: true })
139
+ * ```
140
+ *
141
+ * @param filepath - Path or array of paths to delete (supports glob patterns)
142
+ * @param options - Deletion options including force, retries, and recursion.
143
+ * @param options.force - Set to true to allow deleting cwd and above (use with
144
+ * caution)
145
+ *
146
+ * @throws {Error} When attempting to delete protected paths without force
147
+ * option.
148
+ */
99
149
  function safeDeleteSync(filepath, options) {
100
- const opts = { __proto__: null, ...options };
101
- const patterns = (0, import_predicates.isArray)(filepath) ? filepath.map(import_normalize.pathLikeToString) : [(0, import_normalize.pathLikeToString)(filepath)];
102
- let shouldForce = opts.force !== false;
103
- if (!shouldForce && patterns.length > 0) {
104
- const path = (0, import_path.getNodePath)();
105
- const allowedDirs = (0, import_internal.getAllowedDirectories)();
106
- const allInAllowedDirs = patterns.every((pattern) => {
107
- const resolvedPath = path.resolve(pattern);
108
- for (const allowedDir of allowedDirs) {
109
- const isInAllowedDir = (0, import_string.StringPrototypeStartsWith)(resolvedPath, allowedDir + path.sep) || resolvedPath === allowedDir;
110
- const relativePath = path.relative(allowedDir, resolvedPath);
111
- const isGoingBackward = (0, import_string.StringPrototypeStartsWith)(relativePath, "..");
112
- if (isInAllowedDir && !isGoingBackward) {
113
- return true;
114
- }
115
- }
116
- return false;
117
- });
118
- if (allInAllowedDirs) {
119
- shouldForce = true;
120
- }
121
- }
122
- const maxRetries = opts.maxRetries ?? defaultRemoveOptions.maxRetries;
123
- const retryDelay = opts.retryDelay ?? defaultRemoveOptions.retryDelay;
124
- const del = /* @__PURE__ */ getDel();
125
- let lastError;
126
- let delay = retryDelay;
127
- for (let attempt = 0; attempt <= maxRetries; attempt++) {
128
- try {
129
- del.deleteSync(patterns, {
130
- dryRun: false,
131
- force: shouldForce,
132
- onlyFiles: false
133
- });
134
- return;
135
- } catch (e) {
136
- lastError = e;
137
- if (attempt < maxRetries) {
138
- const waitMs = delay;
139
- (0, import_array.AtomicsWait)(
140
- new import_array.Int32ArrayCtor(new import_globals.SharedArrayBufferCtor(4)),
141
- 0,
142
- 0,
143
- waitMs
144
- );
145
- delay *= 2;
146
- }
147
- }
148
- }
149
- if (lastError) {
150
- throw lastError;
151
- }
150
+ const opts = {
151
+ __proto__: null,
152
+ ...options
153
+ };
154
+ const patterns = require_arrays_predicates.isArray(filepath) ? filepath.map(require_paths__internal.pathLikeToString) : [/* @__PURE__ */ require_paths__internal.pathLikeToString(filepath)];
155
+ /* c8 ignore start */
156
+ let shouldForce = opts.force !== false;
157
+ if (!shouldForce && patterns.length > 0) {
158
+ const path = /* @__PURE__ */ require_node_path.getNodePath();
159
+ const allowedDirs = require_fs__internal.getAllowedDirectories();
160
+ if (patterns.every((pattern) => {
161
+ const resolvedPath = path.resolve(pattern);
162
+ for (const allowedDir of allowedDirs) {
163
+ const isInAllowedDir = require_primordials_string.StringPrototypeStartsWith(resolvedPath, allowedDir + path.sep) || resolvedPath === allowedDir;
164
+ const isGoingBackward = require_primordials_string.StringPrototypeStartsWith(path.relative(allowedDir, resolvedPath), "..");
165
+ if (isInAllowedDir && !isGoingBackward) return true;
166
+ }
167
+ return false;
168
+ })) shouldForce = true;
169
+ }
170
+ /* c8 ignore stop */
171
+ const maxRetries = opts.maxRetries ?? defaultRemoveOptions.maxRetries;
172
+ const retryDelay = opts.retryDelay ?? defaultRemoveOptions.retryDelay;
173
+ /* c8 ignore start - External del call */
174
+ const del = /* @__PURE__ */ getDel();
175
+ let lastError;
176
+ let delay = retryDelay;
177
+ for (let attempt = 0; attempt <= maxRetries; attempt++) try {
178
+ del.deleteSync(patterns, {
179
+ dryRun: false,
180
+ force: shouldForce,
181
+ onlyFiles: false
182
+ });
183
+ return;
184
+ } catch (e) {
185
+ lastError = e;
186
+ if (attempt < maxRetries) {
187
+ const waitMs = delay;
188
+ require_primordials_array.AtomicsWait(new require_primordials_array.Int32ArrayCtor(new require_primordials_globals.SharedArrayBufferCtor(4)), 0, 0, waitMs);
189
+ delay *= 2;
190
+ }
191
+ }
192
+ if (lastError) throw lastError;
193
+ /* c8 ignore stop */
152
194
  }
195
+ /**
196
+ * Safely create a directory asynchronously, ignoring EEXIST errors. This
197
+ * function wraps fs.promises.mkdir and handles the race condition where the
198
+ * directory might already exist, which is common in concurrent code.
199
+ *
200
+ * Unlike fs.promises.mkdir with recursive:true, this function: - Silently
201
+ * ignores EEXIST errors (directory already exists) - Re-throws all other errors
202
+ * (permissions, invalid path, etc.) - Works reliably in
203
+ * multi-process/concurrent scenarios - Defaults to recursive: true for
204
+ * convenient nested directory creation.
205
+ *
206
+ * @example
207
+ * ;```ts
208
+ * // Create a directory recursively by default, no error if it exists
209
+ * await safeMkdir('./config')
210
+ *
211
+ * // Create nested directories (recursive: true is the default)
212
+ * await safeMkdir('./data/cache/temp')
213
+ *
214
+ * // Create with specific permissions
215
+ * await safeMkdir('./secure', { mode: 0o700 })
216
+ *
217
+ * // Explicitly disable recursive behavior
218
+ * await safeMkdir('./single-level', { recursive: false })
219
+ * ```
220
+ *
221
+ * @param path - Directory path to create.
222
+ * @param options - Options including recursive (default: true) and mode
223
+ * settings.
224
+ *
225
+ * @returns Promise that resolves when directory is created or already exists
226
+ */
153
227
  async function safeMkdir(path, options) {
154
- const fs = (0, import_fs.getNodeFs)();
155
- const opts = { __proto__: null, recursive: true, ...options };
156
- try {
157
- await fs.promises.mkdir(path, opts);
158
- } catch (e) {
159
- if (!(0, import_predicates2.isErrnoException)(e) || e.code !== "EEXIST") {
160
- throw e;
161
- }
162
- }
228
+ const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
229
+ const opts = {
230
+ __proto__: null,
231
+ recursive: true,
232
+ ...options
233
+ };
234
+ try {
235
+ await fs.promises.mkdir(path, opts);
236
+ } catch (e) {
237
+ if (!require_errors_predicates.isErrnoException(e) || e.code !== "EEXIST") throw e;
238
+ }
239
+ /* c8 ignore stop */
163
240
  }
241
+ /**
242
+ * Safely create a directory synchronously, ignoring EEXIST errors. This
243
+ * function wraps fs.mkdirSync and handles the race condition where the
244
+ * directory might already exist, which is common in concurrent code.
245
+ *
246
+ * Unlike fs.mkdirSync with recursive:true, this function: - Silently ignores
247
+ * EEXIST errors (directory already exists) - Re-throws all other errors
248
+ * (permissions, invalid path, etc.) - Works reliably in
249
+ * multi-process/concurrent scenarios - Defaults to recursive: true for
250
+ * convenient nested directory creation.
251
+ *
252
+ * @example
253
+ * ;```ts
254
+ * // Create a directory recursively by default, no error if it exists
255
+ * safeMkdirSync('./config')
256
+ *
257
+ * // Create nested directories (recursive: true is the default)
258
+ * safeMkdirSync('./data/cache/temp')
259
+ *
260
+ * // Create with specific permissions
261
+ * safeMkdirSync('./secure', { mode: 0o700 })
262
+ *
263
+ * // Explicitly disable recursive behavior
264
+ * safeMkdirSync('./single-level', { recursive: false })
265
+ * ```
266
+ *
267
+ * @param path - Directory path to create.
268
+ * @param options - Options including recursive (default: true) and mode
269
+ * settings.
270
+ */
164
271
  function safeMkdirSync(path, options) {
165
- const fs = (0, import_fs.getNodeFs)();
166
- const opts = { __proto__: null, recursive: true, ...options };
167
- try {
168
- fs.mkdirSync(path, opts);
169
- } catch (e) {
170
- if (!(0, import_predicates2.isErrnoException)(e) || e.code !== "EEXIST") {
171
- throw e;
172
- }
173
- }
272
+ const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
273
+ const opts = {
274
+ __proto__: null,
275
+ recursive: true,
276
+ ...options
277
+ };
278
+ try {
279
+ fs.mkdirSync(path, opts);
280
+ } catch (e) {
281
+ if (!require_errors_predicates.isErrnoException(e) || e.code !== "EEXIST") throw e;
282
+ }
283
+ /* c8 ignore stop */
174
284
  }
175
- // Annotate the CommonJS export names for ESM import in node:
176
- 0 && (module.exports = {
177
- getDel,
178
- safeDelete,
179
- safeDeleteSync,
180
- safeMkdir,
181
- safeMkdirSync
182
- });
285
+
286
+ //#endregion
287
+ exports.getDel = getDel;
288
+ exports.safeDelete = safeDelete;
289
+ exports.safeDeleteSync = safeDeleteSync;
290
+ exports.safeMkdir = safeMkdir;
291
+ exports.safeMkdirSync = safeMkdirSync;
package/dist/fs/types.js CHANGED
@@ -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 */
package/dist/fs/unique.js CHANGED
@@ -1,51 +1,55 @@
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 unique_exports = {};
22
- __export(unique_exports, {
23
- uniqueSync: () => uniqueSync
24
- });
25
- module.exports = __toCommonJS(unique_exports);
26
- var import_fs = require("../node/fs");
27
- var import_path = require("../node/path");
28
- var import_normalize = require("../paths/normalize");
29
- // @__NO_SIDE_EFFECTS__
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_paths_normalize = require('../paths/normalize.js');
5
+ const require_node_fs = require('../node/fs.js');
6
+ const require_node_path = require('../node/path.js');
7
+
8
+ //#region src/fs/unique.ts
9
+ /**
10
+ * @file Generate a unique filepath by appending `-1`, `-2`, … before the
11
+ * extension until the path is free. Useful for "save next to existing" flows
12
+ * where overwriting silently would be wrong (PDF reports, exports, etc.).
13
+ */
14
+ /**
15
+ * Generate a unique filepath by adding number suffix if the path exists.
16
+ * Appends `-1`, `-2`, etc. before the file extension until a non-existent path
17
+ * is found. Useful for creating files without overwriting existing ones.
18
+ *
19
+ * @example
20
+ * ;```ts
21
+ * // If 'report.pdf' exists, returns 'report-1.pdf'
22
+ * const uniquePath = uniqueSync('./report.pdf')
23
+ *
24
+ * // If 'data.json' and 'data-1.json' exist, returns 'data-2.json'
25
+ * const path = uniqueSync('./data.json')
26
+ *
27
+ * // If 'backup' doesn't exist, returns 'backup' unchanged
28
+ * const backupPath = uniqueSync('./backup')
29
+ * ```
30
+ *
31
+ * @param filepath - Desired file path.
32
+ *
33
+ * @returns Normalized unique filepath (original if it doesn't exist, or with
34
+ * number suffix)
35
+ */
36
+ /* @__NO_SIDE_EFFECTS__ */
30
37
  function uniqueSync(filepath) {
31
- const fs = (0, import_fs.getNodeFs)();
32
- const path = (0, import_path.getNodePath)();
33
- const filepathStr = String(filepath);
34
- if (!fs.existsSync(filepathStr)) {
35
- return (0, import_normalize.normalizePath)(filepathStr);
36
- }
37
- const dirname = path.dirname(filepathStr);
38
- const ext = path.extname(filepathStr);
39
- const basename = path.basename(filepathStr, ext);
40
- let counter = 1;
41
- let uniquePath;
42
- do {
43
- uniquePath = path.join(dirname, `${basename}-${counter}${ext}`);
44
- counter++;
45
- } while (fs.existsSync(uniquePath));
46
- return (0, import_normalize.normalizePath)(uniquePath);
38
+ const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
39
+ const path = /* @__PURE__ */ require_node_path.getNodePath();
40
+ const filepathStr = String(filepath);
41
+ if (!fs.existsSync(filepathStr)) return /* @__PURE__ */ require_paths_normalize.normalizePath(filepathStr);
42
+ const dirname = path.dirname(filepathStr);
43
+ const ext = path.extname(filepathStr);
44
+ const basename = path.basename(filepathStr, ext);
45
+ let counter = 1;
46
+ let uniquePath;
47
+ do {
48
+ uniquePath = path.join(dirname, `${basename}-${counter}${ext}`);
49
+ counter++;
50
+ } while (fs.existsSync(uniquePath));
51
+ return /* @__PURE__ */ require_paths_normalize.normalizePath(uniquePath);
47
52
  }
48
- // Annotate the CommonJS export names for ESM import in node:
49
- 0 && (module.exports = {
50
- uniqueSync
51
- });
53
+
54
+ //#endregion
55
+ exports.uniqueSync = uniqueSync;