@cdxgen/cdxgen 13.5.0 → 13.7.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 +17 -10
- package/bin/audit.js +7 -4
- package/bin/cdxgen.js +260 -37
- package/bin/convert.js +146 -22
- package/bin/evinse.js +28 -3
- package/bin/repl.js +47 -3
- package/bin/sign.js +211 -34
- package/bin/tracebom.js +18 -6
- package/bin/validate.js +24 -3
- package/bin/verify.js +113 -5
- package/data/behavior-taxonomy.schema.json +1491 -0
- package/data/cyclonedx-2.0-bundled.schema.json +18606 -5528
- package/data/cyclonedx-2.0-cryptography-defs.schema.json +857 -0
- package/data/license-aliases.json +24 -2
- package/data/pqc-migration.json +239 -0
- package/data/remediations.json +176 -0
- package/data/rules/ai-bom.yaml +1 -1
- package/data/rules/brotli-decoder.yaml +107 -0
- package/data/rules/cbom-security.yaml +4 -3
- package/data/rules/package-integrity.yaml +28 -0
- package/data/rules/vscode-extensions.yaml +75 -0
- package/data/spdx-license-list.json +121 -7
- package/data/spdx-licenses.json +69 -0
- package/data/spdx.schema.json +845 -2
- package/lib/audit/index.js +25 -3
- package/lib/cli/bomAssembly.js +172 -4
- package/lib/cli/cliOptions.js +121 -17
- package/lib/cli/index.js +720 -902
- package/lib/cli/jsBom.js +156 -64
- package/lib/cli/jvmBom.js +602 -86
- package/lib/cli/managedBom.js +161 -19
- package/lib/cli/nativeBom.js +52 -5
- package/lib/core/boundedFile.js +344 -0
- package/lib/core/brotliProbe.js +182 -0
- package/lib/core/env.js +34 -0
- package/lib/core/fs.js +138 -3
- package/lib/core/globPatterns.js +218 -0
- package/lib/core/httpClient.js +98 -1
- package/lib/core/lockPaths.js +38 -0
- package/lib/core/paths.js +24 -1
- package/lib/core/processTree.js +100 -8
- package/lib/core/projectConfig.js +332 -25
- package/lib/core/toolRegistry.js +184 -0
- package/lib/ecosystems/cppEvidence.js +263 -106
- package/lib/ecosystems/cppIncludeResolver.js +16 -5
- package/lib/ecosystems/denoutils.js +2 -2
- package/lib/ecosystems/ecosystems.js +25 -10
- package/lib/ecosystems/gemHostProbe.js +301 -0
- package/lib/ecosystems/golem.js +3 -8
- package/lib/ecosystems/gradleutils.js +1909 -229
- package/lib/ecosystems/jsEvidence.js +90 -38
- package/lib/ecosystems/kosi.js +3 -5
- package/lib/ecosystems/npmVersionResolution.js +376 -0
- package/lib/ecosystems/parsers-bazel.js +107 -6
- package/lib/ecosystems/parsers-js.js +505 -22
- package/lib/ecosystems/parsers-misc.js +209 -20
- package/lib/ecosystems/parsers-python.js +178 -30
- package/lib/ecosystems/parsers-rust.js +117 -15
- package/lib/ecosystems/pythonutils.js +128 -2
- package/lib/ecosystems/remote/huggingface.js +22 -0
- package/lib/ecosystems/rubyutils.js +538 -31
- package/lib/ecosystems/rusi.js +2 -4
- package/lib/ecosystems/scalacliutils.js +2 -0
- package/lib/ecosystems/scalasem.js +798 -152
- package/lib/ecosystems/vendoredCode.js +237 -3
- package/lib/ecosystems/venvProbe.js +360 -0
- package/lib/evinser/evinser.js +536 -71
- package/lib/evinser/scalasem.js +5 -1
- package/lib/helpers/agenticToolutils.js +525 -94
- package/lib/helpers/bomSigner.js +43 -9
- package/lib/helpers/jssSigner.js +1276 -0
- package/lib/helpers/vsixutils.js +1574 -315
- package/lib/inventory/agentBlueprint.js +193 -0
- package/lib/inventory/agentToolNames.js +145 -0
- package/lib/inventory/aiCollector.js +153 -7
- package/lib/inventory/aiInventory.js +44 -8
- package/lib/inventory/aiProviders.js +324 -0
- package/lib/inventory/atomUtils.js +77 -0
- package/lib/inventory/bomUtils.js +8 -1
- package/lib/inventory/brotliDecoder.js +142 -0
- package/lib/inventory/buildToolRateLimit.js +1 -1
- package/lib/inventory/cbomutils.js +56 -7
- package/lib/inventory/ciParsers/githubActionsLock.js +821 -0
- package/lib/inventory/citations.js +31 -2
- package/lib/inventory/communityAiConfigParser.js +978 -80
- package/lib/inventory/cyclonedx20.js +152 -0
- package/lib/inventory/cyclonedx20Common.js +286 -0
- package/lib/inventory/cyclonedx20Derived.js +159 -0
- package/lib/inventory/cyclonedx20Parties.js +552 -0
- package/lib/inventory/cyclonedx20Read.js +768 -0
- package/lib/inventory/cyclonedx20ReadCommon.js +374 -0
- package/lib/inventory/cyclonedx20ReadComponents.js +692 -0
- package/lib/inventory/cyclonedx20ReadContext.js +380 -0
- package/lib/inventory/cyclonedx20ReadEvidence.js +466 -0
- package/lib/inventory/cyclonedx20ReadSections.js +599 -0
- package/lib/inventory/cyclonedx20Render.js +766 -0
- package/lib/inventory/cyclonedx20RenderComponents.js +716 -0
- package/lib/inventory/cyclonedx20RenderDefinitions.js +405 -0
- package/lib/inventory/cyclonedx20RenderEvidence.js +726 -0
- package/lib/inventory/cyclonedx20RenderHardware.js +203 -0
- package/lib/inventory/cyclonedx20RenderPatents.js +174 -0
- package/lib/inventory/cyclonedx20RenderRefIds.js +314 -0
- package/lib/inventory/cyclonedx20RenderSections.js +499 -0
- package/lib/inventory/cyclonedx20Tables.js +594 -0
- package/lib/inventory/deps.js +141 -13
- package/lib/inventory/dosai.js +375 -6
- package/lib/inventory/dosaiParsers.js +3 -6
- package/lib/inventory/dotnetRuntime.js +367 -0
- package/lib/inventory/ecosystemFormulationParsers.js +979 -0
- package/lib/inventory/envcontext.js +436 -48
- package/lib/inventory/evidenceUtils.js +13 -1
- package/lib/inventory/fetchBatch.js +1 -1
- package/lib/inventory/formulationParsers.js +124 -14
- package/lib/inventory/gtfobins.js +13 -0
- package/lib/inventory/hbom.js +45 -6
- package/lib/inventory/hbomLoader.js +166 -0
- package/lib/inventory/hostRuntimeProbe.js +686 -0
- package/lib/inventory/jvmLocalRepos.js +9 -2
- package/lib/inventory/jvmToolEnv.js +29 -0
- package/lib/inventory/licenseEnhancer.js +12 -0
- package/lib/inventory/mavenCentralMirror.js +534 -0
- package/lib/inventory/mcpConfigParser.js +5 -0
- package/lib/inventory/nodeBuildInfo.js +218 -0
- package/lib/inventory/nodeHostProbe.js +202 -0
- package/lib/inventory/occurrenceKey.js +90 -0
- package/lib/inventory/osPackageResolver.js +182 -0
- package/lib/inventory/phpBuildInfo.js +10 -59
- package/lib/inventory/phpHostProbe.js +32 -488
- package/lib/inventory/pqcMigration.js +426 -0
- package/lib/inventory/rubyBuildInfo.js +972 -0
- package/lib/inventory/rubyHostProbe.js +218 -0
- package/lib/inventory/rustFormulationParser.js +21 -10
- package/lib/inventory/scalaCoords.js +4 -3
- package/lib/inventory/scalaDedupe.js +440 -0
- package/lib/inventory/source.js +114 -8
- package/lib/managers/binary.js +337 -3
- package/lib/managers/docker.js +79 -0
- package/lib/parsers/huggingfaceManifest.js +9 -1
- package/lib/parsers/huggingfaceUtils.js +18 -0
- package/lib/parsers/kiroPermissions.js +166 -0
- package/lib/parsers/largeJson.js +28 -11
- package/lib/parsers/vscodeExtensionId.js +183 -0
- package/lib/server/server.js +48 -35
- package/lib/stages/postgen/postgen.js +41 -1
- package/lib/stages/postgen/ruleEngine.js +13 -5
- package/lib/stages/postgen/specVersionCompat.js +76 -0
- package/lib/stages/pregen/envAudit.js +1 -0
- package/lib/stages/pregen/pregen.js +114 -57
- package/lib/validator/bomValidator.js +14 -2
- package/lib/validator/complianceEngine.js +30 -3
- package/lib/validator/complianceRules.js +1416 -4
- package/lib/validator/generated/validate-1.6.mjs +1 -1
- package/lib/validator/generated/validate-1.7.mjs +1 -1
- package/lib/validator/generated/validate-2.0.mjs +57554 -13851
- package/lib/validator/index.js +49 -8
- package/lib/validator/reporters/json.js +6 -0
- package/package.json +11 -10
- package/types/bin/repl.d.ts.map +1 -1
- package/types/lib/audit/index.d.ts +6 -2
- package/types/lib/audit/index.d.ts.map +1 -1
- package/types/lib/cli/bomAssembly.d.ts +29 -1
- package/types/lib/cli/bomAssembly.d.ts.map +1 -1
- package/types/lib/cli/cliOptions.d.ts +6 -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 +3 -18
- package/types/lib/cli/jsBom.d.ts.map +1 -1
- package/types/lib/cli/jvmBom.d.ts +15 -0
- package/types/lib/cli/jvmBom.d.ts.map +1 -1
- package/types/lib/cli/managedBom.d.ts.map +1 -1
- package/types/lib/cli/nativeBom.d.ts.map +1 -1
- package/types/lib/core/boundedFile.d.ts +100 -0
- package/types/lib/core/boundedFile.d.ts.map +1 -0
- package/types/lib/core/brotliProbe.d.ts +37 -0
- package/types/lib/core/brotliProbe.d.ts.map +1 -0
- package/types/lib/core/env.d.ts +14 -0
- package/types/lib/core/env.d.ts.map +1 -1
- package/types/lib/core/fs.d.ts +4 -0
- package/types/lib/core/fs.d.ts.map +1 -1
- package/types/lib/core/globPatterns.d.ts +70 -0
- package/types/lib/core/globPatterns.d.ts.map +1 -0
- package/types/lib/core/httpClient.d.ts +24 -0
- package/types/lib/core/httpClient.d.ts.map +1 -1
- package/types/lib/core/lockPaths.d.ts +19 -0
- package/types/lib/core/lockPaths.d.ts.map +1 -0
- package/types/lib/core/paths.d.ts +9 -0
- package/types/lib/core/paths.d.ts.map +1 -1
- package/types/lib/core/processTree.d.ts +17 -4
- package/types/lib/core/processTree.d.ts.map +1 -1
- package/types/lib/core/projectConfig.d.ts +47 -8
- package/types/lib/core/projectConfig.d.ts.map +1 -1
- package/types/lib/core/toolRegistry.d.ts +36 -0
- package/types/lib/core/toolRegistry.d.ts.map +1 -0
- package/types/lib/ecosystems/cppEvidence.d.ts +40 -13
- package/types/lib/ecosystems/cppEvidence.d.ts.map +1 -1
- package/types/lib/ecosystems/cppIncludeResolver.d.ts +2 -1
- package/types/lib/ecosystems/cppIncludeResolver.d.ts.map +1 -1
- package/types/lib/ecosystems/ecosystems.d.ts.map +1 -1
- package/types/lib/ecosystems/gemHostProbe.d.ts +28 -0
- package/types/lib/ecosystems/gemHostProbe.d.ts.map +1 -0
- package/types/lib/ecosystems/golem.d.ts.map +1 -1
- package/types/lib/ecosystems/gradleutils.d.ts +294 -20
- package/types/lib/ecosystems/gradleutils.d.ts.map +1 -1
- package/types/lib/ecosystems/jsEvidence.d.ts +14 -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/npmVersionResolution.d.ts +119 -0
- package/types/lib/ecosystems/npmVersionResolution.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-bazel.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-js.d.ts +17 -20
- package/types/lib/ecosystems/parsers-js.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-misc.d.ts +19 -0
- package/types/lib/ecosystems/parsers-misc.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-python.d.ts +10 -0
- package/types/lib/ecosystems/parsers-python.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-rust.d.ts.map +1 -1
- package/types/lib/ecosystems/pythonutils.d.ts +19 -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 +144 -12
- package/types/lib/ecosystems/rubyutils.d.ts.map +1 -1
- package/types/lib/ecosystems/rusi.d.ts.map +1 -1
- package/types/lib/ecosystems/scalacliutils.d.ts.map +1 -1
- package/types/lib/ecosystems/scalasem.d.ts +58 -16
- package/types/lib/ecosystems/scalasem.d.ts.map +1 -1
- package/types/lib/ecosystems/vendoredCode.d.ts +26 -0
- package/types/lib/ecosystems/vendoredCode.d.ts.map +1 -1
- package/types/lib/ecosystems/venvProbe.d.ts +40 -0
- package/types/lib/ecosystems/venvProbe.d.ts.map +1 -0
- package/types/lib/evinser/evinser.d.ts +120 -13
- package/types/lib/evinser/evinser.d.ts.map +1 -1
- package/types/lib/evinser/scalasem.d.ts.map +1 -1
- package/types/lib/helpers/agenticToolutils.d.ts +53 -19
- package/types/lib/helpers/agenticToolutils.d.ts.map +1 -1
- package/types/lib/helpers/bomSigner.d.ts +20 -3
- package/types/lib/helpers/bomSigner.d.ts.map +1 -1
- package/types/lib/helpers/jssSigner.d.ts +288 -0
- package/types/lib/helpers/jssSigner.d.ts.map +1 -0
- package/types/lib/helpers/vsixutils.d.ts +303 -19
- package/types/lib/helpers/vsixutils.d.ts.map +1 -1
- package/types/lib/inventory/agentBlueprint.d.ts +70 -0
- package/types/lib/inventory/agentBlueprint.d.ts.map +1 -0
- package/types/lib/inventory/agentToolNames.d.ts +51 -0
- package/types/lib/inventory/agentToolNames.d.ts.map +1 -0
- package/types/lib/inventory/aiCollector.d.ts.map +1 -1
- package/types/lib/inventory/aiInventory.d.ts.map +1 -1
- package/types/lib/inventory/aiProviders.d.ts +85 -0
- package/types/lib/inventory/aiProviders.d.ts.map +1 -0
- package/types/lib/inventory/atomUtils.d.ts +19 -0
- package/types/lib/inventory/atomUtils.d.ts.map +1 -1
- package/types/lib/inventory/bomUtils.d.ts.map +1 -1
- package/types/lib/inventory/brotliDecoder.d.ts +58 -0
- package/types/lib/inventory/brotliDecoder.d.ts.map +1 -0
- package/types/lib/inventory/cbomutils.d.ts +17 -0
- package/types/lib/inventory/cbomutils.d.ts.map +1 -1
- package/types/lib/inventory/ciParsers/githubActionsLock.d.ts +101 -0
- package/types/lib/inventory/ciParsers/githubActionsLock.d.ts.map +1 -0
- package/types/lib/inventory/citations.d.ts +5 -0
- package/types/lib/inventory/citations.d.ts.map +1 -1
- package/types/lib/inventory/communityAiConfigParser.d.ts.map +1 -1
- package/types/lib/inventory/cyclonedx20.d.ts +99 -0
- package/types/lib/inventory/cyclonedx20.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20Common.d.ts +102 -0
- package/types/lib/inventory/cyclonedx20Common.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20Derived.d.ts +74 -0
- package/types/lib/inventory/cyclonedx20Derived.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20Parties.d.ts +91 -0
- package/types/lib/inventory/cyclonedx20Parties.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20Read.d.ts +51 -0
- package/types/lib/inventory/cyclonedx20Read.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20ReadCommon.d.ts +69 -0
- package/types/lib/inventory/cyclonedx20ReadCommon.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20ReadComponents.d.ts +77 -0
- package/types/lib/inventory/cyclonedx20ReadComponents.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20ReadContext.d.ts +118 -0
- package/types/lib/inventory/cyclonedx20ReadContext.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20ReadEvidence.d.ts +40 -0
- package/types/lib/inventory/cyclonedx20ReadEvidence.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20ReadSections.d.ts +45 -0
- package/types/lib/inventory/cyclonedx20ReadSections.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20Render.d.ts +53 -0
- package/types/lib/inventory/cyclonedx20Render.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20RenderComponents.d.ts +73 -0
- package/types/lib/inventory/cyclonedx20RenderComponents.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20RenderDefinitions.d.ts +29 -0
- package/types/lib/inventory/cyclonedx20RenderDefinitions.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20RenderEvidence.d.ts +110 -0
- package/types/lib/inventory/cyclonedx20RenderEvidence.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20RenderHardware.d.ts +42 -0
- package/types/lib/inventory/cyclonedx20RenderHardware.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20RenderPatents.d.ts +26 -0
- package/types/lib/inventory/cyclonedx20RenderPatents.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20RenderRefIds.d.ts +55 -0
- package/types/lib/inventory/cyclonedx20RenderRefIds.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20RenderSections.d.ts +45 -0
- package/types/lib/inventory/cyclonedx20RenderSections.d.ts.map +1 -0
- package/types/lib/inventory/cyclonedx20Tables.d.ts +134 -0
- package/types/lib/inventory/cyclonedx20Tables.d.ts.map +1 -0
- package/types/lib/inventory/deps.d.ts +35 -2
- package/types/lib/inventory/deps.d.ts.map +1 -1
- package/types/lib/inventory/dosai.d.ts +36 -1
- package/types/lib/inventory/dosai.d.ts.map +1 -1
- package/types/lib/inventory/dosaiParsers.d.ts.map +1 -1
- package/types/lib/inventory/dotnetRuntime.d.ts +91 -0
- package/types/lib/inventory/dotnetRuntime.d.ts.map +1 -0
- package/types/lib/inventory/ecosystemFormulationParsers.d.ts +73 -0
- package/types/lib/inventory/ecosystemFormulationParsers.d.ts.map +1 -0
- package/types/lib/inventory/envcontext.d.ts +74 -12
- package/types/lib/inventory/envcontext.d.ts.map +1 -1
- package/types/lib/inventory/evidenceUtils.d.ts.map +1 -1
- package/types/lib/inventory/formulationParsers.d.ts.map +1 -1
- package/types/lib/inventory/gtfobins.d.ts.map +1 -1
- package/types/lib/inventory/hbom.d.ts +11 -0
- package/types/lib/inventory/hbom.d.ts.map +1 -1
- package/types/lib/inventory/hbomLoader.d.ts +54 -0
- package/types/lib/inventory/hbomLoader.d.ts.map +1 -1
- package/types/lib/inventory/hostRuntimeProbe.d.ts +44 -0
- package/types/lib/inventory/hostRuntimeProbe.d.ts.map +1 -0
- package/types/lib/inventory/jvmLocalRepos.d.ts +5 -1
- package/types/lib/inventory/jvmLocalRepos.d.ts.map +1 -1
- package/types/lib/inventory/jvmToolEnv.d.ts +12 -0
- package/types/lib/inventory/jvmToolEnv.d.ts.map +1 -1
- package/types/lib/inventory/licenseEnhancer.d.ts.map +1 -1
- package/types/lib/inventory/mavenCentralMirror.d.ts +170 -0
- package/types/lib/inventory/mavenCentralMirror.d.ts.map +1 -0
- package/types/lib/inventory/mcpConfigParser.d.ts.map +1 -1
- package/types/lib/inventory/nodeBuildInfo.d.ts +95 -0
- package/types/lib/inventory/nodeBuildInfo.d.ts.map +1 -0
- package/types/lib/inventory/nodeHostProbe.d.ts +15 -0
- package/types/lib/inventory/nodeHostProbe.d.ts.map +1 -0
- package/types/lib/inventory/occurrenceKey.d.ts +52 -0
- package/types/lib/inventory/occurrenceKey.d.ts.map +1 -0
- package/types/lib/inventory/osPackageResolver.d.ts +38 -0
- package/types/lib/inventory/osPackageResolver.d.ts.map +1 -1
- package/types/lib/inventory/phpBuildInfo.d.ts.map +1 -1
- package/types/lib/inventory/phpHostProbe.d.ts.map +1 -1
- package/types/lib/inventory/pqcMigration.d.ts +84 -0
- package/types/lib/inventory/pqcMigration.d.ts.map +1 -0
- package/types/lib/inventory/rubyBuildInfo.d.ts +271 -0
- package/types/lib/inventory/rubyBuildInfo.d.ts.map +1 -0
- package/types/lib/inventory/rubyHostProbe.d.ts +47 -0
- package/types/lib/inventory/rubyHostProbe.d.ts.map +1 -0
- package/types/lib/inventory/rustFormulationParser.d.ts +7 -2
- package/types/lib/inventory/rustFormulationParser.d.ts.map +1 -1
- package/types/lib/inventory/scalaCoords.d.ts.map +1 -1
- package/types/lib/inventory/scalaDedupe.d.ts +43 -0
- package/types/lib/inventory/scalaDedupe.d.ts.map +1 -0
- package/types/lib/inventory/source.d.ts +25 -0
- package/types/lib/inventory/source.d.ts.map +1 -1
- 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/parsers/huggingfaceManifest.d.ts +10 -1
- package/types/lib/parsers/huggingfaceManifest.d.ts.map +1 -1
- package/types/lib/parsers/huggingfaceUtils.d.ts +12 -0
- package/types/lib/parsers/huggingfaceUtils.d.ts.map +1 -1
- package/types/lib/parsers/kiroPermissions.d.ts +62 -0
- package/types/lib/parsers/kiroPermissions.d.ts.map +1 -0
- package/types/lib/parsers/largeJson.d.ts +4 -3
- package/types/lib/parsers/largeJson.d.ts.map +1 -1
- package/types/lib/parsers/vscodeExtensionId.d.ts +48 -0
- package/types/lib/parsers/vscodeExtensionId.d.ts.map +1 -0
- package/types/lib/server/server.d.ts.map +1 -1
- package/types/lib/stages/postgen/postgen.d.ts +7 -0
- package/types/lib/stages/postgen/postgen.d.ts.map +1 -1
- package/types/lib/stages/postgen/ruleEngine.d.ts.map +1 -1
- package/types/lib/stages/postgen/specVersionCompat.d.ts +25 -0
- package/types/lib/stages/postgen/specVersionCompat.d.ts.map +1 -1
- package/types/lib/stages/pregen/envAudit.d.ts.map +1 -1
- package/types/lib/stages/pregen/pregen.d.ts +12 -8
- package/types/lib/stages/pregen/pregen.d.ts.map +1 -1
- package/types/lib/validator/bomValidator.d.ts +5 -1
- package/types/lib/validator/bomValidator.d.ts.map +1 -1
- package/types/lib/validator/complianceEngine.d.ts +4 -4
- package/types/lib/validator/complianceEngine.d.ts.map +1 -1
- package/types/lib/validator/complianceRules.d.ts +14 -2
- package/types/lib/validator/complianceRules.d.ts.map +1 -1
- package/types/lib/validator/index.d.ts +10 -0
- package/types/lib/validator/index.d.ts.map +1 -1
- package/types/lib/validator/reporters/json.d.ts.map +1 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CycloneDX 2.0 rendering and reading.
|
|
3
|
+
*
|
|
4
|
+
* cdxgen assembles every BOM in the CycloneDX 1.x shape and converts to the
|
|
5
|
+
* requested spec version at the end of the pipeline (see
|
|
6
|
+
* lib/stages/postgen/specVersionCompat.js). The 2.0 draft is a structural
|
|
7
|
+
* rewrite rather than an additive change, so the conversion lives here, as two
|
|
8
|
+
* pure functions plus small helpers, instead of inside the compat walker:
|
|
9
|
+
*
|
|
10
|
+
* - `renderCycloneDx20(internalBom, context)` turns the 1.x-shaped internal
|
|
11
|
+
* model into a 2.0 document. It never mutates its input, and its output
|
|
12
|
+
* depends only on the model and the optional context (the cdx-hbom
|
|
13
|
+
* hardware mapper, see hbomLoader.js: hardwareRenderContext).
|
|
14
|
+
* `renderCycloneDx20WithReport(internalBom, context)` does the same and
|
|
15
|
+
* also returns the counts of everything the render could not carry.
|
|
16
|
+
* - `readCycloneDx20(bom20)` turns a 2.0 document into the internal 1.x-shaped
|
|
17
|
+
* model, reporting everything it could not carry in `losses`.
|
|
18
|
+
* - `loadBomForAnalysis(bomJson)` is the single entry point every BOM reader
|
|
19
|
+
* uses; it returns the document as is for 1.x and calls readCycloneDx20 for
|
|
20
|
+
* 2.0, so no reader learns the 2.0 shape.
|
|
21
|
+
* - `getInternalBom(bomNSData)` and `refreshRenderedBom(bomNSData, options)`
|
|
22
|
+
* are the generation-side half: postProcess keeps the 1.x model on
|
|
23
|
+
* `bomNSData.internalBomJson` at 2.0, and the writer re-renders once after
|
|
24
|
+
* the last mutation.
|
|
25
|
+
*
|
|
26
|
+
* Every field name below is quoted from the pinned draft schema
|
|
27
|
+
* (data/cyclonedx-2.0-bundled.schema.json, CycloneDX/specification 2.0-dev at
|
|
28
|
+
* ea8c3605829d1da13339a0790b6da73548e42a6b); citations give the `$defs` path.
|
|
29
|
+
*/
|
|
30
|
+
export { readCycloneDx20 } from "./cyclonedx20Read.js";
|
|
31
|
+
export { renderCycloneDx20, renderCycloneDx20WithReport, } from "./cyclonedx20Render.js";
|
|
32
|
+
export { CDX20_INTERNAL_SECTIONS_KEY, CDXGEN_PARTY_REF_ID, DEPENDENCY_TRACK_CDX20_ERROR, } from "./cyclonedx20Tables.js";
|
|
33
|
+
/**
|
|
34
|
+
* Load any CycloneDX BOM for analysis: the document as is for 1.x, the
|
|
35
|
+
* internal 1.x-shaped model for 2.0.
|
|
36
|
+
*
|
|
37
|
+
* A document whose specVersion is 2.0 or later, or which has a specFormat, is
|
|
38
|
+
* read as 2.0, and the reader reports stray 1.x members such as
|
|
39
|
+
* `components` as losses. A model the 2.0 reader or the 2.0 compatibility
|
|
40
|
+
* pass produced carries the internal model mark (markInternalModel) and is
|
|
41
|
+
* returned as is; cdxgen hands that model to the evidence analysis in memory
|
|
42
|
+
* (evinse's `inputBomJson`), because the mark does not survive JSON. The
|
|
43
|
+
* internal sections key is never trusted on a 1.x document: the returned
|
|
44
|
+
* copy leaves it out, so it cannot reach a 2.0 render.
|
|
45
|
+
*
|
|
46
|
+
* @param {object} bomJson Parsed CycloneDX BOM
|
|
47
|
+
* @returns {{internalBom: object, specVersion: string, losses: Array<{pointer: string, reason: string}>}}
|
|
48
|
+
* @throws {Error} With a short message when the 2.0 reader fails on the
|
|
49
|
+
* document
|
|
50
|
+
*/
|
|
51
|
+
export declare function loadBomForAnalysis(bomJson: object): {
|
|
52
|
+
internalBom: object;
|
|
53
|
+
specVersion: string;
|
|
54
|
+
losses: Array<{
|
|
55
|
+
pointer: string;
|
|
56
|
+
reason: string;
|
|
57
|
+
}>;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* The one-line notice a reader prints when loading a 2.0 document lost
|
|
61
|
+
* data: the number of losses, with the details left to thoughtLog.
|
|
62
|
+
*
|
|
63
|
+
* @param {Array<{pointer: string, reason: string}>} losses Reader losses
|
|
64
|
+
* @returns {string} The notice
|
|
65
|
+
*/
|
|
66
|
+
export declare function formatReadLossNotice(losses: Array<{
|
|
67
|
+
pointer: string;
|
|
68
|
+
reason: string;
|
|
69
|
+
}>): string;
|
|
70
|
+
/**
|
|
71
|
+
* Return the 1.x-shaped model of a generation run. At 1.x the rendered BOM is
|
|
72
|
+
* the internal model, so this always yields something readers can walk.
|
|
73
|
+
*
|
|
74
|
+
* @param {{bomJson?: object, internalBomJson?: object}} bomNSData
|
|
75
|
+
* @returns {object} The 1.x-shaped BOM
|
|
76
|
+
*/
|
|
77
|
+
export declare function getInternalBom(bomNSData: {
|
|
78
|
+
bomJson?: object;
|
|
79
|
+
internalBomJson?: object;
|
|
80
|
+
}): object;
|
|
81
|
+
/**
|
|
82
|
+
* Re-render the 2.0 document after a post-postProcess mutation of the
|
|
83
|
+
* internal model, with the render context postProcess used
|
|
84
|
+
* (`bomNSData.renderContext`). A no-op at 1.x, which keeps those versions
|
|
85
|
+
* byte-identical.
|
|
86
|
+
*
|
|
87
|
+
* @param {{bomJson?: object, internalBomJson?: object, renderContext?: object}} bomNSData
|
|
88
|
+
* @param {object} options CLI options carrying `specVersion`
|
|
89
|
+
* @returns {{bomJson?: object, internalBomJson?: object}} The same bomNSData
|
|
90
|
+
*/
|
|
91
|
+
export declare function refreshRenderedBom(bomNSData: {
|
|
92
|
+
bomJson?: object;
|
|
93
|
+
internalBomJson?: object;
|
|
94
|
+
renderContext?: object;
|
|
95
|
+
}, options: object): {
|
|
96
|
+
bomJson?: object;
|
|
97
|
+
internalBomJson?: object;
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=cyclonedx20.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cyclonedx20.d.ts","sourceRoot":"","sources":["../../../lib/inventory/cyclonedx20.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAUH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAL/B,MAK+B,GAJ7B;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAAA;CAAC,CAuCxG;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAHhC,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAGP,GAF9B,MAAM,CAKlB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAH7B;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAGd,GAF3B,MAAM,CAIlB;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAJjC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAIlC,EAAE,OAAO,EAH1C,MAG0C,GAFxC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAC,CAgBxD"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small shared helpers for the CycloneDX 2.0 renderer and reader: type
|
|
3
|
+
* guards, cloning, render counters and the environment-variable shape change.
|
|
4
|
+
*/
|
|
5
|
+
/** True for a plain object (not null, not an array). */
|
|
6
|
+
export declare const isObjectRecord: (value: any) => boolean;
|
|
7
|
+
/** True for a string with at least one character. */
|
|
8
|
+
export declare const isNonEmptyString: (value: any) => boolean;
|
|
9
|
+
/** structuredClone that passes `undefined` through. */
|
|
10
|
+
export declare const clone: (value: any) => any;
|
|
11
|
+
export declare const isBomLink: (value: any) => boolean;
|
|
12
|
+
/**
|
|
13
|
+
* A fresh, empty set of render counters.
|
|
14
|
+
*
|
|
15
|
+
* @param {object} [shadows] 2.0 originals kept by readCycloneDx20 (see
|
|
16
|
+
* takeShadow)
|
|
17
|
+
* @param {{toolRefId?: string, timestamp?: string}} [claims] What identity
|
|
18
|
+
* claims are attributed with (see identityClaimContext)
|
|
19
|
+
* @returns {object} Render counters
|
|
20
|
+
*/
|
|
21
|
+
export declare function createRenderStats(shadows?: object, claims?: {
|
|
22
|
+
toolRefId?: string;
|
|
23
|
+
timestamp?: string;
|
|
24
|
+
}): object;
|
|
25
|
+
/**
|
|
26
|
+
* The key a 1.x value is shadowed under: the SHA-256 of its JSON. The
|
|
27
|
+
* reader and the renderer serialize the same object the same way, so an
|
|
28
|
+
* unchanged value finds its 2.0 original again.
|
|
29
|
+
*
|
|
30
|
+
* @param {*} value 1.x value
|
|
31
|
+
* @returns {string} Hex digest
|
|
32
|
+
*/
|
|
33
|
+
export declare function shadowKey(value: any): string;
|
|
34
|
+
/**
|
|
35
|
+
* The 2.0 original readCycloneDx20 kept for this unchanged 1.x value, as a
|
|
36
|
+
* fresh clone, or undefined. Identical 1.x values kept for several originals
|
|
37
|
+
* get them back in document order. Never mutates the stored shadows.
|
|
38
|
+
*
|
|
39
|
+
* @param {object} stats Render counters from createRenderStats
|
|
40
|
+
* @param {string} kind Shadow namespace (component, metadata, …)
|
|
41
|
+
* @param {*} value 1.x value about to be rendered
|
|
42
|
+
* @returns {*} The 2.0 original or undefined
|
|
43
|
+
*/
|
|
44
|
+
export declare function takeShadow(stats: object, kind: string, value: any): any;
|
|
45
|
+
/**
|
|
46
|
+
* The single 2.0 original readCycloneDx20 kept for this unchanged 1.x value,
|
|
47
|
+
* as a fresh clone, or undefined. Unlike takeShadow nothing is consumed: the
|
|
48
|
+
* reader registers a key here only when every entry it read under that key
|
|
49
|
+
* had the same original, so the lookup does not depend on render order.
|
|
50
|
+
*
|
|
51
|
+
* @param {object} stats Render counters from createRenderStats
|
|
52
|
+
* @param {string} kind Shadow namespace (identity)
|
|
53
|
+
* @param {*} value 1.x value about to be rendered
|
|
54
|
+
* @returns {*} The 2.0 original or undefined
|
|
55
|
+
*/
|
|
56
|
+
export declare function peekShadow(stats: object, kind: string, value: any): any;
|
|
57
|
+
/** Count one dropped or rewritten value under a stable label. */
|
|
58
|
+
export declare function countDrop(stats: any, label: any, count?: number): void;
|
|
59
|
+
/**
|
|
60
|
+
* Count one value the render rewrote without losing data (a duplicate refId
|
|
61
|
+
* turned into a reference, a retargeted annotation subject).
|
|
62
|
+
*/
|
|
63
|
+
export declare function countRewrite(stats: any, label: any, count?: number): void;
|
|
64
|
+
/**
|
|
65
|
+
* Count a 1.x JSF `signature` the render leaves out: it signs the 1.x
|
|
66
|
+
* serialization, so it cannot verify over the re-rendered 2.0 document, and
|
|
67
|
+
* 2.0 `signatures` hold JSS signatures
|
|
68
|
+
* (#/$defs/cyclonedx-common-2.0/$defs/signatures).
|
|
69
|
+
*/
|
|
70
|
+
export declare function countSignatureDrop(stats: any, path: any): void;
|
|
71
|
+
/** Count every defined key of `source` that `handled` does not list. */
|
|
72
|
+
export declare function countUnmapped(stats: any, prefix: any, source: any, handled: any): void;
|
|
73
|
+
/** Clone the listed fields of `source` that are defined onto `target`. */
|
|
74
|
+
export declare function copyDefined(target: any, source: any, fields: any): void;
|
|
75
|
+
/** Remove duplicate entries (by JSON value) for `uniqueItems` arrays. */
|
|
76
|
+
export declare function uniqueByValue(values: any): any[];
|
|
77
|
+
/** Split a 1.x `author` string the way specVersionCompat does. */
|
|
78
|
+
export declare function authorStringToNames(authorValue: any): string[];
|
|
79
|
+
/** A 1.x scalar-or-array identifier field as a list of strings. */
|
|
80
|
+
export declare function identifierValues(value: any): any[];
|
|
81
|
+
/** Assign `value` to `out[key]` unless it is undefined. */
|
|
82
|
+
export declare function setDefined(out: any, key: any, value: any): void;
|
|
83
|
+
/**
|
|
84
|
+
* Convert a 1.x `environmentVars` array of {name, value} entries into the 2.0
|
|
85
|
+
* map of names to values
|
|
86
|
+
* (#/$defs/cyclonedx-formulation-2.0/$defs/environmentVars). Reverse for read.
|
|
87
|
+
* Entries the map cannot hold are counted when `stats` is given.
|
|
88
|
+
*/
|
|
89
|
+
export declare function convertEnvironmentVars(value: any, stats: any): any;
|
|
90
|
+
/** Turn a 2.0 environmentVars map back into the 1.x {name, value} array. */
|
|
91
|
+
export declare function reverseEnvironmentVars(value: any): any;
|
|
92
|
+
/** Every refId string declared anywhere under the given roots. */
|
|
93
|
+
export declare function collectDeclaredRefIds(roots: any): Set<any>;
|
|
94
|
+
/**
|
|
95
|
+
* True when any `party` member (a refId string or a partyReference) or any
|
|
96
|
+
* `ref` member below `node` names `refId`. Restored 2.0 originals reference
|
|
97
|
+
* a derived party (see derivedPartyDeclarations) without passing through the
|
|
98
|
+
* converters, so its declaration follows the rendered document rather than a
|
|
99
|
+
* render flag.
|
|
100
|
+
*/
|
|
101
|
+
export declare function referencesParty(node: any, refId: any): any;
|
|
102
|
+
//# sourceMappingURL=cyclonedx20Common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cyclonedx20Common.d.ts","sourceRoot":"","sources":["../../../lib/inventory/cyclonedx20Common.js"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,wDAAwD;AACxD,eAAO,MAAM,cAAc,yBAC2C,CAAC;AAEvE,qDAAqD;AACrD,eAAO,MAAM,gBAAgB,yBACkB,CAAC;AAEhD,uDAAuD;AACvD,eAAO,MAAM,KAAK,qBACwC,CAAC;AAI3D,eAAO,MAAM,SAAS,yBACqC,CAAC;AAE5D;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,AANtC,CAEA,EAFQ,MAM8B,EAAE,MAAM,AAJ9C,CAEA,EAFQ;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAID,GAFpC,MAAM,CAclB;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAHpB,GAGoB,GAFlB,MAAM,CAIlB;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,KAAK,EALrB,MAKqB,EAAE,IAAI,EAJ3B,MAI2B,EAAE,KAAK,EAHlC,GAGkC,GAFhC,GAAC,CAmBb;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,EALrB,MAKqB,EAAE,IAAI,EAJ3B,MAI2B,EAAE,KAAK,EAHlC,GAGkC,GAFhC,GAAC,CAWb;AAED,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,KAAK,KAAA,EAAE,KAAK,KAAA,EAAE,KAAK,SAAI,QAEhD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,KAAA,EAAE,KAAK,KAAA,EAAE,KAAK,SAAI,QAEnD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA,QAK7C;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA,EAAE,MAAM,KAAA,EAAE,OAAO,KAAA,QAM3D;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,MAAM,KAAA,EAAE,MAAM,KAAA,EAAE,MAAM,KAAA,QAMjD;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,MAAM,KAAA,SAWnC;AAED,kEAAkE;AAClE,wBAAgB,mBAAmB,CAAC,WAAW,KAAA,YAQ9C;AAED,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,KAAK,KAAA,SAKrC;AAED,2DAA2D;AAC3D,wBAAgB,UAAU,CAAC,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,KAAK,KAAA,QAIzC;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,KAAA,EAAE,KAAK,KAAA,OAoBlD;AAQD,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,KAAK,KAAA,OAQ3C;AAED,kEAAkE;AAClE,wBAAgB,qBAAqB,CAAC,KAAK,KAAA,YAmB1C;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA,OAiB1C"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The 2.0 sections the renderer derives from the 1.x-shaped internal model
|
|
3
|
+
* rather than converts: post-quantum migration risks (pqcMigration.js,
|
|
4
|
+
* #4592), and the coding-agent parties and behavioral blueprint
|
|
5
|
+
* (agentBlueprint.js, #4593).
|
|
6
|
+
*
|
|
7
|
+
* A model read from 2.0 carries its 2.0-only sections (risks, blueprints,
|
|
8
|
+
* parties) for 2.0 output. Derived entries in them are recognised by refId
|
|
9
|
+
* (`risk-pqc-*`, `blueprint-declared-agents`, agent parties `party-agent-*`
|
|
10
|
+
* of system kind `agent`). The renderer drops carried derived entries and
|
|
11
|
+
* derives them again from the model, so they follow edits to the model and
|
|
12
|
+
* are never declared twice. Every other carried entry is kept, first, and a
|
|
13
|
+
* derived entry never replaces a carried entry with the same refId.
|
|
14
|
+
*
|
|
15
|
+
* Only cdxgen's own analysis is derived: the sections are derived only when
|
|
16
|
+
* the model's `metadata.tools` lists cdxgen with a bom-ref, the rule
|
|
17
|
+
* identityClaimContext applies to cdxgen's identity claims. Another tool's
|
|
18
|
+
* BOM converted with `cdx-convert --to 2.0` gets no derived section.
|
|
19
|
+
*/
|
|
20
|
+
/** A risk entry renderCycloneDx20 derives (see collectPqcRisks). */
|
|
21
|
+
export declare const isDerivedRisk: (risk: any) => boolean;
|
|
22
|
+
/** The blueprint renderCycloneDx20 derives (see collectAgentBehaviour). */
|
|
23
|
+
export declare const isDerivedBlueprint: (blueprint: any) => boolean;
|
|
24
|
+
/** An agent party renderCycloneDx20 derives (see collectAgentBehaviour). */
|
|
25
|
+
export declare const isDerivedAgentParty: (party: any) => boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Does the model's `metadata.tools` list cdxgen with a bom-ref? The same
|
|
28
|
+
* test decides whether cdxgen's identity claims are written.
|
|
29
|
+
*
|
|
30
|
+
* @param {object} internalBom The 1.x-shaped internal model
|
|
31
|
+
* @returns {boolean} True when cdxgen is a listed tool
|
|
32
|
+
*/
|
|
33
|
+
export declare function isCdxgenListedTool(internalBom: object): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Derive the 2.0 sections of an internal model; all empty unless cdxgen is a
|
|
36
|
+
* listed tool (isCdxgenListedTool).
|
|
37
|
+
*
|
|
38
|
+
* @param {object} internalBom The 1.x-shaped internal model
|
|
39
|
+
* @returns {{risks: object[], agentParties: object[], blueprints: object[]}}
|
|
40
|
+
*/
|
|
41
|
+
export declare function deriveCycloneDx20Sections(internalBom: object): {
|
|
42
|
+
risks: object[];
|
|
43
|
+
agentParties: object[];
|
|
44
|
+
blueprints: object[];
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Add the derived risks and blueprint to a rendered document whose carried
|
|
48
|
+
* 2.0 sections are already in place, and return the parties to declare: the
|
|
49
|
+
* carried parties without derived agent parties, then the derived ones.
|
|
50
|
+
*
|
|
51
|
+
* @param {object} out The document being rendered
|
|
52
|
+
* @param {object[]} carriedParties Parties carried from a 2.0 read
|
|
53
|
+
* @param {object} internalBom The internal model the document renders
|
|
54
|
+
* @returns {object[]} The parties to declare before the cdxgen party
|
|
55
|
+
*/
|
|
56
|
+
export declare function appendDerivedSections(out: object, carriedParties: object[], internalBom: object): object[];
|
|
57
|
+
/**
|
|
58
|
+
* Split the derived entries out of a list read from 2.0. An entry that is
|
|
59
|
+
* what the renderer derives again from the read model is dropped without a
|
|
60
|
+
* loss; a derived-looking entry that differs is dropped too (the renderer
|
|
61
|
+
* would replace it), and its index is returned so the reader reports the
|
|
62
|
+
* loss.
|
|
63
|
+
*
|
|
64
|
+
* @param {object[]} entries The 2.0 list (risks, blueprints, parties)
|
|
65
|
+
* @param {object[]} derived What the renderer derives from the read model
|
|
66
|
+
* @param {Function} isDerived Recogniser for derived entries
|
|
67
|
+
* @returns {{kept: object[], differing: number[]}} The entries to carry, and
|
|
68
|
+
* the indexes of dropped entries that differ from the derivation
|
|
69
|
+
*/
|
|
70
|
+
export declare function splitDerivedEntries(entries: object[], derived: object[], isDerived: Function): {
|
|
71
|
+
kept: object[];
|
|
72
|
+
differing: number[];
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=cyclonedx20Derived.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cyclonedx20Derived.d.ts","sourceRoot":"","sources":["../../../lib/inventory/cyclonedx20Derived.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAgBH,oEAAoE;AACpE,eAAO,MAAM,aAAa,wBACuB,CAAC;AAElD,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,6BACc,CAAC;AAE9C,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,yBAEC,CAAC;AAElC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAHnC,MAGmC,GAFjC,OAAO,CAInB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAH1C,MAG0C,GAFxC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAC,CAY3E;AAWD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAL9B,MAK8B,EAAE,cAAc,EAJ9C,MAAM,EAIwC,EAAE,WAAW,EAH3D,MAG2D,GAFzD,MAAM,EAAE,CAqCpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EANhC,MAAM,EAM0B,EAAE,OAAO,EALzC,MAAM,EAKmC,EAAE,SAAS,UAAA,GAHlD;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAC,CAejD"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversions between the 1.x organizational entities and contacts and the
|
|
3
|
+
* CycloneDX 2.0 parties (#/$defs/cyclonedx-party-2.0) and common entities
|
|
4
|
+
* (#/$defs/cyclonedx-common-2.0).
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* A person party playing `role` for a 1.x contact. The contact's `bom-ref`
|
|
8
|
+
* is the party's refId (#/$defs/cyclonedx-party-2.0/$defs/party).
|
|
9
|
+
*
|
|
10
|
+
* @param {object|string} contact 1.x organizationalContact
|
|
11
|
+
* @param {string} role Predefined role
|
|
12
|
+
* @param {object} stats Render counters
|
|
13
|
+
* @returns {object|undefined} 2.0 party
|
|
14
|
+
*/
|
|
15
|
+
export declare function contactToParty(contact: object | string, role: string, stats: object): object | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Convert a 1.x organizationalEntity into 2.0 parties playing `role`
|
|
18
|
+
* (#/$defs/cyclonedx-party-2.0/$defs/party, required `[roles]`, exactly one
|
|
19
|
+
* identity sub-shape). The organization
|
|
20
|
+
* (#/$defs/cyclonedx-party-2.0/$defs/organization) takes `url` as
|
|
21
|
+
* `[{url}]` and `addresses` as an array and has no `bom-ref` or `contact`, so
|
|
22
|
+
* every 1.x contact becomes its own person party with the same role.
|
|
23
|
+
*/
|
|
24
|
+
export declare function entityToParties(entity: any, role: any, stats: any): object[];
|
|
25
|
+
/**
|
|
26
|
+
* Convert a 1.x organizationalContact to the 2.0 common organizationalContact
|
|
27
|
+
* (#/$defs/cyclonedx-common-2.0/$defs/organizationalContact), which renames
|
|
28
|
+
* `bom-ref` to `refId`. Used by metadata authors and annotators.
|
|
29
|
+
*/
|
|
30
|
+
export declare function toCommonContact(contact: any, stats: any): {
|
|
31
|
+
name: any;
|
|
32
|
+
} | {
|
|
33
|
+
refId: any;
|
|
34
|
+
} | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Convert a 1.x organizationalEntity to the 2.0 common organizationalEntity
|
|
37
|
+
* (#/$defs/cyclonedx-common-2.0/$defs/organizationalEntity), used by
|
|
38
|
+
* metadata.supplier, metadata.manufacturer and annotator.organization. It
|
|
39
|
+
* keeps `url` strings and `contact`, and renames `bom-ref` to `refId`.
|
|
40
|
+
*/
|
|
41
|
+
export declare function toCommonEntity(entity: any, stats: any): {
|
|
42
|
+
refId: any;
|
|
43
|
+
name: any;
|
|
44
|
+
address: {
|
|
45
|
+
refId: any;
|
|
46
|
+
};
|
|
47
|
+
url: any[];
|
|
48
|
+
contact: any;
|
|
49
|
+
} | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* Convert the 1.x party-ish component fields into `parties`
|
|
52
|
+
* (#/$defs/cyclonedx-party-2.0/$defs/party). `author` strings and `authors`
|
|
53
|
+
* contacts become persons with the `author` role, `publisher` an organization
|
|
54
|
+
* with the `publisher` role, and supplier/manufacturer organizations keep
|
|
55
|
+
* their roles.
|
|
56
|
+
*/
|
|
57
|
+
export declare function collectParties(component: any, stats: any): object[];
|
|
58
|
+
/**
|
|
59
|
+
* Read 2.0 component or service `parties` into the 1.x fields
|
|
60
|
+
* (`supplier`, `manufacturer`, `authors`, `publisher`, `provider`). A person
|
|
61
|
+
* playing the supplier, manufacturer or provider role becomes a contact of
|
|
62
|
+
* that organization, the inverse of entityToParties. Party references resolve
|
|
63
|
+
* against definitions.parties. Everything else is a loss.
|
|
64
|
+
*
|
|
65
|
+
* @param {object} ctx Reader context
|
|
66
|
+
* @param {Array} parties 2.0 parties
|
|
67
|
+
* @param {string} pointer JSON pointer of `parties`
|
|
68
|
+
* @param {object} roleFields Roles to read (subset of PARTY_ROLE_FIELDS_1X)
|
|
69
|
+
* @returns {object} 1.x fields by name
|
|
70
|
+
*/
|
|
71
|
+
export declare function reverseParties(ctx: object, parties: any[], pointer: string, roleFields: object): object;
|
|
72
|
+
/**
|
|
73
|
+
* Read one 2.0 party (inline or a partyReference) whose roles `roleFields`
|
|
74
|
+
* lists: its roles, the 1.x organization or contact it describes, and the
|
|
75
|
+
* pointer of the party object. Unlisted roles and members are losses.
|
|
76
|
+
*
|
|
77
|
+
* @param {object} ctx Reader context
|
|
78
|
+
* @param {object} entry 2.0 party or partyReference
|
|
79
|
+
* @param {string} pointer JSON pointer of `entry`
|
|
80
|
+
* @param {object} roleFields Role names to read, as keys
|
|
81
|
+
* @returns {{roles: string[], identity: {kind: string, identity: object}, pointer: string}|undefined}
|
|
82
|
+
*/
|
|
83
|
+
export declare function readParty(ctx: object, entry: object, pointer: string, roleFields: object): {
|
|
84
|
+
roles: string[];
|
|
85
|
+
identity: {
|
|
86
|
+
kind: string;
|
|
87
|
+
identity: object;
|
|
88
|
+
};
|
|
89
|
+
pointer: string;
|
|
90
|
+
} | undefined;
|
|
91
|
+
//# sourceMappingURL=cyclonedx20Parties.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cyclonedx20Parties.d.ts","sourceRoot":"","sources":["../../../lib/inventory/cyclonedx20Parties.js"],"names":[],"mappings":"AAAA;;;;GAIG;AAoFH;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAL3B,MAAM,GAAC,MAKoB,EAAE,IAAI,EAJjC,MAIiC,EAAE,KAAK,EAHxC,MAGwC,GAFtC,MAAM,GAAC,SAAS,CAc5B;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,KAAA,EAAE,IAAI,KAAA,EAAE,KAAK,KAAA,YA4DlD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;;;;cAwB7C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,KAAA,EAAE,KAAK,KAAA;;;;;;;;cAiC3C;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,SAAS,KAAA,EAAE,KAAK,KAAA,YA0B9C;AAiND;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,GAAG,EANvB,MAMuB,EAAE,OAAO,OAAA,EAAE,OAAO,EAJzC,MAIyC,EAAE,UAAU,EAHrD,MAGqD,GAFnD,MAAM,CAqBlB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,GAAG,EANlB,MAMkB,EAAE,KAAK,EALzB,MAKyB,EAAE,OAAO,EAJlC,MAIkC,EAAE,UAAU,EAH9C,MAG8C,GAF5C;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GAAC,SAAS,CAapG"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read a CycloneDX 2.0 document into the 1.x-shaped internal model. The
|
|
3
|
+
* public entry point is re-exported from cyclonedx20.js.
|
|
4
|
+
*
|
|
5
|
+
* Where definitions.components entries go (2.0 records no membership, so the
|
|
6
|
+
* rule is fixed and deterministic, applied in document order):
|
|
7
|
+
*
|
|
8
|
+
* 0. An entry whose refId a formula lists in its
|
|
9
|
+
* `cdx:formulation:componentRefs` property (a JSON array of refIds, which
|
|
10
|
+
* renderCycloneDx20 writes for a subject-less document) is a component of
|
|
11
|
+
* every formula that lists it.
|
|
12
|
+
* 1. An entry whose refId a formula references (a `ref` member, such as a
|
|
13
|
+
* resource reference, anywhere in its tree) is a component of the first
|
|
14
|
+
* such formula. Other strings that happen to equal the refId, such as a
|
|
15
|
+
* task type, do not count.
|
|
16
|
+
* 2. In a document with inventories, an entry a componentReference the
|
|
17
|
+
* reader resolves points to (from an inventory, a tool, an annotator, a
|
|
18
|
+
* vulnerability or another definitions component) stays in definitions
|
|
19
|
+
* (kept for 2.0 output); its content reaches 1.x through the referencing
|
|
20
|
+
* entries.
|
|
21
|
+
* 3. In a document with inventories, any other entry is a formula component
|
|
22
|
+
* when the document has a formulation (the renderer moves 1.x
|
|
23
|
+
* formula.components there), and otherwise stays in definitions with a
|
|
24
|
+
* loss: 1.x has no home for it.
|
|
25
|
+
* 4. In a document without inventories (the renderer puts a subject-less
|
|
26
|
+
* document's components there), any other entry is a root component.
|
|
27
|
+
* Entries without a refId follow the same rules and are never dropped.
|
|
28
|
+
* 5. Before all of these, an entry whose type 1.x does not have (`material`)
|
|
29
|
+
* stays in definitions with a loss.
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* Read a 2.0 document into the internal 1.x-shaped model. Never throws on a
|
|
33
|
+
* schema-valid 2.0 document. Objects nested deeper than MAX_READ_DEPTH are
|
|
34
|
+
* left out, each with a loss. The returned model carries the internal model
|
|
35
|
+
* mark (markInternalModel), which loadBomForAnalysis checks. Every member the reader sees but cannot carry
|
|
36
|
+
* into 1.x is reported in `losses` as `{pointer, reason}`, where `pointer` is
|
|
37
|
+
* an RFC 6901 JSON pointer into the input. Objects whose 1.x form would not
|
|
38
|
+
* render back to the same 2.0 object are kept under the internal sections
|
|
39
|
+
* key, so renderCycloneDx20 restores them while they are unchanged.
|
|
40
|
+
*
|
|
41
|
+
* @param {object} bom20 BOM in the 2.0 shape
|
|
42
|
+
* @returns {{internalBom: object, losses: Array<{pointer: string, reason: string}>}}
|
|
43
|
+
*/
|
|
44
|
+
export declare function readCycloneDx20(bom20: object): {
|
|
45
|
+
internalBom: object;
|
|
46
|
+
losses: Array<{
|
|
47
|
+
pointer: string;
|
|
48
|
+
reason: string;
|
|
49
|
+
}>;
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=cyclonedx20Read.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cyclonedx20Read.d.ts","sourceRoot":"","sources":["../../../lib/inventory/cyclonedx20Read.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAmGH;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAH1B,MAG0B,GAFxB;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAAA;CAAC,CA2CnF"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reader converters for the CycloneDX 2.0 common objects
|
|
3
|
+
* (#/$defs/cyclonedx-common-2.0, #/$defs/cyclonedx-license-2.0,
|
|
4
|
+
* #/$defs/cyclonedx-release-notes-2.0) back to their 1.x shapes. Each frozen
|
|
5
|
+
* spec is the allowlist of the members 1.x carries; anything else is a loss.
|
|
6
|
+
*/
|
|
7
|
+
/** hash (#/$defs/cyclonedx-common-2.0/$defs/hash) → 1.x hash. */
|
|
8
|
+
export declare function reverseHash(ctx: any, value: any, pointer: any): object | undefined;
|
|
9
|
+
/** A list of hashes. */
|
|
10
|
+
export declare const HASHES_RULE: Readonly<{
|
|
11
|
+
to: any;
|
|
12
|
+
convert: (ctx: any, value: any, pointer: any) => any[] | undefined;
|
|
13
|
+
}>;
|
|
14
|
+
/** property (#/$defs/cyclonedx-common-2.0/$defs/property) → 1.x property. */
|
|
15
|
+
export declare function reverseProperty(ctx: any, value: any, pointer: any): object | undefined;
|
|
16
|
+
/** A list of properties. */
|
|
17
|
+
export declare const PROPERTIES_RULE: Readonly<{
|
|
18
|
+
to: any;
|
|
19
|
+
convert: (ctx: any, value: any, pointer: any) => any[] | undefined;
|
|
20
|
+
}>;
|
|
21
|
+
/** externalReference → 1.x externalReference. */
|
|
22
|
+
export declare function reverseExternalReference(ctx: any, value: any, pointer: any): object | undefined;
|
|
23
|
+
/** A list of external references. */
|
|
24
|
+
export declare const EXTERNAL_REFERENCES_RULE: Readonly<{
|
|
25
|
+
to: any;
|
|
26
|
+
convert: (ctx: any, value: any, pointer: any) => any[] | undefined;
|
|
27
|
+
}>;
|
|
28
|
+
/** attachment: `mediaType` is the 1.x `contentType`. */
|
|
29
|
+
export declare function reverseAttachment(ctx: any, value: any, pointer: any): object | undefined;
|
|
30
|
+
/** An attachment-valued member. */
|
|
31
|
+
export declare const ATTACHMENT_RULE: Readonly<{
|
|
32
|
+
convert: typeof reverseAttachment;
|
|
33
|
+
}>;
|
|
34
|
+
/** postalAddress (common or party) → 1.x postalAddress. */
|
|
35
|
+
export declare function reverseAddress(ctx: any, value: any, pointer: any): object | undefined;
|
|
36
|
+
/** organizationalContact → 1.x organizationalContact. */
|
|
37
|
+
export declare function reverseContact(ctx: any, value: any, pointer: any): object | undefined;
|
|
38
|
+
/** organizationalEntity (common) → 1.x organizationalEntity. */
|
|
39
|
+
export declare function reverseEntity(ctx: any, value: any, pointer: any): object | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* One licenseChoice entry. A licenseReference (`{ref}`) resolves against
|
|
42
|
+
* definitions.licenses; 1.x has no license references, so the declaration
|
|
43
|
+
* is inlined and the reference itself reported.
|
|
44
|
+
*/
|
|
45
|
+
export declare function reverseLicenseChoice(ctx: any, value: any, pointer: any): object | undefined;
|
|
46
|
+
/** A licenses member. */
|
|
47
|
+
export declare const LICENSES_RULE: Readonly<{
|
|
48
|
+
to: any;
|
|
49
|
+
convert: (ctx: any, value: any, pointer: any) => any[] | undefined;
|
|
50
|
+
}>;
|
|
51
|
+
/**
|
|
52
|
+
* Issues a patch or release resolves. 1.x lists issues only; a reference to a
|
|
53
|
+
* weakness, vulnerability or requirement has no 1.x form.
|
|
54
|
+
*/
|
|
55
|
+
export declare const RESOLVES_RULE: Readonly<{
|
|
56
|
+
to: any;
|
|
57
|
+
convert: (ctx: any, value: any, pointer: any) => any[] | undefined;
|
|
58
|
+
}>;
|
|
59
|
+
/**
|
|
60
|
+
* releaseNotes, inline or a releaseNotesReference resolved against
|
|
61
|
+
* definitions.releaseNotes (1.x has no reference form).
|
|
62
|
+
*/
|
|
63
|
+
export declare function reverseReleaseNotes(ctx: any, value: any, pointer: any): object | undefined;
|
|
64
|
+
/** A patentAssertions member; 1.x requires `asserter` and `assertionType`. */
|
|
65
|
+
export declare const PATENT_ASSERTIONS_RULE: Readonly<{
|
|
66
|
+
to: any;
|
|
67
|
+
convert: (ctx: any, value: any, pointer: any) => any[] | undefined;
|
|
68
|
+
}>;
|
|
69
|
+
//# sourceMappingURL=cyclonedx20ReadCommon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cyclonedx20ReadCommon.d.ts","sourceRoot":"","sources":["../../../lib/inventory/cyclonedx20ReadCommon.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmBH,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA,EAAE,OAAO,KAAA,sBAE9C;AAED,wBAAwB;AACxB,eAAO,MAAM,WAAW;;;EAAsB,CAAC;AAI/C,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA,EAAE,OAAO,KAAA,sBAElD;AAED,4BAA4B;AAC5B,eAAO,MAAM,eAAe;;;EAA0B,CAAC;AA0BvD,iDAAiD;AACjD,wBAAgB,wBAAwB,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA,EAAE,OAAO,KAAA,sBAQ3D;AAED,qCAAqC;AACrC,eAAO,MAAM,wBAAwB;;;EAAmC,CAAC;AAQzE,wDAAwD;AACxD,wBAAgB,iBAAiB,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA,EAAE,OAAO,KAAA,sBAEpD;AAED,mCAAmC;AACnC,eAAO,MAAM,eAAe;;EAAgD,CAAC;AAY7E,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA,EAAE,OAAO,KAAA,sBAEjD;AASD,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA,EAAE,OAAO,KAAA,sBAQjD;AAUD,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA,EAAE,OAAO,KAAA,sBAQhD;AAyDD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA,EAAE,OAAO,KAAA,sBAwCvD;AAED,yBAAyB;AACzB,eAAO,MAAM,aAAa;;;EAA+B,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,aAAa;;;EAMxB,CAAC;AAoBH;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA,EAAE,OAAO,KAAA,sBA2BtD;AA+CD,8EAA8E;AAC9E,eAAO,MAAM,sBAAsB;;;EAajC,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reader converters for CycloneDX 2.0 components
|
|
3
|
+
* (#/$defs/cyclonedx-component-2.0/$defs/component) back to 1.x components
|
|
4
|
+
* and, for `type: service`, 1.x services. Each frozen spec is the allowlist
|
|
5
|
+
* of the members 1.x carries; everything else is reported as a loss.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* A 2.0 component (not a service) → a 1.x component, or undefined when its
|
|
9
|
+
* type has no 1.x equivalent (a loss).
|
|
10
|
+
*
|
|
11
|
+
* @param {object} ctx Reader context
|
|
12
|
+
* @param {object} component 2.0 component
|
|
13
|
+
* @param {string} pointer JSON pointer of `component`
|
|
14
|
+
* @returns {object|undefined} 1.x component
|
|
15
|
+
*/
|
|
16
|
+
export declare function reverseComponent(ctx: object, component: object, pointer: string): object | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* A 2.0 component of type `service` → a 1.x service.
|
|
19
|
+
*
|
|
20
|
+
* @param {object} ctx Reader context
|
|
21
|
+
* @param {object} component 2.0 service component
|
|
22
|
+
* @param {string} pointer JSON pointer of `component`
|
|
23
|
+
* @returns {object} 1.x service
|
|
24
|
+
*/
|
|
25
|
+
export declare function reverseService(ctx: object, component: object, pointer: string): object;
|
|
26
|
+
/**
|
|
27
|
+
* Resolve a componentEntry (component, componentReference or
|
|
28
|
+
* component-choice) to a concrete component. A reference resolves against
|
|
29
|
+
* every declared component; a choice keeps its first resolvable member.
|
|
30
|
+
*
|
|
31
|
+
* @param {object} ctx Reader context (with `componentIndex`)
|
|
32
|
+
* @param {object} entry 2.0 componentEntry
|
|
33
|
+
* @param {string} pointer JSON pointer of `entry`
|
|
34
|
+
* @returns {{component: object, pointer: string}|undefined}
|
|
35
|
+
*/
|
|
36
|
+
export declare function resolveComponentEntry(ctx: object, entry: object, pointer: string, depth?: number): {
|
|
37
|
+
component: object;
|
|
38
|
+
pointer: string;
|
|
39
|
+
} | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Read one top-level component entry (an inventory entry, subject, tool,
|
|
42
|
+
* definitions component, formula component or annotator) into 1.x, as a
|
|
43
|
+
* component or a service. `needsShadow` is set when the 1.x value does not
|
|
44
|
+
* render back to the same 2.0 entry; a caller that keeps the entry passes the
|
|
45
|
+
* result to keepComponentShadow.
|
|
46
|
+
*
|
|
47
|
+
* @param {object} ctx Reader context
|
|
48
|
+
* @param {object} entry 2.0 componentEntry
|
|
49
|
+
* @param {string} pointer JSON pointer of `entry`
|
|
50
|
+
* @returns {{internal: object, isService: boolean, refId?: string, entry: object, needsShadow: boolean}|undefined}
|
|
51
|
+
*/
|
|
52
|
+
export declare function readComponentEntry(ctx: object, entry: object, pointer: string): {
|
|
53
|
+
internal: object;
|
|
54
|
+
isService: boolean;
|
|
55
|
+
refId?: string;
|
|
56
|
+
entry: object;
|
|
57
|
+
needsShadow: boolean;
|
|
58
|
+
} | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Note a kept component entry for the shadows. Entries read inside a section
|
|
61
|
+
* entry that is itself restored whole (annotations, vulnerabilities) are not
|
|
62
|
+
* noted, since the renderer never converts them.
|
|
63
|
+
*
|
|
64
|
+
* @param {object} ctx Reader context
|
|
65
|
+
* @param {object} read Result of readComponentEntry
|
|
66
|
+
*/
|
|
67
|
+
export declare function keepComponentShadow(ctx: object, read: object): void;
|
|
68
|
+
/**
|
|
69
|
+
* Register the component shadows. Kept entries whose 1.x values are
|
|
70
|
+
* identical share a key; when any of them needs a shadow, all of them are
|
|
71
|
+
* registered in document order, which is the order the renderer converts
|
|
72
|
+
* them in, so each gets its own original back.
|
|
73
|
+
*
|
|
74
|
+
* @param {object} ctx Reader context
|
|
75
|
+
*/
|
|
76
|
+
export declare function flushComponentShadows(ctx: object): void;
|
|
77
|
+
//# sourceMappingURL=cyclonedx20ReadComponents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cyclonedx20ReadComponents.d.ts","sourceRoot":"","sources":["../../../lib/inventory/cyclonedx20ReadComponents.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2aH;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EALzB,MAKyB,EAAE,SAAS,EAJpC,MAIoC,EAAE,OAAO,EAH7C,MAG6C,GAF3C,MAAM,GAAC,SAAS,CAY5B;AA8FD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EALvB,MAKuB,EAAE,SAAS,EAJlC,MAIkC,EAAE,OAAO,EAH3C,MAG2C,GAFzC,MAAM,CAIlB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAL9B,MAK8B,EAAE,KAAK,EAJrC,MAIqC,EAAE,OAAO,EAH9C,MAG8C,EAAE,KAAK,SAAI,GAFvD;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GAAC,SAAS,CA+C1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAL3B,MAK2B,EAAE,KAAK,EAJlC,MAIkC,EAAE,OAAO,EAH3C,MAG2C,GAFzC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAC,GAAC,SAAS,CA2BjH;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAH5B,MAG4B,EAAE,IAAI,EAFlC,MAEkC,QAS5C;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAF9B,MAE8B,QAWxC"}
|