renovate 42.0.0-next.2 → 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 (778) 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.js +7 -6
  504. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  505. package/dist/modules/platform/bitbucket-server/schema.d.ts +16 -17
  506. package/dist/modules/platform/bitbucket-server/schema.js +6 -8
  507. package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
  508. package/dist/modules/platform/codecommit/index.d.ts +0 -8
  509. package/dist/modules/platform/codecommit/index.js +16 -16
  510. package/dist/modules/platform/codecommit/index.js.map +1 -1
  511. package/dist/modules/platform/forgejo/index.js +39 -38
  512. package/dist/modules/platform/forgejo/index.js.map +1 -1
  513. package/dist/modules/platform/forgejo/types.d.ts +3 -2
  514. package/dist/modules/platform/forgejo/types.js.map +1 -1
  515. package/dist/modules/platform/forgejo/utils.d.ts +1 -0
  516. package/dist/modules/platform/forgejo/utils.js +17 -0
  517. package/dist/modules/platform/forgejo/utils.js.map +1 -1
  518. package/dist/modules/platform/gerrit/client.d.ts +1 -1
  519. package/dist/modules/platform/gerrit/client.js +32 -33
  520. package/dist/modules/platform/gerrit/client.js.map +1 -1
  521. package/dist/modules/platform/gerrit/index.d.ts +1 -2
  522. package/dist/modules/platform/gerrit/index.js +8 -16
  523. package/dist/modules/platform/gerrit/index.js.map +1 -1
  524. package/dist/modules/platform/gerrit/scm.js +7 -13
  525. package/dist/modules/platform/gerrit/scm.js.map +1 -1
  526. package/dist/modules/platform/gerrit/types.d.ts +27 -1
  527. package/dist/modules/platform/gerrit/types.js.map +1 -1
  528. package/dist/modules/platform/gitea/index.js +34 -37
  529. package/dist/modules/platform/gitea/index.js.map +1 -1
  530. package/dist/modules/platform/gitea/schema.d.ts +3 -3
  531. package/dist/modules/platform/gitea/schema.js +3 -3
  532. package/dist/modules/platform/gitea/schema.js.map +1 -1
  533. package/dist/modules/platform/gitea/types.d.ts +3 -2
  534. package/dist/modules/platform/gitea/types.js.map +1 -1
  535. package/dist/modules/platform/gitea/utils.d.ts +1 -0
  536. package/dist/modules/platform/gitea/utils.js +17 -0
  537. package/dist/modules/platform/gitea/utils.js.map +1 -1
  538. package/dist/modules/platform/github/index.d.ts +1 -1
  539. package/dist/modules/platform/github/index.js +92 -33
  540. package/dist/modules/platform/github/index.js.map +1 -1
  541. package/dist/modules/platform/github/schema.d.ts +32 -2
  542. package/dist/modules/platform/github/schema.js +32 -8
  543. package/dist/modules/platform/github/schema.js.map +1 -1
  544. package/dist/modules/platform/github/types.d.ts +2 -2
  545. package/dist/modules/platform/github/types.js.map +1 -1
  546. package/dist/modules/platform/github/user.d.ts +2 -1
  547. package/dist/modules/platform/github/user.js.map +1 -1
  548. package/dist/modules/platform/gitlab/index.js.map +1 -1
  549. package/dist/modules/platform/gitlab/pr-cache.d.ts +0 -2
  550. package/dist/modules/platform/gitlab/pr-cache.js +28 -37
  551. package/dist/modules/platform/gitlab/pr-cache.js.map +1 -1
  552. package/dist/modules/platform/gitlab/utils.js +1 -0
  553. package/dist/modules/platform/gitlab/utils.js.map +1 -1
  554. package/dist/modules/platform/types.d.ts +1 -1
  555. package/dist/modules/platform/types.js.map +1 -1
  556. package/dist/modules/versioning/api.js +2 -0
  557. package/dist/modules/versioning/api.js.map +1 -1
  558. package/dist/modules/versioning/cargo/index.js +7 -7
  559. package/dist/modules/versioning/cargo/index.js.map +1 -1
  560. package/dist/modules/versioning/composer/index.js +0 -4
  561. package/dist/modules/versioning/composer/index.js.map +1 -1
  562. package/dist/modules/versioning/conan/index.js +1 -1
  563. package/dist/modules/versioning/conan/index.js.map +1 -1
  564. package/dist/modules/versioning/conda/index.d.ts +2 -0
  565. package/dist/modules/versioning/conda/index.js +4 -4
  566. package/dist/modules/versioning/conda/index.js.map +1 -1
  567. package/dist/modules/versioning/debian/index.d.ts +1 -1
  568. package/dist/modules/versioning/debian/index.js +2 -17
  569. package/dist/modules/versioning/debian/index.js.map +1 -1
  570. package/dist/modules/versioning/gradle/index.js +2 -2
  571. package/dist/modules/versioning/gradle/index.js.map +1 -1
  572. package/dist/modules/versioning/hashicorp/index.js +0 -1
  573. package/dist/modules/versioning/hashicorp/index.js.map +1 -1
  574. package/dist/modules/versioning/helm/index.js +0 -1
  575. package/dist/modules/versioning/helm/index.js.map +1 -1
  576. package/dist/modules/versioning/hex/index.js +0 -1
  577. package/dist/modules/versioning/hex/index.js.map +1 -1
  578. package/dist/modules/versioning/ivy/index.js +1 -2
  579. package/dist/modules/versioning/ivy/index.js.map +1 -1
  580. package/dist/modules/versioning/npm/index.js +0 -1
  581. package/dist/modules/versioning/npm/index.js.map +1 -1
  582. package/dist/modules/versioning/npm/range.js +2 -3
  583. package/dist/modules/versioning/npm/range.js.map +1 -1
  584. package/dist/modules/versioning/nuget/index.js +8 -4
  585. package/dist/modules/versioning/nuget/index.js.map +1 -1
  586. package/dist/modules/versioning/pep440/index.js +1 -1
  587. package/dist/modules/versioning/pep440/index.js.map +1 -1
  588. package/dist/modules/versioning/pep440/range.d.ts +1 -0
  589. package/dist/modules/versioning/pep440/range.js +4 -3
  590. package/dist/modules/versioning/pep440/range.js.map +1 -1
  591. package/dist/modules/versioning/poetry/index.js +0 -4
  592. package/dist/modules/versioning/poetry/index.js.map +1 -1
  593. package/dist/modules/versioning/rez/index.js +0 -1
  594. package/dist/modules/versioning/rez/index.js.map +1 -1
  595. package/dist/modules/versioning/ruby/index.js +5 -5
  596. package/dist/modules/versioning/ruby/index.js.map +1 -1
  597. package/dist/modules/versioning/ruby/strategies/index.d.ts +1 -2
  598. package/dist/modules/versioning/ruby/strategies/index.js +1 -3
  599. package/dist/modules/versioning/ruby/strategies/index.js.map +1 -1
  600. package/dist/modules/versioning/semver-partial/index.d.ts +8 -0
  601. package/dist/modules/versioning/semver-partial/index.js +211 -0
  602. package/dist/modules/versioning/semver-partial/index.js.map +1 -0
  603. package/dist/modules/versioning/swift/index.js +0 -1
  604. package/dist/modules/versioning/swift/index.js.map +1 -1
  605. package/dist/modules/versioning/types.d.ts +5 -0
  606. package/dist/modules/versioning/types.js.map +1 -1
  607. package/dist/renovate.js +0 -0
  608. package/dist/util/cache/package/decorator.js +20 -9
  609. package/dist/util/cache/package/decorator.js.map +1 -1
  610. package/dist/util/cache/package/file.d.ts +1 -1
  611. package/dist/util/cache/package/file.js +3 -3
  612. package/dist/util/cache/package/file.js.map +1 -1
  613. package/dist/util/cache/package/index.d.ts +9 -2
  614. package/dist/util/cache/package/index.js +19 -4
  615. package/dist/util/cache/package/index.js.map +1 -1
  616. package/dist/util/cache/package/namespaces.d.ts +1 -1
  617. package/dist/util/cache/package/namespaces.js +3 -0
  618. package/dist/util/cache/package/namespaces.js.map +1 -1
  619. package/dist/util/cache/package/redis.d.ts +1 -1
  620. package/dist/util/cache/package/redis.js +17 -7
  621. package/dist/util/cache/package/redis.js.map +1 -1
  622. package/dist/util/cache/package/sqlite.d.ts +1 -1
  623. package/dist/util/cache/package/sqlite.js +2 -2
  624. package/dist/util/cache/package/sqlite.js.map +1 -1
  625. package/dist/util/cache/package/types.d.ts +1 -1
  626. package/dist/util/cache/package/types.js.map +1 -1
  627. package/dist/util/cache/repository/http-cache.js +1 -1
  628. package/dist/util/cache/repository/http-cache.js.map +1 -1
  629. package/dist/util/cache/repository/schema.d.ts +1 -1
  630. package/dist/util/cache/repository/types.d.ts +1 -0
  631. package/dist/util/cache/repository/types.js.map +1 -1
  632. package/dist/util/emoji.js +2 -2
  633. package/dist/util/emoji.js.map +1 -1
  634. package/dist/util/exec/containerbase.js +5 -0
  635. package/dist/util/exec/containerbase.js.map +1 -1
  636. package/dist/util/git/index.js +6 -3
  637. package/dist/util/git/index.js.map +1 -1
  638. package/dist/util/git/private-key.js +23 -3
  639. package/dist/util/git/private-key.js.map +1 -1
  640. package/dist/util/git/types.d.ts +2 -1
  641. package/dist/util/git/types.js.map +1 -1
  642. package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +6 -6
  643. package/dist/util/http/bitbucket.js +0 -1
  644. package/dist/util/http/bitbucket.js.map +1 -1
  645. package/dist/util/http/cache/abstract-http-cache-provider.d.ts +7 -7
  646. package/dist/util/http/cache/abstract-http-cache-provider.js +11 -11
  647. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  648. package/dist/util/http/cache/memory-http-cache-provider.d.ts +3 -3
  649. package/dist/util/http/cache/memory-http-cache-provider.js +8 -8
  650. package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -1
  651. package/dist/util/http/cache/package-http-cache-provider.d.ts +5 -4
  652. package/dist/util/http/cache/package-http-cache-provider.js +17 -11
  653. package/dist/util/http/cache/package-http-cache-provider.js.map +1 -1
  654. package/dist/util/http/cache/repository-http-cache-provider.d.ts +16 -3
  655. package/dist/util/http/cache/repository-http-cache-provider.js +60 -3
  656. package/dist/util/http/cache/repository-http-cache-provider.js.map +1 -1
  657. package/dist/util/http/cache/schema.d.ts +2 -2
  658. package/dist/util/http/cache/schema.js +2 -2
  659. package/dist/util/http/cache/schema.js.map +1 -1
  660. package/dist/util/http/cache/types.d.ts +3 -3
  661. package/dist/util/http/cache/types.js.map +1 -1
  662. package/dist/util/http/gerrit.d.ts +1 -1
  663. package/dist/util/http/gerrit.js +1 -1
  664. package/dist/util/http/gerrit.js.map +1 -1
  665. package/dist/util/http/gitlab.js +0 -1
  666. package/dist/util/http/gitlab.js.map +1 -1
  667. package/dist/util/http/host-rules.js +10 -0
  668. package/dist/util/http/host-rules.js.map +1 -1
  669. package/dist/util/http/http.d.ts +1 -1
  670. package/dist/util/http/http.js +17 -15
  671. package/dist/util/http/http.js.map +1 -1
  672. package/dist/util/http/retry-after.js +1 -1
  673. package/dist/util/http/retry-after.js.map +1 -1
  674. package/dist/util/interpolator.js +2 -0
  675. package/dist/util/interpolator.js.map +1 -1
  676. package/dist/util/markdown.js +3 -3
  677. package/dist/util/markdown.js.map +1 -1
  678. package/dist/util/merge-confidence/index.js +3 -1
  679. package/dist/util/merge-confidence/index.js.map +1 -1
  680. package/dist/util/schema-utils/index.d.ts +8 -4
  681. package/dist/util/schema-utils/index.js +16 -1
  682. package/dist/util/schema-utils/index.js.map +1 -1
  683. package/dist/util/template/index.d.ts +1 -0
  684. package/dist/util/template/index.js +70 -64
  685. package/dist/util/template/index.js.map +1 -1
  686. package/dist/workers/global/config/parse/file.js +6 -0
  687. package/dist/workers/global/config/parse/file.js.map +1 -1
  688. package/dist/workers/global/config/parse/index.js +2 -1
  689. package/dist/workers/global/config/parse/index.js.map +1 -1
  690. package/dist/workers/repository/config-migration/branch/commit-message.js +2 -1
  691. package/dist/workers/repository/config-migration/branch/commit-message.js.map +1 -1
  692. package/dist/workers/repository/config-migration/branch/create.js +1 -0
  693. package/dist/workers/repository/config-migration/branch/create.js.map +1 -1
  694. package/dist/workers/repository/config-migration/branch/rebase.js +1 -0
  695. package/dist/workers/repository/config-migration/branch/rebase.js.map +1 -1
  696. package/dist/workers/repository/dependency-dashboard.js +42 -5
  697. package/dist/workers/repository/dependency-dashboard.js.map +1 -1
  698. package/dist/workers/repository/error-config.js +1 -1
  699. package/dist/workers/repository/error-config.js.map +1 -1
  700. package/dist/workers/repository/error.js +1 -1
  701. package/dist/workers/repository/error.js.map +1 -1
  702. package/dist/workers/repository/extract/supersedes.d.ts +1 -1
  703. package/dist/workers/repository/extract/supersedes.js +31 -17
  704. package/dist/workers/repository/extract/supersedes.js.map +1 -1
  705. package/dist/workers/repository/finalize/index.js +1 -1
  706. package/dist/workers/repository/finalize/index.js.map +1 -1
  707. package/dist/workers/repository/finalize/prune.js +4 -3
  708. package/dist/workers/repository/finalize/prune.js.map +1 -1
  709. package/dist/workers/repository/index.js +49 -20
  710. package/dist/workers/repository/index.js.map +1 -1
  711. package/dist/workers/repository/init/inherited.js +7 -0
  712. package/dist/workers/repository/init/inherited.js.map +1 -1
  713. package/dist/workers/repository/init/merge.js +1 -1
  714. package/dist/workers/repository/init/merge.js.map +1 -1
  715. package/dist/workers/repository/onboarding/branch/check.js +5 -3
  716. package/dist/workers/repository/onboarding/branch/check.js.map +1 -1
  717. package/dist/workers/repository/onboarding/branch/create.js +1 -0
  718. package/dist/workers/repository/onboarding/branch/create.js.map +1 -1
  719. package/dist/workers/repository/onboarding/branch/rebase.js +1 -0
  720. package/dist/workers/repository/onboarding/branch/rebase.js.map +1 -1
  721. package/dist/workers/repository/onboarding/common.js +3 -2
  722. package/dist/workers/repository/onboarding/common.js.map +1 -1
  723. package/dist/workers/repository/process/extract-update.js +2 -2
  724. package/dist/workers/repository/process/extract-update.js.map +1 -1
  725. package/dist/workers/repository/process/fetch.js +4 -3
  726. package/dist/workers/repository/process/fetch.js.map +1 -1
  727. package/dist/workers/repository/process/index.d.ts +1 -0
  728. package/dist/workers/repository/process/index.js +25 -5
  729. package/dist/workers/repository/process/index.js.map +1 -1
  730. package/dist/workers/repository/process/lookup/filter-checks.js +42 -8
  731. package/dist/workers/repository/process/lookup/filter-checks.js.map +1 -1
  732. package/dist/workers/repository/process/lookup/filter.js +5 -7
  733. package/dist/workers/repository/process/lookup/filter.js.map +1 -1
  734. package/dist/workers/repository/process/lookup/index.js +10 -13
  735. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  736. package/dist/workers/repository/process/vulnerabilities.d.ts +1 -1
  737. package/dist/workers/repository/process/vulnerabilities.js +13 -8
  738. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  739. package/dist/workers/repository/reconfigure/comment.js +1 -1
  740. package/dist/workers/repository/reconfigure/comment.js.map +1 -1
  741. package/dist/workers/repository/reconfigure/index.js +1 -1
  742. package/dist/workers/repository/reconfigure/index.js.map +1 -1
  743. package/dist/workers/repository/update/branch/commit.js +2 -0
  744. package/dist/workers/repository/update/branch/commit.js.map +1 -1
  745. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +12 -1
  746. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  747. package/dist/workers/repository/update/branch/index.js +65 -20
  748. package/dist/workers/repository/update/branch/index.js.map +1 -1
  749. package/dist/workers/repository/update/branch/status-checks.js +5 -0
  750. package/dist/workers/repository/update/branch/status-checks.js.map +1 -1
  751. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
  752. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  753. package/dist/workers/repository/update/pr/changelog/forgejo/index.js +3 -3
  754. package/dist/workers/repository/update/pr/changelog/forgejo/index.js.map +1 -1
  755. package/dist/workers/repository/update/pr/changelog/gitea/index.js +3 -3
  756. package/dist/workers/repository/update/pr/changelog/gitea/index.js.map +1 -1
  757. package/dist/workers/repository/update/pr/changelog/release-notes.js +9 -4
  758. package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
  759. package/dist/workers/repository/update/pr/index.js +28 -11
  760. package/dist/workers/repository/update/pr/index.js.map +1 -1
  761. package/dist/workers/repository/update/pr/pr-reuse.d.ts +1 -1
  762. package/dist/workers/repository/update/pr/pr-reuse.js +2 -2
  763. package/dist/workers/repository/update/pr/pr-reuse.js.map +1 -1
  764. package/dist/workers/repository/updates/generate.js +1 -0
  765. package/dist/workers/repository/updates/generate.js.map +1 -1
  766. package/dist/workers/types.d.ts +1 -0
  767. package/dist/workers/types.js.map +1 -1
  768. package/package.json +136 -153
  769. package/renovate-schema.json +325 -111
  770. package/dist/config/decrypt/kbpgp.d.ts +0 -1
  771. package/dist/config/decrypt/kbpgp.js +0 -58
  772. package/dist/config/decrypt/kbpgp.js.map +0 -1
  773. package/dist/config/decrypt/legacy.d.ts +0 -2
  774. package/dist/config/decrypt/legacy.js +0 -36
  775. package/dist/config/decrypt/legacy.js.map +0 -1
  776. package/dist/modules/versioning/ruby/strategies/pin.d.ts +0 -4
  777. package/dist/modules/versioning/ruby/strategies/pin.js +0 -4
  778. package/dist/modules/versioning/ruby/strategies/pin.js.map +0 -1
@@ -1,13 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NotCircular = exports.Toml = exports.MultidocYaml = exports.Yaml = exports.UtcDate = exports.Jsonc = exports.Json5 = exports.Json = void 0;
3
+ exports.EmailAddress = exports.NotCircular = exports.Ini = exports.Toml = exports.MultidocYaml = exports.Yaml = exports.UtcDate = exports.Jsonc = exports.Json5 = exports.Json = void 0;
4
4
  exports.LooseArray = LooseArray;
5
5
  exports.LooseRecord = LooseRecord;
6
6
  exports.multidocYaml = multidocYaml;
7
7
  exports.withDepType = withDepType;
8
8
  exports.withDebugMessage = withDebugMessage;
9
9
  exports.withTraceMessage = withTraceMessage;
10
+ exports.isEmailAdress = isEmailAdress;
10
11
  const tslib_1 = require("tslib");
12
+ const ini_1 = tslib_1.__importDefault(require("ini"));
11
13
  const json5_1 = tslib_1.__importDefault(require("json5"));
12
14
  const luxon_1 = require("luxon");
13
15
  const zod_1 = require("zod");
@@ -203,6 +205,15 @@ exports.Toml = zod_1.z.string().transform((str, ctx) => {
203
205
  return zod_1.z.NEVER;
204
206
  }
205
207
  });
208
+ exports.Ini = zod_1.z.string().transform((str, ctx) => {
209
+ try {
210
+ return ini_1.default.parse(str);
211
+ }
212
+ catch {
213
+ ctx.addIssue({ code: 'custom', message: 'Invalid INI' });
214
+ return zod_1.z.NEVER;
215
+ }
216
+ });
206
217
  function withDepType(schema, depType, force = true) {
207
218
  return schema.transform((deps) => {
208
219
  for (const dep of deps) {
@@ -260,4 +271,8 @@ exports.NotCircular = zod_1.z.unknown().superRefine((val, ctx) => {
260
271
  return zod_1.z.NEVER;
261
272
  }
262
273
  });
274
+ exports.EmailAddress = zod_1.z.string().email();
275
+ function isEmailAdress(value) {
276
+ return exports.EmailAddress.safeParse(value).success;
277
+ }
263
278
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/util/schema-utils/index.ts"],"names":[],"mappings":"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","sourcesContent":["import JSON5 from 'json5';\nimport { DateTime } from 'luxon';\nimport type { JsonArray, JsonValue } from 'type-fest';\nimport {\n type ZodEffects,\n type ZodString,\n type ZodType,\n type ZodTypeDef,\n z,\n} from 'zod';\nimport { logger } from '../../logger';\nimport type { PackageDependency } from '../../modules/manager/types';\nimport { parseJsonc } from '../common';\nimport { parse as parseToml } from '../toml';\nimport type { YamlOptions } from '../yaml';\nimport { parseSingleYaml, parseYaml } from '../yaml';\n\ninterface ErrorContext<T> {\n error: z.ZodError;\n input: T;\n}\n\ninterface LooseOpts<T> {\n onError?: (err: ErrorContext<T>) => void;\n}\n\n/**\n * Works like `z.array()`, but drops wrong elements instead of invalidating the whole array.\n *\n * **Important**: non-array inputs are still invalid.\n * Use `LooseArray(...).catch([])` to handle it.\n *\n * @param Elem Schema for array elements\n * @param onError Callback for errors\n * @returns Schema for array\n */\nexport function LooseArray<Schema extends z.ZodTypeAny>(\n Elem: Schema,\n { onError }: LooseOpts<unknown[]> = {},\n): z.ZodEffects<z.ZodArray<z.ZodAny, 'many'>, z.TypeOf<Schema>[], any[]> {\n if (!onError) {\n // Avoid error-related computations inside the loop\n return z.array(z.any()).transform((input) => {\n const output: z.infer<Schema>[] = [];\n for (const x of input) {\n const parsed = Elem.safeParse(x);\n if (parsed.success) {\n output.push(parsed.data);\n }\n }\n return output;\n });\n }\n\n return z.array(z.any()).transform((input) => {\n const output: z.infer<Schema>[] = [];\n const issues: z.ZodIssue[] = [];\n\n for (let idx = 0; idx < input.length; idx += 1) {\n const x = input[idx];\n const parsed = Elem.safeParse(x);\n\n if (parsed.success) {\n output.push(parsed.data);\n continue;\n }\n\n for (const issue of parsed.error.issues) {\n issue.path.unshift(idx);\n issues.push(issue);\n }\n }\n\n if (issues.length) {\n const error = new z.ZodError(issues);\n onError({ error, input });\n }\n\n return output;\n });\n}\n\ntype LooseRecordResult<\n KeySchema extends z.ZodTypeAny,\n ValueSchema extends z.ZodTypeAny,\n> = z.ZodEffects<\n z.ZodRecord<z.ZodString, z.ZodAny>,\n Record<z.TypeOf<KeySchema>, z.TypeOf<ValueSchema>>,\n Record<z.TypeOf<KeySchema>, any>\n>;\n\ntype LooseRecordOpts<\n KeySchema extends z.ZodTypeAny,\n ValueSchema extends z.ZodTypeAny,\n> = LooseOpts<Record<z.TypeOf<KeySchema> | z.TypeOf<ValueSchema>, unknown>>;\n\n/**\n * Works like `z.record()`, but drops wrong elements instead of invalidating the whole record.\n *\n * **Important**: non-record inputs other are still invalid.\n * Use `LooseRecord(...).catch({})` to handle it.\n *\n * @param KeyValue Schema for record keys\n * @param ValueValue Schema for record values\n * @param onError Callback for errors\n * @returns Schema for record\n */\nexport function LooseRecord<ValueSchema extends z.ZodTypeAny>(\n Value: ValueSchema,\n): LooseRecordResult<z.ZodString, ValueSchema>;\nexport function LooseRecord<\n KeySchema extends z.ZodTypeAny,\n ValueSchema extends z.ZodTypeAny,\n>(\n Key: KeySchema,\n Value: ValueSchema,\n): LooseRecordResult<KeySchema, ValueSchema>;\nexport function LooseRecord<ValueSchema extends z.ZodTypeAny>(\n Value: ValueSchema,\n { onError }: LooseRecordOpts<z.ZodString, ValueSchema>,\n): LooseRecordResult<z.ZodString, ValueSchema>;\nexport function LooseRecord<\n KeySchema extends z.ZodTypeAny,\n ValueSchema extends z.ZodTypeAny,\n>(\n Key: KeySchema,\n Value: ValueSchema,\n { onError }: LooseRecordOpts<KeySchema, ValueSchema>,\n): LooseRecordResult<KeySchema, ValueSchema>;\nexport function LooseRecord<\n KeySchema extends z.ZodTypeAny,\n ValueSchema extends z.ZodTypeAny,\n>(\n arg1: ValueSchema | KeySchema,\n arg2?: ValueSchema | LooseOpts<Record<string, unknown>>,\n arg3?: LooseRecordOpts<KeySchema, ValueSchema>,\n): LooseRecordResult<KeySchema, ValueSchema> {\n let Key: z.ZodSchema = z.any();\n let Value: ValueSchema;\n let opts: LooseRecordOpts<KeySchema, ValueSchema> = {};\n if (arg2 && arg3) {\n Key = arg1 as KeySchema;\n Value = arg2 as ValueSchema;\n opts = arg3;\n } else if (arg2) {\n if (arg2 instanceof z.ZodType) {\n Key = arg1 as KeySchema;\n Value = arg2;\n } else {\n Value = arg1 as ValueSchema;\n opts = arg2;\n }\n } else {\n Value = arg1 as ValueSchema;\n }\n\n const { onError } = opts;\n if (!onError) {\n // Avoid error-related computations inside the loop\n return z.record(z.any()).transform((input) => {\n const output: Record<string, z.infer<ValueSchema>> = {};\n for (const [inputKey, inputVal] of Object.entries(input)) {\n const parsedKey = Key.safeParse(inputKey);\n const parsedValue = Value.safeParse(inputVal);\n if (parsedKey.success && parsedValue.success) {\n output[parsedKey.data] = parsedValue.data;\n }\n }\n return output;\n });\n }\n\n return z.record(z.any()).transform((input) => {\n const output: Record<string, z.infer<ValueSchema>> = {};\n const issues: z.ZodIssue[] = [];\n\n for (const [inputKey, inputVal] of Object.entries(input)) {\n const parsedKey = Key.safeParse(inputKey);\n if (!parsedKey.success) {\n for (const issue of parsedKey.error.issues) {\n issue.path.unshift(inputKey);\n issues.push(issue);\n }\n continue;\n }\n\n const parsedValue = Value.safeParse(inputVal);\n if (!parsedValue.success) {\n for (const issue of parsedValue.error.issues) {\n issue.path.unshift(inputKey);\n issues.push(issue);\n }\n continue;\n }\n\n output[parsedKey.data] = parsedValue.data;\n continue;\n }\n\n if (issues.length) {\n const error = new z.ZodError(issues);\n onError({ error, input });\n }\n\n return output;\n });\n}\n\nexport const Json = z.string().transform((str, ctx): JsonValue => {\n try {\n return JSON.parse(str);\n } catch {\n ctx.addIssue({ code: 'custom', message: 'Invalid JSON' });\n return z.NEVER;\n }\n});\ntype Json = z.infer<typeof Json>;\n\nexport const Json5 = z.string().transform((str, ctx): JsonValue => {\n try {\n return JSON5.parse(str);\n } catch {\n ctx.addIssue({ code: 'custom', message: 'Invalid JSON5' });\n return z.NEVER;\n }\n});\n\nexport const Jsonc = z.string().transform((str, ctx): JsonValue => {\n try {\n return parseJsonc(str);\n } catch {\n ctx.addIssue({ code: 'custom', message: 'Invalid JSONC' });\n return z.NEVER;\n }\n});\n\nexport const UtcDate = z\n .string({ description: 'ISO 8601 string' })\n .transform((str, ctx): DateTime => {\n const date = DateTime.fromISO(str, { zone: 'utc' });\n if (!date.isValid) {\n ctx.addIssue({ code: 'custom', message: 'Invalid date' });\n return z.NEVER;\n }\n return date;\n });\n\nexport const Yaml = z.string().transform((str, ctx): JsonValue => {\n try {\n return parseSingleYaml(str);\n } catch {\n ctx.addIssue({ code: 'custom', message: 'Invalid YAML' });\n return z.NEVER;\n }\n});\n\nexport const MultidocYaml = z.string().transform((str, ctx): JsonArray => {\n try {\n return parseYaml(str) as JsonArray;\n } catch {\n ctx.addIssue({ code: 'custom', message: 'Invalid YAML' });\n return z.NEVER;\n }\n});\n\nexport function multidocYaml(\n opts?: Omit<YamlOptions, 'customSchema'>,\n): ZodEffects<ZodString, JsonArray, string> {\n return z.string().transform((str, ctx): JsonArray => {\n try {\n return parseYaml(str, opts) as JsonArray;\n } catch {\n ctx.addIssue({ code: 'custom', message: 'Invalid YAML' });\n return z.NEVER;\n }\n });\n}\n\nexport const Toml = z.string().transform((str, ctx) => {\n try {\n return parseToml(str);\n } catch {\n ctx.addIssue({ code: 'custom', message: 'Invalid TOML' });\n return z.NEVER;\n }\n});\n\nexport function withDepType<\n Output extends PackageDependency[],\n Schema extends ZodType<Output, ZodTypeDef, unknown>,\n>(schema: Schema, depType: string, force = true): ZodEffects<Schema> {\n return schema.transform((deps) => {\n for (const dep of deps) {\n if (!dep.depType || force) {\n dep.depType = depType;\n }\n }\n return deps;\n });\n}\n\nexport function withDebugMessage<Input, Output>(\n value: Output,\n msg: string,\n): (ctx: { error: z.ZodError; input: Input }) => Output {\n return ({ error: err }) => {\n logger.debug({ err }, msg);\n return value;\n };\n}\n\nexport function withTraceMessage<Input, Output>(\n value: Output,\n msg: string,\n): (ctx: { error: z.ZodError; input: Input }) => Output {\n return ({ error: err }) => {\n logger.trace({ err }, msg);\n return value;\n };\n}\n\nfunction isCircular(value: unknown, visited = new Set<unknown>()): boolean {\n if (value === null || typeof value !== 'object') {\n return false;\n }\n\n if (visited.has(value)) {\n return true;\n }\n\n const downstreamVisited = new Set(visited);\n downstreamVisited.add(value);\n\n if (Array.isArray(value)) {\n for (const childValue of value) {\n if (isCircular(childValue, downstreamVisited)) {\n return true;\n }\n }\n\n return false;\n }\n\n const values = Object.values(value);\n for (const ov of values) {\n if (isCircular(ov, downstreamVisited)) {\n return true;\n }\n }\n\n return false;\n}\n\nexport const NotCircular = z.unknown().superRefine((val, ctx) => {\n if (isCircular(val)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'values cannot be circular data structures',\n fatal: true,\n });\n\n return z.NEVER;\n }\n});\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/util/schema-utils/index.ts"],"names":[],"mappings":"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","sourcesContent":["import ini from 'ini';\nimport JSON5 from 'json5';\nimport { DateTime } from 'luxon';\nimport type { JsonArray, JsonValue } from 'type-fest';\nimport {\n type ZodEffects,\n type ZodString,\n type ZodType,\n type ZodTypeDef,\n z,\n} from 'zod';\nimport { logger } from '../../logger';\nimport type { PackageDependency } from '../../modules/manager/types';\nimport { parseJsonc } from '../common';\nimport { parse as parseToml } from '../toml';\nimport type { YamlOptions } from '../yaml';\nimport { parseSingleYaml, parseYaml } from '../yaml';\n\ninterface ErrorContext<T> {\n error: z.ZodError;\n input: T;\n}\n\ninterface LooseOpts<T> {\n onError?: (err: ErrorContext<T>) => void;\n}\n\n/**\n * Works like `z.array()`, but drops wrong elements instead of invalidating the whole array.\n *\n * **Important**: non-array inputs are still invalid.\n * Use `LooseArray(...).catch([])` to handle it.\n *\n * @param Elem Schema for array elements\n * @param onError Callback for errors\n * @returns Schema for array\n */\nexport function LooseArray<Schema extends z.ZodTypeAny>(\n Elem: Schema,\n { onError }: LooseOpts<unknown[]> = {},\n): z.ZodEffects<z.ZodArray<z.ZodAny, 'many'>, z.TypeOf<Schema>[], any[]> {\n if (!onError) {\n // Avoid error-related computations inside the loop\n return z.array(z.any()).transform((input) => {\n const output: z.infer<Schema>[] = [];\n for (const x of input) {\n const parsed = Elem.safeParse(x);\n if (parsed.success) {\n output.push(parsed.data);\n }\n }\n return output;\n });\n }\n\n return z.array(z.any()).transform((input) => {\n const output: z.infer<Schema>[] = [];\n const issues: z.ZodIssue[] = [];\n\n for (let idx = 0; idx < input.length; idx += 1) {\n const x = input[idx];\n const parsed = Elem.safeParse(x);\n\n if (parsed.success) {\n output.push(parsed.data);\n continue;\n }\n\n for (const issue of parsed.error.issues) {\n issue.path.unshift(idx);\n issues.push(issue);\n }\n }\n\n if (issues.length) {\n const error = new z.ZodError(issues);\n onError({ error, input });\n }\n\n return output;\n });\n}\n\ntype LooseRecordResult<\n KeySchema extends z.ZodTypeAny,\n ValueSchema extends z.ZodTypeAny,\n> = z.ZodEffects<\n z.ZodRecord<z.ZodString, z.ZodAny>,\n Record<z.TypeOf<KeySchema>, z.TypeOf<ValueSchema>>,\n Record<z.TypeOf<KeySchema>, any>\n>;\n\ntype LooseRecordOpts<\n KeySchema extends z.ZodTypeAny,\n ValueSchema extends z.ZodTypeAny,\n> = LooseOpts<Record<z.TypeOf<KeySchema> | z.TypeOf<ValueSchema>, unknown>>;\n\n/**\n * Works like `z.record()`, but drops wrong elements instead of invalidating the whole record.\n *\n * **Important**: non-record inputs other are still invalid.\n * Use `LooseRecord(...).catch({})` to handle it.\n *\n * @param KeyValue Schema for record keys\n * @param ValueValue Schema for record values\n * @param onError Callback for errors\n * @returns Schema for record\n */\nexport function LooseRecord<ValueSchema extends z.ZodTypeAny>(\n Value: ValueSchema,\n): LooseRecordResult<z.ZodString, ValueSchema>;\nexport function LooseRecord<\n KeySchema extends z.ZodTypeAny,\n ValueSchema extends z.ZodTypeAny,\n>(\n Key: KeySchema,\n Value: ValueSchema,\n): LooseRecordResult<KeySchema, ValueSchema>;\nexport function LooseRecord<ValueSchema extends z.ZodTypeAny>(\n Value: ValueSchema,\n { onError }: LooseRecordOpts<z.ZodString, ValueSchema>,\n): LooseRecordResult<z.ZodString, ValueSchema>;\nexport function LooseRecord<\n KeySchema extends z.ZodTypeAny,\n ValueSchema extends z.ZodTypeAny,\n>(\n Key: KeySchema,\n Value: ValueSchema,\n { onError }: LooseRecordOpts<KeySchema, ValueSchema>,\n): LooseRecordResult<KeySchema, ValueSchema>;\nexport function LooseRecord<\n KeySchema extends z.ZodTypeAny,\n ValueSchema extends z.ZodTypeAny,\n>(\n arg1: ValueSchema | KeySchema,\n arg2?: ValueSchema | LooseOpts<Record<string, unknown>>,\n arg3?: LooseRecordOpts<KeySchema, ValueSchema>,\n): LooseRecordResult<KeySchema, ValueSchema> {\n let Key: z.ZodSchema = z.any();\n let Value: ValueSchema;\n let opts: LooseRecordOpts<KeySchema, ValueSchema> = {};\n if (arg2 && arg3) {\n Key = arg1 as KeySchema;\n Value = arg2 as ValueSchema;\n opts = arg3;\n } else if (arg2) {\n if (arg2 instanceof z.ZodType) {\n Key = arg1 as KeySchema;\n Value = arg2;\n } else {\n Value = arg1 as ValueSchema;\n opts = arg2;\n }\n } else {\n Value = arg1 as ValueSchema;\n }\n\n const { onError } = opts;\n if (!onError) {\n // Avoid error-related computations inside the loop\n return z.record(z.any()).transform((input) => {\n const output: Record<string, z.infer<ValueSchema>> = {};\n for (const [inputKey, inputVal] of Object.entries(input)) {\n const parsedKey = Key.safeParse(inputKey);\n const parsedValue = Value.safeParse(inputVal);\n if (parsedKey.success && parsedValue.success) {\n output[parsedKey.data] = parsedValue.data;\n }\n }\n return output;\n });\n }\n\n return z.record(z.any()).transform((input) => {\n const output: Record<string, z.infer<ValueSchema>> = {};\n const issues: z.ZodIssue[] = [];\n\n for (const [inputKey, inputVal] of Object.entries(input)) {\n const parsedKey = Key.safeParse(inputKey);\n if (!parsedKey.success) {\n for (const issue of parsedKey.error.issues) {\n issue.path.unshift(inputKey);\n issues.push(issue);\n }\n continue;\n }\n\n const parsedValue = Value.safeParse(inputVal);\n if (!parsedValue.success) {\n for (const issue of parsedValue.error.issues) {\n issue.path.unshift(inputKey);\n issues.push(issue);\n }\n continue;\n }\n\n output[parsedKey.data] = parsedValue.data;\n continue;\n }\n\n if (issues.length) {\n const error = new z.ZodError(issues);\n onError({ error, input });\n }\n\n return output;\n });\n}\n\nexport const Json = z.string().transform((str, ctx): JsonValue => {\n try {\n return JSON.parse(str);\n } catch {\n ctx.addIssue({ code: 'custom', message: 'Invalid JSON' });\n return z.NEVER;\n }\n});\ntype Json = z.infer<typeof Json>;\n\nexport const Json5 = z.string().transform((str, ctx): JsonValue => {\n try {\n return JSON5.parse(str);\n } catch {\n ctx.addIssue({ code: 'custom', message: 'Invalid JSON5' });\n return z.NEVER;\n }\n});\n\nexport const Jsonc = z.string().transform((str, ctx): JsonValue => {\n try {\n return parseJsonc(str);\n } catch {\n ctx.addIssue({ code: 'custom', message: 'Invalid JSONC' });\n return z.NEVER;\n }\n});\n\nexport const UtcDate = z\n .string({ description: 'ISO 8601 string' })\n .transform((str, ctx): DateTime => {\n const date = DateTime.fromISO(str, { zone: 'utc' });\n if (!date.isValid) {\n ctx.addIssue({ code: 'custom', message: 'Invalid date' });\n return z.NEVER;\n }\n return date;\n });\n\nexport const Yaml = z.string().transform((str, ctx): JsonValue => {\n try {\n return parseSingleYaml(str);\n } catch {\n ctx.addIssue({ code: 'custom', message: 'Invalid YAML' });\n return z.NEVER;\n }\n});\n\nexport const MultidocYaml = z.string().transform((str, ctx): JsonArray => {\n try {\n return parseYaml(str) as JsonArray;\n } catch {\n ctx.addIssue({ code: 'custom', message: 'Invalid YAML' });\n return z.NEVER;\n }\n});\n\nexport function multidocYaml(\n opts?: Omit<YamlOptions, 'customSchema'>,\n): ZodEffects<ZodString, JsonArray, string> {\n return z.string().transform((str, ctx): JsonArray => {\n try {\n return parseYaml(str, opts) as JsonArray;\n } catch {\n ctx.addIssue({ code: 'custom', message: 'Invalid YAML' });\n return z.NEVER;\n }\n });\n}\n\nexport const Toml = z.string().transform((str, ctx) => {\n try {\n return parseToml(str);\n } catch {\n ctx.addIssue({ code: 'custom', message: 'Invalid TOML' });\n return z.NEVER;\n }\n});\n\nexport const Ini = z.string().transform((str, ctx): Record<string, unknown> => {\n try {\n return ini.parse(str);\n } catch {\n ctx.addIssue({ code: 'custom', message: 'Invalid INI' });\n return z.NEVER;\n }\n});\n\nexport function withDepType<\n Output extends PackageDependency[],\n Schema extends ZodType<Output, ZodTypeDef, unknown>,\n>(schema: Schema, depType: string, force = true): ZodEffects<Schema> {\n return schema.transform((deps) => {\n for (const dep of deps) {\n if (!dep.depType || force) {\n dep.depType = depType;\n }\n }\n return deps;\n });\n}\n\nexport function withDebugMessage<Input, Output>(\n value: Output,\n msg: string,\n): (ctx: { error: z.ZodError; input: Input }) => Output {\n return ({ error: err }) => {\n logger.debug({ err }, msg);\n return value;\n };\n}\n\nexport function withTraceMessage<Input, Output>(\n value: Output,\n msg: string,\n): (ctx: { error: z.ZodError; input: Input }) => Output {\n return ({ error: err }) => {\n logger.trace({ err }, msg);\n return value;\n };\n}\n\nfunction isCircular(value: unknown, visited = new Set<unknown>()): boolean {\n if (value === null || typeof value !== 'object') {\n return false;\n }\n\n if (visited.has(value)) {\n return true;\n }\n\n const downstreamVisited = new Set(visited);\n downstreamVisited.add(value);\n\n if (Array.isArray(value)) {\n for (const childValue of value) {\n if (isCircular(childValue, downstreamVisited)) {\n return true;\n }\n }\n\n return false;\n }\n\n const values = Object.values(value);\n for (const ov of values) {\n if (isCircular(ov, downstreamVisited)) {\n return true;\n }\n }\n\n return false;\n}\n\nexport const NotCircular = z.unknown().superRefine((val, ctx) => {\n if (isCircular(val)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'values cannot be circular data structures',\n fatal: true,\n });\n\n return z.NEVER;\n }\n});\n\nexport const EmailAddress = z.string().email();\nexport type EmailAddress = z.infer<typeof EmailAddress>;\n\nexport function isEmailAdress(value: string): boolean {\n return EmailAddress.safeParse(value).success;\n}\n"]}
@@ -1,3 +1,4 @@
1
+ export declare const templateHelperNames: readonly string[];
1
2
  export declare const exposedConfigOptions: string[];
2
3
  export declare const allowedFields: {
3
4
  baseBranch: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.allowedFields = exports.exposedConfigOptions = void 0;
3
+ exports.allowedFields = exports.exposedConfigOptions = exports.templateHelperNames = void 0;
4
4
  exports.proxyCompileInput = proxyCompileInput;
5
5
  exports.compile = compile;
6
6
  exports.safeCompile = safeCompile;
@@ -12,77 +12,83 @@ const logger_1 = require("../../logger");
12
12
  const array_1 = require("../array");
13
13
  const utils_1 = require("../exec/utils");
14
14
  const regex_1 = require("../regex");
15
- handlebars_1.default.registerHelper('encodeURIComponent', encodeURIComponent);
16
- handlebars_1.default.registerHelper('decodeURIComponent', decodeURIComponent);
17
- handlebars_1.default.registerHelper('encodeBase64', (str) => Buffer.from(str ?? '').toString('base64'));
18
- handlebars_1.default.registerHelper('decodeBase64', (str) => Buffer.from(str ?? '', 'base64').toString());
19
- handlebars_1.default.registerHelper('stringToPrettyJSON', (input) => JSON.stringify(JSON.parse(input), null, 2));
20
- handlebars_1.default.registerHelper('toJSON', (input) => JSON.stringify(input));
21
- handlebars_1.default.registerHelper('toArray', (...args) => {
22
- // Need to remove the 'options', as last parameter
23
- // https://handlebarsjs.com/api-reference/helpers.html
24
- args.pop();
25
- return args;
26
- });
27
- handlebars_1.default.registerHelper('toObject', (...args) => {
28
- // Need to remove the 'options', as last parameter
29
- // https://handlebarsjs.com/api-reference/helpers.html
30
- args.pop();
31
- if (args.length % 2 !== 0) {
32
- throw new Error(`Must contain an even number of elements`);
33
- }
34
- const keys = args.filter((_, index) => index % 2 === 0);
35
- const values = args.filter((_, index) => index % 2 === 1);
36
- return Object.fromEntries(keys.map((key, index) => [key, values[index]]));
37
- });
38
- handlebars_1.default.registerHelper('replace', (find, replace, context) => (context ?? '').replace((0, regex_1.regEx)(find, 'g'), replace));
39
- handlebars_1.default.registerHelper('lowercase', (str) => str?.toLowerCase());
40
- handlebars_1.default.registerHelper('containsString', (str, subStr) => str?.includes(subStr));
41
- handlebars_1.default.registerHelper('equals', (arg1, arg2) => arg1 === arg2);
42
- handlebars_1.default.registerHelper('includes', (arg1, arg2) => {
43
- if (is_1.default.array(arg1, is_1.default.string) && is_1.default.string(arg2)) {
44
- return arg1.includes(arg2);
45
- }
46
- return false;
47
- });
48
- handlebars_1.default.registerHelper('split', (str, separator) => {
49
- if (is_1.default.string(str) && is_1.default.string(separator)) {
50
- return str.split(separator);
51
- }
52
- return [];
53
- });
54
- handlebars_1.default.registerHelper({
55
- and(...args) {
56
- // Need to remove the 'options', as last parameter
15
+ const helpers = {
16
+ encodeURIComponent,
17
+ decodeURIComponent,
18
+ encodeBase64: (str) => Buffer.from(str ?? '').toString('base64'),
19
+ decodeBase64: (str) => Buffer.from(str ?? '', 'base64').toString(),
20
+ stringToPrettyJSON: (input) => JSON.stringify(JSON.parse(input), null, 2),
21
+ toJSON: (input) => JSON.stringify(input),
22
+ toArray: (...args) => {
23
+ // Need to remove the 'options', as the last parameter
24
+ // https://handlebarsjs.com/api-reference/helpers.html
25
+ args.pop();
26
+ return args;
27
+ },
28
+ toObject: (...args) => {
29
+ // Need to remove the 'options', as the last parameter
30
+ // https://handlebarsjs.com/api-reference/helpers.html
31
+ args.pop();
32
+ if (args.length % 2 !== 0) {
33
+ throw new Error(`Must contain an even number of elements`);
34
+ }
35
+ const keys = args.filter((_, index) => index % 2 === 0);
36
+ const values = args.filter((_, index) => index % 2 === 1);
37
+ return Object.fromEntries(keys.map((key, index) => [key, values[index]]));
38
+ },
39
+ replace: (find, replace, context) => (context ?? '').replace((0, regex_1.regEx)(find, 'g'), replace),
40
+ lowercase: (str) => str?.toLowerCase(),
41
+ containsString: (str, subStr) => str?.includes(subStr),
42
+ equals: (arg1, arg2) => arg1 === arg2,
43
+ includes: (arg1, arg2) => {
44
+ if (is_1.default.array(arg1, is_1.default.string) && is_1.default.string(arg2)) {
45
+ return arg1.includes(arg2);
46
+ }
47
+ return false;
48
+ },
49
+ split: (str, separator) => {
50
+ if (is_1.default.string(str) && is_1.default.string(separator)) {
51
+ return str.split(separator);
52
+ }
53
+ return [];
54
+ },
55
+ and: (...args) => {
56
+ // Need to remove the 'options', as the last parameter
57
57
  // https://handlebarsjs.com/api-reference/helpers.html
58
58
  args.pop();
59
59
  return args.every(Boolean);
60
60
  },
61
- or(...args) {
62
- // Need to remove the 'options', as last parameter
61
+ or: (...args) => {
62
+ // Need to remove the 'options', as the last parameter
63
63
  // https://handlebarsjs.com/api-reference/helpers.html
64
64
  args.pop();
65
65
  return args.some(Boolean);
66
66
  },
67
- });
68
- handlebars_1.default.registerHelper('lookupArray', (obj, key, options) => {
69
- return ((0, array_1.toArray)(obj)
70
- // skip elements like #with does
71
- .filter((element) => !handlebars_1.default.Utils.isEmpty(element))
72
- .map((element) => options.lookupProperty(element, key))
73
- .filter((value) => value !== undefined));
74
- });
75
- handlebars_1.default.registerHelper('distinct', (obj) => {
76
- const seen = new Set();
77
- return (0, array_1.toArray)(obj).filter((value) => {
78
- const str = JSON.stringify(value);
79
- if (seen.has(str)) {
80
- return false;
81
- }
82
- seen.add(str);
83
- return true;
84
- });
85
- });
67
+ lookupArray: (obj, key, options) => {
68
+ return ((0, array_1.toArray)(obj)
69
+ // skip elements like #with does
70
+ .filter((element) => !handlebars_1.default.Utils.isEmpty(element))
71
+ .map((element) => options.lookupProperty(element, key))
72
+ .filter((value) => value !== undefined));
73
+ },
74
+ distinct: (obj) => {
75
+ const seen = new Set();
76
+ return (0, array_1.toArray)(obj).filter((value) => {
77
+ const str = JSON.stringify(value);
78
+ if (seen.has(str)) {
79
+ return false;
80
+ }
81
+ seen.add(str);
82
+ return true;
83
+ });
84
+ },
85
+ };
86
+ // Register all helpers from the single source of truth
87
+ for (const [name, fn] of Object.entries(helpers)) {
88
+ handlebars_1.default.registerHelper(name, fn);
89
+ }
90
+ // Export helper names derived from the same source used to register them
91
+ exports.templateHelperNames = Object.keys(helpers);
86
92
  exports.exposedConfigOptions = [
87
93
  'additionalBranchPrefix',
88
94
  'addLabels',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/util/template/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport handlebars, { type HelperOptions } from 'handlebars';\nimport { GlobalConfig } from '../../config/global';\nimport { logger } from '../../logger';\nimport { toArray } from '../array';\nimport { getChildEnv } from '../exec/utils';\nimport { regEx } from '../regex';\n\n// Missing in handlebars\ntype Options = HelperOptions & {\n lookupProperty: (element: unknown, key: unknown) => unknown;\n};\n\nhandlebars.registerHelper('encodeURIComponent', encodeURIComponent);\nhandlebars.registerHelper('decodeURIComponent', decodeURIComponent);\n\nhandlebars.registerHelper('encodeBase64', (str: string) =>\n Buffer.from(str ?? '').toString('base64'),\n);\n\nhandlebars.registerHelper('decodeBase64', (str: string) =>\n Buffer.from(str ?? '', 'base64').toString(),\n);\n\nhandlebars.registerHelper('stringToPrettyJSON', (input: string): string =>\n JSON.stringify(JSON.parse(input), null, 2),\n);\n\nhandlebars.registerHelper('toJSON', (input: unknown): string =>\n JSON.stringify(input),\n);\n\nhandlebars.registerHelper('toArray', (...args: unknown[]): unknown[] => {\n // Need to remove the 'options', as last parameter\n // https://handlebarsjs.com/api-reference/helpers.html\n args.pop();\n return args;\n});\n\nhandlebars.registerHelper('toObject', (...args: unknown[]): unknown => {\n // Need to remove the 'options', as last parameter\n // https://handlebarsjs.com/api-reference/helpers.html\n args.pop();\n\n if (args.length % 2 !== 0) {\n throw new Error(`Must contain an even number of elements`);\n }\n\n const keys = args.filter((_, index) => index % 2 === 0);\n const values = args.filter((_, index) => index % 2 === 1);\n\n return Object.fromEntries(keys.map((key, index) => [key, values[index]]));\n});\n\nhandlebars.registerHelper('replace', (find, replace, context) =>\n (context ?? '').replace(regEx(find, 'g'), replace),\n);\n\nhandlebars.registerHelper('lowercase', (str: string) => str?.toLowerCase());\n\nhandlebars.registerHelper('containsString', (str, subStr) =>\n str?.includes(subStr),\n);\n\nhandlebars.registerHelper('equals', (arg1, arg2) => arg1 === arg2);\n\nhandlebars.registerHelper('includes', (arg1: string[], arg2: string) => {\n if (is.array(arg1, is.string) && is.string(arg2)) {\n return arg1.includes(arg2);\n }\n\n return false;\n});\n\nhandlebars.registerHelper(\n 'split',\n (str: unknown, separator: unknown): string[] => {\n if (is.string(str) && is.string(separator)) {\n return str.split(separator);\n }\n return [];\n },\n);\n\nhandlebars.registerHelper({\n and(...args) {\n // Need to remove the 'options', as last parameter\n // https://handlebarsjs.com/api-reference/helpers.html\n args.pop();\n return args.every(Boolean);\n },\n or(...args) {\n // Need to remove the 'options', as last parameter\n // https://handlebarsjs.com/api-reference/helpers.html\n args.pop();\n return args.some(Boolean);\n },\n});\n\nhandlebars.registerHelper(\n 'lookupArray',\n (obj: unknown, key: unknown, options: Options): unknown[] => {\n return (\n toArray(obj)\n // skip elements like #with does\n .filter((element) => !handlebars.Utils.isEmpty(element))\n .map((element) => options.lookupProperty(element, key))\n .filter((value) => value !== undefined)\n );\n },\n);\n\nhandlebars.registerHelper('distinct', (obj: unknown): unknown[] => {\n const seen = new Set<string>();\n\n return toArray(obj).filter((value) => {\n const str = JSON.stringify(value);\n\n if (seen.has(str)) {\n return false;\n }\n\n seen.add(str);\n return true;\n });\n});\n\nexport const exposedConfigOptions = [\n 'additionalBranchPrefix',\n 'addLabels',\n 'branchName',\n 'branchPrefix',\n 'branchTopic',\n 'commitBody',\n 'commitMessage',\n 'commitMessageAction',\n 'commitMessageExtra',\n 'commitMessagePrefix',\n 'commitMessageSuffix',\n 'commitMessageTopic',\n 'gitAuthor',\n 'group',\n 'groupName',\n 'groupSlug',\n 'labels',\n 'prBodyColumns',\n 'prBodyDefinitions',\n 'prBodyNotes',\n 'prTitle',\n 'semanticCommitScope',\n 'semanticCommitType',\n 'separateMajorMinor',\n 'separateMinorPatch',\n 'separateMultipleMinor',\n 'sourceDirectory',\n];\n\nexport const allowedFields = {\n baseBranch: 'The baseBranch for this branch/PR',\n body: 'The body of the release notes',\n categories: 'The categories of the manager of the dependency being updated',\n currentValue: 'The extracted current value of the dependency being updated',\n currentVersion:\n 'The version that would be currently installed. For example, if currentValue is ^3.0.0 then currentVersion might be 3.1.0.',\n currentVersionAgeInDays: 'The age of the current version in days',\n currentVersionTimestamp: 'The timestamp of the current version',\n currentDigest: 'The extracted current digest of the dependency being updated',\n currentDigestShort:\n 'The extracted current short digest of the dependency being updated',\n datasource: 'The datasource used to look up the upgrade',\n depName: 'The name of the dependency being updated',\n depNameLinked:\n 'The dependency name already linked to its home page using markdown',\n depNameSanitized:\n 'The depName field sanitized for use in branches after removing spaces and special characters',\n depType: 'The dependency type (if extracted - manager-dependent)',\n depTypes:\n 'A deduplicated array of dependency types (if extracted - manager-dependent) in a branch',\n displayFrom: 'The current value, formatted for display',\n displayPending: 'Latest pending update, if internalChecksFilter is in use',\n displayTo: 'The to value, formatted for display',\n hasReleaseNotes: 'true if the upgrade has release notes',\n indentation: 'The indentation of the dependency being updated',\n isGroup: 'true if the upgrade is part of a group',\n isLockfileUpdate: 'true if the branch is a lock file update',\n isMajor: 'true if the upgrade is major',\n isMinor: 'true if the upgrade is minor',\n isPatch: 'true if the upgrade is a patch upgrade',\n isPin: 'true if the upgrade is pinning dependencies',\n isPinDigest: 'true if the upgrade is pinning digests',\n isRollback: 'true if the upgrade is a rollback PR',\n isReplacement: 'true if the upgrade is a replacement',\n isRange: 'true if the new value is a range',\n isSingleVersion:\n 'true if the upgrade is to a single version rather than a range',\n isVulnerabilityAlert: 'true if the upgrade is a vulnerability alert',\n logJSON: 'ChangeLogResult object for the upgrade',\n manager: 'The (package) manager which detected the dependency',\n newDigest: 'The new digest value',\n newDigestShort:\n 'A shorted version of newDigest, for use when the full digest is too long to be conveniently displayed',\n newMajor:\n 'The major version of the new version. e.g. \"3\" if the new version is \"3.1.0\"',\n newMinor:\n 'The minor version of the new version. e.g. \"1\" if the new version is \"3.1.0\"',\n newPatch:\n 'The patch version of the new version. e.g. \"0\" if the new version is \"3.1.0\"',\n newName:\n 'The name of the new dependency that replaces the current deprecated dependency',\n newNameLinked:\n 'The new dependency name already linked to its home page using markdown',\n newValue:\n 'The new value in the upgrade. Can be a range or version e.g. \"^3.0.0\" or \"3.1.0\"',\n newVersion: 'The new version in the upgrade, e.g. \"3.1.0\"',\n newVersionAgeInDays: 'The age of the new version in days',\n packageFile: 'The filename that the dependency was found in',\n packageFileDir:\n 'The directory with full path where the packageFile was found',\n packageName: 'The full name that was used to look up the dependency',\n packageScope: 'The scope of the package name. Supports Maven group ID only',\n parentDir:\n 'The name of the directory that the dependency was found in, without full path',\n parentOrg: 'The name of the parent organization for the current repository',\n platform: 'VCS platform in use, e.g. \"github\", \"gitlab\", etc.',\n prettyDepType: 'Massaged depType',\n prettyNewMajor: 'The new major value with v prepended to it.',\n prettyNewVersion: 'The new version value with v prepended to it.',\n project: 'ChangeLogProject object',\n recreateClosed: 'If true, this PR will be recreated if closed',\n references: 'A list of references for the upgrade',\n releases: 'An array of releases for an upgrade',\n releaseNotes: 'A ChangeLogNotes object for the release',\n releaseTimestamp: 'The timestamp of the release',\n repository: 'The current repository',\n semanticPrefix: 'The fully generated semantic prefix for commit messages',\n sourceRepo: 'The repository in the sourceUrl, if present',\n sourceRepoName: 'The repository name in the sourceUrl, if present',\n sourceRepoOrg: 'The repository organization in the sourceUrl, if present',\n sourceRepoSlug: 'The slugified pathname of the sourceUrl, if present',\n sourceUrl: 'The source URL for the package',\n topLevelOrg:\n 'The name of the top-level organization for the current repository',\n updateType:\n 'One of digest, pin, rollback, patch, minor, major, replacement, pinDigest',\n upgrades: 'An array of upgrade objects in the branch',\n url: 'The url of the release notes',\n version: 'The version number of the changelog',\n versioning: 'The versioning scheme in use',\n versions: 'An array of ChangeLogRelease objects in the upgrade',\n vulnerabilitySeverity:\n 'The severity for a vulnerability alert upgrade (LOW, MEDIUM, MODERATE, HIGH, CRITICAL, UNKNOWN)',\n};\n\ntype CompileInput = Record<string, unknown>;\n\nconst allowedTemplateFields = new Set([\n ...Object.keys(allowedFields),\n ...exposedConfigOptions,\n]);\n\nclass CompileInputProxyHandler implements ProxyHandler<CompileInput> {\n constructor(private warnVariables: Set<string>) {}\n\n get(target: CompileInput, prop: keyof CompileInput): unknown {\n if (prop === 'env') {\n return target[prop];\n }\n\n if (!allowedTemplateFields.has(prop)) {\n this.warnVariables.add(prop);\n return undefined;\n }\n\n const value = target[prop];\n\n if (prop === 'prBodyDefinitions') {\n // Expose all prBodyDefinitions.*\n return value;\n }\n\n if (is.array(value)) {\n return value.map((element) =>\n is.primitive(element)\n ? element\n : proxyCompileInput(element as CompileInput, this.warnVariables),\n );\n }\n\n if (is.plainObject(value)) {\n return proxyCompileInput(value, this.warnVariables);\n }\n\n return value;\n }\n}\n\nexport function proxyCompileInput(\n input: CompileInput,\n warnVariables: Set<string>,\n): CompileInput {\n return new Proxy<CompileInput>(\n input,\n new CompileInputProxyHandler(warnVariables),\n );\n}\n\nexport function compile(\n template: string,\n input: CompileInput,\n filterFields = true,\n): string {\n const env = getChildEnv({});\n const data = { ...GlobalConfig.get(), ...input, env };\n const warnVariables = new Set<string>();\n const filteredInput = filterFields\n ? proxyCompileInput(data, warnVariables)\n : data;\n\n logger.trace({ template, filteredInput }, 'Compiling template');\n const result = handlebars.compile(template)(filteredInput);\n\n if (warnVariables.size > 0) {\n logger.info(\n { varNames: Array.from(warnVariables), template },\n 'Disallowed variable names in template',\n );\n }\n\n return result;\n}\n\nexport function safeCompile(\n template: string,\n input: CompileInput,\n filterFields = true,\n): string {\n try {\n return compile(template, input, filterFields);\n } catch (err) {\n logger.warn({ err, template }, 'Error compiling template');\n return '';\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/util/template/index.ts"],"names":[],"mappings":";;;AAgRA,8CAQC;AAED,0BAuBC;AAED,kCAWC;;AA9TD,kEAAkC;AAClC,oEAA4D;AAC5D,gDAAmD;AACnD,yCAAsC;AACtC,oCAAmC;AACnC,yCAA4C;AAC5C,oCAAiC;AAOjC,MAAM,OAAO,GAA8C;IACzD,kBAAkB;IAClB,kBAAkB;IAClB,YAAY,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACxE,YAAY,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE;IAC1E,kBAAkB,EAAE,CAAC,KAAa,EAAU,EAAE,CAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,EAAE,CAAC,KAAc,EAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACzD,OAAO,EAAE,CAAC,GAAG,IAAe,EAAa,EAAE;QACzC,sDAAsD;QACtD,sDAAsD;QACtD,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IACD,QAAQ,EAAE,CAAC,GAAG,IAAe,EAAW,EAAE;QACxC,sDAAsD;QACtD,sDAAsD;QACtD,IAAI,CAAC,GAAG,EAAE,CAAC;QAEX,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAE1D,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAClC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IACpD,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE;IAC9C,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC;IACtD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI;IACrC,QAAQ,EAAE,CAAC,IAAc,EAAE,IAAY,EAAE,EAAE;QACzC,IAAI,YAAE,CAAC,KAAK,CAAC,IAAI,EAAE,YAAE,CAAC,MAAM,CAAC,IAAI,YAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,EAAE,CAAC,GAAY,EAAE,SAAkB,EAAY,EAAE;QACpD,IAAI,YAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,YAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,OAAO,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,GAAG,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QAC1B,sDAAsD;QACtD,sDAAsD;QACtD,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IACD,EAAE,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;QACzB,sDAAsD;QACtD,sDAAsD;QACtD,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,WAAW,EAAE,CAAC,GAAY,EAAE,GAAY,EAAE,OAAgB,EAAa,EAAE;QACvE,OAAO,CACL,IAAA,eAAO,EAAC,GAAG,CAAC;YACV,gCAAgC;aAC/B,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,oBAAU,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aACvD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;aACtD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAC1C,CAAC;IACJ,CAAC;IACD,QAAQ,EAAE,CAAC,GAAY,EAAa,EAAE;QACpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/B,OAAO,IAAA,eAAO,EAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAElC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,uDAAuD;AACvD,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,oBAAU,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,yEAAyE;AAC5D,QAAA,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAsB,CAAC;AAEhE,QAAA,oBAAoB,GAAG;IAClC,wBAAwB;IACxB,WAAW;IACX,YAAY;IACZ,cAAc;IACd,aAAa;IACb,YAAY;IACZ,eAAe;IACf,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;IACrB,oBAAoB;IACpB,WAAW;IACX,OAAO;IACP,WAAW;IACX,WAAW;IACX,QAAQ;IACR,eAAe;IACf,mBAAmB;IACnB,aAAa;IACb,SAAS;IACT,qBAAqB;IACrB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,uBAAuB;IACvB,iBAAiB;CAClB,CAAC;AAEW,QAAA,aAAa,GAAG;IAC3B,UAAU,EAAE,mCAAmC;IAC/C,IAAI,EAAE,+BAA+B;IACrC,UAAU,EAAE,+DAA+D;IAC3E,YAAY,EAAE,6DAA6D;IAC3E,cAAc,EACZ,2HAA2H;IAC7H,uBAAuB,EAAE,wCAAwC;IACjE,uBAAuB,EAAE,sCAAsC;IAC/D,aAAa,EAAE,8DAA8D;IAC7E,kBAAkB,EAChB,oEAAoE;IACtE,UAAU,EAAE,4CAA4C;IACxD,OAAO,EAAE,0CAA0C;IACnD,aAAa,EACX,oEAAoE;IACtE,gBAAgB,EACd,8FAA8F;IAChG,OAAO,EAAE,wDAAwD;IACjE,QAAQ,EACN,yFAAyF;IAC3F,WAAW,EAAE,0CAA0C;IACvD,cAAc,EAAE,0DAA0D;IAC1E,SAAS,EAAE,qCAAqC;IAChD,eAAe,EAAE,uCAAuC;IACxD,WAAW,EAAE,iDAAiD;IAC9D,OAAO,EAAE,wCAAwC;IACjD,gBAAgB,EAAE,0CAA0C;IAC5D,OAAO,EAAE,8BAA8B;IACvC,OAAO,EAAE,8BAA8B;IACvC,OAAO,EAAE,wCAAwC;IACjD,KAAK,EAAE,6CAA6C;IACpD,WAAW,EAAE,wCAAwC;IACrD,UAAU,EAAE,sCAAsC;IAClD,aAAa,EAAE,sCAAsC;IACrD,OAAO,EAAE,kCAAkC;IAC3C,eAAe,EACb,gEAAgE;IAClE,oBAAoB,EAAE,8CAA8C;IACpE,OAAO,EAAE,wCAAwC;IACjD,OAAO,EAAE,qDAAqD;IAC9D,SAAS,EAAE,sBAAsB;IACjC,cAAc,EACZ,uGAAuG;IACzG,QAAQ,EACN,8EAA8E;IAChF,QAAQ,EACN,8EAA8E;IAChF,QAAQ,EACN,8EAA8E;IAChF,OAAO,EACL,gFAAgF;IAClF,aAAa,EACX,wEAAwE;IAC1E,QAAQ,EACN,kFAAkF;IACpF,UAAU,EAAE,8CAA8C;IAC1D,mBAAmB,EAAE,oCAAoC;IACzD,WAAW,EAAE,+CAA+C;IAC5D,cAAc,EACZ,8DAA8D;IAChE,WAAW,EAAE,uDAAuD;IACpE,YAAY,EAAE,6DAA6D;IAC3E,SAAS,EACP,+EAA+E;IACjF,SAAS,EAAE,gEAAgE;IAC3E,QAAQ,EAAE,oDAAoD;IAC9D,aAAa,EAAE,kBAAkB;IACjC,cAAc,EAAE,6CAA6C;IAC7D,gBAAgB,EAAE,+CAA+C;IACjE,OAAO,EAAE,yBAAyB;IAClC,cAAc,EAAE,8CAA8C;IAC9D,UAAU,EAAE,sCAAsC;IAClD,QAAQ,EAAE,qCAAqC;IAC/C,YAAY,EAAE,yCAAyC;IACvD,gBAAgB,EAAE,8BAA8B;IAChD,UAAU,EAAE,wBAAwB;IACpC,cAAc,EAAE,yDAAyD;IACzE,UAAU,EAAE,6CAA6C;IACzD,cAAc,EAAE,kDAAkD;IAClE,aAAa,EAAE,0DAA0D;IACzE,cAAc,EAAE,qDAAqD;IACrE,SAAS,EAAE,gCAAgC;IAC3C,WAAW,EACT,mEAAmE;IACrE,UAAU,EACR,2EAA2E;IAC7E,QAAQ,EAAE,2CAA2C;IACrD,GAAG,EAAE,8BAA8B;IACnC,OAAO,EAAE,qCAAqC;IAC9C,UAAU,EAAE,8BAA8B;IAC1C,QAAQ,EAAE,qDAAqD;IAC/D,qBAAqB,EACnB,iGAAiG;CACpG,CAAC;AAIF,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAa,CAAC;IAC7B,GAAG,4BAAoB;CACxB,CAAC,CAAC;AAEH,MAAM,wBAAwB;IACR;IAApB,YAAoB,aAA0B;QAA1B,kBAAa,GAAb,aAAa,CAAa;IAAG,CAAC;IAElD,GAAG,CAAC,MAAoB,EAAE,IAAwB;QAChD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAE3B,IAAI,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACjC,iCAAiC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,YAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3B,YAAE,CAAC,SAAS,CAAC,OAAO,CAAC;gBACnB,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,iBAAiB,CAAC,OAAuB,EAAE,IAAI,CAAC,aAAa,CAAC,CACnE,CAAC;QACJ,CAAC;QAED,IAAI,YAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,SAAgB,iBAAiB,CAC/B,KAAmB,EACnB,aAA0B;IAE1B,OAAO,IAAI,KAAK,CACd,KAAK,EACL,IAAI,wBAAwB,CAAC,aAAa,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED,SAAgB,OAAO,CACrB,QAAgB,EAChB,KAAmB,EACnB,YAAY,GAAG,IAAI;IAEnB,MAAM,GAAG,GAAG,IAAA,mBAAW,EAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,EAAE,GAAG,qBAAY,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC;IACtD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,aAAa,GAAG,YAAY;QAChC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC;QACxC,CAAC,CAAC,IAAI,CAAC;IAET,eAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,oBAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC;IAE3D,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC3B,eAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,EACjD,uCAAuC,CACxC,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,WAAW,CACzB,QAAgB,EAChB,KAAmB,EACnB,YAAY,GAAG,IAAI;IAEnB,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,0BAA0B,CAAC,CAAC;QAC3D,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport handlebars, { type HelperOptions } from 'handlebars';\nimport { GlobalConfig } from '../../config/global';\nimport { logger } from '../../logger';\nimport { toArray } from '../array';\nimport { getChildEnv } from '../exec/utils';\nimport { regEx } from '../regex';\n\n// Missing in handlebars\ntype Options = HelperOptions & {\n lookupProperty: (element: unknown, key: unknown) => unknown;\n};\n\nconst helpers: Record<string, handlebars.HelperDelegate> = {\n encodeURIComponent,\n decodeURIComponent,\n encodeBase64: (str: string) => Buffer.from(str ?? '').toString('base64'),\n decodeBase64: (str: string) => Buffer.from(str ?? '', 'base64').toString(),\n stringToPrettyJSON: (input: string): string =>\n JSON.stringify(JSON.parse(input), null, 2),\n toJSON: (input: unknown): string => JSON.stringify(input),\n toArray: (...args: unknown[]): unknown[] => {\n // Need to remove the 'options', as the last parameter\n // https://handlebarsjs.com/api-reference/helpers.html\n args.pop();\n return args;\n },\n toObject: (...args: unknown[]): unknown => {\n // Need to remove the 'options', as the last parameter\n // https://handlebarsjs.com/api-reference/helpers.html\n args.pop();\n\n if (args.length % 2 !== 0) {\n throw new Error(`Must contain an even number of elements`);\n }\n\n const keys = args.filter((_, index) => index % 2 === 0);\n const values = args.filter((_, index) => index % 2 === 1);\n\n return Object.fromEntries(keys.map((key, index) => [key, values[index]]));\n },\n replace: (find, replace, context) =>\n (context ?? '').replace(regEx(find, 'g'), replace),\n lowercase: (str: string) => str?.toLowerCase(),\n containsString: (str, subStr) => str?.includes(subStr),\n equals: (arg1, arg2) => arg1 === arg2,\n includes: (arg1: string[], arg2: string) => {\n if (is.array(arg1, is.string) && is.string(arg2)) {\n return arg1.includes(arg2);\n }\n return false;\n },\n split: (str: unknown, separator: unknown): string[] => {\n if (is.string(str) && is.string(separator)) {\n return str.split(separator);\n }\n return [];\n },\n and: (...args: unknown[]) => {\n // Need to remove the 'options', as the last parameter\n // https://handlebarsjs.com/api-reference/helpers.html\n args.pop();\n return args.every(Boolean);\n },\n or: (...args: unknown[]) => {\n // Need to remove the 'options', as the last parameter\n // https://handlebarsjs.com/api-reference/helpers.html\n args.pop();\n return args.some(Boolean);\n },\n lookupArray: (obj: unknown, key: unknown, options: Options): unknown[] => {\n return (\n toArray(obj)\n // skip elements like #with does\n .filter((element) => !handlebars.Utils.isEmpty(element))\n .map((element) => options.lookupProperty(element, key))\n .filter((value) => value !== undefined)\n );\n },\n distinct: (obj: unknown): unknown[] => {\n const seen = new Set<string>();\n\n return toArray(obj).filter((value) => {\n const str = JSON.stringify(value);\n\n if (seen.has(str)) {\n return false;\n }\n\n seen.add(str);\n return true;\n });\n },\n};\n\n// Register all helpers from the single source of truth\nfor (const [name, fn] of Object.entries(helpers)) {\n handlebars.registerHelper(name, fn);\n}\n\n// Export helper names derived from the same source used to register them\nexport const templateHelperNames = Object.keys(helpers) as readonly string[];\n\nexport const exposedConfigOptions = [\n 'additionalBranchPrefix',\n 'addLabels',\n 'branchName',\n 'branchPrefix',\n 'branchTopic',\n 'commitBody',\n 'commitMessage',\n 'commitMessageAction',\n 'commitMessageExtra',\n 'commitMessagePrefix',\n 'commitMessageSuffix',\n 'commitMessageTopic',\n 'gitAuthor',\n 'group',\n 'groupName',\n 'groupSlug',\n 'labels',\n 'prBodyColumns',\n 'prBodyDefinitions',\n 'prBodyNotes',\n 'prTitle',\n 'semanticCommitScope',\n 'semanticCommitType',\n 'separateMajorMinor',\n 'separateMinorPatch',\n 'separateMultipleMinor',\n 'sourceDirectory',\n];\n\nexport const allowedFields = {\n baseBranch: 'The baseBranch for this branch/PR',\n body: 'The body of the release notes',\n categories: 'The categories of the manager of the dependency being updated',\n currentValue: 'The extracted current value of the dependency being updated',\n currentVersion:\n 'The version that would be currently installed. For example, if currentValue is ^3.0.0 then currentVersion might be 3.1.0.',\n currentVersionAgeInDays: 'The age of the current version in days',\n currentVersionTimestamp: 'The timestamp of the current version',\n currentDigest: 'The extracted current digest of the dependency being updated',\n currentDigestShort:\n 'The extracted current short digest of the dependency being updated',\n datasource: 'The datasource used to look up the upgrade',\n depName: 'The name of the dependency being updated',\n depNameLinked:\n 'The dependency name already linked to its home page using markdown',\n depNameSanitized:\n 'The depName field sanitized for use in branches after removing spaces and special characters',\n depType: 'The dependency type (if extracted - manager-dependent)',\n depTypes:\n 'A deduplicated array of dependency types (if extracted - manager-dependent) in a branch',\n displayFrom: 'The current value, formatted for display',\n displayPending: 'Latest pending update, if internalChecksFilter is in use',\n displayTo: 'The to value, formatted for display',\n hasReleaseNotes: 'true if the upgrade has release notes',\n indentation: 'The indentation of the dependency being updated',\n isGroup: 'true if the upgrade is part of a group',\n isLockfileUpdate: 'true if the branch is a lock file update',\n isMajor: 'true if the upgrade is major',\n isMinor: 'true if the upgrade is minor',\n isPatch: 'true if the upgrade is a patch upgrade',\n isPin: 'true if the upgrade is pinning dependencies',\n isPinDigest: 'true if the upgrade is pinning digests',\n isRollback: 'true if the upgrade is a rollback PR',\n isReplacement: 'true if the upgrade is a replacement',\n isRange: 'true if the new value is a range',\n isSingleVersion:\n 'true if the upgrade is to a single version rather than a range',\n isVulnerabilityAlert: 'true if the upgrade is a vulnerability alert',\n logJSON: 'ChangeLogResult object for the upgrade',\n manager: 'The (package) manager which detected the dependency',\n newDigest: 'The new digest value',\n newDigestShort:\n 'A shorted version of newDigest, for use when the full digest is too long to be conveniently displayed',\n newMajor:\n 'The major version of the new version. e.g. \"3\" if the new version is \"3.1.0\"',\n newMinor:\n 'The minor version of the new version. e.g. \"1\" if the new version is \"3.1.0\"',\n newPatch:\n 'The patch version of the new version. e.g. \"0\" if the new version is \"3.1.0\"',\n newName:\n 'The name of the new dependency that replaces the current deprecated dependency',\n newNameLinked:\n 'The new dependency name already linked to its home page using markdown',\n newValue:\n 'The new value in the upgrade. Can be a range or version e.g. \"^3.0.0\" or \"3.1.0\"',\n newVersion: 'The new version in the upgrade, e.g. \"3.1.0\"',\n newVersionAgeInDays: 'The age of the new version in days',\n packageFile: 'The filename that the dependency was found in',\n packageFileDir:\n 'The directory with full path where the packageFile was found',\n packageName: 'The full name that was used to look up the dependency',\n packageScope: 'The scope of the package name. Supports Maven group ID only',\n parentDir:\n 'The name of the directory that the dependency was found in, without full path',\n parentOrg: 'The name of the parent organization for the current repository',\n platform: 'VCS platform in use, e.g. \"github\", \"gitlab\", etc.',\n prettyDepType: 'Massaged depType',\n prettyNewMajor: 'The new major value with v prepended to it.',\n prettyNewVersion: 'The new version value with v prepended to it.',\n project: 'ChangeLogProject object',\n recreateClosed: 'If true, this PR will be recreated if closed',\n references: 'A list of references for the upgrade',\n releases: 'An array of releases for an upgrade',\n releaseNotes: 'A ChangeLogNotes object for the release',\n releaseTimestamp: 'The timestamp of the release',\n repository: 'The current repository',\n semanticPrefix: 'The fully generated semantic prefix for commit messages',\n sourceRepo: 'The repository in the sourceUrl, if present',\n sourceRepoName: 'The repository name in the sourceUrl, if present',\n sourceRepoOrg: 'The repository organization in the sourceUrl, if present',\n sourceRepoSlug: 'The slugified pathname of the sourceUrl, if present',\n sourceUrl: 'The source URL for the package',\n topLevelOrg:\n 'The name of the top-level organization for the current repository',\n updateType:\n 'One of digest, pin, rollback, patch, minor, major, replacement, pinDigest',\n upgrades: 'An array of upgrade objects in the branch',\n url: 'The url of the release notes',\n version: 'The version number of the changelog',\n versioning: 'The versioning scheme in use',\n versions: 'An array of ChangeLogRelease objects in the upgrade',\n vulnerabilitySeverity:\n 'The severity for a vulnerability alert upgrade (LOW, MEDIUM, MODERATE, HIGH, CRITICAL, UNKNOWN)',\n};\n\ntype CompileInput = Record<string, unknown>;\n\nconst allowedTemplateFields = new Set([\n ...Object.keys(allowedFields),\n ...exposedConfigOptions,\n]);\n\nclass CompileInputProxyHandler implements ProxyHandler<CompileInput> {\n constructor(private warnVariables: Set<string>) {}\n\n get(target: CompileInput, prop: keyof CompileInput): unknown {\n if (prop === 'env') {\n return target[prop];\n }\n\n if (!allowedTemplateFields.has(prop)) {\n this.warnVariables.add(prop);\n return undefined;\n }\n\n const value = target[prop];\n\n if (prop === 'prBodyDefinitions') {\n // Expose all prBodyDefinitions.*\n return value;\n }\n\n if (is.array(value)) {\n return value.map((element) =>\n is.primitive(element)\n ? element\n : proxyCompileInput(element as CompileInput, this.warnVariables),\n );\n }\n\n if (is.plainObject(value)) {\n return proxyCompileInput(value, this.warnVariables);\n }\n\n return value;\n }\n}\n\nexport function proxyCompileInput(\n input: CompileInput,\n warnVariables: Set<string>,\n): CompileInput {\n return new Proxy<CompileInput>(\n input,\n new CompileInputProxyHandler(warnVariables),\n );\n}\n\nexport function compile(\n template: string,\n input: CompileInput,\n filterFields = true,\n): string {\n const env = getChildEnv({});\n const data = { ...GlobalConfig.get(), ...input, env };\n const warnVariables = new Set<string>();\n const filteredInput = filterFields\n ? proxyCompileInput(data, warnVariables)\n : data;\n\n logger.trace({ template, filteredInput }, 'Compiling template');\n const result = handlebars.compile(template)(filteredInput);\n\n if (warnVariables.size > 0) {\n logger.info(\n { varNames: Array.from(warnVariables), template },\n 'Disallowed variable names in template',\n );\n }\n\n return result;\n}\n\nexport function safeCompile(\n template: string,\n input: CompileInput,\n filterFields = true,\n): string {\n try {\n return compile(template, input, filterFields);\n } catch (err) {\n logger.warn({ err, template }, 'Error compiling template');\n return '';\n }\n}\n"]}
@@ -5,6 +5,7 @@ exports.deleteNonDefaultConfig = deleteNonDefaultConfig;
5
5
  const tslib_1 = require("tslib");
6
6
  const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
7
7
  const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
8
+ const app_strings_1 = require("../../../../config/app-strings");
8
9
  const logger_1 = require("../../../../logger");
9
10
  const util_1 = require("./util");
10
11
  async function getConfig(env) {
@@ -56,6 +57,11 @@ async function getConfig(env) {
56
57
  logger_1.logger.debug({ keys: exportedKeys }, 'processEnv keys were exported to env');
57
58
  delete config.processEnv;
58
59
  }
60
+ if (is_1.default.nonEmptyArray(config.configFileNames)) {
61
+ logger_1.logger.debug({ configFileNames: config.configFileNames }, 'Updated the config filenames list');
62
+ (0, app_strings_1.setUserConfigFileNames)(config.configFileNames);
63
+ delete config.configFileNames;
64
+ }
59
65
  return (0, util_1.migrateAndValidateConfig)(config, configFile);
60
66
  }
61
67
  async function deleteNonDefaultConfig(env, deleteConfigFile) {
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/file.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport fs from 'fs-extra';\nimport type { AllConfig } from '../../../../config/types';\nimport { logger } from '../../../../logger';\nimport { getParsedContent, migrateAndValidateConfig } from './util';\n\nexport async function getConfig(env: NodeJS.ProcessEnv): Promise<AllConfig> {\n const configFile = env.RENOVATE_CONFIG_FILE ?? 'config.js';\n\n const configFileExists = await fs.pathExists(configFile);\n if (env.RENOVATE_CONFIG_FILE && !configFileExists) {\n logger.fatal(\n { configFile },\n `Custom config file specified in RENOVATE_CONFIG_FILE must exist`,\n );\n process.exit(1);\n }\n\n let config: AllConfig = {};\n\n if (!configFileExists) {\n logger.debug('No config file found on disk - skipping');\n return config;\n }\n\n logger.debug('Checking for config file in ' + configFile);\n try {\n config = await getParsedContent(configFile);\n } catch (err) {\n if (err instanceof SyntaxError || err instanceof TypeError) {\n logger.fatal({ error: err.stack }, 'Could not parse config file');\n process.exit(1);\n } else if (err instanceof ReferenceError) {\n logger.fatal(\n `Error parsing config file due to unresolved variable(s): ${err.message}`,\n );\n process.exit(1);\n } else if (err.message === 'Unsupported file type') {\n logger.fatal(err.message);\n process.exit(1);\n } else if (env.RENOVATE_CONFIG_FILE) {\n logger.debug({ err }, 'Parse error');\n logger.fatal('Error parsing config file');\n process.exit(1);\n }\n logger.debug('Error reading or parsing file - skipping');\n }\n\n if (is.nonEmptyObject(config.processEnv)) {\n const exportedKeys = [];\n for (const [key, value] of Object.entries(config.processEnv)) {\n if (!is.nonEmptyString(value)) {\n logger.error({ key }, 'processEnv value is not a string.');\n continue;\n }\n\n exportedKeys.push(key);\n process.env[key] = value;\n }\n logger.debug(\n { keys: exportedKeys },\n 'processEnv keys were exported to env',\n );\n delete config.processEnv;\n }\n\n return migrateAndValidateConfig(config, configFile);\n}\n\nexport async function deleteNonDefaultConfig(\n env: NodeJS.ProcessEnv,\n deleteConfigFile: boolean,\n): Promise<void> {\n const configFile = env.RENOVATE_CONFIG_FILE;\n\n if (is.undefined(configFile) || is.emptyStringOrWhitespace(configFile)) {\n return;\n }\n\n if (!deleteConfigFile) {\n return;\n }\n\n if (!(await fs.pathExists(configFile))) {\n return;\n }\n\n try {\n await fs.remove(configFile);\n logger.trace({ path: configFile }, 'config file successfully deleted');\n } catch (err) {\n logger.warn({ err }, 'error deleting config file');\n }\n}\n"]}
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/file.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport fs from 'fs-extra';\nimport { setUserConfigFileNames } from '../../../../config/app-strings';\nimport type { AllConfig } from '../../../../config/types';\nimport { logger } from '../../../../logger';\nimport { getParsedContent, migrateAndValidateConfig } from './util';\n\nexport async function getConfig(env: NodeJS.ProcessEnv): Promise<AllConfig> {\n const configFile = env.RENOVATE_CONFIG_FILE ?? 'config.js';\n\n const configFileExists = await fs.pathExists(configFile);\n if (env.RENOVATE_CONFIG_FILE && !configFileExists) {\n logger.fatal(\n { configFile },\n `Custom config file specified in RENOVATE_CONFIG_FILE must exist`,\n );\n process.exit(1);\n }\n\n let config: AllConfig = {};\n\n if (!configFileExists) {\n logger.debug('No config file found on disk - skipping');\n return config;\n }\n\n logger.debug('Checking for config file in ' + configFile);\n try {\n config = await getParsedContent(configFile);\n } catch (err) {\n if (err instanceof SyntaxError || err instanceof TypeError) {\n logger.fatal({ error: err.stack }, 'Could not parse config file');\n process.exit(1);\n } else if (err instanceof ReferenceError) {\n logger.fatal(\n `Error parsing config file due to unresolved variable(s): ${err.message}`,\n );\n process.exit(1);\n } else if (err.message === 'Unsupported file type') {\n logger.fatal(err.message);\n process.exit(1);\n } else if (env.RENOVATE_CONFIG_FILE) {\n logger.debug({ err }, 'Parse error');\n logger.fatal('Error parsing config file');\n process.exit(1);\n }\n logger.debug('Error reading or parsing file - skipping');\n }\n\n if (is.nonEmptyObject(config.processEnv)) {\n const exportedKeys = [];\n for (const [key, value] of Object.entries(config.processEnv)) {\n if (!is.nonEmptyString(value)) {\n logger.error({ key }, 'processEnv value is not a string.');\n continue;\n }\n\n exportedKeys.push(key);\n process.env[key] = value;\n }\n logger.debug(\n { keys: exportedKeys },\n 'processEnv keys were exported to env',\n );\n delete config.processEnv;\n }\n\n if (is.nonEmptyArray(config.configFileNames)) {\n logger.debug(\n { configFileNames: config.configFileNames },\n 'Updated the config filenames list',\n );\n setUserConfigFileNames(config.configFileNames);\n delete config.configFileNames;\n }\n\n return migrateAndValidateConfig(config, configFile);\n}\n\nexport async function deleteNonDefaultConfig(\n env: NodeJS.ProcessEnv,\n deleteConfigFile: boolean,\n): Promise<void> {\n const configFile = env.RENOVATE_CONFIG_FILE;\n\n if (is.undefined(configFile) || is.emptyStringOrWhitespace(configFile)) {\n return;\n }\n\n if (!deleteConfigFile) {\n return;\n }\n\n if (!(await fs.pathExists(configFile))) {\n return;\n }\n\n try {\n await fs.remove(configFile);\n logger.trace({ path: configFile }, 'config file successfully deleted');\n } catch (err) {\n logger.warn({ err }, 'error deleting config file');\n }\n}\n"]}
@@ -45,7 +45,8 @@ async function parseConfigs(env, argv) {
45
45
  const envConfig = await envParser.getConfig(env);
46
46
  let config = (0, utils_1.mergeChildConfig)(fileConfig, additionalFileConfig);
47
47
  // merge extends from file config and additional file config
48
- if (is_1.default.nonEmptyArray(fileConfig.extends)) {
48
+ if (is_1.default.nonEmptyArray(fileConfig.extends) &&
49
+ is_1.default.nonEmptyArray(additionalFileConfig.extends)) {
49
50
  config.extends = [...fileConfig.extends, ...(config.extends ?? [])];
50
51
  }
51
52
  config = (0, utils_1.mergeChildConfig)(config, envConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { setPrivateKeys } from '../../../../config/decrypt';\nimport * as defaultsParser from '../../../../config/defaults';\nimport { resolveConfigPresets } from '../../../../config/presets';\nimport { applySecretsAndVariablesToConfig } from '../../../../config/secrets';\nimport type { AllConfig } from '../../../../config/types';\nimport { mergeChildConfig } from '../../../../config/utils';\nimport { CONFIG_PRESETS_INVALID } from '../../../../constants/error-messages';\nimport { logger, setContext } from '../../../../logger';\nimport { detectAllGlobalConfig } from '../../../../modules/manager';\nimport { coerceArray } from '../../../../util/array';\nimport { setCustomEnv } from '../../../../util/env';\nimport { readSystemFile } from '../../../../util/fs';\nimport { addSecretForSanitizing } from '../../../../util/sanitize';\nimport { ensureTrailingSlash } from '../../../../util/url';\nimport * as additionalConfigFileParser from './additional-config-file';\nimport * as cliParser from './cli';\nimport * as codespaces from './codespaces';\nimport * as envParser from './env';\nimport * as fileParser from './file';\nimport { hostRulesFromEnv } from './host-rules-from-env';\n\nexport async function resolveGlobalExtends(\n globalExtends: string[],\n ignorePresets?: string[],\n): Promise<AllConfig> {\n try {\n // Make a \"fake\" config to pass to resolveConfigPresets and resolve globalPresets\n const config = { extends: globalExtends, ignorePresets };\n const resolvedConfig = await resolveConfigPresets(config);\n return resolvedConfig;\n } catch (err) {\n logger.error({ err }, 'Error resolving config preset');\n throw new Error(CONFIG_PRESETS_INVALID);\n }\n}\n\nexport async function parseConfigs(\n env: NodeJS.ProcessEnv,\n argv: string[],\n): Promise<AllConfig> {\n logger.debug('Parsing configs');\n\n // Get configs\n const defaultConfig = defaultsParser.getConfig();\n const fileConfig = await fileParser.getConfig(env);\n const additionalFileConfig = await additionalConfigFileParser.getConfig(env);\n const cliConfig = cliParser.getConfig(argv);\n const envConfig = await envParser.getConfig(env);\n\n let config: AllConfig = mergeChildConfig(fileConfig, additionalFileConfig);\n // merge extends from file config and additional file config\n if (is.nonEmptyArray(fileConfig.extends)) {\n config.extends = [...fileConfig.extends, ...(config.extends ?? [])];\n }\n config = mergeChildConfig(config, envConfig);\n config = mergeChildConfig(config, cliConfig);\n\n config = await codespaces.setConfig(config);\n\n let resolvedGlobalExtends: AllConfig | undefined;\n\n if (is.nonEmptyArray(config?.globalExtends)) {\n // resolve global presets immediately\n resolvedGlobalExtends = await resolveGlobalExtends(\n config.globalExtends,\n config.ignorePresets,\n );\n config = mergeChildConfig(resolvedGlobalExtends, config);\n delete config.globalExtends;\n }\n\n const combinedConfig = config;\n\n config = mergeChildConfig(defaultConfig, config);\n\n if (config.forceCli) {\n const forcedCli = { ...cliConfig };\n delete forcedCli.token;\n delete forcedCli.hostRules;\n if (config.force) {\n config.force = { ...config.force, ...forcedCli };\n } else {\n config.force = forcedCli;\n }\n }\n\n if (!config.privateKey && config.privateKeyPath) {\n config.privateKey = await readSystemFile(config.privateKeyPath, 'utf8');\n delete config.privateKeyPath;\n }\n\n if (!config.privateKeyOld && config.privateKeyPathOld) {\n config.privateKeyOld = await readSystemFile(\n config.privateKeyPathOld,\n 'utf8',\n );\n delete config.privateKeyPathOld;\n }\n\n // Add private keys for sanitizing then set and delete them\n addSecretForSanitizing(config.privateKey, 'global');\n addSecretForSanitizing(config.privateKeyOld, 'global');\n setPrivateKeys(config.privateKey, config.privateKeyOld);\n delete config.privateKey;\n delete config.privateKeyOld;\n\n if (config.logContext) {\n // This only has an effect if logContext was defined via file or CLI, otherwise it would already have been detected in env\n setContext(config.logContext);\n }\n\n logger.trace({ config: defaultConfig }, 'Default config');\n logger.debug({ config: fileConfig }, 'File config');\n logger.debug({ config: additionalFileConfig }, 'Additional file config');\n logger.debug({ config: cliConfig }, 'CLI config');\n logger.debug({ config: envConfig }, 'Env config');\n logger.debug({ config: resolvedGlobalExtends }, 'Resolved global extends');\n logger.debug({ config: combinedConfig }, 'Combined config');\n\n if (config.detectGlobalManagerConfig) {\n logger.debug('Detecting global manager config');\n const globalManagerConfig = await detectAllGlobalConfig();\n logger.debug({ config: globalManagerConfig }, 'Global manager config');\n config = mergeChildConfig(config, globalManagerConfig);\n }\n\n if (config.detectHostRulesFromEnv) {\n const hostRules = hostRulesFromEnv(env);\n config.hostRules = [...coerceArray(config.hostRules), ...hostRules];\n }\n // Get global config\n logger.trace({ config }, 'Full config');\n\n // Massage endpoint to have a trailing slash\n if (config.endpoint) {\n logger.debug('Adding trailing slash to endpoint');\n config.endpoint = ensureTrailingSlash(config.endpoint);\n }\n\n // Massage forkProcessing\n if (!config.autodiscover && config.forkProcessing !== 'disabled') {\n logger.debug('Enabling forkProcessing while in non-autodiscover mode');\n config.forkProcessing = 'enabled';\n }\n\n // Only try deletion if RENOVATE_CONFIG_FILE is set\n await fileParser.deleteNonDefaultConfig(env, !!config.deleteConfigFile);\n\n // Only try deletion if RENOVATE_ADDITIONAL_CONFIG_FILE is set\n await additionalConfigFileParser.deleteNonDefaultConfig(\n env,\n !!config.deleteAdditionalConfigFile,\n );\n\n // Massage onboardingNoDeps\n if (!config.autodiscover && config.onboardingNoDeps !== 'disabled') {\n logger.debug('Enabling onboardingNoDeps while in non-autodiscover mode');\n config.onboardingNoDeps = 'enabled';\n }\n\n // do not add these secrets to repoSecrets and,\n // do not delete the secrets/variables object after applying on global config as it needs to be re-used for repo config\n if (\n is.nonEmptyObject(config.secrets) ||\n is.nonEmptyObject(config.variables)\n ) {\n config = applySecretsAndVariablesToConfig({\n config,\n secrets: config.secrets,\n variables: config.variables,\n deleteSecrets: false,\n deleteVariables: false,\n });\n // adding these secrets to the globalSecrets set so that they can be redacted from logs\n for (const secret of Object.values(config.secrets!)) {\n addSecretForSanitizing(secret, 'global');\n }\n }\n\n if (is.nonEmptyObject(config.customEnvVariables)) {\n setCustomEnv(config.customEnvVariables);\n }\n\n return config;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { setPrivateKeys } from '../../../../config/decrypt';\nimport * as defaultsParser from '../../../../config/defaults';\nimport { resolveConfigPresets } from '../../../../config/presets';\nimport { applySecretsAndVariablesToConfig } from '../../../../config/secrets';\nimport type { AllConfig } from '../../../../config/types';\nimport { mergeChildConfig } from '../../../../config/utils';\nimport { CONFIG_PRESETS_INVALID } from '../../../../constants/error-messages';\nimport { logger, setContext } from '../../../../logger';\nimport { detectAllGlobalConfig } from '../../../../modules/manager';\nimport { coerceArray } from '../../../../util/array';\nimport { setCustomEnv } from '../../../../util/env';\nimport { readSystemFile } from '../../../../util/fs';\nimport { addSecretForSanitizing } from '../../../../util/sanitize';\nimport { ensureTrailingSlash } from '../../../../util/url';\nimport * as additionalConfigFileParser from './additional-config-file';\nimport * as cliParser from './cli';\nimport * as codespaces from './codespaces';\nimport * as envParser from './env';\nimport * as fileParser from './file';\nimport { hostRulesFromEnv } from './host-rules-from-env';\n\nexport async function resolveGlobalExtends(\n globalExtends: string[],\n ignorePresets?: string[],\n): Promise<AllConfig> {\n try {\n // Make a \"fake\" config to pass to resolveConfigPresets and resolve globalPresets\n const config = { extends: globalExtends, ignorePresets };\n const resolvedConfig = await resolveConfigPresets(config);\n return resolvedConfig;\n } catch (err) {\n logger.error({ err }, 'Error resolving config preset');\n throw new Error(CONFIG_PRESETS_INVALID);\n }\n}\n\nexport async function parseConfigs(\n env: NodeJS.ProcessEnv,\n argv: string[],\n): Promise<AllConfig> {\n logger.debug('Parsing configs');\n\n // Get configs\n const defaultConfig = defaultsParser.getConfig();\n const fileConfig = await fileParser.getConfig(env);\n const additionalFileConfig = await additionalConfigFileParser.getConfig(env);\n const cliConfig = cliParser.getConfig(argv);\n const envConfig = await envParser.getConfig(env);\n\n let config: AllConfig = mergeChildConfig(fileConfig, additionalFileConfig);\n // merge extends from file config and additional file config\n if (\n is.nonEmptyArray(fileConfig.extends) &&\n is.nonEmptyArray(additionalFileConfig.extends)\n ) {\n config.extends = [...fileConfig.extends, ...(config.extends ?? [])];\n }\n config = mergeChildConfig(config, envConfig);\n config = mergeChildConfig(config, cliConfig);\n\n config = await codespaces.setConfig(config);\n\n let resolvedGlobalExtends: AllConfig | undefined;\n\n if (is.nonEmptyArray(config?.globalExtends)) {\n // resolve global presets immediately\n resolvedGlobalExtends = await resolveGlobalExtends(\n config.globalExtends,\n config.ignorePresets,\n );\n config = mergeChildConfig(resolvedGlobalExtends, config);\n delete config.globalExtends;\n }\n\n const combinedConfig = config;\n\n config = mergeChildConfig(defaultConfig, config);\n\n if (config.forceCli) {\n const forcedCli = { ...cliConfig };\n delete forcedCli.token;\n delete forcedCli.hostRules;\n if (config.force) {\n config.force = { ...config.force, ...forcedCli };\n } else {\n config.force = forcedCli;\n }\n }\n\n if (!config.privateKey && config.privateKeyPath) {\n config.privateKey = await readSystemFile(config.privateKeyPath, 'utf8');\n delete config.privateKeyPath;\n }\n\n if (!config.privateKeyOld && config.privateKeyPathOld) {\n config.privateKeyOld = await readSystemFile(\n config.privateKeyPathOld,\n 'utf8',\n );\n delete config.privateKeyPathOld;\n }\n\n // Add private keys for sanitizing then set and delete them\n addSecretForSanitizing(config.privateKey, 'global');\n addSecretForSanitizing(config.privateKeyOld, 'global');\n setPrivateKeys(config.privateKey, config.privateKeyOld);\n delete config.privateKey;\n delete config.privateKeyOld;\n\n if (config.logContext) {\n // This only has an effect if logContext was defined via file or CLI, otherwise it would already have been detected in env\n setContext(config.logContext);\n }\n\n logger.trace({ config: defaultConfig }, 'Default config');\n logger.debug({ config: fileConfig }, 'File config');\n logger.debug({ config: additionalFileConfig }, 'Additional file config');\n logger.debug({ config: cliConfig }, 'CLI config');\n logger.debug({ config: envConfig }, 'Env config');\n logger.debug({ config: resolvedGlobalExtends }, 'Resolved global extends');\n logger.debug({ config: combinedConfig }, 'Combined config');\n\n if (config.detectGlobalManagerConfig) {\n logger.debug('Detecting global manager config');\n const globalManagerConfig = await detectAllGlobalConfig();\n logger.debug({ config: globalManagerConfig }, 'Global manager config');\n config = mergeChildConfig(config, globalManagerConfig);\n }\n\n if (config.detectHostRulesFromEnv) {\n const hostRules = hostRulesFromEnv(env);\n config.hostRules = [...coerceArray(config.hostRules), ...hostRules];\n }\n // Get global config\n logger.trace({ config }, 'Full config');\n\n // Massage endpoint to have a trailing slash\n if (config.endpoint) {\n logger.debug('Adding trailing slash to endpoint');\n config.endpoint = ensureTrailingSlash(config.endpoint);\n }\n\n // Massage forkProcessing\n if (!config.autodiscover && config.forkProcessing !== 'disabled') {\n logger.debug('Enabling forkProcessing while in non-autodiscover mode');\n config.forkProcessing = 'enabled';\n }\n\n // Only try deletion if RENOVATE_CONFIG_FILE is set\n await fileParser.deleteNonDefaultConfig(env, !!config.deleteConfigFile);\n\n // Only try deletion if RENOVATE_ADDITIONAL_CONFIG_FILE is set\n await additionalConfigFileParser.deleteNonDefaultConfig(\n env,\n !!config.deleteAdditionalConfigFile,\n );\n\n // Massage onboardingNoDeps\n if (!config.autodiscover && config.onboardingNoDeps !== 'disabled') {\n logger.debug('Enabling onboardingNoDeps while in non-autodiscover mode');\n config.onboardingNoDeps = 'enabled';\n }\n\n // do not add these secrets to repoSecrets and,\n // do not delete the secrets/variables object after applying on global config as it needs to be re-used for repo config\n if (\n is.nonEmptyObject(config.secrets) ||\n is.nonEmptyObject(config.variables)\n ) {\n config = applySecretsAndVariablesToConfig({\n config,\n secrets: config.secrets,\n variables: config.variables,\n deleteSecrets: false,\n deleteVariables: false,\n });\n // adding these secrets to the globalSecrets set so that they can be redacted from logs\n for (const secret of Object.values(config.secrets!)) {\n addSecretForSanitizing(secret, 'global');\n }\n }\n\n if (is.nonEmptyObject(config.customEnvVariables)) {\n setCustomEnv(config.customEnvVariables);\n }\n\n return config;\n}\n"]}
@@ -18,6 +18,7 @@ class ConfigMigrationCommitMessageFactory {
18
18
  semanticCommitScope: 'config',
19
19
  commitMessageExtra: '',
20
20
  commitMessageAction: '',
21
+ commitMessageSuffix: '',
21
22
  commitMessageTopic,
22
23
  };
23
24
  const commitMessageFactory = new commit_message_factory_1.CommitMessageFactory(config);
@@ -35,7 +36,7 @@ class ConfigMigrationCommitMessageFactory {
35
36
  return this.create(`Migrate config ${this.configFile}`).toString();
36
37
  }
37
38
  getPrTitle() {
38
- return this.create(`Migrate renovate config`).toString();
39
+ return this.create(`Migrate Renovate config`).toString();
39
40
  }
40
41
  }
41
42
  exports.ConfigMigrationCommitMessageFactory = ConfigMigrationCommitMessageFactory;
@@ -1 +1 @@
1
- {"version":3,"file":"commit-message.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/config-migration/branch/commit-message.ts"],"names":[],"mappings":";;;;AACA,4EAAsD;AAEtD,+EAA0E;AAE1E,MAAa,mCAAmC;IAE3B;IACA;IAFnB,YACmB,MAAsB,EACtB,UAAkB;QADlB,WAAM,GAAN,MAAM,CAAgB;QACtB,eAAU,GAAV,UAAU,CAAQ;IAClC,CAAC;IAEI,MAAM,CAAC,kBAA0B;QACvC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAEtC,MAAM,MAAM,GAAG;YACb,GAAG,IAAI,CAAC,MAAM;YACd,mBAAmB,EAAE,QAAQ;YAC7B,kBAAkB,EAAE,EAAE;YACtB,mBAAmB,EAAE,EAAE;YACvB,kBAAkB;SACnB,CAAC;QAEF,MAAM,oBAAoB,GAAG,IAAI,6CAAoB,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC;QAE7C,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAChC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,GAAG,kBAAkB,CAAC;QACtC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrE,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3D,CAAC;CACF;AArCD,kFAqCC","sourcesContent":["import type { RenovateConfig } from '../../../../config/types';\nimport * as template from '../../../../util/template';\nimport type { CommitMessage } from '../../model/commit-message';\nimport { CommitMessageFactory } from '../../model/commit-message-factory';\n\nexport class ConfigMigrationCommitMessageFactory {\n constructor(\n private readonly config: RenovateConfig,\n private readonly configFile: string,\n ) {}\n\n private create(commitMessageTopic: string): CommitMessage {\n const { commitMessage } = this.config;\n\n const config = {\n ...this.config,\n semanticCommitScope: 'config',\n commitMessageExtra: '',\n commitMessageAction: '',\n commitMessageTopic,\n };\n\n const commitMessageFactory = new CommitMessageFactory(config);\n const commit = commitMessageFactory.create();\n\n if (commitMessage) {\n config.commitMessagePrefix = '';\n commit.subject = template.compile(commitMessage, config);\n } else {\n commit.subject = commitMessageTopic;\n }\n\n return commit;\n }\n\n getCommitMessage(): string {\n return this.create(`Migrate config ${this.configFile}`).toString();\n }\n\n getPrTitle(): string {\n return this.create(`Migrate renovate config`).toString();\n }\n}\n"]}
1
+ {"version":3,"file":"commit-message.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/config-migration/branch/commit-message.ts"],"names":[],"mappings":";;;;AACA,4EAAsD;AAEtD,+EAA0E;AAE1E,MAAa,mCAAmC;IAE3B;IACA;IAFnB,YACmB,MAAsB,EACtB,UAAkB;QADlB,WAAM,GAAN,MAAM,CAAgB;QACtB,eAAU,GAAV,UAAU,CAAQ;IAClC,CAAC;IAEI,MAAM,CAAC,kBAA0B;QACvC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAEtC,MAAM,MAAM,GAAG;YACb,GAAG,IAAI,CAAC,MAAM;YACd,mBAAmB,EAAE,QAAQ;YAC7B,kBAAkB,EAAE,EAAE;YACtB,mBAAmB,EAAE,EAAE;YACvB,mBAAmB,EAAE,EAAE;YACvB,kBAAkB;SACnB,CAAC;QAEF,MAAM,oBAAoB,GAAG,IAAI,6CAAoB,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC;QAE7C,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAChC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,GAAG,kBAAkB,CAAC;QACtC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrE,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3D,CAAC;CACF;AAtCD,kFAsCC","sourcesContent":["import type { RenovateConfig } from '../../../../config/types';\nimport * as template from '../../../../util/template';\nimport type { CommitMessage } from '../../model/commit-message';\nimport { CommitMessageFactory } from '../../model/commit-message-factory';\n\nexport class ConfigMigrationCommitMessageFactory {\n constructor(\n private readonly config: RenovateConfig,\n private readonly configFile: string,\n ) {}\n\n private create(commitMessageTopic: string): CommitMessage {\n const { commitMessage } = this.config;\n\n const config = {\n ...this.config,\n semanticCommitScope: 'config',\n commitMessageExtra: '',\n commitMessageAction: '',\n commitMessageSuffix: '',\n commitMessageTopic,\n };\n\n const commitMessageFactory = new CommitMessageFactory(config);\n const commit = commitMessageFactory.create();\n\n if (commitMessage) {\n config.commitMessagePrefix = '';\n commit.subject = template.compile(commitMessage, config);\n } else {\n commit.subject = commitMessageTopic;\n }\n\n return commit;\n }\n\n getCommitMessage(): string {\n return this.create(`Migrate config ${this.configFile}`).toString();\n }\n\n getPrTitle(): string {\n return this.create(`Migrate Renovate config`).toString();\n }\n}\n"]}
@@ -51,6 +51,7 @@ async function createConfigMigrationBranch(config, migratedConfigData) {
51
51
  message: commitMessage.toString(),
52
52
  platformCommit: config.platformCommit,
53
53
  force: true,
54
+ labels: config.labels,
54
55
  });
55
56
  }
56
57
  //# sourceMappingURL=create.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/config-migration/branch/create.ts"],"names":[],"mappings":";;AAYA,kEAiEC;AA7ED,sDAAyD;AAEzD,+CAA4C;AAC5C,0DAAuD;AACvD,oDAAoD;AACpD,4CAAoD;AAEpD,sCAAmD;AACnD,qDAAuE;AACvE,mDAA+E;AAGxE,KAAK,UAAU,2BAA2B,CAC/C,MAA+B,EAC/B,kBAAgC;IAEhC,eAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,kBAAkB,CAAC,QAAQ,KAAK,cAAc,CAAC;IACtE,MAAM,cAAc,GAAG,cAAc;QACnC,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC;IAChC,eAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAEjD,MAAM,oBAAoB,GAAG,IAAI,oDAAmC,CAClE,MAAM,EACN,cAAc,CACf,CAAC;IAEF,MAAM,aAAa,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,CAAC;IAE9D,qBAAqB;IACrB,IAAI,qBAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,eAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACtE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,SAAG,CAAC,cAAc,CAAC,MAAM,CAAC,aAAc,CAAC,CAAC;IAChD,MAAM,QAAQ,GACZ,MAAM,mCAAmB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;IAExE,MAAM,KAAK,GAAiB;QAC1B;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,cAAc;YACpB,QAAQ;SACT;KACF,CAAC;IAEF,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,IAAA,kBAAS,EACrB,MAAM,IAAA,kBAAa,EAAC,cAAc,EAAE,MAAM,CAAC,EAC3C,cAAc,CACY,CAAC;QAC7B,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,QAAQ,CAAC;QACxB,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,IAAA,uCAAuB,EAChD,cAAc,EACd,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,EAClE,MAAM,EACN,kBAAkB,CAAC,MAAM,CAC1B,CAAC;QACF,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAG,CAAC,aAAa,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,IAAA,+BAAsB,EAAC,MAAM,CAAC;QAC1C,KAAK;QACL,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE;QACjC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { GlobalConfig } from '../../../../config/global';\nimport type { RenovateConfig } from '../../../../config/types';\nimport { logger } from '../../../../logger';\nimport { scm } from '../../../../modules/platform/scm';\nimport { parseJson } from '../../../../util/common';\nimport { readLocalFile } from '../../../../util/fs';\nimport type { FileChange } from '../../../../util/git/types';\nimport { getMigrationBranchName } from '../common';\nimport { ConfigMigrationCommitMessageFactory } from './commit-message';\nimport { MigratedDataFactory, applyPrettierFormatting } from './migrated-data';\nimport type { MigratedData } from './migrated-data';\n\nexport async function createConfigMigrationBranch(\n config: Partial<RenovateConfig>,\n migratedConfigData: MigratedData,\n): Promise<string | null> {\n logger.debug('createConfigMigrationBranch()');\n const pJsonMigration = migratedConfigData.filename === 'package.json';\n const configFileName = pJsonMigration\n ? 'renovate.json'\n : migratedConfigData.filename;\n logger.debug('Creating config migration branch');\n\n const commitMessageFactory = new ConfigMigrationCommitMessageFactory(\n config,\n configFileName,\n );\n\n const commitMessage = commitMessageFactory.getCommitMessage();\n\n // istanbul ignore if\n if (GlobalConfig.get('dryRun')) {\n logger.info('DRY-RUN: Would commit files to config migration branch');\n return Promise.resolve(null);\n }\n\n await scm.checkoutBranch(config.defaultBranch!);\n const contents =\n await MigratedDataFactory.applyPrettierFormatting(migratedConfigData);\n\n const files: FileChange[] = [\n {\n type: 'addition',\n path: configFileName,\n contents,\n },\n ];\n\n if (pJsonMigration) {\n const pJson = parseJson(\n await readLocalFile('package.json', 'utf8'),\n 'package.json',\n ) as Record<string, unknown>;\n if (pJson?.renovate) {\n delete pJson.renovate;\n }\n const pJsonContent = await applyPrettierFormatting(\n 'package.json',\n JSON.stringify(pJson, undefined, migratedConfigData.indent.indent),\n 'json',\n migratedConfigData.indent,\n );\n files.push({\n type: 'addition',\n path: 'package.json',\n contents: pJsonContent,\n });\n }\n\n return scm.commitAndPush({\n baseBranch: config.baseBranch,\n branchName: getMigrationBranchName(config),\n files,\n message: commitMessage.toString(),\n platformCommit: config.platformCommit,\n force: true,\n });\n}\n"]}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/config-migration/branch/create.ts"],"names":[],"mappings":";;AAYA,kEAkEC;AA9ED,sDAAyD;AAEzD,+CAA4C;AAC5C,0DAAuD;AACvD,oDAAoD;AACpD,4CAAoD;AAEpD,sCAAmD;AACnD,qDAAuE;AACvE,mDAA+E;AAGxE,KAAK,UAAU,2BAA2B,CAC/C,MAA+B,EAC/B,kBAAgC;IAEhC,eAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,kBAAkB,CAAC,QAAQ,KAAK,cAAc,CAAC;IACtE,MAAM,cAAc,GAAG,cAAc;QACnC,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC;IAChC,eAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAEjD,MAAM,oBAAoB,GAAG,IAAI,oDAAmC,CAClE,MAAM,EACN,cAAc,CACf,CAAC;IAEF,MAAM,aAAa,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,CAAC;IAE9D,qBAAqB;IACrB,IAAI,qBAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,eAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACtE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,SAAG,CAAC,cAAc,CAAC,MAAM,CAAC,aAAc,CAAC,CAAC;IAChD,MAAM,QAAQ,GACZ,MAAM,mCAAmB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;IAExE,MAAM,KAAK,GAAiB;QAC1B;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,cAAc;YACpB,QAAQ;SACT;KACF,CAAC;IAEF,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,IAAA,kBAAS,EACrB,MAAM,IAAA,kBAAa,EAAC,cAAc,EAAE,MAAM,CAAC,EAC3C,cAAc,CACY,CAAC;QAC7B,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,QAAQ,CAAC;QACxB,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,IAAA,uCAAuB,EAChD,cAAc,EACd,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,EAClE,MAAM,EACN,kBAAkB,CAAC,MAAM,CAC1B,CAAC;QACF,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAG,CAAC,aAAa,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,IAAA,+BAAsB,EAAC,MAAM,CAAC;QAC1C,KAAK;QACL,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE;QACjC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { GlobalConfig } from '../../../../config/global';\nimport type { RenovateConfig } from '../../../../config/types';\nimport { logger } from '../../../../logger';\nimport { scm } from '../../../../modules/platform/scm';\nimport { parseJson } from '../../../../util/common';\nimport { readLocalFile } from '../../../../util/fs';\nimport type { FileChange } from '../../../../util/git/types';\nimport { getMigrationBranchName } from '../common';\nimport { ConfigMigrationCommitMessageFactory } from './commit-message';\nimport { MigratedDataFactory, applyPrettierFormatting } from './migrated-data';\nimport type { MigratedData } from './migrated-data';\n\nexport async function createConfigMigrationBranch(\n config: Partial<RenovateConfig>,\n migratedConfigData: MigratedData,\n): Promise<string | null> {\n logger.debug('createConfigMigrationBranch()');\n const pJsonMigration = migratedConfigData.filename === 'package.json';\n const configFileName = pJsonMigration\n ? 'renovate.json'\n : migratedConfigData.filename;\n logger.debug('Creating config migration branch');\n\n const commitMessageFactory = new ConfigMigrationCommitMessageFactory(\n config,\n configFileName,\n );\n\n const commitMessage = commitMessageFactory.getCommitMessage();\n\n // istanbul ignore if\n if (GlobalConfig.get('dryRun')) {\n logger.info('DRY-RUN: Would commit files to config migration branch');\n return Promise.resolve(null);\n }\n\n await scm.checkoutBranch(config.defaultBranch!);\n const contents =\n await MigratedDataFactory.applyPrettierFormatting(migratedConfigData);\n\n const files: FileChange[] = [\n {\n type: 'addition',\n path: configFileName,\n contents,\n },\n ];\n\n if (pJsonMigration) {\n const pJson = parseJson(\n await readLocalFile('package.json', 'utf8'),\n 'package.json',\n ) as Record<string, unknown>;\n if (pJson?.renovate) {\n delete pJson.renovate;\n }\n const pJsonContent = await applyPrettierFormatting(\n 'package.json',\n JSON.stringify(pJson, undefined, migratedConfigData.indent.indent),\n 'json',\n migratedConfigData.indent,\n );\n files.push({\n type: 'addition',\n path: 'package.json',\n contents: pJsonContent,\n });\n }\n\n return scm.commitAndPush({\n baseBranch: config.baseBranch,\n branchName: getMigrationBranchName(config),\n files,\n message: commitMessage.toString(),\n platformCommit: config.platformCommit,\n force: true,\n labels: config.labels,\n });\n}\n"]}
@@ -45,6 +45,7 @@ async function rebaseMigrationBranch(config, migratedConfigData) {
45
45
  ],
46
46
  message: commitMessage.toString(),
47
47
  platformCommit: config.platformCommit,
48
+ labels: config.labels,
48
49
  });
49
50
  }
50
51
  /**