@socketsecurity/lib 6.0.3 → 6.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (542) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/_virtual/_rolldown/runtime.js +45 -0
  3. package/dist/abort/signal.js +53 -59
  4. package/dist/ai/discover.js +110 -110
  5. package/dist/ai/profiles.js +94 -65
  6. package/dist/ai/spawn.js +172 -194
  7. package/dist/ai/types.js +1 -17
  8. package/dist/ai/worktree.js +160 -183
  9. package/dist/ansi/constants.js +16 -38
  10. package/dist/ansi/strip.js +44 -41
  11. package/dist/archives/_internal.js +64 -73
  12. package/dist/archives/detect.js +30 -43
  13. package/dist/archives/extract.js +43 -50
  14. package/dist/archives/tar.js +197 -228
  15. package/dist/archives/types.js +1 -17
  16. package/dist/archives/zip.js +85 -121
  17. package/dist/argv/flag-predicates.js +203 -101
  18. package/dist/argv/flag-types.js +96 -113
  19. package/dist/argv/parse-args-string.d.ts +16 -14
  20. package/dist/argv/parse-args-string.js +42 -39
  21. package/dist/argv/parse.js +145 -163
  22. package/dist/arrays/_internal.js +65 -48
  23. package/dist/arrays/chunk.js +51 -40
  24. package/dist/arrays/join.js +87 -35
  25. package/dist/arrays/predicates.js +46 -28
  26. package/dist/arrays/unique.js +45 -31
  27. package/dist/bin/_internal.js +34 -42
  28. package/dist/bin/check-primordials.js +175 -233
  29. package/dist/bin/check.js +51 -72
  30. package/dist/bin/exec.js +70 -74
  31. package/dist/bin/find.js +151 -134
  32. package/dist/bin/resolve.js +180 -246
  33. package/dist/bin/shadow.js +24 -33
  34. package/dist/bin/socket-lib.js +51 -73
  35. package/dist/bin/types.js +1 -17
  36. package/dist/bin/which.js +211 -146
  37. package/dist/cacache/_internal.js +25 -40
  38. package/dist/cacache/clear.js +79 -72
  39. package/dist/cacache/read.js +48 -46
  40. package/dist/cacache/tmp.js +29 -36
  41. package/dist/cacache/types.js +1 -17
  42. package/dist/cacache/write.js +43 -48
  43. package/dist/cache/ttl/store.js +232 -288
  44. package/dist/cache/ttl/types.js +1 -17
  45. package/dist/checks/primordials-defaults.js +83 -89
  46. package/dist/checks/primordials.js +225 -277
  47. package/dist/colors/convert.js +45 -37
  48. package/dist/colors/palette.js +88 -45
  49. package/dist/colors/socket-palette.js +74 -84
  50. package/dist/colors/types.js +1 -17
  51. package/dist/compression/_internal.js +57 -72
  52. package/dist/compression/brotli.js +94 -127
  53. package/dist/compression/gzip.js +95 -121
  54. package/dist/compression/types.js +1 -17
  55. package/dist/constants/agents.js +61 -113
  56. package/dist/constants/encoding.js +19 -42
  57. package/dist/constants/github.js +12 -30
  58. package/dist/constants/licenses.js +48 -63
  59. package/dist/constants/lifecycle-script-names.js +31 -45
  60. package/dist/constants/maintained-node-versions.js +22 -37
  61. package/dist/constants/node.js +226 -167
  62. package/dist/constants/package-default-node-range.js +16 -41
  63. package/dist/constants/package-default-socket-categories.js +12 -30
  64. package/dist/constants/packages.js +77 -126
  65. package/dist/constants/platform.js +27 -49
  66. package/dist/constants/sentinels.js +23 -48
  67. package/dist/constants/socket.js +42 -87
  68. package/dist/constants/testing.js +15 -34
  69. package/dist/constants/time.js +16 -36
  70. package/dist/constants/typescript.js +32 -52
  71. package/dist/cover/code.js +111 -142
  72. package/dist/cover/formatters.js +118 -101
  73. package/dist/cover/type.js +50 -76
  74. package/dist/cover/types.js +1 -17
  75. package/dist/crypto/hash.js +54 -46
  76. package/dist/debug/_internal.js +62 -71
  77. package/dist/debug/caller-info.js +53 -64
  78. package/dist/debug/namespace.js +80 -90
  79. package/dist/debug/output.js +172 -188
  80. package/dist/debug/types.js +1 -17
  81. package/dist/dlx/_internal.js +24 -43
  82. package/dist/dlx/arborist.js +162 -160
  83. package/dist/dlx/binary-cache.js +228 -200
  84. package/dist/dlx/binary-download.js +172 -211
  85. package/dist/dlx/binary-resolution.js +165 -157
  86. package/dist/dlx/binary-types.js +1 -17
  87. package/dist/dlx/binary.js +149 -189
  88. package/dist/dlx/cache.js +45 -30
  89. package/dist/dlx/detect.js +245 -159
  90. package/dist/dlx/dir.js +67 -51
  91. package/dist/dlx/firewall.js +62 -100
  92. package/dist/dlx/lockfile.js +122 -127
  93. package/dist/dlx/manifest.js +264 -274
  94. package/dist/dlx/package.js +241 -244
  95. package/dist/dlx/packages.js +99 -96
  96. package/dist/dlx/paths.js +73 -59
  97. package/dist/dlx/spec.js +52 -60
  98. package/dist/dlx/types.js +1 -17
  99. package/dist/eco/cargo/lockfile-format.js +19 -36
  100. package/dist/eco/cargo/manifest-format.js +17 -35
  101. package/dist/eco/cargo/parse-lockfile.js +210 -237
  102. package/dist/eco/manifest/analyze-lockfile.js +46 -63
  103. package/dist/eco/manifest/detect-format.js +66 -90
  104. package/dist/eco/manifest/find-packages.js +39 -64
  105. package/dist/eco/manifest/get-package-versions.js +27 -48
  106. package/dist/eco/manifest/get-package.js +21 -40
  107. package/dist/eco/manifest/manifest-error.js +14 -35
  108. package/dist/eco/manifest/parse-lockfile.js +40 -86
  109. package/dist/eco/manifest/parse-manifest.js +26 -43
  110. package/dist/eco/manifest/parse.js +26 -47
  111. package/dist/eco/manifest/types.js +1 -17
  112. package/dist/eco/npm/bun/exec.js +23 -32
  113. package/dist/eco/npm/manifest-format.js +21 -35
  114. package/dist/eco/npm/npm/exec.js +51 -61
  115. package/dist/eco/npm/npm/extract-package-name-from-path.js +28 -50
  116. package/dist/eco/npm/npm/flags.js +80 -52
  117. package/dist/eco/npm/npm/lockfile-format.js +21 -40
  118. package/dist/eco/npm/npm/parse-git-url.js +26 -40
  119. package/dist/eco/npm/npm/parse-lockfile.js +184 -210
  120. package/dist/eco/npm/parse-package-json.js +71 -102
  121. package/dist/eco/npm/pnpm/detect-pnpm-version.js +22 -43
  122. package/dist/eco/npm/pnpm/exec.js +51 -62
  123. package/dist/eco/npm/pnpm/flags.js +75 -68
  124. package/dist/eco/npm/pnpm/lockfile-format.js +19 -36
  125. package/dist/eco/npm/pnpm/parse-lockfile.js +235 -259
  126. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +37 -47
  127. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +36 -49
  128. package/dist/eco/npm/script.js +82 -90
  129. package/dist/eco/npm/vlt/exec.js +24 -32
  130. package/dist/eco/npm/yarnpkg/yarn/exec.js +60 -59
  131. package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +20 -36
  132. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +194 -242
  133. package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +37 -61
  134. package/dist/eco/purl.js +50 -60
  135. package/dist/eco/types.js +1 -17
  136. package/dist/effects/pulse-frames.js +64 -65
  137. package/dist/effects/shimmer-keyframes.js +71 -52
  138. package/dist/effects/shimmer-terminal.js +81 -50
  139. package/dist/effects/shimmer.js +290 -153
  140. package/dist/env/boolean.js +42 -43
  141. package/dist/env/case-insensitive.js +54 -39
  142. package/dist/env/ci.js +29 -31
  143. package/dist/env/debug.js +28 -31
  144. package/dist/env/github.js +144 -59
  145. package/dist/env/home.js +38 -31
  146. package/dist/env/locale.js +59 -39
  147. package/dist/env/node-auth-token.js +28 -31
  148. package/dist/env/node-env.js +28 -31
  149. package/dist/env/npm.js +94 -47
  150. package/dist/env/number.js +50 -51
  151. package/dist/env/package-manager.js +95 -83
  152. package/dist/env/path.js +28 -31
  153. package/dist/env/pre-commit.js +30 -32
  154. package/dist/env/proxy.js +121 -122
  155. package/dist/env/rewire.js +204 -96
  156. package/dist/env/shell.js +28 -31
  157. package/dist/env/socket-cli.js +233 -81
  158. package/dist/env/socket.js +521 -156
  159. package/dist/env/string.js +43 -44
  160. package/dist/env/temp-dir.js +59 -39
  161. package/dist/env/term.js +28 -31
  162. package/dist/env/test.js +65 -43
  163. package/dist/env/types.js +1 -17
  164. package/dist/env/windows.js +78 -43
  165. package/dist/env/xdg.js +62 -39
  166. package/dist/errors/message.js +40 -46
  167. package/dist/errors/predicates.js +61 -49
  168. package/dist/errors/stack.js +24 -36
  169. package/dist/events/exit/_internal.js +86 -103
  170. package/dist/events/exit/handler.js +48 -55
  171. package/dist/events/exit/intercept.js +49 -70
  172. package/dist/events/exit/lifecycle.js +92 -101
  173. package/dist/events/exit/signals.js +25 -31
  174. package/dist/events/exit/types.js +1 -17
  175. package/dist/events/warning/handler.js +43 -40
  176. package/dist/events/warning/suppress.js +111 -90
  177. package/dist/external/@npmcli/package-json/lib/read-package.js +132 -153
  178. package/dist/external/@npmcli/package-json/lib/sort.js +73 -105
  179. package/dist/external/@npmcli/package-json.js +12705 -15140
  180. package/dist/external/@npmcli/promise-spawn.js +451 -472
  181. package/dist/external/@sinclair/typebox/value.js +7443 -9002
  182. package/dist/external/@sinclair/typebox.js +7516 -7885
  183. package/dist/external/@socketregistry/is-unicode-supported.js +31 -39
  184. package/dist/external/@socketregistry/packageurl-js.js +6127 -7369
  185. package/dist/external/@socketregistry/yocto-spinner.js +394 -455
  186. package/dist/external/@yarnpkg/extensions.js +435 -1022
  187. package/dist/external/adm-zip.js +2313 -2673
  188. package/dist/external/debug.js +700 -687
  189. package/dist/external/external-pack.js +2658 -3171
  190. package/dist/external/fast-sort.js +124 -138
  191. package/dist/external/get-east-asian-width.js +70 -64
  192. package/dist/external/libnpmexec.js +28 -31
  193. package/dist/external/npm-pack.js +43617 -50137
  194. package/dist/external/p-map.js +198 -222
  195. package/dist/external/pico-pack.js +6735 -7304
  196. package/dist/external/pony-cause.js +143 -139
  197. package/dist/external/shell-quote.js +226 -0
  198. package/dist/external/spdx-pack.js +1283 -1403
  199. package/dist/external/streaming-iterables.js +835 -1052
  200. package/dist/external/tar-fs.js +2769 -3048
  201. package/dist/external/which.js +267 -251
  202. package/dist/external/yargs-parser.js +851 -1074
  203. package/dist/external-tools/bazel/asset-names.js +98 -90
  204. package/dist/external-tools/bazel/from-download.js +52 -46
  205. package/dist/external-tools/bazel/from-path.js +27 -38
  206. package/dist/external-tools/bazel/read-bazel-version-file.js +35 -57
  207. package/dist/external-tools/bazel/resolve-asset-url.js +24 -39
  208. package/dist/external-tools/bazel/resolve-bazel-version.js +34 -56
  209. package/dist/external-tools/bazel/resolve.js +44 -58
  210. package/dist/external-tools/bazel/types.js +1 -17
  211. package/dist/external-tools/cdxgen/asset-names.js +59 -66
  212. package/dist/external-tools/cdxgen/from-download.js +52 -80
  213. package/dist/external-tools/cdxgen/from-path.js +19 -37
  214. package/dist/external-tools/cdxgen/from-vfs.js +22 -43
  215. package/dist/external-tools/cdxgen/resolve.js +48 -63
  216. package/dist/external-tools/cdxgen/types.js +1 -17
  217. package/dist/external-tools/from-download.js +107 -67
  218. package/dist/external-tools/janus/asset-names.js +44 -51
  219. package/dist/external-tools/janus/from-download.js +45 -70
  220. package/dist/external-tools/janus/from-path.js +19 -37
  221. package/dist/external-tools/janus/from-vfs.js +22 -43
  222. package/dist/external-tools/janus/resolve.js +45 -63
  223. package/dist/external-tools/janus/types.js +1 -17
  224. package/dist/external-tools/jre/asset-names.js +109 -82
  225. package/dist/external-tools/jre/detect-platform-arch.js +25 -49
  226. package/dist/external-tools/jre/from-download.js +71 -67
  227. package/dist/external-tools/jre/from-java-home.js +27 -54
  228. package/dist/external-tools/jre/from-path.js +27 -49
  229. package/dist/external-tools/jre/from-vfs.js +39 -60
  230. package/dist/external-tools/jre/resolve.js +55 -68
  231. package/dist/external-tools/jre/types.js +1 -17
  232. package/dist/external-tools/manifest.js +130 -150
  233. package/dist/external-tools/opengrep/asset-names.js +60 -72
  234. package/dist/external-tools/opengrep/from-download.js +58 -80
  235. package/dist/external-tools/opengrep/from-path.js +19 -37
  236. package/dist/external-tools/opengrep/from-vfs.js +23 -43
  237. package/dist/external-tools/opengrep/resolve.js +43 -63
  238. package/dist/external-tools/opengrep/types.js +1 -17
  239. package/dist/external-tools/sbt/asset-names.js +21 -30
  240. package/dist/external-tools/sbt/from-download.js +50 -61
  241. package/dist/external-tools/sbt/from-path.js +23 -38
  242. package/dist/external-tools/sbt/from-vfs.js +30 -44
  243. package/dist/external-tools/sbt/resolve.js +45 -63
  244. package/dist/external-tools/sbt/types.js +1 -17
  245. package/dist/external-tools/synp/asset-names.js +11 -29
  246. package/dist/external-tools/synp/from-download.js +24 -41
  247. package/dist/external-tools/synp/from-path.js +19 -37
  248. package/dist/external-tools/synp/from-vfs.js +22 -43
  249. package/dist/external-tools/synp/resolve.js +43 -62
  250. package/dist/external-tools/synp/types.js +1 -17
  251. package/dist/external-tools/trivy/asset-names.js +51 -62
  252. package/dist/external-tools/trivy/from-download.js +42 -64
  253. package/dist/external-tools/trivy/from-path.js +19 -37
  254. package/dist/external-tools/trivy/from-vfs.js +22 -43
  255. package/dist/external-tools/trivy/resolve.js +43 -63
  256. package/dist/external-tools/trivy/types.js +1 -17
  257. package/dist/external-tools/trufflehog/asset-names.js +54 -66
  258. package/dist/external-tools/trufflehog/from-download.js +44 -62
  259. package/dist/external-tools/trufflehog/from-path.js +21 -37
  260. package/dist/external-tools/trufflehog/from-vfs.js +26 -43
  261. package/dist/external-tools/trufflehog/resolve.js +43 -63
  262. package/dist/external-tools/trufflehog/types.js +1 -17
  263. package/dist/external-tools/uv/asset-names.js +64 -74
  264. package/dist/external-tools/uv/from-download.js +44 -65
  265. package/dist/external-tools/uv/from-path.js +19 -37
  266. package/dist/external-tools/uv/from-vfs.js +22 -43
  267. package/dist/external-tools/uv/resolve.js +42 -63
  268. package/dist/external-tools/uv/types.js +1 -17
  269. package/dist/fs/_internal.js +40 -42
  270. package/dist/fs/access.js +57 -54
  271. package/dist/fs/encoding.js +80 -97
  272. package/dist/fs/find-up.js +126 -125
  273. package/dist/fs/inspect.js +168 -99
  274. package/dist/fs/path-cache.js +31 -32
  275. package/dist/fs/read-dir.js +102 -79
  276. package/dist/fs/read-file.js +177 -118
  277. package/dist/fs/read-json-cache.js +150 -134
  278. package/dist/fs/read-json.js +172 -187
  279. package/dist/fs/resolve-module.js +35 -58
  280. package/dist/fs/safe.js +278 -169
  281. package/dist/fs/types.js +1 -17
  282. package/dist/fs/unique.js +52 -48
  283. package/dist/fs/validate.js +56 -40
  284. package/dist/fs/write-json.js +109 -75
  285. package/dist/git/_internal.js +251 -216
  286. package/dist/git/changed.js +191 -74
  287. package/dist/git/repo.js +118 -104
  288. package/dist/git/staged.js +172 -62
  289. package/dist/git/types.js +1 -17
  290. package/dist/git/unstaged.js +175 -62
  291. package/dist/github/constants.js +25 -33
  292. package/dist/github/errors.js +46 -38
  293. package/dist/github/fetch.js +137 -82
  294. package/dist/github/ghsa.js +217 -151
  295. package/dist/github/refs-cache.js +54 -43
  296. package/dist/github/refs-graphql.js +97 -89
  297. package/dist/github/refs-rest.js +70 -101
  298. package/dist/github/refs.js +105 -64
  299. package/dist/github/token.js +96 -48
  300. package/dist/github/types.js +1 -17
  301. package/dist/globs/_internal.js +73 -82
  302. package/dist/globs/defaults.js +40 -59
  303. package/dist/globs/match.js +93 -77
  304. package/dist/globs/matcher.js +104 -92
  305. package/dist/globs/stream.js +43 -55
  306. package/dist/globs/types.js +1 -17
  307. package/dist/http-request/_internal.js +11 -38
  308. package/dist/http-request/browser-fetch.js +19 -29
  309. package/dist/http-request/browser.js +188 -206
  310. package/dist/http-request/checksums.js +101 -65
  311. package/dist/http-request/download-types.js +1 -17
  312. package/dist/http-request/download.js +195 -196
  313. package/dist/http-request/errors.js +39 -47
  314. package/dist/http-request/headers.js +95 -80
  315. package/dist/http-request/http-request.js +10 -35
  316. package/dist/http-request/node.js +71 -97
  317. package/dist/http-request/request-attempt.js +232 -285
  318. package/dist/http-request/request-types.js +1 -17
  319. package/dist/http-request/request.js +106 -108
  320. package/dist/http-request/response-reader.js +47 -51
  321. package/dist/http-request/response-types.js +22 -38
  322. package/dist/http-request/user-agent.js +73 -55
  323. package/dist/integrity.js +105 -106
  324. package/dist/ipc/_internal.js +34 -48
  325. package/dist/ipc/directory.js +55 -63
  326. package/dist/ipc/paths.js +52 -45
  327. package/dist/ipc/types.js +1 -17
  328. package/dist/ipc/write.js +81 -74
  329. package/dist/ipc-cli/get.js +29 -56
  330. package/dist/ipc-cli/types.js +1 -17
  331. package/dist/json/edit.js +182 -242
  332. package/dist/json/format.js +202 -103
  333. package/dist/json/parse.js +206 -109
  334. package/dist/json/types.js +1 -17
  335. package/dist/links/create.js +93 -60
  336. package/dist/links/types.js +1 -17
  337. package/dist/logger/_internal.js +109 -73
  338. package/dist/logger/browser.js +45 -56
  339. package/dist/logger/colors.js +31 -49
  340. package/dist/logger/console.js +89 -112
  341. package/dist/logger/default.js +19 -33
  342. package/dist/logger/logger.js +5 -29
  343. package/dist/logger/node.js +793 -854
  344. package/dist/logger/symbols-builder.js +54 -56
  345. package/dist/logger/symbols.js +135 -118
  346. package/dist/logger/types.js +1 -17
  347. package/dist/memo/_internal.js +39 -49
  348. package/dist/memo/async.js +133 -117
  349. package/dist/memo/clear.js +25 -34
  350. package/dist/memo/decorator.js +43 -37
  351. package/dist/memo/memoize.js +97 -88
  352. package/dist/memo/once.js +42 -41
  353. package/dist/memo/types.js +1 -17
  354. package/dist/memo/weak.js +45 -41
  355. package/dist/node/async-hooks.js +9 -30
  356. package/dist/node/child-process.js +9 -30
  357. package/dist/node/crypto.js +9 -30
  358. package/dist/node/events.js +9 -30
  359. package/dist/node/fs-promises.js +9 -30
  360. package/dist/node/fs.js +9 -30
  361. package/dist/node/http.js +9 -30
  362. package/dist/node/https.js +9 -30
  363. package/dist/node/module.js +20 -34
  364. package/dist/node/os.js +9 -30
  365. package/dist/node/path.js +9 -30
  366. package/dist/node/timers-promises.js +9 -30
  367. package/dist/node/url.js +9 -30
  368. package/dist/node/util.js +9 -30
  369. package/dist/objects/getters.js +185 -126
  370. package/dist/objects/inspect.js +85 -52
  371. package/dist/objects/mutate.js +96 -76
  372. package/dist/objects/predicates.js +112 -59
  373. package/dist/objects/sort.js +120 -76
  374. package/dist/objects/types.js +1 -17
  375. package/dist/packages/edit-class.js +198 -265
  376. package/dist/packages/edit.js +79 -86
  377. package/dist/packages/exports.js +146 -157
  378. package/dist/packages/isolation.js +159 -209
  379. package/dist/packages/licenses.js +207 -189
  380. package/dist/packages/manifest.js +134 -172
  381. package/dist/packages/normalize.js +91 -102
  382. package/dist/packages/operations.d.ts +2 -0
  383. package/dist/packages/operations.js +283 -254
  384. package/dist/packages/provenance.js +195 -245
  385. package/dist/packages/specs.js +94 -84
  386. package/dist/packages/types.js +1 -17
  387. package/dist/packages/validation.js +49 -50
  388. package/dist/paths/_internal.js +82 -86
  389. package/dist/paths/conversion.js +112 -65
  390. package/dist/paths/dirnames.js +17 -42
  391. package/dist/paths/exts.js +23 -54
  392. package/dist/paths/filenames.js +21 -50
  393. package/dist/paths/globs.js +15 -38
  394. package/dist/paths/normalize.js +215 -236
  395. package/dist/paths/packages.js +34 -49
  396. package/dist/paths/predicates.js +184 -106
  397. package/dist/paths/resolve.js +146 -128
  398. package/dist/paths/rewire.js +108 -72
  399. package/dist/paths/socket.js +252 -132
  400. package/dist/paths/walk.js +55 -60
  401. package/dist/perf/_internal.js +10 -28
  402. package/dist/perf/enabled.js +21 -30
  403. package/dist/perf/metrics.js +81 -67
  404. package/dist/perf/report.js +79 -80
  405. package/dist/perf/timer.js +180 -126
  406. package/dist/perf/types.js +1 -17
  407. package/dist/pkg-ext/data.js +29 -82
  408. package/dist/pkg-ext/types.js +1 -17
  409. package/dist/primordials/array.js +120 -198
  410. package/dist/primordials/buffer.js +28 -51
  411. package/dist/primordials/date.js +26 -51
  412. package/dist/primordials/error.js +33 -59
  413. package/dist/primordials/function.js +21 -41
  414. package/dist/primordials/globals.js +25 -48
  415. package/dist/primordials/json.js +14 -30
  416. package/dist/primordials/map-set.js +88 -152
  417. package/dist/primordials/math.js +59 -116
  418. package/dist/primordials/number.js +41 -76
  419. package/dist/primordials/object.js +56 -116
  420. package/dist/primordials/promise.js +28 -52
  421. package/dist/primordials/reflect.js +24 -52
  422. package/dist/primordials/regexp.js +25 -47
  423. package/dist/primordials/string.js +114 -167
  424. package/dist/primordials/symbol.js +40 -72
  425. package/dist/primordials/uncurry.js +38 -55
  426. package/dist/primordials/url.js +27 -66
  427. package/dist/process/_internal.js +7 -32
  428. package/dist/process/abort.js +29 -35
  429. package/dist/process/lock-instance.js +26 -30
  430. package/dist/process/lock-manager.js +279 -307
  431. package/dist/process/lock-types.js +1 -17
  432. package/dist/process/spawn/_internal.js +43 -55
  433. package/dist/process/spawn/child.js +172 -211
  434. package/dist/process/spawn/errors.js +116 -113
  435. package/dist/process/spawn/stdio.js +51 -35
  436. package/dist/process/spawn/types.js +1 -17
  437. package/dist/process/transient.js +49 -66
  438. package/dist/promises/_internal.js +31 -34
  439. package/dist/promises/iterate.js +238 -102
  440. package/dist/promises/options.js +123 -101
  441. package/dist/promises/queue.js +115 -136
  442. package/dist/promises/resolvers.js +77 -46
  443. package/dist/promises/retry.js +156 -101
  444. package/dist/promises/types.js +1 -17
  445. package/dist/regexps/escape.js +32 -30
  446. package/dist/regexps/hex.js +16 -33
  447. package/dist/regexps/spec.js +53 -81
  448. package/dist/releases/github-archives.js +127 -118
  449. package/dist/releases/github-asset-url.js +162 -146
  450. package/dist/releases/github-assets.js +37 -49
  451. package/dist/releases/github-auth.js +32 -48
  452. package/dist/releases/github-downloads.js +118 -138
  453. package/dist/releases/github-listing.js +175 -145
  454. package/dist/releases/github-retry-config.js +41 -47
  455. package/dist/releases/github-types.js +1 -17
  456. package/dist/releases/socket-btm.js +273 -192
  457. package/dist/schema/parse.js +35 -36
  458. package/dist/schema/types.js +1 -17
  459. package/dist/schema/validate.js +118 -99
  460. package/dist/sea/detect.js +57 -52
  461. package/dist/secrets/_internal.js +86 -67
  462. package/dist/secrets/find.js +96 -77
  463. package/dist/secrets/keychain.js +315 -309
  464. package/dist/secrets/linux.js +133 -135
  465. package/dist/secrets/macos.js +151 -147
  466. package/dist/secrets/rc.js +182 -181
  467. package/dist/secrets/socket-api-token.js +28 -43
  468. package/dist/secrets/types.js +1 -17
  469. package/dist/secrets/windows.js +184 -242
  470. package/dist/shadow/skip.js +51 -70
  471. package/dist/shadow/types.js +1 -17
  472. package/dist/shell/parse.d.ts +26 -0
  473. package/dist/shell/parse.js +35 -0
  474. package/dist/shell/quote.d.ts +19 -0
  475. package/dist/shell/quote.js +30 -0
  476. package/dist/smol/detect.js +67 -43
  477. package/dist/smol/http.js +33 -37
  478. package/dist/smol/https.js +31 -37
  479. package/dist/smol/manifest.js +33 -37
  480. package/dist/smol/path.js +33 -37
  481. package/dist/smol/primordial.js +35 -37
  482. package/dist/smol/purl.js +34 -37
  483. package/dist/smol/versions.js +31 -37
  484. package/dist/smol/vfs.js +46 -38
  485. package/dist/sorts/_internal.js +14 -40
  486. package/dist/sorts/natural.js +57 -64
  487. package/dist/sorts/semver.js +33 -43
  488. package/dist/sorts/strings.js +24 -30
  489. package/dist/sorts/types.js +1 -17
  490. package/dist/spinner/default.js +72 -63
  491. package/dist/spinner/format.js +86 -71
  492. package/dist/spinner/spinner.js +749 -797
  493. package/dist/spinner/types.js +1 -17
  494. package/dist/spinner/with.js +193 -137
  495. package/dist/ssri/convert.js +64 -47
  496. package/dist/ssri/parse.js +38 -37
  497. package/dist/ssri/validate.js +51 -34
  498. package/dist/stdio/_internal.js +50 -46
  499. package/dist/stdio/clear.js +208 -86
  500. package/dist/stdio/divider.js +170 -97
  501. package/dist/stdio/footer.js +116 -110
  502. package/dist/stdio/header.js +117 -90
  503. package/dist/stdio/progress.js +189 -218
  504. package/dist/stdio/prompts.js +244 -168
  505. package/dist/stdio/stderr.js +173 -78
  506. package/dist/stdio/stdout.js +177 -94
  507. package/dist/streams/parallel.js +58 -50
  508. package/dist/streams/transform.js +36 -45
  509. package/dist/strings/format.js +145 -63
  510. package/dist/strings/predicates.js +56 -34
  511. package/dist/strings/search.js +52 -42
  512. package/dist/strings/transform.js +113 -72
  513. package/dist/strings/types.js +1 -17
  514. package/dist/strings/width.js +89 -82
  515. package/dist/tables/bordered.js +81 -81
  516. package/dist/tables/padding.js +36 -46
  517. package/dist/tables/simple.js +62 -70
  518. package/dist/tables/types.js +1 -17
  519. package/dist/temporal/instant.js +72 -81
  520. package/dist/temporal/now.js +40 -31
  521. package/dist/temporal/slots.js +42 -36
  522. package/dist/temporal/system.js +36 -36
  523. package/dist/temporal/temporal.js +11 -41
  524. package/dist/themes/context.js +131 -69
  525. package/dist/themes/resolve.js +207 -132
  526. package/dist/themes/themes.js +225 -194
  527. package/dist/themes/types.js +1 -17
  528. package/dist/url/parse.js +48 -51
  529. package/dist/url/predicates.js +24 -31
  530. package/dist/url/search-params.js +133 -101
  531. package/dist/url/types.js +1 -17
  532. package/dist/versions/_internal.js +31 -33
  533. package/dist/versions/compare.js +80 -58
  534. package/dist/versions/modify.js +41 -39
  535. package/dist/versions/parse.js +88 -64
  536. package/dist/versions/range.js +58 -41
  537. package/dist/versions/types.js +1 -17
  538. package/dist/words/article.js +22 -30
  539. package/dist/words/capitalize.js +25 -34
  540. package/dist/words/pluralize.js +23 -31
  541. package/dist/words/types.js +1 -17
  542. package/package.json +17 -5
@@ -1,83 +1,200 @@
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 changed_exports = {};
22
- __export(changed_exports, {
23
- getChangedFiles: () => getChangedFiles,
24
- getChangedFilesSync: () => getChangedFilesSync,
25
- isChanged: () => isChanged,
26
- isChangedSync: () => isChangedSync
27
- });
28
- module.exports = __toCommonJS(changed_exports);
29
- var import_normalize = require("../paths/normalize");
30
- var import_array = require("../primordials/array");
31
- var import_internal = require("./_internal");
32
- var import_repo = require("./repo");
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_primordials_array = require('../primordials/array.js');
6
+ const require_node_path = require('../node/path.js');
7
+ const require_git_repo = require('./repo.js');
8
+ const require_git__internal = require('./_internal.js');
9
+
10
+ //#region src/git/changed.ts
11
+ /**
12
+ * @file "Anything different from HEAD" helpers the broad-strokes `git status
13
+ * --porcelain` view that lumps staged, unstaged, and untracked paths
14
+ * together. Use these when you want a single answer to "did anything
15
+ * change?"; reach for `staged.ts` / `unstaged.ts` when the distinction
16
+ * matters.
17
+ */
18
+ /**
19
+ * Get all changed files including staged, unstaged, and untracked files.
20
+ *
21
+ * Uses `git status --porcelain` which returns the full working tree status with
22
+ * status codes: - `M` - Modified - `A` - Added - `D` - Deleted - `??` -
23
+ * Untracked - `R` - Renamed - `C` - Copied.
24
+ *
25
+ * This is the most comprehensive check - captures everything that differs from
26
+ * the last commit, including: - Files modified and staged with `git add` -
27
+ * Files modified but not staged - New files not yet tracked by git.
28
+ *
29
+ * Status codes are automatically stripped from the output.
30
+ *
31
+ * @example
32
+ * ;```typescript
33
+ * // Get all changed files as relative paths
34
+ * const files = await getChangedFiles()
35
+ * // => ['src/foo.ts', 'src/bar.ts', 'newfile.ts']
36
+ *
37
+ * // Get absolute paths
38
+ * const files = await getChangedFiles({ absolute: true })
39
+ * // => ['/path/to/repo/src/foo.ts', ...]
40
+ *
41
+ * // Get changed files in specific directory
42
+ * const files = await getChangedFiles({ cwd: '/path/to/repo/src' })
43
+ * // => ['foo.ts', 'bar.ts']
44
+ * ```
45
+ *
46
+ * @param options - Options controlling path format and filtering.
47
+ *
48
+ * @returns Promise resolving to array of changed file paths.
49
+ */
33
50
  async function getChangedFiles(options) {
34
- const args = (0, import_internal.getGitDiffSpawnArgs)(options?.cwd).all;
35
- return await (0, import_internal.innerDiff)(args, {
36
- __proto__: null,
37
- ...options,
38
- porcelain: true
39
- });
51
+ const args = require_git__internal.getGitDiffSpawnArgs(options?.cwd).all;
52
+ return await require_git__internal.innerDiff(args, {
53
+ __proto__: null,
54
+ ...options,
55
+ porcelain: true
56
+ });
40
57
  }
58
+ /**
59
+ * Get all changed files including staged, unstaged, and untracked files.
60
+ *
61
+ * Synchronous version of `getChangedFiles()`. Uses `git status --porcelain`
62
+ * which returns the full working tree status with status codes: - `M` -
63
+ * Modified - `A` - Added - `D` - Deleted - `??` - Untracked - `R` - Renamed -
64
+ * `C` - Copied.
65
+ *
66
+ * This is the most comprehensive check - captures everything that differs from
67
+ * the last commit, including: - Files modified and staged with `git add` -
68
+ * Files modified but not staged - New files not yet tracked by git.
69
+ *
70
+ * Status codes are automatically stripped from the output.
71
+ *
72
+ * @example
73
+ * ;```typescript
74
+ * // Get all changed files as relative paths
75
+ * const files = getChangedFilesSync()
76
+ * // => ['src/foo.ts', 'src/bar.ts', 'newfile.ts']
77
+ *
78
+ * // Get absolute paths
79
+ * const files = getChangedFilesSync({ absolute: true })
80
+ * // => ['/path/to/repo/src/foo.ts', ...]
81
+ *
82
+ * // Get changed files in specific directory
83
+ * const files = getChangedFilesSync({ cwd: '/path/to/repo/src' })
84
+ * // => ['foo.ts', 'bar.ts']
85
+ * ```
86
+ *
87
+ * @param options - Options controlling path format and filtering.
88
+ *
89
+ * @returns Array of changed file paths.
90
+ */
41
91
  function getChangedFilesSync(options) {
42
- const args = (0, import_internal.getGitDiffSpawnArgs)(options?.cwd).all;
43
- return (0, import_internal.innerDiffSync)(args, {
44
- __proto__: null,
45
- ...options,
46
- porcelain: true
47
- });
92
+ const args = require_git__internal.getGitDiffSpawnArgs(options?.cwd).all;
93
+ return require_git__internal.innerDiffSync(args, {
94
+ __proto__: null,
95
+ ...options,
96
+ porcelain: true
97
+ });
48
98
  }
99
+ /**
100
+ * Check if a file or directory has any git changes.
101
+ *
102
+ * Checks if the given pathname has any changes including: - Staged
103
+ * modifications (added with `git add`) - Unstaged modifications (not yet
104
+ * staged) - Untracked status (new file/directory not in git)
105
+ *
106
+ * For directories, returns `true` if ANY file within the directory has changes.
107
+ *
108
+ * Symlinks in the pathname and cwd are automatically resolved using
109
+ * `fs.realpathSync()` before comparison.
110
+ *
111
+ * @example
112
+ * ;```typescript
113
+ * // Check if file is changed
114
+ * const changed = await isChanged('src/foo.ts')
115
+ * // => true
116
+ *
117
+ * // Check if directory has any changes
118
+ * const changed = await isChanged('src/')
119
+ * // => true (if any file in src/ is changed)
120
+ *
121
+ * // Check from different cwd
122
+ * const changed = await isChanged('/path/to/repo/src/foo.ts', {
123
+ * cwd: '/path/to/repo',
124
+ * })
125
+ * ```
126
+ *
127
+ * @param pathname - File or directory path to check.
128
+ * @param options - Options for the git status check.
129
+ *
130
+ * @returns Promise resolving to `true` if path has any changes, `false`
131
+ * otherwise.
132
+ */
49
133
  async function isChanged(pathname, options) {
50
- const files = await getChangedFiles({
51
- __proto__: null,
52
- ...options,
53
- absolute: false
54
- });
55
- const path = (0, import_repo.getPath)();
56
- const resolvedPathname = (0, import_repo.getCachedRealpath)(pathname);
57
- const baseCwd = options?.cwd ? (0, import_repo.getCachedRealpath)(options["cwd"]) : (0, import_repo.getCwd)();
58
- const relativePath = (0, import_normalize.normalizePath)(path.relative(baseCwd, resolvedPathname));
59
- return (0, import_array.ArrayPrototypeIncludes)(files, relativePath);
134
+ const files = await getChangedFiles({
135
+ __proto__: null,
136
+ ...options,
137
+ absolute: false
138
+ });
139
+ const path = /* @__PURE__ */ require_node_path.getNodePath();
140
+ const resolvedPathname = require_git_repo.getCachedRealpath(pathname);
141
+ /* c8 ignore start */
142
+ const baseCwd = options?.cwd ? require_git_repo.getCachedRealpath(options["cwd"]) : require_git_repo.getCwd();
143
+ return require_primordials_array.ArrayPrototypeIncludes(files, /* @__PURE__ */ require_paths_normalize.normalizePath(path.relative(baseCwd, resolvedPathname)));
60
144
  }
145
+ /**
146
+ * Check if a file or directory has any git changes.
147
+ *
148
+ * Synchronous version of `isChanged()`. Checks if the given pathname has any
149
+ * changes including: - Staged modifications (added with `git add`) - Unstaged
150
+ * modifications (not yet staged) - Untracked status (new file/directory not in
151
+ * git)
152
+ *
153
+ * For directories, returns `true` if ANY file within the directory has changes.
154
+ *
155
+ * Symlinks in the pathname and cwd are automatically resolved using
156
+ * `fs.realpathSync()` before comparison.
157
+ *
158
+ * @example
159
+ * ;```typescript
160
+ * // Check if file is changed
161
+ * const changed = isChangedSync('src/foo.ts')
162
+ * // => true
163
+ *
164
+ * // Check if directory has any changes
165
+ * const changed = isChangedSync('src/')
166
+ * // => true (if any file in src/ is changed)
167
+ *
168
+ * // Check from different cwd
169
+ * const changed = isChangedSync('/path/to/repo/src/foo.ts', {
170
+ * cwd: '/path/to/repo',
171
+ * })
172
+ * ```
173
+ *
174
+ * @param pathname - File or directory path to check.
175
+ * @param options - Options for the git status check.
176
+ *
177
+ * @returns `true` if path has any changes, `false` otherwise.
178
+ */
61
179
  function isChangedSync(pathname, options) {
62
- const files = getChangedFilesSync({
63
- __proto__: null,
64
- ...options,
65
- absolute: false
66
- });
67
- const path = (0, import_repo.getPath)();
68
- try {
69
- const resolvedPathname = (0, import_repo.getCachedRealpath)(pathname);
70
- const baseCwd = options?.cwd ? (0, import_repo.getCachedRealpath)(options["cwd"]) : (0, import_repo.getCwd)();
71
- const relativePath = (0, import_normalize.normalizePath)(path.relative(baseCwd, resolvedPathname));
72
- return (0, import_array.ArrayPrototypeIncludes)(files, relativePath);
73
- } catch {
74
- return false;
75
- }
180
+ const files = getChangedFilesSync({
181
+ __proto__: null,
182
+ ...options,
183
+ absolute: false
184
+ });
185
+ const path = /* @__PURE__ */ require_node_path.getNodePath();
186
+ try {
187
+ const resolvedPathname = require_git_repo.getCachedRealpath(pathname);
188
+ /* c8 ignore start */
189
+ const baseCwd = options?.cwd ? require_git_repo.getCachedRealpath(options["cwd"]) : require_git_repo.getCwd();
190
+ return require_primordials_array.ArrayPrototypeIncludes(files, /* @__PURE__ */ require_paths_normalize.normalizePath(path.relative(baseCwd, resolvedPathname)));
191
+ } catch {
192
+ return false;
193
+ }
76
194
  }
77
- // Annotate the CommonJS export names for ESM import in node:
78
- 0 && (module.exports = {
79
- getChangedFiles,
80
- getChangedFilesSync,
81
- isChanged,
82
- isChangedSync
83
- });
195
+
196
+ //#endregion
197
+ exports.getChangedFiles = getChangedFiles;
198
+ exports.getChangedFilesSync = getChangedFilesSync;
199
+ exports.isChanged = isChanged;
200
+ exports.isChangedSync = isChangedSync;
package/dist/git/repo.js CHANGED
@@ -1,111 +1,125 @@
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 repo_exports = {};
32
- __export(repo_exports, {
33
- findGitRoot: () => findGitRoot,
34
- getCachedRealpath: () => getCachedRealpath,
35
- getCwd: () => getCwd,
36
- getFs: () => import_fs2.getNodeFs,
37
- getPath: () => import_path2.getNodePath,
38
- gitRootCache: () => gitRootCache,
39
- realpathCache: () => realpathCache
40
- });
41
- module.exports = __toCommonJS(repo_exports);
42
- var import_node_process = __toESM(require("node:process"));
43
- var import_map_set = require("../primordials/map-set");
44
- var import_fs = require("../node/fs");
45
- var import_path = require("../node/path");
46
- var import_fs2 = require("../node/fs");
47
- var import_path2 = require("../node/path");
48
- const realpathCache = new import_map_set.MapCtor();
49
- const gitRootCache = new import_map_set.MapCtor();
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_map_set = require('../primordials/map-set.js');
6
+ const require_node_fs = require('../node/fs.js');
7
+ const require_node_path = require('../node/path.js');
8
+ let node_process = require("node:process");
9
+ node_process = require_runtime.__toESM(node_process);
10
+
11
+ //#region src/git/repo.ts
12
+ /**
13
+ * @file Git repository discovery + foundational lazy fs/path/cwd helpers shared
14
+ * across `git/*` leaves. Owns `findGitRoot`, the realpath cache, the cwd
15
+ * resolver, and the lazy `node:fs` / `node:path` loaders pulling these
16
+ * together keeps the dependency direction one-way: `_internal.ts` and the
17
+ * public-surface leaves all import from here.
18
+ */
19
+ const realpathCache = new require_primordials_map_set.MapCtor();
20
+ const gitRootCache = new require_primordials_map_set.MapCtor();
21
+ /**
22
+ * Find git repository root by walking up from the given directory.
23
+ *
24
+ * Searches for a `.git` directory or file by traversing parent directories
25
+ * upward until found or filesystem root is reached. Returns the original path
26
+ * if no git repository is found.
27
+ *
28
+ * This function is exported primarily for testing purposes.
29
+ *
30
+ * @example
31
+ * ;```typescript
32
+ * const root = findGitRoot('/path/to/repo/src/subdir')
33
+ * // => '/path/to/repo'
34
+ *
35
+ * const notFound = findGitRoot('/not/a/repo')
36
+ * // => '/not/a/repo'
37
+ * ```
38
+ *
39
+ * @param startPath - Directory path to start searching from.
40
+ *
41
+ * @returns Git repository root path, or `startPath` if not found.
42
+ */
50
43
  function findGitRoot(startPath) {
51
- const fs = (0, import_fs.getNodeFs)();
52
- const path = (0, import_path.getNodePath)();
53
- const cached = gitRootCache.get(startPath);
54
- if (cached) {
55
- if (fs.existsSync(path.join(cached, ".git"))) {
56
- return cached;
57
- }
58
- gitRootCache.delete(startPath);
59
- }
60
- let currentPath = startPath;
61
- while (true) {
62
- try {
63
- const gitPath = path.join(currentPath, ".git");
64
- if (fs.existsSync(gitPath)) {
65
- gitRootCache.set(startPath, currentPath);
66
- return currentPath;
67
- }
68
- } catch {
69
- }
70
- const parentPath = path.dirname(currentPath);
71
- if (parentPath === currentPath) {
72
- return startPath;
73
- }
74
- currentPath = parentPath;
75
- }
44
+ const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
45
+ const path = /* @__PURE__ */ require_node_path.getNodePath();
46
+ /* c8 ignore start */
47
+ const cached = gitRootCache.get(startPath);
48
+ if (cached) {
49
+ if (fs.existsSync(path.join(cached, ".git"))) return cached;
50
+ gitRootCache.delete(startPath);
51
+ }
52
+ /* c8 ignore stop */
53
+ let currentPath = startPath;
54
+ while (true) {
55
+ try {
56
+ const gitPath = path.join(currentPath, ".git");
57
+ if (fs.existsSync(gitPath)) {
58
+ gitRootCache.set(startPath, currentPath);
59
+ return currentPath;
60
+ }
61
+ } catch {}
62
+ const parentPath = path.dirname(currentPath);
63
+ if (parentPath === currentPath) return startPath;
64
+ currentPath = parentPath;
65
+ }
76
66
  }
67
+ /**
68
+ * Get the real path with caching to avoid repeated filesystem calls. Validates
69
+ * cache with existsSync() which is cheaper than realpathSync().
70
+ *
71
+ * ENOENT/ENOTDIR are re-thrown because the caller explicitly passed a path they
72
+ * expect to exist — swallowing these would turn "file not found" into a silent
73
+ * no-op. Other errors (EACCES, EPERM, EIO) fall back to the input path since
74
+ * they can happen on container/overlay filesystems where the path exists but
75
+ * realpath resolution is restricted.
76
+ */
77
77
  function getCachedRealpath(pathname) {
78
- const fs = (0, import_fs.getNodeFs)();
79
- const cached = realpathCache.get(pathname);
80
- if (cached) {
81
- if (fs.existsSync(cached)) {
82
- return cached;
83
- }
84
- realpathCache.delete(pathname);
85
- }
86
- let resolved;
87
- try {
88
- resolved = fs.realpathSync(pathname);
89
- } catch (e) {
90
- const code = e.code;
91
- if (code === "ENOENT" || code === "ENOTDIR") {
92
- throw e;
93
- }
94
- resolved = pathname;
95
- }
96
- realpathCache.set(pathname, resolved);
97
- return resolved;
78
+ const fs = /* @__PURE__ */ require_node_fs.getNodeFs();
79
+ const cached = realpathCache.get(pathname);
80
+ /* c8 ignore start */
81
+ if (cached) {
82
+ if (fs.existsSync(cached)) return cached;
83
+ realpathCache.delete(pathname);
84
+ }
85
+ /* c8 ignore stop */
86
+ let resolved;
87
+ try {
88
+ resolved = fs.realpathSync(pathname);
89
+ } catch (e) {
90
+ const code = e.code;
91
+ if (code === "ENOENT" || code === "ENOTDIR") throw e;
92
+ resolved = pathname;
93
+ }
94
+ /* c8 ignore stop */
95
+ realpathCache.set(pathname, resolved);
96
+ return resolved;
98
97
  }
98
+ /**
99
+ * Get the current working directory for git operations.
100
+ *
101
+ * Returns the real path to handle symlinks correctly. This is important because
102
+ * symlinked directories like `/tmp -> /private/tmp` can cause path mismatches
103
+ * when comparing git output.
104
+ *
105
+ * @example
106
+ * ;```typescript
107
+ * const cwd = getCwd()
108
+ * // In /tmp (symlink to /private/tmp):
109
+ * // => '/private/tmp'
110
+ * ```
111
+ *
112
+ * @returns The resolved real path of `process.cwd()`.
113
+ */
99
114
  function getCwd() {
100
- return getCachedRealpath(import_node_process.default.cwd());
115
+ return getCachedRealpath(node_process.default.cwd());
101
116
  }
102
- // Annotate the CommonJS export names for ESM import in node:
103
- 0 && (module.exports = {
104
- findGitRoot,
105
- getCachedRealpath,
106
- getCwd,
107
- getFs,
108
- getPath,
109
- gitRootCache,
110
- realpathCache
111
- });
117
+
118
+ //#endregion
119
+ exports.findGitRoot = findGitRoot;
120
+ exports.getCachedRealpath = getCachedRealpath;
121
+ exports.getCwd = getCwd;
122
+ exports.getFs = require_node_fs.getNodeFs;
123
+ exports.getPath = require_node_path.getNodePath;
124
+ exports.gitRootCache = gitRootCache;
125
+ exports.realpathCache = realpathCache;