@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,121 +1,199 @@
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 predicates_exports = {};
22
- __export(predicates_exports, {
23
- isAbsolute: () => isAbsolute,
24
- isNodeModules: () => isNodeModules,
25
- isPath: () => isPath,
26
- isPathSeparator: () => isPathSeparator,
27
- isRelative: () => isRelative,
28
- isUnixPath: () => isUnixPath,
29
- isWindowsDeviceRoot: () => isWindowsDeviceRoot
30
- });
31
- module.exports = __toCommonJS(predicates_exports);
32
- var import_platform = require("../constants/platform");
33
- var import_regexp = require("../primordials/regexp");
34
- var import_string = require("../primordials/string");
35
- var import_internal = require("./_internal");
36
- // @__NO_SIDE_EFFECTS__
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_constants_platform = require('../constants/platform.js');
6
+ const require_paths__internal = require('./_internal.js');
7
+ const require_primordials_regexp = require('../primordials/regexp.js');
8
+
9
+ //#region src/paths/predicates.ts
10
+ /**
11
+ * @file Path predicates — `is*` checks for path shape and kind. Split out of
12
+ * `paths/normalize.ts` for file-size hygiene. Pure boolean predicates over
13
+ * paths and character codes.
14
+ *
15
+ * - `isAbsolute`, `isRelative` root-anchoring shape
16
+ * - `isPath` file-path vs package-spec vs URL discriminator
17
+ * - `isNodeModules`, `isUnixPath` — content-pattern checks
18
+ * - `isPathSeparator`, `isWindowsDeviceRoot` — char-code primitives
19
+ */
20
+ /**
21
+ * Check if a path is absolute.
22
+ *
23
+ * Handles both POSIX (`/...`) and Windows (drive-letter, UNC, device) absolute
24
+ * path shapes.
25
+ *
26
+ * @example
27
+ * ;```typescript
28
+ * isAbsolute('/home/user') // true
29
+ * isAbsolute('C:\\Windows') // true on Windows
30
+ * isAbsolute('../relative') // false
31
+ * ```
32
+ *
33
+ * @param {string | Buffer | URL} pathLike - The path to check.
34
+ *
35
+ * @returns {boolean} `true` if absolute, `false` otherwise
36
+ */
37
+ /* @__NO_SIDE_EFFECTS__ */
37
38
  function isAbsolute(pathLike) {
38
- const filepath = (0, import_internal.pathLikeToString)(pathLike);
39
- const { length } = filepath;
40
- if (length === 0) {
41
- return false;
42
- }
43
- const code = (0, import_string.StringPrototypeCharCodeAt)(filepath, 0);
44
- if (code === import_internal.CHAR_FORWARD_SLASH) {
45
- return true;
46
- }
47
- if (code === import_internal.CHAR_BACKWARD_SLASH) {
48
- return true;
49
- }
50
- if (import_platform.WIN32 && length > 2) {
51
- if (/* @__PURE__ */ isWindowsDeviceRoot(code) && (0, import_string.StringPrototypeCharCodeAt)(filepath, 1) === import_internal.CHAR_COLON && /* @__PURE__ */ isPathSeparator((0, import_string.StringPrototypeCharCodeAt)(filepath, 2))) {
52
- return true;
53
- }
54
- }
55
- return false;
39
+ const filepath = /* @__PURE__ */ require_paths__internal.pathLikeToString(pathLike);
40
+ const { length } = filepath;
41
+ if (length === 0) return false;
42
+ const code = require_primordials_string.StringPrototypeCharCodeAt(filepath, 0);
43
+ if (code === 47) return true;
44
+ if (code === 92) return true;
45
+ /* c8 ignore start - Windows drive-letter detection. */
46
+ if (require_constants_platform.WIN32 && length > 2) {
47
+ if (/* @__PURE__ */ isWindowsDeviceRoot(code) && require_primordials_string.StringPrototypeCharCodeAt(filepath, 1) === 58 && /* @__PURE__ */ isPathSeparator(require_primordials_string.StringPrototypeCharCodeAt(filepath, 2))) return true;
48
+ }
49
+ /* c8 ignore stop */
50
+ return false;
56
51
  }
57
- // @__NO_SIDE_EFFECTS__
52
+ /**
53
+ * Check if a path contains a `node_modules` directory segment.
54
+ *
55
+ * Matches `node_modules` only as a complete path segment.
56
+ *
57
+ * @example
58
+ * ;```typescript
59
+ * isNodeModules('/project/node_modules/package') // true
60
+ * isNodeModules('/src/my_node_modules_backup') // false
61
+ * ```
62
+ *
63
+ * @param {string | Buffer | URL} pathLike - The path to check.
64
+ *
65
+ * @returns {boolean} `true` if the path contains `node_modules`
66
+ */
67
+ /* @__NO_SIDE_EFFECTS__ */
58
68
  function isNodeModules(pathLike) {
59
- const filepath = (0, import_internal.pathLikeToString)(pathLike);
60
- return (0, import_regexp.RegExpPrototypeTest)(import_internal.nodeModulesPathRegExp, filepath);
69
+ return require_primordials_regexp.RegExpPrototypeTest(require_paths__internal.nodeModulesPathRegExp, /* @__PURE__ */ require_paths__internal.pathLikeToString(pathLike));
61
70
  }
62
- // @__NO_SIDE_EFFECTS__
71
+ /**
72
+ * Check if a value is a valid file path (absolute or relative).
73
+ *
74
+ * Distinguishes between file paths and other string formats like package names,
75
+ * URLs, or bare module specifiers.
76
+ *
77
+ * @example
78
+ * ;```typescript
79
+ * isPath('/absolute/path') // true
80
+ * isPath('./relative/path') // true
81
+ * isPath('@scope/name/subpath') // true
82
+ * isPath('lodash') // false
83
+ * isPath('http://example.com') // false
84
+ * ```
85
+ *
86
+ * @param {string | Buffer | URL} pathLike - The value to check.
87
+ *
88
+ * @returns {boolean} `true` if the value is a valid file path
89
+ */
90
+ /* @__NO_SIDE_EFFECTS__ */
63
91
  function isPath(pathLike) {
64
- const filepath = (0, import_internal.pathLikeToString)(pathLike);
65
- if (typeof filepath !== "string" || filepath.length === 0) {
66
- return false;
67
- }
68
- if (/^[a-z][a-z0-9+.-]+:/i.test(filepath)) {
69
- return false;
70
- }
71
- if (filepath === "." || filepath === "..") {
72
- return true;
73
- }
74
- if (/* @__PURE__ */ isAbsolute(filepath)) {
75
- return true;
76
- }
77
- if (filepath.includes("/") || filepath.includes("\\")) {
78
- if ((0, import_string.StringPrototypeStartsWith)(filepath, "@") && !(0, import_string.StringPrototypeStartsWith)(filepath, "@/")) {
79
- const parts = filepath.split("/");
80
- if (parts.length <= 2 && !parts[1]?.includes("\\")) {
81
- return false;
82
- }
83
- }
84
- return true;
85
- }
86
- return false;
92
+ const filepath = /* @__PURE__ */ require_paths__internal.pathLikeToString(pathLike);
93
+ if (typeof filepath !== "string" || filepath.length === 0) return false;
94
+ if (/^[a-z][a-z0-9+.-]+:/i.test(filepath)) return false;
95
+ if (filepath === "." || filepath === "..") return true;
96
+ if (/* @__PURE__ */ isAbsolute(filepath)) return true;
97
+ if (filepath.includes("/") || filepath.includes("\\")) {
98
+ if (require_primordials_string.StringPrototypeStartsWith(filepath, "@") && !require_primordials_string.StringPrototypeStartsWith(filepath, "@/")) {
99
+ const parts = filepath.split("/");
100
+ if (parts.length <= 2 && !parts[1]?.includes("\\")) return false;
101
+ }
102
+ return true;
103
+ }
104
+ return false;
87
105
  }
88
- // @__NO_SIDE_EFFECTS__
106
+ /**
107
+ * Check if a character code is a path separator (`/` or `\`).
108
+ *
109
+ * @example
110
+ * ;```typescript
111
+ * isPathSeparator(47) // true — '/'
112
+ * isPathSeparator(92) // true — '\'
113
+ * isPathSeparator(65) // false — 'A'
114
+ * ```
115
+ *
116
+ * @param {number} code - The character code to check.
117
+ *
118
+ * @returns {boolean} `true` if separator
119
+ */
120
+ /* @__NO_SIDE_EFFECTS__ */
89
121
  function isPathSeparator(code) {
90
- return code === import_internal.CHAR_FORWARD_SLASH || code === import_internal.CHAR_BACKWARD_SLASH;
122
+ return code === 47 || code === 92;
91
123
  }
92
- // @__NO_SIDE_EFFECTS__
124
+ /**
125
+ * Check if a path is relative (i.e., not absolute).
126
+ *
127
+ * Empty strings are treated as relative.
128
+ *
129
+ * @example
130
+ * ;```typescript
131
+ * isRelative('./src/index.js') // true
132
+ * isRelative('src/file.js') // true
133
+ * isRelative('/home/user') // false
134
+ * ```
135
+ *
136
+ * @param {string | Buffer | URL} pathLike - The path to check.
137
+ *
138
+ * @returns {boolean} `true` if the path is relative
139
+ */
140
+ /* @__NO_SIDE_EFFECTS__ */
93
141
  function isRelative(pathLike) {
94
- const filepath = (0, import_internal.pathLikeToString)(pathLike);
95
- if (typeof filepath !== "string") {
96
- return false;
97
- }
98
- if (filepath.length === 0) {
99
- return true;
100
- }
101
- return !/* @__PURE__ */ isAbsolute(filepath);
142
+ const filepath = /* @__PURE__ */ require_paths__internal.pathLikeToString(pathLike);
143
+ /* c8 ignore start */
144
+ if (typeof filepath !== "string") return false;
145
+ /* c8 ignore stop */
146
+ if (filepath.length === 0) return true;
147
+ return !/* @__PURE__ */ isAbsolute(filepath);
102
148
  }
103
- // @__NO_SIDE_EFFECTS__
149
+ /**
150
+ * Check if a path uses MSYS/Git Bash Unix-style drive letter notation.
151
+ *
152
+ * Detects paths in the format `/c/...` where a single letter after the leading
153
+ * slash represents a Windows drive letter.
154
+ *
155
+ * @example
156
+ * ;```typescript
157
+ * isUnixPath('/c/tools/bin') // true
158
+ * isUnixPath('/tmp/build') // false
159
+ * isUnixPath('C:/Windows') // false
160
+ * ```
161
+ *
162
+ * @param {string | Buffer | URL} pathLike - The path to check.
163
+ *
164
+ * @returns {boolean} `true` if the path uses MSYS drive letter notation
165
+ */
166
+ /* @__NO_SIDE_EFFECTS__ */
104
167
  function isUnixPath(pathLike) {
105
- const filepath = (0, import_internal.pathLikeToString)(pathLike);
106
- return typeof filepath === "string" && (0, import_regexp.RegExpPrototypeTest)(import_internal.msysDriveRegExp, filepath);
168
+ const filepath = /* @__PURE__ */ require_paths__internal.pathLikeToString(pathLike);
169
+ return typeof filepath === "string" && require_primordials_regexp.RegExpPrototypeTest(require_paths__internal.msysDriveRegExp, filepath);
107
170
  }
108
- // @__NO_SIDE_EFFECTS__
171
+ /**
172
+ * Check if a character code is a Windows device root letter (A-Z / a-z).
173
+ *
174
+ * @example
175
+ * ;```typescript
176
+ * isWindowsDeviceRoot(67) // true — 'C'
177
+ * isWindowsDeviceRoot(99) // true — 'c'
178
+ * isWindowsDeviceRoot(58) // false — ':'
179
+ * ```
180
+ *
181
+ * @param {number} code - The character code to check.
182
+ *
183
+ * @returns {boolean} `true` if valid drive-letter code
184
+ */
185
+ /* c8 ignore start - Only called from Windows-only branches. */
186
+ /* @__NO_SIDE_EFFECTS__ */
109
187
  function isWindowsDeviceRoot(code) {
110
- return code >= import_internal.CHAR_UPPERCASE_A && code <= import_internal.CHAR_UPPERCASE_Z || code >= import_internal.CHAR_LOWERCASE_A && code <= import_internal.CHAR_LOWERCASE_Z;
188
+ return code >= 65 && code <= 90 || code >= 97 && code <= 122;
111
189
  }
112
- // Annotate the CommonJS export names for ESM import in node:
113
- 0 && (module.exports = {
114
- isAbsolute,
115
- isNodeModules,
116
- isPath,
117
- isPathSeparator,
118
- isRelative,
119
- isUnixPath,
120
- isWindowsDeviceRoot
121
- });
190
+ /* c8 ignore stop */
191
+
192
+ //#endregion
193
+ exports.isAbsolute = isAbsolute;
194
+ exports.isNodeModules = isNodeModules;
195
+ exports.isPath = isPath;
196
+ exports.isPathSeparator = isPathSeparator;
197
+ exports.isRelative = isRelative;
198
+ exports.isUnixPath = isUnixPath;
199
+ exports.isWindowsDeviceRoot = isWindowsDeviceRoot;
@@ -1,135 +1,153 @@
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 resolve_exports = {};
22
- __export(resolve_exports, {
23
- relative: () => relative,
24
- relativeResolve: () => relativeResolve,
25
- resolve: () => resolve
26
- });
27
- module.exports = __toCommonJS(resolve_exports);
28
- var import_platform = require("../constants/platform");
29
- var import_string = require("../primordials/string");
30
- var import_internal = require("./_internal");
31
- var import_normalize = require("./normalize");
32
- var import_predicates = require("./predicates");
33
- // @__NO_SIDE_EFFECTS__
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_constants_platform = require('../constants/platform.js');
6
+ const require_paths__internal = require('./_internal.js');
7
+ const require_paths_predicates = require('./predicates.js');
8
+ const require_paths_normalize = require('./normalize.js');
9
+
10
+ //#region src/paths/resolve.ts
11
+ /**
12
+ * @file Path resolution utilities `resolve`, `relative`, `relativeResolve`.
13
+ * Split out of `paths/normalize.ts` for size hygiene.
14
+ *
15
+ * - `resolve` — Node-style `path.resolve()` over absolute-path semantics
16
+ * - `relative` relative path from one absolute to another
17
+ * - `relativeResolve` — `relative` + `normalizePath` convenience wrapper
18
+ */
19
+ /**
20
+ * Calculate the relative path from one path to another.
21
+ *
22
+ * Both inputs are resolved to absolute paths first, then compared to find the
23
+ * longest common base, and finally a relative path is constructed using `../`
24
+ * for parent-directory traversal.
25
+ *
26
+ * Windows file systems are case-insensitive; the comparison reflects that.
27
+ *
28
+ * @example
29
+ * ;```typescript
30
+ * relative('/foo/bar', '/foo/baz') // '../baz'
31
+ * relative('/foo/bar/baz', '/foo') // '../..'
32
+ * relative('/foo', '/foo/bar') // 'bar'
33
+ * relative('/foo/bar', '/foo/bar') // ''
34
+ * ```
35
+ *
36
+ * @param {string} from - Source path.
37
+ * @param {string} to - Destination path.
38
+ *
39
+ * @returns {string} Relative path from `from` to `to`, or empty string if equal
40
+ */
41
+ /* @__NO_SIDE_EFFECTS__ */
34
42
  function relative(from, to) {
35
- if (from === to) {
36
- return "";
37
- }
38
- const actualFrom = /* @__PURE__ */ resolve(from);
39
- const actualTo = /* @__PURE__ */ resolve(to);
40
- if (actualFrom === actualTo) {
41
- return "";
42
- }
43
- if (import_platform.WIN32) {
44
- const fromLower = actualFrom.toLowerCase();
45
- const toLower = actualTo.toLowerCase();
46
- if (fromLower === toLower) {
47
- return "";
48
- }
49
- }
50
- const fromStart = 1;
51
- const fromEnd = actualFrom.length;
52
- const fromLen = fromEnd - fromStart;
53
- const toStart = 1;
54
- const toEnd = actualTo.length;
55
- const toLen = toEnd - toStart;
56
- const length = fromLen < toLen ? fromLen : toLen;
57
- let lastCommonSep = -1;
58
- let i = 0;
59
- for (; i < length; i += 1) {
60
- let fromCode = (0, import_string.StringPrototypeCharCodeAt)(actualFrom, fromStart + i);
61
- let toCode = (0, import_string.StringPrototypeCharCodeAt)(actualTo, toStart + i);
62
- if (import_platform.WIN32) {
63
- if (fromCode >= import_internal.CHAR_UPPERCASE_A && fromCode <= import_internal.CHAR_UPPERCASE_Z) {
64
- fromCode += 32;
65
- }
66
- if (toCode >= import_internal.CHAR_UPPERCASE_A && toCode <= import_internal.CHAR_UPPERCASE_Z) {
67
- toCode += 32;
68
- }
69
- }
70
- if (fromCode !== toCode) {
71
- break;
72
- }
73
- if ((0, import_predicates.isPathSeparator)((0, import_string.StringPrototypeCharCodeAt)(actualFrom, fromStart + i))) {
74
- lastCommonSep = i;
75
- }
76
- }
77
- if (i === length) {
78
- if (toLen > length) {
79
- const toCode = (0, import_string.StringPrototypeCharCodeAt)(actualTo, toStart + i);
80
- if ((0, import_predicates.isPathSeparator)(toCode)) {
81
- return actualTo.slice(toStart + i + 1);
82
- }
83
- if (i === 0) {
84
- return actualTo.slice(toStart + i);
85
- }
86
- } else if (fromLen > length) {
87
- const fromCode = (0, import_string.StringPrototypeCharCodeAt)(actualFrom, fromStart + i);
88
- if ((0, import_predicates.isPathSeparator)(fromCode)) {
89
- lastCommonSep = i;
90
- } else if (i === 0) {
91
- lastCommonSep = 0;
92
- }
93
- }
94
- }
95
- let out = "";
96
- for (i = fromStart + lastCommonSep + 1; i <= fromEnd; i += 1) {
97
- const code = (0, import_string.StringPrototypeCharCodeAt)(actualFrom, i);
98
- if (i === fromEnd || (0, import_predicates.isPathSeparator)(code)) {
99
- out += out.length === 0 ? ".." : "/..";
100
- }
101
- }
102
- return out + actualTo.slice(toStart + lastCommonSep);
43
+ if (from === to) return "";
44
+ const actualFrom = /* @__PURE__ */ resolve(from);
45
+ const actualTo = /* @__PURE__ */ resolve(to);
46
+ if (actualFrom === actualTo) return "";
47
+ /* c8 ignore start - Windows-only case-insensitive comparison. */
48
+ if (require_constants_platform.WIN32) {
49
+ if (actualFrom.toLowerCase() === actualTo.toLowerCase()) return "";
50
+ }
51
+ /* c8 ignore stop */
52
+ const fromStart = 1;
53
+ const fromEnd = actualFrom.length;
54
+ const fromLen = fromEnd - fromStart;
55
+ const toStart = 1;
56
+ const toLen = actualTo.length - toStart;
57
+ const length = fromLen < toLen ? fromLen : toLen;
58
+ let lastCommonSep = -1;
59
+ let i = 0;
60
+ for (; i < length; i += 1) {
61
+ let fromCode = require_primordials_string.StringPrototypeCharCodeAt(actualFrom, fromStart + i);
62
+ let toCode = require_primordials_string.StringPrototypeCharCodeAt(actualTo, toStart + i);
63
+ /* c8 ignore start - Windows-only case folding. */
64
+ if (require_constants_platform.WIN32) {
65
+ if (fromCode >= 65 && fromCode <= 90) fromCode += 32;
66
+ if (toCode >= 65 && toCode <= 90) toCode += 32;
67
+ }
68
+ /* c8 ignore stop */
69
+ if (fromCode !== toCode) break;
70
+ if (/* @__PURE__ */ require_paths_predicates.isPathSeparator(require_primordials_string.StringPrototypeCharCodeAt(actualFrom, fromStart + i))) lastCommonSep = i;
71
+ }
72
+ /* c8 ignore start */
73
+ if (i === length) {
74
+ if (toLen > length) {
75
+ if (/* @__PURE__ */ require_paths_predicates.isPathSeparator(require_primordials_string.StringPrototypeCharCodeAt(actualTo, toStart + i))) return actualTo.slice(toStart + i + 1);
76
+ if (i === 0) return actualTo.slice(toStart + i);
77
+ } else if (fromLen > length) {
78
+ if (/* @__PURE__ */ require_paths_predicates.isPathSeparator(require_primordials_string.StringPrototypeCharCodeAt(actualFrom, fromStart + i))) lastCommonSep = i;
79
+ else if (i === 0) lastCommonSep = 0;
80
+ }
81
+ }
82
+ /* c8 ignore stop */
83
+ let out = "";
84
+ for (i = fromStart + lastCommonSep + 1; i <= fromEnd; i += 1) {
85
+ const code = require_primordials_string.StringPrototypeCharCodeAt(actualFrom, i);
86
+ if (i === fromEnd || /* @__PURE__ */ require_paths_predicates.isPathSeparator(code)) out += out.length === 0 ? ".." : "/..";
87
+ }
88
+ return out + actualTo.slice(toStart + lastCommonSep);
103
89
  }
104
- // @__NO_SIDE_EFFECTS__
90
+ /**
91
+ * Get the normalized relative path from one path to another.
92
+ *
93
+ * Computes the relative path using `relative()` then runs the result through
94
+ * `normalizePath()`. Empty strings (same path) are preserved verbatim rather
95
+ * than collapsed to `.`.
96
+ *
97
+ * @example
98
+ * ;```typescript
99
+ * relativeResolve('/foo/bar', '/foo/baz') // '../baz'
100
+ * relativeResolve('/foo/bar', '/foo/bar') // ''
101
+ * relativeResolve('/foo/./bar', '/foo/baz') // '../baz'
102
+ * ```
103
+ *
104
+ * @param {string} from - Source path.
105
+ * @param {string} to - Destination path.
106
+ *
107
+ * @returns {string} Normalized relative path, or empty string if equal
108
+ */
109
+ /* @__NO_SIDE_EFFECTS__ */
105
110
  function relativeResolve(from, to) {
106
- const rel = /* @__PURE__ */ relative(from, to);
107
- if (rel === "") {
108
- return "";
109
- }
110
- return (0, import_normalize.normalizePath)(rel);
111
+ const rel = /* @__PURE__ */ relative(from, to);
112
+ if (rel === "") return "";
113
+ return /* @__PURE__ */ require_paths_normalize.normalizePath(rel);
111
114
  }
112
- // @__NO_SIDE_EFFECTS__
115
+ /**
116
+ * Resolve an absolute path from path segments.
117
+ *
118
+ * Mimics Node.js `path.resolve()`: processes segments right-to-left, stops at
119
+ * the first absolute segment, and prepends the cwd if no absolute segment is
120
+ * found. The final path is normalized.
121
+ *
122
+ * @example
123
+ * ;```typescript
124
+ * resolve('foo', 'bar', 'baz') // '/cwd/foo/bar/baz'
125
+ * resolve('/foo', 'bar', 'baz') // '/foo/bar/baz'
126
+ * resolve('foo', '/bar', 'baz') // '/bar/baz'
127
+ * resolve() // '/cwd'
128
+ * ```
129
+ *
130
+ * @param {...string} segments - Path segments to resolve.
131
+ *
132
+ * @returns {string} The resolved absolute path
133
+ */
134
+ /* @__NO_SIDE_EFFECTS__ */
113
135
  function resolve(...segments) {
114
- let resolvedPath = "";
115
- let resolvedAbsolute = false;
116
- for (let i = segments.length - 1; i >= 0 && !resolvedAbsolute; i -= 1) {
117
- const segment = segments[i];
118
- if (typeof segment !== "string" || segment.length === 0) {
119
- continue;
120
- }
121
- resolvedPath = segment + (resolvedPath.length === 0 ? "" : `/${resolvedPath}`);
122
- resolvedAbsolute = (0, import_predicates.isAbsolute)(segment);
123
- }
124
- if (!resolvedAbsolute) {
125
- const cwd = /* @__PURE__ */ require("node:process").cwd();
126
- resolvedPath = cwd + (resolvedPath.length === 0 ? "" : `/${resolvedPath}`);
127
- }
128
- return (0, import_normalize.normalizePath)(resolvedPath);
136
+ let resolvedPath = "";
137
+ let resolvedAbsolute = false;
138
+ for (let i = segments.length - 1; i >= 0 && !resolvedAbsolute; i -= 1) {
139
+ const segment = segments[i];
140
+ /* c8 ignore start */
141
+ if (typeof segment !== "string" || segment.length === 0) continue;
142
+ resolvedPath = segment + (resolvedPath.length === 0 ? "" : `/${resolvedPath}`);
143
+ resolvedAbsolute = /* @__PURE__ */ require_paths_predicates.isAbsolute(segment);
144
+ }
145
+ if (!resolvedAbsolute) resolvedPath = /* @__PURE__ */ require("node:process").cwd() + (resolvedPath.length === 0 ? "" : `/${resolvedPath}`);
146
+ /* c8 ignore stop */
147
+ return /* @__PURE__ */ require_paths_normalize.normalizePath(resolvedPath);
129
148
  }
130
- // Annotate the CommonJS export names for ESM import in node:
131
- 0 && (module.exports = {
132
- relative,
133
- relativeResolve,
134
- resolve
135
- });
149
+
150
+ //#endregion
151
+ exports.relative = relative;
152
+ exports.relativeResolve = relativeResolve;
153
+ exports.resolve = resolve;