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.
|
@@ -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
|
-
|
|
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(
|
|
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
|
|
366
|
+
depName,
|
|
366
367
|
newVersion: resolvedVersion
|
|
367
|
-
}, `No new version found for '${
|
|
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
|
|
379
|
+
depName,
|
|
379
380
|
newVersion: resolvedVersion,
|
|
380
381
|
expectedVersion
|
|
381
|
-
}, `No expectedVersion found for '${
|
|
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
|
|
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
|
|
396
|
+
depName,
|
|
396
397
|
expectedVersion,
|
|
397
398
|
resolvedVersion
|
|
398
399
|
}, "Artifact update introduced a pending version");
|
|
399
|
-
let stderr = `Artifact update for ${
|
|
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":"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"}
|
|
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":";;;;;;;;;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;EAChC,MAAM,UAAU,IAAI,WAAW,IAAI;AAEnC,MAAI,CAAC,SAAS;AACZ,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,QAAQ;AACrD,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;IACA,YAAY;IACb,EACD,6BAA6B,QAAQ,oBAAoB,gBAAgB,GAC1E;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;KACA,YAAY;KACZ;KACD,EACD,iCAAiC,QAAQ,oBAAoB,gBAAgB,GAC9E;AACD;;AAGF,OAAI,OAAO,+BAA+B,sBAAsB;AAC9D,WAAO,KAAK,KACV;KACE;KACA;KACA;KACA;KACD,EACD,qOACD;AACD;;AAGF,UAAO,MACL;IACE;IACA;IACA;IACA;IACD,EACD,+CACD;GACD,IAAI,SAAS,uBAAuB,QAAQ,uBAAuB,gBAAgB;AACnF,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"}
|
package/package.json
CHANGED
package/renovate-schema.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"title": "JSON schema for Renovate 43.
|
|
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.
|
|
4
|
+
"x-renovate-version": "43.59.1",
|
|
5
5
|
"allowComments": true,
|
|
6
6
|
"type": "object",
|
|
7
7
|
"properties": {
|