@cdxgen/cdxgen 13.3.0 → 13.5.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.
- package/README.md +12 -9
- package/bin/cdxgen-secure.js +15 -0
- package/bin/cdxgen.js +115 -31
- package/bin/evinse.js +23 -1
- package/bin/hbom.js +15 -7
- package/bin/repl.js +115 -0
- package/bin/sign.js +45 -15
- package/bin/tracebom.js +5 -1
- package/bin/validate.js +84 -18
- package/bin/verify.js +155 -86
- package/data/cbomosdb-queries.json +13 -1
- package/data/component-tags.json +8 -0
- package/data/helpers/init.gradle +46 -21
- package/data/queries-darwin.json +25 -1
- package/data/queries-win.json +19 -1
- package/data/queries.json +41 -0
- package/data/remediations.json +344 -1
- package/data/rules/cbom-security.yaml +235 -4
- package/data/rules/dependency-sources.yaml +67 -0
- package/data/rules/go-binaries.yaml +46 -0
- package/data/rules/golem-go.yaml +80 -0
- package/data/rules/hbom-compliance.yaml +40 -22
- package/data/rules/hbom-performance.yaml +7 -1
- package/data/rules/host-topology.yaml +1 -1
- package/data/rules/obom-runtime.yaml +31 -2
- package/data/rules/php-runtime.yaml +143 -0
- package/data/rules/scala-evidence.yaml +115 -0
- package/lib/audit/index.js +52 -6
- package/lib/cli/bomAssembly.js +28 -3
- package/lib/cli/cliOptions.js +110 -3
- package/lib/cli/index.js +186 -58
- package/lib/cli/jsBom.js +50 -29
- package/lib/cli/jvmBom.js +779 -146
- package/lib/cli/managedBom.js +1021 -261
- package/lib/cli/nativeBom.js +364 -58
- package/lib/core/activity.js +12 -0
- package/lib/core/env.js +47 -17
- package/lib/core/fs.js +31 -21
- package/lib/core/httpClient.js +233 -69
- package/lib/core/pluginRun.js +184 -0
- package/lib/core/processTree.js +100 -0
- package/lib/core/projectConfig.js +1 -0
- package/lib/core/projectTooling.js +97 -0
- package/lib/core/propertySanitizer.js +72 -0
- package/lib/core/runState.js +39 -0
- package/lib/core/toml.js +72 -0
- package/lib/ecosystems/asarutils.js +4 -2
- package/lib/ecosystems/bunutils.js +5 -7
- package/lib/ecosystems/cargoCache.js +231 -8
- package/lib/ecosystems/cmakeResolver.js +10 -21
- package/lib/ecosystems/cppBuildContext.js +631 -0
- package/lib/ecosystems/cppEvidence.js +337 -22
- package/lib/ecosystems/cppIncludeResolver.js +294 -0
- package/lib/ecosystems/denoutils.js +93 -66
- package/lib/ecosystems/ecosystems.js +1967 -788
- package/lib/ecosystems/golem.js +578 -18
- package/lib/ecosystems/gradleutils.js +340 -46
- package/lib/ecosystems/jsEvidence.js +85 -24
- package/lib/ecosystems/kosi.js +21 -4
- package/lib/ecosystems/npmutils.js +64 -0
- package/lib/ecosystems/parsers-dotnet.js +668 -153
- package/lib/ecosystems/parsers-elm.js +46 -28
- package/lib/ecosystems/parsers-gleam.js +3 -4
- package/lib/ecosystems/parsers-go.js +1283 -297
- package/lib/ecosystems/parsers-js.js +92 -26
- package/lib/ecosystems/parsers-julia.js +2 -3
- package/lib/ecosystems/parsers-jvm.js +463 -29
- package/lib/ecosystems/parsers-misc.js +405 -93
- package/lib/ecosystems/parsers-python.js +152 -20
- package/lib/ecosystems/parsers-rust.js +4 -4
- package/lib/ecosystems/parsers-terraform.js +1573 -19
- package/lib/ecosystems/pythonutils.js +102 -6
- package/lib/ecosystems/remote/huggingface.js +3 -0
- package/lib/ecosystems/rubyutils.js +73 -20
- package/lib/ecosystems/rusi.js +32 -9
- package/lib/ecosystems/sbtutils.js +243 -187
- package/lib/ecosystems/scalacliutils.js +343 -0
- package/lib/ecosystems/scalasem.js +2620 -0
- package/lib/ecosystems/terraformRegistry.js +288 -0
- package/lib/ecosystems/utils.js +2 -0
- package/lib/ecosystems/vendoredCode.js +156 -0
- package/lib/evinser/evinser.js +695 -78
- package/lib/evinser/swiftsem.js +68 -5
- package/lib/helpers/agenticToolutils.js +2 -2
- package/lib/helpers/bomSigner.js +576 -128
- package/lib/inventory/agentSkillSpec.js +17 -0
- package/lib/inventory/aiCollector.js +4 -1
- package/lib/inventory/analyzer.js +110 -127
- package/lib/inventory/apkInstalledDb.js +243 -0
- package/lib/inventory/atomUtils.js +204 -48
- package/lib/inventory/auditCategories.js +10 -3
- package/lib/inventory/buildToolRateLimit.js +144 -0
- package/lib/inventory/cacheCommands.js +2 -1
- package/lib/inventory/cacheDir.js +52 -9
- package/lib/inventory/certificates.js +2371 -0
- package/lib/inventory/cmakeBuildDirs.js +254 -0
- package/lib/inventory/communityAiConfigParser.js +4 -9
- package/lib/inventory/deps.js +507 -128
- package/lib/inventory/display.js +200 -3
- package/lib/inventory/dosai.js +747 -101
- package/lib/inventory/dosaiParsers.js +310 -15
- package/lib/inventory/dynamic.js +96 -8
- package/lib/inventory/envcontext.js +168 -5
- package/lib/inventory/evidenceUtils.js +590 -132
- package/lib/inventory/fetchBatch.js +574 -38
- package/lib/inventory/fetchDiskCache.js +597 -0
- package/lib/inventory/forgeEnricher.js +14 -5
- package/lib/inventory/formulationParsers.js +3 -2
- package/lib/inventory/goBuildInfo.js +140 -0
- package/lib/inventory/hbom.js +67 -7
- package/lib/inventory/hbomAnalysis.js +16 -0
- package/lib/inventory/hostTopology.js +21 -0
- package/lib/inventory/jvmLocalRepos.js +917 -0
- package/lib/inventory/mcpConfigParser.js +2 -3
- package/lib/inventory/osPackagePurl.js +244 -0
- package/lib/inventory/osPackageResolver.js +89 -87
- package/lib/inventory/osinfo.js +79 -31
- package/lib/inventory/osqueryTransform.js +114 -5
- package/lib/inventory/parentSelection.js +146 -0
- package/lib/inventory/phpBuildInfo.js +487 -0
- package/lib/inventory/phpHostProbe.js +641 -0
- package/lib/inventory/rootfsCerts.js +426 -0
- package/lib/inventory/rustFormulationParser.js +3 -4
- package/lib/inventory/scalaCoords.js +153 -0
- package/lib/inventory/source.js +215 -11
- package/lib/inventory/spdx.js +245 -0
- package/lib/inventory/traceRunner.js +93 -8
- package/lib/inventory/tracedCrypto.js +423 -0
- package/lib/managers/binary.js +529 -183
- package/lib/managers/docker.js +199 -44
- package/lib/managers/oci.js +24 -2
- package/lib/parsers/cmakeCache.js +69 -0
- package/lib/parsers/cmakeLists.js +16 -2
- package/lib/parsers/cmakePresets.js +400 -0
- package/lib/parsers/compileCommands.js +557 -0
- package/lib/parsers/email.js +277 -0
- package/lib/parsers/largeJson.js +34 -2
- package/lib/parsers/strictJson.js +322 -0
- package/lib/parsers/terraformConfig.js +1073 -0
- package/lib/parsers/terraformSource.js +652 -0
- package/lib/server/server.js +209 -1
- package/lib/stages/postgen/annotator.js +17 -1
- package/lib/stages/postgen/introspection/markers.js +1 -1
- package/lib/stages/postgen/introspection/reflect.js +4 -1
- package/lib/stages/postgen/postgen.js +20 -6
- package/lib/stages/postgen/ruleEngine.js +58 -1
- package/lib/stages/postgen/specVersionCompat.js +62 -0
- package/lib/stages/pregen/pregen.js +117 -5
- package/lib/validator/bomValidator.js +26 -5
- package/lib/validator/generated/runtime.mjs +13 -0
- package/lib/validator/generated/validate-1.6.mjs +26 -7
- package/lib/validator/generated/validate-1.7.mjs +31 -12
- package/lib/validator/generated/validate-2.0.mjs +30 -11
- package/lib/validator/index.js +25 -10
- package/lib/validator/reporters/json.js +1 -0
- package/package.json +23 -23
- package/types/bin/cdxgen-secure.d.ts +3 -0
- package/types/bin/cdxgen-secure.d.ts.map +1 -0
- package/types/bin/repl.d.ts.map +1 -1
- package/types/lib/audit/index.d.ts.map +1 -1
- package/types/lib/cli/bomAssembly.d.ts +9 -2
- package/types/lib/cli/bomAssembly.d.ts.map +1 -1
- package/types/lib/cli/cliOptions.d.ts +43 -0
- package/types/lib/cli/cliOptions.d.ts.map +1 -1
- package/types/lib/cli/index.d.ts.map +1 -1
- package/types/lib/cli/jsBom.d.ts.map +1 -1
- package/types/lib/cli/jvmBom.d.ts +44 -1
- package/types/lib/cli/jvmBom.d.ts.map +1 -1
- package/types/lib/cli/managedBom.d.ts +7 -4
- package/types/lib/cli/managedBom.d.ts.map +1 -1
- package/types/lib/cli/nativeBom.d.ts +3 -1
- package/types/lib/cli/nativeBom.d.ts.map +1 -1
- package/types/lib/core/activity.d.ts.map +1 -1
- package/types/lib/core/env.d.ts +27 -2
- package/types/lib/core/env.d.ts.map +1 -1
- package/types/lib/core/fs.d.ts.map +1 -1
- package/types/lib/core/httpClient.d.ts +13 -8
- package/types/lib/core/httpClient.d.ts.map +1 -1
- package/types/lib/core/pluginRun.d.ts +97 -0
- package/types/lib/core/pluginRun.d.ts.map +1 -0
- package/types/lib/core/processTree.d.ts +36 -0
- package/types/lib/core/processTree.d.ts.map +1 -0
- package/types/lib/core/projectConfig.d.ts.map +1 -1
- package/types/lib/core/projectTooling.d.ts +41 -0
- package/types/lib/core/projectTooling.d.ts.map +1 -0
- package/types/lib/core/propertySanitizer.d.ts +26 -0
- package/types/lib/core/propertySanitizer.d.ts.map +1 -1
- package/types/lib/core/runState.d.ts +29 -0
- package/types/lib/core/runState.d.ts.map +1 -0
- package/types/lib/core/toml.d.ts +20 -0
- package/types/lib/core/toml.d.ts.map +1 -0
- package/types/lib/ecosystems/asarutils.d.ts.map +1 -1
- package/types/lib/ecosystems/bunutils.d.ts.map +1 -1
- package/types/lib/ecosystems/cargoCache.d.ts +12 -0
- package/types/lib/ecosystems/cargoCache.d.ts.map +1 -1
- package/types/lib/ecosystems/cmakeResolver.d.ts +5 -3
- package/types/lib/ecosystems/cmakeResolver.d.ts.map +1 -1
- package/types/lib/ecosystems/cppBuildContext.d.ts +55 -0
- package/types/lib/ecosystems/cppBuildContext.d.ts.map +1 -0
- package/types/lib/ecosystems/cppEvidence.d.ts +19 -3
- package/types/lib/ecosystems/cppEvidence.d.ts.map +1 -1
- package/types/lib/ecosystems/cppIncludeResolver.d.ts +92 -0
- package/types/lib/ecosystems/cppIncludeResolver.d.ts.map +1 -0
- package/types/lib/ecosystems/denoutils.d.ts +9 -3
- package/types/lib/ecosystems/denoutils.d.ts.map +1 -1
- package/types/lib/ecosystems/ecosystems.d.ts +62 -13
- package/types/lib/ecosystems/ecosystems.d.ts.map +1 -1
- package/types/lib/ecosystems/golem.d.ts +81 -1
- package/types/lib/ecosystems/golem.d.ts.map +1 -1
- package/types/lib/ecosystems/gradleutils.d.ts +59 -7
- package/types/lib/ecosystems/gradleutils.d.ts.map +1 -1
- package/types/lib/ecosystems/jsEvidence.d.ts.map +1 -1
- package/types/lib/ecosystems/kosi.d.ts.map +1 -1
- package/types/lib/ecosystems/npmutils.d.ts +15 -0
- package/types/lib/ecosystems/npmutils.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-dotnet.d.ts +155 -5
- package/types/lib/ecosystems/parsers-dotnet.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-elm.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-gleam.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-go.d.ts +119 -5
- package/types/lib/ecosystems/parsers-go.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-js.d.ts +6 -1
- package/types/lib/ecosystems/parsers-js.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-julia.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-jvm.d.ts +74 -3
- package/types/lib/ecosystems/parsers-jvm.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-misc.d.ts +21 -59
- package/types/lib/ecosystems/parsers-misc.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-python.d.ts +57 -6
- package/types/lib/ecosystems/parsers-python.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-terraform.d.ts +38 -21
- package/types/lib/ecosystems/parsers-terraform.d.ts.map +1 -1
- package/types/lib/ecosystems/pythonutils.d.ts +26 -1
- package/types/lib/ecosystems/pythonutils.d.ts.map +1 -1
- package/types/lib/ecosystems/remote/huggingface.d.ts.map +1 -1
- package/types/lib/ecosystems/rubyutils.d.ts +21 -1
- package/types/lib/ecosystems/rubyutils.d.ts.map +1 -1
- package/types/lib/ecosystems/rusi.d.ts.map +1 -1
- package/types/lib/ecosystems/sbtutils.d.ts +88 -2
- package/types/lib/ecosystems/sbtutils.d.ts.map +1 -1
- package/types/lib/ecosystems/scalacliutils.d.ts +56 -0
- package/types/lib/ecosystems/scalacliutils.d.ts.map +1 -0
- package/types/lib/ecosystems/scalasem.d.ts +311 -0
- package/types/lib/ecosystems/scalasem.d.ts.map +1 -0
- package/types/lib/ecosystems/terraformRegistry.d.ts +9 -0
- package/types/lib/ecosystems/terraformRegistry.d.ts.map +1 -0
- package/types/lib/ecosystems/utils.d.ts +2 -2
- package/types/lib/ecosystems/utils.d.ts.map +1 -1
- package/types/lib/ecosystems/vendoredCode.d.ts +32 -0
- package/types/lib/ecosystems/vendoredCode.d.ts.map +1 -0
- package/types/lib/evinser/evinser.d.ts +100 -8
- package/types/lib/evinser/evinser.d.ts.map +1 -1
- package/types/lib/evinser/swiftsem.d.ts +10 -0
- package/types/lib/evinser/swiftsem.d.ts.map +1 -1
- package/types/lib/helpers/bomSigner.d.ts +80 -4
- package/types/lib/helpers/bomSigner.d.ts.map +1 -1
- package/types/lib/inventory/agentSkillSpec.d.ts +13 -0
- package/types/lib/inventory/agentSkillSpec.d.ts.map +1 -0
- package/types/lib/inventory/aiCollector.d.ts.map +1 -1
- package/types/lib/inventory/analyzer.d.ts.map +1 -1
- package/types/lib/inventory/apkInstalledDb.d.ts +42 -0
- package/types/lib/inventory/apkInstalledDb.d.ts.map +1 -0
- package/types/lib/inventory/atomUtils.d.ts +96 -10
- package/types/lib/inventory/atomUtils.d.ts.map +1 -1
- package/types/lib/inventory/auditCategories.d.ts +3 -0
- package/types/lib/inventory/auditCategories.d.ts.map +1 -1
- package/types/lib/inventory/buildToolRateLimit.d.ts +38 -0
- package/types/lib/inventory/buildToolRateLimit.d.ts.map +1 -0
- package/types/lib/inventory/cacheCommands.d.ts +2 -1
- package/types/lib/inventory/cacheCommands.d.ts.map +1 -1
- package/types/lib/inventory/cacheDir.d.ts +12 -4
- package/types/lib/inventory/cacheDir.d.ts.map +1 -1
- package/types/lib/inventory/certificates.d.ts +205 -0
- package/types/lib/inventory/certificates.d.ts.map +1 -0
- package/types/lib/inventory/cmakeBuildDirs.d.ts +58 -0
- package/types/lib/inventory/cmakeBuildDirs.d.ts.map +1 -0
- package/types/lib/inventory/communityAiConfigParser.d.ts.map +1 -1
- package/types/lib/inventory/deps.d.ts +61 -2
- package/types/lib/inventory/deps.d.ts.map +1 -1
- package/types/lib/inventory/display.d.ts +18 -0
- package/types/lib/inventory/display.d.ts.map +1 -1
- package/types/lib/inventory/dosai.d.ts +202 -14
- package/types/lib/inventory/dosai.d.ts.map +1 -1
- package/types/lib/inventory/dosaiParsers.d.ts +53 -7
- package/types/lib/inventory/dosaiParsers.d.ts.map +1 -1
- package/types/lib/inventory/dynamic.d.ts +16 -1
- package/types/lib/inventory/dynamic.d.ts.map +1 -1
- package/types/lib/inventory/envcontext.d.ts +40 -2
- package/types/lib/inventory/envcontext.d.ts.map +1 -1
- package/types/lib/inventory/evidenceUtils.d.ts +48 -14
- package/types/lib/inventory/evidenceUtils.d.ts.map +1 -1
- package/types/lib/inventory/fetchBatch.d.ts +83 -14
- package/types/lib/inventory/fetchBatch.d.ts.map +1 -1
- package/types/lib/inventory/fetchDiskCache.d.ts +169 -0
- package/types/lib/inventory/fetchDiskCache.d.ts.map +1 -0
- package/types/lib/inventory/forgeEnricher.d.ts.map +1 -1
- package/types/lib/inventory/formulationParsers.d.ts.map +1 -1
- package/types/lib/inventory/goBuildInfo.d.ts +10 -0
- package/types/lib/inventory/goBuildInfo.d.ts.map +1 -0
- package/types/lib/inventory/hbom.d.ts.map +1 -1
- package/types/lib/inventory/hbomAnalysis.d.ts +10 -0
- package/types/lib/inventory/hbomAnalysis.d.ts.map +1 -1
- package/types/lib/inventory/hostTopology.d.ts.map +1 -1
- package/types/lib/inventory/jvmLocalRepos.d.ts +178 -0
- package/types/lib/inventory/jvmLocalRepos.d.ts.map +1 -0
- package/types/lib/inventory/mcpConfigParser.d.ts.map +1 -1
- package/types/lib/inventory/osPackagePurl.d.ts +99 -0
- package/types/lib/inventory/osPackagePurl.d.ts.map +1 -0
- package/types/lib/inventory/osPackageResolver.d.ts +6 -2
- package/types/lib/inventory/osPackageResolver.d.ts.map +1 -1
- package/types/lib/inventory/osinfo.d.ts +31 -6
- package/types/lib/inventory/osinfo.d.ts.map +1 -1
- package/types/lib/inventory/osqueryTransform.d.ts +51 -0
- package/types/lib/inventory/osqueryTransform.d.ts.map +1 -1
- package/types/lib/inventory/parentSelection.d.ts +34 -0
- package/types/lib/inventory/parentSelection.d.ts.map +1 -0
- package/types/lib/inventory/phpBuildInfo.d.ts +142 -0
- package/types/lib/inventory/phpBuildInfo.d.ts.map +1 -0
- package/types/lib/inventory/phpHostProbe.d.ts +35 -0
- package/types/lib/inventory/phpHostProbe.d.ts.map +1 -0
- package/types/lib/inventory/rootfsCerts.d.ts +27 -0
- package/types/lib/inventory/rootfsCerts.d.ts.map +1 -0
- package/types/lib/inventory/rustFormulationParser.d.ts.map +1 -1
- package/types/lib/inventory/scalaCoords.d.ts +80 -0
- package/types/lib/inventory/scalaCoords.d.ts.map +1 -0
- package/types/lib/inventory/source.d.ts +28 -0
- package/types/lib/inventory/source.d.ts.map +1 -1
- package/types/lib/inventory/spdx.d.ts +24 -0
- package/types/lib/inventory/spdx.d.ts.map +1 -1
- package/types/lib/inventory/traceRunner.d.ts +16 -1
- package/types/lib/inventory/traceRunner.d.ts.map +1 -1
- package/types/lib/inventory/tracedCrypto.d.ts +64 -0
- package/types/lib/inventory/tracedCrypto.d.ts.map +1 -0
- package/types/lib/managers/binary.d.ts +10 -0
- package/types/lib/managers/binary.d.ts.map +1 -1
- package/types/lib/managers/docker.d.ts +12 -0
- package/types/lib/managers/docker.d.ts.map +1 -1
- package/types/lib/managers/oci.d.ts +3 -1
- package/types/lib/managers/oci.d.ts.map +1 -1
- package/types/lib/parsers/cmakeCache.d.ts +16 -0
- package/types/lib/parsers/cmakeCache.d.ts.map +1 -1
- package/types/lib/parsers/cmakeLists.d.ts +2 -1
- package/types/lib/parsers/cmakeLists.d.ts.map +1 -1
- package/types/lib/parsers/cmakePresets.d.ts +78 -0
- package/types/lib/parsers/cmakePresets.d.ts.map +1 -0
- package/types/lib/parsers/compileCommands.d.ts +115 -0
- package/types/lib/parsers/compileCommands.d.ts.map +1 -0
- package/types/lib/parsers/email.d.ts +19 -0
- package/types/lib/parsers/email.d.ts.map +1 -0
- package/types/lib/parsers/largeJson.d.ts +13 -0
- package/types/lib/parsers/largeJson.d.ts.map +1 -1
- package/types/lib/parsers/strictJson.d.ts +46 -0
- package/types/lib/parsers/strictJson.d.ts.map +1 -0
- package/types/lib/parsers/terraformConfig.d.ts +70 -0
- package/types/lib/parsers/terraformConfig.d.ts.map +1 -0
- package/types/lib/parsers/terraformSource.d.ts +66 -0
- package/types/lib/parsers/terraformSource.d.ts.map +1 -0
- package/types/lib/server/server.d.ts +8 -0
- package/types/lib/server/server.d.ts.map +1 -1
- package/types/lib/stages/postgen/annotator.d.ts.map +1 -1
- package/types/lib/stages/postgen/introspection/reflect.d.ts.map +1 -1
- package/types/lib/stages/postgen/postgen.d.ts.map +1 -1
- package/types/lib/stages/postgen/ruleEngine.d.ts +7 -4
- package/types/lib/stages/postgen/ruleEngine.d.ts.map +1 -1
- package/types/lib/stages/postgen/specVersionCompat.d.ts.map +1 -1
- package/types/lib/stages/pregen/pregen.d.ts +14 -1
- package/types/lib/stages/pregen/pregen.d.ts.map +1 -1
- package/types/lib/validator/bomValidator.d.ts.map +1 -1
- package/types/lib/validator/index.d.ts +8 -0
- package/types/lib/validator/index.d.ts.map +1 -1
- package/types/lib/validator/reporters/json.d.ts.map +1 -1
- package/lib/third-party/arborist/snapshots/calc-dep-flags.test.cjs +0 -462
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State that lasts for one run.
|
|
3
|
+
*
|
|
4
|
+
* Registry answers, prefetched documents, recorded misses and local cache
|
|
5
|
+
* lookups are kept in module state, so that a package several lockfiles name
|
|
6
|
+
* costs one lookup. A run is one BOM generation. The CLI exits when it ends, but
|
|
7
|
+
* a long-lived process such as the server performs many, and nothing a run
|
|
8
|
+
* remembered should outlive it: the registries publish new releases, builds
|
|
9
|
+
* download new artifacts, and the memory belongs to the next scan.
|
|
10
|
+
*
|
|
11
|
+
* Every module that keeps such state registers a reset when it loads. The
|
|
12
|
+
* server calls {@link resetRunState} between scans. A module that has not
|
|
13
|
+
* loaded yet holds nothing to reset.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Register the function that empties a module's per-run state.
|
|
17
|
+
*
|
|
18
|
+
* @param {string} name Unique name, normally the module and what it holds
|
|
19
|
+
* @param {() => void} reset Empties that state
|
|
20
|
+
* @returns {void}
|
|
21
|
+
*/
|
|
22
|
+
export declare function registerRunReset(name: string, reset: () => void): void;
|
|
23
|
+
/**
|
|
24
|
+
* Empty the per-run state of every module that registered one.
|
|
25
|
+
*
|
|
26
|
+
* @returns {void}
|
|
27
|
+
*/
|
|
28
|
+
export declare function resetRunState(): void;
|
|
29
|
+
//# sourceMappingURL=runState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runState.d.ts","sourceRoot":"","sources":["../../../lib/core/runState.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAJ1B,MAI0B,EAAE,KAAK,EAHjC,MAAM,IAG2B,GAF/B,IAAI,CAIhB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAFhB,IAAI,CAMhB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TOML parsing with stable, ordinary objects.
|
|
3
|
+
*
|
|
4
|
+
* smol-toml 1.9 began returning tables and inline tables with a `null`
|
|
5
|
+
* prototype so that a hostile `__proto__` key in a manifest cannot pollute
|
|
6
|
+
* `Object.prototype`. The SBOM data itself is unaffected, but cdxgen hands
|
|
7
|
+
* parsed manifests straight to callers (and `assert.deepStrictEqual` in the
|
|
8
|
+
* test suite), which compare by prototype and would see every table as a
|
|
9
|
+
* different kind of value. Re-wrapping the parse result with the standard
|
|
10
|
+
* prototype keeps the pre-1.9 contract: plain objects all the way down,
|
|
11
|
+
* `__proto__` keys included as ordinary own properties.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Parse a TOML document into plain objects.
|
|
15
|
+
*
|
|
16
|
+
* @param {string} text TOML source
|
|
17
|
+
* @returns {Object} parsed document whose tables use `Object.prototype`
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseToml(text: string): Object;
|
|
20
|
+
//# sourceMappingURL=toml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toml.d.ts","sourceRoot":"","sources":["../../../lib/core/toml.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAoDH;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAHnB,MAGmB,GAFjB,MAAM,CAIlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asarutils.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/asarutils.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"asarutils.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/asarutils.js"],"names":[],"mappings":"AA8PA;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAHlC,MAGkC,GAFhC,OAAO,CA6BnB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAJ1C,MAI0C,GAHxC,MAAM,CAwDlB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAJhC,MAIgC,GAH9B,MAAM,CA2ClB;AAgYD;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EANE,MAAM,QAMR,EACP,YAAY,EANH,MAMG,EACZ,WAAW,EANF,MAME,GALA,MAAM,QAAM,CAqDxB;AA0YD;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EARvC,MAQuC,EAAE,OAAO,AAPxD,CAKA,EAJA;IAAyB,eAAe,AAAxC,CAEA,EAFQ,MAAM,CAEd;IAAyB,WAAW,AAApC,CAEA,EAFQ,MAAM,CAEd;CAE6D,GAFnD,OAAO,CAAC,MAAM,CAAC,CAyM3B;AAuGD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAH3C,MAG2C,GAFzC,OAAO,CAAC,MAAM,GAAC,SAAS,CAAC,CA+BrC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAF/B,MAE+B,QAYzC;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,eAAe,EALN,MAKM,EACf,mBAAmB,EALV,OAKU,GAJR,KAAK,CAAC,MAAM,CAAC,CA0BzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bunutils.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/bunutils.js"],"names":[],"mappings":"AAgCA;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EALlC,MAKkC,GAJhC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAwB1D;AA2ED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,YAAY,CAAC,WAAW,EALnC,MAKmC,EAAE,OAAO,AAJpD,CACA,EADQ,MAIiD,GAH/C,OAAO,CAAC;IAAC,OAAO,QAAQ;IAAC,gBAAgB,QAAO;CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"bunutils.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/bunutils.js"],"names":[],"mappings":"AAgCA;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EALlC,MAKkC,GAJhC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAwB1D;AA2ED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,YAAY,CAAC,WAAW,EALnC,MAKmC,EAAE,OAAO,AAJpD,CACA,EADQ,MAIiD,GAH/C,OAAO,CAAC;IAAC,OAAO,QAAQ;IAAC,gBAAgB,QAAO;CAAC,CAAC,CAwZ9D"}
|
|
@@ -72,4 +72,16 @@ export declare function getCargoRegistryDir(): string;
|
|
|
72
72
|
* local source has this crate.
|
|
73
73
|
*/
|
|
74
74
|
export declare function readCargoCacheMetadata(name: string, version: string): CargoCacheMetadata | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* The manifest values of a `.crate` archive, read without extracting it.
|
|
77
|
+
*
|
|
78
|
+
* @param {string} crateFile Path to the `.crate` archive
|
|
79
|
+
* @param {string} name Crate name, for the archive's inner directory
|
|
80
|
+
* @param {string} version Crate version
|
|
81
|
+
* @returns {Promise<{values: Object, source: string}|undefined>}
|
|
82
|
+
*/
|
|
83
|
+
export declare function readCrateArchiveValues(crateFile: string, name: string, version: string): Promise<{
|
|
84
|
+
values: Object;
|
|
85
|
+
source: string;
|
|
86
|
+
} | undefined>;
|
|
75
87
|
//# sourceMappingURL=cargoCache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cargoCache.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/cargoCache.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cargoCache.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/cargoCache.js"],"names":[],"mappings":"AAyCG,YAAkB,kBAAkB,GACpC;;;;IAAoB,WAAW,AAA/B,CACA,EADW,MAAM,CACjB;;;;IAAoB,OAAO,AAA3B,CACA,EADW,MAAM,CACjB;;;;IAAoB,UAAU,AAA9B,CACA,EADW,MAAM,CACjB;;;;IAAoB,QAAQ,AAA5B,CACA,EADW,MAAM,CACjB;;;;IAAoB,WAAW,AAA/B,CACA,EADW,MAAM,CACjB;;;;IAAoB,QAAQ,AAA5B,CACA,EADW,MAAM,CACjB;;;;IAAoB,QAAQ,AAA5B,CACA,EADW,MAAM,CACjB;;;;IAAqB,MAAM,AAA3B,CACA,EADW,OAAO,CAClB;;;;IAAoB,WAAW,AAA/B,CACA,EADW,MAAM,CACjB;;;;IAAoB,aAAa,AAAjC,CACA,EADW,MAAM,CACjB;;;;IAAqB,OAAO,EAAjB,MAAM,EAAE,CACrB;CAAA,CAAA;AAUD;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAFvB,IAAI,CAKhB;AAID;;;;GAIG;AACH,wBAAgB,yBAAyB,IAF5B,OAAO,CAOnB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAFtB,MAAM,CAOlB;AAmCD;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EALtC,MAKsC,EAAE,OAAO,EAJ/C,MAI+C,GAH7C,kBAAkB,GAAC,SAAS,CAmCxC;AAoGD;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,SAAS,EAL3C,MAK2C,EAAE,IAAI,EAJjD,MAIiD,EAAE,OAAO,EAH1D,MAG0D,GAFxD,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,GAAC,SAAS,CAAC,CA0C/D"}
|
|
@@ -22,9 +22,11 @@ declare function toRepoRelative(absPath: string, scanRoot: string): string | nul
|
|
|
22
22
|
/**
|
|
23
23
|
* Detect the build directory that holds a `CMakeCache.txt`.
|
|
24
24
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
25
|
+
* An explicit `--cmake-cache <path>` option (passed via `options.cmakeCache`)
|
|
26
|
+
* takes precedence and skips autodetection. Otherwise the project's build
|
|
27
|
+
* directories are searched in order: those its CMake presets configure, then
|
|
28
|
+
* the conventional `build`, `out`, `builddir` and `cmake-build-` directories
|
|
29
|
+
* (see `cmakeBuildDirCandidates`).
|
|
28
30
|
*
|
|
29
31
|
* @param {string} path Project scan root
|
|
30
32
|
* @param {Object} options CLI options; `options.cmakeCache` is an explicit override
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmakeResolver.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/cmakeResolver.js"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"cmakeResolver.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/cmakeResolver.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How a C/C++ project is built: its CMake configure presets, the compilers
|
|
3
|
+
* its compilation database or configured build tree names, the
|
|
4
|
+
* security-hardening options it is compiled and linked with, and which of the
|
|
5
|
+
* headers it includes are its own.
|
|
6
|
+
*
|
|
7
|
+
* The presets and compilers become formulation components, the hardening
|
|
8
|
+
* options properties of the project component, and the project's own include
|
|
9
|
+
* directories let the include analysis tell first-party headers from
|
|
10
|
+
* dependencies.
|
|
11
|
+
*
|
|
12
|
+
* Layer 3: this module reads the build tree and may run a compiler (only
|
|
13
|
+
* `--version`, only outside secure mode, only a GCC, Clang, MSVC, Intel,
|
|
14
|
+
* NVIDIA or EDG driver found on the PATH or named by an absolute path outside
|
|
15
|
+
* the project).
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* The empty build context, for scans that are not of a source tree.
|
|
19
|
+
*
|
|
20
|
+
* @returns {Object}
|
|
21
|
+
*/
|
|
22
|
+
export declare function emptyCppBuildContext(): Object;
|
|
23
|
+
/**
|
|
24
|
+
* The executable a driver names, when it may be run: an absolute path, or a
|
|
25
|
+
* command found on the PATH, that is a file outside the project. A relative
|
|
26
|
+
* path, or anything inside the project tree, is never run, since a
|
|
27
|
+
* compilation database can come with the code it describes.
|
|
28
|
+
*/
|
|
29
|
+
export declare function trustedCompilerPath(driver: any, root: any): any;
|
|
30
|
+
/**
|
|
31
|
+
* Resolve the build context of a C/C++ project.
|
|
32
|
+
*
|
|
33
|
+
* @param {string} path Project scan root
|
|
34
|
+
* @param {Object} options CLI options
|
|
35
|
+
* @param {Object} [cmakeContext] The CMake context (`boundaries` lists the
|
|
36
|
+
* source directories of fetched and submodule dependencies)
|
|
37
|
+
* @param {string[]} [vendoredDirs] Directories of code the project carries
|
|
38
|
+
* under another license; their headers are not the project's own
|
|
39
|
+
* @returns {{
|
|
40
|
+
* formulationComponents: Object[],
|
|
41
|
+
* parentProperties: Object[],
|
|
42
|
+
* firstPartyIncludeDirs: string[],
|
|
43
|
+
* compileDatabase: string|undefined,
|
|
44
|
+
* isFirstPartyHeader: function(string): boolean,
|
|
45
|
+
* }}
|
|
46
|
+
*/
|
|
47
|
+
export declare function resolveCppBuildContext(path: string, options?: Object, cmakeContext?: Object, vendoredDirs?: string[]): {
|
|
48
|
+
formulationComponents: Object[];
|
|
49
|
+
parentProperties: Object[];
|
|
50
|
+
firstPartyIncludeDirs: string[];
|
|
51
|
+
compileDatabase: string | undefined;
|
|
52
|
+
isFirstPartyHeader: Function;
|
|
53
|
+
(string: any): boolean;
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=cppBuildContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cppBuildContext.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/cppBuildContext.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAqEH;;;;GAIG;AACH,wBAAgB,oBAAoB,IAFvB,MAAM,CAIlB;AAgKD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,KAAA,EAAE,IAAI,KAAA,OA0C/C;AA0KD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAfK,MAeL,EACJ,OAAO,GAfE,MAeG,EACZ,YAAY,AAfX,CAEA,EAFQ,MAee,EACxB,YAAY,AAdX,CAEA,EAFQ,MAAM,EAcE,GAZN;IACR,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,eAAe,EAAE,MAAM,GAAC,SAAS,CAAC;IAClC,kBAAkB,WAAU;IAAA,CAAC,MAAM,KAAA,GAAG,OAAO,CAAC;CAC/C,CAkJH"}
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a directory holds C or C++ sources for atom to parse.
|
|
3
|
+
*
|
|
4
|
+
* The search skips the directories the manifest searches skip, such as
|
|
5
|
+
* node_modules and dot directories, and honours the exclude patterns, so the
|
|
6
|
+
* sources of a native npm addon do not count.
|
|
7
|
+
*
|
|
8
|
+
* @param {string} src directory
|
|
9
|
+
* @param {Object} options CLI options
|
|
10
|
+
* @returns {boolean} true when the directory holds at least one C or C++ file
|
|
11
|
+
*/
|
|
12
|
+
export declare function hasCppSources(src: string, options?: Object): boolean;
|
|
1
13
|
/**
|
|
2
14
|
* Method to find c/c++ modules by collecting usages with atom
|
|
3
15
|
*
|
|
@@ -5,8 +17,12 @@
|
|
|
5
17
|
* @param {object} options Command line options
|
|
6
18
|
* @param {array} osPkgsList Array of OS pacakges represented as components
|
|
7
19
|
* @param {array} epkgList Existing packages list
|
|
20
|
+
* @param {function(string): boolean} [isFirstPartyHeader] Whether an
|
|
21
|
+
* included header is the project's own (found under the project root or
|
|
22
|
+
* one of its own include directories, outside any dependency's sources);
|
|
23
|
+
* such a header is not a component
|
|
8
24
|
*/
|
|
9
|
-
export declare function getCppModules(src: string, options: object, osPkgsList: array, epkgList: array): {
|
|
25
|
+
export declare function getCppModules(src: string, options: object, osPkgsList: array, epkgList: array, isFirstPartyHeader?: Function): {
|
|
10
26
|
parentComponent: Object | {
|
|
11
27
|
name: any;
|
|
12
28
|
version: any;
|
|
@@ -17,16 +33,16 @@ export declare function getCppModules(src: string, options: object, osPkgsList:
|
|
|
17
33
|
"bom-ref": string;
|
|
18
34
|
group?: undefined;
|
|
19
35
|
} | {
|
|
20
|
-
purl?: undefined;
|
|
21
36
|
description?: undefined;
|
|
22
37
|
license?: undefined;
|
|
38
|
+
purl?: undefined;
|
|
23
39
|
"bom-ref"?: undefined;
|
|
24
40
|
group: any;
|
|
25
41
|
name: any;
|
|
26
42
|
version: string;
|
|
27
43
|
type: string;
|
|
28
44
|
} | undefined;
|
|
29
|
-
pkgList:
|
|
45
|
+
pkgList: any[];
|
|
30
46
|
dependenciesList: {
|
|
31
47
|
ref: any;
|
|
32
48
|
dependsOn: any[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cppEvidence.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/cppEvidence.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cppEvidence.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/cppEvidence.js"],"names":[],"mappings":"AA0MA;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAJtB,MAIsB,EAAE,OAAO,GAH/B,MAGoC,GAFlC,OAAO,CAOnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAVM,MAUN,EACH,OAAO,EAVE,MAUF,EACP,UAAU,EAVD,KAUC,EACV,QAAQ,EAVC,KAUD,EACR,kBAAkB,WAAY;;;;;;;;;;;;;;;;;;;;;;;;;EAqc/B"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which package provides a C/C++ header, from the file the include resolved
|
|
3
|
+
* to. atom 4 and later name that file in each include's usages slice
|
|
4
|
+
* (`resolvedPath`); with it, a header is attributed exactly instead of by its
|
|
5
|
+
* name: to the project itself, to a dependency whose sources CMake fetched or
|
|
6
|
+
* a submodule checked out, to code the project vendors, to a port vcpkg
|
|
7
|
+
* installed, to a package in the Conan cache, or to the operating-system
|
|
8
|
+
* package that owns the file.
|
|
9
|
+
*
|
|
10
|
+
* Layer 3: reads the vcpkg installed tree and the Conan cache, and asks the
|
|
11
|
+
* OS package manager about a file (`dpkg-query -S`, `rpm -qf`, `apk info -W`,
|
|
12
|
+
* or the Homebrew Cellar path).
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* The include slices of an atom C/C++ usages report: for each header as
|
|
16
|
+
* written, the files it resolved to, whether it was written as a system
|
|
17
|
+
* include, and the functions the including files call that it declares.
|
|
18
|
+
* Slices from atom releases that do not name the resolved file contribute no
|
|
19
|
+
* paths and no symbols.
|
|
20
|
+
*
|
|
21
|
+
* @param {Object} sliceData Parsed atom usages report
|
|
22
|
+
* @returns {Map<string, {paths: Set<string>, system: boolean, symbols: Set<string>}>}
|
|
23
|
+
*/
|
|
24
|
+
export declare function parseCIncludeSlices(sliceData: Object): Map<string, {
|
|
25
|
+
paths: Set<string>;
|
|
26
|
+
system: boolean;
|
|
27
|
+
symbols: Set<string>;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Index the ports vcpkg installed into the given `vcpkg_installed`
|
|
31
|
+
* directories: every file a port installed, by absolute path. vcpkg lists a
|
|
32
|
+
* port's files in `vcpkg/info/<port>_<version>_<triplet>.list`, one path per
|
|
33
|
+
* line relative to the installed directory.
|
|
34
|
+
*
|
|
35
|
+
* @param {string[]} installedDirs `vcpkg_installed` directories
|
|
36
|
+
* @returns {Map<string, {port: string, version: string, triplet: string}>}
|
|
37
|
+
*/
|
|
38
|
+
export declare function readVcpkgInstalledIndex(installedDirs: string[]): Map<string, {
|
|
39
|
+
port: string;
|
|
40
|
+
version: string;
|
|
41
|
+
triplet: string;
|
|
42
|
+
}>;
|
|
43
|
+
/**
|
|
44
|
+
* The package folders of a Conan 2 cache, from its database
|
|
45
|
+
* (`<home>/p/cache.sqlite3`, table `packages`).
|
|
46
|
+
*
|
|
47
|
+
* @param {string} conanHome Conan 2 home (`CONAN_HOME`, or `~/.conan2`)
|
|
48
|
+
* @returns {Array<{dir: string, name: string, version: string}>}
|
|
49
|
+
*/
|
|
50
|
+
export declare function conan2Packages(conanHome: string): Array<{
|
|
51
|
+
dir: string;
|
|
52
|
+
name: string;
|
|
53
|
+
version: string;
|
|
54
|
+
}>;
|
|
55
|
+
/**
|
|
56
|
+
* The Conan package a file belongs to: in a Conan 1 cache
|
|
57
|
+
* (`<home>/.conan/data/<name>/<version>/<user>/<channel>/package/<id>/...`)
|
|
58
|
+
* from its path, in a Conan 2 cache from the cache's database.
|
|
59
|
+
*
|
|
60
|
+
* @param {string} file Absolute path
|
|
61
|
+
* @param {Object[]} conan2 Conan 2 package folders (see `conan2Packages`)
|
|
62
|
+
* @returns {{name: string, version: string}|undefined}
|
|
63
|
+
*/
|
|
64
|
+
export declare function conanPackageOf(file: string, conan2: Object[]): {
|
|
65
|
+
name: string;
|
|
66
|
+
version: string;
|
|
67
|
+
} | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Build the function that attributes a header from the files it resolved
|
|
70
|
+
* to.
|
|
71
|
+
*
|
|
72
|
+
* @param {Object} context
|
|
73
|
+
* @param {string} context.src Project scan root
|
|
74
|
+
* @param {Object[]} [context.components] Components already known: CMake
|
|
75
|
+
* dependencies (`cdx:cmake:sourceDir`) and vendored code
|
|
76
|
+
* (`cdx:vendored:path`) claim the headers under their directories
|
|
77
|
+
* @param {string[]} [context.buildDirs] Build directories, searched for
|
|
78
|
+
* `vcpkg_installed`
|
|
79
|
+
* @param {function(string): boolean} [context.isFirstPartyHeader] Whether a
|
|
80
|
+
* file is the project's own
|
|
81
|
+
* @returns {function(Iterable<string>): Object|undefined} Given the resolved
|
|
82
|
+
* files, `{kind: "first-party"}`, `{kind: "component", component}`,
|
|
83
|
+
* `{kind: "vcpkg", port, version, triplet}`, `{kind: "conan", name,
|
|
84
|
+
* version}`, `{kind: "os", pkgInfo}`, or `undefined` when no file says.
|
|
85
|
+
* Its `vcpkgPorts()` lists the ports vcpkg installed.
|
|
86
|
+
*/
|
|
87
|
+
export declare function createIncludeAttributor(context: {
|
|
88
|
+
src: string;
|
|
89
|
+
components?: Object[];
|
|
90
|
+
buildDirs?: string[];
|
|
91
|
+
}): Function;
|
|
92
|
+
//# sourceMappingURL=cppIncludeResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cppIncludeResolver.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/cppIncludeResolver.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAYH;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAHlC,MAGkC,GAFhC,GAAG,CAAC,MAAM,EAAE;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAC,CAAC,CA+BpF;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAH1C,MAAM,EAGoC,GAFxC,GAAG,CAAC,MAAM,EAAE;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,CAsCzE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAH7B,MAG6B,GAF3B,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,CAuC/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAJxB,MAIwB,EAAE,MAAM,EAHhC,MAAM,EAG0B,GAF9B;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GAAC,SAAS,CAgBrD;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAd5C;IAAwB,GAAG,EAAnB,MAAM,CACd;IAA2B,UAAU,AAArC,CAGA,EAHQ,MAAM,EAAE,CAGhB;IAA2B,SAAS,AAApC,CAEA,EAFQ,MAAM,EAAE,CAEhB;CAQ4C,YAuF9C"}
|
|
@@ -28,9 +28,15 @@ export declare function findDenoJson(dir: string): string | undefined;
|
|
|
28
28
|
/**
|
|
29
29
|
* Fetch JSR registry metadata for deno/jsr package components.
|
|
30
30
|
*
|
|
31
|
-
* For each component carrying a `cdx:deno:jsrKey` property, fetches the
|
|
32
|
-
* and package endpoints from the JSR API
|
|
33
|
-
*
|
|
31
|
+
* For each component carrying a `cdx:deno:jsrKey` property, fetches the
|
|
32
|
+
* version and package endpoints from the JSR API and fills in license,
|
|
33
|
+
* description, and the GitHub source link. A document is requested only for
|
|
34
|
+
* a component that still misses a field that document supplies: the version
|
|
35
|
+
* document carries the license, the package document the description and the
|
|
36
|
+
* repository link, so whatever the lockfile and the installed-manifest
|
|
37
|
+
* mining filled is never asked for again. Neither document carries
|
|
38
|
+
* provenance, so a provenance fetch, as under --bom-audit, asks for nothing
|
|
39
|
+
* more.
|
|
34
40
|
*
|
|
35
41
|
* @param {Array<object>} pkgList Package components potentially enriched with `cdx:deno:jsrKey`.
|
|
36
42
|
* @returns {Promise<Array<object>>} The enriched package list (same reference as pkgList).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"denoutils.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/denoutils.js"],"names":[],"mappings":"AA8DA;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAHpB,MAGoB,GAFlB,MAAM,CAuDlB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAH/B,MAG+B,GAF7B,MAAM,GAAC,SAAS,CAuB5B;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAHrB,MAGqB,GAFnB,MAAM,GAAC,SAAS,CAY5B;
|
|
1
|
+
{"version":3,"file":"denoutils.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/denoutils.js"],"names":[],"mappings":"AA8DA;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAHpB,MAGoB,GAFlB,MAAM,CAuDlB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAH/B,MAG+B,GAF7B,MAAM,GAAC,SAAS,CAuB5B;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAHrB,MAGqB,GAFnB,MAAM,GAAC,SAAS,CAY5B;AA2TD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAHjC,KAAK,CAAC,MAAM,CAGqB,GAF/B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CA4ElC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EALjC,MAKiC,EAAE,OAAO,AAJlD,CACA,EADQ,MAI+C,GAH7C,OAAO,CAAC;IAAC,OAAO,QAAQ;IAAC,gBAAgB,QAAO;CAAC,CAAC,CAge9D"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export declare let metadata_cache: {};
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* No longer used. Registry answers are kept per ecosystem and for one run; this
|
|
3
|
+
* object stays exported for callers that imported it.
|
|
4
|
+
*
|
|
5
|
+
* @deprecated
|
|
6
6
|
*/
|
|
7
|
-
export declare
|
|
7
|
+
export declare const metadata_cache: {};
|
|
8
8
|
/**
|
|
9
9
|
* Fetches license information for a list of Swift packages by querying the
|
|
10
10
|
* GitHub repository license API for packages hosted on github.com.
|
|
@@ -16,9 +16,27 @@ export declare function getSwiftPackageMetadata(pkgList: Object[]): Promise<Obje
|
|
|
16
16
|
/**
|
|
17
17
|
* Method to retrieve metadata for npm packages by querying npmjs
|
|
18
18
|
*
|
|
19
|
+
* Packages a public registry cannot hold are skipped: the project itself,
|
|
20
|
+
* workspace and link members, file and git sources, and scopes served by
|
|
21
|
+
* another registry. See {@link npmLookupRegistry}. A package whose licence,
|
|
22
|
+
* description and repository the project or lockfile already supplied is left
|
|
23
|
+
* alone as well: the registry answers only what is still missing, and never
|
|
24
|
+
* overwrites a licence that is already set. The registry's licence is read
|
|
25
|
+
* with its legacy `licenses` field, and only a package for which neither the
|
|
26
|
+
* package nor the registry names one falls back to its repository's licence.
|
|
27
|
+
*
|
|
19
28
|
* @param {Array} pkgList Package list
|
|
29
|
+
* @param {string} [registryUrl] Registry to query instead of NPM_URL
|
|
30
|
+
* @param {Object} [options] Options
|
|
31
|
+
* @param {Object} [options.npmrcConfig] Merged .npmrc configuration, used to
|
|
32
|
+
* resolve a scope's own registry
|
|
33
|
+
* @param {boolean} [options.secureMode] Whether secure mode is on. Defaults to
|
|
34
|
+
* the process-wide setting.
|
|
20
35
|
*/
|
|
21
|
-
export declare function getNpmMetadata(pkgList: any[], registryUrl
|
|
36
|
+
export declare function getNpmMetadata(pkgList: any[], registryUrl?: string, options?: {
|
|
37
|
+
npmrcConfig?: Object;
|
|
38
|
+
secureMode?: boolean;
|
|
39
|
+
}): Promise<any[]>;
|
|
22
40
|
/**
|
|
23
41
|
* Method to locate local Gradle, Maven, or Coursier cache files for a given maven coordinate.
|
|
24
42
|
*
|
|
@@ -29,15 +47,25 @@ export declare function getNpmMetadata(pkgList: any[], registryUrl: any): Promis
|
|
|
29
47
|
*/
|
|
30
48
|
export declare function findLocalMvnArtifact(group: string, name: string, version: string): Object | null;
|
|
31
49
|
/**
|
|
32
|
-
* Method to retrieve metadata for maven packages
|
|
50
|
+
* Method to retrieve metadata for maven packages, from the local caches first
|
|
51
|
+
* and from Maven Central only for what remains.
|
|
52
|
+
*
|
|
53
|
+
* Every package is first enriched from data on disk. Only when license
|
|
54
|
+
* fetching is enabled (FETCH_LICENSE) or `force` is set are the packages
|
|
55
|
+
* still without a licence looked up remotely, and then only those a public
|
|
56
|
+
* repository can hold.
|
|
33
57
|
*
|
|
34
58
|
* @param {Array} pkgList Package list
|
|
35
59
|
* @param {Object} jarNSMapping Jar Namespace mapping object
|
|
36
60
|
* @param {Boolean} force Force fetching of license
|
|
61
|
+
* @param {{skipPurls?: Set<string>}} [context] Purls or bom-refs of the
|
|
62
|
+
* project's own modules, which are never looked up remotely.
|
|
37
63
|
*
|
|
38
64
|
* @returns {Array} Updated package list
|
|
39
65
|
*/
|
|
40
|
-
export declare function getMvnMetadata(pkgList: any[], jarNSMapping?: Object, force?: boolean
|
|
66
|
+
export declare function getMvnMetadata(pkgList: any[], jarNSMapping?: Object, force?: boolean, context?: {
|
|
67
|
+
skipPurls?: Set<string>;
|
|
68
|
+
}): any[];
|
|
41
69
|
/**
|
|
42
70
|
* Method to compose URL of pom.xml
|
|
43
71
|
*
|
|
@@ -50,7 +78,10 @@ export declare function getMvnMetadata(pkgList: any[], jarNSMapping?: Object, fo
|
|
|
50
78
|
*/
|
|
51
79
|
export declare function composePomXmlUrl({ urlPrefix, group, name, version }: string): string;
|
|
52
80
|
/**
|
|
53
|
-
* Method to fetch pom.xml data and parse it to JSON
|
|
81
|
+
* Method to fetch pom.xml data and parse it to JSON, merged with its parents.
|
|
82
|
+
*
|
|
83
|
+
* Each level is read from the local caches first. When a parent cannot be
|
|
84
|
+
* found, the child and any nearer parents are still returned.
|
|
54
85
|
*
|
|
55
86
|
* @param {String} urlPrefix
|
|
56
87
|
* @param {String} group
|
|
@@ -61,7 +92,7 @@ export declare function composePomXmlUrl({ urlPrefix, group, name, version }: st
|
|
|
61
92
|
*/
|
|
62
93
|
export declare function fetchPomXmlAsJson({ urlPrefix, group, name, version }: string): Object | undefined;
|
|
63
94
|
/**
|
|
64
|
-
* Method to fetch pom.xml data
|
|
95
|
+
* Method to fetch pom.xml data, from the local caches when present.
|
|
65
96
|
*
|
|
66
97
|
* @param {String} urlPrefix
|
|
67
98
|
* @param {String} group
|
|
@@ -231,8 +262,9 @@ export declare function getGoPkgLicense(repoMetadata: Object): Promise<any>;
|
|
|
231
262
|
*
|
|
232
263
|
* @param {String} group Package group
|
|
233
264
|
* @param {String} name Package name
|
|
265
|
+
* @param {String} [version] Package version, part of the page URL
|
|
234
266
|
*/
|
|
235
|
-
export declare function getGoPkgVCSUrl(group: string, name: string): Promise<any>;
|
|
267
|
+
export declare function getGoPkgVCSUrl(group: string, name: string, version?: string): Promise<any>;
|
|
236
268
|
/**
|
|
237
269
|
* Method to retrieve metadata for rust packages by querying crates
|
|
238
270
|
*
|
|
@@ -243,7 +275,13 @@ export declare function getGoPkgVCSUrl(group: string, name: string): Promise<any
|
|
|
243
275
|
*
|
|
244
276
|
* What it does not hold is publisher identity, so a caller that needs the
|
|
245
277
|
* publisher-drift and release-cadence signals — the predictive audit does —
|
|
246
|
-
* passes `preferLocalCache: false` and takes the slower registry path.
|
|
278
|
+
* passes `preferLocalCache: false` and takes the slower registry path. That is
|
|
279
|
+
* also the only caller that needs the crate's owners, so the `/owners` request
|
|
280
|
+
* is made for it alone.
|
|
281
|
+
*
|
|
282
|
+
* Crates a public registry cannot hold are skipped: the project itself, path
|
|
283
|
+
* and git crates, and crates from an alternate registry. See
|
|
284
|
+
* {@link canCratesIoServe}.
|
|
247
285
|
*
|
|
248
286
|
* @param {Array} pkgList Package list
|
|
249
287
|
* @param {Object} [options] Options
|
|
@@ -256,9 +294,20 @@ export declare function getCratesMetadata(pkgList: any[], options?: {
|
|
|
256
294
|
/**
|
|
257
295
|
* Method to retrieve metadata for dart packages by querying pub.dev
|
|
258
296
|
*
|
|
297
|
+
* A hosted package whose lockfile names another registry is looked up there;
|
|
298
|
+
* the score endpoint that carries the licence tag is pub.dev's, so a private
|
|
299
|
+
* registry is asked only for the package document. In secure mode cdxgen does
|
|
300
|
+
* not contact a registry the scanned project names, so such a package is not
|
|
301
|
+
* looked up at all.
|
|
302
|
+
*
|
|
259
303
|
* @param {Array} pkgList Package list
|
|
304
|
+
* @param {Object} [options] Options
|
|
305
|
+
* @param {boolean} [options.secureMode] Whether secure mode is on. Defaults to
|
|
306
|
+
* the process-wide setting.
|
|
260
307
|
*/
|
|
261
|
-
export declare function getDartMetadata(pkgList: any[]
|
|
308
|
+
export declare function getDartMetadata(pkgList: any[], options?: {
|
|
309
|
+
secureMode?: boolean;
|
|
310
|
+
}): Promise<any[]>;
|
|
262
311
|
/**
|
|
263
312
|
* Normalize a Cargo checksum/integrity string into canonical hex-prefixed form.
|
|
264
313
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecosystems.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/ecosystems.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ecosystems.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/ecosystems.js"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,8 @@ export declare function isGolemGoLanguage(language: string): boolean;
|
|
|
10
10
|
*
|
|
11
11
|
* @param {string} jsonFile Path to the golem JSON report.
|
|
12
12
|
* @returns {object|undefined} Parsed report object, or undefined when the file
|
|
13
|
-
* is missing
|
|
13
|
+
* is missing, cannot be parsed, or holds something other than a JSON object
|
|
14
|
+
* such as `null`.
|
|
14
15
|
*/
|
|
15
16
|
export declare function readGolemJsonFile(jsonFile: string): object | undefined;
|
|
16
17
|
/**
|
|
@@ -57,4 +58,83 @@ export declare function collectGolemEvidence(golemReport?: object, components?:
|
|
|
57
58
|
metadataProperties: Array<object>;
|
|
58
59
|
purlLocationMap: Record<string, any[]>;
|
|
59
60
|
};
|
|
61
|
+
/**
|
|
62
|
+
* Normalise a Go route path to the placeholder spelling OpenAPI — and
|
|
63
|
+
* therefore the rest of the services a BOM carries — uses. gin, echo and
|
|
64
|
+
* fiber write `:id`, gin writes `*filepath`, chi and gorilla/mux write `{id}`
|
|
65
|
+
* or `{id:[0-9]+}`, and Go 1.22's net/http patterns write `{id...}`; all
|
|
66
|
+
* become `{id}`. Braces are matched by depth, so a regular expression with
|
|
67
|
+
* its own braces or slashes (`{code:[0-9]{3}}`, `{rest:[a-z/]+}`) stays one
|
|
68
|
+
* variable. A fiber constraint or optional marker (`:id<int>`, `:name?`) is
|
|
69
|
+
* dropped, and net/http's `{$}` is removed. A `:` or `*` placeholder is only
|
|
70
|
+
* recognised at the start of a segment — or, for fiber, after a `-` or `.` —
|
|
71
|
+
* so a literal colon such as `/time/09:30` is left alone. Values that do not
|
|
72
|
+
* start with `/` are returned as they are, and so is echo's catch-all, whose
|
|
73
|
+
* bare `*` names no placeholder.
|
|
74
|
+
*
|
|
75
|
+
* @param {string} routePath Path a golem endpoint reports
|
|
76
|
+
* @param {string} [framework] Framework the route was registered with
|
|
77
|
+
* @returns {string} The normalised path
|
|
78
|
+
*/
|
|
79
|
+
export declare function normalizeGolemRoutePath(routePath: string, framework?: string): string;
|
|
80
|
+
/**
|
|
81
|
+
* Split a route golem reports into the `[METHOD ][HOST]/PATH` parts of a Go
|
|
82
|
+
* 1.22 net/http ServeMux pattern. golem puts a `/` in front of the pattern it
|
|
83
|
+
* read, so `GET /items/{id}` arrives as `/GET /items/{id}` and
|
|
84
|
+
* `GET example.com/items` as `/GET example.com/items`. A method followed by a
|
|
85
|
+
* space or tab is split off, and so is a host between the method and the
|
|
86
|
+
* path. Without a method, only a value that starts with `/` is a route: the
|
|
87
|
+
* `:8080` a listener reports and the `GET` that a gorilla/mux
|
|
88
|
+
* `.Methods("GET")` call leaves behind are not, and give undefined. A host
|
|
89
|
+
* pattern without a method reaches golem's report as a plain path
|
|
90
|
+
* (`/example.com/items`) and stays one.
|
|
91
|
+
*
|
|
92
|
+
* @param {string} routePath Path a golem endpoint reports
|
|
93
|
+
* @returns {{method: (string|undefined), host: (string|undefined), path: string}|undefined}
|
|
94
|
+
* The parts, or undefined when the value is not a route
|
|
95
|
+
*/
|
|
96
|
+
export declare function parseGolemRoutePattern(routePath: string): {
|
|
97
|
+
method: (string | undefined);
|
|
98
|
+
host: (string | undefined);
|
|
99
|
+
path: string;
|
|
100
|
+
} | undefined;
|
|
101
|
+
/**
|
|
102
|
+
* Reduce an outbound URL golem reports to what is safe to keep in a BOM:
|
|
103
|
+
* scheme, host and path, without userinfo, query, fragment or `;name=value`
|
|
104
|
+
* path parameters such as `;jsessionid=` and `;token=`. Webhook and bot URLs
|
|
105
|
+
* that authenticate by their path — Slack, Discord, Teams, Zapier, IFTTT,
|
|
106
|
+
* Telegram — keep only their route (`https://hooks.slack.com/services`), and a
|
|
107
|
+
* path segment holding a token shape the BOM sanitizer recognises ends the
|
|
108
|
+
* path there. Undefined when the value is not a URL with a host.
|
|
109
|
+
*
|
|
110
|
+
* @param {string} value URL golem reports
|
|
111
|
+
* @returns {string|undefined} The sanitised URL
|
|
112
|
+
*/
|
|
113
|
+
export declare function sanitizeGolemEndpointUrl(value: string): string | undefined;
|
|
114
|
+
/**
|
|
115
|
+
* Project the services and API endpoints of a golem report into evinse's
|
|
116
|
+
* service map, so a Go `evinse`/`saasbom` run lists its services the way the
|
|
117
|
+
* kosi (Kotlin) and dosai (.NET) collectors already do (#4498).
|
|
118
|
+
*
|
|
119
|
+
* golem rolls one service up per server it saw — a `gin` engine, a net/http
|
|
120
|
+
* listener on `:8080` — and lists the routes registered on it, each with its
|
|
121
|
+
* HTTP method and framework. Route paths are normalised to OpenAPI
|
|
122
|
+
* placeholders and Go 1.22 ServeMux patterns are split into method, host and
|
|
123
|
+
* path; entries that are not routes are skipped. It also rolls the outbound
|
|
124
|
+
* hosts the source calls into services of `kind: "external"`; those carry
|
|
125
|
+
* `x-trust-boundary: true`, since a host the application calls sits outside
|
|
126
|
+
* its own trust boundary, and their URLs are sanitised before they become
|
|
127
|
+
* endpoints. Every endpoint is percent-encoded to an RFC 3986 reference. The
|
|
128
|
+
* map is keyed by the golem service id, which is unique per server, while
|
|
129
|
+
* `name` carries the display name.
|
|
130
|
+
*
|
|
131
|
+
* HTTP methods are lower-cased to match the property values the OpenAPI flow
|
|
132
|
+
* emits, so a consumer grouping by `cdx:service:httpMethod` sees one value
|
|
133
|
+
* per method.
|
|
134
|
+
*
|
|
135
|
+
* @param {object|null} [golemReport={}] Parsed golem analysis report.
|
|
136
|
+
* @param {Object} [servicesMap={}] Service map to populate.
|
|
137
|
+
* @returns {Object} The service map
|
|
138
|
+
*/
|
|
139
|
+
export declare function collectGolemServices(golemReport?: object | null, servicesMap?: Object): Object;
|
|
60
140
|
//# sourceMappingURL=golem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"golem.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/golem.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"golem.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/golem.js"],"names":[],"mappings":"AA4mDA;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAH/B,MAG+B,GAF7B,OAAO,CAInB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAL/B,MAK+B,GAJ7B,MAAM,GAAC,SAAS,CAgB5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EALzB,MAKyB,EAAE,UAAU,EAJrC,MAIqC,EAAE,OAAO,AAHtD,CACA,EADQ,MAGmD,GAFjD,OAAO,CA4DnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAJ5B,MAI4B,EAAE,OAAO,AAH7C,CACA,EADQ,MAG0C,GAFxC,MAAM,GAAC,SAAS,CA2B5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,AAL7C,CACA,EADQ,MAK0C,EAAE,UAAU,AAJ9D,CACA,EADQ,KAAK,CAAC,MAAM,CAI+C,GAHzD;IAAC,sBAAsB,2BAAgC;IAAC,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAAC,mBAAmB,0BAA0B;IAAC,cAAc,wBAAwB;IAAC,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAAC,eAAe,wBAAuB;CAAC,CAsFpQ;AAoKD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAJtC,MAIsC,EAAE,SAAS,AAHzD,CACA,EADQ,MAGiD,GAF/C,MAAM,CAkDlB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAJrC,MAIqC,GAHnC;IAAC,MAAM,EAAE,CAAC,MAAM,GAAC,SAAS,CAAC,CAAC;IAAC,IAAI,EAAE,CAAC,MAAM,GAAC,SAAS,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,GAAC,SAAS,CAyB1F;AAgDD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAHnC,MAGmC,GAFjC,MAAM,GAAC,SAAS,CA2C5B;AA+BD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,AAJ7C,CACA,EADQ,MAAM,GAAC,IAImC,EAAE,WAAW,AAH/D,CACA,EADQ,MAG4D,GAF1D,MAAM,CAuElB"}
|