renovate 42.0.0-next.1 → 42.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (782) hide show
  1. package/dist/config/app-strings.d.ts +2 -1
  2. package/dist/config/app-strings.js +10 -2
  3. package/dist/config/app-strings.js.map +1 -1
  4. package/dist/config/decrypt/bcpgp.d.ts +1 -0
  5. package/dist/config/decrypt/bcpgp.js +57 -0
  6. package/dist/config/decrypt/bcpgp.js.map +1 -0
  7. package/dist/config/decrypt/openpgp.js +0 -4
  8. package/dist/config/decrypt/openpgp.js.map +1 -1
  9. package/dist/config/decrypt.d.ts +1 -1
  10. package/dist/config/decrypt.js +9 -26
  11. package/dist/config/decrypt.js.map +1 -1
  12. package/dist/config/global.js +1 -0
  13. package/dist/config/global.js.map +1 -1
  14. package/dist/config/migrations/custom/schedule-migration.js +9 -11
  15. package/dist/config/migrations/custom/schedule-migration.js.map +1 -1
  16. package/dist/config/migrations/custom/unpublish-safe-migration.js +3 -2
  17. package/dist/config/migrations/custom/unpublish-safe-migration.js.map +1 -1
  18. package/dist/config/options/index.js +49 -2
  19. package/dist/config/options/index.js.map +1 -1
  20. package/dist/config/presets/common.js +1 -0
  21. package/dist/config/presets/common.js.map +1 -1
  22. package/dist/config/presets/internal/abandonments.js +4 -1
  23. package/dist/config/presets/internal/abandonments.js.map +1 -1
  24. package/dist/config/presets/internal/config.js +15 -0
  25. package/dist/config/presets/internal/config.js.map +1 -1
  26. package/dist/config/presets/internal/custom-managers.js +2 -2
  27. package/dist/config/presets/internal/custom-managers.js.map +1 -1
  28. package/dist/config/presets/internal/default.js +12 -1
  29. package/dist/config/presets/internal/default.js.map +1 -1
  30. package/dist/config/presets/internal/group.js +13 -0
  31. package/dist/config/presets/internal/group.js.map +1 -1
  32. package/dist/config/presets/internal/npm.js +1 -8
  33. package/dist/config/presets/internal/npm.js.map +1 -1
  34. package/dist/config/presets/internal/packages.js +5 -1
  35. package/dist/config/presets/internal/packages.js.map +1 -1
  36. package/dist/config/presets/internal/security.js +8 -0
  37. package/dist/config/presets/internal/security.js.map +1 -1
  38. package/dist/config/presets/internal/workarounds.js +2 -2
  39. package/dist/config/presets/internal/workarounds.js.map +1 -1
  40. package/dist/config/schema.d.ts +1 -1
  41. package/dist/config/secrets.js +2 -2
  42. package/dist/config/secrets.js.map +1 -1
  43. package/dist/config/types.d.ts +26 -1
  44. package/dist/config/types.js.map +1 -1
  45. package/dist/config/validation.js +4 -3
  46. package/dist/config/validation.js.map +1 -1
  47. package/dist/config-validator.js +1 -1
  48. package/dist/config-validator.js.map +1 -1
  49. package/dist/constants/platforms.js +1 -0
  50. package/dist/constants/platforms.js.map +1 -1
  51. package/dist/data/monorepo.json +13 -2
  52. package/dist/data/node-js-schedule.json +1 -1
  53. package/dist/data/replacements.json +34 -0
  54. package/dist/data-files.generated.js +3 -3
  55. package/dist/data-files.generated.js.map +1 -1
  56. package/dist/logger/renovate-logger.d.ts +1 -0
  57. package/dist/logger/renovate-logger.js +3 -0
  58. package/dist/logger/renovate-logger.js.map +1 -1
  59. package/dist/logger/utils.js +2 -1
  60. package/dist/logger/utils.js.map +1 -1
  61. package/dist/manager-list.generated.d.ts +1 -1
  62. package/dist/manager-list.generated.js +1 -1
  63. package/dist/manager-list.generated.js.map +1 -1
  64. package/dist/modules/datasource/api.js +4 -0
  65. package/dist/modules/datasource/api.js.map +1 -1
  66. package/dist/modules/datasource/aws-eks-addon/schema.d.ts +1 -8
  67. package/dist/modules/datasource/aws-eks-addon/schema.js +7 -5
  68. package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -1
  69. package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +12 -12
  70. package/dist/modules/datasource/bitrise/schema.d.ts +1 -1
  71. package/dist/modules/datasource/buildpacks-registry/index.js +1 -1
  72. package/dist/modules/datasource/buildpacks-registry/index.js.map +1 -1
  73. package/dist/modules/datasource/buildpacks-registry/schema.d.ts +1 -1
  74. package/dist/modules/datasource/buildpacks-registry/schema.js +2 -2
  75. package/dist/modules/datasource/buildpacks-registry/schema.js.map +1 -1
  76. package/dist/modules/datasource/cdnjs/index.js +2 -2
  77. package/dist/modules/datasource/cdnjs/index.js.map +1 -1
  78. package/dist/modules/datasource/cdnjs/schema.d.ts +8 -8
  79. package/dist/modules/datasource/cdnjs/schema.js +3 -3
  80. package/dist/modules/datasource/cdnjs/schema.js.map +1 -1
  81. package/dist/modules/datasource/conan/schema.d.ts +3 -3
  82. package/dist/modules/datasource/conda/prefix-dev.js +1 -1
  83. package/dist/modules/datasource/conda/prefix-dev.js.map +1 -1
  84. package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +7 -7
  85. package/dist/modules/datasource/conda/schema/prefix-dev.js +2 -2
  86. package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -1
  87. package/dist/modules/datasource/cpan/schema.js +2 -2
  88. package/dist/modules/datasource/cpan/schema.js.map +1 -1
  89. package/dist/modules/datasource/crate/index.js +12 -11
  90. package/dist/modules/datasource/crate/index.js.map +1 -1
  91. package/dist/modules/datasource/crate/schema.d.ts +1 -1
  92. package/dist/modules/datasource/crate/schema.js +2 -2
  93. package/dist/modules/datasource/crate/schema.js.map +1 -1
  94. package/dist/modules/datasource/custom/index.d.ts +1 -1
  95. package/dist/modules/datasource/custom/index.js +2 -2
  96. package/dist/modules/datasource/custom/index.js.map +1 -1
  97. package/dist/modules/datasource/custom/schema.d.ts +1 -1
  98. package/dist/modules/datasource/custom/schema.js +2 -2
  99. package/dist/modules/datasource/custom/schema.js.map +1 -1
  100. package/dist/modules/datasource/docker/index.d.ts +1 -1
  101. package/dist/modules/datasource/docker/index.js +4 -1
  102. package/dist/modules/datasource/docker/index.js.map +1 -1
  103. package/dist/modules/datasource/docker/schema.d.ts +4 -4
  104. package/dist/modules/datasource/forgejo-releases/index.js +3 -3
  105. package/dist/modules/datasource/forgejo-releases/index.js.map +1 -1
  106. package/dist/modules/datasource/forgejo-releases/schema.d.ts +6 -6
  107. package/dist/modules/datasource/forgejo-releases/schema.js +3 -3
  108. package/dist/modules/datasource/forgejo-releases/schema.js.map +1 -1
  109. package/dist/modules/datasource/forgejo-tags/index.js +3 -3
  110. package/dist/modules/datasource/forgejo-tags/index.js.map +1 -1
  111. package/dist/modules/datasource/forgejo-tags/schema.d.ts +4 -4
  112. package/dist/modules/datasource/forgejo-tags/schema.js +7 -7
  113. package/dist/modules/datasource/forgejo-tags/schema.js.map +1 -1
  114. package/dist/modules/datasource/gitea-releases/index.js +3 -3
  115. package/dist/modules/datasource/gitea-releases/index.js.map +1 -1
  116. package/dist/modules/datasource/gitea-releases/schema.d.ts +6 -6
  117. package/dist/modules/datasource/gitea-releases/schema.js +3 -3
  118. package/dist/modules/datasource/gitea-releases/schema.js.map +1 -1
  119. package/dist/modules/datasource/gitea-tags/index.js +3 -3
  120. package/dist/modules/datasource/gitea-tags/index.js.map +1 -1
  121. package/dist/modules/datasource/gitea-tags/schema.d.ts +4 -4
  122. package/dist/modules/datasource/gitea-tags/schema.js +7 -7
  123. package/dist/modules/datasource/gitea-tags/schema.js.map +1 -1
  124. package/dist/modules/datasource/github-runners/index.js +5 -3
  125. package/dist/modules/datasource/github-runners/index.js.map +1 -1
  126. package/dist/modules/datasource/go/base.js +3 -2
  127. package/dist/modules/datasource/go/base.js.map +1 -1
  128. package/dist/modules/datasource/go/common.js +13 -9
  129. package/dist/modules/datasource/go/common.js.map +1 -1
  130. package/dist/modules/datasource/go/index.js +7 -2
  131. package/dist/modules/datasource/go/index.js.map +1 -1
  132. package/dist/modules/datasource/go/releases-direct.d.ts +2 -0
  133. package/dist/modules/datasource/go/releases-direct.js +7 -1
  134. package/dist/modules/datasource/go/releases-direct.js.map +1 -1
  135. package/dist/modules/datasource/go/releases-goproxy.js +1 -1
  136. package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
  137. package/dist/modules/datasource/helm/index.js +1 -1
  138. package/dist/modules/datasource/helm/index.js.map +1 -1
  139. package/dist/modules/datasource/helm/schema.d.ts +2 -2
  140. package/dist/modules/datasource/helm/schema.js +4 -4
  141. package/dist/modules/datasource/helm/schema.js.map +1 -1
  142. package/dist/modules/datasource/jsr/common.d.ts +1 -0
  143. package/dist/modules/datasource/jsr/common.js +12 -0
  144. package/dist/modules/datasource/jsr/common.js.map +1 -0
  145. package/dist/modules/datasource/jsr/index.d.ts +12 -0
  146. package/dist/modules/datasource/jsr/index.js +66 -0
  147. package/dist/modules/datasource/jsr/index.js.map +1 -0
  148. package/dist/modules/datasource/jsr/schema.d.ts +27 -0
  149. package/dist/modules/datasource/jsr/schema.js +20 -0
  150. package/dist/modules/datasource/jsr/schema.js.map +1 -0
  151. package/dist/modules/datasource/jsr/util.d.ts +4 -0
  152. package/dist/modules/datasource/jsr/util.js +53 -0
  153. package/dist/modules/datasource/jsr/util.js.map +1 -0
  154. package/dist/modules/datasource/maven/index.js +14 -0
  155. package/dist/modules/datasource/maven/index.js.map +1 -1
  156. package/dist/modules/datasource/maven/util.js +10 -0
  157. package/dist/modules/datasource/maven/util.js.map +1 -1
  158. package/dist/modules/datasource/npm/get.js +2 -1
  159. package/dist/modules/datasource/npm/get.js.map +1 -1
  160. package/dist/modules/datasource/npm/types.d.ts +7 -0
  161. package/dist/modules/datasource/npm/types.js.map +1 -1
  162. package/dist/modules/datasource/nuget/v3.js +3 -1
  163. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  164. package/dist/modules/datasource/packagist/schema.d.ts +12 -12
  165. package/dist/modules/datasource/pypi/index.d.ts +1 -0
  166. package/dist/modules/datasource/pypi/index.js +1 -0
  167. package/dist/modules/datasource/pypi/index.js.map +1 -1
  168. package/dist/modules/datasource/python-version/schema.d.ts +3 -3
  169. package/dist/modules/datasource/rpm/index.d.ts +7 -0
  170. package/dist/modules/datasource/rpm/index.js +7 -0
  171. package/dist/modules/datasource/rpm/index.js.map +1 -1
  172. package/dist/modules/datasource/types.d.ts +2 -0
  173. package/dist/modules/datasource/types.js.map +1 -1
  174. package/dist/modules/datasource/typst/index.d.ts +11 -0
  175. package/dist/modules/datasource/typst/index.js +65 -0
  176. package/dist/modules/datasource/typst/index.js.map +1 -0
  177. package/dist/modules/datasource/typst/schema.d.ts +31 -0
  178. package/dist/modules/datasource/typst/schema.js +28 -0
  179. package/dist/modules/datasource/typst/schema.js.map +1 -0
  180. package/dist/modules/datasource/unity3d-packages/schema.d.ts +4 -4
  181. package/dist/modules/manager/api.js +6 -0
  182. package/dist/modules/manager/api.js.map +1 -1
  183. package/dist/modules/manager/argocd/extract.js +1 -1
  184. package/dist/modules/manager/argocd/extract.js.map +1 -1
  185. package/dist/modules/manager/argocd/schema.d.ts +1 -1
  186. package/dist/modules/manager/argocd/schema.js +2 -2
  187. package/dist/modules/manager/argocd/schema.js.map +1 -1
  188. package/dist/modules/manager/azure-pipelines/schema.d.ts +1 -1
  189. package/dist/modules/manager/batect/extract.js +1 -1
  190. package/dist/modules/manager/batect/extract.js.map +1 -1
  191. package/dist/modules/manager/batect/schema.d.ts +4 -4
  192. package/dist/modules/manager/batect/schema.js +2 -2
  193. package/dist/modules/manager/batect/schema.js.map +1 -1
  194. package/dist/modules/manager/bazel/rules/docker.d.ts +3 -3
  195. package/dist/modules/manager/bazel/rules/git.d.ts +5 -5
  196. package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
  197. package/dist/modules/manager/bazel/rules/oci.d.ts +3 -3
  198. package/dist/modules/manager/bazel-module/extract.js +5 -0
  199. package/dist/modules/manager/bazel-module/extract.js.map +1 -1
  200. package/dist/modules/manager/bazel-module/parser/context.d.ts +6 -0
  201. package/dist/modules/manager/bazel-module/parser/context.js +42 -2
  202. package/dist/modules/manager/bazel-module/parser/context.js.map +1 -1
  203. package/dist/modules/manager/bazel-module/parser/fragments.d.ts +276 -112
  204. package/dist/modules/manager/bazel-module/parser/fragments.js +70 -32
  205. package/dist/modules/manager/bazel-module/parser/fragments.js.map +1 -1
  206. package/dist/modules/manager/bazel-module/parser/index.js +3 -1
  207. package/dist/modules/manager/bazel-module/parser/index.js.map +1 -1
  208. package/dist/modules/manager/bazel-module/parser/maven.d.ts +27 -27
  209. package/dist/modules/manager/bazel-module/parser/maven.js +7 -7
  210. package/dist/modules/manager/bazel-module/parser/maven.js.map +1 -1
  211. package/dist/modules/manager/bazel-module/parser/oci.d.ts +38 -38
  212. package/dist/modules/manager/bazel-module/parser/oci.js +5 -5
  213. package/dist/modules/manager/bazel-module/parser/oci.js.map +1 -1
  214. package/dist/modules/manager/bazel-module/parser/repo-rules.d.ts +5 -0
  215. package/dist/modules/manager/bazel-module/parser/repo-rules.js +71 -0
  216. package/dist/modules/manager/bazel-module/parser/repo-rules.js.map +1 -0
  217. package/dist/modules/manager/bazel-module/rules-img.d.ts +229 -0
  218. package/dist/modules/manager/bazel-module/rules-img.js +74 -0
  219. package/dist/modules/manager/bazel-module/rules-img.js.map +1 -0
  220. package/dist/modules/manager/bazel-module/rules.d.ts +101 -101
  221. package/dist/modules/manager/bazel-module/rules.js +18 -18
  222. package/dist/modules/manager/bazel-module/rules.js.map +1 -1
  223. package/dist/modules/manager/bitrise/schema.d.ts +1 -1
  224. package/dist/modules/manager/bun/artifacts.js +5 -4
  225. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  226. package/dist/modules/manager/bundler/locked-version.js +44 -23
  227. package/dist/modules/manager/bundler/locked-version.js.map +1 -1
  228. package/dist/modules/manager/cargo/artifacts.js +15 -11
  229. package/dist/modules/manager/cargo/artifacts.js.map +1 -1
  230. package/dist/modules/manager/cargo/extract.js +6 -3
  231. package/dist/modules/manager/cargo/extract.js.map +1 -1
  232. package/dist/modules/manager/cargo/index.d.ts +0 -1
  233. package/dist/modules/manager/cargo/index.js +11 -4
  234. package/dist/modules/manager/cargo/index.js.map +1 -1
  235. package/dist/modules/manager/cargo/locked-version.d.ts +2 -2
  236. package/dist/modules/manager/cargo/locked-version.js +1 -1
  237. package/dist/modules/manager/cargo/locked-version.js.map +1 -1
  238. package/dist/modules/manager/cargo/schema.d.ts +206 -35
  239. package/dist/modules/manager/cargo/schema.js +26 -18
  240. package/dist/modules/manager/cargo/schema.js.map +1 -1
  241. package/dist/modules/manager/cloudbuild/schema.d.ts +1 -1
  242. package/dist/modules/manager/composer/schema.d.ts +98 -98
  243. package/dist/modules/manager/conan/artifacts.js +12 -2
  244. package/dist/modules/manager/conan/artifacts.js.map +1 -1
  245. package/dist/modules/manager/conan/extract.js +1 -1
  246. package/dist/modules/manager/conan/extract.js.map +1 -1
  247. package/dist/modules/manager/conan/index.d.ts +0 -1
  248. package/dist/modules/manager/conan/index.js +0 -1
  249. package/dist/modules/manager/conan/index.js.map +1 -1
  250. package/dist/modules/manager/copier/artifacts.js +5 -5
  251. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  252. package/dist/modules/manager/copier/schema.d.ts +2 -2
  253. package/dist/modules/manager/copier/schema.js +5 -1
  254. package/dist/modules/manager/copier/schema.js.map +1 -1
  255. package/dist/modules/manager/crossplane/extract.js +1 -1
  256. package/dist/modules/manager/crossplane/extract.js.map +1 -1
  257. package/dist/modules/manager/crossplane/schema.d.ts +2 -2
  258. package/dist/modules/manager/crossplane/schema.js +2 -2
  259. package/dist/modules/manager/crossplane/schema.js.map +1 -1
  260. package/dist/modules/manager/crow/extract.d.ts +2 -0
  261. package/dist/modules/manager/crow/extract.js +35 -0
  262. package/dist/modules/manager/crow/extract.js.map +1 -0
  263. package/dist/modules/manager/crow/index.d.ts +8 -0
  264. package/dist/modules/manager/crow/index.js +13 -0
  265. package/dist/modules/manager/crow/index.js.map +1 -0
  266. package/dist/modules/manager/crow/schema.d.ts +66 -0
  267. package/dist/modules/manager/crow/schema.js +15 -0
  268. package/dist/modules/manager/crow/schema.js.map +1 -0
  269. package/dist/modules/manager/custom/jsonata/schema.d.ts +1 -1
  270. package/dist/modules/manager/custom/jsonata/schema.js +4 -4
  271. package/dist/modules/manager/custom/jsonata/schema.js.map +1 -1
  272. package/dist/modules/manager/custom/jsonata/utils.js +3 -3
  273. package/dist/modules/manager/custom/jsonata/utils.js.map +1 -1
  274. package/dist/modules/manager/devbox/extract.js +1 -1
  275. package/dist/modules/manager/devbox/extract.js.map +1 -1
  276. package/dist/modules/manager/devbox/schema.d.ts +1 -1
  277. package/dist/modules/manager/devbox/schema.js +2 -2
  278. package/dist/modules/manager/devbox/schema.js.map +1 -1
  279. package/dist/modules/manager/devcontainer/schema.d.ts +1 -1
  280. package/dist/modules/manager/fingerprint.generated.js +35 -32
  281. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  282. package/dist/modules/manager/fleet/schema.d.ts +16 -16
  283. package/dist/modules/manager/flux/schema.d.ts +24 -24
  284. package/dist/modules/manager/github-actions/community.d.ts +96 -0
  285. package/dist/modules/manager/github-actions/community.js +116 -10
  286. package/dist/modules/manager/github-actions/community.js.map +1 -1
  287. package/dist/modules/manager/github-actions/extract.js +2 -1
  288. package/dist/modules/manager/github-actions/extract.js.map +1 -1
  289. package/dist/modules/manager/github-actions/schema.d.ts +3 -3
  290. package/dist/modules/manager/github-actions/schema.js +7 -7
  291. package/dist/modules/manager/github-actions/schema.js.map +1 -1
  292. package/dist/modules/manager/gitlabci/extract.js +2 -0
  293. package/dist/modules/manager/gitlabci/extract.js.map +1 -1
  294. package/dist/modules/manager/glasskube/schema.d.ts +12 -12
  295. package/dist/modules/manager/gleam/schema.d.ts +4 -4
  296. package/dist/modules/manager/gomod/artifacts.js +8 -4
  297. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  298. package/dist/modules/manager/gradle/parser/dependencies.js +23 -2
  299. package/dist/modules/manager/gradle/parser/dependencies.js.map +1 -1
  300. package/dist/modules/manager/gradle/parser/objects.js +15 -0
  301. package/dist/modules/manager/gradle/parser/objects.js.map +1 -1
  302. package/dist/modules/manager/gradle/parser.js +1 -1
  303. package/dist/modules/manager/gradle/parser.js.map +1 -1
  304. package/dist/modules/manager/helmfile/extract.js +26 -21
  305. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  306. package/dist/modules/manager/helmfile/index.js +4 -1
  307. package/dist/modules/manager/helmfile/index.js.map +1 -1
  308. package/dist/modules/manager/helmfile/schema.d.ts +4 -4
  309. package/dist/modules/manager/maven-wrapper/artifacts.js +1 -1
  310. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  311. package/dist/modules/manager/maven-wrapper/extract.js +4 -4
  312. package/dist/modules/manager/maven-wrapper/extract.js.map +1 -1
  313. package/dist/modules/manager/maven-wrapper/index.d.ts +1 -1
  314. package/dist/modules/manager/maven-wrapper/index.js +5 -2
  315. package/dist/modules/manager/maven-wrapper/index.js.map +1 -1
  316. package/dist/modules/manager/mise/backends.d.ts +2 -2
  317. package/dist/modules/manager/mise/backends.js +1 -1
  318. package/dist/modules/manager/mise/backends.js.map +1 -1
  319. package/dist/modules/manager/mise/extract.js.map +1 -1
  320. package/dist/modules/manager/mise/schema.d.ts +6 -29
  321. package/dist/modules/manager/mise/schema.js +7 -8
  322. package/dist/modules/manager/mise/schema.js.map +1 -1
  323. package/dist/modules/manager/mise/upgradeable-tooling.js +1 -1
  324. package/dist/modules/manager/mise/upgradeable-tooling.js.map +1 -1
  325. package/dist/modules/manager/mise/utils.d.ts +2 -2
  326. package/dist/modules/manager/mise/utils.js +1 -1
  327. package/dist/modules/manager/mise/utils.js.map +1 -1
  328. package/dist/modules/manager/nix/artifacts.js +2 -2
  329. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  330. package/dist/modules/manager/nix/extract.d.ts +2 -2
  331. package/dist/modules/manager/nix/extract.js +79 -67
  332. package/dist/modules/manager/nix/extract.js.map +1 -1
  333. package/dist/modules/manager/nix/index.d.ts +1 -0
  334. package/dist/modules/manager/nix/index.js +3 -1
  335. package/dist/modules/manager/nix/index.js.map +1 -1
  336. package/dist/modules/manager/nix/range.d.ts +3 -0
  337. package/dist/modules/manager/nix/range.js +10 -0
  338. package/dist/modules/manager/nix/range.js.map +1 -0
  339. package/dist/modules/manager/nix/schema.d.ts +42 -28
  340. package/dist/modules/manager/nix/schema.js +4 -1
  341. package/dist/modules/manager/nix/schema.js.map +1 -1
  342. package/dist/modules/manager/npm/extract/common/package-file.d.ts +1 -0
  343. package/dist/modules/manager/npm/extract/common/package-file.js +8 -0
  344. package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
  345. package/dist/modules/manager/npm/extract/index.js +24 -7
  346. package/dist/modules/manager/npm/extract/index.js.map +1 -1
  347. package/dist/modules/manager/npm/extract/pnpm.d.ts +4 -3
  348. package/dist/modules/manager/npm/extract/pnpm.js +1 -1
  349. package/dist/modules/manager/npm/extract/pnpm.js.map +1 -1
  350. package/dist/modules/manager/npm/extract/post/locked-versions.js +6 -0
  351. package/dist/modules/manager/npm/extract/post/locked-versions.js.map +1 -1
  352. package/dist/modules/manager/npm/extract/yarn.d.ts +4 -0
  353. package/dist/modules/manager/npm/extract/yarn.js +35 -0
  354. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  355. package/dist/modules/manager/npm/extract/yarnrc.d.ts +4 -4
  356. package/dist/modules/manager/npm/extract/yarnrc.js +1 -2
  357. package/dist/modules/manager/npm/extract/yarnrc.js.map +1 -1
  358. package/dist/modules/manager/npm/index.js +1 -0
  359. package/dist/modules/manager/npm/index.js.map +1 -1
  360. package/dist/modules/manager/npm/post-update/index.js +2 -1
  361. package/dist/modules/manager/npm/post-update/index.js.map +1 -1
  362. package/dist/modules/manager/npm/post-update/npm.js +14 -1
  363. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  364. package/dist/modules/manager/npm/post-update/pnpm.js +6 -1
  365. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  366. package/dist/modules/manager/npm/post-update/types.d.ts +5 -5
  367. package/dist/modules/manager/npm/post-update/types.js.map +1 -1
  368. package/dist/modules/manager/npm/post-update/utils.d.ts +3 -4
  369. package/dist/modules/manager/npm/post-update/utils.js +2 -13
  370. package/dist/modules/manager/npm/post-update/utils.js.map +1 -1
  371. package/dist/modules/manager/npm/schema.d.ts +35 -97
  372. package/dist/modules/manager/npm/schema.js +21 -16
  373. package/dist/modules/manager/npm/schema.js.map +1 -1
  374. package/dist/modules/manager/npm/update/dependency/index.js +4 -0
  375. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  376. package/dist/modules/manager/npm/update/dependency/pnpm.js +1 -1
  377. package/dist/modules/manager/npm/update/dependency/pnpm.js.map +1 -1
  378. package/dist/modules/manager/npm/update/dependency/yarn.d.ts +2 -0
  379. package/dist/modules/manager/npm/update/dependency/yarn.js +102 -0
  380. package/dist/modules/manager/npm/update/dependency/yarn.js.map +1 -0
  381. package/dist/modules/manager/npm/utils.d.ts +2 -0
  382. package/dist/modules/manager/npm/utils.js +10 -0
  383. package/dist/modules/manager/npm/utils.js.map +1 -1
  384. package/dist/modules/manager/nuget/extract.js +5 -0
  385. package/dist/modules/manager/nuget/extract.js.map +1 -1
  386. package/dist/modules/manager/nuget/schema.d.ts +3 -56
  387. package/dist/modules/manager/nuget/schema.js +5 -6
  388. package/dist/modules/manager/nuget/schema.js.map +1 -1
  389. package/dist/modules/manager/nvm/extract.js +8 -1
  390. package/dist/modules/manager/nvm/extract.js.map +1 -1
  391. package/dist/modules/manager/ocb/extract.js +1 -1
  392. package/dist/modules/manager/ocb/extract.js.map +1 -1
  393. package/dist/modules/manager/ocb/schema.d.ts +4 -4
  394. package/dist/modules/manager/ocb/schema.js +9 -9
  395. package/dist/modules/manager/ocb/schema.js.map +1 -1
  396. package/dist/modules/manager/pep621/extract.d.ts +1 -1
  397. package/dist/modules/manager/pep621/extract.js +11 -3
  398. package/dist/modules/manager/pep621/extract.js.map +1 -1
  399. package/dist/modules/manager/pep621/processors/abstract.d.ts +10 -0
  400. package/dist/modules/manager/pep621/processors/abstract.js +25 -0
  401. package/dist/modules/manager/pep621/processors/abstract.js.map +1 -0
  402. package/dist/modules/manager/pep621/processors/hatch.d.ts +2 -2
  403. package/dist/modules/manager/pep621/processors/hatch.js +2 -1
  404. package/dist/modules/manager/pep621/processors/hatch.js.map +1 -1
  405. package/dist/modules/manager/pep621/processors/index.d.ts +2 -4
  406. package/dist/modules/manager/pep621/processors/index.js.map +1 -1
  407. package/dist/modules/manager/pep621/processors/pdm.d.ts +3 -2
  408. package/dist/modules/manager/pep621/processors/pdm.js +5 -4
  409. package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
  410. package/dist/modules/manager/pep621/processors/types.d.ts +1 -0
  411. package/dist/modules/manager/pep621/processors/types.js.map +1 -1
  412. package/dist/modules/manager/pep621/processors/uv.d.ts +3 -2
  413. package/dist/modules/manager/pep621/processors/uv.js +8 -6
  414. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  415. package/dist/modules/manager/pep621/schema.d.ts +35 -257
  416. package/dist/modules/manager/pep621/schema.js +17 -21
  417. package/dist/modules/manager/pep621/schema.js.map +1 -1
  418. package/dist/modules/manager/pep723/extract.js +1 -1
  419. package/dist/modules/manager/pep723/extract.js.map +1 -1
  420. package/dist/modules/manager/pep723/schema.d.ts +1 -1
  421. package/dist/modules/manager/pep723/schema.js +2 -2
  422. package/dist/modules/manager/pep723/schema.js.map +1 -1
  423. package/dist/modules/manager/pip-compile/extract.d.ts +1 -1
  424. package/dist/modules/manager/pip-compile/extract.js +9 -6
  425. package/dist/modules/manager/pip-compile/extract.js.map +1 -1
  426. package/dist/modules/manager/pixi/extract.js +4 -7
  427. package/dist/modules/manager/pixi/extract.js.map +1 -1
  428. package/dist/modules/manager/pixi/schema.d.ts +296 -4
  429. package/dist/modules/manager/pixi/schema.js +11 -4
  430. package/dist/modules/manager/pixi/schema.js.map +1 -1
  431. package/dist/modules/manager/poetry/artifacts.js +2 -2
  432. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  433. package/dist/modules/manager/poetry/extract.js +1 -1
  434. package/dist/modules/manager/poetry/extract.js.map +1 -1
  435. package/dist/modules/manager/poetry/index.d.ts +1 -0
  436. package/dist/modules/manager/poetry/index.js +2 -1
  437. package/dist/modules/manager/poetry/index.js.map +1 -1
  438. package/dist/modules/manager/poetry/schema.d.ts +45 -138
  439. package/dist/modules/manager/poetry/schema.js +49 -32
  440. package/dist/modules/manager/poetry/schema.js.map +1 -1
  441. package/dist/modules/manager/poetry/update-locked.js +2 -2
  442. package/dist/modules/manager/poetry/update-locked.js.map +1 -1
  443. package/dist/modules/manager/pre-commit/extract.js +2 -1
  444. package/dist/modules/manager/pre-commit/extract.js.map +1 -1
  445. package/dist/modules/manager/pub/extract.js +38 -8
  446. package/dist/modules/manager/pub/extract.js.map +1 -1
  447. package/dist/modules/manager/pub/index.d.ts +0 -1
  448. package/dist/modules/manager/pub/index.js +0 -3
  449. package/dist/modules/manager/pub/index.js.map +1 -1
  450. package/dist/modules/manager/pub/schema.d.ts +25 -79
  451. package/dist/modules/manager/pub/schema.js +17 -10
  452. package/dist/modules/manager/pub/schema.js.map +1 -1
  453. package/dist/modules/manager/pub/utils.d.ts +3 -3
  454. package/dist/modules/manager/pub/utils.js +2 -2
  455. package/dist/modules/manager/pub/utils.js.map +1 -1
  456. package/dist/modules/manager/quadlet/extract.d.ts +2 -0
  457. package/dist/modules/manager/quadlet/extract.js +54 -0
  458. package/dist/modules/manager/quadlet/extract.js.map +1 -0
  459. package/dist/modules/manager/quadlet/index.d.ts +8 -0
  460. package/dist/modules/manager/quadlet/index.js +13 -0
  461. package/dist/modules/manager/quadlet/index.js.map +1 -0
  462. package/dist/modules/manager/quadlet/schema.d.ts +45 -0
  463. package/dist/modules/manager/quadlet/schema.js +23 -0
  464. package/dist/modules/manager/quadlet/schema.js.map +1 -0
  465. package/dist/modules/manager/renovate-config-presets/extract.js +1 -1
  466. package/dist/modules/manager/renovate-config-presets/extract.js.map +1 -1
  467. package/dist/modules/manager/renovate-config-presets/index.js +1 -1
  468. package/dist/modules/manager/renovate-config-presets/index.js.map +1 -1
  469. package/dist/modules/manager/renovate-config-presets/schema.d.ts +1 -1
  470. package/dist/modules/manager/renovate-config-presets/schema.js +2 -2
  471. package/dist/modules/manager/renovate-config-presets/schema.js.map +1 -1
  472. package/dist/modules/manager/swift/extract.js +25 -9
  473. package/dist/modules/manager/swift/extract.js.map +1 -1
  474. package/dist/modules/manager/swift/index.js +7 -1
  475. package/dist/modules/manager/swift/index.js.map +1 -1
  476. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js +1 -1
  477. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js.map +1 -1
  478. package/dist/modules/manager/terraform/lockfile/hash.js +1 -1
  479. package/dist/modules/manager/terraform/lockfile/hash.js.map +1 -1
  480. package/dist/modules/manager/terragrunt/util.js +1 -1
  481. package/dist/modules/manager/terragrunt/util.js.map +1 -1
  482. package/dist/modules/manager/types.d.ts +2 -0
  483. package/dist/modules/manager/types.js.map +1 -1
  484. package/dist/modules/manager/typst/extract.d.ts +2 -0
  485. package/dist/modules/manager/typst/extract.js +31 -0
  486. package/dist/modules/manager/typst/extract.js.map +1 -0
  487. package/dist/modules/manager/typst/index.d.ts +7 -0
  488. package/dist/modules/manager/typst/index.js +12 -0
  489. package/dist/modules/manager/typst/index.js.map +1 -0
  490. package/dist/modules/manager/util.js +3 -2
  491. package/dist/modules/manager/util.js.map +1 -1
  492. package/dist/modules/manager/vendir/schema.d.ts +13 -13
  493. package/dist/modules/platform/azure/azure-helper.js +1 -1
  494. package/dist/modules/platform/azure/azure-helper.js.map +1 -1
  495. package/dist/modules/platform/azure/schema.d.ts +3 -3
  496. package/dist/modules/platform/azure/schema.js +4 -4
  497. package/dist/modules/platform/azure/schema.js.map +1 -1
  498. package/dist/modules/platform/bitbucket/index.js +12 -9
  499. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  500. package/dist/modules/platform/bitbucket/schema.d.ts +7 -7
  501. package/dist/modules/platform/bitbucket/schema.js +7 -7
  502. package/dist/modules/platform/bitbucket/schema.js.map +1 -1
  503. package/dist/modules/platform/bitbucket-server/index.d.ts +3 -1
  504. package/dist/modules/platform/bitbucket-server/index.js +87 -4
  505. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  506. package/dist/modules/platform/bitbucket-server/schema.d.ts +106 -11
  507. package/dist/modules/platform/bitbucket-server/schema.js +13 -7
  508. package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
  509. package/dist/modules/platform/bitbucket-server/utils.d.ts +2 -0
  510. package/dist/modules/platform/bitbucket-server/utils.js +25 -0
  511. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  512. package/dist/modules/platform/codecommit/index.d.ts +0 -8
  513. package/dist/modules/platform/codecommit/index.js +16 -16
  514. package/dist/modules/platform/codecommit/index.js.map +1 -1
  515. package/dist/modules/platform/forgejo/index.js +39 -38
  516. package/dist/modules/platform/forgejo/index.js.map +1 -1
  517. package/dist/modules/platform/forgejo/types.d.ts +3 -2
  518. package/dist/modules/platform/forgejo/types.js.map +1 -1
  519. package/dist/modules/platform/forgejo/utils.d.ts +1 -0
  520. package/dist/modules/platform/forgejo/utils.js +17 -0
  521. package/dist/modules/platform/forgejo/utils.js.map +1 -1
  522. package/dist/modules/platform/gerrit/client.d.ts +1 -1
  523. package/dist/modules/platform/gerrit/client.js +32 -33
  524. package/dist/modules/platform/gerrit/client.js.map +1 -1
  525. package/dist/modules/platform/gerrit/index.d.ts +1 -2
  526. package/dist/modules/platform/gerrit/index.js +8 -16
  527. package/dist/modules/platform/gerrit/index.js.map +1 -1
  528. package/dist/modules/platform/gerrit/scm.js +7 -13
  529. package/dist/modules/platform/gerrit/scm.js.map +1 -1
  530. package/dist/modules/platform/gerrit/types.d.ts +27 -1
  531. package/dist/modules/platform/gerrit/types.js.map +1 -1
  532. package/dist/modules/platform/gitea/index.js +34 -37
  533. package/dist/modules/platform/gitea/index.js.map +1 -1
  534. package/dist/modules/platform/gitea/schema.d.ts +3 -3
  535. package/dist/modules/platform/gitea/schema.js +3 -3
  536. package/dist/modules/platform/gitea/schema.js.map +1 -1
  537. package/dist/modules/platform/gitea/types.d.ts +3 -2
  538. package/dist/modules/platform/gitea/types.js.map +1 -1
  539. package/dist/modules/platform/gitea/utils.d.ts +1 -0
  540. package/dist/modules/platform/gitea/utils.js +17 -0
  541. package/dist/modules/platform/gitea/utils.js.map +1 -1
  542. package/dist/modules/platform/github/index.d.ts +1 -1
  543. package/dist/modules/platform/github/index.js +92 -33
  544. package/dist/modules/platform/github/index.js.map +1 -1
  545. package/dist/modules/platform/github/schema.d.ts +32 -2
  546. package/dist/modules/platform/github/schema.js +32 -8
  547. package/dist/modules/platform/github/schema.js.map +1 -1
  548. package/dist/modules/platform/github/types.d.ts +2 -2
  549. package/dist/modules/platform/github/types.js.map +1 -1
  550. package/dist/modules/platform/github/user.d.ts +2 -1
  551. package/dist/modules/platform/github/user.js.map +1 -1
  552. package/dist/modules/platform/gitlab/index.js.map +1 -1
  553. package/dist/modules/platform/gitlab/pr-cache.d.ts +0 -2
  554. package/dist/modules/platform/gitlab/pr-cache.js +28 -37
  555. package/dist/modules/platform/gitlab/pr-cache.js.map +1 -1
  556. package/dist/modules/platform/gitlab/utils.js +1 -0
  557. package/dist/modules/platform/gitlab/utils.js.map +1 -1
  558. package/dist/modules/platform/types.d.ts +1 -1
  559. package/dist/modules/platform/types.js.map +1 -1
  560. package/dist/modules/versioning/api.js +2 -0
  561. package/dist/modules/versioning/api.js.map +1 -1
  562. package/dist/modules/versioning/cargo/index.js +7 -7
  563. package/dist/modules/versioning/cargo/index.js.map +1 -1
  564. package/dist/modules/versioning/composer/index.js +0 -4
  565. package/dist/modules/versioning/composer/index.js.map +1 -1
  566. package/dist/modules/versioning/conan/index.js +1 -1
  567. package/dist/modules/versioning/conan/index.js.map +1 -1
  568. package/dist/modules/versioning/conda/index.d.ts +2 -0
  569. package/dist/modules/versioning/conda/index.js +4 -4
  570. package/dist/modules/versioning/conda/index.js.map +1 -1
  571. package/dist/modules/versioning/debian/index.d.ts +1 -1
  572. package/dist/modules/versioning/debian/index.js +2 -17
  573. package/dist/modules/versioning/debian/index.js.map +1 -1
  574. package/dist/modules/versioning/gradle/index.js +2 -2
  575. package/dist/modules/versioning/gradle/index.js.map +1 -1
  576. package/dist/modules/versioning/hashicorp/index.js +0 -1
  577. package/dist/modules/versioning/hashicorp/index.js.map +1 -1
  578. package/dist/modules/versioning/helm/index.js +0 -1
  579. package/dist/modules/versioning/helm/index.js.map +1 -1
  580. package/dist/modules/versioning/hex/index.js +0 -1
  581. package/dist/modules/versioning/hex/index.js.map +1 -1
  582. package/dist/modules/versioning/ivy/index.js +1 -2
  583. package/dist/modules/versioning/ivy/index.js.map +1 -1
  584. package/dist/modules/versioning/npm/index.js +0 -1
  585. package/dist/modules/versioning/npm/index.js.map +1 -1
  586. package/dist/modules/versioning/npm/range.js +2 -3
  587. package/dist/modules/versioning/npm/range.js.map +1 -1
  588. package/dist/modules/versioning/nuget/index.js +8 -4
  589. package/dist/modules/versioning/nuget/index.js.map +1 -1
  590. package/dist/modules/versioning/pep440/index.js +1 -1
  591. package/dist/modules/versioning/pep440/index.js.map +1 -1
  592. package/dist/modules/versioning/pep440/range.d.ts +1 -0
  593. package/dist/modules/versioning/pep440/range.js +4 -3
  594. package/dist/modules/versioning/pep440/range.js.map +1 -1
  595. package/dist/modules/versioning/poetry/index.js +0 -4
  596. package/dist/modules/versioning/poetry/index.js.map +1 -1
  597. package/dist/modules/versioning/rez/index.js +0 -1
  598. package/dist/modules/versioning/rez/index.js.map +1 -1
  599. package/dist/modules/versioning/ruby/index.js +5 -5
  600. package/dist/modules/versioning/ruby/index.js.map +1 -1
  601. package/dist/modules/versioning/ruby/strategies/index.d.ts +1 -2
  602. package/dist/modules/versioning/ruby/strategies/index.js +1 -3
  603. package/dist/modules/versioning/ruby/strategies/index.js.map +1 -1
  604. package/dist/modules/versioning/semver-partial/index.d.ts +8 -0
  605. package/dist/modules/versioning/semver-partial/index.js +211 -0
  606. package/dist/modules/versioning/semver-partial/index.js.map +1 -0
  607. package/dist/modules/versioning/swift/index.js +0 -1
  608. package/dist/modules/versioning/swift/index.js.map +1 -1
  609. package/dist/modules/versioning/types.d.ts +5 -0
  610. package/dist/modules/versioning/types.js.map +1 -1
  611. package/dist/renovate.js +0 -0
  612. package/dist/util/cache/package/decorator.js +20 -9
  613. package/dist/util/cache/package/decorator.js.map +1 -1
  614. package/dist/util/cache/package/file.d.ts +1 -1
  615. package/dist/util/cache/package/file.js +3 -3
  616. package/dist/util/cache/package/file.js.map +1 -1
  617. package/dist/util/cache/package/index.d.ts +9 -2
  618. package/dist/util/cache/package/index.js +19 -4
  619. package/dist/util/cache/package/index.js.map +1 -1
  620. package/dist/util/cache/package/namespaces.d.ts +1 -1
  621. package/dist/util/cache/package/namespaces.js +3 -0
  622. package/dist/util/cache/package/namespaces.js.map +1 -1
  623. package/dist/util/cache/package/redis.d.ts +1 -1
  624. package/dist/util/cache/package/redis.js +17 -7
  625. package/dist/util/cache/package/redis.js.map +1 -1
  626. package/dist/util/cache/package/sqlite.d.ts +1 -1
  627. package/dist/util/cache/package/sqlite.js +2 -2
  628. package/dist/util/cache/package/sqlite.js.map +1 -1
  629. package/dist/util/cache/package/types.d.ts +1 -1
  630. package/dist/util/cache/package/types.js.map +1 -1
  631. package/dist/util/cache/repository/http-cache.js +1 -1
  632. package/dist/util/cache/repository/http-cache.js.map +1 -1
  633. package/dist/util/cache/repository/schema.d.ts +1 -1
  634. package/dist/util/cache/repository/types.d.ts +1 -0
  635. package/dist/util/cache/repository/types.js.map +1 -1
  636. package/dist/util/emoji.js +2 -2
  637. package/dist/util/emoji.js.map +1 -1
  638. package/dist/util/exec/containerbase.js +5 -0
  639. package/dist/util/exec/containerbase.js.map +1 -1
  640. package/dist/util/git/index.js +6 -3
  641. package/dist/util/git/index.js.map +1 -1
  642. package/dist/util/git/private-key.js +23 -3
  643. package/dist/util/git/private-key.js.map +1 -1
  644. package/dist/util/git/types.d.ts +2 -1
  645. package/dist/util/git/types.js.map +1 -1
  646. package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +6 -6
  647. package/dist/util/http/bitbucket.js +0 -1
  648. package/dist/util/http/bitbucket.js.map +1 -1
  649. package/dist/util/http/cache/abstract-http-cache-provider.d.ts +7 -7
  650. package/dist/util/http/cache/abstract-http-cache-provider.js +11 -11
  651. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  652. package/dist/util/http/cache/memory-http-cache-provider.d.ts +3 -3
  653. package/dist/util/http/cache/memory-http-cache-provider.js +8 -8
  654. package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -1
  655. package/dist/util/http/cache/package-http-cache-provider.d.ts +5 -4
  656. package/dist/util/http/cache/package-http-cache-provider.js +17 -11
  657. package/dist/util/http/cache/package-http-cache-provider.js.map +1 -1
  658. package/dist/util/http/cache/repository-http-cache-provider.d.ts +16 -3
  659. package/dist/util/http/cache/repository-http-cache-provider.js +60 -3
  660. package/dist/util/http/cache/repository-http-cache-provider.js.map +1 -1
  661. package/dist/util/http/cache/schema.d.ts +2 -2
  662. package/dist/util/http/cache/schema.js +2 -2
  663. package/dist/util/http/cache/schema.js.map +1 -1
  664. package/dist/util/http/cache/types.d.ts +3 -3
  665. package/dist/util/http/cache/types.js.map +1 -1
  666. package/dist/util/http/gerrit.d.ts +1 -1
  667. package/dist/util/http/gerrit.js +1 -1
  668. package/dist/util/http/gerrit.js.map +1 -1
  669. package/dist/util/http/gitlab.js +0 -1
  670. package/dist/util/http/gitlab.js.map +1 -1
  671. package/dist/util/http/host-rules.js +10 -0
  672. package/dist/util/http/host-rules.js.map +1 -1
  673. package/dist/util/http/http.d.ts +1 -1
  674. package/dist/util/http/http.js +17 -15
  675. package/dist/util/http/http.js.map +1 -1
  676. package/dist/util/http/retry-after.js +1 -1
  677. package/dist/util/http/retry-after.js.map +1 -1
  678. package/dist/util/interpolator.js +2 -0
  679. package/dist/util/interpolator.js.map +1 -1
  680. package/dist/util/markdown.js +3 -3
  681. package/dist/util/markdown.js.map +1 -1
  682. package/dist/util/merge-confidence/index.js +3 -1
  683. package/dist/util/merge-confidence/index.js.map +1 -1
  684. package/dist/util/schema-utils/index.d.ts +8 -4
  685. package/dist/util/schema-utils/index.js +16 -1
  686. package/dist/util/schema-utils/index.js.map +1 -1
  687. package/dist/util/template/index.d.ts +1 -0
  688. package/dist/util/template/index.js +70 -64
  689. package/dist/util/template/index.js.map +1 -1
  690. package/dist/workers/global/config/parse/file.js +6 -0
  691. package/dist/workers/global/config/parse/file.js.map +1 -1
  692. package/dist/workers/global/config/parse/index.js +2 -1
  693. package/dist/workers/global/config/parse/index.js.map +1 -1
  694. package/dist/workers/repository/config-migration/branch/commit-message.js +2 -1
  695. package/dist/workers/repository/config-migration/branch/commit-message.js.map +1 -1
  696. package/dist/workers/repository/config-migration/branch/create.js +1 -0
  697. package/dist/workers/repository/config-migration/branch/create.js.map +1 -1
  698. package/dist/workers/repository/config-migration/branch/rebase.js +1 -0
  699. package/dist/workers/repository/config-migration/branch/rebase.js.map +1 -1
  700. package/dist/workers/repository/dependency-dashboard.js +42 -5
  701. package/dist/workers/repository/dependency-dashboard.js.map +1 -1
  702. package/dist/workers/repository/error-config.js +1 -1
  703. package/dist/workers/repository/error-config.js.map +1 -1
  704. package/dist/workers/repository/error.js +1 -1
  705. package/dist/workers/repository/error.js.map +1 -1
  706. package/dist/workers/repository/extract/supersedes.d.ts +1 -1
  707. package/dist/workers/repository/extract/supersedes.js +31 -17
  708. package/dist/workers/repository/extract/supersedes.js.map +1 -1
  709. package/dist/workers/repository/finalize/index.js +1 -1
  710. package/dist/workers/repository/finalize/index.js.map +1 -1
  711. package/dist/workers/repository/finalize/prune.js +4 -3
  712. package/dist/workers/repository/finalize/prune.js.map +1 -1
  713. package/dist/workers/repository/index.js +49 -20
  714. package/dist/workers/repository/index.js.map +1 -1
  715. package/dist/workers/repository/init/inherited.js +7 -0
  716. package/dist/workers/repository/init/inherited.js.map +1 -1
  717. package/dist/workers/repository/init/merge.js +1 -1
  718. package/dist/workers/repository/init/merge.js.map +1 -1
  719. package/dist/workers/repository/onboarding/branch/check.js +5 -3
  720. package/dist/workers/repository/onboarding/branch/check.js.map +1 -1
  721. package/dist/workers/repository/onboarding/branch/create.js +1 -0
  722. package/dist/workers/repository/onboarding/branch/create.js.map +1 -1
  723. package/dist/workers/repository/onboarding/branch/rebase.js +1 -0
  724. package/dist/workers/repository/onboarding/branch/rebase.js.map +1 -1
  725. package/dist/workers/repository/onboarding/common.js +3 -2
  726. package/dist/workers/repository/onboarding/common.js.map +1 -1
  727. package/dist/workers/repository/process/extract-update.js +2 -2
  728. package/dist/workers/repository/process/extract-update.js.map +1 -1
  729. package/dist/workers/repository/process/fetch.js +4 -3
  730. package/dist/workers/repository/process/fetch.js.map +1 -1
  731. package/dist/workers/repository/process/index.d.ts +1 -0
  732. package/dist/workers/repository/process/index.js +25 -5
  733. package/dist/workers/repository/process/index.js.map +1 -1
  734. package/dist/workers/repository/process/lookup/filter-checks.js +42 -8
  735. package/dist/workers/repository/process/lookup/filter-checks.js.map +1 -1
  736. package/dist/workers/repository/process/lookup/filter.js +5 -7
  737. package/dist/workers/repository/process/lookup/filter.js.map +1 -1
  738. package/dist/workers/repository/process/lookup/index.js +10 -13
  739. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  740. package/dist/workers/repository/process/vulnerabilities.d.ts +1 -1
  741. package/dist/workers/repository/process/vulnerabilities.js +13 -8
  742. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  743. package/dist/workers/repository/reconfigure/comment.js +1 -1
  744. package/dist/workers/repository/reconfigure/comment.js.map +1 -1
  745. package/dist/workers/repository/reconfigure/index.js +1 -1
  746. package/dist/workers/repository/reconfigure/index.js.map +1 -1
  747. package/dist/workers/repository/update/branch/commit.js +2 -0
  748. package/dist/workers/repository/update/branch/commit.js.map +1 -1
  749. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +12 -1
  750. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  751. package/dist/workers/repository/update/branch/index.js +65 -20
  752. package/dist/workers/repository/update/branch/index.js.map +1 -1
  753. package/dist/workers/repository/update/branch/status-checks.js +5 -0
  754. package/dist/workers/repository/update/branch/status-checks.js.map +1 -1
  755. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
  756. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  757. package/dist/workers/repository/update/pr/changelog/forgejo/index.js +3 -3
  758. package/dist/workers/repository/update/pr/changelog/forgejo/index.js.map +1 -1
  759. package/dist/workers/repository/update/pr/changelog/gitea/index.js +3 -3
  760. package/dist/workers/repository/update/pr/changelog/gitea/index.js.map +1 -1
  761. package/dist/workers/repository/update/pr/changelog/release-notes.js +9 -4
  762. package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
  763. package/dist/workers/repository/update/pr/index.js +28 -11
  764. package/dist/workers/repository/update/pr/index.js.map +1 -1
  765. package/dist/workers/repository/update/pr/pr-reuse.d.ts +1 -1
  766. package/dist/workers/repository/update/pr/pr-reuse.js +2 -2
  767. package/dist/workers/repository/update/pr/pr-reuse.js.map +1 -1
  768. package/dist/workers/repository/updates/generate.js +1 -0
  769. package/dist/workers/repository/updates/generate.js.map +1 -1
  770. package/dist/workers/types.d.ts +1 -0
  771. package/dist/workers/types.js.map +1 -1
  772. package/package.json +136 -153
  773. package/renovate-schema.json +325 -111
  774. package/dist/config/decrypt/kbpgp.d.ts +0 -1
  775. package/dist/config/decrypt/kbpgp.js +0 -58
  776. package/dist/config/decrypt/kbpgp.js.map +0 -1
  777. package/dist/config/decrypt/legacy.d.ts +0 -2
  778. package/dist/config/decrypt/legacy.js +0 -36
  779. package/dist/config/decrypt/legacy.js.map +0 -1
  780. package/dist/modules/versioning/ruby/strategies/pin.d.ts +0 -4
  781. package/dist/modules/versioning/ruby/strategies/pin.js +0 -4
  782. package/dist/modules/versioning/ruby/strategies/pin.js.map +0 -1
@@ -1 +1,2 @@
1
- export declare const configFileNames: string[];
1
+ export declare function setUserConfigFileNames(fileNames: string[]): void;
2
+ export declare function getConfigFileNames(): string[];
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configFileNames = void 0;
4
- exports.configFileNames = [
3
+ exports.setUserConfigFileNames = setUserConfigFileNames;
4
+ exports.getConfigFileNames = getConfigFileNames;
5
+ const configFileNames = [
5
6
  'renovate.json',
6
7
  'renovate.json5',
7
8
  '.github/renovate.json',
@@ -13,4 +14,11 @@ exports.configFileNames = [
13
14
  '.renovaterc.json5',
14
15
  'package.json',
15
16
  ];
17
+ let userAddedConfigFileNames = [];
18
+ function setUserConfigFileNames(fileNames) {
19
+ userAddedConfigFileNames = fileNames;
20
+ }
21
+ function getConfigFileNames() {
22
+ return [...userAddedConfigFileNames, ...configFileNames];
23
+ }
16
24
  //# sourceMappingURL=app-strings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-strings.js","sourceRoot":"","sources":["../../lib/config/app-strings.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG;IAC7B,eAAe;IACf,gBAAgB;IAChB,uBAAuB;IACvB,wBAAwB;IACxB,uBAAuB;IACvB,wBAAwB;IACxB,aAAa;IACb,kBAAkB;IAClB,mBAAmB;IACnB,cAAc;CACf,CAAC","sourcesContent":["export const configFileNames = [\n 'renovate.json',\n 'renovate.json5',\n '.github/renovate.json',\n '.github/renovate.json5',\n '.gitlab/renovate.json',\n '.gitlab/renovate.json5',\n '.renovaterc',\n '.renovaterc.json',\n '.renovaterc.json5',\n 'package.json',\n];\n"]}
1
+ {"version":3,"file":"app-strings.js","sourceRoot":"","sources":["../../lib/config/app-strings.ts"],"names":[],"mappings":";;AAeA,wDAEC;AAED,gDAEC;AArBD,MAAM,eAAe,GAAG;IACtB,eAAe;IACf,gBAAgB;IAChB,uBAAuB;IACvB,wBAAwB;IACxB,uBAAuB;IACvB,wBAAwB;IACxB,aAAa;IACb,kBAAkB;IAClB,mBAAmB;IACnB,cAAc;CACf,CAAC;AAEF,IAAI,wBAAwB,GAAa,EAAE,CAAC;AAE5C,SAAgB,sBAAsB,CAAC,SAAmB;IACxD,wBAAwB,GAAG,SAAS,CAAC;AACvC,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,CAAC,GAAG,wBAAwB,EAAE,GAAG,eAAe,CAAC,CAAC;AAC3D,CAAC","sourcesContent":["const configFileNames = [\n 'renovate.json',\n 'renovate.json5',\n '.github/renovate.json',\n '.github/renovate.json5',\n '.gitlab/renovate.json',\n '.gitlab/renovate.json5',\n '.renovaterc',\n '.renovaterc.json',\n '.renovaterc.json5',\n 'package.json',\n];\n\nlet userAddedConfigFileNames: string[] = [];\n\nexport function setUserConfigFileNames(fileNames: string[]): void {\n userAddedConfigFileNames = fileNames;\n}\n\nexport function getConfigFileNames(): string[] {\n return [...userAddedConfigFileNames, ...configFileNames];\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare function tryDecryptBcPgp(privateKey: string, encryptedStr: string): Promise<string | null>;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tryDecryptBcPgp = tryDecryptBcPgp;
4
+ const pgp_1 = require("@renovatebot/pgp");
5
+ const logger_1 = require("../../logger");
6
+ const env_1 = require("../../util/env");
7
+ const regex_1 = require("../../util/regex");
8
+ async function tryDecryptBcPgp(privateKey, encryptedStr) {
9
+ try {
10
+ const startBlock = '-----BEGIN PGP MESSAGE-----\n\n';
11
+ const endBlock = '\n-----END PGP MESSAGE-----';
12
+ let armoredMessage = encryptedStr.trim();
13
+ const hasStartHeader = armoredMessage.startsWith(startBlock);
14
+ const hasEndHeader = armoredMessage.endsWith(endBlock);
15
+ if (!hasStartHeader &&
16
+ !hasEndHeader &&
17
+ !armoredMessage.includes('=') &&
18
+ !armoredMessage.includes('\n') &&
19
+ armoredMessage.length % 4 !== 0) {
20
+ logger_1.logger.debug('Adding base64 padding to armored message');
21
+ armoredMessage += `=`.repeat(4 - (armoredMessage.length % 4));
22
+ }
23
+ if (!hasStartHeader) {
24
+ armoredMessage = `${startBlock}${armoredMessage}`;
25
+ }
26
+ if (!hasEndHeader) {
27
+ armoredMessage = `${armoredMessage}${endBlock}`;
28
+ }
29
+ const data = await (0, pgp_1.decrypt)(privateKey.replace((0, regex_1.regEx)(/\n[ \t]+/g), '\n'), // little massage to help a common problem
30
+ armoredMessage, {
31
+ runtime: runtime(),
32
+ });
33
+ logger_1.logger.debug('Decrypted config using bcpgp');
34
+ return data;
35
+ }
36
+ catch (err) {
37
+ logger_1.logger.debug({ err }, 'Could not decrypt using bcpgp');
38
+ return null;
39
+ }
40
+ }
41
+ // TODO: use `wasm-java` as default when we require node v24+.
42
+ // Node v22 hungs on exit https://github.com/nodejs/node/issues/60584
43
+ function runtime() {
44
+ const runtime = (0, env_1.getEnv)().RENOVATE_X_PGP_RUNTIME;
45
+ if (runtime) {
46
+ if ((0, pgp_1.isSupportedRuntime)(runtime)) {
47
+ logger_1.logger.trace({ runtime }, 'Using configured PGP runtime');
48
+ return runtime;
49
+ }
50
+ else {
51
+ logger_1.logger.once.warn({ runtime }, 'Unknown PGP runtime, using wasm-dotnet');
52
+ }
53
+ }
54
+ logger_1.logger.trace('Using default PGP runtime: wasm-dotnet');
55
+ return 'wasm-dotnet';
56
+ }
57
+ //# sourceMappingURL=bcpgp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bcpgp.js","sourceRoot":"","sources":["../../../lib/config/decrypt/bcpgp.ts"],"names":[],"mappings":";;AAMA,0CA2CC;AAhDD,0CAA+D;AAC/D,yCAAsC;AACtC,wCAAwC;AACxC,4CAAyC;AAElC,KAAK,UAAU,eAAe,CACnC,UAAkB,EAClB,YAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,iCAAiC,CAAC;QACrD,MAAM,QAAQ,GAAG,6BAA6B,CAAC;QAC/C,IAAI,cAAc,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;QAEzC,MAAM,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEvD,IACE,CAAC,cAAc;YACf,CAAC,YAAY;YACb,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC7B,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9B,cAAc,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAC/B,CAAC;YACD,eAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACzD,cAAc,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,cAAc,GAAG,GAAG,UAAU,GAAG,cAAc,EAAE,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,cAAc,GAAG,GAAG,cAAc,GAAG,QAAQ,EAAE,CAAC;QAClD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAA,aAAO,EACxB,UAAU,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,WAAW,CAAC,EAAE,IAAI,CAAC,EAAE,0CAA0C;QACxF,cAAc,EACd;YACE,OAAO,EAAE,OAAO,EAAE;SACnB,CACF,CAAC;QACF,eAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,+BAA+B,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,qEAAqE;AACrE,SAAS,OAAO;IACd,MAAM,OAAO,GAAG,IAAA,YAAM,GAAE,CAAC,sBAAsB,CAAC;IAChD,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,IAAA,wBAAkB,EAAC,OAAO,CAAC,EAAE,CAAC;YAChC,eAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,8BAA8B,CAAC,CAAC;YAC1D,OAAO,OAAO,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,wCAAwC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IACD,eAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACvD,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import type { RuntimeType } from '@renovatebot/pgp';\nimport { decrypt, isSupportedRuntime } from '@renovatebot/pgp';\nimport { logger } from '../../logger';\nimport { getEnv } from '../../util/env';\nimport { regEx } from '../../util/regex';\n\nexport async function tryDecryptBcPgp(\n privateKey: string,\n encryptedStr: string,\n): Promise<string | null> {\n try {\n const startBlock = '-----BEGIN PGP MESSAGE-----\\n\\n';\n const endBlock = '\\n-----END PGP MESSAGE-----';\n let armoredMessage = encryptedStr.trim();\n\n const hasStartHeader = armoredMessage.startsWith(startBlock);\n const hasEndHeader = armoredMessage.endsWith(endBlock);\n\n if (\n !hasStartHeader &&\n !hasEndHeader &&\n !armoredMessage.includes('=') &&\n !armoredMessage.includes('\\n') &&\n armoredMessage.length % 4 !== 0\n ) {\n logger.debug('Adding base64 padding to armored message');\n armoredMessage += `=`.repeat(4 - (armoredMessage.length % 4));\n }\n\n if (!hasStartHeader) {\n armoredMessage = `${startBlock}${armoredMessage}`;\n }\n if (!hasEndHeader) {\n armoredMessage = `${armoredMessage}${endBlock}`;\n }\n\n const data = await decrypt(\n privateKey.replace(regEx(/\\n[ \\t]+/g), '\\n'), // little massage to help a common problem\n armoredMessage,\n {\n runtime: runtime(),\n },\n );\n logger.debug('Decrypted config using bcpgp');\n return data;\n } catch (err) {\n logger.debug({ err }, 'Could not decrypt using bcpgp');\n return null;\n }\n}\n\n// TODO: use `wasm-java` as default when we require node v24+.\n// Node v22 hungs on exit https://github.com/nodejs/node/issues/60584\nfunction runtime(): RuntimeType {\n const runtime = getEnv().RENOVATE_X_PGP_RUNTIME;\n if (runtime) {\n if (isSupportedRuntime(runtime)) {\n logger.trace({ runtime }, 'Using configured PGP runtime');\n return runtime;\n } else {\n logger.once.warn({ runtime }, 'Unknown PGP runtime, using wasm-dotnet');\n }\n }\n logger.trace('Using default PGP runtime: wasm-dotnet');\n return 'wasm-dotnet';\n}\n"]}
@@ -6,10 +6,6 @@ const logger_1 = require("../../logger");
6
6
  const regex_1 = require("../../util/regex");
7
7
  let pgp = undefined;
8
8
  async function tryDecryptOpenPgp(privateKey, encryptedStr) {
9
- if (encryptedStr.length < 500) {
10
- // optimization during transition of public key -> pgp
11
- return null;
12
- }
13
9
  if (pgp === undefined) {
14
10
  try {
15
11
  pgp = (0, expose_cjs_1.openpgp)();
@@ -1 +1 @@
1
- {"version":3,"file":"openpgp.js","sourceRoot":"","sources":["../../../lib/config/decrypt/openpgp.ts"],"names":[],"mappings":";;AAMA,8CAiDC;AAvDD,iDAA2C;AAC3C,yCAAsC;AACtC,4CAAyC;AAEzC,IAAI,GAAG,GAAgD,SAAS,CAAC;AAE1D,KAAK,UAAU,iBAAiB,CACrC,UAAkB,EAClB,YAAoB;IAEpB,IAAI,YAAY,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAC9B,sDAAsD;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,GAAG,GAAG,IAAA,oBAAO,GAAE,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;YAC3C,GAAG,GAAG,IAAI,CAAC;QACb,CAAC;IACH,CAAC;IAED,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC;YAClC,kBAAkB;YAClB,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,WAAW,CAAC,EAAE,IAAI,CAAC,EAAE,0CAA0C;SACrG,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,iCAAiC,CAAC;QACrD,MAAM,QAAQ,GAAG,6BAA6B,CAAC;QAC/C,IAAI,cAAc,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,cAAc,GAAG,GAAG,UAAU,GAAG,cAAc,EAAE,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,cAAc,GAAG,GAAG,cAAc,GAAG,QAAQ,EAAE,CAAC;QAClD,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC;YACpC,cAAc;SACf,CAAC,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC;YACjC,OAAO;YACP,cAAc,EAAE,EAAE;SACnB,CAAC,CAAC;QACH,eAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,iCAAiC,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["import { openpgp } from '../../expose.cjs';\nimport { logger } from '../../logger';\nimport { regEx } from '../../util/regex';\n\nlet pgp: typeof import('openpgp') | null | undefined = undefined;\n\nexport async function tryDecryptOpenPgp(\n privateKey: string,\n encryptedStr: string,\n): Promise<string | null> {\n if (encryptedStr.length < 500) {\n // optimization during transition of public key -> pgp\n return null;\n }\n if (pgp === undefined) {\n try {\n pgp = openpgp();\n } catch (err) {\n logger.warn({ err }, 'Could load openpgp');\n pgp = null;\n }\n }\n\n if (pgp === null) {\n logger.once.warn('Cannot load openpgp, skipping decryption');\n return null;\n }\n\n try {\n const pk = await pgp.readPrivateKey({\n // prettier-ignore\n armoredKey: privateKey.replace(regEx(/\\n[ \\t]+/g), '\\n'), // little massage to help a common problem\n });\n const startBlock = '-----BEGIN PGP MESSAGE-----\\n\\n';\n const endBlock = '\\n-----END PGP MESSAGE-----';\n let armoredMessage = encryptedStr.trim();\n if (!armoredMessage.startsWith(startBlock)) {\n armoredMessage = `${startBlock}${armoredMessage}`;\n }\n if (!armoredMessage.endsWith(endBlock)) {\n armoredMessage = `${armoredMessage}${endBlock}`;\n }\n const message = await pgp.readMessage({\n armoredMessage,\n });\n const { data } = await pgp.decrypt({\n message,\n decryptionKeys: pk,\n });\n logger.debug('Decrypted config using openpgp');\n return data;\n } catch (err) {\n logger.debug({ err }, 'Could not decrypt using openpgp');\n return null;\n }\n}\n"]}
1
+ {"version":3,"file":"openpgp.js","sourceRoot":"","sources":["../../../lib/config/decrypt/openpgp.ts"],"names":[],"mappings":";;AAMA,8CA6CC;AAnDD,iDAA2C;AAC3C,yCAAsC;AACtC,4CAAyC;AAEzC,IAAI,GAAG,GAAgD,SAAS,CAAC;AAE1D,KAAK,UAAU,iBAAiB,CACrC,UAAkB,EAClB,YAAoB;IAEpB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,GAAG,GAAG,IAAA,oBAAO,GAAE,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;YAC3C,GAAG,GAAG,IAAI,CAAC;QACb,CAAC;IACH,CAAC;IAED,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC;YAClC,kBAAkB;YAClB,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,WAAW,CAAC,EAAE,IAAI,CAAC,EAAE,0CAA0C;SACrG,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,iCAAiC,CAAC;QACrD,MAAM,QAAQ,GAAG,6BAA6B,CAAC;QAC/C,IAAI,cAAc,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,cAAc,GAAG,GAAG,UAAU,GAAG,cAAc,EAAE,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,cAAc,GAAG,GAAG,cAAc,GAAG,QAAQ,EAAE,CAAC;QAClD,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC;YACpC,cAAc;SACf,CAAC,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC;YACjC,OAAO;YACP,cAAc,EAAE,EAAE;SACnB,CAAC,CAAC;QACH,eAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,iCAAiC,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["import { openpgp } from '../../expose.cjs';\nimport { logger } from '../../logger';\nimport { regEx } from '../../util/regex';\n\nlet pgp: typeof import('openpgp') | null | undefined = undefined;\n\nexport async function tryDecryptOpenPgp(\n privateKey: string,\n encryptedStr: string,\n): Promise<string | null> {\n if (pgp === undefined) {\n try {\n pgp = openpgp();\n } catch (err) {\n logger.warn({ err }, 'Could load openpgp');\n pgp = null;\n }\n }\n\n if (pgp === null) {\n logger.once.warn('Cannot load openpgp, skipping decryption');\n return null;\n }\n\n try {\n const pk = await pgp.readPrivateKey({\n // prettier-ignore\n armoredKey: privateKey.replace(regEx(/\\n[ \\t]+/g), '\\n'), // little massage to help a common problem\n });\n const startBlock = '-----BEGIN PGP MESSAGE-----\\n\\n';\n const endBlock = '\\n-----END PGP MESSAGE-----';\n let armoredMessage = encryptedStr.trim();\n if (!armoredMessage.startsWith(startBlock)) {\n armoredMessage = `${startBlock}${armoredMessage}`;\n }\n if (!armoredMessage.endsWith(endBlock)) {\n armoredMessage = `${armoredMessage}${endBlock}`;\n }\n const message = await pgp.readMessage({\n armoredMessage,\n });\n const { data } = await pgp.decrypt({\n message,\n decryptionKeys: pk,\n });\n logger.debug('Decrypted config using openpgp');\n return data;\n } catch (err) {\n logger.debug({ err }, 'Could not decrypt using openpgp');\n return null;\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { RenovateConfig } from './types';
2
2
  export declare function setPrivateKeys(pKey: string | undefined, pKeyOld: string | undefined): void;
3
- export declare function tryDecrypt(key: string, encryptedStr: string, repository: string, keyName: string): Promise<string | null>;
3
+ export declare function tryDecrypt(key: string, encryptedStr: string, repository: string): Promise<string | null>;
4
4
  export declare function validateDecryptedValue(decryptedObjStr: string, repository: string): string | null;
5
5
  export declare function decryptConfig(config: RenovateConfig, repository: string, existingPath?: string): Promise<RenovateConfig>;
6
6
  export declare function getAzureCollection(): string | undefined;
@@ -13,8 +13,7 @@ const env_1 = require("../util/env");
13
13
  const regex_1 = require("../util/regex");
14
14
  const sanitize_1 = require("../util/sanitize");
15
15
  const url_1 = require("../util/url");
16
- const kbpgp_1 = require("./decrypt/kbpgp");
17
- const legacy_1 = require("./decrypt/legacy");
16
+ const bcpgp_1 = require("./decrypt/bcpgp");
18
17
  const openpgp_1 = require("./decrypt/openpgp");
19
18
  const global_1 = require("./global");
20
19
  const schema_1 = require("./schema");
@@ -24,29 +23,13 @@ function setPrivateKeys(pKey, pKeyOld) {
24
23
  privateKey = pKey;
25
24
  privateKeyOld = pKeyOld;
26
25
  }
27
- async function tryDecrypt(key, encryptedStr, repository, keyName) {
26
+ async function tryDecrypt(key, encryptedStr, repository) {
28
27
  let decryptedStr = null;
29
- if (key?.startsWith('-----BEGIN PGP PRIVATE KEY BLOCK-----')) {
30
- const decryptedObjStr = (0, env_1.getEnv)().RENOVATE_X_USE_OPENPGP === 'true'
31
- ? await (0, openpgp_1.tryDecryptOpenPgp)(key, encryptedStr)
32
- : await (0, kbpgp_1.tryDecryptKbPgp)(key, encryptedStr);
33
- if (decryptedObjStr) {
34
- decryptedStr = validateDecryptedValue(decryptedObjStr, repository);
35
- }
36
- }
37
- else {
38
- decryptedStr = (0, legacy_1.tryDecryptPublicKeyDefault)(key, encryptedStr);
39
- if (is_1.default.string(decryptedStr)) {
40
- logger_1.logger.warn({ keyName }, 'Encrypted value is using deprecated default padding, please change to using PGP encryption.');
41
- }
42
- else {
43
- decryptedStr = (0, legacy_1.tryDecryptPublicKeyPKCS1)(key, encryptedStr);
44
- /* v8 ignore start -- not testable */
45
- if (is_1.default.string(decryptedStr)) {
46
- logger_1.logger.warn({ keyName }, 'Encrypted value is using deprecated PKCS1 padding, please change to using PGP encryption.');
47
- }
48
- /* v8 ignore stop */
49
- }
28
+ const decryptedObjStr = (0, env_1.getEnv)().RENOVATE_X_USE_OPENPGP === 'true'
29
+ ? await (0, openpgp_1.tryDecryptOpenPgp)(key, encryptedStr)
30
+ : await (0, bcpgp_1.tryDecryptBcPgp)(key, encryptedStr);
31
+ if (decryptedObjStr) {
32
+ decryptedStr = validateDecryptedValue(decryptedObjStr, repository);
50
33
  }
51
34
  return decryptedStr;
52
35
  }
@@ -129,10 +112,10 @@ async function decryptConfig(config, repository, existingPath = '$') {
129
112
  if (privateKey) {
130
113
  for (const [eKey, eVal] of Object.entries(val)) {
131
114
  logger_1.logger.debug(`Trying to decrypt ${eKey} in ${path}`);
132
- let decryptedStr = await tryDecrypt(privateKey, eVal, repository, eKey);
115
+ let decryptedStr = await tryDecrypt(privateKey, eVal, repository);
133
116
  if (privateKeyOld && !is_1.default.nonEmptyString(decryptedStr)) {
134
117
  logger_1.logger.debug(`Trying to decrypt with old private key`);
135
- decryptedStr = await tryDecrypt(privateKeyOld, eVal, repository, eKey);
118
+ decryptedStr = await tryDecrypt(privateKeyOld, eVal, repository);
136
119
  }
137
120
  if (!is_1.default.nonEmptyString(decryptedStr)) {
138
121
  const error = new Error('config-validation');
@@ -1 +1 @@
1
- {"version":3,"file":"decrypt.js","sourceRoot":"","sources":["../../lib/config/decrypt.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { CONFIG_VALIDATION } from '../constants/error-messages';\nimport { logger } from '../logger';\nimport { getEnv } from '../util/env';\nimport { regEx } from '../util/regex';\nimport { addSecretForSanitizing } from '../util/sanitize';\nimport { ensureTrailingSlash, parseUrl, trimSlashes } from '../util/url';\nimport { tryDecryptKbPgp } from './decrypt/kbpgp';\nimport {\n tryDecryptPublicKeyDefault,\n tryDecryptPublicKeyPKCS1,\n} from './decrypt/legacy';\nimport { tryDecryptOpenPgp } from './decrypt/openpgp';\nimport { GlobalConfig } from './global';\nimport { DecryptedObject } from './schema';\nimport type { RenovateConfig } from './types';\n\nlet privateKey: string | undefined;\nlet privateKeyOld: string | undefined;\n\nexport function setPrivateKeys(\n pKey: string | undefined,\n pKeyOld: string | undefined,\n): void {\n privateKey = pKey;\n privateKeyOld = pKeyOld;\n}\n\nexport async function tryDecrypt(\n key: string,\n encryptedStr: string,\n repository: string,\n keyName: string,\n): Promise<string | null> {\n let decryptedStr: string | null = null;\n if (key?.startsWith('-----BEGIN PGP PRIVATE KEY BLOCK-----')) {\n const decryptedObjStr =\n getEnv().RENOVATE_X_USE_OPENPGP === 'true'\n ? await tryDecryptOpenPgp(key, encryptedStr)\n : await tryDecryptKbPgp(key, encryptedStr);\n if (decryptedObjStr) {\n decryptedStr = validateDecryptedValue(decryptedObjStr, repository);\n }\n } else {\n decryptedStr = tryDecryptPublicKeyDefault(key, encryptedStr);\n if (is.string(decryptedStr)) {\n logger.warn(\n { keyName },\n 'Encrypted value is using deprecated default padding, please change to using PGP encryption.',\n );\n } else {\n decryptedStr = tryDecryptPublicKeyPKCS1(key, encryptedStr);\n /* v8 ignore start -- not testable */\n if (is.string(decryptedStr)) {\n logger.warn(\n { keyName },\n 'Encrypted value is using deprecated PKCS1 padding, please change to using PGP encryption.',\n );\n }\n /* v8 ignore stop */\n }\n }\n return decryptedStr;\n}\n\nexport function validateDecryptedValue(\n decryptedObjStr: string,\n repository: string,\n): string | null {\n try {\n const decryptedObj = DecryptedObject.safeParse(decryptedObjStr);\n if (!decryptedObj.success) {\n const error = new Error('config-validation');\n error.validationError = `Could not parse decrypted config.`;\n throw error;\n }\n\n const { o: org, r: repo, v: value } = decryptedObj.data;\n\n if (!is.nonEmptyString(value)) {\n const error = new Error('config-validation');\n error.validationError = `Encrypted value in config is missing a value.`;\n throw error;\n }\n\n if (!is.nonEmptyString(org)) {\n const error = new Error('config-validation');\n error.validationError = `Encrypted value in config is missing a scope.`;\n throw error;\n }\n\n const repositories = [repository.toUpperCase()];\n\n const azureCollection = getAzureCollection();\n if (is.nonEmptyString(azureCollection)) {\n // used for full 'org/project/repo' matching\n repositories.push(`${azureCollection}/${repository}`.toUpperCase());\n // used for org prefix matching without repo\n repositories.push(`${azureCollection}/*/`.toUpperCase());\n }\n\n const orgPrefixes = org\n .split(',')\n .map((o) => o.trim())\n .map((o) => o.toUpperCase())\n .map((o) => ensureTrailingSlash(o));\n\n if (is.nonEmptyString(repo)) {\n const scopedRepos = orgPrefixes.map((orgPrefix) =>\n `${orgPrefix}${repo}`.toUpperCase(),\n );\n for (const rp of repositories) {\n if (scopedRepos.some((r) => r === rp)) {\n return value;\n }\n }\n\n logger.debug(\n { scopedRepos },\n 'Secret is scoped to a different repository',\n );\n const error = new Error('config-validation');\n const scopeString = scopedRepos.join(',');\n error.validationError = `Encrypted secret is scoped to a different repository: \"${scopeString}\".`;\n throw error;\n }\n\n // no scoped repos, only org\n const azcol =\n azureCollection === undefined\n ? undefined\n : ensureTrailingSlash(azureCollection).toUpperCase();\n for (const rp of repositories) {\n if (\n orgPrefixes.some(\n (orgPrefix) => rp.startsWith(orgPrefix) && orgPrefix !== azcol,\n )\n ) {\n return value;\n }\n }\n logger.debug({ orgPrefixes }, 'Secret is scoped to a different org');\n const error = new Error('config-validation');\n const scopeString = orgPrefixes.join(',');\n error.validationError = `Encrypted secret is scoped to a different org: \"${scopeString}\".`;\n throw error;\n } catch (err) {\n logger.warn({ err }, 'Could not parse decrypted string');\n }\n return null;\n}\n\nexport async function decryptConfig(\n config: RenovateConfig,\n repository: string,\n existingPath = '$',\n): Promise<RenovateConfig> {\n logger.trace({ config }, 'decryptConfig()');\n const decryptedConfig = { ...config };\n for (const [key, val] of Object.entries(config)) {\n if (key === 'encrypted' && is.object(val)) {\n const path = `${existingPath}.${key}`;\n logger.debug({ config: val }, `Found encrypted config in ${path}`);\n\n const encryptedWarning = GlobalConfig.get('encryptedWarning');\n if (is.string(encryptedWarning)) {\n logger.once.warn(encryptedWarning);\n }\n\n if (privateKey) {\n for (const [eKey, eVal] of Object.entries(val)) {\n logger.debug(`Trying to decrypt ${eKey} in ${path}`);\n let decryptedStr = await tryDecrypt(\n privateKey,\n eVal,\n repository,\n eKey,\n );\n if (privateKeyOld && !is.nonEmptyString(decryptedStr)) {\n logger.debug(`Trying to decrypt with old private key`);\n decryptedStr = await tryDecrypt(\n privateKeyOld,\n eVal,\n repository,\n eKey,\n );\n }\n if (!is.nonEmptyString(decryptedStr)) {\n const error = new Error('config-validation');\n error.validationError = `Failed to decrypt field ${eKey}. Please re-encrypt and try again.`;\n throw error;\n }\n logger.debug(`Decrypted ${eKey} in ${path}`);\n if (eKey === 'npmToken') {\n const token = decryptedStr.replace(regEx(/\\n$/), '');\n decryptedConfig[eKey] = token;\n addSecretForSanitizing(token);\n } else {\n decryptedConfig[eKey] = decryptedStr;\n addSecretForSanitizing(decryptedStr);\n }\n }\n } else {\n const env = getEnv();\n if (env.RENOVATE_X_ENCRYPTED_STRICT === 'true') {\n const error = new Error(CONFIG_VALIDATION);\n error.validationSource = 'config';\n error.validationError = 'Encrypted config unsupported';\n error.validationMessage = `This config contains an encrypted object at location \\`$.${key}\\` but no privateKey is configured. To support encrypted config, the Renovate administrator must configure a \\`privateKey\\` in Global Configuration.`;\n if (env.MEND_HOSTED === 'true') {\n error.validationMessage = `Mend-hosted Renovate Apps no longer support the use of encrypted secrets in Renovate file config (e.g. renovate.json).\nPlease migrate all secrets to the Developer Portal using the web UI available at https://developer.mend.io/\n\nRefer to migration documents here: https://docs.renovatebot.com/mend-hosted/migrating-secrets/`;\n }\n throw error;\n } else {\n logger.error('Found encrypted data but no privateKey');\n }\n }\n delete decryptedConfig.encrypted;\n } else if (is.array(val)) {\n decryptedConfig[key] = [];\n for (const [index, item] of val.entries()) {\n if (is.object(item) && !is.array(item)) {\n const path = `${existingPath}.${key}[${index}]`;\n (decryptedConfig[key] as RenovateConfig[]).push(\n await decryptConfig(item as RenovateConfig, repository, path),\n );\n } else {\n (decryptedConfig[key] as unknown[]).push(item);\n }\n }\n } else if (is.object(val) && key !== 'content') {\n const path = `${existingPath}.${key}`;\n decryptedConfig[key] = await decryptConfig(\n val as RenovateConfig,\n repository,\n path,\n );\n }\n }\n delete decryptedConfig.encrypted;\n logger.trace({ config: decryptedConfig }, 'decryptedConfig');\n return decryptedConfig;\n}\n\nexport function getAzureCollection(): string | undefined {\n const platform = GlobalConfig.get('platform');\n if (platform !== 'azure') {\n return undefined;\n }\n\n const endpoint = GlobalConfig.get('endpoint');\n const endpointUrl = parseUrl(endpoint);\n if (endpointUrl === null) {\n // should not happen\n logger.warn({ endpoint }, 'Unable to parse endpoint for token decryption');\n return undefined;\n }\n\n const azureCollection = trimSlashes(endpointUrl.pathname);\n if (!is.nonEmptyString(azureCollection)) {\n logger.debug({ endpoint }, 'Unable to find azure collection name from URL');\n return undefined;\n }\n\n if (azureCollection.startsWith('tfs/')) {\n // Azure DevOps Server\n return azureCollection.substring(4);\n }\n return azureCollection;\n}\n"]}
1
+ {"version":3,"file":"decrypt.js","sourceRoot":"","sources":["../../lib/config/decrypt.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { CONFIG_VALIDATION } from '../constants/error-messages';\nimport { logger } from '../logger';\nimport { getEnv } from '../util/env';\nimport { regEx } from '../util/regex';\nimport { addSecretForSanitizing } from '../util/sanitize';\nimport { ensureTrailingSlash, parseUrl, trimSlashes } from '../util/url';\nimport { tryDecryptBcPgp } from './decrypt/bcpgp';\nimport { tryDecryptOpenPgp } from './decrypt/openpgp';\nimport { GlobalConfig } from './global';\nimport { DecryptedObject } from './schema';\nimport type { RenovateConfig } from './types';\n\nlet privateKey: string | undefined;\nlet privateKeyOld: string | undefined;\n\nexport function setPrivateKeys(\n pKey: string | undefined,\n pKeyOld: string | undefined,\n): void {\n privateKey = pKey;\n privateKeyOld = pKeyOld;\n}\n\nexport async function tryDecrypt(\n key: string,\n encryptedStr: string,\n repository: string,\n): Promise<string | null> {\n let decryptedStr: string | null = null;\n const decryptedObjStr =\n getEnv().RENOVATE_X_USE_OPENPGP === 'true'\n ? await tryDecryptOpenPgp(key, encryptedStr)\n : await tryDecryptBcPgp(key, encryptedStr);\n if (decryptedObjStr) {\n decryptedStr = validateDecryptedValue(decryptedObjStr, repository);\n }\n return decryptedStr;\n}\n\nexport function validateDecryptedValue(\n decryptedObjStr: string,\n repository: string,\n): string | null {\n try {\n const decryptedObj = DecryptedObject.safeParse(decryptedObjStr);\n if (!decryptedObj.success) {\n const error = new Error('config-validation');\n error.validationError = `Could not parse decrypted config.`;\n throw error;\n }\n\n const { o: org, r: repo, v: value } = decryptedObj.data;\n\n if (!is.nonEmptyString(value)) {\n const error = new Error('config-validation');\n error.validationError = `Encrypted value in config is missing a value.`;\n throw error;\n }\n\n if (!is.nonEmptyString(org)) {\n const error = new Error('config-validation');\n error.validationError = `Encrypted value in config is missing a scope.`;\n throw error;\n }\n\n const repositories = [repository.toUpperCase()];\n\n const azureCollection = getAzureCollection();\n if (is.nonEmptyString(azureCollection)) {\n // used for full 'org/project/repo' matching\n repositories.push(`${azureCollection}/${repository}`.toUpperCase());\n // used for org prefix matching without repo\n repositories.push(`${azureCollection}/*/`.toUpperCase());\n }\n\n const orgPrefixes = org\n .split(',')\n .map((o) => o.trim())\n .map((o) => o.toUpperCase())\n .map((o) => ensureTrailingSlash(o));\n\n if (is.nonEmptyString(repo)) {\n const scopedRepos = orgPrefixes.map((orgPrefix) =>\n `${orgPrefix}${repo}`.toUpperCase(),\n );\n for (const rp of repositories) {\n if (scopedRepos.some((r) => r === rp)) {\n return value;\n }\n }\n\n logger.debug(\n { scopedRepos },\n 'Secret is scoped to a different repository',\n );\n const error = new Error('config-validation');\n const scopeString = scopedRepos.join(',');\n error.validationError = `Encrypted secret is scoped to a different repository: \"${scopeString}\".`;\n throw error;\n }\n\n // no scoped repos, only org\n const azcol =\n azureCollection === undefined\n ? undefined\n : ensureTrailingSlash(azureCollection).toUpperCase();\n for (const rp of repositories) {\n if (\n orgPrefixes.some(\n (orgPrefix) => rp.startsWith(orgPrefix) && orgPrefix !== azcol,\n )\n ) {\n return value;\n }\n }\n logger.debug({ orgPrefixes }, 'Secret is scoped to a different org');\n const error = new Error('config-validation');\n const scopeString = orgPrefixes.join(',');\n error.validationError = `Encrypted secret is scoped to a different org: \"${scopeString}\".`;\n throw error;\n } catch (err) {\n logger.warn({ err }, 'Could not parse decrypted string');\n }\n return null;\n}\n\nexport async function decryptConfig(\n config: RenovateConfig,\n repository: string,\n existingPath = '$',\n): Promise<RenovateConfig> {\n logger.trace({ config }, 'decryptConfig()');\n const decryptedConfig = { ...config };\n for (const [key, val] of Object.entries(config)) {\n if (key === 'encrypted' && is.object(val)) {\n const path = `${existingPath}.${key}`;\n logger.debug({ config: val }, `Found encrypted config in ${path}`);\n\n const encryptedWarning = GlobalConfig.get('encryptedWarning');\n if (is.string(encryptedWarning)) {\n logger.once.warn(encryptedWarning);\n }\n\n if (privateKey) {\n for (const [eKey, eVal] of Object.entries(val)) {\n logger.debug(`Trying to decrypt ${eKey} in ${path}`);\n let decryptedStr = await tryDecrypt(privateKey, eVal, repository);\n if (privateKeyOld && !is.nonEmptyString(decryptedStr)) {\n logger.debug(`Trying to decrypt with old private key`);\n decryptedStr = await tryDecrypt(privateKeyOld, eVal, repository);\n }\n if (!is.nonEmptyString(decryptedStr)) {\n const error = new Error('config-validation');\n error.validationError = `Failed to decrypt field ${eKey}. Please re-encrypt and try again.`;\n throw error;\n }\n logger.debug(`Decrypted ${eKey} in ${path}`);\n if (eKey === 'npmToken') {\n const token = decryptedStr.replace(regEx(/\\n$/), '');\n decryptedConfig[eKey] = token;\n addSecretForSanitizing(token);\n } else {\n decryptedConfig[eKey] = decryptedStr;\n addSecretForSanitizing(decryptedStr);\n }\n }\n } else {\n const env = getEnv();\n if (env.RENOVATE_X_ENCRYPTED_STRICT === 'true') {\n const error = new Error(CONFIG_VALIDATION);\n error.validationSource = 'config';\n error.validationError = 'Encrypted config unsupported';\n error.validationMessage = `This config contains an encrypted object at location \\`$.${key}\\` but no privateKey is configured. To support encrypted config, the Renovate administrator must configure a \\`privateKey\\` in Global Configuration.`;\n if (env.MEND_HOSTED === 'true') {\n error.validationMessage = `Mend-hosted Renovate Apps no longer support the use of encrypted secrets in Renovate file config (e.g. renovate.json).\nPlease migrate all secrets to the Developer Portal using the web UI available at https://developer.mend.io/\n\nRefer to migration documents here: https://docs.renovatebot.com/mend-hosted/migrating-secrets/`;\n }\n throw error;\n } else {\n logger.error('Found encrypted data but no privateKey');\n }\n }\n delete decryptedConfig.encrypted;\n } else if (is.array(val)) {\n decryptedConfig[key] = [];\n for (const [index, item] of val.entries()) {\n if (is.object(item) && !is.array(item)) {\n const path = `${existingPath}.${key}[${index}]`;\n (decryptedConfig[key] as RenovateConfig[]).push(\n await decryptConfig(item as RenovateConfig, repository, path),\n );\n } else {\n (decryptedConfig[key] as unknown[]).push(item);\n }\n }\n } else if (is.object(val) && key !== 'content') {\n const path = `${existingPath}.${key}`;\n decryptedConfig[key] = await decryptConfig(\n val as RenovateConfig,\n repository,\n path,\n );\n }\n }\n delete decryptedConfig.encrypted;\n logger.trace({ config: decryptedConfig }, 'decryptedConfig');\n return decryptedConfig;\n}\n\nexport function getAzureCollection(): string | undefined {\n const platform = GlobalConfig.get('platform');\n if (platform !== 'azure') {\n return undefined;\n }\n\n const endpoint = GlobalConfig.get('endpoint');\n const endpointUrl = parseUrl(endpoint);\n if (endpointUrl === null) {\n // should not happen\n logger.warn({ endpoint }, 'Unable to parse endpoint for token decryption');\n return undefined;\n }\n\n const azureCollection = trimSlashes(endpointUrl.pathname);\n if (!is.nonEmptyString(azureCollection)) {\n logger.debug({ endpoint }, 'Unable to find azure collection name from URL');\n return undefined;\n }\n\n if (azureCollection.startsWith('tfs/')) {\n // Azure DevOps Server\n return azureCollection.substring(4);\n }\n return azureCollection;\n}\n"]}
@@ -39,6 +39,7 @@ class GlobalConfig {
39
39
  's3Endpoint',
40
40
  's3PathStyle',
41
41
  'cachePrivatePackages',
42
+ 'ignorePrAuthor',
42
43
  ];
43
44
  static config = {};
44
45
  static get(key, defaultValue) {
@@ -1 +1 @@
1
- {"version":3,"file":"global.js","sourceRoot":"","sources":["../../lib/config/global.ts"],"names":[],"mappings":";;;AAEA,MAAa,YAAY;IACvB,iIAAiI;IACzH,MAAM,CAAU,OAAO,GAA+B;QAC5D,iBAAiB;QACjB,YAAY;QACZ,4BAA4B;QAC5B,gBAAgB;QAChB,cAAc;QACd,cAAc;QACd,cAAc;QACd,UAAU;QACV,qBAAqB;QACrB,kBAAkB;QAClB,kBAAkB;QAClB,oBAAoB;QACpB,mBAAmB;QACnB,kBAAkB;QAClB,oBAAoB;QACpB,YAAY;QACZ,QAAQ;QACR,kBAAkB;QAClB,cAAc;QACd,kBAAkB;QAClB,iBAAiB;QACjB,UAAU;QACV,gBAAgB;QAChB,wBAAwB;QACxB,YAAY;QACZ,UAAU;QACV,UAAU;QACV,kBAAkB;QAClB,sBAAsB;QACtB,uBAAuB;QACvB,WAAW;QACX,gBAAgB;QAChB,YAAY;QACZ,aAAa;QACb,sBAAsB;KACvB,CAAC;IAEM,MAAM,CAAC,MAAM,GAAqB,EAAE,CAAC;IAU7C,MAAM,CAAC,GAAG,CACR,GAAS,EACT,YAAoC;QAEpC,OAAO,GAAG;YACR,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;YAC5C,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,MAAyC;QAClD,YAAY,CAAC,KAAK,EAAE,CAAC;QAErB,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAC7B,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1C,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAU,CAAC;YACtD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAAK;QACV,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC;IAC3B,CAAC;;AAzEH,oCA0EC","sourcesContent":["import type { RenovateConfig, RepoGlobalConfig } from './types';\n\nexport class GlobalConfig {\n // TODO: once global config work is complete, add a test to make sure this list includes all options with globalOnly=true (#9603)\n private static readonly OPTIONS: (keyof RepoGlobalConfig)[] = [\n 'allowedCommands',\n 'allowedEnv',\n 'allowCustomCrateRegistries',\n 'allowedHeaders',\n 'allowPlugins',\n 'allowScripts',\n 'binarySource',\n 'cacheDir',\n 'cacheHardTtlMinutes',\n 'cacheTtlOverride',\n 'containerbaseDir',\n 'customEnvVariables',\n 'dockerChildPrefix',\n 'dockerCliOptions',\n 'dockerSidecarImage',\n 'dockerUser',\n 'dryRun',\n 'encryptedWarning',\n 'exposeAllEnv',\n 'executionTimeout',\n 'githubTokenWarn',\n 'localDir',\n 'migratePresets',\n 'presetCachePersistence',\n 'gitTimeout',\n 'platform',\n 'endpoint',\n 'httpCacheTtlDays',\n 'autodiscoverRepoSort',\n 'autodiscoverRepoOrder',\n 'userAgent',\n 'dockerMaxPages',\n 's3Endpoint',\n 's3PathStyle',\n 'cachePrivatePackages',\n ];\n\n private static config: RepoGlobalConfig = {};\n\n static get(): RepoGlobalConfig;\n static get<Key extends keyof RepoGlobalConfig>(\n key: Key,\n ): RepoGlobalConfig[Key];\n static get<Key extends keyof RepoGlobalConfig>(\n key: Key,\n defaultValue: Required<RepoGlobalConfig>[Key],\n ): Required<RepoGlobalConfig>[Key];\n static get<Key extends keyof RepoGlobalConfig>(\n key?: Key,\n defaultValue?: RepoGlobalConfig[Key],\n ): RepoGlobalConfig | RepoGlobalConfig[Key] {\n return key\n ? (GlobalConfig.config[key] ?? defaultValue)\n : GlobalConfig.config;\n }\n\n static set(config: RenovateConfig | RepoGlobalConfig): RenovateConfig {\n GlobalConfig.reset();\n\n const result = { ...config };\n for (const option of GlobalConfig.OPTIONS) {\n GlobalConfig.config[option] = config[option] as never;\n delete result[option];\n }\n\n return result;\n }\n\n static reset(): void {\n GlobalConfig.config = {};\n }\n}\n"]}
1
+ {"version":3,"file":"global.js","sourceRoot":"","sources":["../../lib/config/global.ts"],"names":[],"mappings":";;;AAEA,MAAa,YAAY;IACvB,iIAAiI;IACzH,MAAM,CAAU,OAAO,GAA+B;QAC5D,iBAAiB;QACjB,YAAY;QACZ,4BAA4B;QAC5B,gBAAgB;QAChB,cAAc;QACd,cAAc;QACd,cAAc;QACd,UAAU;QACV,qBAAqB;QACrB,kBAAkB;QAClB,kBAAkB;QAClB,oBAAoB;QACpB,mBAAmB;QACnB,kBAAkB;QAClB,oBAAoB;QACpB,YAAY;QACZ,QAAQ;QACR,kBAAkB;QAClB,cAAc;QACd,kBAAkB;QAClB,iBAAiB;QACjB,UAAU;QACV,gBAAgB;QAChB,wBAAwB;QACxB,YAAY;QACZ,UAAU;QACV,UAAU;QACV,kBAAkB;QAClB,sBAAsB;QACtB,uBAAuB;QACvB,WAAW;QACX,gBAAgB;QAChB,YAAY;QACZ,aAAa;QACb,sBAAsB;QACtB,gBAAgB;KACjB,CAAC;IAEM,MAAM,CAAC,MAAM,GAAqB,EAAE,CAAC;IAU7C,MAAM,CAAC,GAAG,CACR,GAAS,EACT,YAAoC;QAEpC,OAAO,GAAG;YACR,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;YAC5C,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,MAAyC;QAClD,YAAY,CAAC,KAAK,EAAE,CAAC;QAErB,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAC7B,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1C,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAU,CAAC;YACtD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAAK;QACV,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC;IAC3B,CAAC;;AA1EH,oCA2EC","sourcesContent":["import type { RenovateConfig, RepoGlobalConfig } from './types';\n\nexport class GlobalConfig {\n // TODO: once global config work is complete, add a test to make sure this list includes all options with globalOnly=true (#9603)\n private static readonly OPTIONS: (keyof RepoGlobalConfig)[] = [\n 'allowedCommands',\n 'allowedEnv',\n 'allowCustomCrateRegistries',\n 'allowedHeaders',\n 'allowPlugins',\n 'allowScripts',\n 'binarySource',\n 'cacheDir',\n 'cacheHardTtlMinutes',\n 'cacheTtlOverride',\n 'containerbaseDir',\n 'customEnvVariables',\n 'dockerChildPrefix',\n 'dockerCliOptions',\n 'dockerSidecarImage',\n 'dockerUser',\n 'dryRun',\n 'encryptedWarning',\n 'exposeAllEnv',\n 'executionTimeout',\n 'githubTokenWarn',\n 'localDir',\n 'migratePresets',\n 'presetCachePersistence',\n 'gitTimeout',\n 'platform',\n 'endpoint',\n 'httpCacheTtlDays',\n 'autodiscoverRepoSort',\n 'autodiscoverRepoOrder',\n 'userAgent',\n 'dockerMaxPages',\n 's3Endpoint',\n 's3PathStyle',\n 'cachePrivatePackages',\n 'ignorePrAuthor',\n ];\n\n private static config: RepoGlobalConfig = {};\n\n static get(): RepoGlobalConfig;\n static get<Key extends keyof RepoGlobalConfig>(\n key: Key,\n ): RepoGlobalConfig[Key];\n static get<Key extends keyof RepoGlobalConfig>(\n key: Key,\n defaultValue: Required<RepoGlobalConfig>[Key],\n ): Required<RepoGlobalConfig>[Key];\n static get<Key extends keyof RepoGlobalConfig>(\n key?: Key,\n defaultValue?: RepoGlobalConfig[Key],\n ): RepoGlobalConfig | RepoGlobalConfig[Key] {\n return key\n ? (GlobalConfig.config[key] ?? defaultValue)\n : GlobalConfig.config;\n }\n\n static set(config: RenovateConfig | RepoGlobalConfig): RenovateConfig {\n GlobalConfig.reset();\n\n const result = { ...config };\n for (const option of GlobalConfig.OPTIONS) {\n GlobalConfig.config[option] = config[option] as never;\n delete result[option];\n }\n\n return result;\n }\n\n static reset(): void {\n GlobalConfig.config = {};\n }\n}\n"]}
@@ -6,6 +6,10 @@ const later_1 = tslib_1.__importDefault(require("@breejs/later"));
6
6
  const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
7
7
  const regex_1 = require("../../../util/regex");
8
8
  const abstract_migration_1 = require("../base/abstract-migration");
9
+ const shortHoursRegex = (0, regex_1.regEx)(/( \d?\d)((a|p)m)/g);
10
+ const afterBeforeRegex = (0, regex_1.regEx)(/^(.*?)(after|before) (.*?) and (after|before) (.*?)( |$)(.*)/);
11
+ const dayRegex1 = (0, regex_1.regEx)(/every (mon|tues|wednes|thurs|fri|satur|sun)day$/);
12
+ const dayRegex2 = (0, regex_1.regEx)(/every ([a-z]*day)$/);
9
13
  class ScheduleMigration extends abstract_migration_1.AbstractMigration {
10
14
  propertyName = 'schedule';
11
15
  run(value) {
@@ -26,7 +30,7 @@ class ScheduleMigration extends abstract_migration_1.AbstractMigration {
26
30
  schedules[i].includes('after ')) {
27
31
  const parsedSchedule = later_1.default.parse.text(
28
32
  // We need to massage short hours first before we can parse it
29
- schedules[i].replace((0, regex_1.regEx)(/( \d?\d)((a|p)m)/g), '$1:00$2')).schedules[0];
33
+ schedules[i].replace(shortHoursRegex, '$1:00$2')).schedules[0];
30
34
  // Only migrate if the after time is greater than before, e.g. "after 10pm and before 5am"
31
35
  if (!parsedSchedule?.t_a || !parsedSchedule.t_b) {
32
36
  continue;
@@ -34,13 +38,9 @@ class ScheduleMigration extends abstract_migration_1.AbstractMigration {
34
38
  if (parsedSchedule.t_a[0] > parsedSchedule.t_b[0]) {
35
39
  const toSplit = schedules[i];
36
40
  schedules[i] = toSplit
37
- .replace((0, regex_1.regEx)(/^(.*?)(after|before) (.*?) and (after|before) (.*?)( |$)(.*)/), // TODO #12071
38
- '$1$2 $3 $7')
41
+ .replace(afterBeforeRegex, '$1$2 $3 $7')
39
42
  .trim();
40
- schedules.push(toSplit
41
- .replace((0, regex_1.regEx)(/^(.*?)(after|before) (.*?) and (after|before) (.*?)( |$)(.*)/), // TODO #12071
42
- '$1$4 $5 $7')
43
- .trim());
43
+ schedules.push(toSplit.replace(afterBeforeRegex, '$1$4 $5 $7').trim());
44
44
  }
45
45
  }
46
46
  }
@@ -54,10 +54,8 @@ class ScheduleMigration extends abstract_migration_1.AbstractMigration {
54
54
  if (schedules[i].endsWith(' every day')) {
55
55
  schedules[i] = schedules[i].replace(' every day', '');
56
56
  }
57
- if ((0, regex_1.regEx)(/every (mon|tues|wednes|thurs|fri|satur|sun)day$/).test(schedules[i]) // TODO #12071
58
- ) {
59
- schedules[i] = schedules[i].replace((0, regex_1.regEx)(/every ([a-z]*day)$/), // TODO #12071
60
- 'on $1');
57
+ if (dayRegex1.test(schedules[i])) {
58
+ schedules[i] = schedules[i].replace(dayRegex2, 'on $1');
61
59
  }
62
60
  if (schedules[i].endsWith('days')) {
63
61
  schedules[i] = schedules[i].replace('days', 'day');
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-migration.js","sourceRoot":"","sources":["../../../../lib/config/migrations/custom/schedule-migration.ts"],"names":[],"mappings":"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","sourcesContent":["import later from '@breejs/later';\nimport is from '@sindresorhus/is';\nimport { regEx } from '../../../util/regex';\nimport { AbstractMigration } from '../base/abstract-migration';\n\nexport class ScheduleMigration extends AbstractMigration {\n override readonly propertyName = 'schedule';\n\n override run(value: unknown): void {\n if (value) {\n // massage to array first\n let schedules: string[] = [];\n if (is.string(value)) {\n schedules = [value];\n }\n if (is.array<string>(value)) {\n schedules = [...value];\n }\n // split 'and'\n const schedulesLength = schedules.length;\n for (let i = 0; i < schedulesLength; i += 1) {\n if (\n schedules[i].includes(' and ') &&\n schedules[i].includes('before ') &&\n schedules[i].includes('after ')\n ) {\n const parsedSchedule = later.parse.text(\n // We need to massage short hours first before we can parse it\n schedules[i].replace(regEx(/( \\d?\\d)((a|p)m)/g), '$1:00$2'), // TODO #12071\n ).schedules[0];\n // Only migrate if the after time is greater than before, e.g. \"after 10pm and before 5am\"\n if (!parsedSchedule?.t_a || !parsedSchedule.t_b) {\n continue;\n }\n\n if (parsedSchedule.t_a[0] > parsedSchedule.t_b[0]) {\n const toSplit = schedules[i];\n schedules[i] = toSplit\n .replace(\n regEx(\n /^(.*?)(after|before) (.*?) and (after|before) (.*?)( |$)(.*)/,\n ), // TODO #12071\n '$1$2 $3 $7',\n )\n .trim();\n schedules.push(\n toSplit\n .replace(\n regEx(\n /^(.*?)(after|before) (.*?) and (after|before) (.*?)( |$)(.*)/,\n ), // TODO #12071\n '$1$4 $5 $7',\n )\n .trim(),\n );\n }\n }\n }\n for (let i = 0; i < schedules.length; i += 1) {\n if (schedules[i].includes('on the last day of the month')) {\n schedules[i] = schedules[i].replace(\n 'on the last day of the month',\n 'on the first day of the month',\n );\n }\n if (schedules[i].includes('on every weekday')) {\n schedules[i] = schedules[i].replace(\n 'on every weekday',\n 'every weekday',\n );\n }\n if (schedules[i].endsWith(' every day')) {\n schedules[i] = schedules[i].replace(' every day', '');\n }\n if (\n regEx(/every (mon|tues|wednes|thurs|fri|satur|sun)day$/).test(\n schedules[i],\n ) // TODO #12071\n ) {\n schedules[i] = schedules[i].replace(\n regEx(/every ([a-z]*day)$/), // TODO #12071\n 'on $1',\n );\n }\n if (schedules[i].endsWith('days')) {\n schedules[i] = schedules[i].replace('days', 'day');\n }\n }\n if (is.string(value) && schedules.length === 1) {\n this.rewrite(schedules[0]);\n } else {\n this.rewrite(schedules);\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"schedule-migration.js","sourceRoot":"","sources":["../../../../lib/config/migrations/custom/schedule-migration.ts"],"names":[],"mappings":"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","sourcesContent":["import later from '@breejs/later';\nimport is from '@sindresorhus/is';\nimport { regEx } from '../../../util/regex';\nimport { AbstractMigration } from '../base/abstract-migration';\n\nconst shortHoursRegex = regEx(/( \\d?\\d)((a|p)m)/g);\nconst afterBeforeRegex = regEx(\n /^(.*?)(after|before) (.*?) and (after|before) (.*?)( |$)(.*)/,\n);\nconst dayRegex1 = regEx(/every (mon|tues|wednes|thurs|fri|satur|sun)day$/);\nconst dayRegex2 = regEx(/every ([a-z]*day)$/);\nexport class ScheduleMigration extends AbstractMigration {\n override readonly propertyName = 'schedule';\n\n override run(value: unknown): void {\n if (value) {\n // massage to array first\n let schedules: string[] = [];\n if (is.string(value)) {\n schedules = [value];\n }\n if (is.array<string>(value)) {\n schedules = [...value];\n }\n // split 'and'\n const schedulesLength = schedules.length;\n for (let i = 0; i < schedulesLength; i += 1) {\n if (\n schedules[i].includes(' and ') &&\n schedules[i].includes('before ') &&\n schedules[i].includes('after ')\n ) {\n const parsedSchedule = later.parse.text(\n // We need to massage short hours first before we can parse it\n schedules[i].replace(shortHoursRegex, '$1:00$2'),\n ).schedules[0];\n // Only migrate if the after time is greater than before, e.g. \"after 10pm and before 5am\"\n if (!parsedSchedule?.t_a || !parsedSchedule.t_b) {\n continue;\n }\n\n if (parsedSchedule.t_a[0] > parsedSchedule.t_b[0]) {\n const toSplit = schedules[i];\n schedules[i] = toSplit\n .replace(afterBeforeRegex, '$1$2 $3 $7')\n .trim();\n schedules.push(\n toSplit.replace(afterBeforeRegex, '$1$4 $5 $7').trim(),\n );\n }\n }\n }\n for (let i = 0; i < schedules.length; i += 1) {\n if (schedules[i].includes('on the last day of the month')) {\n schedules[i] = schedules[i].replace(\n 'on the last day of the month',\n 'on the first day of the month',\n );\n }\n if (schedules[i].includes('on every weekday')) {\n schedules[i] = schedules[i].replace(\n 'on every weekday',\n 'every weekday',\n );\n }\n if (schedules[i].endsWith(' every day')) {\n schedules[i] = schedules[i].replace(' every day', '');\n }\n if (dayRegex1.test(schedules[i])) {\n schedules[i] = schedules[i].replace(dayRegex2, 'on $1');\n }\n if (schedules[i].endsWith('days')) {\n schedules[i] = schedules[i].replace('days', 'day');\n }\n }\n if (is.string(value) && schedules.length === 1) {\n this.rewrite(schedules[0]);\n } else {\n this.rewrite(schedules);\n }\n }\n }\n}\n"]}
@@ -9,6 +9,7 @@ class UnpublishSafeMigration extends abstract_migration_1.AbstractMigration {
9
9
  ':unpublishSafe',
10
10
  'default:unpublishSafe',
11
11
  'npm:unpublishSafe',
12
+ 'security:minimumReleaseAgeNpm',
12
13
  ];
13
14
  deprecated = true;
14
15
  propertyName = 'unpublishSafe';
@@ -20,11 +21,11 @@ class UnpublishSafeMigration extends abstract_migration_1.AbstractMigration {
20
21
  newExtendsValue.push(extendsValue);
21
22
  }
22
23
  if (newExtendsValue.every((item) => !this.isSupportedValue(item))) {
23
- newExtendsValue.push('npm:unpublishSafe');
24
+ newExtendsValue.push('security:minimumReleaseAgeNpm');
24
25
  }
25
26
  this.setHard('extends', newExtendsValue.map((item) => {
26
27
  if (this.isSupportedValue(item)) {
27
- return 'npm:unpublishSafe';
28
+ return 'security:minimumReleaseAgeNpm';
28
29
  }
29
30
  return item;
30
31
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"unpublish-safe-migration.js","sourceRoot":"","sources":["../../../../lib/config/migrations/custom/unpublish-safe-migration.ts"],"names":[],"mappings":";;;;AAAA,kEAAkC;AAClC,mEAA+D;AAE/D,MAAa,sBAAuB,SAAQ,sCAAiB;IACnD,MAAM,CAAU,gBAAgB,GAAG;QACzC,gBAAgB;QAChB,uBAAuB;QACvB,mBAAmB;KACpB,CAAC;IAEgB,UAAU,GAAG,IAAI,CAAC;IAClB,YAAY,GAAG,eAAe,CAAC;IAExC,GAAG,CAAC,KAAc;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAExE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,YAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC5B,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrC,CAAC;YAED,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAClE,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC,OAAO,CACV,SAAS,EACT,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC3B,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,OAAO,mBAAmB,CAAC;gBAC7B,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,KAAa;QACpC,OAAO,sBAAsB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;;AAtCH,wDAuCC","sourcesContent":["import is from '@sindresorhus/is';\nimport { AbstractMigration } from '../base/abstract-migration';\n\nexport class UnpublishSafeMigration extends AbstractMigration {\n private static readonly SUPPORTED_VALUES = [\n ':unpublishSafe',\n 'default:unpublishSafe',\n 'npm:unpublishSafe',\n ];\n\n override readonly deprecated = true;\n override readonly propertyName = 'unpublishSafe';\n\n override run(value: unknown): void {\n const extendsValue = this.get('extends');\n const newExtendsValue = Array.isArray(extendsValue) ? extendsValue : [];\n\n if (value === true) {\n if (is.string(extendsValue)) {\n newExtendsValue.push(extendsValue);\n }\n\n if (newExtendsValue.every((item) => !this.isSupportedValue(item))) {\n newExtendsValue.push('npm:unpublishSafe');\n }\n\n this.setHard(\n 'extends',\n newExtendsValue.map((item) => {\n if (this.isSupportedValue(item)) {\n return 'npm:unpublishSafe';\n }\n\n return item;\n }),\n );\n }\n }\n\n private isSupportedValue(value: string): boolean {\n return UnpublishSafeMigration.SUPPORTED_VALUES.includes(value);\n }\n}\n"]}
1
+ {"version":3,"file":"unpublish-safe-migration.js","sourceRoot":"","sources":["../../../../lib/config/migrations/custom/unpublish-safe-migration.ts"],"names":[],"mappings":";;;;AAAA,kEAAkC;AAClC,mEAA+D;AAE/D,MAAa,sBAAuB,SAAQ,sCAAiB;IACnD,MAAM,CAAU,gBAAgB,GAAG;QACzC,gBAAgB;QAChB,uBAAuB;QACvB,mBAAmB;QACnB,+BAA+B;KAChC,CAAC;IAEgB,UAAU,GAAG,IAAI,CAAC;IAClB,YAAY,GAAG,eAAe,CAAC;IAExC,GAAG,CAAC,KAAc;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAExE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,YAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC5B,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrC,CAAC;YAED,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAClE,eAAe,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YACxD,CAAC;YAED,IAAI,CAAC,OAAO,CACV,SAAS,EACT,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC3B,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,OAAO,+BAA+B,CAAC;gBACzC,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,KAAa;QACpC,OAAO,sBAAsB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;;AAvCH,wDAwCC","sourcesContent":["import is from '@sindresorhus/is';\nimport { AbstractMigration } from '../base/abstract-migration';\n\nexport class UnpublishSafeMigration extends AbstractMigration {\n private static readonly SUPPORTED_VALUES = [\n ':unpublishSafe',\n 'default:unpublishSafe',\n 'npm:unpublishSafe',\n 'security:minimumReleaseAgeNpm',\n ];\n\n override readonly deprecated = true;\n override readonly propertyName = 'unpublishSafe';\n\n override run(value: unknown): void {\n const extendsValue = this.get('extends');\n const newExtendsValue = Array.isArray(extendsValue) ? extendsValue : [];\n\n if (value === true) {\n if (is.string(extendsValue)) {\n newExtendsValue.push(extendsValue);\n }\n\n if (newExtendsValue.every((item) => !this.isSupportedValue(item))) {\n newExtendsValue.push('security:minimumReleaseAgeNpm');\n }\n\n this.setHard(\n 'extends',\n newExtendsValue.map((item) => {\n if (this.isSupportedValue(item)) {\n return 'security:minimumReleaseAgeNpm';\n }\n\n return item;\n }),\n );\n }\n }\n\n private isSupportedValue(value: string): boolean {\n return UnpublishSafeMigration.SUPPORTED_VALUES.includes(value);\n }\n}\n"]}
@@ -156,6 +156,14 @@ const options = [
156
156
  default: [],
157
157
  cli: false,
158
158
  },
159
+ {
160
+ name: 'workingDirTemplate',
161
+ description: 'A template describing the working directory in which post-upgrade tasks should be executed.',
162
+ type: 'string',
163
+ parents: ['postUpgradeTasks'],
164
+ cli: false,
165
+ env: false,
166
+ },
159
167
  {
160
168
  name: 'dataFileTemplate',
161
169
  description: 'A template to create post-upgrade command data file from.',
@@ -210,6 +218,17 @@ const options = [
210
218
  inheritConfigSupport: true,
211
219
  cli: false,
212
220
  },
221
+ {
222
+ name: 'configFileNames',
223
+ description: 'List of filenames where repository config will be stored.',
224
+ type: 'array',
225
+ subType: 'string',
226
+ default: null,
227
+ globalOnly: true,
228
+ inheritConfigSupport: true,
229
+ cli: false,
230
+ env: false,
231
+ },
213
232
  {
214
233
  name: 'onboardingConfigFileName',
215
234
  description: 'Change this value to override the default onboarding config file name.',
@@ -532,7 +551,7 @@ const options = [
532
551
  name: 'dockerSidecarImage',
533
552
  description: 'Change this value to override the default Renovate sidecar image.',
534
553
  type: 'string',
535
- default: 'ghcr.io/containerbase/sidecar:13.8.23',
554
+ default: 'ghcr.io/containerbase/sidecar:13.24.0',
536
555
  globalOnly: true,
537
556
  },
538
557
  {
@@ -723,6 +742,14 @@ const options = [
723
742
  type: 'string',
724
743
  default: `Dependency Dashboard`,
725
744
  },
745
+ {
746
+ name: 'dependencyDashboardCategory',
747
+ description: 'The category to group branches on the Dependency Dashboard issue.',
748
+ type: 'string',
749
+ default: null,
750
+ cli: false,
751
+ env: false,
752
+ },
726
753
  {
727
754
  name: 'dependencyDashboardHeader',
728
755
  description: 'Any text added here will be placed first in the Dependency Dashboard issue body.',
@@ -1020,7 +1047,7 @@ const options = [
1020
1047
  },
1021
1048
  {
1022
1049
  name: 'useBaseBranchConfig',
1023
- description: 'Whether to read configuration from `baseBranches` instead of only the default branch.',
1050
+ description: 'Whether to read configuration from base branches instead of only the default branch.',
1024
1051
  type: 'string',
1025
1052
  allowedValues: ['merge', 'none'],
1026
1053
  default: 'none',
@@ -1114,6 +1141,7 @@ const options = [
1114
1141
  'bitbucket-pipelines',
1115
1142
  'buildpacks',
1116
1143
  'crossplane',
1144
+ 'crow',
1117
1145
  'devcontainer',
1118
1146
  'docker-compose',
1119
1147
  'dockerfile',
@@ -1814,6 +1842,13 @@ const options = [
1814
1842
  type: 'string',
1815
1843
  default: null,
1816
1844
  },
1845
+ {
1846
+ name: 'minimumReleaseAgeBehaviour',
1847
+ description: 'When set in conjunction with `minimumReleaseAge`, controls whether the `releaseTimestamp` for a dependency update is required.',
1848
+ type: 'string',
1849
+ default: 'timestamp-required',
1850
+ allowedValues: ['timestamp-required', 'timestamp-optional'],
1851
+ },
1817
1852
  {
1818
1853
  name: 'abandonmentThreshold',
1819
1854
  description: 'Flags packages that have not been updated within this period as abandoned.',
@@ -2358,6 +2393,7 @@ const options = [
2358
2393
  'helmUpdateSubChartArchives',
2359
2394
  'kustomizeInflateHelmCharts',
2360
2395
  'npmDedupe',
2396
+ 'npmInstallTwice',
2361
2397
  'pnpmDedupe',
2362
2398
  'yarnDedupeFewer',
2363
2399
  'yarnDedupeHighest',
@@ -2701,6 +2737,16 @@ const options = [
2701
2737
  parents: ['customManagers'],
2702
2738
  cli: false,
2703
2739
  env: false,
2740
+ requiredIf: [
2741
+ {
2742
+ siblingProperties: [
2743
+ {
2744
+ property: 'customType',
2745
+ value: 'jsonata',
2746
+ },
2747
+ ],
2748
+ },
2749
+ ],
2704
2750
  },
2705
2751
  {
2706
2752
  name: 'matchStrings',
@@ -2818,6 +2864,7 @@ const options = [
2818
2864
  name: 'ignorePrAuthor',
2819
2865
  description: 'Set to `true` to fetch the entire list of PRs instead of only those authored by the Renovate user.',
2820
2866
  type: 'boolean',
2867
+ globalOnly: true,
2821
2868
  default: false,
2822
2869
  },
2823
2870
  {