@cdxgen/cdxgen 0.0.1 → 13.0.0

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 (722) hide show
  1. package/README.md +921 -87
  2. package/bin/audit.js +239 -0
  3. package/bin/cdxgen.js +2324 -0
  4. package/bin/convert.js +213 -0
  5. package/bin/evinse.js +353 -0
  6. package/bin/hbom.js +495 -0
  7. package/bin/repl.js +2224 -0
  8. package/bin/sign.js +195 -0
  9. package/bin/tracebom.js +295 -0
  10. package/bin/validate.js +268 -0
  11. package/bin/verify.js +189 -0
  12. package/data/README.md +307 -0
  13. package/data/bom-1.4.schema.json +1605 -0
  14. package/data/bom-1.5.schema.json +3660 -0
  15. package/data/bom-1.6.schema.json +5511 -0
  16. package/data/bom-1.7.schema.json +6700 -0
  17. package/data/cbomosdb-queries.json +68 -0
  18. package/data/component-tags.json +339 -0
  19. package/data/container-knowledge-index.json +125 -0
  20. package/data/cosdb-queries.json +17 -0
  21. package/data/crypto-oid.json +1998 -0
  22. package/data/cryptography-defs.json +3793 -0
  23. package/data/cryptography-defs.schema.json +576 -0
  24. package/data/cyclonedx-2.0-bundled.schema.json +7182 -0
  25. package/data/frameworks-list.json +219 -0
  26. package/data/glibc-stdlib.json +117 -0
  27. package/data/gtfobins-index.json +6296 -0
  28. package/data/helpers/init.gradle +71 -0
  29. package/data/jsf-0.82.schema.json +211 -0
  30. package/data/known-licenses.json +82 -0
  31. package/data/lic-mapping.json +338 -0
  32. package/data/license-aliases.json +6624 -0
  33. package/data/license-db.json +39059 -0
  34. package/data/license-deprecations.json +302 -0
  35. package/data/lolbas-index.json +150 -0
  36. package/data/predictive-audit-allowlist.json +11 -0
  37. package/data/pypi-pkg-aliases.json +1199 -0
  38. package/data/python-stdlib.json +308 -0
  39. package/data/queries-darwin.json +193 -0
  40. package/data/queries-win.json +257 -0
  41. package/data/queries.json +268 -0
  42. package/data/ruby-known-modules.json +281 -0
  43. package/data/rules/ai-agent-governance.yaml +323 -0
  44. package/data/rules/ai-bom.yaml +268 -0
  45. package/data/rules/ai-oversight.yaml +186 -0
  46. package/data/rules/ai-provenance.yaml +92 -0
  47. package/data/rules/asar-archives.yaml +150 -0
  48. package/data/rules/cbom-security.yaml +165 -0
  49. package/data/rules/chrome-extensions.yaml +248 -0
  50. package/data/rules/ci-permissions.yaml +802 -0
  51. package/data/rules/container-risk.yaml +353 -0
  52. package/data/rules/dependency-sources.yaml +236 -0
  53. package/data/rules/golem-go.yaml +229 -0
  54. package/data/rules/hbom-compliance.yaml +325 -0
  55. package/data/rules/hbom-performance.yaml +307 -0
  56. package/data/rules/hbom-security.yaml +248 -0
  57. package/data/rules/host-topology.yaml +165 -0
  58. package/data/rules/mcp-servers.yaml +388 -0
  59. package/data/rules/obom-runtime.yaml +1776 -0
  60. package/data/rules/package-integrity.yaml +364 -0
  61. package/data/rules/rootfs-hardening.yaml +179 -0
  62. package/data/rules/vscode-extensions.yaml +237 -0
  63. package/data/spdx-export.schema.json +6794 -0
  64. package/data/spdx-license-list.json +7449 -0
  65. package/data/spdx-licenses.json +759 -0
  66. package/data/spdx.schema.json +819 -0
  67. package/data/templates/README.md +3 -0
  68. package/data/templates/asvs-4.0.3.cdx.json +2943 -0
  69. package/data/templates/asvs-5.0.cdx.json +3046 -0
  70. package/data/templates/bsimm-v13.cdx.json +1008 -0
  71. package/data/templates/masvs-2.0.0.cdx.json +225 -0
  72. package/data/templates/nist-ssdf-1.1.cdx.json +828 -0
  73. package/data/templates/pcissc-secure-slc-1.1.cdx.json +1027 -0
  74. package/data/templates/scvs-1.0.0.cdx.json +813 -0
  75. package/data/templates/ssaf-DRAFT-2023-11.cdx.json +127 -0
  76. package/data/vendor-alias.json +41967 -0
  77. package/data/wrapdb-releases.json +4227 -0
  78. package/index.cjs +15 -0
  79. package/lib/audit/index.js +2800 -0
  80. package/lib/audit/progress.js +114 -0
  81. package/lib/audit/reporters.js +937 -0
  82. package/lib/audit/scoring.js +560 -0
  83. package/lib/audit/targets.js +798 -0
  84. package/lib/cli/bomAssembly.js +1833 -0
  85. package/lib/cli/cliOptions.js +513 -0
  86. package/lib/cli/index.js +2759 -0
  87. package/lib/cli/jsBom.js +2087 -0
  88. package/lib/cli/jvmBom.js +1858 -0
  89. package/lib/cli/managedBom.js +2083 -0
  90. package/lib/cli/nativeBom.js +2125 -0
  91. package/lib/core/activity.js +1087 -0
  92. package/lib/core/env.js +719 -0
  93. package/lib/core/fs.js +1058 -0
  94. package/lib/core/httpClient.js +730 -0
  95. package/lib/core/logger.js +142 -0
  96. package/lib/core/parallel.js +323 -0
  97. package/lib/core/paths.js +70 -0
  98. package/lib/core/projectConfig.js +122 -0
  99. package/lib/core/propertySanitizer.js +174 -0
  100. package/lib/core/spdx.js +5 -0
  101. package/lib/core/state.js +59 -0
  102. package/lib/core/text.js +207 -0
  103. package/lib/core/ui.js +876 -0
  104. package/lib/core/urls.js +84 -0
  105. package/lib/ecosystems/asarutils.js +1636 -0
  106. package/lib/ecosystems/bunutils.js +402 -0
  107. package/lib/ecosystems/caxa.js +77 -0
  108. package/lib/ecosystems/chromextutils.js +1174 -0
  109. package/lib/ecosystems/cmakeResolver.js +587 -0
  110. package/lib/ecosystems/cppEvidence.js +305 -0
  111. package/lib/ecosystems/denoutils.js +1094 -0
  112. package/lib/ecosystems/dotnetutils.js +132 -0
  113. package/lib/ecosystems/ecosystems.js +2772 -0
  114. package/lib/ecosystems/golem.js +1807 -0
  115. package/lib/ecosystems/gradleutils.js +1048 -0
  116. package/lib/ecosystems/jsEvidence.js +317 -0
  117. package/lib/ecosystems/npmutils.js +586 -0
  118. package/lib/ecosystems/parsers-bazel.js +875 -0
  119. package/lib/ecosystems/parsers-dotnet.js +1430 -0
  120. package/lib/ecosystems/parsers-gleam.js +302 -0
  121. package/lib/ecosystems/parsers-go.js +818 -0
  122. package/lib/ecosystems/parsers-js.js +4222 -0
  123. package/lib/ecosystems/parsers-jvm.js +948 -0
  124. package/lib/ecosystems/parsers-misc.js +3191 -0
  125. package/lib/ecosystems/parsers-python.js +2070 -0
  126. package/lib/ecosystems/parsers-rust.js +1294 -0
  127. package/lib/ecosystems/parsers-zig.js +861 -0
  128. package/lib/ecosystems/pep770.js +341 -0
  129. package/lib/ecosystems/pylockutils.js +427 -0
  130. package/lib/ecosystems/pythonutils.js +1281 -0
  131. package/lib/ecosystems/registryProvenance.js +1003 -0
  132. package/lib/ecosystems/remote/huggingface.js +1343 -0
  133. package/lib/ecosystems/rubyutils.js +1629 -0
  134. package/lib/ecosystems/rusi.js +820 -0
  135. package/lib/ecosystems/sbtutils.js +972 -0
  136. package/lib/ecosystems/tea.js +607 -0
  137. package/lib/ecosystems/utils.js +575 -0
  138. package/lib/ecosystems/zigResolver.js +410 -0
  139. package/lib/evinser/db.js +145 -0
  140. package/lib/evinser/evinser.js +2362 -0
  141. package/lib/evinser/scalasem.js +65 -0
  142. package/lib/evinser/swiftsem.js +767 -0
  143. package/lib/helpers/annotationFormatter.js +84 -0
  144. package/lib/helpers/bomSigner.js +312 -0
  145. package/lib/helpers/exportUtils.js +160 -0
  146. package/lib/helpers/remote/dependency-track.js +117 -0
  147. package/lib/helpers/versutils.js +202 -0
  148. package/lib/helpers/vsixutils.js +1069 -0
  149. package/lib/inventory/agentFormulationParser.js +322 -0
  150. package/lib/inventory/aiCollector.js +2140 -0
  151. package/lib/inventory/aiInventory.js +414 -0
  152. package/lib/inventory/aiModelVariants.js +121 -0
  153. package/lib/inventory/aiOversightCollector.js +661 -0
  154. package/lib/inventory/aiProvenanceCollector.js +822 -0
  155. package/lib/inventory/analyzer.js +6089 -0
  156. package/lib/inventory/analyzerScope.js +807 -0
  157. package/lib/inventory/astWorker.js +20 -0
  158. package/lib/inventory/atomUtils.js +1092 -0
  159. package/lib/inventory/auditCategories.js +192 -0
  160. package/lib/inventory/bomUtils.js +369 -0
  161. package/lib/inventory/cacheCommands.js +182 -0
  162. package/lib/inventory/cacheDir.js +104 -0
  163. package/lib/inventory/cbomutils.js +590 -0
  164. package/lib/inventory/cdxrs.js +434 -0
  165. package/lib/inventory/ciParsers/azurePipelines.js +295 -0
  166. package/lib/inventory/ciParsers/circleCi.js +286 -0
  167. package/lib/inventory/ciParsers/common.js +24 -0
  168. package/lib/inventory/ciParsers/githubActions.js +2434 -0
  169. package/lib/inventory/ciParsers/gitlabCi.js +213 -0
  170. package/lib/inventory/ciParsers/jenkins.js +180 -0
  171. package/lib/inventory/citations.js +234 -0
  172. package/lib/inventory/communityAiConfigParser.js +756 -0
  173. package/lib/inventory/containerRisk.js +204 -0
  174. package/lib/inventory/cryptoAlgorithmFamily.js +258 -0
  175. package/lib/inventory/deps.js +807 -0
  176. package/lib/inventory/depsUtils.js +588 -0
  177. package/lib/inventory/display.js +2128 -0
  178. package/lib/inventory/dosai.js +601 -0
  179. package/lib/inventory/dosaiParsers.js +154 -0
  180. package/lib/inventory/dynamic.js +145 -0
  181. package/lib/inventory/envcontext.js +1789 -0
  182. package/lib/inventory/evidenceUtils.js +774 -0
  183. package/lib/inventory/fetchBatch.js +779 -0
  184. package/lib/inventory/fetchRate.js +255 -0
  185. package/lib/inventory/forgeEnricher.js +300 -0
  186. package/lib/inventory/formulationParsers.js +422 -0
  187. package/lib/inventory/gtfobins.js +339 -0
  188. package/lib/inventory/hbom.js +719 -0
  189. package/lib/inventory/hbomAnalysis.js +310 -0
  190. package/lib/inventory/hbomLoader.js +35 -0
  191. package/lib/inventory/hostTopology.js +835 -0
  192. package/lib/inventory/inventoryStats.js +100 -0
  193. package/lib/inventory/jsonLike.js +121 -0
  194. package/lib/inventory/licenseEnhancer.js +918 -0
  195. package/lib/inventory/lolbas.js +285 -0
  196. package/lib/inventory/mcp.js +253 -0
  197. package/lib/inventory/mcpConfigParser.js +683 -0
  198. package/lib/inventory/mcpDiscovery.js +112 -0
  199. package/lib/inventory/mcpPinning.js +209 -0
  200. package/lib/inventory/osPackageResolver.js +493 -0
  201. package/lib/inventory/osinfo.js +277 -0
  202. package/lib/inventory/osqueryTransform.js +274 -0
  203. package/lib/inventory/plugins.js +466 -0
  204. package/lib/inventory/protobom.js +231 -0
  205. package/lib/inventory/protobomLoader.js +43 -0
  206. package/lib/inventory/provenanceUtils.js +224 -0
  207. package/lib/inventory/purl.js +749 -0
  208. package/lib/inventory/rustFormulationParser.js +339 -0
  209. package/lib/inventory/sbomDocument.js +340 -0
  210. package/lib/inventory/source.js +1488 -0
  211. package/lib/inventory/spdx.js +361 -0
  212. package/lib/inventory/spdxExpression.js +512 -0
  213. package/lib/inventory/spdxUtils.js +107 -0
  214. package/lib/inventory/table.js +263 -0
  215. package/lib/inventory/traceRunner.js +439 -0
  216. package/lib/inventory/unicodeScan.js +147 -0
  217. package/lib/managers/binary.js +3307 -0
  218. package/lib/managers/containerutils.js +125 -0
  219. package/lib/managers/docker.js +2145 -0
  220. package/lib/managers/dockerConnection.js +162 -0
  221. package/lib/managers/oci.js +704 -0
  222. package/lib/managers/piptree.js +267 -0
  223. package/lib/parsers/cmakeCache.js +199 -0
  224. package/lib/parsers/gguf.js +492 -0
  225. package/lib/parsers/gitAiNotes.js +233 -0
  226. package/lib/parsers/gitmodules.js +239 -0
  227. package/lib/parsers/htmlExtract.js +610 -0
  228. package/lib/parsers/huggingfaceManifest.js +551 -0
  229. package/lib/parsers/huggingfaceUtils.js +506 -0
  230. package/lib/parsers/iri.js +618 -0
  231. package/lib/parsers/npmrc.js +99 -0
  232. package/lib/parsers/ollama.js +101 -0
  233. package/lib/parsers/xml.js +841 -0
  234. package/lib/server/openapi.yaml +433 -0
  235. package/lib/server/server.js +616 -0
  236. package/lib/stages/postgen/annotator.js +977 -0
  237. package/lib/stages/postgen/auditBom.js +468 -0
  238. package/lib/stages/postgen/postgen.js +1239 -0
  239. package/lib/stages/postgen/ruleEngine.js +731 -0
  240. package/lib/stages/postgen/sortBom.js +195 -0
  241. package/lib/stages/postgen/spdxConverter.js +796 -0
  242. package/lib/stages/postgen/specVersionCompat.js +703 -0
  243. package/lib/stages/pregen/envAudit.js +388 -0
  244. package/lib/stages/pregen/pregen.js +637 -0
  245. package/lib/third-party/README.md +9 -0
  246. package/lib/third-party/arborist/CHANGELOG.md +1109 -0
  247. package/lib/third-party/arborist/LICENSE.md +20 -0
  248. package/lib/third-party/arborist/README.md +315 -0
  249. package/lib/third-party/arborist/lib/arborist/index.js +258 -0
  250. package/lib/third-party/arborist/lib/arborist/load-actual.js +605 -0
  251. package/lib/third-party/arborist/lib/arborist/load-virtual.js +300 -0
  252. package/lib/third-party/arborist/lib/bin-links.js +120 -0
  253. package/lib/third-party/arborist/lib/calc-dep-flags.js +130 -0
  254. package/lib/third-party/arborist/lib/case-insensitive-map.js +51 -0
  255. package/lib/third-party/arborist/lib/consistent-resolve.js +42 -0
  256. package/lib/third-party/arborist/lib/debug.js +50 -0
  257. package/lib/third-party/arborist/lib/dep-valid.js +190 -0
  258. package/lib/third-party/arborist/lib/edge.js +417 -0
  259. package/lib/third-party/arborist/lib/from-path.js +36 -0
  260. package/lib/third-party/arborist/lib/gather-dep-set.js +43 -0
  261. package/lib/third-party/arborist/lib/index.js +22 -0
  262. package/lib/third-party/arborist/lib/inventory.js +138 -0
  263. package/lib/third-party/arborist/lib/link.js +169 -0
  264. package/lib/third-party/arborist/lib/node.js +1673 -0
  265. package/lib/third-party/arborist/lib/npm-extension.js +45 -0
  266. package/lib/third-party/arborist/lib/override-resolves.js +11 -0
  267. package/lib/third-party/arborist/lib/override-set.js +319 -0
  268. package/lib/third-party/arborist/lib/package-extensions.js +289 -0
  269. package/lib/third-party/arborist/lib/printable.js +210 -0
  270. package/lib/third-party/arborist/lib/proc-log.js +30 -0
  271. package/lib/third-party/arborist/lib/realpath.js +100 -0
  272. package/lib/third-party/arborist/lib/relpath.js +4 -0
  273. package/lib/third-party/arborist/lib/shrinkwrap.js +1291 -0
  274. package/lib/third-party/arborist/lib/spec-from-lock.js +34 -0
  275. package/lib/third-party/arborist/lib/tree-check.js +165 -0
  276. package/lib/third-party/arborist/lib/validate-npm-package-name.js +107 -0
  277. package/lib/third-party/arborist/lib/version-from-tgz.js +51 -0
  278. package/lib/third-party/arborist/lib/yarn-lock.js +397 -0
  279. package/lib/validator/bomValidator.js +985 -0
  280. package/lib/validator/complianceEngine.js +241 -0
  281. package/lib/validator/complianceRules.js +1680 -0
  282. package/lib/validator/generated/runtime.mjs +17 -0
  283. package/lib/validator/generated/validate-1.6.mjs +21258 -0
  284. package/lib/validator/generated/validate-1.7.mjs +24803 -0
  285. package/lib/validator/generated/validate-2.0.mjs +22931 -0
  286. package/lib/validator/index.js +246 -0
  287. package/lib/validator/reporters/annotations.js +142 -0
  288. package/lib/validator/reporters/console.js +160 -0
  289. package/lib/validator/reporters/index.js +41 -0
  290. package/lib/validator/reporters/json.js +37 -0
  291. package/lib/validator/reporters/sarif.js +184 -0
  292. package/package.json +209 -26
  293. package/types/bin/audit.d.ts +3 -0
  294. package/types/bin/audit.d.ts.map +1 -0
  295. package/types/bin/cdxgen.d.ts +3 -0
  296. package/types/bin/cdxgen.d.ts.map +1 -0
  297. package/types/bin/convert.d.ts +3 -0
  298. package/types/bin/convert.d.ts.map +1 -0
  299. package/types/bin/evinse.d.ts +3 -0
  300. package/types/bin/evinse.d.ts.map +1 -0
  301. package/types/bin/hbom.d.ts +3 -0
  302. package/types/bin/hbom.d.ts.map +1 -0
  303. package/types/bin/repl.d.ts +3 -0
  304. package/types/bin/repl.d.ts.map +1 -0
  305. package/types/bin/sign.d.ts +3 -0
  306. package/types/bin/sign.d.ts.map +1 -0
  307. package/types/bin/tracebom.d.ts +3 -0
  308. package/types/bin/tracebom.d.ts.map +1 -0
  309. package/types/bin/validate.d.ts +14 -0
  310. package/types/bin/validate.d.ts.map +1 -0
  311. package/types/bin/verify.d.ts +3 -0
  312. package/types/bin/verify.d.ts.map +1 -0
  313. package/types/lib/audit/index.d.ts +153 -0
  314. package/types/lib/audit/index.d.ts.map +1 -0
  315. package/types/lib/audit/progress.d.ts +31 -0
  316. package/types/lib/audit/progress.d.ts.map +1 -0
  317. package/types/lib/audit/reporters.d.ts +62 -0
  318. package/types/lib/audit/reporters.d.ts.map +1 -0
  319. package/types/lib/audit/scoring.d.ts +36 -0
  320. package/types/lib/audit/scoring.d.ts.map +1 -0
  321. package/types/lib/audit/targets.d.ts +77 -0
  322. package/types/lib/audit/targets.d.ts.map +1 -0
  323. package/types/lib/cli/bomAssembly.d.ts +315 -0
  324. package/types/lib/cli/bomAssembly.d.ts.map +1 -0
  325. package/types/lib/cli/cliOptions.d.ts +156 -0
  326. package/types/lib/cli/cliOptions.d.ts.map +1 -0
  327. package/types/lib/cli/index.d.ts +107 -0
  328. package/types/lib/cli/index.d.ts.map +1 -0
  329. package/types/lib/cli/jsBom.d.ts +94 -0
  330. package/types/lib/cli/jsBom.d.ts.map +1 -0
  331. package/types/lib/cli/jvmBom.d.ts +54 -0
  332. package/types/lib/cli/jvmBom.d.ts.map +1 -0
  333. package/types/lib/cli/managedBom.d.ts +105 -0
  334. package/types/lib/cli/managedBom.d.ts.map +1 -0
  335. package/types/lib/cli/nativeBom.d.ts +143 -0
  336. package/types/lib/cli/nativeBom.d.ts.map +1 -0
  337. package/types/lib/core/activity.d.ts +178 -0
  338. package/types/lib/core/activity.d.ts.map +1 -0
  339. package/types/lib/core/env.d.ts +192 -0
  340. package/types/lib/core/env.d.ts.map +1 -0
  341. package/types/lib/core/fs.d.ts +158 -0
  342. package/types/lib/core/fs.d.ts.map +1 -0
  343. package/types/lib/core/httpClient.d.ts +149 -0
  344. package/types/lib/core/httpClient.d.ts.map +1 -0
  345. package/types/lib/core/logger.d.ts +28 -0
  346. package/types/lib/core/logger.d.ts.map +1 -0
  347. package/types/lib/core/parallel.d.ts +95 -0
  348. package/types/lib/core/parallel.d.ts.map +1 -0
  349. package/types/lib/core/paths.d.ts +36 -0
  350. package/types/lib/core/paths.d.ts.map +1 -0
  351. package/types/lib/core/projectConfig.d.ts +23 -0
  352. package/types/lib/core/projectConfig.d.ts.map +1 -0
  353. package/types/lib/core/propertySanitizer.d.ts +23 -0
  354. package/types/lib/core/propertySanitizer.d.ts.map +1 -0
  355. package/types/lib/core/spdx.d.ts +5 -0
  356. package/types/lib/core/spdx.d.ts.map +1 -0
  357. package/types/lib/core/state.d.ts +20 -0
  358. package/types/lib/core/state.d.ts.map +1 -0
  359. package/types/lib/core/text.d.ts +78 -0
  360. package/types/lib/core/text.d.ts.map +1 -0
  361. package/types/lib/core/ui.d.ts +87 -0
  362. package/types/lib/core/ui.d.ts.map +1 -0
  363. package/types/lib/core/urls.d.ts +43 -0
  364. package/types/lib/core/urls.d.ts.map +1 -0
  365. package/types/lib/ecosystems/asarutils.d.ts +71 -0
  366. package/types/lib/ecosystems/asarutils.d.ts.map +1 -0
  367. package/types/lib/ecosystems/bunutils.d.ts +38 -0
  368. package/types/lib/ecosystems/bunutils.d.ts.map +1 -0
  369. package/types/lib/ecosystems/caxa.d.ts +8 -0
  370. package/types/lib/ecosystems/caxa.d.ts.map +1 -0
  371. package/types/lib/ecosystems/chromextutils.d.ts +97 -0
  372. package/types/lib/ecosystems/chromextutils.d.ts.map +1 -0
  373. package/types/lib/ecosystems/cmakeResolver.d.ts +176 -0
  374. package/types/lib/ecosystems/cmakeResolver.d.ts.map +1 -0
  375. package/types/lib/ecosystems/cppEvidence.d.ts +35 -0
  376. package/types/lib/ecosystems/cppEvidence.d.ts.map +1 -0
  377. package/types/lib/ecosystems/denoutils.d.ts +76 -0
  378. package/types/lib/ecosystems/denoutils.d.ts.map +1 -0
  379. package/types/lib/ecosystems/dotnetutils.d.ts +45 -0
  380. package/types/lib/ecosystems/dotnetutils.d.ts.map +1 -0
  381. package/types/lib/ecosystems/ecosystems.d.ts +279 -0
  382. package/types/lib/ecosystems/ecosystems.d.ts.map +1 -0
  383. package/types/lib/ecosystems/golem.d.ts +60 -0
  384. package/types/lib/ecosystems/golem.d.ts.map +1 -0
  385. package/types/lib/ecosystems/gradleutils.d.ts +139 -0
  386. package/types/lib/ecosystems/gradleutils.d.ts.map +1 -0
  387. package/types/lib/ecosystems/jsEvidence.d.ts +17 -0
  388. package/types/lib/ecosystems/jsEvidence.d.ts.map +1 -0
  389. package/types/lib/ecosystems/npmutils.d.ts +183 -0
  390. package/types/lib/ecosystems/npmutils.d.ts.map +1 -0
  391. package/types/lib/ecosystems/parsers-bazel.d.ts +36 -0
  392. package/types/lib/ecosystems/parsers-bazel.d.ts.map +1 -0
  393. package/types/lib/ecosystems/parsers-dotnet.d.ts +116 -0
  394. package/types/lib/ecosystems/parsers-dotnet.d.ts.map +1 -0
  395. package/types/lib/ecosystems/parsers-gleam.d.ts +33 -0
  396. package/types/lib/ecosystems/parsers-gleam.d.ts.map +1 -0
  397. package/types/lib/ecosystems/parsers-go.d.ts +92 -0
  398. package/types/lib/ecosystems/parsers-go.d.ts.map +1 -0
  399. package/types/lib/ecosystems/parsers-js.d.ts +242 -0
  400. package/types/lib/ecosystems/parsers-js.d.ts.map +1 -0
  401. package/types/lib/ecosystems/parsers-jvm.d.ts +100 -0
  402. package/types/lib/ecosystems/parsers-jvm.d.ts.map +1 -0
  403. package/types/lib/ecosystems/parsers-misc.d.ts +450 -0
  404. package/types/lib/ecosystems/parsers-misc.d.ts.map +1 -0
  405. package/types/lib/ecosystems/parsers-python.d.ts +145 -0
  406. package/types/lib/ecosystems/parsers-python.d.ts.map +1 -0
  407. package/types/lib/ecosystems/parsers-rust.d.ts +56 -0
  408. package/types/lib/ecosystems/parsers-rust.d.ts.map +1 -0
  409. package/types/lib/ecosystems/parsers-zig.d.ts +83 -0
  410. package/types/lib/ecosystems/parsers-zig.d.ts.map +1 -0
  411. package/types/lib/ecosystems/pep770.d.ts +38 -0
  412. package/types/lib/ecosystems/pep770.d.ts.map +1 -0
  413. package/types/lib/ecosystems/pylockutils.d.ts +68 -0
  414. package/types/lib/ecosystems/pylockutils.d.ts.map +1 -0
  415. package/types/lib/ecosystems/pythonutils.d.ts +70 -0
  416. package/types/lib/ecosystems/pythonutils.d.ts.map +1 -0
  417. package/types/lib/ecosystems/registryProvenance.d.ts +26 -0
  418. package/types/lib/ecosystems/registryProvenance.d.ts.map +1 -0
  419. package/types/lib/ecosystems/remote/huggingface.d.ts +31 -0
  420. package/types/lib/ecosystems/remote/huggingface.d.ts.map +1 -0
  421. package/types/lib/ecosystems/rubyutils.d.ts +182 -0
  422. package/types/lib/ecosystems/rubyutils.d.ts.map +1 -0
  423. package/types/lib/ecosystems/rusi.d.ts +40 -0
  424. package/types/lib/ecosystems/rusi.d.ts.map +1 -0
  425. package/types/lib/ecosystems/sbtutils.d.ts +179 -0
  426. package/types/lib/ecosystems/sbtutils.d.ts.map +1 -0
  427. package/types/lib/ecosystems/tea.d.ts +180 -0
  428. package/types/lib/ecosystems/tea.d.ts.map +1 -0
  429. package/types/lib/ecosystems/utils.d.ts +41 -0
  430. package/types/lib/ecosystems/utils.d.ts.map +1 -0
  431. package/types/lib/ecosystems/zigResolver.d.ts +70 -0
  432. package/types/lib/ecosystems/zigResolver.d.ts.map +1 -0
  433. package/types/lib/evinser/db.d.ts +17 -0
  434. package/types/lib/evinser/db.d.ts.map +1 -0
  435. package/types/lib/evinser/evinser.d.ts +354 -0
  436. package/types/lib/evinser/evinser.d.ts.map +1 -0
  437. package/types/lib/evinser/scalasem.d.ts +15 -0
  438. package/types/lib/evinser/scalasem.d.ts.map +1 -0
  439. package/types/lib/evinser/swiftsem.d.ts +103 -0
  440. package/types/lib/evinser/swiftsem.d.ts.map +1 -0
  441. package/types/lib/helpers/annotationFormatter.d.ts +23 -0
  442. package/types/lib/helpers/annotationFormatter.d.ts.map +1 -0
  443. package/types/lib/helpers/bomSigner.d.ts +28 -0
  444. package/types/lib/helpers/bomSigner.d.ts.map +1 -0
  445. package/types/lib/helpers/exportUtils.d.ts +52 -0
  446. package/types/lib/helpers/exportUtils.d.ts.map +1 -0
  447. package/types/lib/helpers/remote/dependency-track.d.ts +23 -0
  448. package/types/lib/helpers/remote/dependency-track.d.ts.map +1 -0
  449. package/types/lib/helpers/versutils.d.ts +8 -0
  450. package/types/lib/helpers/versutils.d.ts.map +1 -0
  451. package/types/lib/helpers/vsixutils.d.ts +130 -0
  452. package/types/lib/helpers/vsixutils.d.ts.map +1 -0
  453. package/types/lib/inventory/agentFormulationParser.d.ts +21 -0
  454. package/types/lib/inventory/agentFormulationParser.d.ts.map +1 -0
  455. package/types/lib/inventory/aiCollector.d.ts +61 -0
  456. package/types/lib/inventory/aiCollector.d.ts.map +1 -0
  457. package/types/lib/inventory/aiInventory.d.ts +103 -0
  458. package/types/lib/inventory/aiInventory.d.ts.map +1 -0
  459. package/types/lib/inventory/aiModelVariants.d.ts +31 -0
  460. package/types/lib/inventory/aiModelVariants.d.ts.map +1 -0
  461. package/types/lib/inventory/aiOversightCollector.d.ts +28 -0
  462. package/types/lib/inventory/aiOversightCollector.d.ts.map +1 -0
  463. package/types/lib/inventory/aiProvenanceCollector.d.ts +13 -0
  464. package/types/lib/inventory/aiProvenanceCollector.d.ts.map +1 -0
  465. package/types/lib/inventory/analyzer.d.ts +157 -0
  466. package/types/lib/inventory/analyzer.d.ts.map +1 -0
  467. package/types/lib/inventory/analyzerScope.d.ts +106 -0
  468. package/types/lib/inventory/analyzerScope.d.ts.map +1 -0
  469. package/types/lib/inventory/astWorker.d.ts +9 -0
  470. package/types/lib/inventory/astWorker.d.ts.map +1 -0
  471. package/types/lib/inventory/atomUtils.d.ts +159 -0
  472. package/types/lib/inventory/atomUtils.d.ts.map +1 -0
  473. package/types/lib/inventory/auditCategories.d.ts +80 -0
  474. package/types/lib/inventory/auditCategories.d.ts.map +1 -0
  475. package/types/lib/inventory/bomUtils.d.ts +145 -0
  476. package/types/lib/inventory/bomUtils.d.ts.map +1 -0
  477. package/types/lib/inventory/cacheCommands.d.ts +28 -0
  478. package/types/lib/inventory/cacheCommands.d.ts.map +1 -0
  479. package/types/lib/inventory/cacheDir.d.ts +55 -0
  480. package/types/lib/inventory/cacheDir.d.ts.map +1 -0
  481. package/types/lib/inventory/cbomutils.d.ts +37 -0
  482. package/types/lib/inventory/cbomutils.d.ts.map +1 -0
  483. package/types/lib/inventory/cdxrs.d.ts +90 -0
  484. package/types/lib/inventory/cdxrs.d.ts.map +1 -0
  485. package/types/lib/inventory/ciParsers/azurePipelines.d.ts +27 -0
  486. package/types/lib/inventory/ciParsers/azurePipelines.d.ts.map +1 -0
  487. package/types/lib/inventory/ciParsers/circleCi.d.ts +27 -0
  488. package/types/lib/inventory/ciParsers/circleCi.d.ts.map +1 -0
  489. package/types/lib/inventory/ciParsers/common.d.ts +11 -0
  490. package/types/lib/inventory/ciParsers/common.d.ts.map +1 -0
  491. package/types/lib/inventory/ciParsers/githubActions.d.ts +38 -0
  492. package/types/lib/inventory/ciParsers/githubActions.d.ts.map +1 -0
  493. package/types/lib/inventory/ciParsers/gitlabCi.d.ts +26 -0
  494. package/types/lib/inventory/ciParsers/gitlabCi.d.ts.map +1 -0
  495. package/types/lib/inventory/ciParsers/jenkins.d.ts +26 -0
  496. package/types/lib/inventory/ciParsers/jenkins.d.ts.map +1 -0
  497. package/types/lib/inventory/citations.d.ts +90 -0
  498. package/types/lib/inventory/citations.d.ts.map +1 -0
  499. package/types/lib/inventory/communityAiConfigParser.d.ts +14 -0
  500. package/types/lib/inventory/communityAiConfigParser.d.ts.map +1 -0
  501. package/types/lib/inventory/containerRisk.d.ts +20 -0
  502. package/types/lib/inventory/containerRisk.d.ts.map +1 -0
  503. package/types/lib/inventory/cryptoAlgorithmFamily.d.ts +37 -0
  504. package/types/lib/inventory/cryptoAlgorithmFamily.d.ts.map +1 -0
  505. package/types/lib/inventory/deps.d.ts +140 -0
  506. package/types/lib/inventory/deps.d.ts.map +1 -0
  507. package/types/lib/inventory/depsUtils.d.ts +74 -0
  508. package/types/lib/inventory/depsUtils.d.ts.map +1 -0
  509. package/types/lib/inventory/display.d.ts +227 -0
  510. package/types/lib/inventory/display.d.ts.map +1 -0
  511. package/types/lib/inventory/dosai.d.ts +130 -0
  512. package/types/lib/inventory/dosai.d.ts.map +1 -0
  513. package/types/lib/inventory/dosaiParsers.d.ts +59 -0
  514. package/types/lib/inventory/dosaiParsers.d.ts.map +1 -0
  515. package/types/lib/inventory/dynamic.d.ts +25 -0
  516. package/types/lib/inventory/dynamic.d.ts.map +1 -0
  517. package/types/lib/inventory/envcontext.d.ts +377 -0
  518. package/types/lib/inventory/envcontext.d.ts.map +1 -0
  519. package/types/lib/inventory/evidenceUtils.d.ts +74 -0
  520. package/types/lib/inventory/evidenceUtils.d.ts.map +1 -0
  521. package/types/lib/inventory/fetchBatch.d.ts +127 -0
  522. package/types/lib/inventory/fetchBatch.d.ts.map +1 -0
  523. package/types/lib/inventory/fetchRate.d.ts +118 -0
  524. package/types/lib/inventory/fetchRate.d.ts.map +1 -0
  525. package/types/lib/inventory/forgeEnricher.d.ts +31 -0
  526. package/types/lib/inventory/forgeEnricher.d.ts.map +1 -0
  527. package/types/lib/inventory/formulationParsers.d.ts +50 -0
  528. package/types/lib/inventory/formulationParsers.d.ts.map +1 -0
  529. package/types/lib/inventory/gtfobins.d.ts +27 -0
  530. package/types/lib/inventory/gtfobins.d.ts.map +1 -0
  531. package/types/lib/inventory/hbom.d.ts +58 -0
  532. package/types/lib/inventory/hbom.d.ts.map +1 -0
  533. package/types/lib/inventory/hbomAnalysis.d.ts +56 -0
  534. package/types/lib/inventory/hbomAnalysis.d.ts.map +1 -0
  535. package/types/lib/inventory/hbomLoader.d.ts +7 -0
  536. package/types/lib/inventory/hbomLoader.d.ts.map +1 -0
  537. package/types/lib/inventory/hostTopology.d.ts +47 -0
  538. package/types/lib/inventory/hostTopology.d.ts.map +1 -0
  539. package/types/lib/inventory/inventoryStats.d.ts +42 -0
  540. package/types/lib/inventory/inventoryStats.d.ts.map +1 -0
  541. package/types/lib/inventory/jsonLike.d.ts +23 -0
  542. package/types/lib/inventory/jsonLike.d.ts.map +1 -0
  543. package/types/lib/inventory/licenseEnhancer.d.ts +70 -0
  544. package/types/lib/inventory/licenseEnhancer.d.ts.map +1 -0
  545. package/types/lib/inventory/lolbas.d.ts +16 -0
  546. package/types/lib/inventory/lolbas.d.ts.map +1 -0
  547. package/types/lib/inventory/mcp.d.ts +29 -0
  548. package/types/lib/inventory/mcp.d.ts.map +1 -0
  549. package/types/lib/inventory/mcpConfigParser.d.ts +20 -0
  550. package/types/lib/inventory/mcpConfigParser.d.ts.map +1 -0
  551. package/types/lib/inventory/mcpDiscovery.d.ts +33 -0
  552. package/types/lib/inventory/mcpDiscovery.d.ts.map +1 -0
  553. package/types/lib/inventory/mcpPinning.d.ts +11 -0
  554. package/types/lib/inventory/mcpPinning.d.ts.map +1 -0
  555. package/types/lib/inventory/osPackageResolver.d.ts +49 -0
  556. package/types/lib/inventory/osPackageResolver.d.ts.map +1 -0
  557. package/types/lib/inventory/osinfo.d.ts +120 -0
  558. package/types/lib/inventory/osinfo.d.ts.map +1 -0
  559. package/types/lib/inventory/osqueryTransform.d.ts +84 -0
  560. package/types/lib/inventory/osqueryTransform.d.ts.map +1 -0
  561. package/types/lib/inventory/plugins.d.ts +58 -0
  562. package/types/lib/inventory/plugins.d.ts.map +1 -0
  563. package/types/lib/inventory/protobom.d.ts +71 -0
  564. package/types/lib/inventory/protobom.d.ts.map +1 -0
  565. package/types/lib/inventory/protobomLoader.d.ts +17 -0
  566. package/types/lib/inventory/protobomLoader.d.ts.map +1 -0
  567. package/types/lib/inventory/provenanceUtils.d.ts +98 -0
  568. package/types/lib/inventory/provenanceUtils.d.ts.map +1 -0
  569. package/types/lib/inventory/purl.d.ts +313 -0
  570. package/types/lib/inventory/purl.d.ts.map +1 -0
  571. package/types/lib/inventory/rustFormulationParser.d.ts +17 -0
  572. package/types/lib/inventory/rustFormulationParser.d.ts.map +1 -0
  573. package/types/lib/inventory/sbomDocument.d.ts +59 -0
  574. package/types/lib/inventory/sbomDocument.d.ts.map +1 -0
  575. package/types/lib/inventory/source.d.ts +163 -0
  576. package/types/lib/inventory/source.d.ts.map +1 -0
  577. package/types/lib/inventory/spdx.d.ts +66 -0
  578. package/types/lib/inventory/spdx.d.ts.map +1 -0
  579. package/types/lib/inventory/spdxExpression.d.ts +58 -0
  580. package/types/lib/inventory/spdxExpression.d.ts.map +1 -0
  581. package/types/lib/inventory/spdxUtils.d.ts +12 -0
  582. package/types/lib/inventory/spdxUtils.d.ts.map +1 -0
  583. package/types/lib/inventory/table.d.ts +19 -0
  584. package/types/lib/inventory/table.d.ts.map +1 -0
  585. package/types/lib/inventory/traceRunner.d.ts +80 -0
  586. package/types/lib/inventory/traceRunner.d.ts.map +1 -0
  587. package/types/lib/inventory/unicodeScan.d.ts +46 -0
  588. package/types/lib/inventory/unicodeScan.d.ts.map +1 -0
  589. package/types/lib/managers/binary.d.ts +76 -0
  590. package/types/lib/managers/binary.d.ts.map +1 -0
  591. package/types/lib/managers/containerutils.d.ts +30 -0
  592. package/types/lib/managers/containerutils.d.ts.map +1 -0
  593. package/types/lib/managers/docker.d.ts +157 -0
  594. package/types/lib/managers/docker.d.ts.map +1 -0
  595. package/types/lib/managers/dockerConnection.d.ts +42 -0
  596. package/types/lib/managers/dockerConnection.d.ts.map +1 -0
  597. package/types/lib/managers/oci.d.ts +21 -0
  598. package/types/lib/managers/oci.d.ts.map +1 -0
  599. package/types/lib/managers/piptree.d.ts +13 -0
  600. package/types/lib/managers/piptree.d.ts.map +1 -0
  601. package/types/lib/parsers/cmakeCache.d.ts +70 -0
  602. package/types/lib/parsers/cmakeCache.d.ts.map +1 -0
  603. package/types/lib/parsers/gguf.d.ts +39 -0
  604. package/types/lib/parsers/gguf.d.ts.map +1 -0
  605. package/types/lib/parsers/gitAiNotes.d.ts +15 -0
  606. package/types/lib/parsers/gitAiNotes.d.ts.map +1 -0
  607. package/types/lib/parsers/gitmodules.d.ts +88 -0
  608. package/types/lib/parsers/gitmodules.d.ts.map +1 -0
  609. package/types/lib/parsers/htmlExtract.d.ts +34 -0
  610. package/types/lib/parsers/htmlExtract.d.ts.map +1 -0
  611. package/types/lib/parsers/huggingfaceManifest.d.ts +153 -0
  612. package/types/lib/parsers/huggingfaceManifest.d.ts.map +1 -0
  613. package/types/lib/parsers/huggingfaceUtils.d.ts +155 -0
  614. package/types/lib/parsers/huggingfaceUtils.d.ts.map +1 -0
  615. package/types/lib/parsers/iri.d.ts +68 -0
  616. package/types/lib/parsers/iri.d.ts.map +1 -0
  617. package/types/lib/parsers/npmrc.d.ts +33 -0
  618. package/types/lib/parsers/npmrc.d.ts.map +1 -0
  619. package/types/lib/parsers/ollama.d.ts +22 -0
  620. package/types/lib/parsers/ollama.d.ts.map +1 -0
  621. package/types/lib/parsers/xml.d.ts +47 -0
  622. package/types/lib/parsers/xml.d.ts.map +1 -0
  623. package/types/lib/server/server.d.ts +51 -0
  624. package/types/lib/server/server.d.ts.map +1 -0
  625. package/types/lib/stages/postgen/annotator.d.ts +36 -0
  626. package/types/lib/stages/postgen/annotator.d.ts.map +1 -0
  627. package/types/lib/stages/postgen/auditBom.d.ts +92 -0
  628. package/types/lib/stages/postgen/auditBom.d.ts.map +1 -0
  629. package/types/lib/stages/postgen/postgen.d.ts +59 -0
  630. package/types/lib/stages/postgen/postgen.d.ts.map +1 -0
  631. package/types/lib/stages/postgen/ruleEngine.d.ts +18 -0
  632. package/types/lib/stages/postgen/ruleEngine.d.ts.map +1 -0
  633. package/types/lib/stages/postgen/sortBom.d.ts +34 -0
  634. package/types/lib/stages/postgen/sortBom.d.ts.map +1 -0
  635. package/types/lib/stages/postgen/spdxConverter.d.ts +11 -0
  636. package/types/lib/stages/postgen/spdxConverter.d.ts.map +1 -0
  637. package/types/lib/stages/postgen/specVersionCompat.d.ts +71 -0
  638. package/types/lib/stages/postgen/specVersionCompat.d.ts.map +1 -0
  639. package/types/lib/stages/pregen/envAudit.d.ts +14 -0
  640. package/types/lib/stages/pregen/envAudit.d.ts.map +1 -0
  641. package/types/lib/stages/pregen/pregen.d.ts +59 -0
  642. package/types/lib/stages/pregen/pregen.d.ts.map +1 -0
  643. package/types/lib/third-party/arborist/lib/arborist/index.d.ts +47 -0
  644. package/types/lib/third-party/arborist/lib/arborist/index.d.ts.map +1 -0
  645. package/types/lib/third-party/arborist/lib/arborist/load-actual.d.ts +4 -0
  646. package/types/lib/third-party/arborist/lib/arborist/load-actual.d.ts.map +1 -0
  647. package/types/lib/third-party/arborist/lib/arborist/load-virtual.d.ts +4 -0
  648. package/types/lib/third-party/arborist/lib/arborist/load-virtual.d.ts.map +1 -0
  649. package/types/lib/third-party/arborist/lib/bin-links.d.ts +18 -0
  650. package/types/lib/third-party/arborist/lib/bin-links.d.ts.map +1 -0
  651. package/types/lib/third-party/arborist/lib/calc-dep-flags.d.ts +3 -0
  652. package/types/lib/third-party/arborist/lib/calc-dep-flags.d.ts.map +1 -0
  653. package/types/lib/third-party/arborist/lib/case-insensitive-map.d.ts +9 -0
  654. package/types/lib/third-party/arborist/lib/case-insensitive-map.d.ts.map +1 -0
  655. package/types/lib/third-party/arborist/lib/consistent-resolve.d.ts +3 -0
  656. package/types/lib/third-party/arborist/lib/consistent-resolve.d.ts.map +1 -0
  657. package/types/lib/third-party/arborist/lib/debug.d.ts +3 -0
  658. package/types/lib/third-party/arborist/lib/debug.d.ts.map +1 -0
  659. package/types/lib/third-party/arborist/lib/dep-valid.d.ts +3 -0
  660. package/types/lib/third-party/arborist/lib/dep-valid.d.ts.map +1 -0
  661. package/types/lib/third-party/arborist/lib/edge.d.ts +46 -0
  662. package/types/lib/third-party/arborist/lib/edge.d.ts.map +1 -0
  663. package/types/lib/third-party/arborist/lib/from-path.d.ts +3 -0
  664. package/types/lib/third-party/arborist/lib/from-path.d.ts.map +1 -0
  665. package/types/lib/third-party/arborist/lib/gather-dep-set.d.ts +3 -0
  666. package/types/lib/third-party/arborist/lib/gather-dep-set.d.ts.map +1 -0
  667. package/types/lib/third-party/arborist/lib/index.d.ts +3 -0
  668. package/types/lib/third-party/arborist/lib/index.d.ts.map +1 -0
  669. package/types/lib/third-party/arborist/lib/inventory.d.ts +14 -0
  670. package/types/lib/third-party/arborist/lib/inventory.d.ts.map +1 -0
  671. package/types/lib/third-party/arborist/lib/link.d.ts +18 -0
  672. package/types/lib/third-party/arborist/lib/link.d.ts.map +1 -0
  673. package/types/lib/third-party/arborist/lib/node.d.ts +112 -0
  674. package/types/lib/third-party/arborist/lib/node.d.ts.map +1 -0
  675. package/types/lib/third-party/arborist/lib/npm-extension.d.ts +18 -0
  676. package/types/lib/third-party/arborist/lib/npm-extension.d.ts.map +1 -0
  677. package/types/lib/third-party/arborist/lib/override-resolves.d.ts +3 -0
  678. package/types/lib/third-party/arborist/lib/override-resolves.d.ts.map +1 -0
  679. package/types/lib/third-party/arborist/lib/override-set.d.ts +27 -0
  680. package/types/lib/third-party/arborist/lib/override-set.d.ts.map +1 -0
  681. package/types/lib/third-party/arborist/lib/package-extensions.d.ts +36 -0
  682. package/types/lib/third-party/arborist/lib/package-extensions.d.ts.map +1 -0
  683. package/types/lib/third-party/arborist/lib/printable.d.ts +3 -0
  684. package/types/lib/third-party/arborist/lib/printable.d.ts.map +1 -0
  685. package/types/lib/third-party/arborist/lib/proc-log.d.ts +20 -0
  686. package/types/lib/third-party/arborist/lib/proc-log.d.ts.map +1 -0
  687. package/types/lib/third-party/arborist/lib/realpath.d.ts +3 -0
  688. package/types/lib/third-party/arborist/lib/realpath.d.ts.map +1 -0
  689. package/types/lib/third-party/arborist/lib/relpath.d.ts +3 -0
  690. package/types/lib/third-party/arborist/lib/relpath.d.ts.map +1 -0
  691. package/types/lib/third-party/arborist/lib/shrinkwrap.d.ts +54 -0
  692. package/types/lib/third-party/arborist/lib/shrinkwrap.d.ts.map +1 -0
  693. package/types/lib/third-party/arborist/lib/spec-from-lock.d.ts +3 -0
  694. package/types/lib/third-party/arborist/lib/spec-from-lock.d.ts.map +1 -0
  695. package/types/lib/third-party/arborist/lib/tree-check.d.ts +3 -0
  696. package/types/lib/third-party/arborist/lib/tree-check.d.ts.map +1 -0
  697. package/types/lib/third-party/arborist/lib/validate-npm-package-name.d.ts +13 -0
  698. package/types/lib/third-party/arborist/lib/validate-npm-package-name.d.ts.map +1 -0
  699. package/types/lib/third-party/arborist/lib/version-from-tgz.d.ts +6 -0
  700. package/types/lib/third-party/arborist/lib/version-from-tgz.d.ts.map +1 -0
  701. package/types/lib/third-party/arborist/lib/yarn-lock.d.ts +35 -0
  702. package/types/lib/third-party/arborist/lib/yarn-lock.d.ts.map +1 -0
  703. package/types/lib/validator/bomValidator.d.ts +40 -0
  704. package/types/lib/validator/bomValidator.d.ts.map +1 -0
  705. package/types/lib/validator/complianceEngine.d.ts +72 -0
  706. package/types/lib/validator/complianceEngine.d.ts.map +1 -0
  707. package/types/lib/validator/complianceRules.d.ts +61 -0
  708. package/types/lib/validator/complianceRules.d.ts.map +1 -0
  709. package/types/lib/validator/index.d.ts +101 -0
  710. package/types/lib/validator/index.d.ts.map +1 -0
  711. package/types/lib/validator/reporters/annotations.d.ts +37 -0
  712. package/types/lib/validator/reporters/annotations.d.ts.map +1 -0
  713. package/types/lib/validator/reporters/console.d.ts +34 -0
  714. package/types/lib/validator/reporters/console.d.ts.map +1 -0
  715. package/types/lib/validator/reporters/index.d.ts +30 -0
  716. package/types/lib/validator/reporters/index.d.ts.map +1 -0
  717. package/types/lib/validator/reporters/json.d.ts +11 -0
  718. package/types/lib/validator/reporters/json.d.ts.map +1 -0
  719. package/types/lib/validator/reporters/sarif.d.ts +22 -0
  720. package/types/lib/validator/reporters/sarif.d.ts.map +1 -0
  721. package/mod.d.ts +0 -7
  722. package/mod.js +0 -22
@@ -0,0 +1,300 @@
1
+ import { resolve } from "node:path";
2
+
3
+ import mapWorkspaces from "@npmcli/map-workspaces";
4
+ import nameFromFolder from "@npmcli/name-from-folder";
5
+ import PackageJson from "@npmcli/package-json";
6
+
7
+ import calcDepFlags from "../calc-dep-flags.js";
8
+ import consistentResolve from "../consistent-resolve.js";
9
+ import Link from "../link.js";
10
+ import Node from "../node.js";
11
+ import relpath from "../relpath.js";
12
+ import Shrinkwrap from "../shrinkwrap.js";
13
+ import treeCheck from "../tree-check.js";
14
+
15
+ // mixin providing the loadVirtual method
16
+
17
+ const flagsSuspect = Symbol.for("flagsSuspect");
18
+ const setWorkspaces = Symbol.for("setWorkspaces");
19
+
20
+ /** @returns {any} */
21
+ export default (cls) =>
22
+ class VirtualLoader extends cls {
23
+ #rootOptionProvided;
24
+
25
+ // public method
26
+ async loadVirtual(options = {}) {
27
+ if (this.virtualTree) {
28
+ return this.virtualTree;
29
+ }
30
+
31
+ // allow the user to set reify options on the ctor as well.
32
+ // XXX: deprecate separate reify() options object.
33
+ options = { ...this.options, ...options };
34
+
35
+ if (options.root && options.root.meta) {
36
+ await this.#loadFromShrinkwrap(options.root.meta, options.root);
37
+ return treeCheck(this.virtualTree);
38
+ }
39
+
40
+ const s = await Shrinkwrap.load({
41
+ path: this.path,
42
+ lockfileVersion: this.options.lockfileVersion,
43
+ resolveOptions: this.options,
44
+ });
45
+ if (!s.loadedFromDisk && !options.root) {
46
+ const er = new Error(
47
+ "loadVirtual requires existing package-lock.json file",
48
+ );
49
+ throw Object.assign(er, { code: "ENOLOCK" });
50
+ }
51
+
52
+ // when building the ideal tree, we pass in a root node to this function
53
+ // otherwise, load it from the root package json or the lockfile
54
+ const pkg = await PackageJson.normalize(this.path)
55
+ .then((p) => p.content)
56
+ .catch(() => s.data.packages[""] || {});
57
+ // TODO clean this up
58
+ const {
59
+ root = await this[setWorkspaces](this.#loadNode("", pkg, true)),
60
+ } = options;
61
+ this.#rootOptionProvided = options.root;
62
+
63
+ await this.#loadFromShrinkwrap(s, root);
64
+ root.assertRootOverrides();
65
+ return treeCheck(this.virtualTree);
66
+ }
67
+
68
+ async #loadFromShrinkwrap(s, root) {
69
+ if (!this.#rootOptionProvided) {
70
+ // root is never any of these things, but might be a brand new
71
+ // baby Node object that never had its dep flags calculated.
72
+ root.unsetDepFlags();
73
+ } else {
74
+ this[flagsSuspect] = true;
75
+ }
76
+
77
+ this.#checkRootEdges(s, root);
78
+ root.meta = s;
79
+ this.virtualTree = root;
80
+ // separate out link metadata, and create Node objects for nodes
81
+ const links = new Map();
82
+ const nodes = new Map([["", root]]);
83
+ for (const [location, meta] of Object.entries(s.data.packages)) {
84
+ // skip the root because we already got it
85
+ if (!location) {
86
+ continue;
87
+ }
88
+
89
+ if (meta.link) {
90
+ links.set(location, meta);
91
+ } else {
92
+ nodes.set(location, this.#loadNode(location, meta));
93
+ }
94
+ }
95
+ await this.#resolveLinks(links, nodes);
96
+ if (!(s.originalLockfileVersion >= 2)) {
97
+ this.#assignBundles(nodes);
98
+ }
99
+ if (this[flagsSuspect]) {
100
+ // reset all dep flags
101
+ // can't use inventory here, because virtualTree might not be root
102
+ for (const node of nodes.values()) {
103
+ if (node.isRoot || node === this.#rootOptionProvided) {
104
+ continue;
105
+ }
106
+ node.resetDepFlags();
107
+ }
108
+ calcDepFlags(this.virtualTree, !this.#rootOptionProvided);
109
+ }
110
+ return root;
111
+ }
112
+
113
+ // check the lockfile deps, and see if they match. if they do not
114
+ // then we have to reset dep flags at the end. for example, if the
115
+ // user manually edits their package.json file, then we need to know
116
+ // that the idealTree is no longer entirely trustworthy.
117
+ #checkRootEdges(s, root) {
118
+ // loaded virtually from tree, no chance of being out of sync
119
+ // ancient lockfiles are critically damaged by this process,
120
+ // so we need to just hope for the best in those cases.
121
+ if (!s.loadedFromDisk || s.ancientLockfile) {
122
+ return;
123
+ }
124
+
125
+ const lock = s.get("");
126
+ const prod = lock.dependencies || {};
127
+ const dev = lock.devDependencies || {};
128
+ const optional = lock.optionalDependencies || {};
129
+ const peer = lock.peerDependencies || {};
130
+ const peerOptional = {};
131
+
132
+ if (lock.peerDependenciesMeta) {
133
+ for (const [name, meta] of Object.entries(lock.peerDependenciesMeta)) {
134
+ if (meta.optional && peer[name] !== undefined) {
135
+ peerOptional[name] = peer[name];
136
+ delete peer[name];
137
+ }
138
+ }
139
+ }
140
+
141
+ for (const name of Object.keys(optional)) {
142
+ delete prod[name];
143
+ }
144
+
145
+ const lockWS = {};
146
+ const workspaces = mapWorkspaces.virtual({
147
+ cwd: this.path,
148
+ lockfile: s.data,
149
+ });
150
+
151
+ for (const [name, path] of workspaces.entries()) {
152
+ lockWS[name] = `file:${path}`;
153
+ }
154
+
155
+ // Should rootNames exclude optional?
156
+ const rootNames = new Set(root.edgesOut.keys());
157
+
158
+ const lockByType = {
159
+ dev,
160
+ optional,
161
+ peer,
162
+ peerOptional,
163
+ prod,
164
+ workspace: lockWS,
165
+ };
166
+
167
+ // Find anything in shrinkwrap deps that doesn't match root's type or spec
168
+ for (const type in lockByType) {
169
+ const deps = lockByType[type];
170
+ for (const name in deps) {
171
+ const edge = root.edgesOut.get(name);
172
+ if (!edge || edge.type !== type || edge.spec !== deps[name]) {
173
+ return (this[flagsSuspect] = true);
174
+ }
175
+ rootNames.delete(name);
176
+ }
177
+ }
178
+ // Something was in root that's not accounted for in shrinkwrap
179
+ if (rootNames.size) {
180
+ return (this[flagsSuspect] = true);
181
+ }
182
+ }
183
+
184
+ // links is the set of metadata, and nodes is the map of non-Link nodes
185
+ // Set the targets to nodes in the set, if we have them (we might not)
186
+ // XXX build-ideal-tree also has a #resolveLinks, is there overlap?
187
+ async #resolveLinks(links, nodes) {
188
+ for (const [location, meta] of links.entries()) {
189
+ const targetPath = resolve(this.path, meta.resolved);
190
+ const targetLoc = relpath(this.path, targetPath);
191
+ const target = nodes.get(targetLoc);
192
+
193
+ if (!target) {
194
+ const err = new Error(
195
+ `Missing target in lock file: "${targetLoc}" is referenced by "${location}" but does not exist.
196
+ To fix:
197
+ 1. rm package-lock.json
198
+ 2. npm install`,
199
+ );
200
+ err.code = "EMISSINGTARGET";
201
+ throw err;
202
+ }
203
+
204
+ const link = this.#loadLink(location, targetLoc, target, meta);
205
+ nodes.set(location, link);
206
+ nodes.set(targetLoc, link.target);
207
+
208
+ // we always need to read the package.json for link targets
209
+ // outside node_modules because they can be changed by the local user
210
+ if (!link.target.parent) {
211
+ await PackageJson.normalize(link.realpath)
212
+ .then((p) => (link.target.package = p.content))
213
+ .catch(() => null);
214
+ }
215
+ }
216
+ }
217
+
218
+ #assignBundles(nodes) {
219
+ for (const [location, node] of nodes) {
220
+ // Skip assignment of parentage for the root package
221
+ if (!location || (node.isLink && !node.target.location)) {
222
+ continue;
223
+ }
224
+ const {
225
+ name,
226
+ parent,
227
+ package: { inBundle },
228
+ } = node;
229
+
230
+ if (!parent) {
231
+ continue;
232
+ }
233
+
234
+ // read inBundle from package because 'package' here is
235
+ // actually a v2 lockfile metadata entry.
236
+ // If the *parent* is also bundled, though, or if the parent has
237
+ // no dependency on it, then we assume that it's being pulled in
238
+ // just by virtue of its parent or a transitive dep being bundled.
239
+ const { package: ppkg } = parent;
240
+ const { inBundle: parentBundled } = ppkg;
241
+ if (inBundle && !parentBundled && parent.edgesOut.has(node.name)) {
242
+ if (!ppkg.bundleDependencies) {
243
+ ppkg.bundleDependencies = [name];
244
+ } else {
245
+ ppkg.bundleDependencies.push(name);
246
+ }
247
+ }
248
+ }
249
+ }
250
+
251
+ #loadNode(location, sw, loadOverrides) {
252
+ const p = this.virtualTree ? this.virtualTree.realpath : this.path;
253
+ const path = resolve(p, location);
254
+ // shrinkwrap doesn't include package name unless necessary
255
+ if (!sw.name) {
256
+ sw.name = nameFromFolder(path);
257
+ }
258
+
259
+ const node = new Node({
260
+ installLinks: this.installLinks,
261
+ legacyPeerDeps: this.legacyPeerDeps,
262
+ root: this.virtualTree,
263
+ path,
264
+ realpath: path,
265
+ integrity: sw.integrity,
266
+ patched: sw.patched,
267
+ packageExtensionsApplied: sw.packageExtensionsApplied,
268
+ npmExtensionApplied: sw.npmExtensionApplied,
269
+ resolved: consistentResolve(sw.resolved, this.path, path),
270
+ pkg: sw,
271
+ loadOverrides,
272
+ // cast to boolean because they're undefined in the lock file when false
273
+ extraneous: !!sw.extraneous,
274
+ devOptional: !!(sw.devOptional || sw.dev || sw.optional),
275
+ peer: !!sw.peer,
276
+ optional: !!sw.optional,
277
+ dev: !!sw.dev,
278
+ });
279
+
280
+ return node;
281
+ }
282
+
283
+ #loadLink(location, targetLoc, target) {
284
+ const path = resolve(this.path, location);
285
+ const link = new Link({
286
+ installLinks: this.installLinks,
287
+ legacyPeerDeps: this.legacyPeerDeps,
288
+ path,
289
+ realpath: resolve(this.path, targetLoc),
290
+ target,
291
+ pkg: target && target.package,
292
+ });
293
+ link.extraneous = target.extraneous;
294
+ link.devOptional = target.devOptional;
295
+ link.peer = target.peer;
296
+ link.optional = target.optional;
297
+ link.dev = target.dev;
298
+ return link;
299
+ }
300
+ };
@@ -0,0 +1,120 @@
1
+ import { basename, dirname, extname, resolve } from "node:path";
2
+ import process from "node:process";
3
+
4
+ const isWindows = process.platform === "win32";
5
+
6
+ // Memoize node_modules folder resolution to keep it fast
7
+ const memoNodeModules = new Map();
8
+
9
+ /**
10
+ * Returns the path to the node_modules directory under which a package is installed.
11
+ * Handles scoped packages correctly.
12
+ *
13
+ * @param {string} path Path to the package
14
+ * @returns {string} Path to the parent node_modules directory
15
+ */
16
+ function getNodeModules(path) {
17
+ if (memoNodeModules.has(path)) {
18
+ return memoNodeModules.get(path);
19
+ }
20
+ const scopeOrNm = dirname(path);
21
+ const nm =
22
+ basename(scopeOrNm) === "node_modules" ? scopeOrNm : dirname(scopeOrNm);
23
+ memoNodeModules.set(path, nm);
24
+ return nm;
25
+ }
26
+
27
+ /**
28
+ * Resolves the parent prefix directory for the installed package.
29
+ *
30
+ * @param {string} path Path to the package
31
+ * @returns {string} The prefix path
32
+ */
33
+ function getPrefix(path) {
34
+ return dirname(getNodeModules(path));
35
+ }
36
+
37
+ /**
38
+ * Resolves the binary target installation directory.
39
+ *
40
+ * @param {Object} options
41
+ * @param {boolean} options.top Is this a top-level package
42
+ * @param {string} options.path Path to the package
43
+ * @returns {string} Target binary folder path
44
+ */
45
+ function binTarget({ top, path }) {
46
+ if (!top) {
47
+ return `${getNodeModules(path)}/.bin`;
48
+ }
49
+ if (isWindows) {
50
+ return getPrefix(path);
51
+ }
52
+ return `${dirname(getPrefix(path))}/bin`;
53
+ }
54
+
55
+ /**
56
+ * Resolves the manual page installation directory.
57
+ *
58
+ * @param {Object} options
59
+ * @param {boolean} options.top Is this a top-level package
60
+ * @param {string} options.path Path to the package
61
+ * @returns {string | null} Target manual folder path or null
62
+ */
63
+ function manTarget({ top, path }) {
64
+ if (!top || isWindows) {
65
+ return null;
66
+ }
67
+ return `${dirname(getPrefix(path))}/share/man`;
68
+ }
69
+
70
+ /**
71
+ * Custom lightweight replacement for the bin-links getPaths function.
72
+ * Calculates all possible symbolic links or shims that would be created.
73
+ *
74
+ * @param {Object} options Options object
75
+ * @param {string} options.path Path to the package directory
76
+ * @param {Object} options.pkg The parsed package.json object
77
+ * @param {boolean} [options.global] Whether this is a global install
78
+ * @param {boolean} [options.top] Whether this is the top-level package being installed
79
+ * @returns {string[]} An array of potential link target file paths
80
+ */
81
+ export default function getPaths({ path, pkg, global, top }) {
82
+ if (top && !global) {
83
+ return [];
84
+ }
85
+
86
+ const binSet = [];
87
+ const binTarg = binTarget({ path, top });
88
+ if (pkg.bin) {
89
+ const binKeys =
90
+ typeof pkg.bin === "string"
91
+ ? [pkg.name ? basename(pkg.name) : basename(path)]
92
+ : Object.keys(pkg.bin);
93
+
94
+ for (const bin of binKeys) {
95
+ const b = resolve(binTarg, bin);
96
+ binSet.push(b);
97
+ if (isWindows) {
98
+ binSet.push(`${b}.cmd`);
99
+ binSet.push(`${b}.ps1`);
100
+ }
101
+ }
102
+ }
103
+
104
+ const manTarg = manTarget({ path, top });
105
+ const manSet = [];
106
+ if (manTarg && pkg.man && Array.isArray(pkg.man) && pkg.man.length) {
107
+ for (const man of pkg.man) {
108
+ if (!/.\.[0-9]+(\.gz)?$/.test(man)) {
109
+ return binSet;
110
+ }
111
+
112
+ const section = extname(basename(man, ".gz")).slice(1);
113
+ const base = basename(man);
114
+
115
+ manSet.push(resolve(manTarg, `man${section}`, base));
116
+ }
117
+ }
118
+
119
+ return manSet.length ? [...binSet, ...manSet] : binSet;
120
+ }
@@ -0,0 +1,130 @@
1
+ // Dep flag (dev, peer, etc.) calculation requires default or reset flags.
2
+ // Flags are true by default and are unset to false as we walk deps.
3
+ // We iterate outward edges looking for dep flags that can
4
+ // be unset based on the current nodes flags and edge type.
5
+ // Examples:
6
+ // - a non-optional node with a non-optional edge out, the edge node should not be optional
7
+ // - a non-peer node with a non-peer edge out, the edge node should not be peer
8
+ // If a node is changed, we add to the queue and continue until no more changes.
9
+ // Flags that remain after all this unsetting should be valid.
10
+ // Examples:
11
+ // - a node still flagged optional must only be reachable via optional edges
12
+ // - a node still flagged peer must only be reachable via peer edges
13
+ const calcDepFlags = (tree, resetRoot = true) => {
14
+ if (resetRoot) {
15
+ tree.unsetDepFlags();
16
+ }
17
+
18
+ const seen = new Set();
19
+ const queue = [tree];
20
+
21
+ let node;
22
+ while ((node = queue.pop())) {
23
+ seen.add(node);
24
+
25
+ // Unset extraneous from all parents to avoid removal of children.
26
+ if (!node.extraneous) {
27
+ for (let n = node.resolveParent; n?.extraneous; n = n.resolveParent) {
28
+ n.extraneous = false;
29
+ }
30
+ }
31
+
32
+ // for links, map their hierarchy appropriately
33
+ if (node.isLink) {
34
+ // node.target can be null, we check to ensure it's not null before proceeding
35
+ if (node.target == null) {
36
+ continue;
37
+ }
38
+ // Only unset flags, matching the edge walk below, so multiple links to one target can't clobber a correct value.
39
+ let changed = false;
40
+ if (node.target.dev && !node.dev) {
41
+ node.target.dev = false;
42
+ changed = true;
43
+ }
44
+ if (node.target.optional && !node.optional) {
45
+ node.target.optional = false;
46
+ changed = true;
47
+ }
48
+ if (node.target.devOptional && !node.devOptional) {
49
+ node.target.devOptional = false;
50
+ changed = true;
51
+ }
52
+ if (node.target.peer && !node.peer) {
53
+ node.target.peer = false;
54
+ changed = true;
55
+ }
56
+ if (node.target.extraneous && !node.extraneous) {
57
+ node.target.extraneous = false;
58
+ changed = true;
59
+ }
60
+ // queue target on first visit so its deps are walked
61
+ if (changed || !seen.has(node.target)) {
62
+ queue.push(node.target);
63
+ }
64
+ continue;
65
+ }
66
+
67
+ for (const { peer, optional, dev, to } of node.edgesOut.values()) {
68
+ // if the dep is missing, then its flags are already maximally unset
69
+ if (!to) {
70
+ continue;
71
+ }
72
+
73
+ let changed = false;
74
+
75
+ // only optional peer dependencies should stay extraneous
76
+ if (to.extraneous && !node.extraneous && !(peer && optional)) {
77
+ to.extraneous = false;
78
+ changed = true;
79
+ }
80
+
81
+ if (to.dev && !node.dev && !dev) {
82
+ to.dev = false;
83
+ changed = true;
84
+ }
85
+
86
+ if (to.optional && !node.optional && !optional) {
87
+ to.optional = false;
88
+ changed = true;
89
+ }
90
+
91
+ // devOptional is the *overlap* of the dev and optional tree.
92
+ // A node may be depended on by separate dev and optional nodes.
93
+ // It SHOULD NOT be removed when pruning dev OR optional.
94
+ // It SHOULD be removed when pruning dev AND optional.
95
+ // We only unset here if a node is not dev AND not optional because
96
+ // if we did unset, it would prevent any overlap deeper in the tree.
97
+ // We correct this later by removing if dev OR optional is set.
98
+ if (
99
+ to.devOptional &&
100
+ !node.devOptional &&
101
+ !node.dev &&
102
+ !node.optional &&
103
+ !dev &&
104
+ !optional
105
+ ) {
106
+ to.devOptional = false;
107
+ changed = true;
108
+ }
109
+
110
+ if (to.peer && !node.peer && !peer) {
111
+ to.peer = false;
112
+ changed = true;
113
+ }
114
+
115
+ if (changed) {
116
+ queue.push(to);
117
+ }
118
+ }
119
+ }
120
+
121
+ // Remove incorrect devOptional flags now that we have walked all deps.
122
+ seen.delete(tree);
123
+ for (const node of seen.values()) {
124
+ if (node.devOptional && (node.dev || node.optional)) {
125
+ node.devOptional = false;
126
+ }
127
+ }
128
+ };
129
+
130
+ export default calcDepFlags;
@@ -0,0 +1,51 @@
1
+ // package children are represented with a Map object, but many file systems
2
+ // are case-insensitive and unicode-normalizing, so we need to treat
3
+ // node.children.get('FOO') and node.children.get('foo') as the same thing.
4
+
5
+ export default class CIMap extends Map {
6
+ #keys = new Map();
7
+
8
+ constructor(items = []) {
9
+ super();
10
+ for (const [key, val] of items) {
11
+ this.set(key, val);
12
+ }
13
+ }
14
+
15
+ #normKey(key) {
16
+ if (typeof key !== "string") {
17
+ return key;
18
+ }
19
+ return key.normalize("NFKD").toLowerCase();
20
+ }
21
+
22
+ get(key) {
23
+ const normKey = this.#normKey(key);
24
+ return this.#keys.has(normKey)
25
+ ? super.get(this.#keys.get(normKey))
26
+ : undefined;
27
+ }
28
+
29
+ set(key, val) {
30
+ const normKey = this.#normKey(key);
31
+ if (this.#keys.has(normKey)) {
32
+ super.delete(this.#keys.get(normKey));
33
+ }
34
+ this.#keys.set(normKey, key);
35
+ return super.set(key, val);
36
+ }
37
+
38
+ delete(key) {
39
+ const normKey = this.#normKey(key);
40
+ if (this.#keys.has(normKey)) {
41
+ const prevKey = this.#keys.get(normKey);
42
+ this.#keys.delete(normKey);
43
+ return super.delete(prevKey);
44
+ }
45
+ }
46
+
47
+ has(key) {
48
+ const normKey = this.#normKey(key);
49
+ return this.#keys.has(normKey) && super.has(this.#keys.get(normKey));
50
+ }
51
+ }
@@ -0,0 +1,42 @@
1
+ import npa from "npm-package-arg";
2
+
3
+ import relpath from "./relpath.js";
4
+
5
+ // take a path and a resolved value, and turn it into a resolution from
6
+ // the given new path. This is used with converting a package.json's
7
+ // relative file: path into one suitable for a lockfile, or between
8
+ // lockfiles, and for converting hosted git repos to a consistent url type.
9
+ const consistentResolve = (resolved, fromPath, toPath, relPaths = false) => {
10
+ if (!resolved) {
11
+ return null;
12
+ }
13
+
14
+ try {
15
+ const hostedOpt = { noCommittish: false };
16
+ const { fetchSpec, saveSpec, type, hosted, rawSpec, raw } = npa(
17
+ resolved,
18
+ fromPath,
19
+ );
20
+ if (type === "file" || type === "directory") {
21
+ if (relPaths && toPath) {
22
+ return `file:${relpath(toPath, fetchSpec)}`;
23
+ }
24
+ return `file:${fetchSpec}`;
25
+ }
26
+ if (hosted) {
27
+ return `git+${hosted.auth || hosted.default === "https" ? hosted.https(hostedOpt) : hosted.sshurl(hostedOpt)}`;
28
+ }
29
+ if (type === "git") {
30
+ return saveSpec;
31
+ }
32
+ if (rawSpec === "*") {
33
+ return raw;
34
+ }
35
+ return rawSpec;
36
+ } catch (_) {
37
+ // whatever we passed in was not acceptable to npa.
38
+ // leave it 100% untouched.
39
+ return resolved;
40
+ }
41
+ };
42
+ export default consistentResolve;
@@ -0,0 +1,50 @@
1
+ // certain assertions we should do only when testing arborist itself, because
2
+ // they are too expensive or aggressive and would break user programs if we
3
+ // miss a situation where they are actually valid.
4
+ //
5
+ // call like this:
6
+ //
7
+ // /* istanbul ignore next - debug check */
8
+ // debug(() => {
9
+ // if (someExpensiveCheck)
10
+ // throw new Error('expensive check should have returned false')
11
+ // })
12
+ // run in debug mode if explicitly requested, running arborist tests,
13
+ // or working in the arborist project directory.
14
+ import { dirname, resolve } from "node:path";
15
+ import { fileURLToPath } from "node:url";
16
+ import { format } from "node:util";
17
+
18
+ const __dirname = dirname(fileURLToPath(import.meta.url));
19
+
20
+ const debug =
21
+ process.env.ARBORIST_DEBUG !== "0" &&
22
+ (process.env.ARBORIST_DEBUG === "1" ||
23
+ /\barborist\b/.test(process.env.NODE_DEBUG || "") ||
24
+ (process.env.npm_package_name === "@npmcli/arborist" &&
25
+ ["test", "snap"].includes(process.env.npm_lifecycle_event)) ||
26
+ process.cwd() === resolve(__dirname, ".."));
27
+
28
+ const debugFunction = debug
29
+ ? (fn) => fn()
30
+ : () => {
31
+ // ignore
32
+ };
33
+
34
+ const red = process.stderr.isTTY ? (msg) => `\x1B[31m${msg}\x1B[39m` : (m) => m;
35
+
36
+ debugFunction.log = (...msg) =>
37
+ debugFunction(() => {
38
+ const prefix = `\n${process.pid} ${red(format(msg.shift()))} `;
39
+ msg = (
40
+ prefix +
41
+ format(...msg)
42
+ .trim()
43
+ .split("\n")
44
+ .join(prefix)
45
+ ).trim();
46
+ /* eslint-disable-next-line no-console */
47
+ console.error(msg);
48
+ });
49
+
50
+ export default debugFunction;