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.
@@ -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
- [fileName]: requirements_file_parser_1.parseRequirementsFile(requirementsTxt),
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, dir, requiredFilePath, provenance)),
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)) {