@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
|
@@ -10,6 +10,22 @@
|
|
|
10
10
|
* @param {Object[]} metadataProperties Properties from the analyzer run
|
|
11
11
|
*/
|
|
12
12
|
export declare function mergeAnalyzerMetadataProperties(component: Object, metadataProperties?: Object[]): void;
|
|
13
|
+
/**
|
|
14
|
+
* The evidence language of a `cdxgen --evidence` run that names no project
|
|
15
|
+
* type.
|
|
16
|
+
*
|
|
17
|
+
* A directory with a Scala build takes the scalasem path. Otherwise the
|
|
18
|
+
* generated BOM decides: Java when it lists Maven packages, as before, and
|
|
19
|
+
* else the language most of its packages belong to. A BOM with no package in
|
|
20
|
+
* a language the evidence step analyses gives no language, so no analyzer
|
|
21
|
+
* runs over sources it cannot read.
|
|
22
|
+
*
|
|
23
|
+
* @param {string} dirPath Project directory
|
|
24
|
+
* @param {Object} [bomJson] The BOM generated for the directory
|
|
25
|
+
* @param {Object} [options] CLI options, for the exclude patterns
|
|
26
|
+
* @returns {string|undefined} Project type for the evidence phase
|
|
27
|
+
*/
|
|
28
|
+
export declare function defaultEvidenceLanguage(dirPath: string, bomJson?: Object, options?: Object): string | undefined;
|
|
13
29
|
/**
|
|
14
30
|
* Build the options for the evinse phase (prepareDB, analyzeProject, and
|
|
15
31
|
* createEvinseFile) from the cdxgen CLI options.
|
|
@@ -38,11 +54,22 @@ export declare function prepareDB(options: Object): Promise<{
|
|
|
38
54
|
Usages: Object;
|
|
39
55
|
DataFlows: Object;
|
|
40
56
|
} | undefined>;
|
|
57
|
+
/**
|
|
58
|
+
* Read the jar namespace map cdxgen writes next to the BOM it generates
|
|
59
|
+
* (`<bom>.map`). The map for the BOM passed as `--input` is preferred; a
|
|
60
|
+
* `bom.json.map` in the project directory is the fallback.
|
|
61
|
+
*
|
|
62
|
+
* @param {string} dirPath Project directory scanned by evinse
|
|
63
|
+
* @param {Object} [options] CLI options, for `input`
|
|
64
|
+
* @returns {Object|undefined} The mapping, when a non-empty one exists.
|
|
65
|
+
*/
|
|
66
|
+
export declare function readNamespaceMap(dirPath: string, options?: Object): Object | undefined;
|
|
41
67
|
/**
|
|
42
68
|
* Collect Maven jar namespace mappings for the purls found in the SBOM.
|
|
43
69
|
*
|
|
44
|
-
* If a
|
|
45
|
-
* otherwise the maven command is invoked to collect the jar
|
|
70
|
+
* If cdxgen left a namespace map next to the BOM (see {@link readNamespaceMap})
|
|
71
|
+
* it is reused; otherwise the maven command is invoked to collect the jar
|
|
72
|
+
* dependencies. Each
|
|
46
73
|
* resolved purl is recorded in the `purlsJars` map and persisted in the
|
|
47
74
|
* `Namespaces` model.
|
|
48
75
|
*
|
|
@@ -64,7 +91,7 @@ export declare function catalogMavenDeps(dirPath: string, purlsJars: Record<stri
|
|
|
64
91
|
* @param {Object} Namespaces Sequelize-like Namespaces model used to persist pom and namespaces
|
|
65
92
|
* @returns {Promise<void>}
|
|
66
93
|
*/
|
|
67
|
-
export declare function catalogGradleDeps(dirPath: string, purlsJars: Record<string, string>, Namespaces: Object): Promise<void>;
|
|
94
|
+
export declare function catalogGradleDeps(dirPath: string, purlsJars: Record<string, string>, Namespaces: Object, options?: {}): Promise<void>;
|
|
68
95
|
/**
|
|
69
96
|
* Generate a usage slice for the given purl and persist it in the Usages model.
|
|
70
97
|
*
|
|
@@ -140,8 +167,8 @@ export declare function initFromSbom(components: Object[], language: string): {
|
|
|
140
167
|
* describe the same project directory and must not predate the input SBOM:
|
|
141
168
|
* `cdxgen --evidence` writes a fresh SBOM before evinse runs, so an older
|
|
142
169
|
* slice was made from an earlier state of the sources and is regenerated.
|
|
143
|
-
* Scala
|
|
144
|
-
*
|
|
170
|
+
* Scala reports are handled by the scalasem analyzer, which applies its own
|
|
171
|
+
* rules.
|
|
145
172
|
*
|
|
146
173
|
* @param {string} language Project language
|
|
147
174
|
* @param {string} slicesFile Candidate semantics slices file
|
|
@@ -150,13 +177,48 @@ export declare function initFromSbom(components: Object[], language: string): {
|
|
|
150
177
|
* @returns {undefined|Object} Parsed slice when it can be reused
|
|
151
178
|
*/
|
|
152
179
|
export declare function loadReusableSemanticsSlice(language: string, slicesFile: string, bomFile: string, dirPath: string): undefined | Object;
|
|
180
|
+
/**
|
|
181
|
+
* Merge service definitions into a services map: endpoints join, and a
|
|
182
|
+
* property another source already carries is not added again, whatever the
|
|
183
|
+
* case of an HTTP method.
|
|
184
|
+
*
|
|
185
|
+
* @param {Object} target Services map that receives the definitions.
|
|
186
|
+
* @param {Object} source Services map to merge in.
|
|
187
|
+
* @returns {Object} The target map.
|
|
188
|
+
*/
|
|
189
|
+
export declare function mergeServiceDefinitions(target: Object, source: Object): Object;
|
|
190
|
+
/**
|
|
191
|
+
* Collect the services of a Go project for the golem evidence path (#4498).
|
|
192
|
+
*
|
|
193
|
+
* Two sources are kept and merged by service name, the way the Scala path
|
|
194
|
+
* merges a user-provided spec into its report's services. They roll services
|
|
195
|
+
* up differently — golem per server, OpenAPI per path and method — so a
|
|
196
|
+
* route both name appears under both entries:
|
|
197
|
+
*
|
|
198
|
+
* - the golem report itself, whose `services[]` section rolls the registered
|
|
199
|
+
* routes up per server (a gin engine, a net/http listener) with methods and
|
|
200
|
+
* frameworks, and the outbound hosts it calls into `kind: "external"`
|
|
201
|
+
* services flagged as trust-boundary crossings;
|
|
202
|
+
* - an OpenAPI document, either the one `--openapi-spec-file` names or the
|
|
203
|
+
* `openapi.json` an earlier `atom-tools convert -t go` left in the repo,
|
|
204
|
+
* which is reused when present so `golem`/`atom-tools` and `cdxgen` can be
|
|
205
|
+
* run as separate steps.
|
|
206
|
+
*
|
|
207
|
+
* @param {object|null|undefined} golemReport Parsed golem analysis report,
|
|
208
|
+
* when one was produced; a missing or `null` report adds no services.
|
|
209
|
+
* @param {string} dirPath Project directory the report was produced from.
|
|
210
|
+
* @param {Object} options Command line options.
|
|
211
|
+
* @param {Object} [servicesMap={}] Service map to populate.
|
|
212
|
+
* @returns {Object} The service map
|
|
213
|
+
*/
|
|
214
|
+
export declare function collectGoServices(golemReport: object | null | undefined, dirPath: string, options?: Object, servicesMap?: Object): Object;
|
|
153
215
|
/**
|
|
154
216
|
* Function to analyze the project
|
|
155
217
|
*
|
|
156
218
|
* @param {Object} dbObjMap DB and model instances
|
|
157
219
|
* @param {Object} options Command line options
|
|
158
220
|
*/
|
|
159
|
-
export declare function analyzeProject(dbObjMap: Object, options: Object): Promise<{
|
|
221
|
+
export declare function analyzeProject(dbObjMap: Object, options: Object): Promise<Object | {
|
|
160
222
|
purlLocationMap: Record<string, Set<any>>;
|
|
161
223
|
servicesMap: {};
|
|
162
224
|
dataFlowFrames: {};
|
|
@@ -269,7 +331,37 @@ export declare function analyzeProject(dbObjMap: Object, options: Object): Promi
|
|
|
269
331
|
* @param {string} [openapiSpecFile=undefined] Optional path to an OpenAPI spec used for service detection
|
|
270
332
|
* @returns {Promise<Object>} Map with `purlLocationMap`, `servicesMap`, and `userDefinedTypesMap`
|
|
271
333
|
*/
|
|
272
|
-
|
|
334
|
+
/**
|
|
335
|
+
* Attribute the include slices of a C/C++ usages report to the BOM
|
|
336
|
+
* components that provide the files they resolved to: each header's imported
|
|
337
|
+
* symbols (the functions the including file calls that it declares), and the
|
|
338
|
+
* include directive's location. Reports from atom releases that do not name
|
|
339
|
+
* the resolved file attribute nothing.
|
|
340
|
+
*
|
|
341
|
+
* @param {Object} usageSlice Parsed usages report
|
|
342
|
+
* @param {Object[]} components Components of the input BOM
|
|
343
|
+
* @param {string} dirPath Source directory
|
|
344
|
+
* @param {Object} options CLI options
|
|
345
|
+
* @returns {{symbols: Map<string, Set<string>>, locations: Map<string, Set<string>>}}
|
|
346
|
+
* Imported symbols and include locations (`file#line`) by purl
|
|
347
|
+
*/
|
|
348
|
+
export declare function attributeCIncludes(usageSlice: Object, components: Object[], dirPath: string, options?: Object): {
|
|
349
|
+
symbols: Map<string, Set<string>>;
|
|
350
|
+
locations: Map<string, Set<string>>;
|
|
351
|
+
};
|
|
352
|
+
/**
|
|
353
|
+
* Seed the C/C++ imports from the include slices of a usages report (see
|
|
354
|
+
* `attributeCIncludes`).
|
|
355
|
+
*
|
|
356
|
+
* @param {Object} usageSlice Parsed usages report
|
|
357
|
+
* @param {Object[]} components Components of the input BOM
|
|
358
|
+
* @param {string} dirPath Source directory
|
|
359
|
+
* @param {Object} purlImportsMap Imports by purl, extended in place
|
|
360
|
+
* @param {Object} options CLI options
|
|
361
|
+
* @returns {Object} purlImportsMap
|
|
362
|
+
*/
|
|
363
|
+
export declare function seedCImportsFromIncludes(usageSlice: Object, components: Object[], dirPath: string, purlImportsMap?: Object, options?: Object): Object;
|
|
364
|
+
export declare function parseObjectSlices(language: any, usageSlice: any, dbObjMap: any, servicesMap?: {}, purlLocationMap?: {}, purlImportsMap?: {}, openapiSpecFile?: undefined): Promise<{}>;
|
|
273
365
|
/**
|
|
274
366
|
* The implementation of this function is based on the logic proposed in the atom slices specification
|
|
275
367
|
* https://github.com/AppThreat/atom/blob/main/specification/docs/slices.md#use
|
|
@@ -299,7 +391,7 @@ export declare function parseSliceUsages(language: string, userDefinedTypesMap:
|
|
|
299
391
|
* @param {Object} semanticsSlice Semantic slice data
|
|
300
392
|
* @returns {Object} Parsed metadata
|
|
301
393
|
*/
|
|
302
|
-
export declare function parseSemanticSlices(
|
|
394
|
+
export declare function parseSemanticSlices(_language: any, components: any[], semanticsSlice: Object): Object;
|
|
303
395
|
/**
|
|
304
396
|
* Decide whether a type name should be ignored during slice analysis.
|
|
305
397
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evinser.d.ts","sourceRoot":"","sources":["../../../lib/evinser/evinser.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"evinser.d.ts","sourceRoot":"","sources":["../../../lib/evinser/evinser.js"],"names":[],"mappings":"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"}
|
|
@@ -106,6 +106,16 @@ export declare function verboseBuild(basePath: string): undefined | string;
|
|
|
106
106
|
* @returns {Array<String>} Sanitized compiler arguments
|
|
107
107
|
*/
|
|
108
108
|
export declare function sanitizeSwiftModuleArgs(tokens: Array<string>): Array<string>;
|
|
109
|
+
/**
|
|
110
|
+
* Remove the arguments that would make SourceKit load code named by the
|
|
111
|
+
* project. A `.build` directory that cdxgen did not create is project content,
|
|
112
|
+
* so the compiler arguments read from it are cleaned this way whenever the
|
|
113
|
+
* project's own tooling may not run.
|
|
114
|
+
*
|
|
115
|
+
* @param {Array<String>} args Sanitized compiler arguments
|
|
116
|
+
* @returns {Array<String>} Arguments without plugin and clang pass-through flags
|
|
117
|
+
*/
|
|
118
|
+
export declare function withoutSwiftPluginArgs(args: Array<string>): Array<string>;
|
|
109
119
|
/**
|
|
110
120
|
* Extract the per-module compiler invocations printed by a verbose swift
|
|
111
121
|
* build.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swiftsem.d.ts","sourceRoot":"","sources":["../../../lib/evinser/swiftsem.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"swiftsem.d.ts","sourceRoot":"","sources":["../../../lib/evinser/swiftsem.js"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import crypto from "node:crypto";
|
|
2
|
+
/**
|
|
3
|
+
* Largest number of entries accepted in a `signers` or `chain` signature.
|
|
4
|
+
* Every entry is checked against the whole signed object, so the bound keeps
|
|
5
|
+
* the cost of verifying a document proportional to its size.
|
|
6
|
+
*/
|
|
7
|
+
export declare const MAX_SIGNATURE_ENTRIES = 32;
|
|
8
|
+
/**
|
|
9
|
+
* Members the CycloneDX 1.4 to 1.7 and 2.0 schemas define at the root of a
|
|
10
|
+
* BOM. A root signature is only accepted on an object made of these members,
|
|
11
|
+
* so a signed component, service, or annotation cannot pass as a signed BOM.
|
|
12
|
+
*/
|
|
13
|
+
export declare const BOM_ROOT_MEMBERS: readonly string[];
|
|
2
14
|
/**
|
|
3
15
|
* Renders a value taken from a document for a message. JSON can make any field
|
|
4
16
|
* an object or array, and interpolating those directly can throw.
|
|
@@ -49,11 +61,18 @@ export declare function generateSigningKeyPair(algorithm: string): {
|
|
|
49
61
|
* skipped by default, because changing them would invalidate the existing root
|
|
50
62
|
* signature; explicitly requesting nested signing in that case is an error.
|
|
51
63
|
*
|
|
64
|
+
* The BOM root must carry `bomFormat` (or `specFormat`) and `specVersion`, and
|
|
65
|
+
* only members that CycloneDX defines at the root. A nested element that
|
|
66
|
+
* carries `bomFormat`, `specFormat`, or `specVersion` is refused. Verification
|
|
67
|
+
* rejects signatures over either shape.
|
|
68
|
+
*
|
|
52
69
|
* @param {Object} bomJson - CycloneDX BOM Object
|
|
53
70
|
* @param {Object} options - Signing options
|
|
54
71
|
* @param {string|Buffer|Object|crypto.KeyObject} options.privateKey - Private key (PEM or KeyObject), or the shared secret for HS* algorithms
|
|
55
72
|
* @param {string} [options.algorithm] - JSF algorithm identifier (default RS512). It must match the key type.
|
|
56
73
|
* @param {Object} [options.publicKeyJwk] - JWK of the signing key's public key to embed
|
|
74
|
+
* @param {boolean} [options.embedPublicKey] - Embed the public key derived from the signing key when publicKeyJwk is not given. Ignored for HS* algorithms and for keys without a JWK form, such as rsa-pss.
|
|
75
|
+
* @param {boolean} [options.embedPublicKeyNested] - Also embed the public key in nested signatures (default true)
|
|
57
76
|
* @param {string} [options.keyId] - Key ID to embed
|
|
58
77
|
* @param {string} [options.mode] - 'replace' (default), 'signers', or 'chain'
|
|
59
78
|
* @param {boolean} [options.signComponents] - Sign each component
|
|
@@ -65,6 +84,8 @@ export declare function signBom(bomJson: Object, options?: {
|
|
|
65
84
|
privateKey: string | Buffer | Object | crypto.KeyObject;
|
|
66
85
|
algorithm?: string;
|
|
67
86
|
publicKeyJwk?: Object;
|
|
87
|
+
embedPublicKey?: boolean;
|
|
88
|
+
embedPublicKeyNested?: boolean;
|
|
68
89
|
keyId?: string;
|
|
69
90
|
mode?: string;
|
|
70
91
|
signComponents?: boolean;
|
|
@@ -80,6 +101,9 @@ export declare function signBom(bomJson: Object, options?: {
|
|
|
80
101
|
* embedded publicKey (if any) is the verification key, and its value covers the
|
|
81
102
|
* node content plus the signature metadata as JSF defines.
|
|
82
103
|
*
|
|
104
|
+
* This checks one object only. To verify a BOM, use {@link verifyBomSignatures}
|
|
105
|
+
* or {@link verifyBom}, which also require the signed root to be a BOM.
|
|
106
|
+
*
|
|
83
107
|
* @param {Object} node - The BOM or granular object to verify
|
|
84
108
|
* @param {string|Buffer|Object|crypto.KeyObject} publicKey - Verification key. Strings and Buffers are parsed as public keys; use loadSharedSecret() for HMAC.
|
|
85
109
|
* @param {Object} [options]
|
|
@@ -89,10 +113,62 @@ export declare function signBom(bomJson: Object, options?: {
|
|
|
89
113
|
export declare function verifyNode(node: Object, publicKey: string | Buffer | Object | crypto.KeyObject, options?: {
|
|
90
114
|
reasons?: string[];
|
|
91
115
|
}): boolean | Object;
|
|
116
|
+
/**
|
|
117
|
+
* Verifies the signatures of a BOM against one or more trusted keys and reports
|
|
118
|
+
* the outcome for every signature entry.
|
|
119
|
+
*
|
|
120
|
+
* The BOM verifies when:
|
|
121
|
+
* - its root carries `bomFormat` (or `specFormat`) "CycloneDX" and
|
|
122
|
+
* `specVersion`, and only members that CycloneDX defines at the root of a BOM;
|
|
123
|
+
* - its root signature verifies, meaning at least one entry verifies with one
|
|
124
|
+
* of the keys. With `requireAll`, every entry must verify with one of the
|
|
125
|
+
* keys, and every key must verify at least one entry;
|
|
126
|
+
* - with `deep`, every signed component, service, and annotation verifies the
|
|
127
|
+
* same way and carries none of `bomFormat`, `specFormat`, and `specVersion`.
|
|
128
|
+
*
|
|
129
|
+
* A BOM without a root signature fails unless `allowNestedOnly` is set. Then
|
|
130
|
+
* every component, service, and annotation must carry a signature that
|
|
131
|
+
* verifies, and `notices` lists the members that no signature covers.
|
|
132
|
+
*
|
|
133
|
+
* Parse untrusted BOM text with `parseStrictJson()` from
|
|
134
|
+
* `lib/parsers/strictJson.js` before calling this function, so that the
|
|
135
|
+
* verified values are the values every JSON parser reads.
|
|
136
|
+
*
|
|
137
|
+
* @param {Object} bom - CycloneDX BOM Object
|
|
138
|
+
* @param {Array<string|Buffer|Object|crypto.KeyObject>|string|Buffer|Object|crypto.KeyObject} keys - Trusted verification keys (see verifyNode)
|
|
139
|
+
* @param {Object} [options]
|
|
140
|
+
* @param {boolean} [options.deep] - Also verify nested signatures (default true)
|
|
141
|
+
* @param {boolean} [options.allowNestedOnly] - Accept a BOM without a root signature when every nested element is signed
|
|
142
|
+
* @param {boolean} [options.requireAll] - Require every entry of each signature to verify, and every key to verify an entry of the root signature
|
|
143
|
+
* @returns {{ verified: boolean, errors: string[], notices: string[], root: Object|null, nested: Object[] }}
|
|
144
|
+
* `root` and each `nested` item hold `label`, `form`, `verified`, `match` (the first verified entry),
|
|
145
|
+
* `reasons` (why the signature could not be read), `entries` (`index`, `algorithm`, `keyId`, `verified`, `reasons`),
|
|
146
|
+
* and `keysMatched` (whether each key verified an entry).
|
|
147
|
+
*/
|
|
148
|
+
export declare function verifyBomSignatures(bom: Object, keys: Array<string | Buffer | Object | crypto.KeyObject> | string | Buffer | Object | crypto.KeyObject, options?: {
|
|
149
|
+
deep?: boolean;
|
|
150
|
+
allowNestedOnly?: boolean;
|
|
151
|
+
requireAll?: boolean;
|
|
152
|
+
}): {
|
|
153
|
+
verified: boolean;
|
|
154
|
+
errors: string[];
|
|
155
|
+
notices: string[];
|
|
156
|
+
root: Object | null;
|
|
157
|
+
nested: Object[];
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Flattens a {@link verifyBomSignatures} report into the reasons it did not
|
|
161
|
+
* verify: policy errors first, then each rejected root entry, then each
|
|
162
|
+
* rejected nested entry prefixed with the element it belongs to.
|
|
163
|
+
*
|
|
164
|
+
* @param {Object} report - Result of verifyBomSignatures
|
|
165
|
+
* @returns {string[]} - Reasons, empty when the report verified
|
|
166
|
+
*/
|
|
167
|
+
export declare function signatureReportReasons(report: Object): string[];
|
|
92
168
|
/**
|
|
93
169
|
* Verifies a BOM's top-level signature, as well as nested components, services,
|
|
94
|
-
* and annotations. Returns the root match only if the
|
|
95
|
-
*
|
|
170
|
+
* and annotations, with one key. Returns the root match only if the BOM verifies
|
|
171
|
+
* as {@link verifyBomSignatures} defines with `deep` enabled.
|
|
96
172
|
*
|
|
97
173
|
* @param {Object} bom - CycloneDX BOM Object
|
|
98
174
|
* @param {string|Buffer|Object|crypto.KeyObject} publicKey - Verification key (see verifyNode)
|
|
@@ -104,8 +180,8 @@ export declare function verifyBom(bom: Object, publicKey: string | Buffer | Obje
|
|
|
104
180
|
* Checks every signature entry of a node against a set of trusted keys. An
|
|
105
181
|
* entry is verified when one of the keys verifies that entry.
|
|
106
182
|
*
|
|
107
|
-
* `cdx-sign` uses this before appending
|
|
108
|
-
*
|
|
183
|
+
* `cdx-sign` uses this before appending a `signers` or `chain` entry, to check
|
|
184
|
+
* that the content still carries the earlier signatures.
|
|
109
185
|
*
|
|
110
186
|
* @param {Object} node - The BOM or granular object whose signature is checked
|
|
111
187
|
* @param {Array<string|Buffer|Object|crypto.KeyObject>} [keys] - Trusted verification keys (see verifyNode)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bomSigner.d.ts","sourceRoot":"","sources":["../../../lib/helpers/bomSigner.js"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"bomSigner.d.ts","sourceRoot":"","sources":["../../../lib/helpers/bomSigner.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether the frontmatter of a SKILL.md satisfies the open Agent Skills
|
|
3
|
+
* constraints (agentskills.io): a name of 1-64 lowercase letters, digits and
|
|
4
|
+
* hyphens, and a description of 1-1024 characters.
|
|
5
|
+
*
|
|
6
|
+
* @param {{name?: unknown, description?: unknown}|undefined} metadata Frontmatter values
|
|
7
|
+
* @returns {boolean} true when both constraints hold
|
|
8
|
+
*/
|
|
9
|
+
export declare function isAgentSkillSpecValid(metadata: {
|
|
10
|
+
name?: unknown;
|
|
11
|
+
description?: unknown;
|
|
12
|
+
} | undefined): boolean;
|
|
13
|
+
//# sourceMappingURL=agentSkillSpec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentSkillSpec.d.ts","sourceRoot":"","sources":["../../../lib/inventory/agentSkillSpec.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAHnC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAC,GAAC,SAGL,GAFjC,OAAO,CAUnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiCollector.d.ts","sourceRoot":"","sources":["../../../lib/inventory/aiCollector.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aiCollector.d.ts","sourceRoot":"","sources":["../../../lib/inventory/aiCollector.js"],"names":[],"mappings":"AAu8DA;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAJvC,MAIuC,EAAE,OAAO,AAHxD,CACA,EADQ,MAGqD,GAFnD;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CA2YhF;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,aAAa,EAJpD,MAIoD,EAAE,OAAO,AAHrE,CACA,EADQ,MAGkE,GAFhE;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAiMhF;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAJ3C,MAI2C,EAAE,OAAO,AAH5D,CACA,EADQ,MAGyD,GAFvD;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAQhF;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,aAAa,EAJ7C,MAI6C,EAAE,OAAO,AAH9D,CACA,EADQ,MAG2D,GAFzD;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAQhF;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,aAAa,EAJjD,MAIiD,EAAE,OAAO,AAHlE,CACA,EADQ,MAG+D,GAF7D;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAQhF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../../lib/inventory/analyzer.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../../lib/inventory/analyzer.js"],"names":[],"mappings":"AA6vDA;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,QAJ3B,MAAM,QACN,MAAM,KACJ;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAO7C,CAAC;AAmpBF;;;GAGG;AACH,eAAO,MAAM,wCAAwC,UAQpD,CAAC;AA4JF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,UAQpC,CAAC;AA+JF;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAHrC,MAGqC,GAFnC;IAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAAC,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAC,CA2J/H;AA2hBD;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;EAsGhC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,aAHzB,MAAM,KACJ;IAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAAC,qBAAqB,EAAE,MAAM,EAAE,CAAA;CAe9H,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAHvC,MAGuC,GAFrC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,YAAY,2BAA0B;CAAC,CAqOnJ;AAED;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,aAH3B,MAAM,KACJ;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,YAAY,2BAA0B;CAAC,GAAC,SAgBpJ,CAAC;AAyQF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAHjC,MAGiC,GAF/B;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAC,CA2avD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,aAHrB,MAAM,KACJ;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAC,GAAC,SAUxD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,QAJzB,MAAM,SACN,OAAO,KACL,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAC,CAgC/D,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,QAN7B,MAAM,SACN,OAAO,KACL;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,2BAA0B;CA+EzE,CAAC;AAg9BF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,QAJ1B,MAAM,SACN,OAAO,KACL;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAiJ7E,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,QAJpB,MAAM,SACN,OAAO,KACL;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CA6pB7E,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** The database, or the packages it lists, past these is unreadable rather than read in part. */
|
|
2
|
+
export declare const MAX_APK_DATABASE_BYTES: number;
|
|
3
|
+
export declare const MAX_APK_PACKAGES = 100000;
|
|
4
|
+
/** Where apk keeps the installed database, relative to the root, in the order they are tried. */
|
|
5
|
+
export declare const APK_INSTALLED_DB_PATHS: string[];
|
|
6
|
+
/**
|
|
7
|
+
* Read the packages of the apk installed database.
|
|
8
|
+
*
|
|
9
|
+
* @param {Object} [options] Read options
|
|
10
|
+
* @param {string} [options.rootPath="/"] Directory the database paths hang off;
|
|
11
|
+
* tests point it at a built tree
|
|
12
|
+
* @param {string} [options.databaseFile] Read this file instead of looking
|
|
13
|
+
* under `rootPath`
|
|
14
|
+
* @param {Set<string>} [options.wantedFiles] Absolute paths whose owner is
|
|
15
|
+
* wanted. A package comes back with the ones it owns in `files`; the other
|
|
16
|
+
* files of a package are only counted, so a large database stays small.
|
|
17
|
+
* @param {number} [options.maxBytes] Largest database to read, 64 MiB by default
|
|
18
|
+
* @param {number} [options.maxPackages] Most packages to accept, 100000 by default
|
|
19
|
+
* @param {string} [options.platform] `linux` by default for the process; an apk
|
|
20
|
+
* database exists on Linux only
|
|
21
|
+
* @returns {{state: string, path?: string, packages: Object[], malformed: number}}
|
|
22
|
+
* `state` is `ok`, `absent` (no database, or not Linux), `unreadable` (a
|
|
23
|
+
* database that could not be read in full) or `skipped` (a dry run).
|
|
24
|
+
* `malformed` counts the records left out for having no name or version.
|
|
25
|
+
* Each package has `name`, `version` and `fileCount`, `files`, and, when the
|
|
26
|
+
* record has them, `arch`, `origin`, `maintainer`, `license`, `url` and
|
|
27
|
+
* `description`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function readApkInstalledDb(options?: {
|
|
30
|
+
rootPath?: string;
|
|
31
|
+
databaseFile?: string;
|
|
32
|
+
wantedFiles?: Set<string>;
|
|
33
|
+
maxBytes?: number;
|
|
34
|
+
maxPackages?: number;
|
|
35
|
+
platform?: string;
|
|
36
|
+
}): {
|
|
37
|
+
state: string;
|
|
38
|
+
path?: string;
|
|
39
|
+
packages: Object[];
|
|
40
|
+
malformed: number;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=apkInstalledDb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apkInstalledDb.d.ts","sourceRoot":"","sources":["../../../lib/inventory/apkInstalledDb.js"],"names":[],"mappings":"AA6BA,iGAAiG;AACjG,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AACvD,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC,iGAAiG;AACjG,eAAO,MAAM,sBAAsB,UAIlC,CAAC;AAiHF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,AApBvC,CAYA,EAXA;IAAyB,QAAQ,AAAjC,CAEA,EAFQ,MAAM,CAEd;IAAyB,YAAY,AAArC,CAEA,EAFQ,MAAM,CAEd;IAA8B,WAAW,AAAzC,CAGA,EAHQ,GAAG,CAAC,MAAM,CAAC,CAGnB;IAAyB,QAAQ,AAAjC,CACA,EADQ,MAAM,CACd;IAAyB,WAAW,AAApC,CACA,EADQ,MAAM,CACd;IAAyB,QAAQ,AAAjC,CAEA,EAFQ,MAAM,CAEd;CAQ4C,GARlC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,CA4EjF"}
|
|
@@ -9,9 +9,12 @@ export declare const ATOM_NATIVE_PACKAGES: Set<string>;
|
|
|
9
9
|
* language its build uses.
|
|
10
10
|
*
|
|
11
11
|
* An explicit `options.compileCommands` (a file, or a directory holding one
|
|
12
|
-
* directly or under `build/`) wins. Otherwise the scan root
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* directly or under `build/`) wins. Otherwise the scan root and the project's
|
|
13
|
+
* build directories are searched: the directory of `options.cmakeCache`, the
|
|
14
|
+
* build directories of its CMake presets, and the conventional `build`,
|
|
15
|
+
* `out`, `builddir` and `cmake-build-` directories (see
|
|
16
|
+
* `cmakeBuildDirCandidates`). A database can come with the code it describes,
|
|
17
|
+
* and atom asks the
|
|
15
18
|
* GCC or Clang driver it names (from the PATH, or an absolute path outside
|
|
16
19
|
* the project) for its predefined macros, so in secure mode only an explicit
|
|
17
20
|
* database is used.
|
|
@@ -58,6 +61,20 @@ export declare function atomFrontendArgKeys(language: string): Set<string>;
|
|
|
58
61
|
* @returns {string[]} Arguments to add to the atom command
|
|
59
62
|
*/
|
|
60
63
|
export declare function atomCompileCommandsArgs(src: string, language: string, options?: Object): string[];
|
|
64
|
+
/**
|
|
65
|
+
* The arguments that stop atom's Java frontend from running the scanned
|
|
66
|
+
* project's build. In its default delombok mode, atom runs
|
|
67
|
+
* `mvn dependency:build-classpath` inside a Maven project, which loads the
|
|
68
|
+
* project's `.mvn` configuration and build extensions, so delombok and
|
|
69
|
+
* dependency fetching are turned off whenever the project's own tooling may
|
|
70
|
+
* not run.
|
|
71
|
+
*
|
|
72
|
+
* @param {string} language atom `-l` value
|
|
73
|
+
* @param {Object} options CLI options
|
|
74
|
+
* @returns {string[]|undefined} Arguments to add to the atom command, or
|
|
75
|
+
* undefined when the installed atom cannot be told to leave the build alone
|
|
76
|
+
*/
|
|
77
|
+
export declare function atomBuildToolArgs(language: string, options?: Object): string[] | undefined;
|
|
61
78
|
/**
|
|
62
79
|
* Convert cdxgen's glob-style exclude patterns to a Scala/Java regex string.
|
|
63
80
|
*
|
|
@@ -132,20 +149,39 @@ export declare function resolveAtomProvider(opts?: {
|
|
|
132
149
|
* ceiling differently, and a native-image runtime option on a jar run reaches
|
|
133
150
|
* atom as an unknown argument that fails every slice. So the kind follows what
|
|
134
151
|
* is installed where cdxgen can see it: the native binary means native, the jar
|
|
135
|
-
* package without it means jar.
|
|
136
|
-
* install elsewhere) the
|
|
152
|
+
* package without it means jar. An `ATOM_CMD` is classified by what it names
|
|
153
|
+
* (see `atomCommandKind`). With nothing in view (an install elsewhere) the
|
|
154
|
+
* platform's kind stands.
|
|
137
155
|
*
|
|
138
156
|
* Also used to gate Java/JDK advice, so users on the five native platforms are
|
|
139
157
|
* not told to install a JDK for a failure that has nothing to do with Java.
|
|
140
158
|
*/
|
|
141
159
|
export declare function atomProviderKind(): "jar" | "native";
|
|
160
|
+
/**
|
|
161
|
+
* Whether `ATOM_CMD` launches a jar or follows the platform.
|
|
162
|
+
*
|
|
163
|
+
* The jar launchers (`plugins/bin/atom`, `plugins/bin/atom.bat`) sit next to a
|
|
164
|
+
* `plugins/lib` directory holding atom's jars, so a launcher with that sibling,
|
|
165
|
+
* or any `.bat` (only the jar payload ships one), runs on the JVM whatever the
|
|
166
|
+
* platform is. Everything else, including the npm dispatcher (`node
|
|
167
|
+
* .../index.js`, its `atom`/`atom.cmd` bin shims) and a native binary, follows
|
|
168
|
+
* the platform's kind. A GraalVM `-XX:` heap argument handed to a jar launcher
|
|
169
|
+
* is rejected by atom's option parser before any analysis starts, and a
|
|
170
|
+
* `JAVA_TOOL_OPTIONS` ceiling handed to a native image is silently ignored, so
|
|
171
|
+
* the distinction decides whether the heap is bounded at all.
|
|
172
|
+
*
|
|
173
|
+
* @param {string} command The `ATOM_CMD` value
|
|
174
|
+
* @param {"native"|"jar"} platformKind Kind the platform prefers
|
|
175
|
+
* @returns {"native"|"jar"}
|
|
176
|
+
*/
|
|
177
|
+
export declare function atomCommandKind(command: string, platformKind: "native" | "jar"): "native" | "jar";
|
|
142
178
|
/**
|
|
143
179
|
* Locate the `php-parse` binary that the PHP frontend needs.
|
|
144
180
|
*
|
|
145
181
|
* atom 3's dispatcher unconditionally sets `PHP_PARSER_BIN=<ATOM_HOME>/bin/php-parse`,
|
|
146
182
|
* which for a native sub-package does not exist and also clobbers a caller-set
|
|
147
|
-
* value. cdxgen therefore resolves the real location and forwards it through
|
|
148
|
-
*
|
|
183
|
+
* value. cdxgen therefore resolves the real location and forwards it through the
|
|
184
|
+
* child env (see `buildAtomCommandEnv`); `executeAtom` then spawns the
|
|
149
185
|
* native binary directly for PHP so the dispatcher cannot clobber it (see
|
|
150
186
|
* `resolveDirectAtomBinaryPath`). Resolution order:
|
|
151
187
|
* 1. explicit `PHP_PARSER_BIN` env var (operators / container images)
|
|
@@ -159,6 +195,35 @@ export declare function atomProviderKind(): "jar" | "native";
|
|
|
159
195
|
* @returns {string|undefined}
|
|
160
196
|
*/
|
|
161
197
|
export declare function resolvePhpParseBin(): string | undefined;
|
|
198
|
+
/**
|
|
199
|
+
* Locate the `phpastgen` generator that lets the PHP frontend parse whole
|
|
200
|
+
* directories in one batch.
|
|
201
|
+
*
|
|
202
|
+
* `php-parse` (forwarded as `PHP_PARSER_BIN`) is the per-file parser: atom
|
|
203
|
+
* starts a php interpreter for every `.php` file, which on windows turns a
|
|
204
|
+
* vendored PHP project (thousands of files under `vendor/`) into an hours-long
|
|
205
|
+
* run that no timeout can rescue. `phpastgen` answers the `--parser-info`
|
|
206
|
+
* capability probe, so atom's batch path engages, and atom-parsetools 1.9 and
|
|
207
|
+
* later parse the whole tree, vendor included, with a few interpreters that
|
|
208
|
+
* each take a chunk of files. It is a Node script, so the frontend launches it
|
|
209
|
+
* with `node` rather than `php`; an atom that does not know `PHP_ASTGEN_BIN`
|
|
210
|
+
* simply ignores it and keeps today's per-file behaviour. Resolution order:
|
|
211
|
+
* 1. explicit `PHP_ASTGEN_BIN` env var (operators / container images)
|
|
212
|
+
* 2. `@appthreat/atom-parsetools/phpastgen.js` under cdxgen's own
|
|
213
|
+
* node_modules, then under `GLOBAL_NODE_MODULES_PATH` for global installs
|
|
214
|
+
*
|
|
215
|
+
* @returns {string|undefined}
|
|
216
|
+
*/
|
|
217
|
+
export declare function resolvePhpAstgenBin(): string | undefined;
|
|
218
|
+
/**
|
|
219
|
+
* Resolve a file inside the installed `@appthreat/atom-parsetools` package,
|
|
220
|
+
* searching cdxgen's own node_modules and `GLOBAL_NODE_MODULES_PATH` for global
|
|
221
|
+
* installs.
|
|
222
|
+
*
|
|
223
|
+
* @param {...string} segments Path segments below the package root
|
|
224
|
+
* @returns {string|undefined}
|
|
225
|
+
*/
|
|
226
|
+
export declare function parsetoolsFile(...segments: string[]): string | undefined;
|
|
162
227
|
/**
|
|
163
228
|
* Resolve the atom native binary path directly, bypassing the dispatcher.
|
|
164
229
|
*
|
|
@@ -216,14 +281,35 @@ export declare function atomTimeouts(): {
|
|
|
216
281
|
atomTimeoutMs: number;
|
|
217
282
|
spawnTimeoutMs: number;
|
|
218
283
|
};
|
|
284
|
+
/**
|
|
285
|
+
* Reap everything a timed-out atom run left behind on Windows.
|
|
286
|
+
*
|
|
287
|
+
* cdxgen starts atom through a shell there (`shell: isWin`), so the spawn
|
|
288
|
+
* timeout terminates only that `cmd.exe`, and the runtime and every parser
|
|
289
|
+
* worker under it (one `php.exe` per file for the per-file PHP frontend) keep
|
|
290
|
+
* running against the next slice of the same run. See
|
|
291
|
+
* {@link reapProcessTree} for how they are found. A chain broken by an
|
|
292
|
+
* intermediate that already exited (the npm dispatcher stopping its runtime
|
|
293
|
+
* itself) cannot be followed, and atom 4 stops its helpers once
|
|
294
|
+
* `ATOM_PARENT_PID` is gone.
|
|
295
|
+
*
|
|
296
|
+
* @param {number|undefined} rootPid pid of the process cdxgen spawned
|
|
297
|
+
* @param {number} startedAt Epoch milliseconds at which the run started
|
|
298
|
+
* @param {number} [endedAt] Epoch milliseconds at which the spawned process ended
|
|
299
|
+
* @returns {number[]} The pids that were stopped
|
|
300
|
+
*/
|
|
301
|
+
export declare function reapAtomProcessTree(rootPid: number | undefined, startedAt: number, endedAt?: number): number[];
|
|
219
302
|
/**
|
|
220
303
|
* Whether an atom run ended because it ran out of time.
|
|
221
304
|
*
|
|
222
305
|
* The dispatcher reports its own limit with status 124. cdxgen's spawn timeout
|
|
223
306
|
* shows up as `ETIMEDOUT`. A dispatcher older than the status code stops atom
|
|
224
|
-
* with SIGTERM and
|
|
225
|
-
*
|
|
226
|
-
*
|
|
307
|
+
* with SIGTERM and passes on how the runtime ended: 1, or the runtime's own
|
|
308
|
+
* exit on SIGTERM (143) or SIGKILL (137), which is what atom 3.1 reports. Those
|
|
309
|
+
* statuses at or past the limit count as well, unless atom's own output shows
|
|
310
|
+
* it failed for another reason first (an exhausted heap, a crash), which
|
|
311
|
+
* deserves its own diagnosis. Missing one leaves the half-written atom behind,
|
|
312
|
+
* and the next slice of the run fails to load it.
|
|
227
313
|
*
|
|
228
314
|
* @param {Object} result spawnSync result
|
|
229
315
|
* @param {number} elapsedMs How long the run took
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomUtils.d.ts","sourceRoot":"","sources":["../../../lib/inventory/atomUtils.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"atomUtils.d.ts","sourceRoot":"","sources":["../../../lib/inventory/atomUtils.js"],"names":[],"mappings":"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"}
|