Socket
Socket
Sign inDemoInstall

dotnet-deps-parser

Package Overview
Dependencies
Maintainers
1
Versions
52
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dotnet-deps-parser - npm Package Compare versions

Comparing version 4.11.0 to 5.0.0

149

dist/index.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
require("source-map-support/register");
const fs = require("fs");
const path = require("path");
const _ = require("@snyk/lodash");
const parsers_1 = require("./parsers");

@@ -33,14 +31,10 @@ exports.DepType = parsers_1.DepType;

exports.buildDepTreeFromProjectAssetsJson = buildDepTreeFromProjectAssetsJson;
function buildDepTreeFromPackagesConfig(manifestFileContents, includeDev = false) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const manifestFile = yield parsers_1.parseXmlFile(manifestFileContents);
return parsers_1.getDependencyTreeFromPackagesConfig(manifestFile, includeDev);
});
async function buildDepTreeFromPackagesConfig(manifestFileContents, includeDev = false) {
const manifestFile = await parsers_1.parseXmlFile(manifestFileContents);
return parsers_1.getDependencyTreeFromPackagesConfig(manifestFile, includeDev);
}
exports.buildDepTreeFromPackagesConfig = buildDepTreeFromPackagesConfig;
function buildDepTreeFromProjectFile(manifestFileContents, includeDev = false, propsMap = {}) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const manifestFile = yield parsers_1.parseXmlFile(manifestFileContents);
return parsers_1.getDependencyTreeFromProjectFile(manifestFile, includeDev, propsMap);
});
async function buildDepTreeFromProjectFile(manifestFileContents, includeDev = false, propsMap = {}) {
const manifestFile = await parsers_1.parseXmlFile(manifestFileContents);
return parsers_1.getDependencyTreeFromProjectFile(manifestFile, includeDev, propsMap);
}

@@ -59,12 +53,12 @@ exports.buildDepTreeFromProjectFile = buildDepTreeFromProjectFile;

const manifestFileExtension = path.extname(manifestFileFullPath);
if (_.includes(PROJ_FILE_EXTENSIONS, manifestFileExtension)) {
if (PROJ_FILE_EXTENSIONS.includes(manifestFileExtension)) {
return buildDepTreeFromProjectFile(manifestFileContents, includeDev);
}
else if (_.endsWith(manifestFilePath, 'packages.config')) {
else if (manifestFilePath.endsWith('packages.config')) {
return buildDepTreeFromPackagesConfig(manifestFileContents, includeDev);
}
else if (_.endsWith(manifestFilePath, 'project.json')) {
else if (manifestFilePath.endsWith('project.json')) {
return buildDepTreeFromProjectJson(manifestFileContents, includeDev);
}
else if (_.endsWith(manifestFilePath, 'project.assets.json')) {
else if (manifestFilePath.endsWith('project.assets.json')) {
return buildDepTreeFromProjectAssetsJson(manifestFileContents, targetFramework);

@@ -89,12 +83,12 @@ }

const manifestFileExtension = path.extname(manifestFileFullPath);
if (_.includes(PROJ_FILE_EXTENSIONS, manifestFileExtension)) {
if (PROJ_FILE_EXTENSIONS.includes(manifestFileExtension)) {
return extractTargetFrameworksFromProjectFile(manifestFileContents);
}
else if (_.endsWith(manifestFilePath, 'packages.config')) {
else if (manifestFilePath.endsWith('packages.config')) {
return extractTargetFrameworksFromProjectConfig(manifestFileContents);
}
else if (_.endsWith(manifestFilePath, 'project.json')) {
else if (manifestFilePath.endsWith('project.json')) {
return extractTargetFrameworksFromProjectJson(manifestFileContents);
}
else if (_.endsWith(manifestFilePath, 'project.assets.json')) {
else if (manifestFilePath.endsWith('project.assets.json')) {
return extractTargetFrameworksFromProjectAssetsJson(manifestFileContents);

@@ -108,79 +102,68 @@ }

exports.extractTargetFrameworksFromFiles = extractTargetFrameworksFromFiles;
function extractTargetFrameworksFromProjectFile(manifestFileContents) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
try {
const manifestFile = yield parsers_1.parseXmlFile(manifestFileContents);
return parsers_1.getTargetFrameworksFromProjectFile(manifestFile);
}
catch (err) {
throw new Error(`Extracting target framework failed with error ${err.message}`);
}
});
async function extractTargetFrameworksFromProjectFile(manifestFileContents) {
try {
const manifestFile = await parsers_1.parseXmlFile(manifestFileContents);
return parsers_1.getTargetFrameworksFromProjectFile(manifestFile);
}
catch (err) {
throw new Error(`Extracting target framework failed with error ${err.message}`);
}
}
exports.extractTargetFrameworksFromProjectFile = extractTargetFrameworksFromProjectFile;
function extractTargetFrameworksFromProjectConfig(manifestFileContents) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
try {
const manifestFile = yield parsers_1.parseXmlFile(manifestFileContents);
return parsers_1.getTargetFrameworksFromProjectConfig(manifestFile);
}
catch (err) {
throw new Error(`Extracting target framework failed with error ${err.message}`);
}
});
async function extractTargetFrameworksFromProjectConfig(manifestFileContents) {
try {
const manifestFile = await parsers_1.parseXmlFile(manifestFileContents);
return parsers_1.getTargetFrameworksFromProjectConfig(manifestFile);
}
catch (err) {
throw new Error(`Extracting target framework failed with error ${err.message}`);
}
}
exports.extractTargetFrameworksFromProjectConfig = extractTargetFrameworksFromProjectConfig;
function containsPackageReference(manifestFileContents) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const manifestFile = yield parsers_1.parseXmlFile(manifestFileContents);
const projectItems = _.get(manifestFile, 'Project.ItemGroup', []);
const referenceIndex = _.findIndex(projectItems, (itemGroup) => _.has(itemGroup, 'PackageReference'));
return referenceIndex !== -1;
});
async function containsPackageReference(manifestFileContents) {
var _a, _b, _c;
const manifestFile = await parsers_1.parseXmlFile(manifestFileContents);
const projectItems = (_c = (_b = (_a = manifestFile) === null || _a === void 0 ? void 0 : _a.Project) === null || _b === void 0 ? void 0 : _b.ItemGroup, (_c !== null && _c !== void 0 ? _c : []));
const referenceIndex = projectItems.findIndex((itemGroup) => 'PackageReference' in itemGroup);
return referenceIndex !== -1;
}
exports.containsPackageReference = containsPackageReference;
function extractTargetFrameworksFromProjectJson(manifestFileContents) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
try {
// trimming required to address files with UTF-8 with BOM encoding
const manifestFile = JSON.parse(manifestFileContents.trim());
return parsers_1.getTargetFrameworksFromProjectJson(manifestFile);
}
catch (err) {
throw new Error(`Extracting target framework failed with error ${err.message}`);
}
});
async function extractTargetFrameworksFromProjectJson(manifestFileContents) {
try {
// trimming required to address files with UTF-8 with BOM encoding
const manifestFile = JSON.parse(manifestFileContents.trim());
return parsers_1.getTargetFrameworksFromProjectJson(manifestFile);
}
catch (err) {
throw new Error(`Extracting target framework failed with error ${err.message}`);
}
}
exports.extractTargetFrameworksFromProjectJson = extractTargetFrameworksFromProjectJson;
function extractTargetFrameworksFromProjectAssetsJson(manifestFileContents) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
try {
// trimming required to address files with UTF-8 with BOM encoding
const manifestFile = JSON.parse(manifestFileContents.trim());
return parsers_1.getTargetFrameworksFromProjectAssetsJson(manifestFile);
}
catch (err) {
throw new Error(`Extracting target framework failed with error ${err.message}`);
}
});
async function extractTargetFrameworksFromProjectAssetsJson(manifestFileContents) {
try {
// trimming required to address files with UTF-8 with BOM encoding
const manifestFile = JSON.parse(manifestFileContents.trim());
return parsers_1.getTargetFrameworksFromProjectAssetsJson(manifestFile);
}
catch (err) {
throw new Error(`Extracting target framework failed with error ${err.message}`);
}
}
exports.extractTargetFrameworksFromProjectAssetsJson = extractTargetFrameworksFromProjectAssetsJson;
function extractProps(propsFileContents) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
try {
const propsFile = yield parsers_1.parseXmlFile(propsFileContents);
if (!propsFile) {
throw new errors_1.InvalidUserInputError('xml file parsing failed');
}
return parsers_1.getPropertiesMap(propsFile);
async function extractProps(propsFileContents) {
try {
const propsFile = await parsers_1.parseXmlFile(propsFileContents);
if (!propsFile) {
throw new errors_1.InvalidUserInputError('xml file parsing failed');
}
catch (err) {
if (err.name === 'InvalidUserInputError') {
throw err;
}
throw new Error(`Extracting props failed with error ${err.message}`);
return parsers_1.getPropertiesMap(propsFile);
}
catch (err) {
if (err.name === 'InvalidUserInputError') {
throw err;
}
});
throw new Error(`Extracting props failed with error ${err.message}`);
}
}
exports.extractProps = extractProps;
//# sourceMappingURL=index.js.map

@@ -57,3 +57,3 @@ export interface PkgTree {

}
export declare function getPropertiesMap(propsContents: object): PropsLookup;
export declare function getPropertiesMap(propsContents: any): PropsLookup;
export declare function getTargetFrameworksFromProjectFile(manifestFile: any): any;

@@ -60,0 +60,0 @@ export declare function getTargetFrameworksFromProjectConfig(manifestFile: any): string[];

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const parseXML = require("xml2js");
const _ = require("@snyk/lodash");
const _isEmpty = require("lodash.isempty");
const _set = require("lodash.set");
const _uniq = require("lodash.uniq");
const errors_1 = require("../errors");

@@ -51,22 +52,21 @@ var DepType;

}
function getDependencyTreeFromPackagesConfig(manifestFile, includeDev = false) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const depTree = {
dependencies: {},
hasDevDependencies: false,
name: '',
version: '',
};
const packageList = _.get(manifestFile, 'packages.package', []);
for (const dep of packageList) {
const depName = dep.$.id;
const isDev = !!dep.$.developmentDependency;
depTree.hasDevDependencies = depTree.hasDevDependencies || isDev;
if (isDev && !includeDev) {
continue;
}
depTree.dependencies[depName] = buildSubTreeFromPackagesConfig(dep, isDev);
async function getDependencyTreeFromPackagesConfig(manifestFile, includeDev = false) {
var _a, _b, _c;
const depTree = {
dependencies: {},
hasDevDependencies: false,
name: '',
version: '',
};
const packageList = (_c = (_b = (_a = manifestFile) === null || _a === void 0 ? void 0 : _a.packages) === null || _b === void 0 ? void 0 : _b.package, (_c !== null && _c !== void 0 ? _c : []));
for (const dep of packageList) {
const depName = dep.$.id;
const isDev = !!dep.$.developmentDependency;
depTree.hasDevDependencies = depTree.hasDevDependencies || isDev;
if (isDev && !includeDev) {
continue;
}
return depTree;
});
depTree.dependencies[depName] = buildSubTreeFromPackagesConfig(dep, isDev);
}
return depTree;
}

@@ -86,51 +86,50 @@ exports.getDependencyTreeFromPackagesConfig = getDependencyTreeFromPackagesConfig;

}
function getDependencyTreeFromProjectFile(manifestFile, includeDev = false, propsMap = {}) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const nameProperty = _.get(manifestFile, 'Project.PropertyGroup', [])
.find((propertyGroup) => {
return _.has(propertyGroup, 'PackageId')
|| _.has(propertyGroup, 'AssemblyName');
}) || {};
const name = (nameProperty.PackageId && nameProperty.PackageId[0])
|| (nameProperty.AssemblyName && nameProperty.AssemblyName[0])
|| '';
const packageReferenceDeps = yield getDependenciesFromPackageReference(manifestFile, includeDev, propsMap);
const referenceIncludeDeps = yield getDependenciesFromReferenceInclude(manifestFile, includeDev, propsMap);
// order matters, the order deps are parsed in needs to be preserved and first seen kept
// so applying the packageReferenceDeps last to override the second parsed
const depTree = {
dependencies: Object.assign(Object.assign({}, referenceIncludeDeps.dependencies), packageReferenceDeps.dependencies),
hasDevDependencies: packageReferenceDeps.hasDevDependencies || referenceIncludeDeps.hasDevDependencies,
name,
version: '',
};
if (packageReferenceDeps.dependenciesWithUnknownVersions) {
depTree.dependenciesWithUnknownVersions = packageReferenceDeps.dependenciesWithUnknownVersions;
}
if (referenceIncludeDeps.dependenciesWithUnknownVersions) {
depTree.dependenciesWithUnknownVersions = referenceIncludeDeps.dependenciesWithUnknownVersions;
}
return depTree;
});
async function getDependencyTreeFromProjectFile(manifestFile, includeDev = false, propsMap = {}) {
var _a, _b, _c, _d, _e;
const nameProperty = (_c = (_b = (_a = manifestFile) === null || _a === void 0 ? void 0 : _a.Project) === null || _b === void 0 ? void 0 : _b.PropertyGroup, (_c !== null && _c !== void 0 ? _c : []))
.find((propertyGroup) => {
return 'PackageId' in propertyGroup
|| 'AssemblyName' in propertyGroup;
}) || {};
const name = ((_d = nameProperty.PackageId) === null || _d === void 0 ? void 0 : _d[0])
|| ((_e = nameProperty.AssemblyName) === null || _e === void 0 ? void 0 : _e[0])
|| '';
const packageReferenceDeps = await getDependenciesFromPackageReference(manifestFile, includeDev, propsMap);
const referenceIncludeDeps = await getDependenciesFromReferenceInclude(manifestFile, includeDev, propsMap);
// order matters, the order deps are parsed in needs to be preserved and first seen kept
// so applying the packageReferenceDeps last to override the second parsed
const depTree = {
dependencies: Object.assign(Object.assign({}, referenceIncludeDeps.dependencies), packageReferenceDeps.dependencies),
hasDevDependencies: packageReferenceDeps.hasDevDependencies || referenceIncludeDeps.hasDevDependencies,
name,
version: '',
};
if (packageReferenceDeps.dependenciesWithUnknownVersions) {
depTree.dependenciesWithUnknownVersions = packageReferenceDeps.dependenciesWithUnknownVersions;
}
if (referenceIncludeDeps.dependenciesWithUnknownVersions) {
depTree.dependenciesWithUnknownVersions = referenceIncludeDeps.dependenciesWithUnknownVersions;
}
return depTree;
}
exports.getDependencyTreeFromProjectFile = getDependencyTreeFromProjectFile;
function getDependenciesFromPackageReference(manifestFile, includeDev = false, propsMap) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
let dependenciesResult = {
dependencies: {},
hasDevDependencies: false,
};
const packageGroups = _.get(manifestFile, 'Project.ItemGroup', [])
.filter((itemGroup) => _.has(itemGroup, 'PackageReference'));
if (!packageGroups.length) {
return dependenciesResult;
}
for (const packageList of packageGroups) {
dependenciesResult = processItemGroupForPackageReference(packageList, manifestFile, includeDev, dependenciesResult, propsMap);
}
async function getDependenciesFromPackageReference(manifestFile, includeDev = false, propsMap) {
var _a, _b, _c;
let dependenciesResult = {
dependencies: {},
hasDevDependencies: false,
};
const packageGroups = (_c = (_b = (_a = manifestFile) === null || _a === void 0 ? void 0 : _a.Project) === null || _b === void 0 ? void 0 : _b.ItemGroup, (_c !== null && _c !== void 0 ? _c : []))
.filter((itemGroup) => 'PackageReference' in itemGroup);
if (!packageGroups.length) {
return dependenciesResult;
});
}
for (const packageList of packageGroups) {
dependenciesResult = processItemGroupForPackageReference(packageList, manifestFile, includeDev, dependenciesResult, propsMap);
}
return dependenciesResult;
}
function processItemGroupForPackageReference(packageList, manifestFile, includeDev, dependenciesResult, propsMap) {
const targetFrameworks = _.get(packageList, '$.Condition', false) ?
var _a, _b, _c;
const targetFrameworks = (_c = (_b = (_a = packageList) === null || _a === void 0 ? void 0 : _a.$) === null || _b === void 0 ? void 0 : _b.Condition, (_c !== null && _c !== void 0 ? _c : false)) ?
getConditionalFrameworks(packageList.$.Condition) : [];

@@ -160,20 +159,20 @@ for (const dep of packageList.PackageReference) {

// TODO: almost same as getDependenciesFromPackageReference
function getDependenciesFromReferenceInclude(manifestFile, includeDev = false, propsMap) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
let referenceIncludeResult = {
dependencies: {},
hasDevDependencies: false,
};
const referenceIncludeList = _.get(manifestFile, 'Project.ItemGroup', [])
.find((itemGroup) => _.has(itemGroup, 'Reference'));
if (!referenceIncludeList) {
return referenceIncludeResult;
}
referenceIncludeResult =
processItemGroupForReferenceInclude(referenceIncludeList, manifestFile, includeDev, referenceIncludeResult, propsMap);
async function getDependenciesFromReferenceInclude(manifestFile, includeDev = false, propsMap) {
var _a, _b, _c;
let referenceIncludeResult = {
dependencies: {},
hasDevDependencies: false,
};
const referenceIncludeList = (_c = (_b = (_a = manifestFile) === null || _a === void 0 ? void 0 : _a.Project) === null || _b === void 0 ? void 0 : _b.ItemGroup, (_c !== null && _c !== void 0 ? _c : []))
.find((itemGroup) => 'Reference' in itemGroup);
if (!referenceIncludeList) {
return referenceIncludeResult;
});
}
referenceIncludeResult =
processItemGroupForReferenceInclude(referenceIncludeList, manifestFile, includeDev, referenceIncludeResult, propsMap);
return referenceIncludeResult;
}
function processItemGroupForReferenceInclude(packageList, manifestFile, includeDev, dependenciesResult, propsMap) {
const targetFrameworks = _.get(packageList, '$.Condition', false) ?
var _a, _b, _c;
const targetFrameworks = (_c = (_b = (_a = packageList) === null || _a === void 0 ? void 0 : _a.$) === null || _b === void 0 ? void 0 : _b.Condition, (_c !== null && _c !== void 0 ? _c : false)) ?
getConditionalFrameworks(packageList.$.Condition) : [];

@@ -211,3 +210,3 @@ for (const item of packageList.Reference) {

const version = extractDependencyVersion(dep, manifestFile, propsMap) || '';
if (!_.isEmpty(version)) {
if (!_isEmpty(version)) {
const depSubTree = {

@@ -231,3 +230,3 @@ depType: isDev ? DepType.dev : DepType.prod,

const version = extractDependencyVersion(dep, manifestFile, propsMap) || '';
if (!_.isEmpty(version)) {
if (!_isEmpty(version)) {
const depSubTree = {

@@ -250,4 +249,5 @@ depType: isDev ? DepType.dev : DepType.prod,

function extractDependencyVersion(dep, manifestFile, propsMap) {
var _a, _b, _c, _d, _e;
const VARS_MATCHER = /^\$\((.*?)\)/;
let version = _.get(dep, '$.Version') || _.get(dep, 'Version');
let version = ((_b = (_a = dep) === null || _a === void 0 ? void 0 : _a.$) === null || _b === void 0 ? void 0 : _b.Version) || ((_c = dep) === null || _c === void 0 ? void 0 : _c.Version);
if (Array.isArray(version)) {

@@ -263,3 +263,3 @@ version = version[0];

const propertyMap = Object.assign(Object.assign({}, propsMap), getPropertiesMap(manifestFile));
return _.get(propertyMap, propertyName, null);
return _e = (_d = propertyMap) === null || _d === void 0 ? void 0 : _d[propertyName], (_e !== null && _e !== void 0 ? _e : null);
}

@@ -276,13 +276,11 @@ function getConditionalFrameworks(condition) {

}
function parseXmlFile(manifestFileContents) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
parseXML
.parseString(manifestFileContents, (err, result) => {
if (err) {
const e = new errors_1.InvalidUserInputError('xml file parsing failed');
return reject(e);
}
return resolve(result);
});
async function parseXmlFile(manifestFileContents) {
return new Promise((resolve, reject) => {
parseXML
.parseString(manifestFileContents, (err, result) => {
if (err) {
const e = new errors_1.InvalidUserInputError('xml file parsing failed');
return reject(e);
}
return resolve(result);
});

@@ -293,3 +291,4 @@ });

function getPropertiesMap(propsContents) {
const projectPropertyGroup = _.get(propsContents, 'Project.PropertyGroup', []);
var _a, _b, _c;
const projectPropertyGroup = (_c = (_b = (_a = propsContents) === null || _a === void 0 ? void 0 : _a.Project) === null || _b === void 0 ? void 0 : _b.PropertyGroup, (_c !== null && _c !== void 0 ? _c : []));
const props = {};

@@ -301,3 +300,3 @@ if (!projectPropertyGroup.length) {

for (const key of Object.keys(group)) {
_.set(props, key, group[key][0]);
_set(props, key, group[key][0]);
}

@@ -309,4 +308,5 @@ }

function getTargetFrameworksFromProjectFile(manifestFile) {
var _a, _b, _c;
let targetFrameworksResult = [];
const projectPropertyGroup = _.get(manifestFile, 'Project.PropertyGroup', []);
const projectPropertyGroup = (_c = (_b = (_a = manifestFile) === null || _a === void 0 ? void 0 : _a.Project) === null || _b === void 0 ? void 0 : _b.PropertyGroup, (_c !== null && _c !== void 0 ? _c : []));
if (!projectPropertyGroup) {

@@ -317,7 +317,7 @@ return targetFrameworksResult;

.find((propertyGroup) => {
return _.has(propertyGroup, 'TargetFramework')
|| _.has(propertyGroup, 'TargetFrameworks')
|| _.has(propertyGroup, 'TargetFrameworkVersion');
return 'TargetFramework' in propertyGroup
|| 'TargetFrameworks' in propertyGroup
|| 'TargetFrameworkVersion' in propertyGroup;
}) || {};
if (_.isEmpty(propertyList)) {
if (_isEmpty(propertyList)) {
return targetFrameworksResult;

@@ -341,8 +341,9 @@ }

}
return _.uniq(targetFrameworksResult);
return _uniq(targetFrameworksResult);
}
exports.getTargetFrameworksFromProjectFile = getTargetFrameworksFromProjectFile;
function getTargetFrameworksFromProjectConfig(manifestFile) {
var _a, _b, _c;
const targetFrameworksResult = [];
const packages = _.get(manifestFile, 'packages.package', []);
const packages = (_c = (_b = (_a = manifestFile) === null || _a === void 0 ? void 0 : _a.packages) === null || _b === void 0 ? void 0 : _b.package, (_c !== null && _c !== void 0 ? _c : []));
for (const item of packages) {

@@ -353,3 +354,3 @@ const targetFramework = item.$.targetFramework;

}
if (!_.includes(targetFrameworksResult, targetFramework)) {
if (!targetFrameworksResult.includes(targetFramework)) {
targetFrameworksResult.push(targetFramework);

@@ -362,9 +363,11 @@ }

function getTargetFrameworksFromProjectJson(manifestFile) {
return Object.keys(_.get(manifestFile, 'frameworks', {}));
var _a, _b;
return Object.keys((_b = (_a = manifestFile) === null || _a === void 0 ? void 0 : _a.frameworks, (_b !== null && _b !== void 0 ? _b : {})));
}
exports.getTargetFrameworksFromProjectJson = getTargetFrameworksFromProjectJson;
function getTargetFrameworksFromProjectAssetsJson(manifestFile) {
return Object.keys(_.get(manifestFile, 'targets', {}));
var _a, _b;
return Object.keys((_b = (_a = manifestFile) === null || _a === void 0 ? void 0 : _a.targets, (_b !== null && _b !== void 0 ? _b : {})));
}
exports.getTargetFrameworksFromProjectAssetsJson = getTargetFrameworksFromProjectAssetsJson;
//# sourceMappingURL=index.js.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const _ = require("@snyk/lodash");
function getProjectNameForProjectAssetsJson(manifestFile) {
return _.get(manifestFile, ['project', 'restore', 'projectName'], {});
var _a, _b, _c, _d;
return _d = (_c = (_b = (_a = manifestFile) === null || _a === void 0 ? void 0 : _a.project) === null || _b === void 0 ? void 0 : _b.restore) === null || _c === void 0 ? void 0 : _c.projectName, (_d !== null && _d !== void 0 ? _d : {});
}
function getProjectVersionForProjectAssetsJson(manifestFile) {
return _.get(manifestFile, ['project', 'version'], {});
var _a, _b, _c;
return _c = (_b = (_a = manifestFile) === null || _a === void 0 ? void 0 : _a.project) === null || _b === void 0 ? void 0 : _b.version, (_c !== null && _c !== void 0 ? _c : {});
}

@@ -22,10 +23,11 @@ function buildPackageTree(name, version) {

function getDependencyTreeFromProjectAssetsJson(manifestFile, targetFrameWork) {
var _a, _b, _c, _d, _e, _f, _g, _h;
const projectName = getProjectNameForProjectAssetsJson(manifestFile);
const projectVersion = getProjectVersionForProjectAssetsJson(manifestFile);
const depTree = buildPackageTree(projectName, projectVersion);
const topLevelDeps = Object.keys(_.get(manifestFile, ['targets', targetFrameWork], {}));
const topLevelDeps = Object.keys((_c = (_b = (_a = manifestFile) === null || _a === void 0 ? void 0 : _a.targets) === null || _b === void 0 ? void 0 : _b[targetFrameWork], (_c !== null && _c !== void 0 ? _c : {})));
for (const topLevelDep of topLevelDeps) {
const [topLevelDepName, topLevelDepVersion] = topLevelDep.split('/');
const topLevelDepTree = buildPackageTree(topLevelDepName, topLevelDepVersion);
const transitiveDeps = _.get(manifestFile, ['targets', targetFrameWork, topLevelDep, 'dependencies'], {});
const transitiveDeps = (_h = (_g = (_f = (_e = (_d = manifestFile) === null || _d === void 0 ? void 0 : _d.targets) === null || _e === void 0 ? void 0 : _e[targetFrameWork]) === null || _f === void 0 ? void 0 : _f[topLevelDep]) === null || _g === void 0 ? void 0 : _g.dependencies, (_h !== null && _h !== void 0 ? _h : {}));
for (const transitiveDep of Object.keys(transitiveDeps)) {

@@ -32,0 +34,0 @@ const transitiveDepVersion = transitiveDeps[transitiveDep];

@@ -21,3 +21,3 @@ {

"engines": {
"node": ">=4"
"node": ">=8"
},

@@ -30,3 +30,5 @@ "files": [

"dependencies": {
"@snyk/lodash": "4.17.15-patch",
"lodash.isempty": "^4.4.0",
"lodash.set": "^4.3.2",
"lodash.uniq": "^4.5.0",
"source-map-support": "^0.5.7",

@@ -37,3 +39,3 @@ "tslib": "^1.10.0",

"devDependencies": {
"@types/node": "^6.0.47",
"@types/node": "^8.10.61",
"@types/xml2js": "0.4.5",

@@ -45,3 +47,3 @@ "tap": "github:snyk/node-tap#alternative-runtimes",

},
"version": "4.11.0"
"version": "5.0.0"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc