snyk 1.689.0 → 1.693.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/dist/cli/741.index.js
CHANGED
|
@@ -1399,12 +1399,16 @@ const debugLib = __webpack_require__(15158);
|
|
|
1399
1399
|
const requirements_file_parser_1 = __webpack_require__(67285);
|
|
1400
1400
|
const contains_require_directive_1 = __webpack_require__(9744);
|
|
1401
1401
|
const debug = debugLib('snyk-fix:python:extract-version-provenance');
|
|
1402
|
-
async function extractProvenance(workspace, dir, fileName, provenance = {}) {
|
|
1402
|
+
async function extractProvenance(workspace, rootDir, dir, fileName, provenance = {}) {
|
|
1403
1403
|
const requirementsFileName = path.join(dir, fileName);
|
|
1404
1404
|
const requirementsTxt = await workspace.readFile(requirementsFileName);
|
|
1405
|
+
// keep all provenance paths with `/` as a separator
|
|
1406
|
+
const relativeTargetFileName = path
|
|
1407
|
+
.normalize(path.relative(rootDir, requirementsFileName))
|
|
1408
|
+
.replace(path.sep, '/');
|
|
1405
1409
|
provenance = {
|
|
1406
1410
|
...provenance,
|
|
1407
|
-
[
|
|
1411
|
+
[relativeTargetFileName]: requirements_file_parser_1.parseRequirementsFile(requirementsTxt),
|
|
1408
1412
|
};
|
|
1409
1413
|
const { containsRequire, matches } = await contains_require_directive_1.containsRequireDirective(requirementsTxt);
|
|
1410
1414
|
if (containsRequire) {
|
|
@@ -1414,9 +1418,10 @@ async function extractProvenance(workspace, dir, fileName, provenance = {}) {
|
|
|
1414
1418
|
debug('Detected recursive require directive, skipping');
|
|
1415
1419
|
continue;
|
|
1416
1420
|
}
|
|
1421
|
+
const { dir: requireDir, base } = path.parse(path.join(dir, requiredFilePath));
|
|
1417
1422
|
provenance = {
|
|
1418
1423
|
...provenance,
|
|
1419
|
-
...(await extractProvenance(workspace,
|
|
1424
|
+
...(await extractProvenance(workspace, rootDir, requireDir, base, provenance)),
|
|
1420
1425
|
};
|
|
1421
1426
|
}
|
|
1422
1427
|
}
|
|
@@ -1551,7 +1556,7 @@ async function applyAllFixes(entity, options) {
|
|
|
1551
1556
|
const { remediation, targetFile: entryFileName, workspace, } = validate_required_data_1.validateRequiredData(entity);
|
|
1552
1557
|
const fixedMeta = {};
|
|
1553
1558
|
const { dir, base } = pathLib.parse(entryFileName);
|
|
1554
|
-
const provenance = await extract_version_provenance_1.extractProvenance(workspace, dir, base);
|
|
1559
|
+
const provenance = await extract_version_provenance_1.extractProvenance(workspace, dir, dir, base);
|
|
1555
1560
|
const upgradeChanges = [];
|
|
1556
1561
|
/* Apply all upgrades first across all files that are included */
|
|
1557
1562
|
for (const fileName of Object.keys(provenance)) {
|