@cdxgen/cdxgen 13.0.1 → 13.2.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 +30 -16
- package/bin/audit.js +6 -0
- package/bin/cdxgen.js +141 -7
- package/bin/evinse.js +3 -1
- package/data/component-tags.json +8 -1
- package/data/crypto-oid.json +88 -12
- package/data/frameworks-list.json +86 -1
- package/data/remediations.json +1167 -0
- package/data/rules/ai-bom.yaml +78 -0
- package/data/rules/asar-archives.yaml +1 -1
- package/data/rules/build-fidelity.yaml +782 -0
- package/data/rules/cargo-rust.yaml +132 -0
- package/data/rules/mcp-servers.yaml +122 -0
- package/data/rules/package-integrity.yaml +13 -13
- package/lib/audit/index.js +48 -4
- package/lib/audit/scoring.js +2 -8
- package/lib/audit/targets.js +6 -1
- package/lib/cli/bomAssembly.js +32 -1
- package/lib/cli/cliOptions.js +94 -7
- package/lib/cli/index.js +268 -49
- package/lib/cli/jsBom.js +91 -5
- package/lib/cli/jvmBom.js +1515 -1314
- package/lib/cli/managedBom.js +249 -28
- package/lib/cli/nativeBom.js +986 -10
- package/lib/core/activity.js +120 -2
- package/lib/core/buildLedger.js +799 -0
- package/lib/core/deferredExit.js +141 -0
- package/lib/core/env.js +108 -2
- package/lib/core/fs.js +60 -0
- package/lib/core/logger.js +12 -99
- package/lib/core/severity.js +16 -0
- package/lib/core/syncFileWriter.js +106 -0
- package/lib/core/userAgent.js +151 -0
- package/lib/ecosystems/cargoCache.js +364 -0
- package/lib/ecosystems/caxa.js +13 -5
- package/lib/ecosystems/cppEvidence.js +40 -2
- package/lib/ecosystems/ecosystems.js +250 -91
- package/lib/ecosystems/golem.js +11 -1
- package/lib/ecosystems/gradleutils.js +498 -17
- package/lib/ecosystems/kosi.js +1256 -0
- package/lib/ecosystems/parsers-crystal.js +179 -0
- package/lib/ecosystems/parsers-dotnet.js +69 -39
- package/lib/ecosystems/parsers-elm.js +816 -0
- package/lib/ecosystems/parsers-gleam.js +1 -1
- package/lib/ecosystems/parsers-js.js +26 -0
- package/lib/ecosystems/parsers-julia.js +268 -0
- package/lib/ecosystems/parsers-jvm.js +9 -0
- package/lib/ecosystems/parsers-lua.js +218 -0
- package/lib/ecosystems/parsers-misc.js +188 -2
- package/lib/ecosystems/parsers-nim.js +221 -0
- package/lib/ecosystems/parsers-opam.js +180 -0
- package/lib/ecosystems/parsers-perl.js +277 -0
- package/lib/ecosystems/parsers-python.js +172 -36
- package/lib/ecosystems/parsers-r.js +148 -0
- package/lib/ecosystems/parsers-rebar.js +411 -0
- package/lib/ecosystems/parsers-rust.js +944 -19
- package/lib/ecosystems/parsers-spack.js +204 -0
- package/lib/ecosystems/parsers-stack.js +264 -0
- package/lib/ecosystems/parsers-terraform.js +194 -0
- package/lib/ecosystems/pypiClassifiers.js +326 -0
- package/lib/ecosystems/pythonutils.js +49 -1
- package/lib/ecosystems/rubyutils.js +13 -0
- package/lib/ecosystems/rusi.js +126 -6
- package/lib/evinser/evinser.js +141 -13
- package/lib/helpers/agenticToolutils.js +925 -0
- package/lib/helpers/remote/dependency-track.js +81 -14
- package/lib/inventory/agentFormulationParser.js +57 -4
- package/lib/inventory/aiCollector.js +504 -10
- package/lib/inventory/aiInventory.js +12 -0
- package/lib/inventory/analyzer.js +488 -30
- package/lib/inventory/astWorker.js +6 -0
- package/lib/inventory/auditCategories.js +17 -0
- package/lib/inventory/cbomutils.js +30 -0
- package/lib/inventory/cdxrs.js +7 -2
- package/lib/inventory/communityAiConfigParser.js +215 -2
- package/lib/inventory/depsUtils.js +72 -0
- package/lib/inventory/dosai.js +508 -22
- package/lib/inventory/envcontext.js +215 -24
- package/lib/inventory/evidenceUtils.js +13 -0
- package/lib/inventory/fetchBatch.js +131 -2
- package/lib/inventory/fetchRate.js +74 -11
- package/lib/inventory/forgeEnricher.js +3 -2
- package/lib/inventory/jvmToolEnv.js +594 -0
- package/lib/inventory/mcpConfigParser.js +166 -2
- package/lib/inventory/mcpDiscovery.js +11 -0
- package/lib/inventory/mcpServerManifest.js +389 -0
- package/lib/inventory/mcpbBundle.js +419 -0
- package/lib/inventory/osinfo.js +1 -0
- package/lib/inventory/plugins.js +3 -0
- package/lib/inventory/protobom.js +54 -88
- package/lib/inventory/protobomLoader.js +4 -0
- package/lib/inventory/rustFormulationParser.js +1 -1
- package/lib/inventory/source.js +10 -4
- package/lib/inventory/stylePackageRefs.js +41 -0
- package/lib/inventory/svelteUtils.js +524 -0
- package/lib/inventory/toolRequirements.js +903 -0
- package/lib/managers/binary.js +24 -0
- package/lib/managers/docker.js +26 -5
- package/lib/parsers/huggingfaceUtils.js +15 -7
- package/lib/parsers/onnx.js +294 -0
- package/lib/parsers/safetensors.js +114 -0
- package/lib/server/server.js +1 -1
- package/lib/stages/postgen/annotationBuilder.js +97 -0
- package/lib/stages/postgen/auditBom.js +76 -79
- package/lib/stages/postgen/introspection/annotate.js +320 -0
- package/lib/stages/postgen/introspection/commandFacts.js +293 -0
- package/lib/stages/postgen/introspection/emit.js +192 -0
- package/lib/stages/postgen/introspection/formulationEvidence.js +427 -0
- package/lib/stages/postgen/introspection/markers.js +250 -0
- package/lib/stages/postgen/introspection/reflect.js +1214 -0
- package/lib/stages/postgen/introspection/report.js +1208 -0
- package/lib/stages/postgen/introspection/score.js +1067 -0
- package/lib/stages/postgen/introspection/shapeCommand.js +304 -0
- package/lib/stages/postgen/parentEdge.js +156 -0
- package/lib/stages/postgen/postgen.js +284 -3
- package/lib/stages/postgen/ruleEngine.js +17 -0
- package/lib/stages/pregen/envAudit.js +42 -2
- package/lib/stages/pregen/pregen.js +1171 -6
- package/lib/third-party/arborist/snapshots/calc-dep-flags.test.cjs +462 -0
- package/lib/validator/bomValidator.js +11 -2
- package/package.json +26 -26
- package/types/lib/audit/index.d.ts.map +1 -1
- package/types/lib/audit/scoring.d.ts +2 -8
- package/types/lib/audit/scoring.d.ts.map +1 -1
- package/types/lib/audit/targets.d.ts.map +1 -1
- package/types/lib/cli/bomAssembly.d.ts.map +1 -1
- package/types/lib/cli/cliOptions.d.ts +2 -1
- package/types/lib/cli/cliOptions.d.ts.map +1 -1
- package/types/lib/cli/index.d.ts +10 -2
- package/types/lib/cli/index.d.ts.map +1 -1
- package/types/lib/cli/jsBom.d.ts +23 -0
- package/types/lib/cli/jsBom.d.ts.map +1 -1
- package/types/lib/cli/jvmBom.d.ts.map +1 -1
- package/types/lib/cli/managedBom.d.ts +33 -0
- package/types/lib/cli/managedBom.d.ts.map +1 -1
- package/types/lib/cli/nativeBom.d.ts +88 -8
- package/types/lib/cli/nativeBom.d.ts.map +1 -1
- package/types/lib/core/activity.d.ts.map +1 -1
- package/types/lib/core/buildLedger.d.ts +272 -0
- package/types/lib/core/buildLedger.d.ts.map +1 -0
- package/types/lib/core/deferredExit.d.ts +84 -0
- package/types/lib/core/deferredExit.d.ts.map +1 -0
- package/types/lib/core/env.d.ts +43 -1
- package/types/lib/core/env.d.ts.map +1 -1
- package/types/lib/core/fs.d.ts +21 -0
- package/types/lib/core/fs.d.ts.map +1 -1
- package/types/lib/core/logger.d.ts +2 -11
- package/types/lib/core/logger.d.ts.map +1 -1
- package/types/lib/core/severity.d.ts +11 -0
- package/types/lib/core/severity.d.ts.map +1 -0
- package/types/lib/core/syncFileWriter.d.ts +33 -0
- package/types/lib/core/syncFileWriter.d.ts.map +1 -0
- package/types/lib/core/userAgent.d.ts +56 -0
- package/types/lib/core/userAgent.d.ts.map +1 -0
- package/types/lib/ecosystems/cargoCache.d.ts +75 -0
- package/types/lib/ecosystems/cargoCache.d.ts.map +1 -0
- package/types/lib/ecosystems/caxa.d.ts.map +1 -1
- package/types/lib/ecosystems/cppEvidence.d.ts +1 -1
- package/types/lib/ecosystems/cppEvidence.d.ts.map +1 -1
- package/types/lib/ecosystems/ecosystems.d.ts +15 -1
- package/types/lib/ecosystems/ecosystems.d.ts.map +1 -1
- package/types/lib/ecosystems/gradleutils.d.ts +53 -0
- package/types/lib/ecosystems/gradleutils.d.ts.map +1 -1
- package/types/lib/ecosystems/kosi.d.ts +73 -0
- package/types/lib/ecosystems/kosi.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-crystal.d.ts +27 -0
- package/types/lib/ecosystems/parsers-crystal.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-dotnet.d.ts +19 -0
- package/types/lib/ecosystems/parsers-dotnet.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-elm.d.ts +79 -0
- package/types/lib/ecosystems/parsers-elm.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-js.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-julia.d.ts +57 -0
- package/types/lib/ecosystems/parsers-julia.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-jvm.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-lua.d.ts +50 -0
- package/types/lib/ecosystems/parsers-lua.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-misc.d.ts +23 -0
- package/types/lib/ecosystems/parsers-misc.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-nim.d.ts +43 -0
- package/types/lib/ecosystems/parsers-nim.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-opam.d.ts +31 -0
- package/types/lib/ecosystems/parsers-opam.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-perl.d.ts +36 -0
- package/types/lib/ecosystems/parsers-perl.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-python.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-r.d.ts +35 -0
- package/types/lib/ecosystems/parsers-r.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-rebar.d.ts +42 -0
- package/types/lib/ecosystems/parsers-rebar.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-rust.d.ts +199 -0
- package/types/lib/ecosystems/parsers-rust.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-spack.d.ts +33 -0
- package/types/lib/ecosystems/parsers-spack.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-stack.d.ts +35 -0
- package/types/lib/ecosystems/parsers-stack.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-terraform.d.ts +34 -0
- package/types/lib/ecosystems/parsers-terraform.d.ts.map +1 -0
- package/types/lib/ecosystems/pypiClassifiers.d.ts +80 -0
- package/types/lib/ecosystems/pypiClassifiers.d.ts.map +1 -0
- package/types/lib/ecosystems/pythonutils.d.ts +21 -1
- package/types/lib/ecosystems/pythonutils.d.ts.map +1 -1
- package/types/lib/ecosystems/rubyutils.d.ts.map +1 -1
- package/types/lib/ecosystems/rusi.d.ts.map +1 -1
- package/types/lib/evinser/evinser.d.ts +34 -1
- package/types/lib/evinser/evinser.d.ts.map +1 -1
- package/types/lib/helpers/agenticToolutils.d.ts +87 -0
- package/types/lib/helpers/agenticToolutils.d.ts.map +1 -0
- package/types/lib/helpers/remote/dependency-track.d.ts +45 -4
- package/types/lib/helpers/remote/dependency-track.d.ts.map +1 -1
- package/types/lib/inventory/agentFormulationParser.d.ts.map +1 -1
- package/types/lib/inventory/aiCollector.d.ts.map +1 -1
- package/types/lib/inventory/aiInventory.d.ts.map +1 -1
- package/types/lib/inventory/analyzer.d.ts.map +1 -1
- package/types/lib/inventory/auditCategories.d.ts +12 -0
- package/types/lib/inventory/auditCategories.d.ts.map +1 -1
- package/types/lib/inventory/cbomutils.d.ts.map +1 -1
- package/types/lib/inventory/communityAiConfigParser.d.ts.map +1 -1
- package/types/lib/inventory/depsUtils.d.ts.map +1 -1
- package/types/lib/inventory/dosai.d.ts +43 -0
- package/types/lib/inventory/dosai.d.ts.map +1 -1
- package/types/lib/inventory/envcontext.d.ts.map +1 -1
- package/types/lib/inventory/evidenceUtils.d.ts.map +1 -1
- package/types/lib/inventory/fetchBatch.d.ts +43 -0
- package/types/lib/inventory/fetchBatch.d.ts.map +1 -1
- package/types/lib/inventory/fetchRate.d.ts +9 -6
- package/types/lib/inventory/fetchRate.d.ts.map +1 -1
- package/types/lib/inventory/forgeEnricher.d.ts.map +1 -1
- package/types/lib/inventory/jvmToolEnv.d.ts +190 -0
- package/types/lib/inventory/jvmToolEnv.d.ts.map +1 -0
- package/types/lib/inventory/mcpConfigParser.d.ts.map +1 -1
- package/types/lib/inventory/mcpDiscovery.d.ts.map +1 -1
- package/types/lib/inventory/mcpServerManifest.d.ts +19 -0
- package/types/lib/inventory/mcpServerManifest.d.ts.map +1 -0
- package/types/lib/inventory/mcpbBundle.d.ts +19 -0
- package/types/lib/inventory/mcpbBundle.d.ts.map +1 -0
- package/types/lib/inventory/osinfo.d.ts.map +1 -1
- package/types/lib/inventory/plugins.d.ts.map +1 -1
- package/types/lib/inventory/protobom.d.ts +18 -13
- package/types/lib/inventory/protobom.d.ts.map +1 -1
- package/types/lib/inventory/protobomLoader.d.ts.map +1 -1
- package/types/lib/inventory/source.d.ts.map +1 -1
- package/types/lib/inventory/stylePackageRefs.d.ts +17 -0
- package/types/lib/inventory/stylePackageRefs.d.ts.map +1 -0
- package/types/lib/inventory/svelteUtils.d.ts +124 -0
- package/types/lib/inventory/svelteUtils.d.ts.map +1 -0
- package/types/lib/inventory/toolRequirements.d.ts +216 -0
- package/types/lib/inventory/toolRequirements.d.ts.map +1 -0
- package/types/lib/managers/binary.d.ts.map +1 -1
- package/types/lib/managers/docker.d.ts.map +1 -1
- package/types/lib/parsers/huggingfaceUtils.d.ts +8 -1
- package/types/lib/parsers/huggingfaceUtils.d.ts.map +1 -1
- package/types/lib/parsers/onnx.d.ts +28 -0
- package/types/lib/parsers/onnx.d.ts.map +1 -0
- package/types/lib/parsers/safetensors.d.ts +22 -0
- package/types/lib/parsers/safetensors.d.ts.map +1 -0
- package/types/lib/stages/postgen/annotationBuilder.d.ts +53 -0
- package/types/lib/stages/postgen/annotationBuilder.d.ts.map +1 -0
- package/types/lib/stages/postgen/auditBom.d.ts.map +1 -1
- package/types/lib/stages/postgen/introspection/annotate.d.ts +81 -0
- package/types/lib/stages/postgen/introspection/annotate.d.ts.map +1 -0
- package/types/lib/stages/postgen/introspection/commandFacts.d.ts +32 -0
- package/types/lib/stages/postgen/introspection/commandFacts.d.ts.map +1 -0
- package/types/lib/stages/postgen/introspection/emit.d.ts +71 -0
- package/types/lib/stages/postgen/introspection/emit.d.ts.map +1 -0
- package/types/lib/stages/postgen/introspection/formulationEvidence.d.ts +154 -0
- package/types/lib/stages/postgen/introspection/formulationEvidence.d.ts.map +1 -0
- package/types/lib/stages/postgen/introspection/markers.d.ts +58 -0
- package/types/lib/stages/postgen/introspection/markers.d.ts.map +1 -0
- package/types/lib/stages/postgen/introspection/reflect.d.ts +77 -0
- package/types/lib/stages/postgen/introspection/reflect.d.ts.map +1 -0
- package/types/lib/stages/postgen/introspection/report.d.ts +85 -0
- package/types/lib/stages/postgen/introspection/report.d.ts.map +1 -0
- package/types/lib/stages/postgen/introspection/score.d.ts +149 -0
- package/types/lib/stages/postgen/introspection/score.d.ts.map +1 -0
- package/types/lib/stages/postgen/introspection/shapeCommand.d.ts +79 -0
- package/types/lib/stages/postgen/introspection/shapeCommand.d.ts.map +1 -0
- package/types/lib/stages/postgen/parentEdge.d.ts +35 -0
- package/types/lib/stages/postgen/parentEdge.d.ts.map +1 -0
- package/types/lib/stages/postgen/postgen.d.ts +35 -2
- 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/pregen/envAudit.d.ts.map +1 -1
- package/types/lib/stages/pregen/pregen.d.ts +131 -0
- package/types/lib/stages/pregen/pregen.d.ts.map +1 -1
- package/types/lib/validator/bomValidator.d.ts.map +1 -1
|
@@ -44,6 +44,205 @@ export declare function parseCargoManifestDependencyData(cargoTomlFile: string,
|
|
|
44
44
|
* @returns {Object[]} Array of dependency relationship objects with ref and dependsOn fields
|
|
45
45
|
*/
|
|
46
46
|
export declare function parseCargoDependencyData(cargoLockData: string): Object[];
|
|
47
|
+
/**
|
|
48
|
+
* Normalize a cargo dependency kind to the vocabulary used by the cargo
|
|
49
|
+
* manifest parsers.
|
|
50
|
+
*
|
|
51
|
+
* `cargo metadata` encodes a normal dependency as `null` rather than a string,
|
|
52
|
+
* so a truthiness test would silently leave runtime dependencies unlabelled.
|
|
53
|
+
*
|
|
54
|
+
* @param {string|null|undefined} kind Dependency kind as reported by cargo
|
|
55
|
+
* @returns {string} One of `runtime`, `build` or `dev`
|
|
56
|
+
*/
|
|
57
|
+
export declare function normalizeCargoDepKind(kind: string | null | undefined): string;
|
|
58
|
+
/**
|
|
59
|
+
* Parse a cargo package id into its name and version.
|
|
60
|
+
*
|
|
61
|
+
* cargo 1.77 and later emit the package id spec form
|
|
62
|
+
* (`registry+https://...#name@1.0.0`, or `path+file:///p/foo#1.0.0` where the
|
|
63
|
+
* name is carried by the path); earlier releases emit `name 1.0.0 (source)`.
|
|
64
|
+
*
|
|
65
|
+
* @param {string} packageId cargo package id
|
|
66
|
+
* @returns {{name: string, version: string}|undefined} Parsed identity
|
|
67
|
+
*/
|
|
68
|
+
export declare function parseCargoPackageId(packageId: string): {
|
|
69
|
+
name: string;
|
|
70
|
+
version: string;
|
|
71
|
+
} | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* Build the `name@version` key used to correlate cargo components across the
|
|
74
|
+
* lock file, the manifests and `cargo metadata`.
|
|
75
|
+
*
|
|
76
|
+
* @param {{name: string, version: string}} pkg Package identity
|
|
77
|
+
* @returns {string} Correlation key
|
|
78
|
+
*/
|
|
79
|
+
export declare function cargoComponentKey(pkg: {
|
|
80
|
+
name: string;
|
|
81
|
+
version: string;
|
|
82
|
+
}): string;
|
|
83
|
+
/**
|
|
84
|
+
* Convert a cargo purl or bom-ref into a `name@version` correlation key.
|
|
85
|
+
*
|
|
86
|
+
* @param {string} purl cargo purl
|
|
87
|
+
* @returns {string} Correlation key
|
|
88
|
+
*/
|
|
89
|
+
export declare function cargoPurlToComponentKey(purl: string): string;
|
|
90
|
+
/**
|
|
91
|
+
* Collect the dependency kinds and platform gates declared by a single
|
|
92
|
+
* `Cargo.toml`, keyed by the crate name that cargo resolves the entry to.
|
|
93
|
+
*
|
|
94
|
+
* Manifests declare version requirements rather than resolved versions, so the
|
|
95
|
+
* returned map is keyed by name alone and is meant to label the edges leaving a
|
|
96
|
+
* workspace member in the lock file graph.
|
|
97
|
+
*
|
|
98
|
+
* @param {string} cargoTomlFile Cargo.toml path
|
|
99
|
+
* @param {object} [context] Workspace resolution context
|
|
100
|
+
* @returns {Map<string, {kinds: Set<string>, targets: Set<string>, optional: boolean}>} Declared edges
|
|
101
|
+
*/
|
|
102
|
+
export declare function parseCargoManifestDependencyKinds(cargoTomlFile: string, context?: object): Map<string, {
|
|
103
|
+
kinds: Set<string>;
|
|
104
|
+
targets: Set<string>;
|
|
105
|
+
optional: boolean;
|
|
106
|
+
}>;
|
|
107
|
+
/**
|
|
108
|
+
* Roll per-edge cargo dependency kinds up to an effective kind per component.
|
|
109
|
+
*
|
|
110
|
+
* A crate is only dev-only when *every* path reaching it from a workspace root
|
|
111
|
+
* traverses a dev edge, so a crate shared between a dev dependency and a normal
|
|
112
|
+
* one keeps its runtime kind. Cargo never builds the dev dependencies of a
|
|
113
|
+
* dependency, so dev edges are followed from the workspace roots alone.
|
|
114
|
+
*
|
|
115
|
+
* @param {object} graph Dependency graph
|
|
116
|
+
* @param {string[]} graph.rootKeys Workspace member component keys
|
|
117
|
+
* @param {Map<string, Array<{to: string, kind: string, target?: string}>>} graph.edges Adjacency map
|
|
118
|
+
* @returns {Map<string, {kind: string, kinds: Set<string>, targets: Set<string>, targetGated: boolean}>} Effective kinds
|
|
119
|
+
*/
|
|
120
|
+
export declare function rollupCargoDependencyKinds({ rootKeys, edges }: {
|
|
121
|
+
rootKeys: string[];
|
|
122
|
+
edges: Map<string, Array<{
|
|
123
|
+
to: string;
|
|
124
|
+
kind: string;
|
|
125
|
+
target?: string;
|
|
126
|
+
}>>;
|
|
127
|
+
}): Map<string, {
|
|
128
|
+
kind: string;
|
|
129
|
+
kinds: Set<string>;
|
|
130
|
+
targets: Set<string>;
|
|
131
|
+
targetGated: boolean;
|
|
132
|
+
}>;
|
|
133
|
+
/**
|
|
134
|
+
* Build a cargo dependency graph from the `resolve` section of
|
|
135
|
+
* `cargo metadata --format-version 1`.
|
|
136
|
+
*
|
|
137
|
+
* @param {object} metadata Parsed `cargo metadata` output
|
|
138
|
+
* @returns {{rootKeys: string[], edges: Map<string, Array<object>>, packageInfo: Map<string, object>, resolvedKeys: Set<string>}} Graph
|
|
139
|
+
*/
|
|
140
|
+
export declare function parseCargoMetadataResolve(metadata: object): {
|
|
141
|
+
rootKeys: string[];
|
|
142
|
+
edges: Map<string, Array<object>>;
|
|
143
|
+
packageInfo: Map<string, object>;
|
|
144
|
+
resolvedKeys: Set<string>;
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* Build a cargo dependency graph from the lock file relationships, labelling
|
|
148
|
+
* the edges that leave a workspace member with the kinds declared by its
|
|
149
|
+
* manifest.
|
|
150
|
+
*
|
|
151
|
+
* The lock file is the union of every dependency kind and every target triple,
|
|
152
|
+
* so only the manifests can distinguish them. The resulting labels are exact at
|
|
153
|
+
* depth one and inherited below it, which is enough to identify dev-only and
|
|
154
|
+
* build-only subtrees without invoking cargo.
|
|
155
|
+
*
|
|
156
|
+
* @param {object[]} lockDependencies Relationships from {@link parseCargoDependencyData}
|
|
157
|
+
* @param {Map<string, Map<string, object>>} declaredEdgesByRoot Declared edges keyed by root component key
|
|
158
|
+
* @returns {{rootKeys: string[], edges: Map<string, Array<object>>}} Graph
|
|
159
|
+
*/
|
|
160
|
+
export declare function buildCargoLockDependencyGraph(lockDependencies: object[], declaredEdgesByRoot: Map<string, Map<string, object>>): {
|
|
161
|
+
rootKeys: string[];
|
|
162
|
+
edges: Map<string, Array<object>>;
|
|
163
|
+
};
|
|
164
|
+
/**
|
|
165
|
+
* Annotate cargo components with their effective dependency kind, platform
|
|
166
|
+
* gates and scope.
|
|
167
|
+
*
|
|
168
|
+
* Components reachable only through dev edges are scoped `excluded` so
|
|
169
|
+
* `--required-only` drops them. Build dependencies stay required because a
|
|
170
|
+
* build script is part of producing the artifact; the kind is recorded as a
|
|
171
|
+
* property so a consumer can filter on it.
|
|
172
|
+
*
|
|
173
|
+
* @param {object[]} pkgList Components to annotate
|
|
174
|
+
* @param {Map<string, object>} rollup Effective kinds from {@link rollupCargoDependencyKinds}
|
|
175
|
+
* @param {Map<string, object>} [packageInfo] Extra per-package facts
|
|
176
|
+
* @param {object} [options] Annotation options
|
|
177
|
+
* @param {boolean} [options.resolveIsComplete] The rollup covers every workspace in the scan, so a
|
|
178
|
+
* component missing from it is an optional dependency no feature activates
|
|
179
|
+
* @returns {object[]} The annotated components
|
|
180
|
+
*/
|
|
181
|
+
export declare function applyCargoDependencyKindMetadata(pkgList: object[], rollup: Map<string, object>, packageInfo?: Map<string, object>, options?: {
|
|
182
|
+
resolveIsComplete?: boolean;
|
|
183
|
+
}): object[];
|
|
184
|
+
/**
|
|
185
|
+
* Recover the upstream version of a native library from the version of the
|
|
186
|
+
* crate that ships it.
|
|
187
|
+
*
|
|
188
|
+
* The `-sys` and `-src` crates carry the upstream version as semver build
|
|
189
|
+
* metadata, because the crate's own version tracks the binding's releases
|
|
190
|
+
* rather than the library's: `openssl-src@300.6.1+3.6.3` ships OpenSSL 3.6.3
|
|
191
|
+
* and `curl-sys@0.4.74+curl-8.9.0` ships curl 8.9.0.
|
|
192
|
+
*
|
|
193
|
+
* @param {string} crateVersion Version of the providing crate
|
|
194
|
+
* @returns {string} Upstream version, or an empty string when it is not encoded
|
|
195
|
+
*/
|
|
196
|
+
export declare function cargoUpstreamVersionFromCrateVersion(crateVersion: string): string;
|
|
197
|
+
/**
|
|
198
|
+
* Recover the version of a vendored native library from the C source the crate
|
|
199
|
+
* ships.
|
|
200
|
+
*
|
|
201
|
+
* A `-sys` crate that bundles its library carries the upstream version in a
|
|
202
|
+
* header define - `ZLIB_VERSION`, `SQLITE_VERSION`, `OPENSSL_VERSION_TEXT` -
|
|
203
|
+
* which is the only statement of the version for the crates that do not encode
|
|
204
|
+
* it in their own version. A crate often ships more than one variant, so a
|
|
205
|
+
* candidate sitting in a directory named after a feature this build did not
|
|
206
|
+
* enable is dropped: `libz-sys` ships both `src/zlib` and `src/zlib-ng`, and
|
|
207
|
+
* only one of them is compiled.
|
|
208
|
+
*
|
|
209
|
+
* @param {object} args Resolution inputs
|
|
210
|
+
* @param {string} args.crateDir Directory holding the crate's unpacked source
|
|
211
|
+
* @param {string} args.links The crate's `links` value
|
|
212
|
+
* @param {string} args.libraryName Normalized library name
|
|
213
|
+
* @param {string[]} [args.declaredFeatures] Features the crate declares
|
|
214
|
+
* @param {Set<string>} [args.resolvedFeatures] Features the resolver enabled
|
|
215
|
+
* @returns {{version: string, evidence: string, candidates: string[]}} Version and where it came from
|
|
216
|
+
*/
|
|
217
|
+
export declare function resolveCargoVendoredLibraryVersion({ crateDir, links, libraryName, declaredFeatures, resolvedFeatures, }: {
|
|
218
|
+
crateDir: string;
|
|
219
|
+
links: string;
|
|
220
|
+
libraryName: string;
|
|
221
|
+
declaredFeatures?: string[];
|
|
222
|
+
resolvedFeatures?: Set<string>;
|
|
223
|
+
}): {
|
|
224
|
+
version: string;
|
|
225
|
+
evidence: string;
|
|
226
|
+
candidates: string[];
|
|
227
|
+
};
|
|
228
|
+
/**
|
|
229
|
+
* Build components for the native libraries that `-sys` crates link.
|
|
230
|
+
*
|
|
231
|
+
* A crate declaring `links = "openssl"` puts a C library into the artifact that
|
|
232
|
+
* the cargo dependency graph cannot describe: its advisories and its license
|
|
233
|
+
* obligations belong to OpenSSL, not to the Rust binding. When the resolver
|
|
234
|
+
* enabled a vendoring feature, that library is compiled into the binary, which
|
|
235
|
+
* makes it a component of the delivered assembly.
|
|
236
|
+
*
|
|
237
|
+
* @param {Map<string, object>} packageInfo Per-package facts from {@link parseCargoMetadataResolve}
|
|
238
|
+
* @param {Map<string, Array<object>>} edges Dependency edges keyed by component key
|
|
239
|
+
* @param {Map<string, object>} rollup Effective kinds, used to skip crates no build reaches
|
|
240
|
+
* @returns {{components: object[], dependencies: object[]}} Native library components and their edges
|
|
241
|
+
*/
|
|
242
|
+
export declare function buildCargoNativeLibraryComponents(packageInfo: Map<string, object>, edges: Map<string, Array<object>>, rollup: Map<string, object>): {
|
|
243
|
+
components: object[];
|
|
244
|
+
dependencies: object[];
|
|
245
|
+
};
|
|
47
246
|
/**
|
|
48
247
|
* Parses tab-separated cargo-auditable binary metadata output and returns a list
|
|
49
248
|
* of Rust package components. Optionally fetches crates.io metadata when
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsers-rust.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/parsers-rust.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parsers-rust.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/parsers-rust.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HPC Spack parser for `spack.lock`.
|
|
3
|
+
*
|
|
4
|
+
* Spack writes a JSON lock file when an environment is concretised:
|
|
5
|
+
*
|
|
6
|
+
* - `roots` — the specs the user asked for, each as `{hash, spec}`.
|
|
7
|
+
* - `concrete_specs` — every node of the resolved DAG, keyed by its DAG
|
|
8
|
+
* hash. A node carries its `name`, `version`, `namespace`, the compiler
|
|
9
|
+
* and architecture it was built for, and a `dependencies` list whose
|
|
10
|
+
* entries reference other nodes by hash.
|
|
11
|
+
*
|
|
12
|
+
* The DAG hash is the identity Spack itself uses: two builds of the same
|
|
13
|
+
* version with different variants or compilers are different hashes, so the
|
|
14
|
+
* graph is keyed by hash throughout and the hash is carried into each
|
|
15
|
+
* component's bom-ref.
|
|
16
|
+
*
|
|
17
|
+
* No `spack` purl type is registered, so nodes are identified as generic
|
|
18
|
+
* packages carrying a `cdx:purl:proposedType=spack` property, following the
|
|
19
|
+
* convention used for nix and zig. The DAG hash is kept as a property because
|
|
20
|
+
* it identifies the concrete build, not the artifact bytes.
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Parse a `spack.lock` file.
|
|
24
|
+
*
|
|
25
|
+
* @param {string} spackLockFile Path to `spack.lock`
|
|
26
|
+
* @returns {{ pkgList: object[], dependencies: object[], rootInputs: string[] }}
|
|
27
|
+
*/
|
|
28
|
+
export declare function parseSpackLock(spackLockFile: string): {
|
|
29
|
+
pkgList: object[];
|
|
30
|
+
dependencies: object[];
|
|
31
|
+
rootInputs: string[];
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=parsers-spack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsers-spack.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/parsers-spack.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAHjC,MAGiC,GAF/B;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAgE/E"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Haskell Stack parser for `stack.yaml` and its lock file.
|
|
3
|
+
*
|
|
4
|
+
* Stack resolves packages from a snapshot plus the `extra-deps` a project
|
|
5
|
+
* declares, and writes the completed locations to `stack.yaml.lock` (named
|
|
6
|
+
* after the configuration file, so a custom `foo.yaml` locks to
|
|
7
|
+
* `foo.yaml.lock`). The lock is YAML with two lists:
|
|
8
|
+
*
|
|
9
|
+
* - `packages` — one entry per extra-dep, each holding the `original`
|
|
10
|
+
* incomplete specification and the `completed` location. A Hackage
|
|
11
|
+
* location is the string `<name>-<version>@sha256:<hex>,<size>`; a
|
|
12
|
+
* repository location carries `url`, `commit` and `subdir`.
|
|
13
|
+
* - `snapshots` — the resolved snapshot chain, each with the `original`
|
|
14
|
+
* name (`lts-22.28`) and the `completed` url, size and sha256.
|
|
15
|
+
*
|
|
16
|
+
* The lock pins only the extra-deps: packages taken from the snapshot are not
|
|
17
|
+
* listed, because the snapshot url and digest already pin them. The snapshot
|
|
18
|
+
* is therefore recorded on the parent component rather than expanded.
|
|
19
|
+
*
|
|
20
|
+
* Hackage packages are identified with the registered `hackage` purl type
|
|
21
|
+
* (`pkg:hackage/<name>@<version>`).
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Parse a Stack project from its lock file, with optional `stack.yaml`.
|
|
25
|
+
*
|
|
26
|
+
* @param {string} stackLockFile Path to `stack.yaml.lock` or `stack.lock`
|
|
27
|
+
* @param {string} [stackYamlFile] Path to `stack.yaml`, if present
|
|
28
|
+
* @returns {{ pkgList: object[], parentComponent: object, rootInputs: string[] }}
|
|
29
|
+
*/
|
|
30
|
+
export declare function parseStackProject(stackLockFile: string, stackYamlFile?: string): {
|
|
31
|
+
pkgList: object[];
|
|
32
|
+
parentComponent: object;
|
|
33
|
+
rootInputs: string[];
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=parsers-stack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsers-stack.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/parsers-stack.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAJpC,MAIoC,EAAE,aAAa,AAH3D,CACA,EADQ,MAGmD,GAFjD;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CA0ChF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terraform and OpenTofu parser for `.terraform.lock.hcl`.
|
|
3
|
+
*
|
|
4
|
+
* The lock file pins every provider the configuration resolves to, with its
|
|
5
|
+
* exact version, the version constraints that produced it, and content
|
|
6
|
+
* hashes. It is written in a small, regular subset of HCL: provider blocks,
|
|
7
|
+
* `version` and `constraints` attributes, and a `hashes` list of prefixed
|
|
8
|
+
* digests. A line scanner is sufficient and avoids a general HCL parser.
|
|
9
|
+
*
|
|
10
|
+
* Provider addresses look like `registry.terraform.io/hashicorp/aws`; the
|
|
11
|
+
* registry host and namespace identify the provider upstream, so they are
|
|
12
|
+
* kept in the component group and a generic purl
|
|
13
|
+
* (`pkg:generic/<host>/<namespace>/<type>@<version>`), with the intended type
|
|
14
|
+
* recorded as a `cdx:purl:proposedType` property because no `terraform`
|
|
15
|
+
* purl type is registered.
|
|
16
|
+
*
|
|
17
|
+
* The two hash schemes in the `hashes` list mean different things. A `zh:`
|
|
18
|
+
* digest is a SHA-256 of the official `.zip` package as the registry indexes
|
|
19
|
+
* it, so it is the one a consumer can check an artifact against and the one
|
|
20
|
+
* emitted in the CycloneDX `hashes` array. An `h1:` digest is base64 over a
|
|
21
|
+
* hash of the package's *contents* rather than the archive, which lets
|
|
22
|
+
* Terraform verify an unpacked directory but makes it useless as an artifact
|
|
23
|
+
* checksum; it is kept as a property instead of being mislabelled SHA-256.
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Parse a `.terraform.lock.hcl` file.
|
|
27
|
+
*
|
|
28
|
+
* @param {string} lockFile Path to the lock file
|
|
29
|
+
* @returns {{ pkgList: object[] }} Provider components
|
|
30
|
+
*/
|
|
31
|
+
export declare function parseTerraformLockFile(lockFile: string): {
|
|
32
|
+
pkgList: object[];
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=parsers-terraform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsers-terraform.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/parsers-terraform.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAHpC,MAGoC,GAFlC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAkEjC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `Framework ::` values that do not mean "an application is built on this".
|
|
3
|
+
*
|
|
4
|
+
* Two groups, both of which would otherwise put a `framework` tag — and therefore
|
|
5
|
+
* `type: "framework"` — on a large share of an ordinary dependency tree, drowning
|
|
6
|
+
* the runtime frameworks the tag exists to surface:
|
|
7
|
+
*
|
|
8
|
+
* * Development, build, test and documentation tooling. A pytest plugin
|
|
9
|
+
* declaring `Framework :: Pytest` is making a true statement, but it belongs
|
|
10
|
+
* to the dev dependencies, not to what the application runs on.
|
|
11
|
+
* * Concurrency runtimes. `Framework :: AsyncIO` is declared by a very large
|
|
12
|
+
* number of libraries to advertise that they work under asyncio; observed on
|
|
13
|
+
* `fastapi`, and `Framework :: AnyIO` likewise on `starlette`. It describes an
|
|
14
|
+
* execution model, not a framework the application is written against.
|
|
15
|
+
*
|
|
16
|
+
* The declared name is still emitted as a tag in every case, and still recorded in
|
|
17
|
+
* `cdx:pypi:frameworks`; only the generic `framework` tag is withheld.
|
|
18
|
+
*/
|
|
19
|
+
export declare const PYPI_NON_APPLICATION_FRAMEWORKS: Set<string>;
|
|
20
|
+
/**
|
|
21
|
+
* Normalize a distribution name per PEP 503.
|
|
22
|
+
*
|
|
23
|
+
* @param {string} name Distribution name
|
|
24
|
+
* @returns {string} Normalized name, or an empty string for unusable input
|
|
25
|
+
*/
|
|
26
|
+
export declare function normalizePypiName(name: string): string;
|
|
27
|
+
/**
|
|
28
|
+
* Best-known import module names for a PyPI distribution.
|
|
29
|
+
*
|
|
30
|
+
* Two sources, in order: the curated alias map (which is where the cases that
|
|
31
|
+
* cannot be derived from the name live — `pyyaml` installs `yaml`, `absl-py`
|
|
32
|
+
* installs `absl`, `beautifulsoup4` installs `bs4`), and the name-derived form,
|
|
33
|
+
* which is correct for the large majority of distributions. Callers that need to
|
|
34
|
+
* distinguish the two should read the alias map themselves; for tagging purposes
|
|
35
|
+
* both are usable and a wrong extra candidate simply matches nothing.
|
|
36
|
+
*
|
|
37
|
+
* This is deliberately not a guess at *every* module a distribution ships — only
|
|
38
|
+
* at its top-level import names.
|
|
39
|
+
*
|
|
40
|
+
* @param {string} name Distribution name, e.g. "PyYAML"
|
|
41
|
+
* @returns {string[]} Candidate top-level module names, deduplicated
|
|
42
|
+
*/
|
|
43
|
+
export declare function pypiModulesForPackage(name: string): string[];
|
|
44
|
+
/**
|
|
45
|
+
* Interpret a PyPI classifier list.
|
|
46
|
+
*
|
|
47
|
+
* @param {string[]} classifiers Raw `info.classifiers` from the PyPI JSON API
|
|
48
|
+
* @returns {{frameworks: string[], tags: string[]}} Declared frameworks (lowercased,
|
|
49
|
+
* e.g. `["django"]`) and the tag vocabulary they and the `Topic ::` lines imply
|
|
50
|
+
*/
|
|
51
|
+
export declare function parsePypiClassifiers(classifiers: string[]): {
|
|
52
|
+
frameworks: string[];
|
|
53
|
+
tags: string[];
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Attach classifier-derived tags and properties to a package.
|
|
57
|
+
*
|
|
58
|
+
* Tags are merged into any the package already carries rather than replacing
|
|
59
|
+
* them — `lib/managers/binary.js` sets `tags: ["source"]` as an identity marker,
|
|
60
|
+
* and losing it would change how that package is reconciled later.
|
|
61
|
+
*
|
|
62
|
+
* @param {Object} pkg Package object, mutated in place
|
|
63
|
+
* @param {string[]} classifiers Raw `info.classifiers` from the PyPI JSON API
|
|
64
|
+
* @returns {Object} The same package object
|
|
65
|
+
*/
|
|
66
|
+
export declare function applyPypiClassifierMetadata(pkg: Object, classifiers: string[]): Object;
|
|
67
|
+
/**
|
|
68
|
+
* Attach the distribution's top-level import module names as `internal:Namespaces`.
|
|
69
|
+
*
|
|
70
|
+
* This is the same property jar, gem, nuget and composer components already carry,
|
|
71
|
+
* so downstream consumers that map namespaces back to components need no
|
|
72
|
+
* pypi-specific path. Unlike the jar case the value is name-derived and
|
|
73
|
+
* alias-curated rather than read out of the artifact, which is why
|
|
74
|
+
* `cdx:pypi:modulesFrom` records the provenance.
|
|
75
|
+
*
|
|
76
|
+
* @param {Object} pkg Package object, mutated in place
|
|
77
|
+
* @returns {Object} The same package object
|
|
78
|
+
*/
|
|
79
|
+
export declare function applyPypiModuleNames(pkg: Object): Object;
|
|
80
|
+
//# sourceMappingURL=pypiClassifiers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pypiClassifiers.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/pypiClassifiers.js"],"names":[],"mappings":"AAmBA;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,+BAA+B,aAgB1C,CAAC;AAyCH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAH3B,MAG2B,GAFzB,MAAM,CAoBlB;AAmCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAH/B,MAG+B,GAF7B,MAAM,EAAE,CAcpB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAJrC,MAAM,EAI+B,GAHnC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAC,CA2ClD;AAiBD;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAJpC,MAIoC,EAAE,WAAW,EAHjD,MAAM,EAG2C,GAF/C,MAAM,CA0BlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAH7B,MAG6B,GAF3B,MAAM,CA+BlB"}
|
|
@@ -15,6 +15,26 @@ export declare function getVenvMetadata(env?: Object, explicitPath?: string): Ob
|
|
|
15
15
|
* @returns {string} Path to the Python executable or the fallback command name
|
|
16
16
|
*/
|
|
17
17
|
export declare function get_python_command_from_env(env: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Is this import satisfied by a module that lives in the project itself?
|
|
20
|
+
*
|
|
21
|
+
* `atom parsedeps` reports every non-stdlib import it sees, including imports of the
|
|
22
|
+
* project's own packages. Attributing those to a distribution invents dependencies:
|
|
23
|
+
* `data/pypi-pkg-aliases.json` maps the module `app` to `zope2`, `test` to `pytabix`,
|
|
24
|
+
* `models` to `asposestorage` and `src` to `auto-mix-prep`, so any project with a
|
|
25
|
+
* local package of that name acquires an obscure component it never depended on -
|
|
26
|
+
* along with every namespace and tag that component carries downstream. Filtering by
|
|
27
|
+
* name would need a denylist of every plausible first-party name; asking the
|
|
28
|
+
* filesystem whether the module is ours answers it exactly.
|
|
29
|
+
*
|
|
30
|
+
* Checks the project root and a `src/` layout for a module file, a package directory,
|
|
31
|
+
* and a PEP 420 namespace package directory.
|
|
32
|
+
*
|
|
33
|
+
* @param {string} src Path to the project being analysed
|
|
34
|
+
* @param {string} name Imported top-level module name
|
|
35
|
+
* @returns {boolean} `true` if the project supplies this module itself
|
|
36
|
+
*/
|
|
37
|
+
export declare function isFirstPartyModule(src: string, name: string): boolean;
|
|
18
38
|
/**
|
|
19
39
|
* Method to find python modules by parsing the imports and then checking with PyPI to obtain the latest version
|
|
20
40
|
*
|
|
@@ -51,9 +71,9 @@ export declare function createUVLock(basePath: string, options: Object): void;
|
|
|
51
71
|
*/
|
|
52
72
|
export declare function getPipFrozenTree(basePath: string, reqOrSetupFile: string, tempVenvDir: string, parentComponent: Object, projectRoot: any, getTreeWithPluginFn: any): Object;
|
|
53
73
|
export declare function getPipTreeForPackages(basePath: any, pkgList: any, tempVenvDir: any, parentComponent: any, getTreeWithPluginFn: any): {
|
|
74
|
+
failedPkgList?: undefined;
|
|
54
75
|
rootList?: undefined;
|
|
55
76
|
dependenciesList?: undefined;
|
|
56
|
-
failedPkgList?: undefined;
|
|
57
77
|
} | {
|
|
58
78
|
failedPkgList: any[];
|
|
59
79
|
rootList: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pythonutils.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/pythonutils.js"],"names":[],"mappings":"AAiCA;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAJxB,MAIsC,EAAE,YAAY,AAH5D,CACA,EADQ,MAG2D,GAFzD,MAAM,CAyLlB;AAyED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAHpC,MAGoC,GAFlC,MAAM,CA6BlB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAL3B,MAK2B,EAAE,QAAQ,OAAA,EAAE,OAAO,EAH9C,MAG8C;;;;;;;;
|
|
1
|
+
{"version":3,"file":"pythonutils.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/pythonutils.js"],"names":[],"mappings":"AAiCA;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAJxB,MAIsC,EAAE,YAAY,AAH5D,CACA,EADQ,MAG2D,GAFzD,MAAM,CAyLlB;AAyED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAHpC,MAGoC,GAFlC,MAAM,CA6BlB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAJ3B,MAI2B,EAAE,IAAI,EAHjC,MAGiC,GAF/B,OAAO,CA4BnB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAL3B,MAK2B,EAAE,QAAQ,OAAA,EAAE,OAAO,EAH9C,MAG8C;;;;;;;;GAwExD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAH1B,MAG0B,EAAE,OAAO,EAFnC,MAEmC,QAgD7C;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EARC,MAQD,EACR,cAAc,EARL,MAQK,EACd,WAAW,EARF,MAQE,EACX,eAAe,EARN,MAQM,EACf,WAAW,KAAA,EACX,mBAAmB,KAAA,GARR,MAAM,CAmkBlB;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,KAAA,EACR,OAAO,KAAA,EACP,WAAW,KAAA,EACX,eAAe,KAAA,EACf,mBAAmB,KAAA;;;;;;;;;;;;;;;;EAwNpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rubyutils.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/rubyutils.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rubyutils.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/rubyutils.js"],"names":[],"mappings":"AA2DA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAHzB,MAGyB,GAFvB,OAAO,CAOnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAHlC,MAAM,GAAG,SAGyB,GAFhC,MAAM,GAAG,SAAS,CAO9B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAHrC,MAAM,GAAG,SAG4B,GAFnC;IAAC,OAAO,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;CAAC,CAe3E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAHhC,MAGgC,GAF9B,MAAM,CAIlB;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,IAAI,EALnB,MAKmB,EAAE,OAAO,EAJ5B,MAAM,GAAG,SAImB,EAAE,QAAQ,EAHtC,MAAM,GAAG,SAG6B,GAFpC,MAAM,CAclB;AAsED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAH9B,MAG8B,GAF5B;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAAC,GAAG,SAAS,CAqBjE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,IAF1B,MAAM,CAWlB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAHnC,MAGmC,GAFjC,MAAM,CAiClB;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAHjC,MAGiC,GAF/B,MAAM,CAgClB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,OAAA,EAAE,OAAO,GAJ5D;IAAwB,OAAO,EAAvB,MAAM,CACd;IAAwB,oBAAoB,EAApC,MAAM,CACd;CAEiE,GAFvD,OAAO,OAAO,CA+I1B;AAwID;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,OAAA,kBAmIhD;AA8CD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,KAAA,YAsBpC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,QAAA,EACX,aAAa,QAAA,EACb,OAAO,QAAA,EACP,OAAO,QAAA,EACP,QAAQ,QAAA,GAPG,KAAK,CAAC,MAAM,CAAC,CA4IzB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAHvC,MAGuC,EAAE,WAAW,EAFpD,MAEoD,kBAwQ9D;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAH3C,MAG2C,EAAE,QAAQ,EAFrD,MAEqD;;;;;;;GAgV/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rusi.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/rusi.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rusi.d.ts","sourceRoot":"","sources":["../../../lib/ecosystems/rusi.js"],"names":[],"mappings":"AAqtBA;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAHhC,MAGgC,GAF9B,OAAO,CAInB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAH9B,MAG8B,GAF5B,MAAM,GAAC,SAAS,CAW5B;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EALxB,MAKwB,EAAE,UAAU,EAJpC,MAIoC,EAAE,OAAO,GAH7C,MAGkD,GAFhD,OAAO,CAuDnB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAJ3B,MAI2B,EAAE,OAAO,GAHpC,MAGyC,GAFvC,MAAM,GAAC,SAAS,CA2B5B;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,GAJnC,MAIwC,EAAE,UAAU,QAAK,GAFvD,MAAM,CA8DlB"}
|
|
@@ -115,6 +115,7 @@ export declare function analyzeProject(dbObjMap: Object, options: Object): Promi
|
|
|
115
115
|
userDefinedTypesMap: {};
|
|
116
116
|
componentPropertiesMap?: undefined;
|
|
117
117
|
metadataProperties?: undefined;
|
|
118
|
+
workspaceComponent?: undefined;
|
|
118
119
|
atomFile?: undefined;
|
|
119
120
|
usagesSlicesFile?: undefined;
|
|
120
121
|
dataFlowSlicesFile?: undefined;
|
|
@@ -123,6 +124,7 @@ export declare function analyzeProject(dbObjMap: Object, options: Object): Promi
|
|
|
123
124
|
tempDir?: undefined;
|
|
124
125
|
tempDirOwned?: undefined;
|
|
125
126
|
cryptoComponents?: undefined;
|
|
127
|
+
aiComponents?: undefined;
|
|
126
128
|
cryptoGeneratePurls?: undefined;
|
|
127
129
|
openapiSpecFile?: undefined;
|
|
128
130
|
} | {
|
|
@@ -134,6 +136,7 @@ export declare function analyzeProject(dbObjMap: Object, options: Object): Promi
|
|
|
134
136
|
cryptoGeneratePurls: any;
|
|
135
137
|
servicesMap: {};
|
|
136
138
|
userDefinedTypesMap: {};
|
|
139
|
+
workspaceComponent?: undefined;
|
|
137
140
|
atomFile?: undefined;
|
|
138
141
|
usagesSlicesFile?: undefined;
|
|
139
142
|
dataFlowSlicesFile?: undefined;
|
|
@@ -141,10 +144,37 @@ export declare function analyzeProject(dbObjMap: Object, options: Object): Promi
|
|
|
141
144
|
semanticsSlicesFile?: undefined;
|
|
142
145
|
tempDir?: undefined;
|
|
143
146
|
tempDirOwned?: undefined;
|
|
147
|
+
aiComponents?: undefined;
|
|
148
|
+
openapiSpecFile?: undefined;
|
|
149
|
+
} | {
|
|
150
|
+
purlLocationMap: {};
|
|
151
|
+
dataFlowFrames: {};
|
|
152
|
+
componentPropertiesMap: {};
|
|
153
|
+
metadataProperties: any[];
|
|
154
|
+
cryptoComponents: any[];
|
|
155
|
+
cryptoGeneratePurls: {};
|
|
156
|
+
servicesMap: {};
|
|
157
|
+
userDefinedTypesMap: {};
|
|
158
|
+
workspaceComponent: {
|
|
159
|
+
type: string;
|
|
160
|
+
name: any;
|
|
161
|
+
version: any;
|
|
162
|
+
purl: any;
|
|
163
|
+
"bom-ref": any;
|
|
164
|
+
} | undefined;
|
|
165
|
+
atomFile?: undefined;
|
|
166
|
+
usagesSlicesFile?: undefined;
|
|
167
|
+
dataFlowSlicesFile?: undefined;
|
|
168
|
+
reachablesSlicesFile?: undefined;
|
|
169
|
+
semanticsSlicesFile?: undefined;
|
|
170
|
+
tempDir?: undefined;
|
|
171
|
+
tempDirOwned?: undefined;
|
|
172
|
+
aiComponents?: undefined;
|
|
144
173
|
openapiSpecFile?: undefined;
|
|
145
174
|
} | {
|
|
146
175
|
componentPropertiesMap?: undefined;
|
|
147
176
|
metadataProperties?: undefined;
|
|
177
|
+
workspaceComponent?: undefined;
|
|
148
178
|
usagesSlicesFile: any;
|
|
149
179
|
dataFlowSlicesFile: any;
|
|
150
180
|
semanticsSlicesFile: any;
|
|
@@ -155,6 +185,7 @@ export declare function analyzeProject(dbObjMap: Object, options: Object): Promi
|
|
|
155
185
|
tempDirOwned: any;
|
|
156
186
|
userDefinedTypesMap: {};
|
|
157
187
|
cryptoComponents: any[];
|
|
188
|
+
aiComponents: any[];
|
|
158
189
|
cryptoGeneratePurls: {};
|
|
159
190
|
atomFile?: undefined;
|
|
160
191
|
reachablesSlicesFile?: undefined;
|
|
@@ -162,6 +193,7 @@ export declare function analyzeProject(dbObjMap: Object, options: Object): Promi
|
|
|
162
193
|
} | {
|
|
163
194
|
componentPropertiesMap?: undefined;
|
|
164
195
|
metadataProperties?: undefined;
|
|
196
|
+
workspaceComponent?: undefined;
|
|
165
197
|
atomFile: any;
|
|
166
198
|
usagesSlicesFile: any;
|
|
167
199
|
dataFlowSlicesFile: any;
|
|
@@ -174,6 +206,7 @@ export declare function analyzeProject(dbObjMap: Object, options: Object): Promi
|
|
|
174
206
|
tempDirOwned: any;
|
|
175
207
|
userDefinedTypesMap: {};
|
|
176
208
|
cryptoComponents: any[];
|
|
209
|
+
aiComponents: any;
|
|
177
210
|
cryptoGeneratePurls: {};
|
|
178
211
|
openapiSpecFile: any;
|
|
179
212
|
}>;
|
|
@@ -289,7 +322,7 @@ export declare function extractEndpoints(language: string, code: string): string
|
|
|
289
322
|
* @param {Object} options Command line options
|
|
290
323
|
* @returns
|
|
291
324
|
*/
|
|
292
|
-
export declare function createEvinseFile(sliceArtefacts: Object, options: Object): any
|
|
325
|
+
export declare function createEvinseFile(sliceArtefacts: Object, options: Object): Promise<any>;
|
|
293
326
|
/**
|
|
294
327
|
* Method to convert dataflow slice into usable callstack frames
|
|
295
328
|
* Implemented based on the logic proposed here - https://github.com/AppThreat/atom/blob/main/specification/docs/slices.md#data-flow-slice
|
|
@@ -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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"}
|