renovate 43.263.0 → 43.263.2

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.
Files changed (258) hide show
  1. package/dist/config/app-strings.js +1 -1
  2. package/dist/config/app-strings.js.map +1 -1
  3. package/dist/config/decrypt/bcpgp.js +7 -4
  4. package/dist/config/decrypt/bcpgp.js.map +1 -1
  5. package/dist/config/migration.js +4 -6
  6. package/dist/config/migration.js.map +1 -1
  7. package/dist/config/options/index.js +1 -1
  8. package/dist/config/options/index.js.map +1 -1
  9. package/dist/config/validation-helpers/match-base-branches.js +4 -6
  10. package/dist/config/validation-helpers/match-base-branches.js.map +1 -1
  11. package/dist/config/validation-helpers/regex-glob-matchers.js +4 -6
  12. package/dist/config/validation-helpers/regex-glob-matchers.js.map +1 -1
  13. package/dist/config/validation-helpers/utils.js +2 -4
  14. package/dist/config/validation-helpers/utils.js.map +1 -1
  15. package/dist/config/validation.js +4 -6
  16. package/dist/config/validation.js.map +1 -1
  17. package/dist/config-validator.js +1 -3
  18. package/dist/config-validator.js.map +1 -1
  19. package/dist/global-config-option-defaults.generated.js +1 -1
  20. package/dist/global-config-option-defaults.generated.js.map +1 -1
  21. package/dist/modules/datasource/artifactory/index.js +6 -8
  22. package/dist/modules/datasource/artifactory/index.js.map +1 -1
  23. package/dist/modules/datasource/aws-machine-image/index.js +1 -2
  24. package/dist/modules/datasource/aws-machine-image/index.js.map +1 -1
  25. package/dist/modules/datasource/azure-pipelines-tasks/index.js +2 -3
  26. package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
  27. package/dist/modules/datasource/conda/index.js +1 -3
  28. package/dist/modules/datasource/conda/index.js.map +1 -1
  29. package/dist/modules/datasource/dart-version/index.js +1 -2
  30. package/dist/modules/datasource/dart-version/index.js.map +1 -1
  31. package/dist/modules/datasource/datasource.js +1 -3
  32. package/dist/modules/datasource/datasource.js.map +1 -1
  33. package/dist/modules/datasource/devbox/index.js +1 -3
  34. package/dist/modules/datasource/devbox/index.js.map +1 -1
  35. package/dist/modules/datasource/docker/ecr.js +2 -1
  36. package/dist/modules/datasource/docker/ecr.js.map +1 -1
  37. package/dist/modules/datasource/docker/index.js +1 -1
  38. package/dist/modules/datasource/docker/index.js.map +1 -1
  39. package/dist/modules/datasource/galaxy-collection/index.js +1 -1
  40. package/dist/modules/datasource/galaxy-collection/index.js.map +1 -1
  41. package/dist/modules/datasource/go/releases-goproxy.js +2 -2
  42. package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
  43. package/dist/modules/datasource/java-version/index.js +1 -3
  44. package/dist/modules/datasource/java-version/index.js.map +1 -1
  45. package/dist/modules/datasource/maven/util.js +2 -1
  46. package/dist/modules/datasource/maven/util.js.map +1 -1
  47. package/dist/modules/datasource/nuget/common.js +6 -4
  48. package/dist/modules/datasource/nuget/common.js.map +1 -1
  49. package/dist/modules/datasource/util.js +3 -2
  50. package/dist/modules/datasource/util.js.map +1 -1
  51. package/dist/modules/manager/azure-pipelines/extract.js +1 -1
  52. package/dist/modules/manager/azure-pipelines/extract.js.map +1 -1
  53. package/dist/modules/manager/bazel/extract.js +1 -3
  54. package/dist/modules/manager/bazel/extract.js.map +1 -1
  55. package/dist/modules/manager/bazel/parser.js +1 -1
  56. package/dist/modules/manager/bazel/parser.js.map +1 -1
  57. package/dist/modules/manager/buildpacks/extract.js +1 -1
  58. package/dist/modules/manager/buildpacks/extract.js.map +1 -1
  59. package/dist/modules/manager/bundler/common.js +23 -25
  60. package/dist/modules/manager/bundler/common.js.map +1 -1
  61. package/dist/modules/manager/bundler/extract.js +2 -6
  62. package/dist/modules/manager/bundler/extract.js.map +1 -1
  63. package/dist/modules/manager/cargo/extract.js +4 -6
  64. package/dist/modules/manager/cargo/extract.js.map +1 -1
  65. package/dist/modules/manager/dockerfile/extract.js +3 -3
  66. package/dist/modules/manager/dockerfile/extract.js.map +1 -1
  67. package/dist/modules/manager/fingerprint.generated.js +13 -13
  68. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  69. package/dist/modules/manager/flux/extract.js +2 -1
  70. package/dist/modules/manager/flux/extract.js.map +1 -1
  71. package/dist/modules/manager/github-actions/parse.js +1 -1
  72. package/dist/modules/manager/github-actions/parse.js.map +1 -1
  73. package/dist/modules/manager/gradle/extract/catalog.js +4 -3
  74. package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
  75. package/dist/modules/manager/gradle/extract.js +2 -2
  76. package/dist/modules/manager/gradle/extract.js.map +1 -1
  77. package/dist/modules/manager/gradle/parser/common.js +1 -1
  78. package/dist/modules/manager/gradle/parser/common.js.map +1 -1
  79. package/dist/modules/manager/gradle/parser/handlers.js +1 -1
  80. package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
  81. package/dist/modules/manager/helm-values/extract.js.map +1 -1
  82. package/dist/modules/manager/helmfile/extract.js +1 -1
  83. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  84. package/dist/modules/manager/maven/extract.js.map +1 -1
  85. package/dist/modules/manager/maven/update.js +2 -1
  86. package/dist/modules/manager/maven/update.js.map +1 -1
  87. package/dist/modules/manager/mise/utils.js +5 -7
  88. package/dist/modules/manager/mise/utils.js.map +1 -1
  89. package/dist/modules/manager/mix/extract.js +3 -6
  90. package/dist/modules/manager/mix/extract.js.map +1 -1
  91. package/dist/modules/manager/npm/extract/common/overrides.js +1 -1
  92. package/dist/modules/manager/npm/extract/common/overrides.js.map +1 -1
  93. package/dist/modules/manager/npm/extract/yarn.js +1 -1
  94. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  95. package/dist/modules/manager/npm/npmrc.js +1 -3
  96. package/dist/modules/manager/npm/npmrc.js.map +1 -1
  97. package/dist/modules/manager/npm/update/dependency/common.js +2 -3
  98. package/dist/modules/manager/npm/update/dependency/common.js.map +1 -1
  99. package/dist/modules/manager/npm/update/dependency/index.js +1 -1
  100. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  101. package/dist/modules/manager/npm/update/dependency/pnpm.js +1 -1
  102. package/dist/modules/manager/npm/update/dependency/pnpm.js.map +1 -1
  103. package/dist/modules/manager/npm/update/dependency/yarn.js +1 -1
  104. package/dist/modules/manager/npm/update/dependency/yarn.js.map +1 -1
  105. package/dist/modules/manager/osgi/extract.js +1 -1
  106. package/dist/modules/manager/osgi/extract.js.map +1 -1
  107. package/dist/modules/manager/pep621/processors/uv.js +1 -1
  108. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  109. package/dist/modules/manager/pep621/schema.js.map +1 -1
  110. package/dist/modules/manager/pip_setup/extract.js +1 -1
  111. package/dist/modules/manager/pip_setup/extract.js.map +1 -1
  112. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  113. package/dist/modules/manager/poetry/schema.js +2 -2
  114. package/dist/modules/manager/poetry/schema.js.map +1 -1
  115. package/dist/modules/manager/pub/artifacts.js +4 -6
  116. package/dist/modules/manager/pub/artifacts.js.map +1 -1
  117. package/dist/modules/manager/pub/utils.js +2 -2
  118. package/dist/modules/manager/pub/utils.js.map +1 -1
  119. package/dist/modules/manager/puppet/common.js +4 -6
  120. package/dist/modules/manager/puppet/common.js.map +1 -1
  121. package/dist/modules/manager/sbt/extract.js +1 -1
  122. package/dist/modules/manager/sbt/extract.js.map +1 -1
  123. package/dist/modules/manager/sbt/util.js +4 -2
  124. package/dist/modules/manager/sbt/util.js.map +1 -1
  125. package/dist/modules/manager/terraform/lockfile/util.js +1 -1
  126. package/dist/modules/manager/terraform/lockfile/util.js.map +1 -1
  127. package/dist/modules/platform/azure/index.js +15 -19
  128. package/dist/modules/platform/azure/index.js.map +1 -1
  129. package/dist/modules/platform/azure/issue.js +67 -17
  130. package/dist/modules/platform/azure/issue.js.map +1 -1
  131. package/dist/modules/platform/bitbucket/index.js +1 -3
  132. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  133. package/dist/modules/platform/forgejo/index.js +5 -3
  134. package/dist/modules/platform/forgejo/index.js.map +1 -1
  135. package/dist/modules/platform/forgejo/utils.js +1 -1
  136. package/dist/modules/platform/forgejo/utils.js.map +1 -1
  137. package/dist/modules/platform/gerrit/scm.js +5 -7
  138. package/dist/modules/platform/gerrit/scm.js.map +1 -1
  139. package/dist/modules/platform/gitea/index.js +5 -3
  140. package/dist/modules/platform/gitea/index.js.map +1 -1
  141. package/dist/modules/platform/gitea/utils.js +1 -1
  142. package/dist/modules/platform/gitea/utils.js.map +1 -1
  143. package/dist/modules/platform/github/index.js +5 -7
  144. package/dist/modules/platform/github/index.js.map +1 -1
  145. package/dist/modules/platform/github/pr.js +1 -1
  146. package/dist/modules/platform/github/pr.js.map +1 -1
  147. package/dist/modules/platform/gitlab/index.js +2 -1
  148. package/dist/modules/platform/gitlab/index.js.map +1 -1
  149. package/dist/modules/platform/utils/pr-body.js +2 -1
  150. package/dist/modules/platform/utils/pr-body.js.map +1 -1
  151. package/dist/modules/versioning/apk/index.js +3 -3
  152. package/dist/modules/versioning/apk/index.js.map +1 -1
  153. package/dist/modules/versioning/composer/index.js +4 -7
  154. package/dist/modules/versioning/composer/index.js.map +1 -1
  155. package/dist/modules/versioning/conan/common.js +4 -6
  156. package/dist/modules/versioning/conan/common.js.map +1 -1
  157. package/dist/modules/versioning/conan/index.js +1 -3
  158. package/dist/modules/versioning/conan/index.js.map +1 -1
  159. package/dist/modules/versioning/conan/range.js +4 -5
  160. package/dist/modules/versioning/conan/range.js.map +1 -1
  161. package/dist/modules/versioning/conda/index.js +1 -1
  162. package/dist/modules/versioning/conda/index.js.map +1 -1
  163. package/dist/modules/versioning/gradle/index.js +7 -3
  164. package/dist/modules/versioning/gradle/index.js.map +1 -1
  165. package/dist/modules/versioning/hermit/index.js +2 -2
  166. package/dist/modules/versioning/hermit/index.js.map +1 -1
  167. package/dist/modules/versioning/ivy/index.js +1 -1
  168. package/dist/modules/versioning/ivy/index.js.map +1 -1
  169. package/dist/modules/versioning/maven/compare.js +4 -6
  170. package/dist/modules/versioning/maven/compare.js.map +1 -1
  171. package/dist/modules/versioning/npm/range.js +5 -7
  172. package/dist/modules/versioning/npm/range.js.map +1 -1
  173. package/dist/modules/versioning/nuget/version.js +6 -6
  174. package/dist/modules/versioning/nuget/version.js.map +1 -1
  175. package/dist/modules/versioning/pep440/index.js +1 -1
  176. package/dist/modules/versioning/pep440/index.js.map +1 -1
  177. package/dist/modules/versioning/pep440/range.js +2 -6
  178. package/dist/modules/versioning/pep440/range.js.map +1 -1
  179. package/dist/modules/versioning/poetry/index.js +1 -1
  180. package/dist/modules/versioning/poetry/index.js.map +1 -1
  181. package/dist/modules/versioning/pvp/index.js +2 -2
  182. package/dist/modules/versioning/pvp/index.js.map +1 -1
  183. package/dist/modules/versioning/rpm/index.js +4 -3
  184. package/dist/modules/versioning/rpm/index.js.map +1 -1
  185. package/dist/modules/versioning/ruby/range.js +2 -2
  186. package/dist/modules/versioning/ruby/range.js.map +1 -1
  187. package/dist/modules/versioning/ruby/strategies/bump.js +1 -1
  188. package/dist/modules/versioning/ruby/strategies/bump.js.map +1 -1
  189. package/dist/modules/versioning/ruby/strategies/replace.js +13 -12
  190. package/dist/modules/versioning/ruby/strategies/replace.js.map +1 -1
  191. package/dist/modules/versioning/ruby/version.js +1 -1
  192. package/dist/modules/versioning/ruby/version.js.map +1 -1
  193. package/dist/modules/versioning/rust-release-channel/index.js +1 -1
  194. package/dist/modules/versioning/rust-release-channel/index.js.map +1 -1
  195. package/dist/modules/versioning/rust-release-channel/util.js +4 -4
  196. package/dist/modules/versioning/rust-release-channel/util.js.map +1 -1
  197. package/dist/util/common.js +1 -3
  198. package/dist/util/common.js.map +1 -1
  199. package/dist/util/exec/common.js +4 -6
  200. package/dist/util/exec/common.js.map +1 -1
  201. package/dist/util/exec/containerbase.js +1 -3
  202. package/dist/util/exec/containerbase.js.map +1 -1
  203. package/dist/util/git/instrument.js +3 -3
  204. package/dist/util/git/instrument.js.map +1 -1
  205. package/dist/util/github/graphql/datasource-fetcher.js +5 -4
  206. package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
  207. package/dist/util/http/cache/package-http-cache-provider.js.map +1 -1
  208. package/dist/util/http/github.js +3 -2
  209. package/dist/util/http/github.js.map +1 -1
  210. package/dist/util/http/http.d.ts +1 -1
  211. package/dist/util/http/http.js.map +1 -1
  212. package/dist/util/result.d.ts +8 -8
  213. package/dist/util/result.js +1 -1
  214. package/dist/util/result.js.map +1 -1
  215. package/dist/util/url.js +2 -2
  216. package/dist/util/url.js.map +1 -1
  217. package/dist/workers/global/config/parse/cli.js +18 -20
  218. package/dist/workers/global/config/parse/cli.js.map +1 -1
  219. package/dist/workers/global/config/parse/env.js +3 -5
  220. package/dist/workers/global/config/parse/env.js.map +1 -1
  221. package/dist/workers/repository/config-migration/branch/index.js +3 -5
  222. package/dist/workers/repository/config-migration/branch/index.js.map +1 -1
  223. package/dist/workers/repository/init/merge.js +2 -3
  224. package/dist/workers/repository/init/merge.js.map +1 -1
  225. package/dist/workers/repository/onboarding/branch/check.js +7 -9
  226. package/dist/workers/repository/onboarding/branch/check.js.map +1 -1
  227. package/dist/workers/repository/onboarding/branch/index.js +4 -8
  228. package/dist/workers/repository/onboarding/branch/index.js.map +1 -1
  229. package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js +2 -2
  230. package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js.map +1 -1
  231. package/dist/workers/repository/process/extract-update.js.map +1 -1
  232. package/dist/workers/repository/process/fetch.js.map +1 -1
  233. package/dist/workers/repository/process/libyear.js +1 -3
  234. package/dist/workers/repository/process/libyear.js.map +1 -1
  235. package/dist/workers/repository/process/lookup/filter-checks.js +9 -11
  236. package/dist/workers/repository/process/lookup/filter-checks.js.map +1 -1
  237. package/dist/workers/repository/process/lookup/index.js +5 -8
  238. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  239. package/dist/workers/repository/process/vulnerabilities.js +3 -3
  240. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  241. package/dist/workers/repository/reconfigure/index.js +3 -5
  242. package/dist/workers/repository/reconfigure/index.js.map +1 -1
  243. package/dist/workers/repository/update/branch/bump-versions.js +1 -1
  244. package/dist/workers/repository/update/branch/bump-versions.js.map +1 -1
  245. package/dist/workers/repository/update/branch/get-updated.js +3 -5
  246. package/dist/workers/repository/update/branch/get-updated.js.map +1 -1
  247. package/dist/workers/repository/update/pr/body/updates-table.js +1 -3
  248. package/dist/workers/repository/update/pr/body/updates-table.js.map +1 -1
  249. package/dist/workers/repository/update/pr/changelog/common.js +1 -1
  250. package/dist/workers/repository/update/pr/changelog/common.js.map +1 -1
  251. package/dist/workers/repository/update/pr/index.js +6 -7
  252. package/dist/workers/repository/update/pr/index.js.map +1 -1
  253. package/dist/workers/repository/updates/flatten.js +1 -1
  254. package/dist/workers/repository/updates/flatten.js.map +1 -1
  255. package/dist/workers/repository/updates/generate.js +1 -1
  256. package/dist/workers/repository/updates/generate.js.map +1 -1
  257. package/package.json +2 -2
  258. package/renovate-schema.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","names":["template.compile","template\n .compile"],"sources":["../../../../lib/workers/repository/updates/generate.ts"],"sourcesContent":["import { isArray, isNonEmptyString, isString } from '@sindresorhus/is';\nimport { DateTime } from 'luxon';\nimport { markdownTable } from 'markdown-table';\nimport semver from 'semver';\nimport { mergeChildConfig } from '../../../config/index.ts';\nimport { CONFIG_SECRETS_EXPOSED } from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { newlineRegex, regEx } from '../../../util/regex.ts';\nimport { sanitize } from '../../../util/sanitize.ts';\nimport { safeStringify } from '../../../util/stringify.ts';\nimport * as template from '../../../util/template/index.ts';\nimport type { Timestamp } from '../../../util/timestamp.ts';\nimport { uniq } from '../../../util/uniq.ts';\nimport type { BranchConfig, BranchUpgradeConfig } from '../../types.ts';\nimport { CommitMessage } from '../model/commit-message.ts';\n\nfunction prettifyVersion(version: string): string {\n if (regEx(/^\\d/).test(version)) {\n return `v${version}`;\n }\n\n return version;\n}\n\nfunction isTypesGroup(branchUpgrades: BranchUpgradeConfig[]): boolean {\n return (\n branchUpgrades.some(({ depName }) => depName?.startsWith('@types/')) &&\n new Set(\n branchUpgrades.map(({ depName }) => depName?.replace(/^@types\\//, '')),\n ).size === 1\n );\n}\n\nfunction sortTypesGroup(upgrades: BranchUpgradeConfig[]): void {\n const isTypesUpgrade = ({ depName }: BranchUpgradeConfig): boolean =>\n !!depName?.startsWith('@types/');\n const regularUpgrades = upgrades.filter(\n (upgrade) => !isTypesUpgrade(upgrade),\n );\n const typesUpgrades = upgrades.filter(isTypesUpgrade);\n upgrades.splice(0, upgrades.length);\n upgrades.push(...regularUpgrades, ...typesUpgrades);\n}\n\nfunction getTableValues(upgrade: BranchUpgradeConfig): string[] | null {\n if (!upgrade.commitBodyTable) {\n return null;\n }\n const { datasource, packageName, depName, currentVersion, newVersion } =\n upgrade;\n const name = packageName ?? depName;\n if (datasource && name && currentVersion && newVersion) {\n return [datasource, name, currentVersion, newVersion];\n }\n logger.trace(\n {\n datasource,\n packageName,\n depName,\n currentVersion,\n newVersion,\n },\n 'Cannot determine table values',\n );\n return null;\n}\n\nfunction compileCommitMessage(upgrade: BranchUpgradeConfig): string {\n if (upgrade.semanticCommits === 'enabled' && !upgrade.commitMessagePrefix) {\n logger.trace('Upgrade has semantic commits enabled');\n let semanticPrefix = upgrade.semanticCommitType;\n if (upgrade.semanticCommitScope) {\n semanticPrefix += `(${template.compile(\n upgrade.semanticCommitScope,\n upgrade,\n )})`;\n }\n upgrade.commitMessagePrefix = CommitMessage.formatPrefix(semanticPrefix!);\n upgrade.toLowerCase =\n regEx(/[A-Z]/).exec(upgrade.semanticCommitType!) === null &&\n !upgrade.semanticCommitType!.startsWith(':');\n }\n\n // Compile a few times in case there are nested templates\n upgrade.commitMessage = template.compile(\n upgrade.commitMessage ?? '',\n upgrade,\n );\n upgrade.commitMessage = template.compile(upgrade.commitMessage, upgrade);\n upgrade.commitMessage = template.compile(upgrade.commitMessage, upgrade);\n // istanbul ignore if\n if (upgrade.commitMessage !== sanitize(upgrade.commitMessage)) {\n logger.debug(\n { branchName: upgrade.branchName },\n 'Secrets exposed in commit message',\n );\n throw new Error(CONFIG_SECRETS_EXPOSED);\n }\n upgrade.commitMessage = upgrade.commitMessage.trim(); // Trim exterior whitespace\n upgrade.commitMessage = upgrade.commitMessage.replace(regEx(/\\s+/g), ' '); // Trim extra whitespace inside string\n upgrade.commitMessage = upgrade.commitMessage.replace(\n regEx(/to vv(\\d)/),\n 'to v$1',\n );\n if (upgrade.toLowerCase && upgrade.commitMessageLowerCase !== 'never') {\n // We only need to lowercase the first line\n const splitMessage = upgrade.commitMessage.split(newlineRegex);\n splitMessage[0] = splitMessage[0].toLowerCase();\n upgrade.commitMessage = splitMessage.join('\\n');\n }\n\n logger.trace(`commitMessage: ${JSON.stringify(upgrade.commitMessage)}`);\n return upgrade.commitMessage;\n}\n\nfunction compilePrTitle(\n upgrade: BranchUpgradeConfig,\n commitMessage: string,\n): void {\n if (upgrade.prTitle) {\n upgrade.prTitle = template.compile(upgrade.prTitle, upgrade);\n upgrade.prTitle = template.compile(upgrade.prTitle, upgrade);\n upgrade.prTitle = template\n .compile(upgrade.prTitle, upgrade)\n .trim()\n .replace(regEx(/\\s+/g), ' ');\n // istanbul ignore if\n if (upgrade.prTitle !== sanitize(upgrade.prTitle)) {\n logger.debug(\n { branchName: upgrade.branchName },\n 'Secrets were exposed in PR title',\n );\n throw new Error(CONFIG_SECRETS_EXPOSED);\n }\n if (upgrade.toLowerCase && upgrade.commitMessageLowerCase !== 'never') {\n upgrade.prTitle = upgrade.prTitle.toLowerCase();\n }\n } else {\n [upgrade.prTitle] = commitMessage.split(newlineRegex);\n }\n if (!upgrade.prTitleStrict) {\n upgrade.prTitle += upgrade.hasBaseBranches ? ' ({{baseBranch}})' : '';\n if (upgrade.isGroup) {\n const hasVersionInTitle = !!semver.coerce(\n template.compile(upgrade.commitMessageExtra ?? '', upgrade),\n );\n if (!hasVersionInTitle) {\n upgrade.prTitle +=\n upgrade.updateType === 'major' && upgrade.separateMajorMinor\n ? ' (major)'\n : '';\n upgrade.prTitle +=\n upgrade.updateType === 'minor' && upgrade.separateMinorPatch\n ? ' (minor)'\n : '';\n upgrade.prTitle +=\n upgrade.updateType === 'patch' && upgrade.separateMinorPatch\n ? ' (patch)'\n : '';\n }\n }\n }\n // Compile again to allow for nested templates\n upgrade.prTitle = template.compile(upgrade.prTitle, upgrade);\n logger.trace(`prTitle: ${JSON.stringify(upgrade.prTitle)}`);\n}\n\nfunction getMinimumGroupSize(upgrades: BranchUpgradeConfig[]): number {\n let minimumGroupSize = 1;\n const groupSizes = new Set<number>();\n\n for (const upg of upgrades) {\n if (upg.minimumGroupSize) {\n groupSizes.add(upg.minimumGroupSize);\n if (minimumGroupSize < upg.minimumGroupSize) {\n minimumGroupSize = upg.minimumGroupSize;\n }\n }\n }\n\n if (groupSizes.size > 1) {\n logger.debug(\n 'Multiple minimumGroupSize values found for this branch, using highest.',\n );\n }\n\n return minimumGroupSize;\n}\n\n// Sorted by priority, from low to high\nconst semanticCommitTypeByPriority = ['chore', 'ci', 'build', 'fix', 'feat'];\n\nexport function generateBranchConfig(\n upgrades: BranchUpgradeConfig[],\n): BranchConfig {\n let branchUpgrades = upgrades;\n if (!branchUpgrades.every((upgrade) => upgrade.pendingChecks)) {\n // If the branch isn't pending, then remove any upgrades within which *are*\n logger.debug(\n { branch: branchUpgrades[0].branchName },\n 'Branch is not pending, removing pending upgrades',\n );\n branchUpgrades = branchUpgrades.filter((upgrade) => !upgrade.pendingChecks);\n }\n logger.trace({ config: branchUpgrades }, 'generateBranchConfig');\n let config: BranchConfig = {\n upgrades: [],\n } as any;\n const hasGroupName = branchUpgrades[0].groupName !== null;\n logger.trace(`hasGroupName: ${hasGroupName}`);\n // Use group settings only if multiple upgrades or lazy grouping is disabled\n const depNames: string[] = [];\n const newValue: string[] = [];\n const toVersions: string[] = [];\n const toValues = new Set<string>();\n const depTypes = new Set<string>();\n for (const upg of branchUpgrades) {\n upg.recreateClosed = upg.recreateWhen === 'always';\n\n if (upg.currentDigest) {\n upg.currentDigestShort =\n upg.currentDigestShort ??\n upg.currentDigest.replace('sha256:', '').substring(0, 7);\n }\n if (upg.newDigest) {\n upg.newDigestShort =\n upg.newDigestShort ??\n upg.newDigest.replace('sha256:', '').substring(0, 7);\n }\n if (upg.isDigest || upg.isPinDigest) {\n upg.displayFrom = upg.currentDigestShort;\n upg.displayTo = upg.newDigestShort;\n } else if (upg.isLockfileUpdate) {\n upg.displayFrom = upg.currentVersion;\n upg.displayTo = upg.newVersion;\n } else if (!upg.isLockFileMaintenance) {\n upg.displayFrom = upg.currentValue;\n upg.displayTo = upg.newValue;\n }\n\n if (upg.isLockFileMaintenance) {\n upg.recreateClosed = upg.recreateWhen !== 'never';\n }\n upg.displayFrom ??= '';\n upg.displayTo ??= '';\n if (!depNames.includes(upg.depName!)) {\n depNames.push(upg.depName!);\n }\n if (!toVersions.includes(upg.newVersion!)) {\n toVersions.push(upg.newVersion!);\n }\n toValues.add(upg.newValue!);\n if (upg.depType) {\n depTypes.add(upg.depType);\n }\n // prettify newVersion and newMajor for printing\n if (upg.newVersion) {\n upg.prettyNewVersion = prettifyVersion(upg.newVersion);\n }\n if (upg.newMajor) {\n upg.prettyNewMajor = `v${upg.newMajor}`;\n }\n if (upg.commitMessageExtra) {\n const extra = template.compile(upg.commitMessageExtra, upg);\n if (!newValue.includes(extra)) {\n newValue.push(extra);\n }\n }\n }\n const groupEligible =\n depNames.length > 1 ||\n toVersions.length > 1 ||\n (!toVersions[0] && newValue.length > 1);\n\n const typesGroup =\n depNames.length > 1 && !hasGroupName && isTypesGroup(branchUpgrades);\n logger.trace(`groupEligible: ${groupEligible}`);\n const singleUpdateGroup =\n hasGroupName && !groupEligible && !branchUpgrades[0].sharedVariableName;\n logger.trace(`singleUpdateGroup: ${singleUpdateGroup}`);\n const useGroupSettings =\n hasGroupName &&\n (groupEligible ||\n (singleUpdateGroup && branchUpgrades[0].groupSingleUpdates === true));\n logger.trace(`useGroupSettings: ${useGroupSettings}`);\n let releaseTimestamp: Timestamp;\n\n if (depTypes.size) {\n config.depTypes = Array.from(depTypes).sort();\n }\n\n for (const branchUpgrade of branchUpgrades) {\n let upgrade: BranchUpgradeConfig = { ...branchUpgrade };\n\n upgrade.depTypes = config.depTypes;\n\n // needs to be done for each upgrade, as we reorder them below\n if (newValue.length > 1 && !groupEligible) {\n upgrade.commitMessageExtra = `to v${toVersions[0]}`;\n }\n\n const pendingVersionsLength = upgrade.pendingVersions?.length;\n if (pendingVersionsLength) {\n upgrade.displayPending = `\\`${upgrade\n .pendingVersions!.slice(-1)\n .pop()!}\\``;\n if (pendingVersionsLength > 1) {\n upgrade.displayPending += ` (+${pendingVersionsLength - 1})`;\n }\n } else {\n upgrade.displayPending = '';\n }\n upgrade.prettyDepType =\n upgrade.prettyDepType ?? upgrade.depType ?? 'dependency';\n if (useGroupSettings) {\n // Now overwrite original config with group config\n upgrade = mergeChildConfig(upgrade, upgrade.group);\n upgrade.isGroup = true;\n if (singleUpdateGroup) {\n // Single update using group name instead of dependency name,\n // so remove version from commit message.\n delete upgrade.commitMessageExtra;\n upgrade.recreateClosed = upgrade.recreateWhen !== 'never';\n }\n } else {\n delete upgrade.groupName;\n }\n // Delete group config regardless of whether it was applied\n delete upgrade.group;\n\n if (\n toVersions.length > 1 &&\n toValues.size > 1 &&\n newValue.length > 1 &&\n !typesGroup\n ) {\n logger.trace({ toVersions });\n logger.trace({ toValues });\n delete upgrade.commitMessageExtra;\n upgrade.recreateClosed = upgrade.recreateWhen !== 'never';\n } else if (\n newValue.length > 1 &&\n (upgrade.isDigest || upgrade.isPinDigest)\n ) {\n logger.trace({ newValue });\n delete upgrade.commitMessageExtra;\n upgrade.recreateClosed = upgrade.recreateWhen !== 'never';\n } else if (semver.valid(toVersions[0])) {\n upgrade.isRange = false;\n }\n config.upgrades.push(upgrade);\n if (upgrade.releaseTimestamp) {\n if (releaseTimestamp!) {\n const existingStamp = DateTime.fromISO(releaseTimestamp);\n const upgradeStamp = DateTime.fromISO(upgrade.releaseTimestamp);\n if (upgradeStamp > existingStamp) {\n releaseTimestamp = upgrade.releaseTimestamp;\n }\n } else {\n releaseTimestamp = upgrade.releaseTimestamp;\n }\n }\n }\n\n if (typesGroup) {\n if (config.upgrades[0].depName?.startsWith('@types/')) {\n logger.debug('Found @types - reversing upgrades to use depName in PR');\n sortTypesGroup(config.upgrades);\n config.upgrades[0].recreateClosed = false;\n config.hasTypes = true;\n }\n } else {\n config.upgrades.sort((a, b) => {\n if (a.fileReplacePosition && b.fileReplacePosition) {\n // This is because we need to replace from the bottom of the file up\n return a.fileReplacePosition > b.fileReplacePosition ? -1 : 1;\n }\n\n // make sure that ordering is consistent :\n // items without position will be first in the list.\n if (a.fileReplacePosition) {\n return 1;\n }\n if (b.fileReplacePosition) {\n return -1;\n }\n\n if (a.depName! < b.depName!) {\n return -1;\n }\n if (a.depName! > b.depName!) {\n return 1;\n }\n return 0;\n });\n }\n // Now assign first upgrade's config as branch config\n config = {\n ...config,\n ...config.upgrades[0],\n releaseTimestamp: releaseTimestamp!,\n }; // TODO: fixme (#9666)\n\n // Enable `semanticCommits` if one of the branches has it enabled\n if (\n config.upgrades.some((upgrade) => upgrade.semanticCommits === 'enabled')\n ) {\n config.semanticCommits = 'enabled';\n // Calculate the highest priority `semanticCommitType`\n let highestIndex = -1;\n for (const upgrade of config.upgrades) {\n if (upgrade.semanticCommits === 'enabled' && upgrade.semanticCommitType) {\n const priorityIndex = semanticCommitTypeByPriority.indexOf(\n upgrade.semanticCommitType,\n );\n\n if (priorityIndex > highestIndex) {\n highestIndex = priorityIndex;\n }\n }\n }\n\n if (highestIndex > -1) {\n config.semanticCommitType = semanticCommitTypeByPriority[highestIndex];\n }\n }\n\n // Use templates to generate strings\n const commitMessage = compileCommitMessage(config);\n compilePrTitle(config, commitMessage);\n\n config.dependencyDashboardApproval = config.upgrades.some(\n (upgrade) => upgrade.dependencyDashboardApproval,\n );\n config.dependencyDashboardPrApproval = config.upgrades.some(\n (upgrade) => upgrade.prCreation === 'approval',\n );\n config.prBodyColumns = [\n ...new Set(\n config.upgrades.reduce(\n (existing: string[], upgrade) =>\n existing.concat(upgrade.prBodyColumns!),\n [],\n ),\n ),\n ].filter(isNonEmptyString);\n // combine excludeCommitPaths for multiple manager experience\n const hasExcludeCommitPaths = config.upgrades.some(\n (u) => u.excludeCommitPaths && u.excludeCommitPaths.length > 0,\n );\n if (hasExcludeCommitPaths) {\n config.excludeCommitPaths = Object.keys(\n config.upgrades.reduce((acc: Record<string, boolean>, upgrade) => {\n if (upgrade.excludeCommitPaths) {\n upgrade.excludeCommitPaths.forEach((p) => {\n acc[p] = true;\n });\n }\n\n return acc;\n }, {}),\n );\n }\n\n config.automerge = config.upgrades.every((upgrade) => upgrade.automerge);\n // combine all labels\n config.labels = [\n ...new Set(\n config.upgrades\n .map((upgrade) => upgrade.labels ?? [])\n .reduce((a, b) => a.concat(b), []),\n ),\n ];\n config.addLabels = [\n ...new Set(\n config.upgrades\n .map((upgrade) => upgrade.addLabels ?? [])\n .reduce((a, b) => a.concat(b), []),\n ),\n ];\n\n if (config.upgrades.some((upgrade) => upgrade.updateType === 'major')) {\n config.updateType = 'major';\n }\n\n config.isBreaking = config.upgrades.some((upgrade) => upgrade.isBreaking);\n\n // explicit set `isLockFileMaintenance` for the branch for groups\n if (config.upgrades.some((upgrade) => upgrade.isLockFileMaintenance)) {\n config.isLockFileMaintenance = true;\n // istanbul ignore if: should never happen\n if (config.upgrades.some((upgrade) => !upgrade.isLockFileMaintenance)) {\n logger.warn(\n 'Grouping lockfile maintenance with other update types is not supported',\n );\n }\n }\n\n config.constraints = {};\n for (const upgrade of config.upgrades) {\n if (upgrade.constraints) {\n config.constraints = { ...config.constraints, ...upgrade.constraints };\n }\n }\n\n config.minimumGroupSize = getMinimumGroupSize(config.upgrades);\n // Set skipInstalls to false if any upgrade in the branch has it false\n config.skipInstalls = config.upgrades.every(\n (upgrade) => upgrade.skipInstalls !== false,\n );\n\n // Artifact updating will only be skipped if every upgrade wants to skip it.\n config.skipArtifactsUpdate = config.upgrades.every(\n (upgrade) => upgrade.skipArtifactsUpdate,\n );\n if (\n !config.skipArtifactsUpdate &&\n config.upgrades.some((upgrade) => upgrade.skipArtifactsUpdate)\n ) {\n logger.debug(\n {\n upgrades: config.upgrades.map((upgrade) => ({\n depName: upgrade.depName,\n skipArtifactsUpdate: upgrade.skipArtifactsUpdate,\n })),\n },\n 'Mixed `skipArtifactsUpdate` values in upgrades. Artifacts will be updated.',\n );\n }\n\n const tableRows = config.upgrades\n .map(getTableValues)\n .filter((x): x is string[] => isArray(x, isString));\n\n if (tableRows.length) {\n const table: string[][] = [];\n table.push(['datasource', 'package', 'from', 'to']);\n\n const seenRows = new Set<string>();\n\n for (const row of tableRows) {\n const key = safeStringify(row);\n if (seenRows.has(key)) {\n continue;\n }\n seenRows.add(key);\n table.push(row);\n }\n config.commitMessage += `\\n\\n${markdownTable(table)}\\n`;\n }\n const additionalReviewers = uniq(\n config.upgrades\n .map((upgrade) => upgrade.additionalReviewers)\n .flat()\n .filter(isNonEmptyString),\n );\n if (additionalReviewers.length > 0) {\n config.additionalReviewers = additionalReviewers;\n }\n return config;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","names":["template.compile","template\n .compile"],"sources":["../../../../lib/workers/repository/updates/generate.ts"],"sourcesContent":["import { isArray, isNonEmptyString, isString } from '@sindresorhus/is';\nimport { DateTime } from 'luxon';\nimport { markdownTable } from 'markdown-table';\nimport semver from 'semver';\nimport { mergeChildConfig } from '../../../config/index.ts';\nimport { CONFIG_SECRETS_EXPOSED } from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { newlineRegex, regEx } from '../../../util/regex.ts';\nimport { sanitize } from '../../../util/sanitize.ts';\nimport { safeStringify } from '../../../util/stringify.ts';\nimport * as template from '../../../util/template/index.ts';\nimport type { Timestamp } from '../../../util/timestamp.ts';\nimport { uniq } from '../../../util/uniq.ts';\nimport type { BranchConfig, BranchUpgradeConfig } from '../../types.ts';\nimport { CommitMessage } from '../model/commit-message.ts';\n\nfunction prettifyVersion(version: string): string {\n if (regEx(/^\\d/).test(version)) {\n return `v${version}`;\n }\n\n return version;\n}\n\nfunction isTypesGroup(branchUpgrades: BranchUpgradeConfig[]): boolean {\n return (\n branchUpgrades.some(({ depName }) => depName?.startsWith('@types/')) &&\n new Set(\n branchUpgrades.map(({ depName }) => depName?.replace(/^@types\\//, '')),\n ).size === 1\n );\n}\n\nfunction sortTypesGroup(upgrades: BranchUpgradeConfig[]): void {\n const isTypesUpgrade = ({ depName }: BranchUpgradeConfig): boolean =>\n !!depName?.startsWith('@types/');\n const regularUpgrades = upgrades.filter(\n (upgrade) => !isTypesUpgrade(upgrade),\n );\n const typesUpgrades = upgrades.filter(isTypesUpgrade);\n upgrades.splice(0, upgrades.length);\n upgrades.push(...regularUpgrades, ...typesUpgrades);\n}\n\nfunction getTableValues(upgrade: BranchUpgradeConfig): string[] | null {\n if (!upgrade.commitBodyTable) {\n return null;\n }\n const { datasource, packageName, depName, currentVersion, newVersion } =\n upgrade;\n const name = packageName ?? depName;\n if (datasource && name && currentVersion && newVersion) {\n return [datasource, name, currentVersion, newVersion];\n }\n logger.trace(\n {\n datasource,\n packageName,\n depName,\n currentVersion,\n newVersion,\n },\n 'Cannot determine table values',\n );\n return null;\n}\n\nfunction compileCommitMessage(upgrade: BranchUpgradeConfig): string {\n if (upgrade.semanticCommits === 'enabled' && !upgrade.commitMessagePrefix) {\n logger.trace('Upgrade has semantic commits enabled');\n let semanticPrefix = upgrade.semanticCommitType;\n if (upgrade.semanticCommitScope) {\n semanticPrefix += `(${template.compile(\n upgrade.semanticCommitScope,\n upgrade,\n )})`;\n }\n upgrade.commitMessagePrefix = CommitMessage.formatPrefix(semanticPrefix!);\n upgrade.toLowerCase =\n regEx(/[A-Z]/).exec(upgrade.semanticCommitType!) === null &&\n !upgrade.semanticCommitType!.startsWith(':');\n }\n\n // Compile a few times in case there are nested templates\n upgrade.commitMessage = template.compile(\n upgrade.commitMessage ?? '',\n upgrade,\n );\n upgrade.commitMessage = template.compile(upgrade.commitMessage, upgrade);\n upgrade.commitMessage = template.compile(upgrade.commitMessage, upgrade);\n // istanbul ignore if\n if (upgrade.commitMessage !== sanitize(upgrade.commitMessage)) {\n logger.debug(\n { branchName: upgrade.branchName },\n 'Secrets exposed in commit message',\n );\n throw new Error(CONFIG_SECRETS_EXPOSED);\n }\n upgrade.commitMessage = upgrade.commitMessage.trim(); // Trim exterior whitespace\n upgrade.commitMessage = upgrade.commitMessage.replace(regEx(/\\s+/g), ' '); // Trim extra whitespace inside string\n upgrade.commitMessage = upgrade.commitMessage.replace(\n regEx(/to vv(\\d)/),\n 'to v$1',\n );\n if (upgrade.toLowerCase && upgrade.commitMessageLowerCase !== 'never') {\n // We only need to lowercase the first line\n const splitMessage = upgrade.commitMessage.split(newlineRegex);\n splitMessage[0] = splitMessage[0].toLowerCase();\n upgrade.commitMessage = splitMessage.join('\\n');\n }\n\n logger.trace(`commitMessage: ${JSON.stringify(upgrade.commitMessage)}`);\n return upgrade.commitMessage;\n}\n\nfunction compilePrTitle(\n upgrade: BranchUpgradeConfig,\n commitMessage: string,\n): void {\n if (upgrade.prTitle) {\n upgrade.prTitle = template.compile(upgrade.prTitle, upgrade);\n upgrade.prTitle = template.compile(upgrade.prTitle, upgrade);\n upgrade.prTitle = template\n .compile(upgrade.prTitle, upgrade)\n .trim()\n .replace(regEx(/\\s+/g), ' ');\n // istanbul ignore if\n if (upgrade.prTitle !== sanitize(upgrade.prTitle)) {\n logger.debug(\n { branchName: upgrade.branchName },\n 'Secrets were exposed in PR title',\n );\n throw new Error(CONFIG_SECRETS_EXPOSED);\n }\n if (upgrade.toLowerCase && upgrade.commitMessageLowerCase !== 'never') {\n upgrade.prTitle = upgrade.prTitle.toLowerCase();\n }\n } else {\n [upgrade.prTitle] = commitMessage.split(newlineRegex);\n }\n if (!upgrade.prTitleStrict) {\n upgrade.prTitle += upgrade.hasBaseBranches ? ' ({{baseBranch}})' : '';\n if (upgrade.isGroup) {\n const hasVersionInTitle = !!semver.coerce(\n template.compile(upgrade.commitMessageExtra ?? '', upgrade),\n );\n if (!hasVersionInTitle) {\n upgrade.prTitle +=\n upgrade.updateType === 'major' && upgrade.separateMajorMinor\n ? ' (major)'\n : '';\n upgrade.prTitle +=\n upgrade.updateType === 'minor' && upgrade.separateMinorPatch\n ? ' (minor)'\n : '';\n upgrade.prTitle +=\n upgrade.updateType === 'patch' && upgrade.separateMinorPatch\n ? ' (patch)'\n : '';\n }\n }\n }\n // Compile again to allow for nested templates\n upgrade.prTitle = template.compile(upgrade.prTitle, upgrade);\n logger.trace(`prTitle: ${JSON.stringify(upgrade.prTitle)}`);\n}\n\nfunction getMinimumGroupSize(upgrades: BranchUpgradeConfig[]): number {\n let minimumGroupSize = 1;\n const groupSizes = new Set<number>();\n\n for (const upg of upgrades) {\n if (upg.minimumGroupSize) {\n groupSizes.add(upg.minimumGroupSize);\n if (minimumGroupSize < upg.minimumGroupSize) {\n minimumGroupSize = upg.minimumGroupSize;\n }\n }\n }\n\n if (groupSizes.size > 1) {\n logger.debug(\n 'Multiple minimumGroupSize values found for this branch, using highest.',\n );\n }\n\n return minimumGroupSize;\n}\n\n// Sorted by priority, from low to high\nconst semanticCommitTypeByPriority = ['chore', 'ci', 'build', 'fix', 'feat'];\n\nexport function generateBranchConfig(\n upgrades: BranchUpgradeConfig[],\n): BranchConfig {\n let branchUpgrades = upgrades;\n if (!branchUpgrades.every((upgrade) => upgrade.pendingChecks)) {\n // If the branch isn't pending, then remove any upgrades within which *are*\n logger.debug(\n { branch: branchUpgrades[0].branchName },\n 'Branch is not pending, removing pending upgrades',\n );\n branchUpgrades = branchUpgrades.filter((upgrade) => !upgrade.pendingChecks);\n }\n logger.trace({ config: branchUpgrades }, 'generateBranchConfig');\n let config: BranchConfig = {\n upgrades: [],\n } as any;\n const hasGroupName = branchUpgrades[0].groupName !== null;\n logger.trace(`hasGroupName: ${hasGroupName}`);\n // Use group settings only if multiple upgrades or lazy grouping is disabled\n const depNames: string[] = [];\n const newValue: string[] = [];\n const toVersions: string[] = [];\n const toValues = new Set<string>();\n const depTypes = new Set<string>();\n for (const upg of branchUpgrades) {\n upg.recreateClosed = upg.recreateWhen === 'always';\n\n if (upg.currentDigest) {\n upg.currentDigestShort =\n upg.currentDigestShort ??\n upg.currentDigest.replace('sha256:', '').substring(0, 7);\n }\n if (upg.newDigest) {\n upg.newDigestShort =\n upg.newDigestShort ??\n upg.newDigest.replace('sha256:', '').substring(0, 7);\n }\n if (upg.isDigest || upg.isPinDigest) {\n upg.displayFrom = upg.currentDigestShort;\n upg.displayTo = upg.newDigestShort;\n } else if (upg.isLockfileUpdate) {\n upg.displayFrom = upg.currentVersion;\n upg.displayTo = upg.newVersion;\n } else if (!upg.isLockFileMaintenance) {\n upg.displayFrom = upg.currentValue;\n upg.displayTo = upg.newValue;\n }\n\n if (upg.isLockFileMaintenance) {\n upg.recreateClosed = upg.recreateWhen !== 'never';\n }\n upg.displayFrom ??= '';\n upg.displayTo ??= '';\n if (!depNames.includes(upg.depName!)) {\n depNames.push(upg.depName!);\n }\n if (!toVersions.includes(upg.newVersion!)) {\n toVersions.push(upg.newVersion!);\n }\n toValues.add(upg.newValue!);\n if (upg.depType) {\n depTypes.add(upg.depType);\n }\n // prettify newVersion and newMajor for printing\n if (upg.newVersion) {\n upg.prettyNewVersion = prettifyVersion(upg.newVersion);\n }\n if (upg.newMajor) {\n upg.prettyNewMajor = `v${upg.newMajor}`;\n }\n if (upg.commitMessageExtra) {\n const extra = template.compile(upg.commitMessageExtra, upg);\n if (!newValue.includes(extra)) {\n newValue.push(extra);\n }\n }\n }\n const groupEligible =\n depNames.length > 1 ||\n toVersions.length > 1 ||\n (!toVersions[0] && newValue.length > 1);\n\n const typesGroup =\n depNames.length > 1 && !hasGroupName && isTypesGroup(branchUpgrades);\n logger.trace(`groupEligible: ${groupEligible}`);\n const singleUpdateGroup =\n hasGroupName && !groupEligible && !branchUpgrades[0].sharedVariableName;\n logger.trace(`singleUpdateGroup: ${singleUpdateGroup}`);\n const useGroupSettings =\n hasGroupName &&\n (groupEligible ||\n (singleUpdateGroup && branchUpgrades[0].groupSingleUpdates === true));\n logger.trace(`useGroupSettings: ${useGroupSettings}`);\n let releaseTimestamp: Timestamp;\n\n if (depTypes.size) {\n config.depTypes = Array.from(depTypes).sort();\n }\n\n for (const branchUpgrade of branchUpgrades) {\n let upgrade: BranchUpgradeConfig = { ...branchUpgrade };\n\n upgrade.depTypes = config.depTypes;\n\n // needs to be done for each upgrade, as we reorder them below\n if (newValue.length > 1 && !groupEligible) {\n upgrade.commitMessageExtra = `to v${toVersions[0]}`;\n }\n\n const pendingVersionsLength = upgrade.pendingVersions?.length;\n if (pendingVersionsLength) {\n upgrade.displayPending = `\\`${upgrade.pendingVersions!.at(-1)!}\\``;\n if (pendingVersionsLength > 1) {\n upgrade.displayPending += ` (+${pendingVersionsLength - 1})`;\n }\n } else {\n upgrade.displayPending = '';\n }\n upgrade.prettyDepType =\n upgrade.prettyDepType ?? upgrade.depType ?? 'dependency';\n if (useGroupSettings) {\n // Now overwrite original config with group config\n upgrade = mergeChildConfig(upgrade, upgrade.group);\n upgrade.isGroup = true;\n if (singleUpdateGroup) {\n // Single update using group name instead of dependency name,\n // so remove version from commit message.\n delete upgrade.commitMessageExtra;\n upgrade.recreateClosed = upgrade.recreateWhen !== 'never';\n }\n } else {\n delete upgrade.groupName;\n }\n // Delete group config regardless of whether it was applied\n delete upgrade.group;\n\n if (\n toVersions.length > 1 &&\n toValues.size > 1 &&\n newValue.length > 1 &&\n !typesGroup\n ) {\n logger.trace({ toVersions });\n logger.trace({ toValues });\n delete upgrade.commitMessageExtra;\n upgrade.recreateClosed = upgrade.recreateWhen !== 'never';\n } else if (\n newValue.length > 1 &&\n (upgrade.isDigest || upgrade.isPinDigest)\n ) {\n logger.trace({ newValue });\n delete upgrade.commitMessageExtra;\n upgrade.recreateClosed = upgrade.recreateWhen !== 'never';\n } else if (semver.valid(toVersions[0])) {\n upgrade.isRange = false;\n }\n config.upgrades.push(upgrade);\n if (upgrade.releaseTimestamp) {\n if (releaseTimestamp!) {\n const existingStamp = DateTime.fromISO(releaseTimestamp);\n const upgradeStamp = DateTime.fromISO(upgrade.releaseTimestamp);\n if (upgradeStamp > existingStamp) {\n releaseTimestamp = upgrade.releaseTimestamp;\n }\n } else {\n releaseTimestamp = upgrade.releaseTimestamp;\n }\n }\n }\n\n if (typesGroup) {\n if (config.upgrades[0].depName?.startsWith('@types/')) {\n logger.debug('Found @types - reversing upgrades to use depName in PR');\n sortTypesGroup(config.upgrades);\n config.upgrades[0].recreateClosed = false;\n config.hasTypes = true;\n }\n } else {\n config.upgrades.sort((a, b) => {\n if (a.fileReplacePosition && b.fileReplacePosition) {\n // This is because we need to replace from the bottom of the file up\n return a.fileReplacePosition > b.fileReplacePosition ? -1 : 1;\n }\n\n // make sure that ordering is consistent :\n // items without position will be first in the list.\n if (a.fileReplacePosition) {\n return 1;\n }\n if (b.fileReplacePosition) {\n return -1;\n }\n\n if (a.depName! < b.depName!) {\n return -1;\n }\n if (a.depName! > b.depName!) {\n return 1;\n }\n return 0;\n });\n }\n // Now assign first upgrade's config as branch config\n config = {\n ...config,\n ...config.upgrades[0],\n releaseTimestamp: releaseTimestamp!,\n }; // TODO: fixme (#9666)\n\n // Enable `semanticCommits` if one of the branches has it enabled\n if (\n config.upgrades.some((upgrade) => upgrade.semanticCommits === 'enabled')\n ) {\n config.semanticCommits = 'enabled';\n // Calculate the highest priority `semanticCommitType`\n let highestIndex = -1;\n for (const upgrade of config.upgrades) {\n if (upgrade.semanticCommits === 'enabled' && upgrade.semanticCommitType) {\n const priorityIndex = semanticCommitTypeByPriority.indexOf(\n upgrade.semanticCommitType,\n );\n\n if (priorityIndex > highestIndex) {\n highestIndex = priorityIndex;\n }\n }\n }\n\n if (highestIndex > -1) {\n config.semanticCommitType = semanticCommitTypeByPriority[highestIndex];\n }\n }\n\n // Use templates to generate strings\n const commitMessage = compileCommitMessage(config);\n compilePrTitle(config, commitMessage);\n\n config.dependencyDashboardApproval = config.upgrades.some(\n (upgrade) => upgrade.dependencyDashboardApproval,\n );\n config.dependencyDashboardPrApproval = config.upgrades.some(\n (upgrade) => upgrade.prCreation === 'approval',\n );\n config.prBodyColumns = [\n ...new Set(\n config.upgrades.reduce(\n (existing: string[], upgrade) =>\n existing.concat(upgrade.prBodyColumns!),\n [],\n ),\n ),\n ].filter(isNonEmptyString);\n // combine excludeCommitPaths for multiple manager experience\n const hasExcludeCommitPaths = config.upgrades.some(\n (u) => u.excludeCommitPaths && u.excludeCommitPaths.length > 0,\n );\n if (hasExcludeCommitPaths) {\n config.excludeCommitPaths = Object.keys(\n config.upgrades.reduce((acc: Record<string, boolean>, upgrade) => {\n if (upgrade.excludeCommitPaths) {\n upgrade.excludeCommitPaths.forEach((p) => {\n acc[p] = true;\n });\n }\n\n return acc;\n }, {}),\n );\n }\n\n config.automerge = config.upgrades.every((upgrade) => upgrade.automerge);\n // combine all labels\n config.labels = [\n ...new Set(\n config.upgrades\n .map((upgrade) => upgrade.labels ?? [])\n .reduce((a, b) => a.concat(b), []),\n ),\n ];\n config.addLabels = [\n ...new Set(\n config.upgrades\n .map((upgrade) => upgrade.addLabels ?? [])\n .reduce((a, b) => a.concat(b), []),\n ),\n ];\n\n if (config.upgrades.some((upgrade) => upgrade.updateType === 'major')) {\n config.updateType = 'major';\n }\n\n config.isBreaking = config.upgrades.some((upgrade) => upgrade.isBreaking);\n\n // explicit set `isLockFileMaintenance` for the branch for groups\n if (config.upgrades.some((upgrade) => upgrade.isLockFileMaintenance)) {\n config.isLockFileMaintenance = true;\n // istanbul ignore if: should never happen\n if (config.upgrades.some((upgrade) => !upgrade.isLockFileMaintenance)) {\n logger.warn(\n 'Grouping lockfile maintenance with other update types is not supported',\n );\n }\n }\n\n config.constraints = {};\n for (const upgrade of config.upgrades) {\n if (upgrade.constraints) {\n config.constraints = { ...config.constraints, ...upgrade.constraints };\n }\n }\n\n config.minimumGroupSize = getMinimumGroupSize(config.upgrades);\n // Set skipInstalls to false if any upgrade in the branch has it false\n config.skipInstalls = config.upgrades.every(\n (upgrade) => upgrade.skipInstalls !== false,\n );\n\n // Artifact updating will only be skipped if every upgrade wants to skip it.\n config.skipArtifactsUpdate = config.upgrades.every(\n (upgrade) => upgrade.skipArtifactsUpdate,\n );\n if (\n !config.skipArtifactsUpdate &&\n config.upgrades.some((upgrade) => upgrade.skipArtifactsUpdate)\n ) {\n logger.debug(\n {\n upgrades: config.upgrades.map((upgrade) => ({\n depName: upgrade.depName,\n skipArtifactsUpdate: upgrade.skipArtifactsUpdate,\n })),\n },\n 'Mixed `skipArtifactsUpdate` values in upgrades. Artifacts will be updated.',\n );\n }\n\n const tableRows = config.upgrades\n .map(getTableValues)\n .filter((x): x is string[] => isArray(x, isString));\n\n if (tableRows.length) {\n const table: string[][] = [];\n table.push(['datasource', 'package', 'from', 'to']);\n\n const seenRows = new Set<string>();\n\n for (const row of tableRows) {\n const key = safeStringify(row);\n if (seenRows.has(key)) {\n continue;\n }\n seenRows.add(key);\n table.push(row);\n }\n config.commitMessage += `\\n\\n${markdownTable(table)}\\n`;\n }\n const additionalReviewers = uniq(\n config.upgrades\n .map((upgrade) => upgrade.additionalReviewers)\n .flat()\n .filter(isNonEmptyString),\n );\n if (additionalReviewers.length > 0) {\n config.additionalReviewers = additionalReviewers;\n }\n return config;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAgBA,SAAS,gBAAgB,SAAyB;CAChD,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,OAAO,GAC3B,OAAO,IAAI;CAGb,OAAO;AACT;AAEA,SAAS,aAAa,gBAAgD;CACpE,OACE,eAAe,MAAM,EAAE,cAAc,SAAS,WAAW,SAAS,CAAC,KACnE,IAAI,IACF,eAAe,KAAK,EAAE,cAAc,SAAS,QAAQ,aAAa,EAAE,CAAC,CACvE,CAAC,CAAC,SAAS;AAEf;AAEA,SAAS,eAAe,UAAuC;CAC7D,MAAM,kBAAkB,EAAE,cACxB,CAAC,CAAC,SAAS,WAAW,SAAS;CACjC,MAAM,kBAAkB,SAAS,QAC9B,YAAY,CAAC,eAAe,OAAO,CACtC;CACA,MAAM,gBAAgB,SAAS,OAAO,cAAc;CACpD,SAAS,OAAO,GAAG,SAAS,MAAM;CAClC,SAAS,KAAK,GAAG,iBAAiB,GAAG,aAAa;AACpD;AAEA,SAAS,eAAe,SAA+C;CACrE,IAAI,CAAC,QAAQ,iBACX,OAAO;CAET,MAAM,EAAE,YAAY,aAAa,SAAS,gBAAgB,eACxD;CACF,MAAM,OAAO,eAAe;CAC5B,IAAI,cAAc,QAAQ,kBAAkB,YAC1C,OAAO;EAAC;EAAY;EAAM;EAAgB;CAAU;CAEtD,OAAO,MACL;EACE;EACA;EACA;EACA;EACA;CACF,GACA,+BACF;CACA,OAAO;AACT;AAEA,SAAS,qBAAqB,SAAsC;CAClE,IAAI,QAAQ,oBAAoB,aAAa,CAAC,QAAQ,qBAAqB;EACzE,OAAO,MAAM,sCAAsC;EACnD,IAAI,iBAAiB,QAAQ;EAC7B,IAAI,QAAQ,qBACV,kBAAkB,IAAIA,QACpB,QAAQ,qBACR,OACF,EAAE;EAEJ,QAAQ,sBAAsB,cAAc,aAAa,cAAe;EACxE,QAAQ,cACN,MAAM,OAAO,CAAC,CAAC,KAAK,QAAQ,kBAAmB,MAAM,QACrD,CAAC,QAAQ,mBAAoB,WAAW,GAAG;CAC/C;CAGA,QAAQ,gBAAgBA,QACtB,QAAQ,iBAAiB,IACzB,OACF;CACA,QAAQ,gBAAgBA,QAAiB,QAAQ,eAAe,OAAO;CACvE,QAAQ,gBAAgBA,QAAiB,QAAQ,eAAe,OAAO;;CAEvE,IAAI,QAAQ,kBAAkB,SAAS,QAAQ,aAAa,GAAG;EAC7D,OAAO,MACL,EAAE,YAAY,QAAQ,WAAW,GACjC,mCACF;EACA,MAAM,IAAI,MAAM,sBAAsB;CACxC;CACA,QAAQ,gBAAgB,QAAQ,cAAc,KAAK;CACnD,QAAQ,gBAAgB,QAAQ,cAAc,QAAQ,MAAM,MAAM,GAAG,GAAG;CACxE,QAAQ,gBAAgB,QAAQ,cAAc,QAC5C,MAAM,WAAW,GACjB,QACF;CACA,IAAI,QAAQ,eAAe,QAAQ,2BAA2B,SAAS;EAErE,MAAM,eAAe,QAAQ,cAAc,MAAM,YAAY;EAC7D,aAAa,KAAK,aAAa,EAAE,CAAC,YAAY;EAC9C,QAAQ,gBAAgB,aAAa,KAAK,IAAI;CAChD;CAEA,OAAO,MAAM,kBAAkB,KAAK,UAAU,QAAQ,aAAa,GAAG;CACtE,OAAO,QAAQ;AACjB;AAEA,SAAS,eACP,SACA,eACM;CACN,IAAI,QAAQ,SAAS;EACnB,QAAQ,UAAUA,QAAiB,QAAQ,SAAS,OAAO;EAC3D,QAAQ,UAAUA,QAAiB,QAAQ,SAAS,OAAO;EAC3D,QAAQ,UAAUC,QACP,QAAQ,SAAS,OAAO,CAAC,CACjC,KAAK,CAAC,CACN,QAAQ,MAAM,MAAM,GAAG,GAAG;;EAE7B,IAAI,QAAQ,YAAY,SAAS,QAAQ,OAAO,GAAG;GACjD,OAAO,MACL,EAAE,YAAY,QAAQ,WAAW,GACjC,kCACF;GACA,MAAM,IAAI,MAAM,sBAAsB;EACxC;EACA,IAAI,QAAQ,eAAe,QAAQ,2BAA2B,SAC5D,QAAQ,UAAU,QAAQ,QAAQ,YAAY;CAElD,OACE,CAAC,QAAQ,WAAW,cAAc,MAAM,YAAY;CAEtD,IAAI,CAAC,QAAQ,eAAe;EAC1B,QAAQ,WAAW,QAAQ,kBAAkB,sBAAsB;EACnE,IAAI,QAAQ;OAIN,CAAC,CAHsB,CAAC,OAAO,OACjCD,QAAiB,QAAQ,sBAAsB,IAAI,OAAO,CAC5D,GACwB;IACtB,QAAQ,WACN,QAAQ,eAAe,WAAW,QAAQ,qBACtC,aACA;IACN,QAAQ,WACN,QAAQ,eAAe,WAAW,QAAQ,qBACtC,aACA;IACN,QAAQ,WACN,QAAQ,eAAe,WAAW,QAAQ,qBACtC,aACA;GACR;;CAEJ;CAEA,QAAQ,UAAUA,QAAiB,QAAQ,SAAS,OAAO;CAC3D,OAAO,MAAM,YAAY,KAAK,UAAU,QAAQ,OAAO,GAAG;AAC5D;AAEA,SAAS,oBAAoB,UAAyC;CACpE,IAAI,mBAAmB;CACvB,MAAM,6BAAa,IAAI,IAAY;CAEnC,KAAK,MAAM,OAAO,UAChB,IAAI,IAAI,kBAAkB;EACxB,WAAW,IAAI,IAAI,gBAAgB;EACnC,IAAI,mBAAmB,IAAI,kBACzB,mBAAmB,IAAI;CAE3B;CAGF,IAAI,WAAW,OAAO,GACpB,OAAO,MACL,wEACF;CAGF,OAAO;AACT;AAGA,MAAM,+BAA+B;CAAC;CAAS;CAAM;CAAS;CAAO;AAAM;AAE3E,SAAgB,qBACd,UACc;CACd,IAAI,iBAAiB;CACrB,IAAI,CAAC,eAAe,OAAO,YAAY,QAAQ,aAAa,GAAG;EAE7D,OAAO,MACL,EAAE,QAAQ,eAAe,EAAE,CAAC,WAAW,GACvC,kDACF;EACA,iBAAiB,eAAe,QAAQ,YAAY,CAAC,QAAQ,aAAa;CAC5E;CACA,OAAO,MAAM,EAAE,QAAQ,eAAe,GAAG,sBAAsB;CAC/D,IAAI,SAAuB,EACzB,UAAU,CAAC,EACb;CACA,MAAM,eAAe,eAAe,EAAE,CAAC,cAAc;CACrD,OAAO,MAAM,iBAAiB,cAAc;CAE5C,MAAM,WAAqB,CAAC;CAC5B,MAAM,WAAqB,CAAC;CAC5B,MAAM,aAAuB,CAAC;CAC9B,MAAM,2BAAW,IAAI,IAAY;CACjC,MAAM,2BAAW,IAAI,IAAY;CACjC,KAAK,MAAM,OAAO,gBAAgB;EAChC,IAAI,iBAAiB,IAAI,iBAAiB;EAE1C,IAAI,IAAI,eACN,IAAI,qBACF,IAAI,sBACJ,IAAI,cAAc,QAAQ,WAAW,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC;EAE3D,IAAI,IAAI,WACN,IAAI,iBACF,IAAI,kBACJ,IAAI,UAAU,QAAQ,WAAW,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC;EAEvD,IAAI,IAAI,YAAY,IAAI,aAAa;GACnC,IAAI,cAAc,IAAI;GACtB,IAAI,YAAY,IAAI;EACtB,OAAO,IAAI,IAAI,kBAAkB;GAC/B,IAAI,cAAc,IAAI;GACtB,IAAI,YAAY,IAAI;EACtB,OAAO,IAAI,CAAC,IAAI,uBAAuB;GACrC,IAAI,cAAc,IAAI;GACtB,IAAI,YAAY,IAAI;EACtB;EAEA,IAAI,IAAI,uBACN,IAAI,iBAAiB,IAAI,iBAAiB;EAE5C,IAAI,gBAAgB;EACpB,IAAI,cAAc;EAClB,IAAI,CAAC,SAAS,SAAS,IAAI,OAAQ,GACjC,SAAS,KAAK,IAAI,OAAQ;EAE5B,IAAI,CAAC,WAAW,SAAS,IAAI,UAAW,GACtC,WAAW,KAAK,IAAI,UAAW;EAEjC,SAAS,IAAI,IAAI,QAAS;EAC1B,IAAI,IAAI,SACN,SAAS,IAAI,IAAI,OAAO;EAG1B,IAAI,IAAI,YACN,IAAI,mBAAmB,gBAAgB,IAAI,UAAU;EAEvD,IAAI,IAAI,UACN,IAAI,iBAAiB,IAAI,IAAI;EAE/B,IAAI,IAAI,oBAAoB;GAC1B,MAAM,QAAQA,QAAiB,IAAI,oBAAoB,GAAG;GAC1D,IAAI,CAAC,SAAS,SAAS,KAAK,GAC1B,SAAS,KAAK,KAAK;EAEvB;CACF;CACA,MAAM,gBACJ,SAAS,SAAS,KAClB,WAAW,SAAS,KACnB,CAAC,WAAW,MAAM,SAAS,SAAS;CAEvC,MAAM,aACJ,SAAS,SAAS,KAAK,CAAC,gBAAgB,aAAa,cAAc;CACrE,OAAO,MAAM,kBAAkB,eAAe;CAC9C,MAAM,oBACJ,gBAAgB,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;CACvD,OAAO,MAAM,sBAAsB,mBAAmB;CACtD,MAAM,mBACJ,iBACC,iBACE,qBAAqB,eAAe,EAAE,CAAC,uBAAuB;CACnE,OAAO,MAAM,qBAAqB,kBAAkB;CACpD,IAAI;CAEJ,IAAI,SAAS,MACX,OAAO,WAAW,MAAM,KAAK,QAAQ,CAAC,CAAC,KAAK;CAG9C,KAAK,MAAM,iBAAiB,gBAAgB;EAC1C,IAAI,UAA+B,EAAE,GAAG,cAAc;EAEtD,QAAQ,WAAW,OAAO;EAG1B,IAAI,SAAS,SAAS,KAAK,CAAC,eAC1B,QAAQ,qBAAqB,OAAO,WAAW;EAGjD,MAAM,wBAAwB,QAAQ,iBAAiB;EACvD,IAAI,uBAAuB;GACzB,QAAQ,iBAAiB,KAAK,QAAQ,gBAAiB,GAAG,EAAE,EAAG;GAC/D,IAAI,wBAAwB,GAC1B,QAAQ,kBAAkB,MAAM,wBAAwB,EAAE;EAE9D,OACE,QAAQ,iBAAiB;EAE3B,QAAQ,gBACN,QAAQ,iBAAiB,QAAQ,WAAW;EAC9C,IAAI,kBAAkB;GAEpB,UAAU,iBAAiB,SAAS,QAAQ,KAAK;GACjD,QAAQ,UAAU;GAClB,IAAI,mBAAmB;IAGrB,OAAO,QAAQ;IACf,QAAQ,iBAAiB,QAAQ,iBAAiB;GACpD;EACF,OACE,OAAO,QAAQ;EAGjB,OAAO,QAAQ;EAEf,IACE,WAAW,SAAS,KACpB,SAAS,OAAO,KAChB,SAAS,SAAS,KAClB,CAAC,YACD;GACA,OAAO,MAAM,EAAE,WAAW,CAAC;GAC3B,OAAO,MAAM,EAAE,SAAS,CAAC;GACzB,OAAO,QAAQ;GACf,QAAQ,iBAAiB,QAAQ,iBAAiB;EACpD,OAAO,IACL,SAAS,SAAS,MACjB,QAAQ,YAAY,QAAQ,cAC7B;GACA,OAAO,MAAM,EAAE,SAAS,CAAC;GACzB,OAAO,QAAQ;GACf,QAAQ,iBAAiB,QAAQ,iBAAiB;EACpD,OAAO,IAAI,OAAO,MAAM,WAAW,EAAE,GACnC,QAAQ,UAAU;EAEpB,OAAO,SAAS,KAAK,OAAO;EAC5B,IAAI,QAAQ,kBACV,IAAI,kBAAmB;GACrB,MAAM,gBAAgB,SAAS,QAAQ,gBAAgB;GAEvD,IADqB,SAAS,QAAQ,QAAQ,gBAC/B,IAAI,eACjB,mBAAmB,QAAQ;EAE/B,OACE,mBAAmB,QAAQ;CAGjC;CAEA,IAAI;MACE,OAAO,SAAS,EAAE,CAAC,SAAS,WAAW,SAAS,GAAG;GACrD,OAAO,MAAM,wDAAwD;GACrE,eAAe,OAAO,QAAQ;GAC9B,OAAO,SAAS,EAAE,CAAC,iBAAiB;GACpC,OAAO,WAAW;EACpB;QAEA,OAAO,SAAS,MAAM,GAAG,MAAM;EAC7B,IAAI,EAAE,uBAAuB,EAAE,qBAE7B,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,KAAK;EAK9D,IAAI,EAAE,qBACJ,OAAO;EAET,IAAI,EAAE,qBACJ,OAAO;EAGT,IAAI,EAAE,UAAW,EAAE,SACjB,OAAO;EAET,IAAI,EAAE,UAAW,EAAE,SACjB,OAAO;EAET,OAAO;CACT,CAAC;CAGH,SAAS;EACP,GAAG;EACH,GAAG,OAAO,SAAS;EACD;CACpB;CAGA,IACE,OAAO,SAAS,MAAM,YAAY,QAAQ,oBAAoB,SAAS,GACvE;EACA,OAAO,kBAAkB;EAEzB,IAAI,eAAe;EACnB,KAAK,MAAM,WAAW,OAAO,UAC3B,IAAI,QAAQ,oBAAoB,aAAa,QAAQ,oBAAoB;GACvE,MAAM,gBAAgB,6BAA6B,QACjD,QAAQ,kBACV;GAEA,IAAI,gBAAgB,cAClB,eAAe;EAEnB;EAGF,IAAI,eAAe,IACjB,OAAO,qBAAqB,6BAA6B;CAE7D;CAGA,MAAM,gBAAgB,qBAAqB,MAAM;CACjD,eAAe,QAAQ,aAAa;CAEpC,OAAO,8BAA8B,OAAO,SAAS,MAClD,YAAY,QAAQ,2BACvB;CACA,OAAO,gCAAgC,OAAO,SAAS,MACpD,YAAY,QAAQ,eAAe,UACtC;CACA,OAAO,gBAAgB,CACrB,GAAG,IAAI,IACL,OAAO,SAAS,QACb,UAAoB,YACnB,SAAS,OAAO,QAAQ,aAAc,GACxC,CAAC,CACH,CACF,CACF,CAAC,CAAC,OAAO,gBAAgB;CAKzB,IAH8B,OAAO,SAAS,MAC3C,MAAM,EAAE,sBAAsB,EAAE,mBAAmB,SAAS,CAEvC,GACtB,OAAO,qBAAqB,OAAO,KACjC,OAAO,SAAS,QAAQ,KAA8B,YAAY;EAChE,IAAI,QAAQ,oBACV,QAAQ,mBAAmB,SAAS,MAAM;GACxC,IAAI,KAAK;EACX,CAAC;EAGH,OAAO;CACT,GAAG,CAAC,CAAC,CACP;CAGF,OAAO,YAAY,OAAO,SAAS,OAAO,YAAY,QAAQ,SAAS;CAEvE,OAAO,SAAS,CACd,GAAG,IAAI,IACL,OAAO,SACJ,KAAK,YAAY,QAAQ,UAAU,CAAC,CAAC,CAAC,CACtC,QAAQ,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CACrC,CACF;CACA,OAAO,YAAY,CACjB,GAAG,IAAI,IACL,OAAO,SACJ,KAAK,YAAY,QAAQ,aAAa,CAAC,CAAC,CAAC,CACzC,QAAQ,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CACrC,CACF;CAEA,IAAI,OAAO,SAAS,MAAM,YAAY,QAAQ,eAAe,OAAO,GAClE,OAAO,aAAa;CAGtB,OAAO,aAAa,OAAO,SAAS,MAAM,YAAY,QAAQ,UAAU;CAGxE,IAAI,OAAO,SAAS,MAAM,YAAY,QAAQ,qBAAqB,GAAG;EACpE,OAAO,wBAAwB;;EAE/B,IAAI,OAAO,SAAS,MAAM,YAAY,CAAC,QAAQ,qBAAqB,GAClE,OAAO,KACL,wEACF;CAEJ;CAEA,OAAO,cAAc,CAAC;CACtB,KAAK,MAAM,WAAW,OAAO,UAC3B,IAAI,QAAQ,aACV,OAAO,cAAc;EAAE,GAAG,OAAO;EAAa,GAAG,QAAQ;CAAY;CAIzE,OAAO,mBAAmB,oBAAoB,OAAO,QAAQ;CAE7D,OAAO,eAAe,OAAO,SAAS,OACnC,YAAY,QAAQ,iBAAiB,KACxC;CAGA,OAAO,sBAAsB,OAAO,SAAS,OAC1C,YAAY,QAAQ,mBACvB;CACA,IACE,CAAC,OAAO,uBACR,OAAO,SAAS,MAAM,YAAY,QAAQ,mBAAmB,GAE7D,OAAO,MACL,EACE,UAAU,OAAO,SAAS,KAAK,aAAa;EAC1C,SAAS,QAAQ;EACjB,qBAAqB,QAAQ;CAC/B,EAAE,EACJ,GACA,4EACF;CAGF,MAAM,YAAY,OAAO,SACtB,IAAI,cAAc,CAAC,CACnB,QAAQ,MAAqB,QAAQ,GAAG,QAAQ,CAAC;CAEpD,IAAI,UAAU,QAAQ;EACpB,MAAM,QAAoB,CAAC;EAC3B,MAAM,KAAK;GAAC;GAAc;GAAW;GAAQ;EAAI,CAAC;EAElD,MAAM,2BAAW,IAAI,IAAY;EAEjC,KAAK,MAAM,OAAO,WAAW;GAC3B,MAAM,MAAM,cAAc,GAAG;GAC7B,IAAI,SAAS,IAAI,GAAG,GAClB;GAEF,SAAS,IAAI,GAAG;GAChB,MAAM,KAAK,GAAG;EAChB;EACA,OAAO,iBAAiB,OAAO,cAAc,KAAK,EAAE;CACtD;CACA,MAAM,sBAAsB,KAC1B,OAAO,SACJ,KAAK,YAAY,QAAQ,mBAAmB,CAAC,CAC7C,KAAK,CAAC,CACN,OAAO,gBAAgB,CAC5B;CACA,IAAI,oBAAoB,SAAS,GAC/B,OAAO,sBAAsB;CAE/B,OAAO;AACT"}
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.263.0",
4
+ "version": "43.263.2",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -269,7 +269,7 @@
269
269
  "lint-staged": "17.0.8",
270
270
  "markdownlint-cli2": "0.23.0",
271
271
  "markdownlint-cli2-formatter-template": "0.0.4",
272
- "memfs": "4.59.0",
272
+ "memfs": "4.61.0",
273
273
  "nock": "14.0.16",
274
274
  "npm-run-all2": "8.0.4",
275
275
  "nyc": "18.0.0",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$id": "https://docs.renovatebot.com/renovate-schema.json",
3
- "title": "JSON schema for Renovate 43.263.0 config files (https://renovatebot.com/)",
3
+ "title": "JSON schema for Renovate 43.263.2 config files (https://renovatebot.com/)",
4
4
  "$schema": "http://json-schema.org/draft-07/schema#",
5
- "x-renovate-version": "43.263.0",
5
+ "x-renovate-version": "43.263.2",
6
6
  "allowComments": true,
7
7
  "type": "object",
8
8
  "definitions": {