@socketsecurity/lib 6.0.7 → 6.0.9

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 (323) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +1 -1
  3. package/dist/ai/agent-context.d.mts +103 -0
  4. package/dist/ai/agent-context.js +157 -0
  5. package/dist/ai/backends.d.mts +83 -0
  6. package/dist/ai/backends.js +173 -0
  7. package/dist/ai/credentials.d.mts +49 -0
  8. package/dist/ai/credentials.js +82 -0
  9. package/dist/ai/discover.d.mts +4 -0
  10. package/dist/ai/discover.js +1 -1
  11. package/dist/ai/exec.d.mts +52 -0
  12. package/dist/ai/exec.js +92 -0
  13. package/dist/ai/http.d.mts +132 -0
  14. package/dist/ai/http.js +130 -0
  15. package/dist/ai/profiles.d.mts +41 -6
  16. package/dist/ai/profiles.js +52 -10
  17. package/dist/ai/route.d.mts +82 -0
  18. package/dist/ai/route.js +171 -0
  19. package/dist/ai/spawn.d.mts +42 -2
  20. package/dist/ai/spawn.js +146 -33
  21. package/dist/ai/subagent-status.d.mts +48 -0
  22. package/dist/ai/subagent-status.js +57 -0
  23. package/dist/ai/tier.d.mts +60 -0
  24. package/dist/ai/tier.js +53 -0
  25. package/dist/ai/types.d.mts +25 -2
  26. package/dist/ai/worktree.js +4 -0
  27. package/dist/archives/tar.js +1 -1
  28. package/dist/archives/zip.js +2 -2
  29. package/dist/argv/parse.d.ts +19 -2
  30. package/dist/argv/parse.js +1 -1
  31. package/dist/arrays/join.js +4 -0
  32. package/dist/bin/find.js +4 -4
  33. package/dist/bin/prim.cjs +23322 -18018
  34. package/dist/bin/resolve.js +2 -2
  35. package/dist/cache/ttl/store.js +2 -2
  36. package/dist/cli/check-primordials.d.ts +8 -3
  37. package/dist/cli/check-primordials.js +4 -4
  38. package/dist/compression/_internal.js +1 -1
  39. package/dist/compression/brotli.d.ts +1 -2
  40. package/dist/compression/brotli.js +5 -1
  41. package/dist/compression/gzip.js +5 -1
  42. package/dist/config/layers.d.ts +53 -0
  43. package/dist/config/layers.js +83 -0
  44. package/dist/constants/packages.d.ts +3 -0
  45. package/dist/constants/packages.js +2 -1
  46. package/dist/constants/socket.d.ts +2 -6
  47. package/dist/constants/socket.js +12 -14
  48. package/dist/cover/code.js +2 -2
  49. package/dist/crypto/hash.d.ts +4 -1
  50. package/dist/crypto/hash.js +4 -1
  51. package/dist/dlx/arborist.js +13 -3
  52. package/dist/dlx/binary-cache.js +1 -1
  53. package/dist/dlx/binary-resolution.js +1 -1
  54. package/dist/dlx/detect.d.ts +8 -0
  55. package/dist/dlx/firewall.d.ts +8 -0
  56. package/dist/dlx/lockfile.js +5 -2
  57. package/dist/dlx/manifest.js +1 -1
  58. package/dist/dlx/package.js +4 -0
  59. package/dist/eco/cargo/parse-lockfile.d.ts +1 -2
  60. package/dist/eco/cargo/parse-lockfile.js +3 -3
  61. package/dist/eco/manifest/detect-format.js +1 -1
  62. package/dist/eco/npm/npm/parse-lockfile.d.ts +3 -4
  63. package/dist/eco/npm/npm/parse-lockfile.js +2 -2
  64. package/dist/eco/npm/parse-package-json.d.ts +11 -0
  65. package/dist/eco/npm/parse-package-json.js +1 -1
  66. package/dist/eco/npm/pnpm/parse-lockfile.d.ts +5 -3
  67. package/dist/eco/npm/pnpm/parse-lockfile.js +3 -3
  68. package/dist/eco/npm/yarnpkg/yarn/exec.js +1 -1
  69. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +1 -2
  70. package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +2 -2
  71. package/dist/env/proxy.js +1 -1
  72. package/dist/env/rewire.d.ts +6 -3
  73. package/dist/env/rewire.js +7 -8
  74. package/dist/env/socket.d.ts +7 -0
  75. package/dist/env/socket.js +10 -0
  76. package/dist/env/xdg.d.ts +17 -0
  77. package/dist/env/xdg.js +21 -1
  78. package/dist/errors/predicates.js +1 -1
  79. package/dist/errors/stack.js +1 -2
  80. package/dist/external/@npmcli/package-json.js +3455 -4881
  81. package/dist/external/@npmcli/promise-spawn.js +3 -1
  82. package/dist/external/@yarnpkg/extensions.js +1 -1
  83. package/dist/external/external-pack.js +1 -1
  84. package/dist/external/npm-pack.js +29164 -31799
  85. package/dist/external/pico-pack.js +4 -2
  86. package/dist/external/tar-fs.js +63 -16
  87. package/dist/external/which.js +3 -1
  88. package/dist/external-tools/bazel/asset-names.d.ts +1 -1
  89. package/dist/external-tools/bazel/asset-names.js +5 -2
  90. package/dist/external-tools/bazel/from-download.d.ts +1 -1
  91. package/dist/external-tools/bazel/from-download.js +5 -2
  92. package/dist/external-tools/bazel/resolve-bazel-version.js +4 -0
  93. package/dist/external-tools/bazel/resolve.d.ts +3 -3
  94. package/dist/external-tools/bazel/resolve.js +16 -8
  95. package/dist/external-tools/cdxgen/asset-names.d.ts +1 -1
  96. package/dist/external-tools/cdxgen/asset-names.js +5 -2
  97. package/dist/external-tools/cdxgen/from-download.d.ts +1 -1
  98. package/dist/external-tools/cdxgen/from-download.js +7 -4
  99. package/dist/external-tools/cdxgen/resolve.d.ts +3 -3
  100. package/dist/external-tools/cdxgen/resolve.js +16 -8
  101. package/dist/external-tools/from-download.d.ts +2 -2
  102. package/dist/external-tools/from-download.js +11 -5
  103. package/dist/external-tools/from-pip-venv.d.ts +1 -1
  104. package/dist/external-tools/from-pip-venv.js +12 -5
  105. package/dist/external-tools/janus/asset-names.d.ts +1 -1
  106. package/dist/external-tools/janus/asset-names.js +5 -2
  107. package/dist/external-tools/janus/from-download.d.ts +1 -1
  108. package/dist/external-tools/janus/from-download.js +5 -2
  109. package/dist/external-tools/janus/resolve.d.ts +3 -3
  110. package/dist/external-tools/janus/resolve.js +16 -8
  111. package/dist/external-tools/jre/asset-names.d.ts +1 -1
  112. package/dist/external-tools/jre/asset-names.js +5 -2
  113. package/dist/external-tools/jre/detect-platform-arch.js +1 -1
  114. package/dist/external-tools/jre/from-download.d.ts +1 -1
  115. package/dist/external-tools/jre/from-download.js +7 -4
  116. package/dist/external-tools/jre/from-java-home.js +2 -2
  117. package/dist/external-tools/jre/from-vfs.js +2 -2
  118. package/dist/external-tools/jre/resolve.d.ts +3 -3
  119. package/dist/external-tools/jre/resolve.js +16 -8
  120. package/dist/external-tools/manifest.d.ts +18 -0
  121. package/dist/external-tools/manifest.js +2 -2
  122. package/dist/external-tools/opengrep/asset-names.d.ts +1 -1
  123. package/dist/external-tools/opengrep/asset-names.js +5 -2
  124. package/dist/external-tools/opengrep/from-download.d.ts +1 -1
  125. package/dist/external-tools/opengrep/from-download.js +5 -2
  126. package/dist/external-tools/opengrep/resolve.d.ts +3 -3
  127. package/dist/external-tools/opengrep/resolve.js +16 -8
  128. package/dist/external-tools/python/asset-names.d.ts +1 -1
  129. package/dist/external-tools/python/asset-names.js +11 -4
  130. package/dist/external-tools/python/dlx.d.ts +3 -3
  131. package/dist/external-tools/python/dlx.js +20 -9
  132. package/dist/external-tools/python/from-download.d.ts +1 -1
  133. package/dist/external-tools/python/from-download.js +12 -5
  134. package/dist/external-tools/python/pin.js +6 -3
  135. package/dist/external-tools/python/pip-install.js +6 -3
  136. package/dist/external-tools/python/resolve.d.ts +3 -3
  137. package/dist/external-tools/python/resolve.js +19 -11
  138. package/dist/external-tools/python/uv-install.d.ts +89 -0
  139. package/dist/external-tools/python/uv-install.js +165 -0
  140. package/dist/external-tools/sbt/asset-names.d.ts +1 -1
  141. package/dist/external-tools/sbt/asset-names.js +5 -2
  142. package/dist/external-tools/sbt/from-download.d.ts +1 -1
  143. package/dist/external-tools/sbt/from-download.js +5 -2
  144. package/dist/external-tools/sbt/resolve.d.ts +3 -3
  145. package/dist/external-tools/sbt/resolve.js +16 -8
  146. package/dist/external-tools/skillspector/from-dlx.d.ts +1 -1
  147. package/dist/external-tools/skillspector/from-dlx.js +10 -3
  148. package/dist/external-tools/skillspector/from-uv.d.ts +30 -0
  149. package/dist/external-tools/skillspector/from-uv.js +56 -0
  150. package/dist/external-tools/skillspector/resolve.d.ts +20 -5
  151. package/dist/external-tools/skillspector/resolve.js +27 -6
  152. package/dist/external-tools/skillspector/types.d.ts +3 -1
  153. package/dist/external-tools/synp/asset-names.d.ts +1 -1
  154. package/dist/external-tools/synp/asset-names.js +6 -2
  155. package/dist/external-tools/synp/from-download.d.ts +1 -1
  156. package/dist/external-tools/synp/from-download.js +5 -2
  157. package/dist/external-tools/synp/resolve.d.ts +3 -3
  158. package/dist/external-tools/synp/resolve.js +16 -8
  159. package/dist/external-tools/trivy/asset-names.d.ts +1 -1
  160. package/dist/external-tools/trivy/asset-names.js +5 -2
  161. package/dist/external-tools/trivy/from-download.d.ts +1 -1
  162. package/dist/external-tools/trivy/from-download.js +7 -4
  163. package/dist/external-tools/trivy/resolve.d.ts +3 -3
  164. package/dist/external-tools/trivy/resolve.js +16 -8
  165. package/dist/external-tools/trufflehog/asset-names.d.ts +1 -1
  166. package/dist/external-tools/trufflehog/asset-names.js +5 -2
  167. package/dist/external-tools/trufflehog/from-download.d.ts +1 -1
  168. package/dist/external-tools/trufflehog/from-download.js +7 -4
  169. package/dist/external-tools/trufflehog/resolve.d.ts +3 -3
  170. package/dist/external-tools/trufflehog/resolve.js +16 -8
  171. package/dist/external-tools/uv/asset-names.d.ts +36 -0
  172. package/dist/external-tools/uv/asset-names.js +73 -0
  173. package/dist/external-tools/uv/from-download.d.ts +17 -0
  174. package/dist/external-tools/uv/from-download.js +50 -0
  175. package/dist/external-tools/uv/from-path.d.ts +5 -0
  176. package/dist/external-tools/uv/from-path.js +22 -0
  177. package/dist/external-tools/uv/from-vfs.d.ts +7 -0
  178. package/dist/external-tools/uv/from-vfs.js +26 -0
  179. package/dist/external-tools/uv/resolve.d.ts +25 -0
  180. package/dist/external-tools/uv/resolve.js +61 -0
  181. package/dist/external-tools/uv/types.d.ts +24 -0
  182. package/dist/external-tools/uv/types.js +2 -0
  183. package/dist/fleet/repo-config.d.ts +53 -0
  184. package/dist/fleet/repo-config.js +79 -0
  185. package/dist/fs/allowed-dirs-cache.d.ts +27 -1
  186. package/dist/fs/allowed-dirs-cache.js +39 -6
  187. package/dist/fs/copy.d.ts +88 -0
  188. package/dist/fs/copy.js +89 -0
  189. package/dist/fs/find.js +1 -1
  190. package/dist/fs/read-json-cache.d.ts +7 -0
  191. package/dist/fs/resolve-module.js +6 -2
  192. package/dist/fs/safe.js +1 -1
  193. package/dist/git/_internal.js +3 -3
  194. package/dist/git/repo.js +2 -4
  195. package/dist/git/staged.js +8 -0
  196. package/dist/git/tracked.d.ts +84 -0
  197. package/dist/git/tracked.js +163 -0
  198. package/dist/git/unstaged.js +8 -0
  199. package/dist/github/refs-graphql.js +4 -0
  200. package/dist/github/refs-rest.js +4 -0
  201. package/dist/globs/_internal.js +1 -1
  202. package/dist/globs/match.js +9 -1
  203. package/dist/globs/matcher.js +5 -1
  204. package/dist/http-request/browser.js +7 -3
  205. package/dist/http-request/checksum-file.js +1 -1
  206. package/dist/http-request/{browser-fetch.d.ts → fetch/browser.d.ts} +2 -2
  207. package/dist/http-request/{browser-fetch.js → fetch/browser.js} +4 -4
  208. package/dist/http-request/headers.js +1 -1
  209. package/dist/http-request/request-attempt.js +2 -2
  210. package/dist/http-request/user-agent.js +1 -1
  211. package/dist/integrity.d.ts +124 -71
  212. package/dist/integrity.js +168 -78
  213. package/dist/json/edit.js +38 -30
  214. package/dist/json/format.js +1 -1
  215. package/dist/logger/colors.d.ts +1 -2
  216. package/dist/logger/colors.js +2 -2
  217. package/dist/logger/symbols-builder.js +7 -8
  218. package/dist/logger/symbols.js +8 -8
  219. package/dist/native-messaging/install.d.ts +1 -1
  220. package/dist/native-messaging/install.js +7 -4
  221. package/dist/native-messaging/rate-limit.d.ts +7 -0
  222. package/dist/native-messaging/rate-limit.js +4 -0
  223. package/dist/node/async-hooks.js +1 -1
  224. package/dist/node/child-process.js +1 -1
  225. package/dist/node/crypto.js +1 -1
  226. package/dist/node/events.js +1 -1
  227. package/dist/node/fs-promises.js +1 -1
  228. package/dist/node/fs.d.ts +22 -6
  229. package/dist/node/fs.js +16 -3
  230. package/dist/node/http.js +1 -1
  231. package/dist/node/https.js +1 -1
  232. package/dist/node/module.d.ts +73 -2
  233. package/dist/node/module.js +97 -12
  234. package/dist/node/os.d.ts +10 -2
  235. package/dist/node/os.js +11 -4
  236. package/dist/node/path.d.ts +11 -2
  237. package/dist/node/path.js +17 -4
  238. package/dist/node/timers-promises.js +1 -1
  239. package/dist/node/url.js +1 -1
  240. package/dist/node/util.js +1 -1
  241. package/dist/objects/getters.js +1 -1
  242. package/dist/objects/mutate.js +2 -2
  243. package/dist/packages/edit-class.d.ts +2 -3
  244. package/dist/packages/edit-class.js +41 -35
  245. package/dist/packages/exports.js +4 -4
  246. package/dist/packages/fetch.js +1 -1
  247. package/dist/packages/isolation.js +2 -2
  248. package/dist/packages/licenses.js +2 -2
  249. package/dist/packages/manifest.d.ts +29 -0
  250. package/dist/packages/manifest.js +40 -4
  251. package/dist/packages/normalize.js +2 -2
  252. package/dist/packages/provenance.js +3 -3
  253. package/dist/packages/specs.js +1 -1
  254. package/dist/packages/tarball.js +4 -2
  255. package/dist/packages/types.d.ts +1 -2
  256. package/dist/paths/_internal.d.ts +1 -7
  257. package/dist/paths/_internal.js +9 -15
  258. package/dist/paths/conversion.js +1 -1
  259. package/dist/paths/dirnames.d.ts +1 -0
  260. package/dist/paths/dirnames.js +2 -0
  261. package/dist/paths/normalize.js +1 -1
  262. package/dist/paths/predicates.js +2 -1
  263. package/dist/paths/resolve.js +14 -19
  264. package/dist/paths/rewire.d.ts +5 -0
  265. package/dist/paths/socket.d.ts +137 -123
  266. package/dist/paths/socket.js +172 -131
  267. package/dist/perf/metrics.js +1 -1
  268. package/dist/perf/report.js +1 -1
  269. package/dist/primordials/process.d.ts +88 -0
  270. package/dist/primordials/process.js +132 -0
  271. package/dist/primordials/uncurry.d.ts +1 -2
  272. package/dist/process/spawn/child.js +8 -2
  273. package/dist/process/spawn/errors.js +1 -1
  274. package/dist/releases/github-archives.js +1 -1
  275. package/dist/releases/github-listing.d.ts +1 -2
  276. package/dist/schema/types.d.ts +3 -4
  277. package/dist/schema/validate.js +1 -1
  278. package/dist/secrets/broker.d.ts +35 -0
  279. package/dist/secrets/broker.js +72 -0
  280. package/dist/secrets/find.d.ts +8 -6
  281. package/dist/secrets/find.js +25 -5
  282. package/dist/secrets/keychain.d.ts +1 -1
  283. package/dist/secrets/linux.js +32 -44
  284. package/dist/secrets/macos.d.ts +1 -2
  285. package/dist/secrets/macos.js +20 -29
  286. package/dist/secrets/rc.d.ts +2 -2
  287. package/dist/secrets/rc.js +21 -13
  288. package/dist/secrets/socket-api-token.js +8 -0
  289. package/dist/secrets/windows.js +27 -33
  290. package/dist/shell/parse.d.ts +32 -0
  291. package/dist/shell/parse.js +60 -0
  292. package/dist/smol/detect.js +1 -1
  293. package/dist/smol/http.js +1 -1
  294. package/dist/smol/https.js +1 -1
  295. package/dist/smol/manifest.js +1 -1
  296. package/dist/smol/path.js +1 -1
  297. package/dist/smol/primordial.js +1 -1
  298. package/dist/smol/purl.js +1 -1
  299. package/dist/smol/versions.js +1 -1
  300. package/dist/smol/vfs.js +1 -1
  301. package/dist/sorts/_internal.d.ts +1 -2
  302. package/dist/sorts/_internal.js +2 -6
  303. package/dist/sorts/semver.js +2 -2
  304. package/dist/spinner/create-spinner-class.js +2 -2
  305. package/dist/spinner/spinner-internals.d.ts +1 -1
  306. package/dist/spinner/spinner-internals.js +9 -5
  307. package/dist/spinner/spinner.d.ts +4 -0
  308. package/dist/spinner/spinner.js +1 -1
  309. package/dist/stdio/progress.js +6 -2
  310. package/dist/stdio/prompts.d.ts +2 -10
  311. package/dist/stdio/prompts.js +11 -24
  312. package/dist/strings/format.js +1 -1
  313. package/dist/strings/search.js +1 -1
  314. package/dist/temporal/instant.js +2 -2
  315. package/dist/themes/context.d.ts +5 -3
  316. package/dist/themes/context.js +5 -6
  317. package/dist/url/assert-safe.d.ts +29 -0
  318. package/dist/url/assert-safe.js +54 -0
  319. package/dist/url/predicates.d.ts +31 -1
  320. package/dist/url/predicates.js +42 -1
  321. package/dist/url/types.d.ts +4 -0
  322. package/llms.txt +750 -0
  323. package/package.json +253 -125
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ /* Socket Lib - Built with rolldown */
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_primordials_string = require('../primordials/string.js');
5
+ const require_paths_normalize = require('../paths/normalize.js');
6
+ const require_primordials_array = require('../primordials/array.js');
7
+ const require_node_path = require('../node/path.js');
8
+ const require_process_spawn_child = require('../process/spawn/child.js');
9
+ const require_git_repo = require('./repo.js');
10
+
11
+ //#region src/git/tracked.ts
12
+ /**
13
+ * @file Tracked-status + submodule-membership probes for a working-tree path.
14
+ * `isTracked` answers "does git track this exact path?"; `getSubmodulePaths`
15
+ * lists the repo's submodule mount points; `isInSubmodule` answers "does this
16
+ * path live inside one?"; `isUntrackedNonSubmodulePath` composes them into
17
+ * the safe-to-touch condition for cleanup tooling — never delete a tracked
18
+ * file or reach into a submodule's own tree (which would dirty it).
19
+ */
20
+ /**
21
+ * The repo's submodule mount points as normalized, repo-root-relative paths
22
+ * (e.g. `vendor/acorn`). Reads `git config` on `.gitmodules`, so it lists
23
+ * declared submodules whether or not they are initialized — the case a
24
+ * stderr-message check on `git ls-files` misses.
25
+ *
26
+ * @example
27
+ * ;```typescript
28
+ * await getSubmodulePaths()
29
+ * // => ['packages/acorn/upstream/acorn', 'vendor/mbedtls']
30
+ * ```
31
+ */
32
+ async function getSubmodulePaths(options) {
33
+ const { cwd = require_git_repo.getCwd() } = {
34
+ __proto__: null,
35
+ ...options
36
+ };
37
+ const lines = require_primordials_string.StringPrototypeSplit(await require_process_spawn_child.spawn("git", [
38
+ "config",
39
+ "--file",
40
+ ".gitmodules",
41
+ "--get-regexp",
42
+ "path"
43
+ ], {
44
+ cwd,
45
+ stdioString: true
46
+ }).then(
47
+ /* c8 ignore next - stdioString:true always yields a string stdout; the
48
+ ?? '' is a defensive fallback that never fires on real spawn output. */
49
+ (result) => String(result?.stdout ?? ""),
50
+ () => ""
51
+ ), "\n");
52
+ const paths = [];
53
+ for (let i = 0, { length } = lines; i < length; i += 1) {
54
+ const line = require_primordials_string.StringPrototypeTrim(lines[i]);
55
+ /* c8 ignore start - defensive parse guards: `git config --get-regexp`
56
+ always emits a `key value` line, so the blank-line and no-space skips
57
+ and the empty-value branch never fire on real git output. */
58
+ if (!line) continue;
59
+ const spaceIdx = line.indexOf(" ");
60
+ if (spaceIdx === -1) continue;
61
+ const rel = require_primordials_string.StringPrototypeTrim(line.slice(spaceIdx + 1));
62
+ if (!rel) continue;
63
+ /* c8 ignore stop */
64
+ paths.push(require_paths_normalize.normalizePath(rel));
65
+ }
66
+ return paths;
67
+ }
68
+ /**
69
+ * Whether `targetPath` lives inside one of the repo's submodules. Resolves the
70
+ * submodule list itself; for a batch sweep prefer `getSubmodulePaths` once plus
71
+ * `pathIsUnderSubmodule` per path.
72
+ *
73
+ * @example
74
+ * ;```typescript
75
+ * await isInSubmodule('vendor/mbedtls/x.py') // => true
76
+ * await isInSubmodule('src/index.ts') // => false
77
+ * ```
78
+ */
79
+ async function isInSubmodule(targetPath, options) {
80
+ const submodulePaths = await getSubmodulePaths(options);
81
+ if (!submodulePaths.length) return false;
82
+ return pathIsUnderSubmodule(targetPath, submodulePaths);
83
+ }
84
+ /**
85
+ * Whether git tracks `targetPath` exactly. Uses `git ls-files --error-unmatch`,
86
+ * which exits non-zero for an untracked path. A path inside a submodule, or one
87
+ * git does not know, returns `false`.
88
+ *
89
+ * @example
90
+ * ;```typescript
91
+ * await isTracked('src/index.ts') // => true
92
+ * await isTracked('.DS_Store') // => false
93
+ * ```
94
+ */
95
+ async function isTracked(targetPath, options) {
96
+ const { cwd = require_git_repo.getCwd() } = {
97
+ __proto__: null,
98
+ ...options
99
+ };
100
+ return await require_process_spawn_child.spawn("git", [
101
+ "ls-files",
102
+ "--error-unmatch",
103
+ targetPath
104
+ ], {
105
+ cwd,
106
+ stdioString: true
107
+ }).then(() => true, () => false);
108
+ }
109
+ /**
110
+ * Whether `targetPath` is git does NOT track AND does not live inside a
111
+ * submodule — the safe-to-touch condition for cleanup tooling. A tracked path
112
+ * is a deliberate file; a submodule-internal path belongs to that submodule's
113
+ * own git (touching it would dirty the submodule). Composes `isTracked` +
114
+ * `getSubmodulePaths`/`pathIsUnderSubmodule`. Fails closed — any check error
115
+ * resolves to `false`.
116
+ *
117
+ * For a batch sweep, call `getSubmodulePaths` once and compose `isTracked` +
118
+ * `pathIsUnderSubmodule` per path to avoid re-reading `.gitmodules` each time.
119
+ *
120
+ * @example
121
+ * ;```typescript
122
+ * await isUntrackedNonSubmodulePath('.DS_Store') // => true
123
+ * await isUntrackedNonSubmodulePath('src/index.ts') // => false (tracked)
124
+ * await isUntrackedNonSubmodulePath('vendor/sub/x.pyc') // => false (submodule)
125
+ * ```
126
+ */
127
+ async function isUntrackedNonSubmodulePath(targetPath, options) {
128
+ const { cwd = require_git_repo.getCwd() } = {
129
+ __proto__: null,
130
+ ...options
131
+ };
132
+ if (await isTracked(targetPath, { cwd }).catch(() => true)) return false;
133
+ const submodulePaths = await getSubmodulePaths({ cwd }).catch(() => []);
134
+ if (submodulePaths.length) {
135
+ const path = require_node_path.getNodePath();
136
+ if (pathIsUnderSubmodule(path.relative(cwd, path.resolve(cwd, targetPath)), submodulePaths)) return false;
137
+ }
138
+ return true;
139
+ }
140
+ /**
141
+ * Whether `relativePath` (repo-root-relative) lies at or under any of
142
+ * `submodulePaths`. Pure — pass the result of `getSubmodulePaths` so the git
143
+ * read happens once for a whole sweep.
144
+ *
145
+ * @example
146
+ * ;```typescript
147
+ * pathIsUnderSubmodule('vendor/mbedtls/scripts/__pycache__', ['vendor/mbedtls'])
148
+ * // => true
149
+ * ```
150
+ */
151
+ function pathIsUnderSubmodule(relativePath, submodulePaths) {
152
+ const normalized = require_paths_normalize.normalizePath(relativePath);
153
+ return require_primordials_array.ArrayPrototypeSome(submodulePaths, (sub) => {
154
+ return normalized === sub || require_primordials_string.StringPrototypeStartsWith(normalized, `${sub}/`) || require_primordials_string.StringPrototypeEndsWith(sub, normalized);
155
+ });
156
+ }
157
+
158
+ //#endregion
159
+ exports.getSubmodulePaths = getSubmodulePaths;
160
+ exports.isInSubmodule = isInSubmodule;
161
+ exports.isTracked = isTracked;
162
+ exports.isUntrackedNonSubmodulePath = isUntrackedNonSubmodulePath;
163
+ exports.pathIsUnderSubmodule = pathIsUnderSubmodule;
@@ -44,6 +44,10 @@ const require_git__internal = require('./_internal.js');
44
44
  * @returns Promise resolving to array of unstaged file paths.
45
45
  */
46
46
  async function getUnstagedFiles(options) {
47
+ options = {
48
+ __proto__: null,
49
+ ...options
50
+ };
47
51
  const args = require_git__internal.getGitDiffSpawnArgs(options?.cwd).unstaged;
48
52
  return await require_git__internal.innerDiff(args, options);
49
53
  }
@@ -79,6 +83,10 @@ async function getUnstagedFiles(options) {
79
83
  * @returns Array of unstaged file paths.
80
84
  */
81
85
  function getUnstagedFilesSync(options) {
86
+ options = {
87
+ __proto__: null,
88
+ ...options
89
+ };
82
90
  const args = require_git__internal.getGitDiffSpawnArgs(options?.cwd).unstaged;
83
91
  return require_git__internal.innerDiffSync(args, options);
84
92
  }
@@ -48,6 +48,10 @@ const require_github_token = require('./token.js');
48
48
  * error.
49
49
  */
50
50
  async function fetchRefShaViaGraphQL(owner, repo, ref, options) {
51
+ options = {
52
+ __proto__: null,
53
+ ...options
54
+ };
51
55
  const token = options.token || require_github_token.getGitHubToken();
52
56
  const headers = {
53
57
  Accept: "application/vnd.github.v3+json",
@@ -31,6 +31,10 @@ const require_github_refs_graphql = require('./refs-graphql.js');
31
31
  * @throws {Error} When ref cannot be resolved after all strategies fail
32
32
  */
33
33
  async function fetchRefSha(owner, repo, ref, options) {
34
+ options = {
35
+ __proto__: null,
36
+ ...options
37
+ };
34
38
  const fetchOptions = { token: options.token };
35
39
  let sawEmptyBody = false;
36
40
  const note404 = (e) => {
@@ -2,9 +2,9 @@
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_primordials_string = require('../primordials/string.js');
5
+ const require_primordials_map_set = require('../primordials/map-set.js');
5
6
  const require_paths_normalize = require('../paths/normalize.js');
6
7
  const require_primordials_array = require('../primordials/array.js');
7
- const require_primordials_map_set = require('../primordials/map-set.js');
8
8
  const require_node_fs = require('../node/fs.js');
9
9
  const require_globs_defaults = require('./defaults.js');
10
10
  const require_node_fs_promises = require('../node/fs-promises.js');
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
- const require_node_fs = require('../node/fs.js');
5
4
  const require_primordials_object = require('../primordials/object.js');
5
+ const require_node_fs = require('../node/fs.js');
6
6
  const require_node_fs_promises = require('../node/fs-promises.js');
7
7
  const require_globs__internal = require('./_internal.js');
8
8
  const require_promises_resolvers = require('../promises/resolvers.js');
@@ -59,6 +59,10 @@ function canUseNodeFsGlob(options) {
59
59
  * ```
60
60
  */
61
61
  async function glob(patterns, options) {
62
+ options = {
63
+ __proto__: null,
64
+ ...options
65
+ };
62
66
  const normalizedIgnore = require_globs__internal.normalizeIgnorePatterns(options?.ignore);
63
67
  /* c8 ignore start */
64
68
  if (canUseNodeFsGlob(options)) return require_globs__internal.normalizeGlobResults(await require_promises_resolvers.fromAsync(require_node_fs_promises.getNodeFsPromises().glob(patterns, {
@@ -81,6 +85,10 @@ async function glob(patterns, options) {
81
85
  * ```
82
86
  */
83
87
  function globSync(patterns, options) {
88
+ options = {
89
+ __proto__: null,
90
+ ...options
91
+ };
84
92
  const normalizedIgnore = require_globs__internal.normalizeIgnorePatterns(options?.ignore);
85
93
  /* c8 ignore start */
86
94
  if (canUseNodeFsGlob(options)) return require_globs__internal.normalizeGlobResults([...require_node_fs.getNodeFs().globSync(patterns, {
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_primordials_object = require('../primordials/object.js');
4
5
  const require_primordials_string = require('../primordials/string.js');
5
6
  const require_primordials_array = require('../primordials/array.js');
6
7
  const require_primordials_json = require('../primordials/json.js');
7
- const require_primordials_object = require('../primordials/object.js');
8
8
  const require_globs__internal = require('./_internal.js');
9
9
 
10
10
  //#region src/globs/matcher.ts
@@ -41,6 +41,10 @@ let matchesGlobProbed = false;
41
41
  * ```
42
42
  */
43
43
  function getGlobMatcher(glob, options) {
44
+ options = {
45
+ __proto__: null,
46
+ ...options
47
+ };
44
48
  const patterns = require_primordials_array.ArrayIsArray(glob) ? glob : [glob];
45
49
  const sortedPatterns = [...patterns].toSorted();
46
50
  const sortedOptions = options ? require_primordials_object.ObjectKeys(options).toSorted().map((k) => {
@@ -2,13 +2,13 @@
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_primordials_error = require('../primordials/error.js');
5
- const require_primordials_math = require('../primordials/math.js');
6
5
  const require_primordials_string = require('../primordials/string.js');
6
+ const require_primordials_math = require('../primordials/math.js');
7
7
  const require_primordials_array = require('../primordials/array.js');
8
8
  const require_primordials_date = require('../primordials/date.js');
9
9
  const require_primordials_json = require('../primordials/json.js');
10
10
  const require_primordials_promise = require('../primordials/promise.js');
11
- const require_http_request_browser_fetch = require('./browser-fetch.js');
11
+ const require_http_request_fetch_browser = require('./fetch/browser.js');
12
12
  const require_primordials_headers = require('../primordials/headers.js');
13
13
 
14
14
  //#region src/http-request/browser.ts
@@ -76,6 +76,10 @@ function combineSignals(external, timeoutMs) {
76
76
  };
77
77
  }
78
78
  async function attempt(url, options) {
79
+ options = {
80
+ __proto__: null,
81
+ ...options
82
+ };
79
83
  const method = options.method ?? "GET";
80
84
  const init = { method };
81
85
  if (options.headers) init.headers = options.headers;
@@ -91,7 +95,7 @@ async function attempt(url, options) {
91
95
  timeout: options.timeout
92
96
  });
93
97
  try {
94
- const response = await require_http_request_browser_fetch.doFetch(url, init);
98
+ const response = await require_http_request_fetch_browser.fetchResponse(url, init);
95
99
  const buffer = await response.arrayBuffer();
96
100
  if (options.maxResponseSize !== void 0 && buffer.byteLength > options.maxResponseSize) throw new require_primordials_error.ErrorCtor(`Response body (${buffer.byteLength} bytes) exceeds maxResponseSize (${options.maxResponseSize})`);
97
101
  const body = new require_primordials_array.Uint8ArrayCtor(buffer);
@@ -2,8 +2,8 @@
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_primordials_error = require('../primordials/error.js');
5
- const require_integrity = require('../integrity.js');
6
5
  const require_primordials_string = require('../primordials/string.js');
6
+ const require_integrity = require('../integrity.js');
7
7
  const require_http_request_request = require('./request.js');
8
8
 
9
9
  //#region src/http-request/checksum-file.ts
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * @file Thin wrapper over the global `fetch()` so tests can mock the network
3
- * layer via `vi.mock('@socketsecurity/lib/http-request/browser-fetch')`
3
+ * layer via `vi.mock('@socketsecurity/lib/http-request/fetch/browser')`
4
4
  * without monkey-patching `globalThis.fetch` (which conflicts with the
5
5
  * project's nock-based test setup). The wrapper itself is `c8 ignore`-marked
6
6
  * because the body is a single uncoverable fetch call; coverage credit is
7
7
  * preserved by the wider test suite that mocks this module and asserts the
8
8
  * call shape.
9
9
  */
10
- export declare function doFetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
10
+ export declare function fetchResponse(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
@@ -2,10 +2,10 @@
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- //#region src/http-request/browser-fetch.ts
5
+ //#region src/http-request/fetch/browser.ts
6
6
  /**
7
7
  * @file Thin wrapper over the global `fetch()` so tests can mock the network
8
- * layer via `vi.mock('@socketsecurity/lib/http-request/browser-fetch')`
8
+ * layer via `vi.mock('@socketsecurity/lib/http-request/fetch/browser')`
9
9
  * without monkey-patching `globalThis.fetch` (which conflicts with the
10
10
  * project's nock-based test setup). The wrapper itself is `c8 ignore`-marked
11
11
  * because the body is a single uncoverable fetch call; coverage credit is
@@ -13,10 +13,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
13
13
  * call shape.
14
14
  */
15
15
  /* c8 ignore start - native fetch call; tests mock this module wholesale */
16
- function doFetch(input, init) {
16
+ function fetchResponse(input, init) {
17
17
  return fetch(input, init);
18
18
  }
19
19
  /* c8 ignore stop */
20
20
 
21
21
  //#endregion
22
- exports.doFetch = doFetch;
22
+ exports.fetchResponse = fetchResponse;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  /* Socket Lib - Built with rolldown */
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+ const require_primordials_object = require('../primordials/object.js');
4
5
  const require_primordials_number = require('../primordials/number.js');
5
6
  const require_primordials_array = require('../primordials/array.js');
6
7
  const require_primordials_date = require('../primordials/date.js');
7
- const require_primordials_object = require('../primordials/object.js');
8
8
  const require_primordials_globals = require('../primordials/globals.js');
9
9
 
10
10
  //#region src/http-request/headers.ts
@@ -3,13 +3,13 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_primordials_buffer = require('../primordials/buffer.js');
5
5
  const require_primordials_error = require('../primordials/error.js');
6
+ const require_primordials_object = require('../primordials/object.js');
6
7
  const require_primordials_date = require('../primordials/date.js');
7
8
  const require_primordials_json = require('../primordials/json.js');
8
- const require_primordials_object = require('../primordials/object.js');
9
9
  const require_primordials_promise = require('../primordials/promise.js');
10
+ const require_primordials_url = require('../primordials/url.js');
10
11
  const require_node_http = require('../node/http.js');
11
12
  const require_node_https = require('../node/https.js');
12
- const require_primordials_url = require('../primordials/url.js');
13
13
  const require_http_request_errors = require('./errors.js');
14
14
  const require_http_request_response_reader = require('./response-reader.js');
15
15
  const require_http_request_user_agent = require('./user-agent.js');
@@ -70,7 +70,7 @@ function getSocketCallerUserAgent() {
70
70
  version: require_constants_socket.SOCKET_LIB_VERSION
71
71
  });
72
72
  const caller = require_env_rewire.getEnvValue("SOCKET_CALLER_USER_AGENT");
73
- return caller && caller.trim() ? `${cachedBaseUserAgent} ${caller}` : cachedBaseUserAgent;
73
+ return caller?.trim() ? `${cachedBaseUserAgent} ${caller}` : cachedBaseUserAgent;
74
74
  }
75
75
 
76
76
  //#endregion