@cdxgen/cdxgen 13.2.0 → 13.4.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 +33 -14
- package/bin/cdxgen.js +310 -138
- package/bin/evinse.js +22 -0
- package/bin/repl.js +86 -0
- package/bin/sign.js +119 -15
- package/bin/tracebom.js +69 -5
- package/bin/validate.js +107 -19
- package/bin/verify.js +172 -63
- package/data/helpers/init.gradle +46 -21
- package/data/remediations.json +85 -0
- package/data/rules/dependency-sources.yaml +67 -0
- package/data/rules/scala-evidence.yaml +115 -0
- package/lib/audit/index.js +38 -6
- package/lib/cli/bomAssembly.js +105 -15
- package/lib/cli/cliOptions.js +93 -1
- package/lib/cli/index.js +156 -58
- package/lib/cli/jsBom.js +99 -53
- package/lib/cli/jvmBom.js +708 -147
- package/lib/cli/managedBom.js +415 -224
- package/lib/cli/nativeBom.js +264 -44
- package/lib/core/activity.js +12 -0
- package/lib/core/env.js +22 -15
- package/lib/core/fs.js +176 -7
- package/lib/core/httpClient.js +159 -24
- package/lib/core/metadataProperties.js +97 -0
- package/lib/core/pluginRun.js +184 -0
- package/lib/core/processTree.js +100 -0
- package/lib/core/projectConfig.js +31 -4
- 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 +274 -108
- package/lib/ecosystems/cargoCache.js +231 -8
- package/lib/ecosystems/caxa.js +434 -2
- package/lib/ecosystems/cmakeResolver.js +76 -21
- package/lib/ecosystems/cppBuildContext.js +631 -0
- package/lib/ecosystems/cppEvidence.js +399 -51
- package/lib/ecosystems/cppIncludeResolver.js +294 -0
- package/lib/ecosystems/denoutils.js +93 -66
- package/lib/ecosystems/ecosystems.js +1983 -793
- package/lib/ecosystems/golem.js +28 -12
- package/lib/ecosystems/gradleutils.js +356 -37
- package/lib/ecosystems/jsEvidence.js +104 -44
- package/lib/ecosystems/kosi.js +31 -7
- package/lib/ecosystems/npmutils.js +174 -9
- package/lib/ecosystems/parsers-dotnet.js +616 -159
- package/lib/ecosystems/parsers-elm.js +46 -28
- package/lib/ecosystems/parsers-gleam.js +3 -4
- package/lib/ecosystems/parsers-go.js +371 -70
- package/lib/ecosystems/parsers-js.js +263 -76
- package/lib/ecosystems/parsers-julia.js +2 -3
- package/lib/ecosystems/parsers-jvm.js +204 -12
- package/lib/ecosystems/parsers-misc.js +929 -216
- package/lib/ecosystems/parsers-python.js +167 -24
- package/lib/ecosystems/parsers-rust.js +28 -22
- 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 +1492 -182
- package/lib/ecosystems/rusi.js +54 -10
- package/lib/ecosystems/sbtutils.js +243 -187
- package/lib/ecosystems/scalacliutils.js +342 -0
- package/lib/ecosystems/scalasem.js +2618 -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 +1008 -191
- package/lib/evinser/swiftsem.js +1914 -302
- package/lib/helpers/agenticToolutils.js +2 -2
- package/lib/helpers/bomSigner.js +1101 -222
- package/lib/inventory/aiCollector.js +4 -1
- package/lib/inventory/analyzer.js +110 -127
- package/lib/inventory/atomUtils.js +703 -43
- package/lib/inventory/auditCategories.js +7 -0
- package/lib/inventory/buildToolRateLimit.js +144 -0
- package/lib/inventory/cacheCommands.js +2 -1
- package/lib/inventory/cdxrs.js +103 -12
- package/lib/inventory/cmakeBuildDirs.js +254 -0
- package/lib/inventory/deps.js +501 -124
- package/lib/inventory/depsUtils.js +183 -11
- package/lib/inventory/display.js +4 -5
- package/lib/inventory/dosai.js +798 -57
- package/lib/inventory/dosaiParsers.js +310 -15
- package/lib/inventory/dynamic.js +90 -6
- package/lib/inventory/evidenceUtils.js +166 -113
- package/lib/inventory/fetchBatch.js +690 -55
- package/lib/inventory/fetchDiskCache.js +597 -0
- package/lib/inventory/forgeEnricher.js +14 -5
- package/lib/inventory/jvmLocalRepos.js +917 -0
- package/lib/inventory/mcpConfigParser.js +2 -3
- package/lib/inventory/parentSelection.js +146 -0
- package/lib/inventory/protobom.js +8 -1
- package/lib/inventory/purl.js +152 -3
- package/lib/inventory/rustFormulationParser.js +3 -4
- package/lib/inventory/sbomDocument.js +2 -70
- package/lib/inventory/scalaCoords.js +153 -0
- package/lib/inventory/source.js +45 -27
- package/lib/inventory/spdx.js +101 -0
- package/lib/inventory/traceRunner.js +295 -25
- package/lib/inventory/tracedCrypto.js +294 -0
- package/lib/managers/binary.js +115 -24
- package/lib/managers/docker.js +467 -46
- package/lib/managers/oci.js +63 -3
- package/lib/parsers/cmakeCache.js +69 -0
- package/lib/parsers/cmakeLists.js +466 -0
- package/lib/parsers/cmakePresets.js +400 -0
- package/lib/parsers/compileCommands.js +557 -0
- package/lib/parsers/largeJson.js +454 -0
- package/lib/parsers/npmrc.js +19 -1
- 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 +23 -0
- package/lib/stages/postgen/introspection/markers.js +1 -1
- package/lib/stages/postgen/postgen.js +83 -16
- package/lib/stages/postgen/specVersionCompat.js +32 -0
- package/lib/validator/bomValidator.js +6 -16
- package/lib/validator/index.js +64 -11
- package/lib/validator/reporters/console.js +3 -0
- package/lib/validator/reporters/json.js +2 -0
- package/lib/validator/reporters/sarif.js +7 -0
- package/package.json +23 -23
- package/types/lib/audit/index.d.ts.map +1 -1
- package/types/lib/cli/bomAssembly.d.ts +2 -1
- package/types/lib/cli/bomAssembly.d.ts.map +1 -1
- package/types/lib/cli/cliOptions.d.ts +33 -1
- 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 +24 -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 +9 -0
- package/types/lib/core/env.d.ts.map +1 -1
- package/types/lib/core/fs.d.ts +55 -0
- 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/metadataProperties.d.ts +39 -0
- package/types/lib/core/metadataProperties.d.ts.map +1 -0
- 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 +6 -2
- package/types/lib/core/projectConfig.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 +12 -5
- 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/caxa.d.ts +14 -0
- package/types/lib/ecosystems/caxa.d.ts.map +1 -1
- package/types/lib/ecosystems/cmakeResolver.d.ts +28 -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 +17 -1
- 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.map +1 -1
- package/types/lib/ecosystems/gradleutils.d.ts +70 -4
- package/types/lib/ecosystems/gradleutils.d.ts.map +1 -1
- package/types/lib/ecosystems/jsEvidence.d.ts +5 -2
- package/types/lib/ecosystems/jsEvidence.d.ts.map +1 -1
- package/types/lib/ecosystems/kosi.d.ts +13 -0
- package/types/lib/ecosystems/kosi.d.ts.map +1 -1
- package/types/lib/ecosystems/npmutils.d.ts +57 -0
- package/types/lib/ecosystems/npmutils.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-dotnet.d.ts +118 -4
- 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 +54 -2
- package/types/lib/ecosystems/parsers-go.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-js.d.ts +16 -5
- 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 +46 -1
- package/types/lib/ecosystems/parsers-jvm.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-misc.d.ts +70 -4
- package/types/lib/ecosystems/parsers-misc.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-python.d.ts +53 -3
- 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/parsers-terraform.d.ts +38 -21
- package/types/lib/ecosystems/parsers-terraform.d.ts.map +1 -1
- package/types/lib/ecosystems/pythonutils.d.ts +27 -2
- 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 +164 -3
- package/types/lib/ecosystems/rubyutils.d.ts.map +1 -1
- package/types/lib/ecosystems/rusi.d.ts +13 -0
- 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 +132 -15
- package/types/lib/evinser/evinser.d.ts.map +1 -1
- package/types/lib/evinser/swiftsem.d.ts +280 -15
- package/types/lib/evinser/swiftsem.d.ts.map +1 -1
- package/types/lib/helpers/bomSigner.d.ts +182 -13
- package/types/lib/helpers/bomSigner.d.ts.map +1 -1
- package/types/lib/inventory/aiCollector.d.ts.map +1 -1
- package/types/lib/inventory/analyzer.d.ts.map +1 -1
- package/types/lib/inventory/atomUtils.d.ts +219 -5
- 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/cdxrs.d.ts +8 -3
- package/types/lib/inventory/cdxrs.d.ts.map +1 -1
- package/types/lib/inventory/cmakeBuildDirs.d.ts +58 -0
- package/types/lib/inventory/cmakeBuildDirs.d.ts.map +1 -0
- package/types/lib/inventory/deps.d.ts +59 -1
- package/types/lib/inventory/deps.d.ts.map +1 -1
- package/types/lib/inventory/depsUtils.d.ts +15 -0
- package/types/lib/inventory/depsUtils.d.ts.map +1 -1
- package/types/lib/inventory/display.d.ts.map +1 -1
- package/types/lib/inventory/dosai.d.ts +121 -9
- 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 +10 -0
- package/types/lib/inventory/dynamic.d.ts.map +1 -1
- package/types/lib/inventory/evidenceUtils.d.ts +19 -4
- 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/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/parentSelection.d.ts +34 -0
- package/types/lib/inventory/parentSelection.d.ts.map +1 -0
- package/types/lib/inventory/plugins.d.ts.map +1 -1
- package/types/lib/inventory/protobom.d.ts.map +1 -1
- package/types/lib/inventory/purl.d.ts +71 -2
- package/types/lib/inventory/purl.d.ts.map +1 -1
- package/types/lib/inventory/rustFormulationParser.d.ts.map +1 -1
- package/types/lib/inventory/sbomDocument.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.map +1 -1
- package/types/lib/inventory/spdx.d.ts +9 -0
- package/types/lib/inventory/spdx.d.ts.map +1 -1
- package/types/lib/inventory/traceRunner.d.ts +59 -1
- package/types/lib/inventory/traceRunner.d.ts.map +1 -1
- package/types/lib/inventory/tracedCrypto.d.ts +42 -0
- package/types/lib/inventory/tracedCrypto.d.ts.map +1 -0
- package/types/lib/managers/binary.d.ts +30 -1
- package/types/lib/managers/binary.d.ts.map +1 -1
- package/types/lib/managers/docker.d.ts +29 -0
- package/types/lib/managers/docker.d.ts.map +1 -1
- package/types/lib/managers/oci.d.ts +17 -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 +77 -0
- package/types/lib/parsers/cmakeLists.d.ts.map +1 -0
- 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/largeJson.d.ts +52 -0
- package/types/lib/parsers/largeJson.d.ts.map +1 -0
- package/types/lib/parsers/npmrc.d.ts +5 -0
- package/types/lib/parsers/npmrc.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.map +1 -1
- package/types/lib/stages/postgen/postgen.d.ts.map +1 -1
- package/types/lib/stages/postgen/specVersionCompat.d.ts.map +1 -1
- package/types/lib/validator/bomValidator.d.ts.map +1 -1
- package/types/lib/validator/index.d.ts +18 -1
- package/types/lib/validator/index.d.ts.map +1 -1
- package/types/lib/validator/reporters/console.d.ts.map +1 -1
- package/types/lib/validator/reporters/json.d.ts.map +1 -1
- package/types/lib/validator/reporters/sarif.d.ts.map +1 -1
- package/lib/third-party/arborist/snapshots/calc-dep-flags.test.cjs +0 -462
|
@@ -1,3 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merges one analyzer run's metadata properties into the BOM's metadata
|
|
3
|
+
* component. Analyzer metadata describes a single run, so when the input BOM
|
|
4
|
+
* already carries facts from an earlier run (cdxgen --profile research, then
|
|
5
|
+
* evinse), everything under the analyzer's own `cdx:<analyzer>:` prefix is
|
|
6
|
+
* replaced. Replacing by exact name would keep facts the new run no longer
|
|
7
|
+
* emits, such as a cdx:rusi:requestedBackend left from a fallback run.
|
|
8
|
+
*
|
|
9
|
+
* @param {Object} component Metadata component to update in place
|
|
10
|
+
* @param {Object[]} metadataProperties Properties from the analyzer run
|
|
11
|
+
*/
|
|
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;
|
|
29
|
+
/**
|
|
30
|
+
* Build the options for the evinse phase (prepareDB, analyzeProject, and
|
|
31
|
+
* createEvinseFile) from the cdxgen CLI options.
|
|
32
|
+
*
|
|
33
|
+
* This object used to be assembled inline in bin/cdxgen.js, which dropped
|
|
34
|
+
* fields the analyzers read - most notably `exclude`, so every dosai and atom
|
|
35
|
+
* run triggered by `--evidence` ignored the user's `--exclude` patterns. Keep
|
|
36
|
+
* the wiring in one place so the forwarded fields stay testable.
|
|
37
|
+
*
|
|
38
|
+
* @param {Object} options CLI options
|
|
39
|
+
* @param {Object} args Parsed CLI arguments; `args._[0]` is the source directory
|
|
40
|
+
* @param {string} input Path of the BOM file the evinse phase enriches
|
|
41
|
+
* @returns {Object} Options for prepareDB, analyzeProject, and createEvinseFile
|
|
42
|
+
*/
|
|
43
|
+
export declare function buildEvinseOptions(options: Object, args: Object, input: string): Object;
|
|
1
44
|
/**
|
|
2
45
|
* Function to create the db for the libraries referred in the sbom.
|
|
3
46
|
*
|
|
@@ -11,11 +54,22 @@ export declare function prepareDB(options: Object): Promise<{
|
|
|
11
54
|
Usages: Object;
|
|
12
55
|
DataFlows: Object;
|
|
13
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;
|
|
14
67
|
/**
|
|
15
68
|
* Collect Maven jar namespace mappings for the purls found in the SBOM.
|
|
16
69
|
*
|
|
17
|
-
* If a
|
|
18
|
-
* 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
|
|
19
73
|
* resolved purl is recorded in the `purlsJars` map and persisted in the
|
|
20
74
|
* `Namespaces` model.
|
|
21
75
|
*
|
|
@@ -37,7 +91,7 @@ export declare function catalogMavenDeps(dirPath: string, purlsJars: Record<stri
|
|
|
37
91
|
* @param {Object} Namespaces Sequelize-like Namespaces model used to persist pom and namespaces
|
|
38
92
|
* @returns {Promise<void>}
|
|
39
93
|
*/
|
|
40
|
-
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>;
|
|
41
95
|
/**
|
|
42
96
|
* Generate a usage slice for the given purl and persist it in the Usages model.
|
|
43
97
|
*
|
|
@@ -91,8 +145,9 @@ export declare function purlToLanguage(purl: string, filePath?: string): string
|
|
|
91
145
|
* Seed purl-location and import maps from SBOM component evidence.
|
|
92
146
|
*
|
|
93
147
|
* Walks the supplied components reading `internal:ImportedModules` (or
|
|
94
|
-
* `internal:Namespaces` for php/ruby
|
|
95
|
-
*
|
|
148
|
+
* `internal:Namespaces` for php/ruby, plus the `internal:ImportedSymbols` the
|
|
149
|
+
* C/C++ collector records) and `evidence.occurrences` properties to construct
|
|
150
|
+
* lookup maps used during slice analysis.
|
|
96
151
|
*
|
|
97
152
|
* @param {Object[]} components CycloneDX components from the input SBOM
|
|
98
153
|
* @param {string} language Application language used to select the import property name
|
|
@@ -102,13 +157,43 @@ export declare function initFromSbom(components: Object[], language: string): {
|
|
|
102
157
|
purlLocationMap: Record<string, Set<any>>;
|
|
103
158
|
purlImportsMap: Record<string, string[]>;
|
|
104
159
|
};
|
|
160
|
+
/**
|
|
161
|
+
* Load a semantics slices file for reuse when it belongs to this project.
|
|
162
|
+
*
|
|
163
|
+
* `--semantics-slices-file` defaults to `semantics.slices.json` in the working
|
|
164
|
+
* directory, which is shared by every project scanned from there and also
|
|
165
|
+
* receives the reports of other analyzers (dosai, rusi, golem). A file is
|
|
166
|
+
* only reused when its shape matches the language. Swift slices must also
|
|
167
|
+
* describe the same project directory and must not predate the input SBOM:
|
|
168
|
+
* `cdxgen --evidence` writes a fresh SBOM before evinse runs, so an older
|
|
169
|
+
* slice was made from an earlier state of the sources and is regenerated.
|
|
170
|
+
* Scala reports are handled by the scalasem analyzer, which applies its own
|
|
171
|
+
* rules.
|
|
172
|
+
*
|
|
173
|
+
* @param {string} language Project language
|
|
174
|
+
* @param {string} slicesFile Candidate semantics slices file
|
|
175
|
+
* @param {string} bomFile Input SBOM
|
|
176
|
+
* @param {string} dirPath Project directory
|
|
177
|
+
* @returns {undefined|Object} Parsed slice when it can be reused
|
|
178
|
+
*/
|
|
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;
|
|
105
190
|
/**
|
|
106
191
|
* Function to analyze the project
|
|
107
192
|
*
|
|
108
193
|
* @param {Object} dbObjMap DB and model instances
|
|
109
194
|
* @param {Object} options Command line options
|
|
110
195
|
*/
|
|
111
|
-
export declare function analyzeProject(dbObjMap: Object, options: Object): Promise<{
|
|
196
|
+
export declare function analyzeProject(dbObjMap: Object, options: Object): Promise<Object | {
|
|
112
197
|
purlLocationMap: Record<string, Set<any>>;
|
|
113
198
|
servicesMap: {};
|
|
114
199
|
dataFlowFrames: {};
|
|
@@ -155,13 +240,7 @@ export declare function analyzeProject(dbObjMap: Object, options: Object): Promi
|
|
|
155
240
|
cryptoGeneratePurls: {};
|
|
156
241
|
servicesMap: {};
|
|
157
242
|
userDefinedTypesMap: {};
|
|
158
|
-
workspaceComponent:
|
|
159
|
-
type: string;
|
|
160
|
-
name: any;
|
|
161
|
-
version: any;
|
|
162
|
-
purl: any;
|
|
163
|
-
"bom-ref": any;
|
|
164
|
-
} | undefined;
|
|
243
|
+
workspaceComponent: Object | undefined;
|
|
165
244
|
atomFile?: undefined;
|
|
166
245
|
usagesSlicesFile?: undefined;
|
|
167
246
|
dataFlowSlicesFile?: undefined;
|
|
@@ -227,7 +306,37 @@ export declare function analyzeProject(dbObjMap: Object, options: Object): Promi
|
|
|
227
306
|
* @param {string} [openapiSpecFile=undefined] Optional path to an OpenAPI spec used for service detection
|
|
228
307
|
* @returns {Promise<Object>} Map with `purlLocationMap`, `servicesMap`, and `userDefinedTypesMap`
|
|
229
308
|
*/
|
|
230
|
-
|
|
309
|
+
/**
|
|
310
|
+
* Attribute the include slices of a C/C++ usages report to the BOM
|
|
311
|
+
* components that provide the files they resolved to: each header's imported
|
|
312
|
+
* symbols (the functions the including file calls that it declares), and the
|
|
313
|
+
* include directive's location. Reports from atom releases that do not name
|
|
314
|
+
* the resolved file attribute nothing.
|
|
315
|
+
*
|
|
316
|
+
* @param {Object} usageSlice Parsed usages report
|
|
317
|
+
* @param {Object[]} components Components of the input BOM
|
|
318
|
+
* @param {string} dirPath Source directory
|
|
319
|
+
* @param {Object} options CLI options
|
|
320
|
+
* @returns {{symbols: Map<string, Set<string>>, locations: Map<string, Set<string>>}}
|
|
321
|
+
* Imported symbols and include locations (`file#line`) by purl
|
|
322
|
+
*/
|
|
323
|
+
export declare function attributeCIncludes(usageSlice: Object, components: Object[], dirPath: string, options?: Object): {
|
|
324
|
+
symbols: Map<string, Set<string>>;
|
|
325
|
+
locations: Map<string, Set<string>>;
|
|
326
|
+
};
|
|
327
|
+
/**
|
|
328
|
+
* Seed the C/C++ imports from the include slices of a usages report (see
|
|
329
|
+
* `attributeCIncludes`).
|
|
330
|
+
*
|
|
331
|
+
* @param {Object} usageSlice Parsed usages report
|
|
332
|
+
* @param {Object[]} components Components of the input BOM
|
|
333
|
+
* @param {string} dirPath Source directory
|
|
334
|
+
* @param {Object} purlImportsMap Imports by purl, extended in place
|
|
335
|
+
* @param {Object} options CLI options
|
|
336
|
+
* @returns {Object} purlImportsMap
|
|
337
|
+
*/
|
|
338
|
+
export declare function seedCImportsFromIncludes(usageSlice: Object, components: Object[], dirPath: string, purlImportsMap?: Object, options?: Object): Object;
|
|
339
|
+
export declare function parseObjectSlices(language: any, usageSlice: any, dbObjMap: any, servicesMap?: {}, purlLocationMap?: {}, purlImportsMap?: {}, openapiSpecFile?: undefined): Promise<{}>;
|
|
231
340
|
/**
|
|
232
341
|
* The implementation of this function is based on the logic proposed in the atom slices specification
|
|
233
342
|
* https://github.com/AppThreat/atom/blob/main/specification/docs/slices.md#use
|
|
@@ -244,12 +353,20 @@ export declare function parseSliceUsages(language: string, userDefinedTypesMap:
|
|
|
244
353
|
/**
|
|
245
354
|
* Method to parse semantic slice data. Currently supported for swift and scala languages.
|
|
246
355
|
*
|
|
356
|
+
* Swift slices created by cdxgen record, for every indexed source file, the
|
|
357
|
+
* lines that reference each dependency module (`moduleReferences`); the module
|
|
358
|
+
* of a reference is the declaring module recovered from the compiler-resolved
|
|
359
|
+
* USR. Components are mapped to their package's modules through the
|
|
360
|
+
* `packages` slice, so every occurrence is backed by a resolved reference.
|
|
361
|
+
* Slices without `moduleReferences` (created by older cdxgen versions) fall
|
|
362
|
+
* back to matching symbol names.
|
|
363
|
+
*
|
|
247
364
|
* @param {String} language Project language.
|
|
248
365
|
* @param {Array} components Components from the input SBOM
|
|
249
366
|
* @param {Object} semanticsSlice Semantic slice data
|
|
250
367
|
* @returns {Object} Parsed metadata
|
|
251
368
|
*/
|
|
252
|
-
export declare function parseSemanticSlices(
|
|
369
|
+
export declare function parseSemanticSlices(_language: any, components: any[], semanticsSlice: Object): Object;
|
|
253
370
|
/**
|
|
254
371
|
* Decide whether a type name should be ignored during slice analysis.
|
|
255
372
|
*
|
|
@@ -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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"}
|
|
@@ -1,11 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert a SwiftPM target or package name into its module name.
|
|
3
|
+
*
|
|
4
|
+
* @param {String} name Target or package name
|
|
5
|
+
* @returns {String} Module name
|
|
6
|
+
*/
|
|
7
|
+
export declare function toModuleName(name: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Decide whether a module belongs to tests or to an aggregate product and so
|
|
10
|
+
* must not contribute build symbols or semantic context.
|
|
11
|
+
*
|
|
12
|
+
* @param {String} moduleName Module name
|
|
13
|
+
* @returns {boolean} `true` when the module should be skipped
|
|
14
|
+
*/
|
|
15
|
+
export declare function isTestOrAggregateModule(moduleName: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Parse the JSON printed by `swift -print-target-info`.
|
|
18
|
+
*
|
|
19
|
+
* `paths.runtimeResourcePath` is `<toolchain>/usr/lib/swift` for every
|
|
20
|
+
* toolchain layout (Xcode, `.xctoolchain` bundles, swiftly, Linux tarballs),
|
|
21
|
+
* so it names the toolchain that actually compiles the project.
|
|
22
|
+
*
|
|
23
|
+
* @param {Object} targetInfo Parsed `-print-target-info` output
|
|
24
|
+
* @returns {undefined|Object} `{ compilerVersion, triple, runtimeResourcePath, toolchainDir }`
|
|
25
|
+
*/
|
|
26
|
+
export declare function parseSwiftTargetInfo(targetInfo: Object): undefined | Object;
|
|
27
|
+
/**
|
|
28
|
+
* Identify the toolchain that `swift` resolves to inside a project directory.
|
|
29
|
+
*
|
|
30
|
+
* The query runs in the project directory because toolchain managers such as
|
|
31
|
+
* swiftly select the toolchain per directory (`.swift-version`), so the
|
|
32
|
+
* compiler that builds a project can differ from the one on the PATH of the
|
|
33
|
+
* calling process.
|
|
34
|
+
*
|
|
35
|
+
* @param {String} basePath Project directory
|
|
36
|
+
* @returns {undefined|Object} Toolchain details, see parseSwiftTargetInfo
|
|
37
|
+
*/
|
|
38
|
+
export declare function resolveSwiftToolchain(basePath: string): undefined | Object;
|
|
39
|
+
/**
|
|
40
|
+
* Environment overrides that make sourcekitten load the SourceKit of the
|
|
41
|
+
* toolchain that builds the project.
|
|
42
|
+
*
|
|
43
|
+
* Without guidance sourcekitten uses the toolchain of the selected Xcode (or
|
|
44
|
+
* the `swift` found on the PATH on Linux). SourceKit cannot load modules
|
|
45
|
+
* produced by a different compiler version, so every reference to a
|
|
46
|
+
* dependency then goes unresolved. On macOS sourcekitten honours
|
|
47
|
+
* `XCODE_DEFAULT_TOOLCHAIN_OVERRIDE` ahead of `xcrun`; on Linux it honours
|
|
48
|
+
* `LINUX_SOURCEKIT_LIB_PATH`. Explicitly configured values always win.
|
|
49
|
+
*
|
|
50
|
+
* @param {Object} toolchain Toolchain details from resolveSwiftToolchain
|
|
51
|
+
* @param {String} [platform] Platform name, defaults to process.platform
|
|
52
|
+
* @returns {undefined|Object} Environment overrides for sourcekitten
|
|
53
|
+
*/
|
|
54
|
+
export declare function sourcekittenEnvForToolchain(toolchain: Object, platform?: string): undefined | Object;
|
|
1
55
|
/**
|
|
2
56
|
* Retrieve the structure information of a .swift file in json format
|
|
3
57
|
*
|
|
4
58
|
* @param {String} filePath Path to .swift file
|
|
59
|
+
* @param {Object} [env] Environment overrides for sourcekitten
|
|
5
60
|
*
|
|
6
61
|
* @returns {undefined|Object} JSON representation of the swift file or undefined.
|
|
7
62
|
*/
|
|
8
|
-
export declare function getStructure(filePath: string): undefined | Object;
|
|
63
|
+
export declare function getStructure(filePath: string, env?: Object): undefined | Object;
|
|
9
64
|
/**
|
|
10
65
|
* Parse the data from the structure command
|
|
11
66
|
*
|
|
@@ -13,35 +68,150 @@ export declare function getStructure(filePath: string): undefined | Object;
|
|
|
13
68
|
* @returns {Object|undefined} Parsed value
|
|
14
69
|
*/
|
|
15
70
|
export declare function parseStructure(structureJson: Object): Object | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Split a Swift command line, as printed by a verbose build or given in an
|
|
73
|
+
* environment variable, into arguments.
|
|
74
|
+
*
|
|
75
|
+
* Paths on Windows use backslash separators, so a backslash there is literal
|
|
76
|
+
* unless it precedes a double quote (the `CommandLineToArgvW` rules). Single
|
|
77
|
+
* quotes, which SwiftPM uses to quote arguments on every platform, keep their
|
|
78
|
+
* content literal. Elsewhere shell quoting applies.
|
|
79
|
+
*
|
|
80
|
+
* @param {String} commandString Command line
|
|
81
|
+
* @param {String} [platform] Platform name, defaults to process.platform
|
|
82
|
+
* @returns {Array<String>} Arguments
|
|
83
|
+
*/
|
|
84
|
+
export declare function splitSwiftCommandArgs(commandString: string, platform?: string): Array<string>;
|
|
16
85
|
/**
|
|
17
86
|
* Method to perform swift build in verbose mode.
|
|
18
87
|
*
|
|
88
|
+
* `SWIFT_BUILD_ARGS` adds arguments to the build, for example
|
|
89
|
+
* `--build-system native` to use the llbuild engine with Swift 6.4.
|
|
90
|
+
*
|
|
19
91
|
* @param {String} basePath Path
|
|
20
92
|
* @returns {undefined|String} Verbose build output
|
|
21
93
|
*/
|
|
22
94
|
export declare function verboseBuild(basePath: string): undefined | string;
|
|
23
95
|
/**
|
|
24
|
-
*
|
|
96
|
+
* Reduce one module's compiler invocation to the arguments that affect how
|
|
97
|
+
* its sources are type-checked.
|
|
98
|
+
*
|
|
99
|
+
* Only known argument classes are kept, so outputs, incremental build
|
|
100
|
+
* bookkeeping, response files, and flags a SourceKit build may not know are
|
|
101
|
+
* dropped. The order of the kept arguments is preserved, which keeps paired
|
|
102
|
+
* clang arguments such as `-Xcc -I -Xcc <path>` intact. The module cache is
|
|
103
|
+
* dropped as well: the build's cache may hold modules of other toolchains.
|
|
104
|
+
*
|
|
105
|
+
* @param {Array<String>} tokens Tokenized compiler invocation
|
|
106
|
+
* @returns {Array<String>} Sanitized compiler arguments
|
|
107
|
+
*/
|
|
108
|
+
export declare function sanitizeSwiftModuleArgs(tokens: Array<string>): Array<string>;
|
|
109
|
+
/**
|
|
110
|
+
* Extract the per-module compiler invocations printed by a verbose swift
|
|
111
|
+
* build.
|
|
112
|
+
*
|
|
113
|
+
* Both engines print one driver invocation per module that carries
|
|
114
|
+
* `-module-name`: llbuild prints `swiftc ... -module-name X ... @sources`,
|
|
115
|
+
* while the Swift Build engine prints `builtin-SwiftDriver -- swiftc ...
|
|
116
|
+
* -module-name X ... @<target>.SwiftFileList`. llbuild also prints the
|
|
117
|
+
* frontend jobs of each module, which are only used when no driver line is
|
|
118
|
+
* found. Package manifest and plugin compilations are skipped.
|
|
119
|
+
*
|
|
120
|
+
* @param {String} buildOutput Verbose build output
|
|
121
|
+
* @param {String} [platform] Platform that printed the output, which decides
|
|
122
|
+
* its quoting rules; defaults to process.platform
|
|
123
|
+
* @returns {Object} Map of module name to `{ args, sources, isDriver }`
|
|
124
|
+
*/
|
|
125
|
+
export declare function parseSwiftModuleInvocations(buildOutput: string, platform?: string): Object;
|
|
126
|
+
/**
|
|
127
|
+
* Parse the llbuild engine's build description
|
|
128
|
+
* (`.build/<triple>/debug/description.json`).
|
|
129
|
+
*
|
|
130
|
+
* Its `swiftCommands` record every Swift module the build compiled, with the
|
|
131
|
+
* exact source list and compiler arguments. Host-tool variants
|
|
132
|
+
* (`...-tool.module`, built for macros and plugins) are used only when a
|
|
133
|
+
* module has no regular variant.
|
|
134
|
+
*
|
|
135
|
+
* @param {Object} descriptionJson Parsed description.json
|
|
136
|
+
* @returns {Object} Map of module name to `{ args, sources, isDriver }`
|
|
137
|
+
*/
|
|
138
|
+
export declare function parseSwiftBuildDescription(descriptionJson: Object): Object;
|
|
139
|
+
/**
|
|
140
|
+
* Merge the sanitized arguments of several modules into one argument list,
|
|
141
|
+
* used when a source file cannot be attributed to a single module. The first
|
|
142
|
+
* module's single-value flags win, include paths accumulate, and `-Xcc`
|
|
143
|
+
* values are merged per clang argument group.
|
|
144
|
+
*
|
|
145
|
+
* @param {Array<Array<String>>} argLists Sanitized argument lists, most relevant first
|
|
146
|
+
* @returns {Array<String>} Merged arguments
|
|
147
|
+
*/
|
|
148
|
+
export declare function mergeSwiftModuleArgs(argLists: Array<Array<string>>): Array<string>;
|
|
149
|
+
/**
|
|
150
|
+
* Method to parse the verbose swift build output to identify key compiler
|
|
151
|
+
* parameters. The arguments of the root package's modules are merged, or of
|
|
152
|
+
* every module when the root modules are unknown.
|
|
25
153
|
*
|
|
26
154
|
* @param {String} buildOutput Verbose build output
|
|
27
|
-
* @
|
|
155
|
+
* @param {Array<String>|Set<String>} [rootModules] Module names of the root package
|
|
156
|
+
* @returns {Object} `{ params, compilerArgs }` where params maps module names to their arguments
|
|
28
157
|
*/
|
|
29
|
-
export declare function extractCompilerParamsFromBuild(buildOutput: string): Object;
|
|
158
|
+
export declare function extractCompilerParamsFromBuild(buildOutput: string, rootModules?: Array<string> | Set<string>): Object;
|
|
30
159
|
/**
|
|
31
160
|
* Method to index a swift file and extract metadata
|
|
32
161
|
*
|
|
33
162
|
* @param {String} filePath Path to .swift file
|
|
34
|
-
* @param {String|Array<string>} compilerArgs Compiler arguments
|
|
163
|
+
* @param {String|Array<string>} compilerArgs Compiler arguments. They should
|
|
164
|
+
* list every source of the file's module so that references across files
|
|
165
|
+
* resolve; the file itself is appended when missing.
|
|
166
|
+
* @param {Object} [env] Environment overrides for sourcekitten
|
|
35
167
|
* @returns {undefined|Object} metadata
|
|
36
168
|
*/
|
|
37
|
-
export declare function index(filePath: string, compilerArgs: string | Array<string
|
|
169
|
+
export declare function index(filePath: string, compilerArgs: string | Array<string>, env?: Object): undefined | Object;
|
|
38
170
|
/**
|
|
39
171
|
* Parse the data from the index command
|
|
40
172
|
*
|
|
173
|
+
* Besides the symbol names and lines, the unified symbol resolution (USR) of
|
|
174
|
+
* every indexed entity is recorded with its lines. A USR identifies the
|
|
175
|
+
* declaration the compiler resolved a reference to, including the module
|
|
176
|
+
* that declares it, which is what attributes a usage to a dependency.
|
|
177
|
+
*
|
|
41
178
|
* @param {Object} indexJson Json from the index command
|
|
42
179
|
* @returns {Object|undefined} Parsed value
|
|
43
180
|
*/
|
|
44
181
|
export declare function parseIndex(indexJson: Object): Object | undefined;
|
|
182
|
+
/**
|
|
183
|
+
* Identify the module that declares an entity from its demangled name.
|
|
184
|
+
*
|
|
185
|
+
* Qualified names start with the module (`Yams.dump(object:...)`), and
|
|
186
|
+
* members declared in extensions carry the extending module
|
|
187
|
+
* (`(extension in Yams):Swift.String.yaml`), which is what a usage of the
|
|
188
|
+
* member depends on.
|
|
189
|
+
*
|
|
190
|
+
* @param {String} demangled Output of `swift demangle --compact`
|
|
191
|
+
* @returns {undefined|String} Module name
|
|
192
|
+
*/
|
|
193
|
+
export declare function moduleFromDemangledName(demangled: string): undefined | string;
|
|
194
|
+
/**
|
|
195
|
+
* Identify the module of a mangled Swift name without the demangler. Only the
|
|
196
|
+
* leading module context is decoded, so extension members are attributed to
|
|
197
|
+
* the extended type's module.
|
|
198
|
+
*
|
|
199
|
+
* @param {String} mangled Mangled name starting with `$s`
|
|
200
|
+
* @returns {undefined|String} Module name
|
|
201
|
+
*/
|
|
202
|
+
export declare function moduleFromMangledPrefix(mangled: string): undefined | string;
|
|
203
|
+
/**
|
|
204
|
+
* Identify the declaring module of each USR.
|
|
205
|
+
*
|
|
206
|
+
* Swift USRs are demangled in one batch with `swift demangle`; clang module
|
|
207
|
+
* references (`c:@M@<module>`, emitted for import declarations) carry the
|
|
208
|
+
* module name directly. Other clang USRs name no module and are skipped.
|
|
209
|
+
*
|
|
210
|
+
* @param {Array<String>} usrs USRs to resolve
|
|
211
|
+
* @param {String} basePath Directory to run the demangler in
|
|
212
|
+
* @returns {Map<String, String>} USR to module name
|
|
213
|
+
*/
|
|
214
|
+
export declare function resolveUsrModules(usrs: Array<string>, basePath: string): Map<string, string>;
|
|
45
215
|
/**
|
|
46
216
|
* Method to execute dump-package package command.
|
|
47
217
|
*
|
|
@@ -61,9 +231,10 @@ export declare function parseDumpPackage(dumpJson: Object): Object | undefined;
|
|
|
61
231
|
*
|
|
62
232
|
* @param {String} moduleName Module name
|
|
63
233
|
* @param {String|Array<string>} compilerArgs Compiler arguments extracted from verbose build log
|
|
234
|
+
* @param {Object} [env] Environment overrides for sourcekitten
|
|
64
235
|
* @returns {undefined|Object} JSON representation of the swift module or undefined.
|
|
65
236
|
*/
|
|
66
|
-
export declare function moduleInfo(moduleName: string, compilerArgs: string | Array<string
|
|
237
|
+
export declare function moduleInfo(moduleName: string, compilerArgs: string | Array<string>, env?: Object): undefined | Object;
|
|
67
238
|
/**
|
|
68
239
|
* Parse the data from module-info command to replicate the swift interface
|
|
69
240
|
*
|
|
@@ -72,32 +243,126 @@ export declare function moduleInfo(moduleName: string, compilerArgs: string | Ar
|
|
|
72
243
|
*/
|
|
73
244
|
export declare function parseModuleInfo(moduleInfoJson: Object): Object | undefined;
|
|
74
245
|
/**
|
|
75
|
-
* Method to collect the build symbols from the output file maps generated by
|
|
246
|
+
* Method to collect the build symbols from the output file maps generated by
|
|
247
|
+
* swift build.
|
|
248
|
+
*
|
|
249
|
+
* Both build engines are supported: the llbuild engine writes per-module
|
|
250
|
+
* `output-file-map.json` files, while the Swift Build engine (default from
|
|
251
|
+
* Swift 6.4) writes per-target `<target>-OutputFileMap.json` files under
|
|
252
|
+
* `.build/out/Intermediates.noindex`.
|
|
76
253
|
*
|
|
77
254
|
* @param {String} basePath Path
|
|
78
255
|
* @param {Object} options CLI options
|
|
79
|
-
* @
|
|
256
|
+
* @param {Array<String>} [fileMaps] Output file maps, found under basePath when omitted
|
|
257
|
+
* @returns {Object} symbols map keyed by module name
|
|
80
258
|
*/
|
|
81
|
-
export declare function collectBuildSymbols(basePath: string, options: Object): Object;
|
|
259
|
+
export declare function collectBuildSymbols(basePath: string, options: Object, fileMaps?: Array<string>): Object;
|
|
82
260
|
/**
|
|
83
|
-
* Method to parse output file map to identify the module
|
|
84
|
-
*
|
|
261
|
+
* Method to parse output file map to identify the module, its sources, and
|
|
262
|
+
* their symbols. The symbol list is imprecise; the sources are exact.
|
|
263
|
+
*
|
|
264
|
+
* The module name is derived from the containing directory for llbuild maps
|
|
265
|
+
* (`<Module>.build` and, since Swift 6.4, `<Module>-tool.build`) and from the
|
|
266
|
+
* file name for Swift Build maps (`<target>-OutputFileMap.json`, where the
|
|
267
|
+
* target name still needs to be sanitised into a module name).
|
|
85
268
|
*
|
|
86
269
|
* @param filemap {String} File name
|
|
87
|
-
* @returns {Object} parsed module metadata
|
|
270
|
+
* @returns {Object} parsed module metadata `{ moduleName, moduleSymbols, sourceFiles }`
|
|
88
271
|
*/
|
|
89
272
|
export declare function parseOutputFileMap(filemap: string): Object;
|
|
273
|
+
/**
|
|
274
|
+
* Parse `.build/workspace-state.json` into the dependency packages of the
|
|
275
|
+
* workspace and the directory each one was materialised in.
|
|
276
|
+
*
|
|
277
|
+
* @param {Object} stateJson Parsed workspace-state.json
|
|
278
|
+
* @param {String} basePath Root package directory
|
|
279
|
+
* @returns {Array<Object>} `{ identity, name, location, kind, dir }` per package
|
|
280
|
+
*/
|
|
281
|
+
export declare function parseSwiftWorkspaceState(stateJson: Object, basePath: string): Array<Object>;
|
|
282
|
+
/**
|
|
283
|
+
* Parse the Swift Build engine's project model (`.build/manifest.pif`) into
|
|
284
|
+
* the module names each package declares.
|
|
285
|
+
*
|
|
286
|
+
* The manifest is a list of workspace, project, and target objects linked
|
|
287
|
+
* through their `signature` hashes. A project's guid is `PACKAGE:<identity>`
|
|
288
|
+
* and each target records its `PRODUCT_MODULE_NAME`. Unlike the verbose
|
|
289
|
+
* build output, the manifest lists modules whose compilation never started,
|
|
290
|
+
* which keeps the module-to-package mapping complete when a build fails.
|
|
291
|
+
*
|
|
292
|
+
* @param {Array} manifestJson Parsed manifest.pif contents
|
|
293
|
+
* @returns {Object} Map of package identity to module names
|
|
294
|
+
*/
|
|
295
|
+
export declare function parseSwiftBuildManifest(manifestJson: any[]): Object;
|
|
296
|
+
/**
|
|
297
|
+
* Collect the modules imported by a Swift source file, with their lines.
|
|
298
|
+
*
|
|
299
|
+
* Declarations such as `@testable import Foo`, `public import Foo`,
|
|
300
|
+
* `@_implementationOnly import cmark_gfm`, and `import struct Foo.Bar` are
|
|
301
|
+
* recognised; comments, string literals, and `canImport` conditions are not
|
|
302
|
+
* imports.
|
|
303
|
+
*
|
|
304
|
+
* @param {String} sourceText Swift source
|
|
305
|
+
* @returns {Array<Object>} `{ module, line }` per import declaration
|
|
306
|
+
*/
|
|
307
|
+
export declare function parseSwiftImports(sourceText: string): Array<Object>;
|
|
308
|
+
/**
|
|
309
|
+
* Collect the clang module names declared at the top level of a module map.
|
|
310
|
+
*
|
|
311
|
+
* @param {String} moduleMapText module.modulemap contents
|
|
312
|
+
* @returns {Object} `{ modules, headerPaths }`
|
|
313
|
+
*/
|
|
314
|
+
export declare function parseClangModuleMap(moduleMapText: string): Object;
|
|
315
|
+
/**
|
|
316
|
+
* Build a description of every module in a completed swift build: its
|
|
317
|
+
* compiler arguments, sources, and owning package.
|
|
318
|
+
*
|
|
319
|
+
* Arguments come from the llbuild build description when present and from
|
|
320
|
+
* the verbose build output otherwise (the only source for the Swift Build
|
|
321
|
+
* engine); sources come from the same places or from the output file maps.
|
|
322
|
+
* Packages come from `workspace-state.json`, and every module is attributed
|
|
323
|
+
* to the package whose directory holds its sources. Clang modules are
|
|
324
|
+
* discovered through their module maps.
|
|
325
|
+
*
|
|
326
|
+
* @param {String} basePath Root package directory
|
|
327
|
+
* @param {String} buildOutput Verbose build output
|
|
328
|
+
* @param {Object} options CLI options
|
|
329
|
+
* @param {Object} [rootMetadata] Parsed dump-package of the root package
|
|
330
|
+
* @returns {Object} `{ modules, packages, root, clangModules, fileMaps }`
|
|
331
|
+
*/
|
|
332
|
+
export declare function collectSwiftBuildPlan(basePath: string, buildOutput: string, options: Object, rootMetadata?: Object): Object;
|
|
333
|
+
/**
|
|
334
|
+
* Check that sourcekitten can load SourceKit, with a trivial syntax request.
|
|
335
|
+
*
|
|
336
|
+
* A missing binary, a binary without its Swift runtime (`error while loading
|
|
337
|
+
* shared libraries: libswiftCore.so`), or one linked against a different
|
|
338
|
+
* Swift runtime than the toolchain provides (Linux has no stable Swift ABI, so
|
|
339
|
+
* such a binary crashes inside libswiftCore) fails every request; the probe
|
|
340
|
+
* turns that into one clear message instead of silent empty results.
|
|
341
|
+
*
|
|
342
|
+
* @param {Object} [env] Environment overrides for sourcekitten
|
|
343
|
+
* @returns {boolean} `true` when sourcekitten answered the probe
|
|
344
|
+
*/
|
|
345
|
+
export declare function isSourcekittenUsable(env?: Object): boolean;
|
|
90
346
|
/**
|
|
91
347
|
* Create a precise semantics slices file for a swift project.
|
|
92
348
|
*
|
|
349
|
+
* The project is built once in verbose mode. Every source file of the root
|
|
350
|
+
* package's (non-test) modules is then indexed with sourcekitten using that
|
|
351
|
+
* module's own compiler arguments and source list, with sourcekitten aligned
|
|
352
|
+
* to the toolchain that compiled the project. The declaring module of every
|
|
353
|
+
* resolved reference is recovered from its USR, which attributes each usage
|
|
354
|
+
* to the package that provides the module (`moduleReferences`).
|
|
355
|
+
*
|
|
93
356
|
* @param basePath basePath Path
|
|
94
357
|
* @param options options CLI options
|
|
95
358
|
*/
|
|
96
359
|
export declare function createSemanticsSlices(basePath: any, options: any): {
|
|
360
|
+
projectPath: any;
|
|
361
|
+
toolchain: any;
|
|
97
362
|
packageMetadata: Object | undefined;
|
|
363
|
+
packages: any;
|
|
364
|
+
packageModules: {};
|
|
98
365
|
buildSymbols: Object;
|
|
99
|
-
moduleInfos: {};
|
|
100
|
-
fileStructures: {};
|
|
101
366
|
fileIndexes: {};
|
|
102
367
|
} | undefined;
|
|
103
368
|
//# sourceMappingURL=swiftsem.d.ts.map
|
|
@@ -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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"}
|