@socketsecurity/lib 6.0.2 → 6.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/_virtual/_rolldown/runtime.js +45 -0
  3. package/dist/abort/signal.js +53 -59
  4. package/dist/ai/discover.js +110 -110
  5. package/dist/ai/profiles.d.mts +48 -25
  6. package/dist/ai/profiles.js +95 -59
  7. package/dist/ai/spawn.d.mts +2 -2
  8. package/dist/ai/spawn.js +172 -194
  9. package/dist/ai/types.d.mts +3 -3
  10. package/dist/ai/types.js +1 -17
  11. package/dist/ai/worktree.d.mts +2 -2
  12. package/dist/ai/worktree.js +160 -183
  13. package/dist/ansi/constants.js +16 -38
  14. package/dist/ansi/strip.js +44 -41
  15. package/dist/archives/_internal.js +64 -73
  16. package/dist/archives/detect.js +30 -43
  17. package/dist/archives/extract.js +43 -50
  18. package/dist/archives/tar.js +197 -228
  19. package/dist/archives/types.js +1 -17
  20. package/dist/archives/zip.js +85 -121
  21. package/dist/argv/flag-predicates.js +203 -101
  22. package/dist/argv/flag-types.js +96 -113
  23. package/dist/argv/parse-args-string.d.ts +16 -14
  24. package/dist/argv/parse-args-string.js +42 -39
  25. package/dist/argv/parse.js +145 -163
  26. package/dist/arrays/_internal.js +65 -48
  27. package/dist/arrays/chunk.js +51 -40
  28. package/dist/arrays/join.js +87 -35
  29. package/dist/arrays/predicates.js +46 -28
  30. package/dist/arrays/unique.js +45 -31
  31. package/dist/bin/_internal.js +34 -42
  32. package/dist/bin/check-primordials.js +175 -233
  33. package/dist/bin/check.js +51 -72
  34. package/dist/bin/exec.js +70 -74
  35. package/dist/bin/find.js +151 -134
  36. package/dist/bin/resolve.js +180 -246
  37. package/dist/bin/shadow.js +24 -33
  38. package/dist/bin/socket-lib.js +51 -73
  39. package/dist/bin/types.js +1 -17
  40. package/dist/bin/which.js +211 -146
  41. package/dist/cacache/_internal.js +25 -40
  42. package/dist/cacache/clear.js +79 -72
  43. package/dist/cacache/read.js +48 -46
  44. package/dist/cacache/tmp.js +29 -36
  45. package/dist/cacache/types.js +1 -17
  46. package/dist/cacache/write.js +43 -48
  47. package/dist/cache/ttl/store.js +232 -288
  48. package/dist/cache/ttl/types.js +1 -17
  49. package/dist/checks/primordials-defaults.js +83 -89
  50. package/dist/checks/primordials.js +225 -277
  51. package/dist/colors/convert.js +45 -37
  52. package/dist/colors/palette.js +88 -45
  53. package/dist/colors/socket-palette.js +74 -84
  54. package/dist/colors/types.js +1 -17
  55. package/dist/compression/_internal.js +57 -72
  56. package/dist/compression/brotli.js +94 -127
  57. package/dist/compression/gzip.js +95 -121
  58. package/dist/compression/types.js +1 -17
  59. package/dist/constants/agents.js +61 -113
  60. package/dist/constants/encoding.js +19 -42
  61. package/dist/constants/github.js +12 -30
  62. package/dist/constants/licenses.js +48 -63
  63. package/dist/constants/lifecycle-script-names.js +31 -45
  64. package/dist/constants/maintained-node-versions.js +22 -37
  65. package/dist/constants/node.js +226 -167
  66. package/dist/constants/package-default-node-range.js +16 -41
  67. package/dist/constants/package-default-socket-categories.js +12 -30
  68. package/dist/constants/packages.js +77 -126
  69. package/dist/constants/platform.js +27 -49
  70. package/dist/constants/sentinels.js +23 -48
  71. package/dist/constants/socket.js +42 -87
  72. package/dist/constants/testing.js +15 -34
  73. package/dist/constants/time.js +16 -36
  74. package/dist/constants/typescript.js +32 -52
  75. package/dist/cover/code.js +111 -142
  76. package/dist/cover/formatters.js +118 -101
  77. package/dist/cover/type.js +50 -76
  78. package/dist/cover/types.js +1 -17
  79. package/dist/crypto/hash.js +54 -46
  80. package/dist/debug/_internal.js +62 -71
  81. package/dist/debug/caller-info.js +53 -64
  82. package/dist/debug/namespace.js +80 -90
  83. package/dist/debug/output.js +172 -188
  84. package/dist/debug/types.js +1 -17
  85. package/dist/dlx/_internal.js +24 -43
  86. package/dist/dlx/arborist.js +162 -160
  87. package/dist/dlx/binary-cache.js +228 -200
  88. package/dist/dlx/binary-download.js +172 -211
  89. package/dist/dlx/binary-resolution.js +165 -157
  90. package/dist/dlx/binary-types.js +1 -17
  91. package/dist/dlx/binary.js +149 -189
  92. package/dist/dlx/cache.js +45 -30
  93. package/dist/dlx/detect.js +245 -167
  94. package/dist/dlx/dir.js +67 -51
  95. package/dist/dlx/firewall.js +62 -100
  96. package/dist/dlx/lockfile.js +122 -127
  97. package/dist/dlx/manifest.js +264 -274
  98. package/dist/dlx/package.js +241 -244
  99. package/dist/dlx/packages.js +99 -96
  100. package/dist/dlx/paths.js +73 -59
  101. package/dist/dlx/spec.js +52 -60
  102. package/dist/dlx/types.js +1 -17
  103. package/dist/eco/cargo/lockfile-format.js +19 -36
  104. package/dist/eco/cargo/manifest-format.js +17 -35
  105. package/dist/eco/cargo/parse-lockfile.js +210 -237
  106. package/dist/eco/manifest/analyze-lockfile.js +46 -63
  107. package/dist/eco/manifest/detect-format.js +66 -90
  108. package/dist/eco/manifest/find-packages.js +39 -64
  109. package/dist/eco/manifest/get-package-versions.js +27 -48
  110. package/dist/eco/manifest/get-package.js +21 -40
  111. package/dist/eco/manifest/manifest-error.js +14 -35
  112. package/dist/eco/manifest/parse-lockfile.js +40 -86
  113. package/dist/eco/manifest/parse-manifest.js +26 -43
  114. package/dist/eco/manifest/parse.js +26 -47
  115. package/dist/eco/manifest/types.js +1 -17
  116. package/dist/eco/npm/bun/exec.js +23 -32
  117. package/dist/eco/npm/manifest-format.js +21 -35
  118. package/dist/eco/npm/npm/exec.js +51 -61
  119. package/dist/eco/npm/npm/extract-package-name-from-path.js +28 -50
  120. package/dist/eco/npm/npm/flags.js +80 -52
  121. package/dist/eco/npm/npm/lockfile-format.js +21 -40
  122. package/dist/eco/npm/npm/parse-git-url.js +26 -40
  123. package/dist/eco/npm/npm/parse-lockfile.js +184 -210
  124. package/dist/eco/npm/parse-package-json.js +71 -102
  125. package/dist/eco/npm/pnpm/detect-pnpm-version.js +22 -43
  126. package/dist/eco/npm/pnpm/exec.js +51 -62
  127. package/dist/eco/npm/pnpm/flags.js +75 -68
  128. package/dist/eco/npm/pnpm/lockfile-format.js +19 -36
  129. package/dist/eco/npm/pnpm/parse-lockfile.js +235 -259
  130. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +37 -47
  131. package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +36 -49
  132. package/dist/eco/npm/script.js +82 -90
  133. package/dist/eco/npm/vlt/exec.js +24 -32
  134. package/dist/eco/npm/yarnpkg/yarn/exec.js +60 -59
  135. package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +20 -36
  136. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +194 -242
  137. package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +37 -61
  138. package/dist/eco/purl.js +50 -60
  139. package/dist/eco/types.js +1 -17
  140. package/dist/effects/pulse-frames.js +64 -65
  141. package/dist/effects/shimmer-keyframes.js +71 -52
  142. package/dist/effects/shimmer-terminal.js +81 -50
  143. package/dist/effects/shimmer.js +290 -153
  144. package/dist/env/boolean.js +42 -43
  145. package/dist/env/case-insensitive.js +54 -39
  146. package/dist/env/ci.js +29 -31
  147. package/dist/env/debug.js +28 -31
  148. package/dist/env/github.js +144 -59
  149. package/dist/env/home.js +38 -31
  150. package/dist/env/locale.js +59 -39
  151. package/dist/env/node-auth-token.js +28 -31
  152. package/dist/env/node-env.js +28 -31
  153. package/dist/env/npm.js +94 -47
  154. package/dist/env/number.js +50 -51
  155. package/dist/env/package-manager.js +95 -83
  156. package/dist/env/path.js +28 -31
  157. package/dist/env/pre-commit.js +30 -32
  158. package/dist/env/proxy.js +121 -122
  159. package/dist/env/rewire.js +204 -96
  160. package/dist/env/shell.js +28 -31
  161. package/dist/env/socket-cli.js +233 -81
  162. package/dist/env/socket.js +521 -156
  163. package/dist/env/string.js +43 -44
  164. package/dist/env/temp-dir.js +59 -39
  165. package/dist/env/term.js +28 -31
  166. package/dist/env/test.js +65 -43
  167. package/dist/env/types.js +1 -17
  168. package/dist/env/windows.js +78 -43
  169. package/dist/env/xdg.js +62 -39
  170. package/dist/errors/message.js +40 -46
  171. package/dist/errors/predicates.js +61 -49
  172. package/dist/errors/stack.js +24 -36
  173. package/dist/events/exit/_internal.js +86 -103
  174. package/dist/events/exit/handler.js +48 -55
  175. package/dist/events/exit/intercept.js +49 -70
  176. package/dist/events/exit/lifecycle.js +92 -101
  177. package/dist/events/exit/signals.js +25 -31
  178. package/dist/events/exit/types.js +1 -17
  179. package/dist/events/warning/handler.js +43 -40
  180. package/dist/events/warning/suppress.js +111 -90
  181. package/dist/external/@npmcli/package-json/lib/read-package.js +132 -153
  182. package/dist/external/@npmcli/package-json/lib/sort.js +73 -105
  183. package/dist/external/@npmcli/package-json.js +12705 -15140
  184. package/dist/external/@npmcli/promise-spawn.js +451 -472
  185. package/dist/external/@sinclair/typebox/value.js +7443 -9002
  186. package/dist/external/@sinclair/typebox.js +7516 -7885
  187. package/dist/external/@socketregistry/is-unicode-supported.js +31 -39
  188. package/dist/external/@socketregistry/packageurl-js.js +6127 -7369
  189. package/dist/external/@socketregistry/yocto-spinner.js +394 -455
  190. package/dist/external/@yarnpkg/extensions.js +435 -1022
  191. package/dist/external/adm-zip.js +2313 -2673
  192. package/dist/external/debug.js +700 -687
  193. package/dist/external/external-pack.js +2658 -3171
  194. package/dist/external/fast-sort.js +124 -138
  195. package/dist/external/get-east-asian-width.js +70 -64
  196. package/dist/external/libnpmexec.js +28 -31
  197. package/dist/external/npm-pack.js +43617 -50137
  198. package/dist/external/p-map.js +198 -222
  199. package/dist/external/pico-pack.js +6735 -7304
  200. package/dist/external/pony-cause.js +143 -139
  201. package/dist/external/shell-quote.js +226 -0
  202. package/dist/external/spdx-pack.js +1283 -1403
  203. package/dist/external/streaming-iterables.js +835 -1052
  204. package/dist/external/tar-fs.js +2769 -3048
  205. package/dist/external/which.js +267 -251
  206. package/dist/external/yargs-parser.js +851 -1074
  207. package/dist/external-tools/bazel/asset-names.js +98 -90
  208. package/dist/external-tools/bazel/from-download.js +52 -46
  209. package/dist/external-tools/bazel/from-path.js +27 -38
  210. package/dist/external-tools/bazel/read-bazel-version-file.js +35 -57
  211. package/dist/external-tools/bazel/resolve-asset-url.js +24 -39
  212. package/dist/external-tools/bazel/resolve-bazel-version.js +34 -56
  213. package/dist/external-tools/bazel/resolve.js +44 -58
  214. package/dist/external-tools/bazel/types.js +1 -17
  215. package/dist/external-tools/cdxgen/asset-names.js +59 -66
  216. package/dist/external-tools/cdxgen/from-download.js +52 -80
  217. package/dist/external-tools/cdxgen/from-path.js +19 -37
  218. package/dist/external-tools/cdxgen/from-vfs.js +22 -43
  219. package/dist/external-tools/cdxgen/resolve.js +48 -63
  220. package/dist/external-tools/cdxgen/types.js +1 -17
  221. package/dist/external-tools/from-download.js +107 -67
  222. package/dist/external-tools/janus/asset-names.js +44 -51
  223. package/dist/external-tools/janus/from-download.js +45 -70
  224. package/dist/external-tools/janus/from-path.js +19 -37
  225. package/dist/external-tools/janus/from-vfs.js +22 -43
  226. package/dist/external-tools/janus/resolve.js +45 -63
  227. package/dist/external-tools/janus/types.js +1 -17
  228. package/dist/external-tools/jre/asset-names.js +109 -82
  229. package/dist/external-tools/jre/detect-platform-arch.js +25 -49
  230. package/dist/external-tools/jre/from-download.js +71 -67
  231. package/dist/external-tools/jre/from-java-home.js +27 -54
  232. package/dist/external-tools/jre/from-path.js +27 -49
  233. package/dist/external-tools/jre/from-vfs.js +39 -60
  234. package/dist/external-tools/jre/resolve.js +55 -68
  235. package/dist/external-tools/jre/types.js +1 -17
  236. package/dist/external-tools/manifest.js +130 -150
  237. package/dist/external-tools/opengrep/asset-names.js +60 -72
  238. package/dist/external-tools/opengrep/from-download.js +58 -80
  239. package/dist/external-tools/opengrep/from-path.js +19 -37
  240. package/dist/external-tools/opengrep/from-vfs.js +23 -43
  241. package/dist/external-tools/opengrep/resolve.js +43 -63
  242. package/dist/external-tools/opengrep/types.js +1 -17
  243. package/dist/external-tools/sbt/asset-names.js +21 -30
  244. package/dist/external-tools/sbt/from-download.js +50 -61
  245. package/dist/external-tools/sbt/from-path.js +23 -38
  246. package/dist/external-tools/sbt/from-vfs.js +30 -44
  247. package/dist/external-tools/sbt/resolve.js +45 -63
  248. package/dist/external-tools/sbt/types.js +1 -17
  249. package/dist/external-tools/synp/asset-names.js +11 -29
  250. package/dist/external-tools/synp/from-download.js +24 -41
  251. package/dist/external-tools/synp/from-path.js +19 -37
  252. package/dist/external-tools/synp/from-vfs.js +22 -43
  253. package/dist/external-tools/synp/resolve.js +43 -62
  254. package/dist/external-tools/synp/types.js +1 -17
  255. package/dist/external-tools/trivy/asset-names.js +51 -62
  256. package/dist/external-tools/trivy/from-download.js +42 -64
  257. package/dist/external-tools/trivy/from-path.js +19 -37
  258. package/dist/external-tools/trivy/from-vfs.js +22 -43
  259. package/dist/external-tools/trivy/resolve.js +43 -63
  260. package/dist/external-tools/trivy/types.js +1 -17
  261. package/dist/external-tools/trufflehog/asset-names.js +54 -66
  262. package/dist/external-tools/trufflehog/from-download.js +44 -62
  263. package/dist/external-tools/trufflehog/from-path.js +21 -37
  264. package/dist/external-tools/trufflehog/from-vfs.js +26 -43
  265. package/dist/external-tools/trufflehog/resolve.js +43 -63
  266. package/dist/external-tools/trufflehog/types.js +1 -17
  267. package/dist/external-tools/uv/asset-names.js +64 -74
  268. package/dist/external-tools/uv/from-download.js +44 -65
  269. package/dist/external-tools/uv/from-path.js +19 -37
  270. package/dist/external-tools/uv/from-vfs.js +22 -43
  271. package/dist/external-tools/uv/resolve.js +42 -63
  272. package/dist/external-tools/uv/types.js +1 -17
  273. package/dist/fs/_internal.js +40 -42
  274. package/dist/fs/access.d.ts +32 -0
  275. package/dist/fs/access.js +66 -0
  276. package/dist/fs/encoding.js +80 -97
  277. package/dist/fs/find-up.js +126 -147
  278. package/dist/fs/inspect.js +168 -99
  279. package/dist/fs/path-cache.js +31 -32
  280. package/dist/fs/read-dir.js +102 -79
  281. package/dist/fs/read-file.js +177 -118
  282. package/dist/fs/read-json-cache.js +150 -134
  283. package/dist/fs/read-json.js +172 -187
  284. package/dist/fs/resolve-module.d.ts +57 -0
  285. package/dist/fs/resolve-module.js +40 -0
  286. package/dist/fs/safe.js +278 -169
  287. package/dist/fs/types.js +1 -17
  288. package/dist/fs/unique.js +52 -48
  289. package/dist/fs/validate.js +56 -43
  290. package/dist/fs/write-json.js +109 -75
  291. package/dist/git/_internal.js +251 -216
  292. package/dist/git/changed.js +191 -74
  293. package/dist/git/repo.js +118 -104
  294. package/dist/git/staged.js +172 -62
  295. package/dist/git/types.js +1 -17
  296. package/dist/git/unstaged.js +175 -62
  297. package/dist/github/constants.js +25 -33
  298. package/dist/github/errors.js +46 -38
  299. package/dist/github/fetch.js +137 -82
  300. package/dist/github/ghsa.js +217 -151
  301. package/dist/github/refs-cache.js +54 -43
  302. package/dist/github/refs-graphql.js +97 -89
  303. package/dist/github/refs-rest.js +70 -101
  304. package/dist/github/refs.js +105 -64
  305. package/dist/github/token.js +96 -48
  306. package/dist/github/types.js +1 -17
  307. package/dist/globs/_internal.js +73 -82
  308. package/dist/globs/defaults.js +40 -59
  309. package/dist/globs/match.js +93 -77
  310. package/dist/globs/matcher.js +104 -92
  311. package/dist/globs/stream.js +43 -55
  312. package/dist/globs/types.js +1 -17
  313. package/dist/http-request/_internal.js +11 -38
  314. package/dist/http-request/browser-fetch.js +19 -29
  315. package/dist/http-request/browser.js +188 -206
  316. package/dist/http-request/checksums.js +101 -65
  317. package/dist/http-request/download-types.js +1 -17
  318. package/dist/http-request/download.js +195 -196
  319. package/dist/http-request/errors.js +39 -47
  320. package/dist/http-request/headers.js +95 -80
  321. package/dist/http-request/http-request.js +10 -35
  322. package/dist/http-request/node.js +71 -97
  323. package/dist/http-request/request-attempt.js +232 -285
  324. package/dist/http-request/request-types.js +1 -17
  325. package/dist/http-request/request.js +106 -108
  326. package/dist/http-request/response-reader.js +47 -51
  327. package/dist/http-request/response-types.js +22 -38
  328. package/dist/http-request/user-agent.js +73 -55
  329. package/dist/integrity.js +105 -106
  330. package/dist/ipc/_internal.js +34 -48
  331. package/dist/ipc/directory.js +55 -63
  332. package/dist/ipc/paths.js +52 -45
  333. package/dist/ipc/types.js +1 -17
  334. package/dist/ipc/write.js +81 -74
  335. package/dist/ipc-cli/get.js +29 -56
  336. package/dist/ipc-cli/types.js +1 -17
  337. package/dist/json/edit.js +182 -242
  338. package/dist/json/format.js +202 -103
  339. package/dist/json/parse.js +206 -109
  340. package/dist/json/types.js +1 -17
  341. package/dist/links/create.js +93 -60
  342. package/dist/links/types.js +1 -17
  343. package/dist/logger/_internal.js +109 -73
  344. package/dist/logger/browser.js +45 -56
  345. package/dist/logger/colors.js +31 -49
  346. package/dist/logger/console.js +89 -112
  347. package/dist/logger/default.js +19 -33
  348. package/dist/logger/logger.js +5 -29
  349. package/dist/logger/node.js +794 -854
  350. package/dist/logger/symbols-builder.js +54 -56
  351. package/dist/logger/symbols.js +135 -118
  352. package/dist/logger/types.js +1 -17
  353. package/dist/memo/_internal.js +39 -49
  354. package/dist/memo/async.js +133 -117
  355. package/dist/memo/clear.js +25 -34
  356. package/dist/memo/decorator.js +43 -37
  357. package/dist/memo/memoize.js +97 -88
  358. package/dist/memo/once.js +42 -41
  359. package/dist/memo/types.js +1 -17
  360. package/dist/memo/weak.js +45 -41
  361. package/dist/node/async-hooks.js +9 -30
  362. package/dist/node/child-process.js +9 -30
  363. package/dist/node/crypto.js +9 -30
  364. package/dist/node/events.js +9 -30
  365. package/dist/node/fs-promises.js +9 -30
  366. package/dist/node/fs.js +9 -30
  367. package/dist/node/http.js +9 -30
  368. package/dist/node/https.js +9 -30
  369. package/dist/node/module.js +20 -34
  370. package/dist/node/os.js +9 -30
  371. package/dist/node/path.js +9 -30
  372. package/dist/node/timers-promises.js +9 -30
  373. package/dist/node/url.js +9 -30
  374. package/dist/node/util.js +9 -30
  375. package/dist/objects/getters.js +185 -126
  376. package/dist/objects/inspect.js +85 -52
  377. package/dist/objects/mutate.js +96 -76
  378. package/dist/objects/predicates.js +112 -59
  379. package/dist/objects/sort.js +120 -76
  380. package/dist/objects/types.js +1 -17
  381. package/dist/packages/edit-class.js +198 -265
  382. package/dist/packages/edit.js +79 -86
  383. package/dist/packages/exports.js +146 -157
  384. package/dist/packages/isolation.js +159 -209
  385. package/dist/packages/licenses.js +207 -189
  386. package/dist/packages/manifest.js +134 -172
  387. package/dist/packages/normalize.js +91 -102
  388. package/dist/packages/operations.d.ts +2 -0
  389. package/dist/packages/operations.js +283 -254
  390. package/dist/packages/provenance.js +195 -245
  391. package/dist/packages/specs.js +94 -84
  392. package/dist/packages/types.js +1 -17
  393. package/dist/packages/validation.js +49 -50
  394. package/dist/paths/_internal.js +82 -86
  395. package/dist/paths/conversion.js +112 -65
  396. package/dist/paths/dirnames.js +17 -42
  397. package/dist/paths/exts.js +23 -54
  398. package/dist/paths/filenames.js +21 -50
  399. package/dist/paths/globs.js +15 -38
  400. package/dist/paths/normalize.js +215 -236
  401. package/dist/paths/packages.js +34 -49
  402. package/dist/paths/predicates.js +184 -106
  403. package/dist/paths/resolve.js +146 -128
  404. package/dist/paths/rewire.js +108 -72
  405. package/dist/paths/socket.js +252 -132
  406. package/dist/paths/walk.d.ts +40 -0
  407. package/dist/paths/walk.js +58 -0
  408. package/dist/perf/_internal.js +10 -28
  409. package/dist/perf/enabled.js +21 -30
  410. package/dist/perf/metrics.js +81 -67
  411. package/dist/perf/report.js +79 -80
  412. package/dist/perf/timer.js +180 -126
  413. package/dist/perf/types.js +1 -17
  414. package/dist/pkg-ext/data.js +29 -82
  415. package/dist/pkg-ext/types.js +1 -17
  416. package/dist/primordials/array.js +120 -198
  417. package/dist/primordials/buffer.js +28 -51
  418. package/dist/primordials/date.js +26 -51
  419. package/dist/primordials/error.js +33 -59
  420. package/dist/primordials/function.js +21 -41
  421. package/dist/primordials/globals.js +25 -48
  422. package/dist/primordials/json.js +14 -30
  423. package/dist/primordials/map-set.js +88 -152
  424. package/dist/primordials/math.js +59 -116
  425. package/dist/primordials/number.js +41 -76
  426. package/dist/primordials/object.js +56 -116
  427. package/dist/primordials/promise.js +28 -52
  428. package/dist/primordials/reflect.js +24 -52
  429. package/dist/primordials/regexp.js +25 -47
  430. package/dist/primordials/string.js +114 -167
  431. package/dist/primordials/symbol.js +40 -72
  432. package/dist/primordials/uncurry.js +38 -55
  433. package/dist/primordials/url.js +27 -66
  434. package/dist/process/_internal.js +7 -32
  435. package/dist/process/abort.js +29 -35
  436. package/dist/process/lock-instance.js +26 -30
  437. package/dist/process/lock-manager.js +279 -307
  438. package/dist/process/lock-types.js +1 -17
  439. package/dist/process/spawn/_internal.js +43 -55
  440. package/dist/process/spawn/child.js +172 -211
  441. package/dist/process/spawn/errors.js +116 -113
  442. package/dist/process/spawn/stdio.js +51 -35
  443. package/dist/process/spawn/types.js +1 -17
  444. package/dist/process/transient.js +49 -66
  445. package/dist/promises/_internal.d.ts +8 -2
  446. package/dist/promises/_internal.js +31 -38
  447. package/dist/promises/iterate.js +238 -102
  448. package/dist/promises/options.js +123 -101
  449. package/dist/promises/queue.js +115 -136
  450. package/dist/promises/resolvers.js +77 -46
  451. package/dist/promises/retry.js +156 -101
  452. package/dist/promises/types.js +1 -17
  453. package/dist/regexps/escape.js +32 -30
  454. package/dist/regexps/hex.js +16 -33
  455. package/dist/regexps/spec.js +53 -81
  456. package/dist/releases/github-archives.js +127 -118
  457. package/dist/releases/github-asset-url.js +162 -155
  458. package/dist/releases/github-assets.js +37 -49
  459. package/dist/releases/github-auth.js +32 -48
  460. package/dist/releases/github-downloads.js +118 -138
  461. package/dist/releases/github-listing.js +175 -154
  462. package/dist/releases/github-retry-config.d.ts +31 -0
  463. package/dist/releases/github-retry-config.js +46 -0
  464. package/dist/releases/github-types.js +1 -17
  465. package/dist/releases/socket-btm.js +273 -192
  466. package/dist/schema/parse.js +35 -36
  467. package/dist/schema/types.js +1 -17
  468. package/dist/schema/validate.js +118 -99
  469. package/dist/sea/detect.js +57 -52
  470. package/dist/secrets/_internal.js +86 -67
  471. package/dist/secrets/find.js +96 -77
  472. package/dist/secrets/keychain.js +315 -309
  473. package/dist/secrets/linux.js +133 -135
  474. package/dist/secrets/macos.js +151 -147
  475. package/dist/secrets/rc.js +182 -181
  476. package/dist/secrets/socket-api-token.js +28 -43
  477. package/dist/secrets/types.js +1 -17
  478. package/dist/secrets/windows.js +184 -242
  479. package/dist/shadow/skip.js +51 -70
  480. package/dist/shadow/types.js +1 -17
  481. package/dist/shell/parse.d.ts +26 -0
  482. package/dist/shell/parse.js +35 -0
  483. package/dist/shell/quote.d.ts +19 -0
  484. package/dist/shell/quote.js +30 -0
  485. package/dist/smol/detect.js +67 -43
  486. package/dist/smol/http.js +33 -37
  487. package/dist/smol/https.js +31 -37
  488. package/dist/smol/manifest.js +33 -37
  489. package/dist/smol/path.d.ts +51 -0
  490. package/dist/smol/path.js +38 -0
  491. package/dist/smol/primordial.js +35 -37
  492. package/dist/smol/purl.js +34 -37
  493. package/dist/smol/versions.js +31 -37
  494. package/dist/smol/vfs.js +46 -38
  495. package/dist/sorts/_internal.js +14 -40
  496. package/dist/sorts/natural.js +57 -64
  497. package/dist/sorts/semver.js +33 -43
  498. package/dist/sorts/strings.js +24 -30
  499. package/dist/sorts/types.js +1 -17
  500. package/dist/spinner/default.js +72 -63
  501. package/dist/spinner/format.js +86 -71
  502. package/dist/spinner/spinner.js +749 -797
  503. package/dist/spinner/types.js +1 -17
  504. package/dist/spinner/with.js +193 -137
  505. package/dist/ssri/convert.js +64 -47
  506. package/dist/ssri/parse.js +38 -37
  507. package/dist/ssri/validate.js +51 -34
  508. package/dist/stdio/_internal.js +50 -46
  509. package/dist/stdio/clear.js +208 -86
  510. package/dist/stdio/divider.js +170 -97
  511. package/dist/stdio/footer.js +116 -110
  512. package/dist/stdio/header.js +117 -90
  513. package/dist/stdio/progress.js +189 -218
  514. package/dist/stdio/prompts.js +244 -168
  515. package/dist/stdio/stderr.js +173 -78
  516. package/dist/stdio/stdout.js +177 -94
  517. package/dist/streams/parallel.js +58 -50
  518. package/dist/streams/transform.js +36 -45
  519. package/dist/strings/format.js +145 -63
  520. package/dist/strings/predicates.js +56 -34
  521. package/dist/strings/search.js +52 -42
  522. package/dist/strings/transform.js +113 -72
  523. package/dist/strings/types.js +1 -17
  524. package/dist/strings/width.js +89 -82
  525. package/dist/tables/bordered.js +81 -81
  526. package/dist/tables/padding.js +36 -46
  527. package/dist/tables/simple.js +62 -70
  528. package/dist/tables/types.js +1 -17
  529. package/dist/temporal/instant.js +72 -81
  530. package/dist/temporal/now.js +40 -31
  531. package/dist/temporal/slots.js +42 -36
  532. package/dist/temporal/system.js +36 -36
  533. package/dist/temporal/temporal.js +11 -41
  534. package/dist/themes/context.js +131 -69
  535. package/dist/themes/resolve.js +207 -132
  536. package/dist/themes/themes.js +225 -194
  537. package/dist/themes/types.js +1 -17
  538. package/dist/url/parse.js +48 -51
  539. package/dist/url/predicates.js +24 -31
  540. package/dist/url/search-params.js +133 -101
  541. package/dist/url/types.js +1 -17
  542. package/dist/versions/_internal.js +31 -33
  543. package/dist/versions/compare.js +80 -58
  544. package/dist/versions/modify.js +41 -39
  545. package/dist/versions/parse.js +88 -64
  546. package/dist/versions/range.js +58 -41
  547. package/dist/versions/types.js +1 -17
  548. package/dist/words/article.js +22 -30
  549. package/dist/words/capitalize.js +25 -34
  550. package/dist/words/pluralize.js +23 -31
  551. package/dist/words/types.js +1 -17
  552. package/package.json +42 -5
@@ -1,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;