renovate 43.58.0 → 43.59.1

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.
@@ -3,6 +3,7 @@ var abandonments_default = {
3
3
  $schema: "../../tools/schemas/abandonments-schema.json",
4
4
  npm: {
5
5
  "@types/*": "eternal",
6
+ "eslint-plugin-no-only-tests": "5 years",
6
7
  "lodash": "6 years"
7
8
  }
8
9
  };
@@ -11,6 +11,7 @@ var replacements_default = {
11
11
  "replacements:cpx-to-maintenance-fork",
12
12
  "replacements:cucumber-to-scoped",
13
13
  "replacements:docker-compose",
14
+ "replacements:edb-jdbc-to-enterprisedb",
14
15
  "replacements:eslint-plugin-eslint-comments-to-maintained-fork",
15
16
  "replacements:eslint-config-standard-with-typescript-to-eslint-config-love",
16
17
  "replacements:eslint-plugin-node-to-maintained-fork",
@@ -222,6 +223,20 @@ var replacements_default = {
222
223
  "replacementVersion": "23.0.0-cli"
223
224
  }]
224
225
  },
226
+ "edb-jdbc-to-enterprisedb": {
227
+ "description": "`com.edb:edb-jdbc` and `com.edb:edb-jdbc18` were moved to `com.enterprisedb:edb-jdbc`.",
228
+ "packageRules": [{
229
+ "matchDatasources": ["maven"],
230
+ "matchPackageNames": ["com.edb:edb-jdbc"],
231
+ "replacementName": "com.enterprisedb:edb-jdbc",
232
+ "replacementVersion": "42.5.4.2"
233
+ }, {
234
+ "matchDatasources": ["maven"],
235
+ "matchPackageNames": ["com.edb:edb-jdbc18"],
236
+ "replacementName": "com.enterprisedb:edb-jdbc",
237
+ "replacementVersion": "42.5.4.2"
238
+ }]
239
+ },
225
240
  "eslint-plugin-eslint-comments-to-maintained-fork": {
226
241
  "description": "Replace `eslint-plugin-eslint-comments` with a maintained fork: `@eslint-community/eslint-plugin-eslint-comments`.",
227
242
  "packageRules": [{
@@ -345,7 +345,8 @@ async function checkForPendingVersions(manager, packageFileName, packageFileCont
345
345
  return;
346
346
  }
347
347
  for (const dep of extracted.deps) {
348
- if (!dep.depName) {
348
+ const depName = dep.depName ?? dep.packageName;
349
+ if (!depName) {
349
350
  logger.error({
350
351
  packageFile: packageFileName,
351
352
  manager,
@@ -354,7 +355,7 @@ async function checkForPendingVersions(manager, packageFileName, packageFileCont
354
355
  }, `No depName found after updating '${packageFileName}'`);
355
356
  throw new Error(WORKER_FILE_UPDATE_FAILED);
356
357
  }
357
- const upgradeInfo = depNameToUpgradeInfo.get(dep.depName);
358
+ const upgradeInfo = depNameToUpgradeInfo.get(depName);
358
359
  if (!upgradeInfo) continue;
359
360
  const resolvedVersion = dep.lockedVersion ?? dep.newVersion ?? dep.currentVersion ?? dep.currentValue;
360
361
  if (!resolvedVersion) {
@@ -362,9 +363,9 @@ async function checkForPendingVersions(manager, packageFileName, packageFileCont
362
363
  packageFile: packageFileName,
363
364
  manager,
364
365
  branchName: config.branchName,
365
- depName: dep.depName,
366
+ depName,
366
367
  newVersion: resolvedVersion
367
- }, `No new version found for '${dep.depName}' after updating '${packageFileName}'`);
368
+ }, `No new version found for '${depName}' after updating '${packageFileName}'`);
368
369
  throw new Error(WORKER_FILE_UPDATE_FAILED);
369
370
  }
370
371
  if (resolvedVersion && upgradeInfo.pendingVersions.has(resolvedVersion)) {
@@ -375,16 +376,16 @@ async function checkForPendingVersions(manager, packageFileName, packageFileCont
375
376
  packageFile: packageFileName,
376
377
  manager,
377
378
  branchName: config.branchName,
378
- depName: dep.depName,
379
+ depName,
379
380
  newVersion: resolvedVersion,
380
381
  expectedVersion
381
- }, `No expectedVersion found for '${dep.depName}' after updating '${packageFileName}'`);
382
+ }, `No expectedVersion found for '${depName}' after updating '${packageFileName}'`);
382
383
  continue;
383
384
  }
384
385
  if (config.minimumReleaseAgeBehaviour === "timestamp-optional") {
385
386
  logger.once.warn({
386
387
  packageFileName,
387
- depName: dep.depName,
388
+ depName,
388
389
  expectedVersion,
389
390
  resolvedVersion
390
391
  }, "Artifact error would be reported due to a pending version in use which hasn't passed Minimum Release Age, but as we're running with minimumReleaseAgeBehaviour=timestamp-optional, proceeding. See debug logs for more information");
@@ -392,11 +393,11 @@ async function checkForPendingVersions(manager, packageFileName, packageFileCont
392
393
  }
393
394
  logger.debug({
394
395
  packageFileName,
395
- depName: dep.depName,
396
+ depName,
396
397
  expectedVersion,
397
398
  resolvedVersion
398
399
  }, "Artifact update introduced a pending version");
399
- let stderr = `Artifact update for ${dep.depName} resolved to version ${resolvedVersion}, which is a pending version that has not yet passed the Minimum Release Age threshold.`;
400
+ let stderr = `Artifact update for ${depName} resolved to version ${resolvedVersion}, which is a pending version that has not yet passed the Minimum Release Age threshold.`;
400
401
  stderr += `\nRenovate was attempting to update to ${expectedVersion}`;
401
402
  stderr += `\nThis is (likely) not a bug in Renovate, but due to the way your project pins dependencies, _and_ how Renovate calls your package manager to update them.\nUntil Renovate supports specifying an exact update to your package manager (https://github.com/renovatebot/renovate/issues/41624), it is recommended to directly pin your dependencies (with \`rangeStrategy=pin\` for apps, or \`rangeStrategy=widen\` for libraries)\nSee also: https://docs.renovatebot.com/dependency-pinning/`;
402
403
  artifactErrors.push({
@@ -1 +1 @@
1
- {"version":3,"file":"get-updated.js","names":[],"sources":["../../../../../lib/workers/repository/update/branch/get-updated.ts"],"sourcesContent":["import { isNonEmptyArray } from '@sindresorhus/is';\nimport { WORKER_FILE_UPDATE_FAILED } from '../../../../constants/error-messages.ts';\nimport { logger } from '../../../../logger/index.ts';\nimport { extractPackageFile, get } from '../../../../modules/manager/index.ts';\nimport type {\n ArtifactError,\n ArtifactNotice,\n PackageFile,\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../../../../modules/manager/types.ts';\nimport { getFile } from '../../../../util/git/index.ts';\nimport type { FileAddition, FileChange } from '../../../../util/git/types.ts';\nimport { coerceString } from '../../../../util/string.ts';\nimport type { BranchConfig, BranchUpgradeConfig } from '../../../types.ts';\nimport { doAutoReplace } from './auto-replace.ts';\n\nexport interface PackageFilesResult {\n artifactErrors: ArtifactError[];\n reuseExistingBranch?: boolean;\n updatedPackageFiles: FileChange[];\n updatedArtifacts: FileChange[];\n artifactNotices: ArtifactNotice[];\n}\n\nasync function getFileContent(\n updatedFileContents: Record<string, string>,\n filePath: string,\n config: BranchConfig,\n): Promise<string | null> {\n let fileContent: string | null = updatedFileContents[filePath];\n if (!fileContent) {\n fileContent = await getFile(\n filePath,\n config.reuseExistingBranch ? config.branchName : config.baseBranch,\n );\n }\n return fileContent;\n}\n\nfunction sortPackageFiles(\n config: BranchConfig,\n manager: string,\n packageFiles: FilePath[],\n): void {\n const managerPackageFiles = config.packageFiles?.[manager];\n if (!managerPackageFiles) {\n return;\n }\n packageFiles.sort((lhs, rhs) => {\n const lhsIndex = managerPackageFiles.findIndex(\n (entry) => entry.packageFile === lhs.path,\n );\n const rhsIndex = managerPackageFiles.findIndex(\n (entry) => entry.packageFile === rhs.path,\n );\n return lhsIndex - rhsIndex;\n });\n}\n\nfunction hasAny(set: Set<string>, targets: Iterable<string>): boolean {\n for (const target of targets) {\n if (set.has(target)) {\n return true;\n }\n }\n return false;\n}\n\ntype FilePath = Pick<FileChange, 'path'>;\n\nfunction getManagersForPackageFiles<T extends FilePath>(\n packageFiles: T[],\n managerPackageFiles: Record<string, Set<string>>,\n): Set<string> {\n const packageFileNames = packageFiles.map((packageFile) => packageFile.path);\n return new Set(\n Object.keys(managerPackageFiles).filter((manager) =>\n hasAny(managerPackageFiles[manager], packageFileNames),\n ),\n );\n}\n\nfunction getPackageFilesForManager<T extends FilePath>(\n packageFiles: T[],\n managerPackageFiles: Set<string>,\n): T[] {\n return packageFiles.filter((packageFile) =>\n managerPackageFiles.has(packageFile.path),\n );\n}\n\nexport async function getUpdatedPackageFiles(\n config: BranchConfig,\n): Promise<PackageFilesResult> {\n logger.trace({ config });\n const reuseExistingBranch = config.reuseExistingBranch!;\n logger.debug(\n `manager.getUpdatedPackageFiles() reuseExistingBranch=${reuseExistingBranch}`,\n );\n let updatedFileContents: Record<string, string> = {};\n const nonUpdatedFileContents: Record<string, string> = {};\n const managerPackageFiles: Record<string, Set<string>> = {};\n const packageFileUpdatedDeps: Record<string, BranchUpgradeConfig[]> = {};\n const lockFileMaintenanceFiles: string[] = [];\n let firstUpdate = true;\n for (const upgrade of config.upgrades) {\n const manager = upgrade.manager;\n const packageFile = upgrade.packageFile!;\n const depName = upgrade.depName!;\n // TODO: fix types, can be undefined (#22198)\n const newVersion = upgrade.newVersion!;\n const currentVersion = upgrade.currentVersion!;\n const updateLockedDependency = get(manager, 'updateLockedDependency')!;\n managerPackageFiles[manager] ??= new Set<string>();\n managerPackageFiles[manager].add(packageFile);\n packageFileUpdatedDeps[packageFile] ??= [];\n packageFileUpdatedDeps[packageFile].push({ ...upgrade });\n const packageFileContent = await getFileContent(\n updatedFileContents,\n packageFile,\n config,\n );\n let lockFileContent: string | null = null;\n const lockFile = upgrade.lockFile ?? upgrade.lockFiles?.[0] ?? '';\n if (lockFile) {\n lockFileContent = await getFileContent(\n updatedFileContents,\n lockFile,\n config,\n );\n }\n // istanbul ignore if\n if (\n reuseExistingBranch &&\n (!packageFileContent || (lockFile && !lockFileContent))\n ) {\n logger.debug(\n { packageFile, depName },\n 'Rebasing branch after file not found',\n );\n return getUpdatedPackageFiles({\n ...config,\n reuseExistingBranch: false,\n });\n }\n if (upgrade.updateType === 'lockFileMaintenance') {\n lockFileMaintenanceFiles.push(packageFile);\n } else if (upgrade.isRemediation) {\n const { status, files } = await updateLockedDependency({\n ...upgrade,\n depName,\n newVersion,\n currentVersion,\n packageFile,\n packageFileContent: packageFileContent!,\n lockFile,\n lockFileContent: lockFileContent!,\n allowParentUpdates: true,\n allowHigherOrRemoved: true,\n });\n if (reuseExistingBranch && status !== 'already-updated') {\n logger.debug(\n { lockFile, depName, status },\n 'Need to retry branch as it is not already up-to-date',\n );\n return getUpdatedPackageFiles({\n ...config,\n reuseExistingBranch: false,\n });\n }\n if (files) {\n updatedFileContents = { ...updatedFileContents, ...files };\n Object.keys(files).forEach(\n (file) => delete nonUpdatedFileContents[file],\n );\n }\n if (status === 'update-failed' || status === 'unsupported') {\n upgrade.remediationNotPossible = true;\n }\n } else if (upgrade.isLockfileUpdate) {\n if (updateLockedDependency) {\n const { status, files } = await updateLockedDependency({\n ...upgrade,\n depName,\n newVersion,\n currentVersion,\n packageFile,\n packageFileContent: packageFileContent!,\n lockFile,\n lockFileContent: lockFileContent!,\n allowParentUpdates: false,\n });\n if (status === 'unsupported') {\n // incompatible lock file\n if (!updatedFileContents[packageFile]) {\n nonUpdatedFileContents[packageFile] = packageFileContent!;\n }\n } else if (status === 'already-updated') {\n logger.debug(\n `Upgrade of ${depName} to ${newVersion} is already done in existing branch`,\n );\n } else {\n // something changed\n if (reuseExistingBranch) {\n logger.debug(\n { lockFile, depName, status },\n 'Need to retry branch as upgrade requirements are not mets',\n );\n return getUpdatedPackageFiles({\n ...config,\n reuseExistingBranch: false,\n });\n }\n if (files) {\n updatedFileContents = { ...updatedFileContents, ...files };\n Object.keys(files).forEach(\n (file) => delete nonUpdatedFileContents[file],\n );\n }\n }\n } else {\n logger.debug(\n { manager },\n 'isLockFileUpdate without updateLockedDependency',\n );\n if (!updatedFileContents[packageFile]) {\n nonUpdatedFileContents[packageFile] = packageFileContent!;\n }\n }\n } else {\n const updateDependency = get(manager, 'updateDependency');\n if (!updateDependency) {\n let res = await doAutoReplace(\n upgrade,\n packageFileContent!,\n reuseExistingBranch,\n firstUpdate,\n );\n firstUpdate = false;\n if (res) {\n res = await applyManagerBumpPackageVersion(res, upgrade);\n if (res === packageFileContent) {\n logger.debug({ packageFile, depName }, 'No content changed');\n } else {\n logger.debug({ packageFile, depName }, 'Contents updated');\n updatedFileContents[packageFile] = res!;\n delete nonUpdatedFileContents[packageFile];\n }\n continue;\n } else if (reuseExistingBranch) {\n return getUpdatedPackageFiles({\n ...config,\n reuseExistingBranch: false,\n });\n }\n logger.error({ packageFile, depName }, 'Could not autoReplace');\n throw new Error(WORKER_FILE_UPDATE_FAILED);\n }\n let newContent = await updateDependency({\n fileContent: packageFileContent!,\n upgrade,\n });\n newContent = await applyManagerBumpPackageVersion(newContent, upgrade);\n if (!newContent) {\n if (reuseExistingBranch) {\n logger.debug(\n { packageFile, depName },\n 'Rebasing branch after error updating content',\n );\n return getUpdatedPackageFiles({\n ...config,\n reuseExistingBranch: false,\n });\n }\n logger.debug(\n { existingContent: packageFileContent, config: upgrade },\n 'Error updating file',\n );\n throw new Error(WORKER_FILE_UPDATE_FAILED);\n }\n if (newContent !== packageFileContent) {\n if (reuseExistingBranch) {\n // This ensure it's always 1 commit from the bot\n logger.debug(\n { packageFile, depName },\n 'Need to update package file so will rebase first',\n );\n return getUpdatedPackageFiles({\n ...config,\n reuseExistingBranch: false,\n });\n }\n logger.debug(\n `Updating ${depName} in ${coerceString(packageFile, lockFile)}`,\n );\n updatedFileContents[packageFile] = newContent;\n delete nonUpdatedFileContents[packageFile];\n }\n if (newContent === packageFileContent) {\n if (upgrade.manager === 'git-submodules') {\n updatedFileContents[packageFile] = newContent;\n delete nonUpdatedFileContents[packageFile];\n }\n }\n }\n }\n const updatedPackageFiles: FileAddition[] = Object.keys(\n updatedFileContents,\n ).map((name) => ({\n type: 'addition',\n path: name,\n contents: updatedFileContents[name],\n }));\n const updatedArtifacts: FileChange[] = [];\n const artifactErrors: ArtifactError[] = [];\n const artifactNotices: ArtifactNotice[] = [];\n if (isNonEmptyArray(updatedPackageFiles)) {\n logger.debug('updateArtifacts for updatedPackageFiles');\n const updatedPackageFileManagers = getManagersForPackageFiles(\n updatedPackageFiles,\n managerPackageFiles,\n );\n for (const manager of updatedPackageFileManagers) {\n const packageFilesForManager = getPackageFilesForManager(\n updatedPackageFiles,\n managerPackageFiles[manager],\n );\n sortPackageFiles(config, manager, packageFilesForManager);\n for (const packageFile of packageFilesForManager) {\n const updatedDeps = packageFileUpdatedDeps[packageFile.path];\n const results = await managerUpdateArtifacts(manager, {\n packageFileName: packageFile.path,\n updatedDeps,\n // TODO #22198\n newPackageFileContent: packageFile.contents!.toString(),\n config: patchConfigForArtifactsUpdate(\n config,\n manager,\n packageFile.path,\n ),\n });\n processUpdateArtifactResults(\n results,\n updatedArtifacts,\n artifactErrors,\n artifactNotices,\n );\n if (isNonEmptyArray(results)) {\n await checkForPendingVersions(\n manager,\n packageFile.path,\n packageFile.contents!.toString(),\n updatedDeps,\n artifactErrors,\n config,\n );\n }\n }\n }\n }\n const nonUpdatedPackageFiles: FileAddition[] = Object.keys(\n nonUpdatedFileContents,\n ).map((name) => ({\n type: 'addition',\n path: name,\n contents: nonUpdatedFileContents[name],\n }));\n if (isNonEmptyArray(nonUpdatedPackageFiles)) {\n logger.debug('updateArtifacts for nonUpdatedPackageFiles');\n const nonUpdatedPackageFileManagers = getManagersForPackageFiles(\n nonUpdatedPackageFiles,\n managerPackageFiles,\n );\n for (const manager of nonUpdatedPackageFileManagers) {\n const packageFilesForManager = getPackageFilesForManager(\n nonUpdatedPackageFiles,\n managerPackageFiles[manager],\n );\n sortPackageFiles(config, manager, packageFilesForManager);\n for (const packageFile of packageFilesForManager) {\n const updatedDeps = packageFileUpdatedDeps[packageFile.path];\n const results = await managerUpdateArtifacts(manager, {\n packageFileName: packageFile.path,\n updatedDeps,\n // TODO #22198\n newPackageFileContent: packageFile.contents!.toString(),\n config: patchConfigForArtifactsUpdate(\n config,\n manager,\n packageFile.path,\n ),\n });\n processUpdateArtifactResults(\n results,\n updatedArtifacts,\n artifactErrors,\n artifactNotices,\n );\n if (isNonEmptyArray(results)) {\n updatedPackageFiles.push(packageFile);\n await checkForPendingVersions(\n manager,\n packageFile.path,\n packageFile.contents!.toString(),\n updatedDeps,\n artifactErrors,\n config,\n );\n }\n }\n }\n }\n if (!reuseExistingBranch) {\n const lockFileMaintenancePackageFiles: FilePath[] =\n lockFileMaintenanceFiles.map((name) => ({\n path: name,\n }));\n // Only perform lock file maintenance if it's a fresh commit\n if (isNonEmptyArray(lockFileMaintenanceFiles)) {\n logger.debug('updateArtifacts for lockFileMaintenanceFiles');\n const lockFileMaintenanceManagers = getManagersForPackageFiles(\n lockFileMaintenancePackageFiles,\n managerPackageFiles,\n );\n for (const manager of lockFileMaintenanceManagers) {\n const packageFilesForManager = getPackageFilesForManager(\n lockFileMaintenancePackageFiles,\n managerPackageFiles[manager],\n );\n sortPackageFiles(config, manager, packageFilesForManager);\n for (const packageFile of packageFilesForManager) {\n const contents =\n updatedFileContents[packageFile.path] ||\n (await getFile(packageFile.path, config.baseBranch));\n const results = await managerUpdateArtifacts(manager, {\n packageFileName: packageFile.path,\n updatedDeps: [],\n newPackageFileContent: contents!,\n config: patchConfigForArtifactsUpdate(\n config,\n manager,\n packageFile.path,\n ),\n });\n processUpdateArtifactResults(\n results,\n updatedArtifacts,\n artifactErrors,\n artifactNotices,\n );\n }\n }\n }\n }\n return {\n reuseExistingBranch, // Need to overwrite original config\n updatedPackageFiles,\n updatedArtifacts,\n artifactErrors,\n artifactNotices,\n };\n}\n\n// workaround, see #27319\nfunction patchConfigForArtifactsUpdate(\n config: BranchConfig,\n manager: string,\n packageFileName: string,\n): UpdateArtifactsConfig {\n // drop any lockFiles that happen to be defined on the branch config\n const updatedConfig = { ...config };\n delete updatedConfig.lockFiles;\n if (isNonEmptyArray(updatedConfig.packageFiles?.[manager])) {\n const managerPackageFiles: PackageFile[] =\n updatedConfig.packageFiles?.[manager];\n const packageFile = managerPackageFiles.find(\n (p) => p.packageFile === packageFileName,\n );\n if (packageFile && isNonEmptyArray(packageFile.lockFiles)) {\n updatedConfig.lockFiles = packageFile.lockFiles;\n }\n }\n return updatedConfig;\n}\n\nasync function managerUpdateArtifacts(\n manager: string,\n updateArtifact: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n const updateArtifacts = get(manager, 'updateArtifacts');\n if (!updateArtifacts) {\n return null;\n }\n\n if (updateArtifact.config.skipArtifactsUpdate) {\n logger.debug(\n { manager, packageFileName: updateArtifact.packageFileName },\n 'Skipping artifact update',\n );\n return null;\n }\n\n return await updateArtifacts(updateArtifact);\n}\n\nfunction processUpdateArtifactResults(\n results: UpdateArtifactsResult[] | null,\n updatedArtifacts: FileChange[],\n artifactErrors: ArtifactError[],\n artifactNotices: ArtifactNotice[],\n): void {\n if (isNonEmptyArray(results)) {\n for (const res of results) {\n const { file, notice, artifactError } = res;\n if (file) {\n updatedArtifacts.push(file);\n }\n\n if (artifactError) {\n artifactErrors.push(artifactError);\n }\n\n if (notice) {\n artifactNotices.push(notice);\n }\n }\n }\n}\n\n/**\n * When using Minimum Release Age, and a package manager that doesn't support being told an explicit version to update to (#41624) it is possible that an artifact update leads to a different version of a dependency being used compared to what Renovate is expecting.\n *\n * We should report these cases more explicitly with an Artifact Error, to allow the reviewers to decide what to do with the changes.\n */\nasync function checkForPendingVersions(\n manager: string,\n packageFileName: string,\n packageFileContent: string,\n updatedDeps: BranchUpgradeConfig[],\n artifactErrors: ArtifactError[],\n config: BranchConfig,\n): Promise<void> {\n const depNameToUpgradeInfo = new Map<\n string,\n {\n pendingVersions: Set<string>;\n newVersion: string | undefined;\n }\n >();\n for (const dep of updatedDeps) {\n if (dep.depName && isNonEmptyArray(dep.pendingVersions)) {\n depNameToUpgradeInfo.set(dep.depName, {\n pendingVersions: new Set(dep.pendingVersions),\n newVersion: dep.newVersion,\n });\n }\n }\n if (!depNameToUpgradeInfo.size) {\n return;\n }\n\n const extracted = await extractPackageFile(\n manager,\n packageFileContent,\n packageFileName,\n config,\n );\n if (!extracted) {\n logger.warn(\n { packageFile: packageFileName, manager },\n 'Could not re-extract the packageFile after updating it',\n );\n return;\n }\n\n for (const dep of extracted.deps) {\n // shouldn't ever happen\n if (!dep.depName) {\n logger.error(\n {\n packageFile: packageFileName,\n manager,\n branchName: config.branchName,\n depName: dep.depName,\n },\n `No depName found after updating '${packageFileName}'`,\n );\n throw new Error(WORKER_FILE_UPDATE_FAILED);\n }\n\n const upgradeInfo = depNameToUpgradeInfo.get(dep.depName);\n if (!upgradeInfo) {\n continue;\n }\n const resolvedVersion =\n dep.lockedVersion ??\n dep.newVersion ??\n dep.currentVersion ??\n dep.currentValue;\n if (!resolvedVersion) {\n logger.error(\n {\n packageFile: packageFileName,\n manager,\n branchName: config.branchName,\n depName: dep.depName,\n newVersion: resolvedVersion,\n },\n `No new version found for '${dep.depName}' after updating '${packageFileName}'`,\n );\n throw new Error(WORKER_FILE_UPDATE_FAILED);\n }\n\n if (resolvedVersion && upgradeInfo.pendingVersions.has(resolvedVersion)) {\n const expectedVersion = upgradeInfo.newVersion;\n /* v8 ignore next if -- should not happen */\n if (!expectedVersion) {\n logger.error(\n {\n packageFile: packageFileName,\n manager,\n branchName: config.branchName,\n depName: dep.depName,\n newVersion: resolvedVersion,\n expectedVersion,\n },\n `No expectedVersion found for '${dep.depName}' after updating '${packageFileName}'`,\n );\n continue;\n }\n\n if (config.minimumReleaseAgeBehaviour === 'timestamp-optional') {\n logger.once.warn(\n {\n packageFileName,\n depName: dep.depName,\n expectedVersion,\n resolvedVersion,\n },\n \"Artifact error would be reported due to a pending version in use which hasn't passed Minimum Release Age, but as we're running with minimumReleaseAgeBehaviour=timestamp-optional, proceeding. See debug logs for more information\",\n );\n continue;\n }\n\n logger.debug(\n {\n packageFileName,\n depName: dep.depName,\n expectedVersion,\n resolvedVersion,\n },\n 'Artifact update introduced a pending version',\n );\n let stderr = `Artifact update for ${dep.depName} resolved to version ${resolvedVersion}, which is a pending version that has not yet passed the Minimum Release Age threshold.`;\n stderr += `\\nRenovate was attempting to update to ${expectedVersion}`;\n stderr += `\\nThis is (likely) not a bug in Renovate, but due to the way your project pins dependencies, _and_ how Renovate calls your package manager to update them.\\nUntil Renovate supports specifying an exact update to your package manager (https://github.com/renovatebot/renovate/issues/41624), it is recommended to directly pin your dependencies (with \\`rangeStrategy=pin\\` for apps, or \\`rangeStrategy=widen\\` for libraries)\\nSee also: https://docs.renovatebot.com/dependency-pinning/`;\n\n artifactErrors.push({\n lockFile: packageFileName,\n stderr,\n });\n }\n }\n}\n\nasync function applyManagerBumpPackageVersion(\n packageFileContent: string | null,\n upgrade: BranchUpgradeConfig,\n): Promise<string | null> {\n const bumpPackageVersion = get(upgrade.manager, 'bumpPackageVersion');\n if (\n !bumpPackageVersion ||\n !packageFileContent ||\n !upgrade.bumpVersion ||\n !upgrade.packageFileVersion\n ) {\n return packageFileContent;\n }\n\n const result = await bumpPackageVersion(\n packageFileContent,\n upgrade.packageFileVersion,\n upgrade.bumpVersion,\n upgrade.packageFile!,\n );\n\n return result.bumpedContent;\n}\n"],"mappings":";;;;;;;;;AA0BA,eAAe,eACb,qBACA,UACA,QACwB;CACxB,IAAI,cAA6B,oBAAoB;AACrD,KAAI,CAAC,YACH,eAAc,MAAM,QAClB,UACA,OAAO,sBAAsB,OAAO,aAAa,OAAO,WACzD;AAEH,QAAO;;AAGT,SAAS,iBACP,QACA,SACA,cACM;CACN,MAAM,sBAAsB,OAAO,eAAe;AAClD,KAAI,CAAC,oBACH;AAEF,cAAa,MAAM,KAAK,QAAQ;AAO9B,SANiB,oBAAoB,WAClC,UAAU,MAAM,gBAAgB,IAAI,KACtC,GACgB,oBAAoB,WAClC,UAAU,MAAM,gBAAgB,IAAI,KACtC;GAED;;AAGJ,SAAS,OAAO,KAAkB,SAAoC;AACpE,MAAK,MAAM,UAAU,QACnB,KAAI,IAAI,IAAI,OAAO,CACjB,QAAO;AAGX,QAAO;;AAKT,SAAS,2BACP,cACA,qBACa;CACb,MAAM,mBAAmB,aAAa,KAAK,gBAAgB,YAAY,KAAK;AAC5E,QAAO,IAAI,IACT,OAAO,KAAK,oBAAoB,CAAC,QAAQ,YACvC,OAAO,oBAAoB,UAAU,iBAAiB,CACvD,CACF;;AAGH,SAAS,0BACP,cACA,qBACK;AACL,QAAO,aAAa,QAAQ,gBAC1B,oBAAoB,IAAI,YAAY,KAAK,CAC1C;;AAGH,eAAsB,uBACpB,QAC6B;AAC7B,QAAO,MAAM,EAAE,QAAQ,CAAC;CACxB,MAAM,sBAAsB,OAAO;AACnC,QAAO,MACL,wDAAwD,sBACzD;CACD,IAAI,sBAA8C,EAAE;CACpD,MAAM,yBAAiD,EAAE;CACzD,MAAM,sBAAmD,EAAE;CAC3D,MAAM,yBAAgE,EAAE;CACxE,MAAM,2BAAqC,EAAE;CAC7C,IAAI,cAAc;AAClB,MAAK,MAAM,WAAW,OAAO,UAAU;EACrC,MAAM,UAAU,QAAQ;EACxB,MAAM,cAAc,QAAQ;EAC5B,MAAM,UAAU,QAAQ;EAExB,MAAM,aAAa,QAAQ;EAC3B,MAAM,iBAAiB,QAAQ;EAC/B,MAAM,yBAAyB,IAAI,SAAS,yBAAyB;AACrE,sBAAoB,6BAAa,IAAI,KAAa;AAClD,sBAAoB,SAAS,IAAI,YAAY;AAC7C,yBAAuB,iBAAiB,EAAE;AAC1C,yBAAuB,aAAa,KAAK,EAAE,GAAG,SAAS,CAAC;EACxD,MAAM,qBAAqB,MAAM,eAC/B,qBACA,aACA,OACD;EACD,IAAI,kBAAiC;EACrC,MAAM,WAAW,QAAQ,YAAY,QAAQ,YAAY,MAAM;AAC/D,MAAI,SACF,mBAAkB,MAAM,eACtB,qBACA,UACA,OACD;;AAGH,MACE,wBACC,CAAC,sBAAuB,YAAY,CAAC,kBACtC;AACA,UAAO,MACL;IAAE;IAAa;IAAS,EACxB,uCACD;AACD,UAAO,uBAAuB;IAC5B,GAAG;IACH,qBAAqB;IACtB,CAAC;;AAEJ,MAAI,QAAQ,eAAe,sBACzB,0BAAyB,KAAK,YAAY;WACjC,QAAQ,eAAe;GAChC,MAAM,EAAE,QAAQ,UAAU,MAAM,uBAAuB;IACrD,GAAG;IACH;IACA;IACA;IACA;IACoB;IACpB;IACiB;IACjB,oBAAoB;IACpB,sBAAsB;IACvB,CAAC;AACF,OAAI,uBAAuB,WAAW,mBAAmB;AACvD,WAAO,MACL;KAAE;KAAU;KAAS;KAAQ,EAC7B,uDACD;AACD,WAAO,uBAAuB;KAC5B,GAAG;KACH,qBAAqB;KACtB,CAAC;;AAEJ,OAAI,OAAO;AACT,0BAAsB;KAAE,GAAG;KAAqB,GAAG;KAAO;AAC1D,WAAO,KAAK,MAAM,CAAC,SAChB,SAAS,OAAO,uBAAuB,MACzC;;AAEH,OAAI,WAAW,mBAAmB,WAAW,cAC3C,SAAQ,yBAAyB;aAE1B,QAAQ,iBACjB,KAAI,wBAAwB;GAC1B,MAAM,EAAE,QAAQ,UAAU,MAAM,uBAAuB;IACrD,GAAG;IACH;IACA;IACA;IACA;IACoB;IACpB;IACiB;IACjB,oBAAoB;IACrB,CAAC;AACF,OAAI,WAAW,eAEb;QAAI,CAAC,oBAAoB,aACvB,wBAAuB,eAAe;cAE/B,WAAW,kBACpB,QAAO,MACL,cAAc,QAAQ,MAAM,WAAW,qCACxC;QACI;AAEL,QAAI,qBAAqB;AACvB,YAAO,MACL;MAAE;MAAU;MAAS;MAAQ,EAC7B,4DACD;AACD,YAAO,uBAAuB;MAC5B,GAAG;MACH,qBAAqB;MACtB,CAAC;;AAEJ,QAAI,OAAO;AACT,2BAAsB;MAAE,GAAG;MAAqB,GAAG;MAAO;AAC1D,YAAO,KAAK,MAAM,CAAC,SAChB,SAAS,OAAO,uBAAuB,MACzC;;;SAGA;AACL,UAAO,MACL,EAAE,SAAS,EACX,kDACD;AACD,OAAI,CAAC,oBAAoB,aACvB,wBAAuB,eAAe;;OAGrC;GACL,MAAM,mBAAmB,IAAI,SAAS,mBAAmB;AACzD,OAAI,CAAC,kBAAkB;IACrB,IAAI,MAAM,MAAM,cACd,SACA,oBACA,qBACA,YACD;AACD,kBAAc;AACd,QAAI,KAAK;AACP,WAAM,MAAM,+BAA+B,KAAK,QAAQ;AACxD,SAAI,QAAQ,mBACV,QAAO,MAAM;MAAE;MAAa;MAAS,EAAE,qBAAqB;UACvD;AACL,aAAO,MAAM;OAAE;OAAa;OAAS,EAAE,mBAAmB;AAC1D,0BAAoB,eAAe;AACnC,aAAO,uBAAuB;;AAEhC;eACS,oBACT,QAAO,uBAAuB;KAC5B,GAAG;KACH,qBAAqB;KACtB,CAAC;AAEJ,WAAO,MAAM;KAAE;KAAa;KAAS,EAAE,wBAAwB;AAC/D,UAAM,IAAI,MAAM,0BAA0B;;GAE5C,IAAI,aAAa,MAAM,iBAAiB;IACtC,aAAa;IACb;IACD,CAAC;AACF,gBAAa,MAAM,+BAA+B,YAAY,QAAQ;AACtE,OAAI,CAAC,YAAY;AACf,QAAI,qBAAqB;AACvB,YAAO,MACL;MAAE;MAAa;MAAS,EACxB,+CACD;AACD,YAAO,uBAAuB;MAC5B,GAAG;MACH,qBAAqB;MACtB,CAAC;;AAEJ,WAAO,MACL;KAAE,iBAAiB;KAAoB,QAAQ;KAAS,EACxD,sBACD;AACD,UAAM,IAAI,MAAM,0BAA0B;;AAE5C,OAAI,eAAe,oBAAoB;AACrC,QAAI,qBAAqB;AAEvB,YAAO,MACL;MAAE;MAAa;MAAS,EACxB,mDACD;AACD,YAAO,uBAAuB;MAC5B,GAAG;MACH,qBAAqB;MACtB,CAAC;;AAEJ,WAAO,MACL,YAAY,QAAQ,MAAM,aAAa,aAAa,SAAS,GAC9D;AACD,wBAAoB,eAAe;AACnC,WAAO,uBAAuB;;AAEhC,OAAI,eAAe,oBACjB;QAAI,QAAQ,YAAY,kBAAkB;AACxC,yBAAoB,eAAe;AACnC,YAAO,uBAAuB;;;;;CAKtC,MAAM,sBAAsC,OAAO,KACjD,oBACD,CAAC,KAAK,UAAU;EACf,MAAM;EACN,MAAM;EACN,UAAU,oBAAoB;EAC/B,EAAE;CACH,MAAM,mBAAiC,EAAE;CACzC,MAAM,iBAAkC,EAAE;CAC1C,MAAM,kBAAoC,EAAE;AAC5C,KAAI,gBAAgB,oBAAoB,EAAE;AACxC,SAAO,MAAM,0CAA0C;EACvD,MAAM,6BAA6B,2BACjC,qBACA,oBACD;AACD,OAAK,MAAM,WAAW,4BAA4B;GAChD,MAAM,yBAAyB,0BAC7B,qBACA,oBAAoB,SACrB;AACD,oBAAiB,QAAQ,SAAS,uBAAuB;AACzD,QAAK,MAAM,eAAe,wBAAwB;IAChD,MAAM,cAAc,uBAAuB,YAAY;IACvD,MAAM,UAAU,MAAM,uBAAuB,SAAS;KACpD,iBAAiB,YAAY;KAC7B;KAEA,uBAAuB,YAAY,SAAU,UAAU;KACvD,QAAQ,8BACN,QACA,SACA,YAAY,KACb;KACF,CAAC;AACF,iCACE,SACA,kBACA,gBACA,gBACD;AACD,QAAI,gBAAgB,QAAQ,CAC1B,OAAM,wBACJ,SACA,YAAY,MACZ,YAAY,SAAU,UAAU,EAChC,aACA,gBACA,OACD;;;;CAKT,MAAM,yBAAyC,OAAO,KACpD,uBACD,CAAC,KAAK,UAAU;EACf,MAAM;EACN,MAAM;EACN,UAAU,uBAAuB;EAClC,EAAE;AACH,KAAI,gBAAgB,uBAAuB,EAAE;AAC3C,SAAO,MAAM,6CAA6C;EAC1D,MAAM,gCAAgC,2BACpC,wBACA,oBACD;AACD,OAAK,MAAM,WAAW,+BAA+B;GACnD,MAAM,yBAAyB,0BAC7B,wBACA,oBAAoB,SACrB;AACD,oBAAiB,QAAQ,SAAS,uBAAuB;AACzD,QAAK,MAAM,eAAe,wBAAwB;IAChD,MAAM,cAAc,uBAAuB,YAAY;IACvD,MAAM,UAAU,MAAM,uBAAuB,SAAS;KACpD,iBAAiB,YAAY;KAC7B;KAEA,uBAAuB,YAAY,SAAU,UAAU;KACvD,QAAQ,8BACN,QACA,SACA,YAAY,KACb;KACF,CAAC;AACF,iCACE,SACA,kBACA,gBACA,gBACD;AACD,QAAI,gBAAgB,QAAQ,EAAE;AAC5B,yBAAoB,KAAK,YAAY;AACrC,WAAM,wBACJ,SACA,YAAY,MACZ,YAAY,SAAU,UAAU,EAChC,aACA,gBACA,OACD;;;;;AAKT,KAAI,CAAC,qBAAqB;EACxB,MAAM,kCACJ,yBAAyB,KAAK,UAAU,EACtC,MAAM,MACP,EAAE;AAEL,MAAI,gBAAgB,yBAAyB,EAAE;AAC7C,UAAO,MAAM,+CAA+C;GAC5D,MAAM,8BAA8B,2BAClC,iCACA,oBACD;AACD,QAAK,MAAM,WAAW,6BAA6B;IACjD,MAAM,yBAAyB,0BAC7B,iCACA,oBAAoB,SACrB;AACD,qBAAiB,QAAQ,SAAS,uBAAuB;AACzD,SAAK,MAAM,eAAe,wBAAwB;KAChD,MAAM,WACJ,oBAAoB,YAAY,SAC/B,MAAM,QAAQ,YAAY,MAAM,OAAO,WAAW;AAWrD,kCAVgB,MAAM,uBAAuB,SAAS;MACpD,iBAAiB,YAAY;MAC7B,aAAa,EAAE;MACf,uBAAuB;MACvB,QAAQ,8BACN,QACA,SACA,YAAY,KACb;MACF,CAAC,EAGA,kBACA,gBACA,gBACD;;;;;AAKT,QAAO;EACL;EACA;EACA;EACA;EACA;EACD;;AAIH,SAAS,8BACP,QACA,SACA,iBACuB;CAEvB,MAAM,gBAAgB,EAAE,GAAG,QAAQ;AACnC,QAAO,cAAc;AACrB,KAAI,gBAAgB,cAAc,eAAe,SAAS,EAAE;EAG1D,MAAM,eADJ,cAAc,eAAe,UACS,MACrC,MAAM,EAAE,gBAAgB,gBAC1B;AACD,MAAI,eAAe,gBAAgB,YAAY,UAAU,CACvD,eAAc,YAAY,YAAY;;AAG1C,QAAO;;AAGT,eAAe,uBACb,SACA,gBACyC;CACzC,MAAM,kBAAkB,IAAI,SAAS,kBAAkB;AACvD,KAAI,CAAC,gBACH,QAAO;AAGT,KAAI,eAAe,OAAO,qBAAqB;AAC7C,SAAO,MACL;GAAE;GAAS,iBAAiB,eAAe;GAAiB,EAC5D,2BACD;AACD,SAAO;;AAGT,QAAO,MAAM,gBAAgB,eAAe;;AAG9C,SAAS,6BACP,SACA,kBACA,gBACA,iBACM;AACN,KAAI,gBAAgB,QAAQ,CAC1B,MAAK,MAAM,OAAO,SAAS;EACzB,MAAM,EAAE,MAAM,QAAQ,kBAAkB;AACxC,MAAI,KACF,kBAAiB,KAAK,KAAK;AAG7B,MAAI,cACF,gBAAe,KAAK,cAAc;AAGpC,MAAI,OACF,iBAAgB,KAAK,OAAO;;;;;;;;AAWpC,eAAe,wBACb,SACA,iBACA,oBACA,aACA,gBACA,QACe;CACf,MAAM,uCAAuB,IAAI,KAM9B;AACH,MAAK,MAAM,OAAO,YAChB,KAAI,IAAI,WAAW,gBAAgB,IAAI,gBAAgB,CACrD,sBAAqB,IAAI,IAAI,SAAS;EACpC,iBAAiB,IAAI,IAAI,IAAI,gBAAgB;EAC7C,YAAY,IAAI;EACjB,CAAC;AAGN,KAAI,CAAC,qBAAqB,KACxB;CAGF,MAAM,YAAY,MAAM,mBACtB,SACA,oBACA,iBACA,OACD;AACD,KAAI,CAAC,WAAW;AACd,SAAO,KACL;GAAE,aAAa;GAAiB;GAAS,EACzC,yDACD;AACD;;AAGF,MAAK,MAAM,OAAO,UAAU,MAAM;AAEhC,MAAI,CAAC,IAAI,SAAS;AAChB,UAAO,MACL;IACE,aAAa;IACb;IACA,YAAY,OAAO;IACnB,SAAS,IAAI;IACd,EACD,oCAAoC,gBAAgB,GACrD;AACD,SAAM,IAAI,MAAM,0BAA0B;;EAG5C,MAAM,cAAc,qBAAqB,IAAI,IAAI,QAAQ;AACzD,MAAI,CAAC,YACH;EAEF,MAAM,kBACJ,IAAI,iBACJ,IAAI,cACJ,IAAI,kBACJ,IAAI;AACN,MAAI,CAAC,iBAAiB;AACpB,UAAO,MACL;IACE,aAAa;IACb;IACA,YAAY,OAAO;IACnB,SAAS,IAAI;IACb,YAAY;IACb,EACD,6BAA6B,IAAI,QAAQ,oBAAoB,gBAAgB,GAC9E;AACD,SAAM,IAAI,MAAM,0BAA0B;;AAG5C,MAAI,mBAAmB,YAAY,gBAAgB,IAAI,gBAAgB,EAAE;GACvE,MAAM,kBAAkB,YAAY;;AAEpC,OAAI,CAAC,iBAAiB;AACpB,WAAO,MACL;KACE,aAAa;KACb;KACA,YAAY,OAAO;KACnB,SAAS,IAAI;KACb,YAAY;KACZ;KACD,EACD,iCAAiC,IAAI,QAAQ,oBAAoB,gBAAgB,GAClF;AACD;;AAGF,OAAI,OAAO,+BAA+B,sBAAsB;AAC9D,WAAO,KAAK,KACV;KACE;KACA,SAAS,IAAI;KACb;KACA;KACD,EACD,qOACD;AACD;;AAGF,UAAO,MACL;IACE;IACA,SAAS,IAAI;IACb;IACA;IACD,EACD,+CACD;GACD,IAAI,SAAS,uBAAuB,IAAI,QAAQ,uBAAuB,gBAAgB;AACvF,aAAU,0CAA0C;AACpD,aAAU;AAEV,kBAAe,KAAK;IAClB,UAAU;IACV;IACD,CAAC;;;;AAKR,eAAe,+BACb,oBACA,SACwB;CACxB,MAAM,qBAAqB,IAAI,QAAQ,SAAS,qBAAqB;AACrE,KACE,CAAC,sBACD,CAAC,sBACD,CAAC,QAAQ,eACT,CAAC,QAAQ,mBAET,QAAO;AAUT,SAPe,MAAM,mBACnB,oBACA,QAAQ,oBACR,QAAQ,aACR,QAAQ,YACT,EAEa"}
1
+ {"version":3,"file":"get-updated.js","names":[],"sources":["../../../../../lib/workers/repository/update/branch/get-updated.ts"],"sourcesContent":["import { isNonEmptyArray } from '@sindresorhus/is';\nimport { WORKER_FILE_UPDATE_FAILED } from '../../../../constants/error-messages.ts';\nimport { logger } from '../../../../logger/index.ts';\nimport { extractPackageFile, get } from '../../../../modules/manager/index.ts';\nimport type {\n ArtifactError,\n ArtifactNotice,\n PackageFile,\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../../../../modules/manager/types.ts';\nimport { getFile } from '../../../../util/git/index.ts';\nimport type { FileAddition, FileChange } from '../../../../util/git/types.ts';\nimport { coerceString } from '../../../../util/string.ts';\nimport type { BranchConfig, BranchUpgradeConfig } from '../../../types.ts';\nimport { doAutoReplace } from './auto-replace.ts';\n\nexport interface PackageFilesResult {\n artifactErrors: ArtifactError[];\n reuseExistingBranch?: boolean;\n updatedPackageFiles: FileChange[];\n updatedArtifacts: FileChange[];\n artifactNotices: ArtifactNotice[];\n}\n\nasync function getFileContent(\n updatedFileContents: Record<string, string>,\n filePath: string,\n config: BranchConfig,\n): Promise<string | null> {\n let fileContent: string | null = updatedFileContents[filePath];\n if (!fileContent) {\n fileContent = await getFile(\n filePath,\n config.reuseExistingBranch ? config.branchName : config.baseBranch,\n );\n }\n return fileContent;\n}\n\nfunction sortPackageFiles(\n config: BranchConfig,\n manager: string,\n packageFiles: FilePath[],\n): void {\n const managerPackageFiles = config.packageFiles?.[manager];\n if (!managerPackageFiles) {\n return;\n }\n packageFiles.sort((lhs, rhs) => {\n const lhsIndex = managerPackageFiles.findIndex(\n (entry) => entry.packageFile === lhs.path,\n );\n const rhsIndex = managerPackageFiles.findIndex(\n (entry) => entry.packageFile === rhs.path,\n );\n return lhsIndex - rhsIndex;\n });\n}\n\nfunction hasAny(set: Set<string>, targets: Iterable<string>): boolean {\n for (const target of targets) {\n if (set.has(target)) {\n return true;\n }\n }\n return false;\n}\n\ntype FilePath = Pick<FileChange, 'path'>;\n\nfunction getManagersForPackageFiles<T extends FilePath>(\n packageFiles: T[],\n managerPackageFiles: Record<string, Set<string>>,\n): Set<string> {\n const packageFileNames = packageFiles.map((packageFile) => packageFile.path);\n return new Set(\n Object.keys(managerPackageFiles).filter((manager) =>\n hasAny(managerPackageFiles[manager], packageFileNames),\n ),\n );\n}\n\nfunction getPackageFilesForManager<T extends FilePath>(\n packageFiles: T[],\n managerPackageFiles: Set<string>,\n): T[] {\n return packageFiles.filter((packageFile) =>\n managerPackageFiles.has(packageFile.path),\n );\n}\n\nexport async function getUpdatedPackageFiles(\n config: BranchConfig,\n): Promise<PackageFilesResult> {\n logger.trace({ config });\n const reuseExistingBranch = config.reuseExistingBranch!;\n logger.debug(\n `manager.getUpdatedPackageFiles() reuseExistingBranch=${reuseExistingBranch}`,\n );\n let updatedFileContents: Record<string, string> = {};\n const nonUpdatedFileContents: Record<string, string> = {};\n const managerPackageFiles: Record<string, Set<string>> = {};\n const packageFileUpdatedDeps: Record<string, BranchUpgradeConfig[]> = {};\n const lockFileMaintenanceFiles: string[] = [];\n let firstUpdate = true;\n for (const upgrade of config.upgrades) {\n const manager = upgrade.manager;\n const packageFile = upgrade.packageFile!;\n const depName = upgrade.depName!;\n // TODO: fix types, can be undefined (#22198)\n const newVersion = upgrade.newVersion!;\n const currentVersion = upgrade.currentVersion!;\n const updateLockedDependency = get(manager, 'updateLockedDependency')!;\n managerPackageFiles[manager] ??= new Set<string>();\n managerPackageFiles[manager].add(packageFile);\n packageFileUpdatedDeps[packageFile] ??= [];\n packageFileUpdatedDeps[packageFile].push({ ...upgrade });\n const packageFileContent = await getFileContent(\n updatedFileContents,\n packageFile,\n config,\n );\n let lockFileContent: string | null = null;\n const lockFile = upgrade.lockFile ?? upgrade.lockFiles?.[0] ?? '';\n if (lockFile) {\n lockFileContent = await getFileContent(\n updatedFileContents,\n lockFile,\n config,\n );\n }\n // istanbul ignore if\n if (\n reuseExistingBranch &&\n (!packageFileContent || (lockFile && !lockFileContent))\n ) {\n logger.debug(\n { packageFile, depName },\n 'Rebasing branch after file not found',\n );\n return getUpdatedPackageFiles({\n ...config,\n reuseExistingBranch: false,\n });\n }\n if (upgrade.updateType === 'lockFileMaintenance') {\n lockFileMaintenanceFiles.push(packageFile);\n } else if (upgrade.isRemediation) {\n const { status, files } = await updateLockedDependency({\n ...upgrade,\n depName,\n newVersion,\n currentVersion,\n packageFile,\n packageFileContent: packageFileContent!,\n lockFile,\n lockFileContent: lockFileContent!,\n allowParentUpdates: true,\n allowHigherOrRemoved: true,\n });\n if (reuseExistingBranch && status !== 'already-updated') {\n logger.debug(\n { lockFile, depName, status },\n 'Need to retry branch as it is not already up-to-date',\n );\n return getUpdatedPackageFiles({\n ...config,\n reuseExistingBranch: false,\n });\n }\n if (files) {\n updatedFileContents = { ...updatedFileContents, ...files };\n Object.keys(files).forEach(\n (file) => delete nonUpdatedFileContents[file],\n );\n }\n if (status === 'update-failed' || status === 'unsupported') {\n upgrade.remediationNotPossible = true;\n }\n } else if (upgrade.isLockfileUpdate) {\n if (updateLockedDependency) {\n const { status, files } = await updateLockedDependency({\n ...upgrade,\n depName,\n newVersion,\n currentVersion,\n packageFile,\n packageFileContent: packageFileContent!,\n lockFile,\n lockFileContent: lockFileContent!,\n allowParentUpdates: false,\n });\n if (status === 'unsupported') {\n // incompatible lock file\n if (!updatedFileContents[packageFile]) {\n nonUpdatedFileContents[packageFile] = packageFileContent!;\n }\n } else if (status === 'already-updated') {\n logger.debug(\n `Upgrade of ${depName} to ${newVersion} is already done in existing branch`,\n );\n } else {\n // something changed\n if (reuseExistingBranch) {\n logger.debug(\n { lockFile, depName, status },\n 'Need to retry branch as upgrade requirements are not mets',\n );\n return getUpdatedPackageFiles({\n ...config,\n reuseExistingBranch: false,\n });\n }\n if (files) {\n updatedFileContents = { ...updatedFileContents, ...files };\n Object.keys(files).forEach(\n (file) => delete nonUpdatedFileContents[file],\n );\n }\n }\n } else {\n logger.debug(\n { manager },\n 'isLockFileUpdate without updateLockedDependency',\n );\n if (!updatedFileContents[packageFile]) {\n nonUpdatedFileContents[packageFile] = packageFileContent!;\n }\n }\n } else {\n const updateDependency = get(manager, 'updateDependency');\n if (!updateDependency) {\n let res = await doAutoReplace(\n upgrade,\n packageFileContent!,\n reuseExistingBranch,\n firstUpdate,\n );\n firstUpdate = false;\n if (res) {\n res = await applyManagerBumpPackageVersion(res, upgrade);\n if (res === packageFileContent) {\n logger.debug({ packageFile, depName }, 'No content changed');\n } else {\n logger.debug({ packageFile, depName }, 'Contents updated');\n updatedFileContents[packageFile] = res!;\n delete nonUpdatedFileContents[packageFile];\n }\n continue;\n } else if (reuseExistingBranch) {\n return getUpdatedPackageFiles({\n ...config,\n reuseExistingBranch: false,\n });\n }\n logger.error({ packageFile, depName }, 'Could not autoReplace');\n throw new Error(WORKER_FILE_UPDATE_FAILED);\n }\n let newContent = await updateDependency({\n fileContent: packageFileContent!,\n upgrade,\n });\n newContent = await applyManagerBumpPackageVersion(newContent, upgrade);\n if (!newContent) {\n if (reuseExistingBranch) {\n logger.debug(\n { packageFile, depName },\n 'Rebasing branch after error updating content',\n );\n return getUpdatedPackageFiles({\n ...config,\n reuseExistingBranch: false,\n });\n }\n logger.debug(\n { existingContent: packageFileContent, config: upgrade },\n 'Error updating file',\n );\n throw new Error(WORKER_FILE_UPDATE_FAILED);\n }\n if (newContent !== packageFileContent) {\n if (reuseExistingBranch) {\n // This ensure it's always 1 commit from the bot\n logger.debug(\n { packageFile, depName },\n 'Need to update package file so will rebase first',\n );\n return getUpdatedPackageFiles({\n ...config,\n reuseExistingBranch: false,\n });\n }\n logger.debug(\n `Updating ${depName} in ${coerceString(packageFile, lockFile)}`,\n );\n updatedFileContents[packageFile] = newContent;\n delete nonUpdatedFileContents[packageFile];\n }\n if (newContent === packageFileContent) {\n if (upgrade.manager === 'git-submodules') {\n updatedFileContents[packageFile] = newContent;\n delete nonUpdatedFileContents[packageFile];\n }\n }\n }\n }\n const updatedPackageFiles: FileAddition[] = Object.keys(\n updatedFileContents,\n ).map((name) => ({\n type: 'addition',\n path: name,\n contents: updatedFileContents[name],\n }));\n const updatedArtifacts: FileChange[] = [];\n const artifactErrors: ArtifactError[] = [];\n const artifactNotices: ArtifactNotice[] = [];\n if (isNonEmptyArray(updatedPackageFiles)) {\n logger.debug('updateArtifacts for updatedPackageFiles');\n const updatedPackageFileManagers = getManagersForPackageFiles(\n updatedPackageFiles,\n managerPackageFiles,\n );\n for (const manager of updatedPackageFileManagers) {\n const packageFilesForManager = getPackageFilesForManager(\n updatedPackageFiles,\n managerPackageFiles[manager],\n );\n sortPackageFiles(config, manager, packageFilesForManager);\n for (const packageFile of packageFilesForManager) {\n const updatedDeps = packageFileUpdatedDeps[packageFile.path];\n const results = await managerUpdateArtifacts(manager, {\n packageFileName: packageFile.path,\n updatedDeps,\n // TODO #22198\n newPackageFileContent: packageFile.contents!.toString(),\n config: patchConfigForArtifactsUpdate(\n config,\n manager,\n packageFile.path,\n ),\n });\n processUpdateArtifactResults(\n results,\n updatedArtifacts,\n artifactErrors,\n artifactNotices,\n );\n if (isNonEmptyArray(results)) {\n await checkForPendingVersions(\n manager,\n packageFile.path,\n packageFile.contents!.toString(),\n updatedDeps,\n artifactErrors,\n config,\n );\n }\n }\n }\n }\n const nonUpdatedPackageFiles: FileAddition[] = Object.keys(\n nonUpdatedFileContents,\n ).map((name) => ({\n type: 'addition',\n path: name,\n contents: nonUpdatedFileContents[name],\n }));\n if (isNonEmptyArray(nonUpdatedPackageFiles)) {\n logger.debug('updateArtifacts for nonUpdatedPackageFiles');\n const nonUpdatedPackageFileManagers = getManagersForPackageFiles(\n nonUpdatedPackageFiles,\n managerPackageFiles,\n );\n for (const manager of nonUpdatedPackageFileManagers) {\n const packageFilesForManager = getPackageFilesForManager(\n nonUpdatedPackageFiles,\n managerPackageFiles[manager],\n );\n sortPackageFiles(config, manager, packageFilesForManager);\n for (const packageFile of packageFilesForManager) {\n const updatedDeps = packageFileUpdatedDeps[packageFile.path];\n const results = await managerUpdateArtifacts(manager, {\n packageFileName: packageFile.path,\n updatedDeps,\n // TODO #22198\n newPackageFileContent: packageFile.contents!.toString(),\n config: patchConfigForArtifactsUpdate(\n config,\n manager,\n packageFile.path,\n ),\n });\n processUpdateArtifactResults(\n results,\n updatedArtifacts,\n artifactErrors,\n artifactNotices,\n );\n if (isNonEmptyArray(results)) {\n updatedPackageFiles.push(packageFile);\n await checkForPendingVersions(\n manager,\n packageFile.path,\n packageFile.contents!.toString(),\n updatedDeps,\n artifactErrors,\n config,\n );\n }\n }\n }\n }\n if (!reuseExistingBranch) {\n const lockFileMaintenancePackageFiles: FilePath[] =\n lockFileMaintenanceFiles.map((name) => ({\n path: name,\n }));\n // Only perform lock file maintenance if it's a fresh commit\n if (isNonEmptyArray(lockFileMaintenanceFiles)) {\n logger.debug('updateArtifacts for lockFileMaintenanceFiles');\n const lockFileMaintenanceManagers = getManagersForPackageFiles(\n lockFileMaintenancePackageFiles,\n managerPackageFiles,\n );\n for (const manager of lockFileMaintenanceManagers) {\n const packageFilesForManager = getPackageFilesForManager(\n lockFileMaintenancePackageFiles,\n managerPackageFiles[manager],\n );\n sortPackageFiles(config, manager, packageFilesForManager);\n for (const packageFile of packageFilesForManager) {\n const contents =\n updatedFileContents[packageFile.path] ||\n (await getFile(packageFile.path, config.baseBranch));\n const results = await managerUpdateArtifacts(manager, {\n packageFileName: packageFile.path,\n updatedDeps: [],\n newPackageFileContent: contents!,\n config: patchConfigForArtifactsUpdate(\n config,\n manager,\n packageFile.path,\n ),\n });\n processUpdateArtifactResults(\n results,\n updatedArtifacts,\n artifactErrors,\n artifactNotices,\n );\n }\n }\n }\n }\n return {\n reuseExistingBranch, // Need to overwrite original config\n updatedPackageFiles,\n updatedArtifacts,\n artifactErrors,\n artifactNotices,\n };\n}\n\n// workaround, see #27319\nfunction patchConfigForArtifactsUpdate(\n config: BranchConfig,\n manager: string,\n packageFileName: string,\n): UpdateArtifactsConfig {\n // drop any lockFiles that happen to be defined on the branch config\n const updatedConfig = { ...config };\n delete updatedConfig.lockFiles;\n if (isNonEmptyArray(updatedConfig.packageFiles?.[manager])) {\n const managerPackageFiles: PackageFile[] =\n updatedConfig.packageFiles?.[manager];\n const packageFile = managerPackageFiles.find(\n (p) => p.packageFile === packageFileName,\n );\n if (packageFile && isNonEmptyArray(packageFile.lockFiles)) {\n updatedConfig.lockFiles = packageFile.lockFiles;\n }\n }\n return updatedConfig;\n}\n\nasync function managerUpdateArtifacts(\n manager: string,\n updateArtifact: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n const updateArtifacts = get(manager, 'updateArtifacts');\n if (!updateArtifacts) {\n return null;\n }\n\n if (updateArtifact.config.skipArtifactsUpdate) {\n logger.debug(\n { manager, packageFileName: updateArtifact.packageFileName },\n 'Skipping artifact update',\n );\n return null;\n }\n\n return await updateArtifacts(updateArtifact);\n}\n\nfunction processUpdateArtifactResults(\n results: UpdateArtifactsResult[] | null,\n updatedArtifacts: FileChange[],\n artifactErrors: ArtifactError[],\n artifactNotices: ArtifactNotice[],\n): void {\n if (isNonEmptyArray(results)) {\n for (const res of results) {\n const { file, notice, artifactError } = res;\n if (file) {\n updatedArtifacts.push(file);\n }\n\n if (artifactError) {\n artifactErrors.push(artifactError);\n }\n\n if (notice) {\n artifactNotices.push(notice);\n }\n }\n }\n}\n\n/**\n * When using Minimum Release Age, and a package manager that doesn't support being told an explicit version to update to (#41624) it is possible that an artifact update leads to a different version of a dependency being used compared to what Renovate is expecting.\n *\n * We should report these cases more explicitly with an Artifact Error, to allow the reviewers to decide what to do with the changes.\n */\nasync function checkForPendingVersions(\n manager: string,\n packageFileName: string,\n packageFileContent: string,\n updatedDeps: BranchUpgradeConfig[],\n artifactErrors: ArtifactError[],\n config: BranchConfig,\n): Promise<void> {\n const depNameToUpgradeInfo = new Map<\n string,\n {\n pendingVersions: Set<string>;\n newVersion: string | undefined;\n }\n >();\n for (const dep of updatedDeps) {\n if (dep.depName && isNonEmptyArray(dep.pendingVersions)) {\n depNameToUpgradeInfo.set(dep.depName, {\n pendingVersions: new Set(dep.pendingVersions),\n newVersion: dep.newVersion,\n });\n }\n }\n if (!depNameToUpgradeInfo.size) {\n return;\n }\n\n const extracted = await extractPackageFile(\n manager,\n packageFileContent,\n packageFileName,\n config,\n );\n if (!extracted) {\n logger.warn(\n { packageFile: packageFileName, manager },\n 'Could not re-extract the packageFile after updating it',\n );\n return;\n }\n\n for (const dep of extracted.deps) {\n const depName = dep.depName ?? dep.packageName;\n // shouldn't ever happen\n if (!depName) {\n logger.error(\n {\n packageFile: packageFileName,\n manager,\n branchName: config.branchName,\n depName: dep.depName,\n },\n `No depName found after updating '${packageFileName}'`,\n );\n throw new Error(WORKER_FILE_UPDATE_FAILED);\n }\n\n const upgradeInfo = depNameToUpgradeInfo.get(depName);\n if (!upgradeInfo) {\n continue;\n }\n const resolvedVersion =\n dep.lockedVersion ??\n dep.newVersion ??\n dep.currentVersion ??\n dep.currentValue;\n if (!resolvedVersion) {\n logger.error(\n {\n packageFile: packageFileName,\n manager,\n branchName: config.branchName,\n depName,\n newVersion: resolvedVersion,\n },\n `No new version found for '${depName}' after updating '${packageFileName}'`,\n );\n throw new Error(WORKER_FILE_UPDATE_FAILED);\n }\n\n if (resolvedVersion && upgradeInfo.pendingVersions.has(resolvedVersion)) {\n const expectedVersion = upgradeInfo.newVersion;\n /* v8 ignore next if -- should not happen */\n if (!expectedVersion) {\n logger.error(\n {\n packageFile: packageFileName,\n manager,\n branchName: config.branchName,\n depName,\n newVersion: resolvedVersion,\n expectedVersion,\n },\n `No expectedVersion found for '${depName}' after updating '${packageFileName}'`,\n );\n continue;\n }\n\n if (config.minimumReleaseAgeBehaviour === 'timestamp-optional') {\n logger.once.warn(\n {\n packageFileName,\n depName,\n expectedVersion,\n resolvedVersion,\n },\n \"Artifact error would be reported due to a pending version in use which hasn't passed Minimum Release Age, but as we're running with minimumReleaseAgeBehaviour=timestamp-optional, proceeding. See debug logs for more information\",\n );\n continue;\n }\n\n logger.debug(\n {\n packageFileName,\n depName,\n expectedVersion,\n resolvedVersion,\n },\n 'Artifact update introduced a pending version',\n );\n let stderr = `Artifact update for ${depName} resolved to version ${resolvedVersion}, which is a pending version that has not yet passed the Minimum Release Age threshold.`;\n stderr += `\\nRenovate was attempting to update to ${expectedVersion}`;\n stderr += `\\nThis is (likely) not a bug in Renovate, but due to the way your project pins dependencies, _and_ how Renovate calls your package manager to update them.\\nUntil Renovate supports specifying an exact update to your package manager (https://github.com/renovatebot/renovate/issues/41624), it is recommended to directly pin your dependencies (with \\`rangeStrategy=pin\\` for apps, or \\`rangeStrategy=widen\\` for libraries)\\nSee also: https://docs.renovatebot.com/dependency-pinning/`;\n\n artifactErrors.push({\n lockFile: packageFileName,\n stderr,\n });\n }\n }\n}\n\nasync function applyManagerBumpPackageVersion(\n packageFileContent: string | null,\n upgrade: BranchUpgradeConfig,\n): Promise<string | null> {\n const bumpPackageVersion = get(upgrade.manager, 'bumpPackageVersion');\n if (\n !bumpPackageVersion ||\n !packageFileContent ||\n !upgrade.bumpVersion ||\n !upgrade.packageFileVersion\n ) {\n return packageFileContent;\n }\n\n const result = await bumpPackageVersion(\n packageFileContent,\n upgrade.packageFileVersion,\n upgrade.bumpVersion,\n upgrade.packageFile!,\n );\n\n return result.bumpedContent;\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "renovate",
3
3
  "description": "Automated dependency updates. Flexible so you don't need to be.",
4
- "version": "43.58.0",
4
+ "version": "43.59.1",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -1,7 +1,7 @@
1
1
  {
2
- "title": "JSON schema for Renovate 43.58.0 config files (https://renovatebot.com/)",
2
+ "title": "JSON schema for Renovate 43.59.1 config files (https://renovatebot.com/)",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
- "x-renovate-version": "43.58.0",
4
+ "x-renovate-version": "43.59.1",
5
5
  "allowComments": true,
6
6
  "type": "object",
7
7
  "properties": {