renovate 42.3.0 → 42.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (732) hide show
  1. package/dist/config/decrypt.js +13 -14
  2. package/dist/config/decrypt.js.map +1 -1
  3. package/dist/config/massage.js +6 -7
  4. package/dist/config/massage.js.map +1 -1
  5. package/dist/config/migrate-validate.js +3 -3
  6. package/dist/config/migrate-validate.js.map +1 -1
  7. package/dist/config/migration.js +19 -20
  8. package/dist/config/migration.js.map +1 -1
  9. package/dist/config/migrations/base/abstract-migration.js +5 -6
  10. package/dist/config/migrations/base/abstract-migration.js.map +1 -1
  11. package/dist/config/migrations/custom/automerge-major-migration.js +2 -3
  12. package/dist/config/migrations/custom/automerge-major-migration.js.map +1 -1
  13. package/dist/config/migrations/custom/automerge-migration.js +4 -5
  14. package/dist/config/migrations/custom/automerge-migration.js.map +1 -1
  15. package/dist/config/migrations/custom/automerge-minor-migration.js +2 -3
  16. package/dist/config/migrations/custom/automerge-minor-migration.js.map +1 -1
  17. package/dist/config/migrations/custom/automerge-patch-migration.js +2 -3
  18. package/dist/config/migrations/custom/automerge-patch-migration.js.map +1 -1
  19. package/dist/config/migrations/custom/automerge-type-migration.js +2 -3
  20. package/dist/config/migrations/custom/automerge-type-migration.js.map +1 -1
  21. package/dist/config/migrations/custom/base-branch-migration.js +3 -4
  22. package/dist/config/migrations/custom/base-branch-migration.js.map +1 -1
  23. package/dist/config/migrations/custom/branch-name-migration.js +2 -3
  24. package/dist/config/migrations/custom/branch-name-migration.js.map +1 -1
  25. package/dist/config/migrations/custom/branch-prefix-migration.js +2 -3
  26. package/dist/config/migrations/custom/branch-prefix-migration.js.map +1 -1
  27. package/dist/config/migrations/custom/compatibility-migration.js +2 -3
  28. package/dist/config/migrations/custom/compatibility-migration.js.map +1 -1
  29. package/dist/config/migrations/custom/composer-ignore-platform-reqs-migration.js +2 -3
  30. package/dist/config/migrations/custom/composer-ignore-platform-reqs-migration.js.map +1 -1
  31. package/dist/config/migrations/custom/custom-managers-migration.js +2 -3
  32. package/dist/config/migrations/custom/custom-managers-migration.js.map +1 -1
  33. package/dist/config/migrations/custom/datasource-migration.js +2 -3
  34. package/dist/config/migrations/custom/datasource-migration.js.map +1 -1
  35. package/dist/config/migrations/custom/dep-types-migration.js +4 -5
  36. package/dist/config/migrations/custom/dep-types-migration.js.map +1 -1
  37. package/dist/config/migrations/custom/enabled-managers-migration.js +2 -3
  38. package/dist/config/migrations/custom/enabled-managers-migration.js.map +1 -1
  39. package/dist/config/migrations/custom/extends-migration.js +4 -5
  40. package/dist/config/migrations/custom/extends-migration.js.map +1 -1
  41. package/dist/config/migrations/custom/fetch-release-notes-migration.js +2 -3
  42. package/dist/config/migrations/custom/fetch-release-notes-migration.js.map +1 -1
  43. package/dist/config/migrations/custom/file-match-migration.js +3 -4
  44. package/dist/config/migrations/custom/file-match-migration.js.map +1 -1
  45. package/dist/config/migrations/custom/host-rules-migration.js +6 -7
  46. package/dist/config/migrations/custom/host-rules-migration.js.map +1 -1
  47. package/dist/config/migrations/custom/ignore-npmrc-file-migration.js +2 -3
  48. package/dist/config/migrations/custom/ignore-npmrc-file-migration.js.map +1 -1
  49. package/dist/config/migrations/custom/include-forks-migration.js +2 -3
  50. package/dist/config/migrations/custom/include-forks-migration.js.map +1 -1
  51. package/dist/config/migrations/custom/match-datasources-migration.js +2 -3
  52. package/dist/config/migrations/custom/match-datasources-migration.js.map +1 -1
  53. package/dist/config/migrations/custom/match-managers-migration.js +2 -3
  54. package/dist/config/migrations/custom/match-managers-migration.js.map +1 -1
  55. package/dist/config/migrations/custom/match-strings-migration.js +2 -3
  56. package/dist/config/migrations/custom/match-strings-migration.js.map +1 -1
  57. package/dist/config/migrations/custom/package-files-migration.js +6 -7
  58. package/dist/config/migrations/custom/package-files-migration.js.map +1 -1
  59. package/dist/config/migrations/custom/package-rules-migration.js +15 -16
  60. package/dist/config/migrations/custom/package-rules-migration.js.map +1 -1
  61. package/dist/config/migrations/custom/packages-migration.js +3 -4
  62. package/dist/config/migrations/custom/packages-migration.js.map +1 -1
  63. package/dist/config/migrations/custom/path-rules-migration.js +3 -4
  64. package/dist/config/migrations/custom/path-rules-migration.js.map +1 -1
  65. package/dist/config/migrations/custom/pin-versions-migration.js +2 -3
  66. package/dist/config/migrations/custom/pin-versions-migration.js.map +1 -1
  67. package/dist/config/migrations/custom/platform-commit-migration.js +2 -3
  68. package/dist/config/migrations/custom/platform-commit-migration.js.map +1 -1
  69. package/dist/config/migrations/custom/post-update-options-migration.js +2 -3
  70. package/dist/config/migrations/custom/post-update-options-migration.js.map +1 -1
  71. package/dist/config/migrations/custom/rebase-stale-prs-migration.js +2 -3
  72. package/dist/config/migrations/custom/rebase-stale-prs-migration.js.map +1 -1
  73. package/dist/config/migrations/custom/recreate-closed-migration.js +2 -3
  74. package/dist/config/migrations/custom/recreate-closed-migration.js.map +1 -1
  75. package/dist/config/migrations/custom/renovate-fork-migration.js +2 -3
  76. package/dist/config/migrations/custom/renovate-fork-migration.js.map +1 -1
  77. package/dist/config/migrations/custom/schedule-migration.js +4 -4
  78. package/dist/config/migrations/custom/schedule-migration.js.map +1 -1
  79. package/dist/config/migrations/custom/semantic-commits-migration.js +2 -3
  80. package/dist/config/migrations/custom/semantic-commits-migration.js.map +1 -1
  81. package/dist/config/migrations/custom/semantic-prefix-migration.js +2 -3
  82. package/dist/config/migrations/custom/semantic-prefix-migration.js.map +1 -1
  83. package/dist/config/migrations/custom/stability-days-migration.js +2 -3
  84. package/dist/config/migrations/custom/stability-days-migration.js.map +1 -1
  85. package/dist/config/migrations/custom/suppress-notifications-migration.js +2 -3
  86. package/dist/config/migrations/custom/suppress-notifications-migration.js.map +1 -1
  87. package/dist/config/migrations/custom/unpublish-safe-migration.js +2 -3
  88. package/dist/config/migrations/custom/unpublish-safe-migration.js.map +1 -1
  89. package/dist/config/migrations/migrations-service.js +2 -3
  90. package/dist/config/migrations/migrations-service.js.map +1 -1
  91. package/dist/config/presets/github/index.js +2 -3
  92. package/dist/config/presets/github/index.js.map +1 -1
  93. package/dist/config/presets/gitlab/index.js +2 -3
  94. package/dist/config/presets/gitlab/index.js.map +1 -1
  95. package/dist/config/presets/index.js +8 -8
  96. package/dist/config/presets/index.js.map +1 -1
  97. package/dist/config/presets/parse.js +2 -3
  98. package/dist/config/presets/parse.js.map +1 -1
  99. package/dist/config/secrets.js +3 -4
  100. package/dist/config/secrets.js.map +1 -1
  101. package/dist/config/validation-helpers/match-base-branches.js +2 -3
  102. package/dist/config/validation-helpers/match-base-branches.js.map +1 -1
  103. package/dist/config/validation-helpers/regex-glob-matchers.js +2 -3
  104. package/dist/config/validation-helpers/regex-glob-matchers.js.map +1 -1
  105. package/dist/config/validation-helpers/utils.js +6 -6
  106. package/dist/config/validation-helpers/utils.js.map +1 -1
  107. package/dist/config/validation.js +29 -29
  108. package/dist/config/validation.js.map +1 -1
  109. package/dist/instrumentation/reporting.js +7 -8
  110. package/dist/instrumentation/reporting.js.map +1 -1
  111. package/dist/instrumentation/utils.js +2 -3
  112. package/dist/instrumentation/utils.js.map +1 -1
  113. package/dist/logger/err-serializer.js +2 -2
  114. package/dist/logger/err-serializer.js.map +1 -1
  115. package/dist/logger/index.js +3 -3
  116. package/dist/logger/index.js.map +1 -1
  117. package/dist/logger/renovate-logger.js +4 -5
  118. package/dist/logger/renovate-logger.js.map +1 -1
  119. package/dist/logger/utils.js +19 -19
  120. package/dist/logger/utils.js.map +1 -1
  121. package/dist/modules/datasource/aws-eks-addon/index.js +2 -2
  122. package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -1
  123. package/dist/modules/datasource/bazel/index.js +2 -2
  124. package/dist/modules/datasource/bazel/index.js.map +1 -1
  125. package/dist/modules/datasource/bitrise/index.js +2 -2
  126. package/dist/modules/datasource/bitrise/index.js.map +1 -1
  127. package/dist/modules/datasource/common.js +4 -4
  128. package/dist/modules/datasource/common.js.map +1 -1
  129. package/dist/modules/datasource/conan/index.js +3 -3
  130. package/dist/modules/datasource/conan/index.js.map +1 -1
  131. package/dist/modules/datasource/custom/formats/html.js +2 -5
  132. package/dist/modules/datasource/custom/formats/html.js.map +1 -1
  133. package/dist/modules/datasource/custom/index.js +2 -3
  134. package/dist/modules/datasource/custom/index.js.map +1 -1
  135. package/dist/modules/datasource/custom/utils.js +4 -4
  136. package/dist/modules/datasource/custom/utils.js.map +1 -1
  137. package/dist/modules/datasource/dart-version/index.js +2 -3
  138. package/dist/modules/datasource/dart-version/index.js.map +1 -1
  139. package/dist/modules/datasource/deno/index.js +2 -2
  140. package/dist/modules/datasource/deno/index.js.map +1 -1
  141. package/dist/modules/datasource/docker/common.js +5 -5
  142. package/dist/modules/datasource/docker/common.js.map +1 -1
  143. package/dist/modules/datasource/docker/index.js +6 -6
  144. package/dist/modules/datasource/docker/index.js.map +1 -1
  145. package/dist/modules/datasource/endoflife-date/index.js +2 -2
  146. package/dist/modules/datasource/endoflife-date/index.js.map +1 -1
  147. package/dist/modules/datasource/galaxy/index.js +2 -2
  148. package/dist/modules/datasource/galaxy/index.js.map +1 -1
  149. package/dist/modules/datasource/galaxy-collection/index.js +2 -2
  150. package/dist/modules/datasource/galaxy-collection/index.js.map +1 -1
  151. package/dist/modules/datasource/git-refs/base.js +2 -2
  152. package/dist/modules/datasource/git-refs/base.js.map +1 -1
  153. package/dist/modules/datasource/github-release-attachments/index.js +2 -2
  154. package/dist/modules/datasource/github-release-attachments/index.js.map +1 -1
  155. package/dist/modules/datasource/github-releases/index.js +2 -3
  156. package/dist/modules/datasource/github-releases/index.js.map +1 -1
  157. package/dist/modules/datasource/github-tags/index.js +2 -3
  158. package/dist/modules/datasource/github-tags/index.js.map +1 -1
  159. package/dist/modules/datasource/go/goproxy-parser.js +3 -3
  160. package/dist/modules/datasource/go/goproxy-parser.js.map +1 -1
  161. package/dist/modules/datasource/go/index.js +2 -2
  162. package/dist/modules/datasource/go/index.js.map +1 -1
  163. package/dist/modules/datasource/go/releases-goproxy.js +3 -3
  164. package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
  165. package/dist/modules/datasource/hackage/index.js +2 -2
  166. package/dist/modules/datasource/hackage/index.js.map +1 -1
  167. package/dist/modules/datasource/hex/schema.js +2 -3
  168. package/dist/modules/datasource/hex/schema.js.map +1 -1
  169. package/dist/modules/datasource/hexpm-bob/index.js +2 -2
  170. package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
  171. package/dist/modules/datasource/index.js +14 -14
  172. package/dist/modules/datasource/index.js.map +1 -1
  173. package/dist/modules/datasource/jsr/index.js +2 -2
  174. package/dist/modules/datasource/jsr/index.js.map +1 -1
  175. package/dist/modules/datasource/jsr/util.js +3 -4
  176. package/dist/modules/datasource/jsr/util.js.map +1 -1
  177. package/dist/modules/datasource/metadata.js +5 -5
  178. package/dist/modules/datasource/metadata.js.map +1 -1
  179. package/dist/modules/datasource/npm/get.js +2 -2
  180. package/dist/modules/datasource/npm/get.js.map +1 -1
  181. package/dist/modules/datasource/npm/npmrc.js +7 -7
  182. package/dist/modules/datasource/npm/npmrc.js.map +1 -1
  183. package/dist/modules/datasource/nuget/v3.js +2 -2
  184. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  185. package/dist/modules/datasource/packagist/index.js +2 -2
  186. package/dist/modules/datasource/packagist/index.js.map +1 -1
  187. package/dist/modules/datasource/packagist/schema.js +3 -4
  188. package/dist/modules/datasource/packagist/schema.js.map +1 -1
  189. package/dist/modules/datasource/pypi/index.js +2 -2
  190. package/dist/modules/datasource/pypi/index.js.map +1 -1
  191. package/dist/modules/datasource/repology/index.js +3 -3
  192. package/dist/modules/datasource/repology/index.js.map +1 -1
  193. package/dist/modules/datasource/rubygems/schema.js +5 -6
  194. package/dist/modules/datasource/rubygems/schema.js.map +1 -1
  195. package/dist/modules/datasource/util.js +2 -3
  196. package/dist/modules/datasource/util.js.map +1 -1
  197. package/dist/modules/manager/argocd/extract.js +3 -4
  198. package/dist/modules/manager/argocd/extract.js.map +1 -1
  199. package/dist/modules/manager/asdf/extract.js +2 -3
  200. package/dist/modules/manager/asdf/extract.js.map +1 -1
  201. package/dist/modules/manager/bazel/artifacts.js +2 -2
  202. package/dist/modules/manager/bazel/artifacts.js.map +1 -1
  203. package/dist/modules/manager/bazel/common.js +4 -5
  204. package/dist/modules/manager/bazel/common.js.map +1 -1
  205. package/dist/modules/manager/bazel/rules/http.js +3 -4
  206. package/dist/modules/manager/bazel/rules/http.js.map +1 -1
  207. package/dist/modules/manager/bazel/rules/maven.js +2 -3
  208. package/dist/modules/manager/bazel/rules/maven.js.map +1 -1
  209. package/dist/modules/manager/bazel-module/parser/starlark.js +2 -3
  210. package/dist/modules/manager/bazel-module/parser/starlark.js.map +1 -1
  211. package/dist/modules/manager/bazel-module/rules.js +3 -3
  212. package/dist/modules/manager/bazel-module/rules.js.map +1 -1
  213. package/dist/modules/manager/bitrise/utils.js +3 -4
  214. package/dist/modules/manager/bitrise/utils.js.map +1 -1
  215. package/dist/modules/manager/buildpacks/extract.js +2 -3
  216. package/dist/modules/manager/buildpacks/extract.js.map +1 -1
  217. package/dist/modules/manager/bun/artifacts.js +2 -2
  218. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  219. package/dist/modules/manager/bun/extract.js +2 -3
  220. package/dist/modules/manager/bun/extract.js.map +1 -1
  221. package/dist/modules/manager/bundler/artifacts.js +3 -3
  222. package/dist/modules/manager/bundler/artifacts.js.map +1 -1
  223. package/dist/modules/manager/bundler/extract.js +5 -6
  224. package/dist/modules/manager/bundler/extract.js.map +1 -1
  225. package/dist/modules/manager/cargo/extract.js +3 -4
  226. package/dist/modules/manager/cargo/extract.js.map +1 -1
  227. package/dist/modules/manager/composer/artifacts.js +3 -3
  228. package/dist/modules/manager/composer/artifacts.js.map +1 -1
  229. package/dist/modules/manager/composer/utils.js +3 -4
  230. package/dist/modules/manager/composer/utils.js.map +1 -1
  231. package/dist/modules/manager/conan/extract.js +2 -3
  232. package/dist/modules/manager/conan/extract.js.map +1 -1
  233. package/dist/modules/manager/copier/artifacts.js +1 -1
  234. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  235. package/dist/modules/manager/copier/utils.js +3 -4
  236. package/dist/modules/manager/copier/utils.js.map +1 -1
  237. package/dist/modules/manager/crow/extract.js +2 -3
  238. package/dist/modules/manager/crow/extract.js.map +1 -1
  239. package/dist/modules/manager/custom/jsonata/index.js +2 -3
  240. package/dist/modules/manager/custom/jsonata/index.js.map +1 -1
  241. package/dist/modules/manager/custom/jsonata/utils.js +3 -3
  242. package/dist/modules/manager/custom/jsonata/utils.js.map +1 -1
  243. package/dist/modules/manager/custom/regex/index.js +2 -3
  244. package/dist/modules/manager/custom/regex/index.js.map +1 -1
  245. package/dist/modules/manager/custom/regex/strategies.js +4 -5
  246. package/dist/modules/manager/custom/regex/strategies.js.map +1 -1
  247. package/dist/modules/manager/custom/regex/utils.js +2 -2
  248. package/dist/modules/manager/custom/regex/utils.js.map +1 -1
  249. package/dist/modules/manager/custom/utils.js +6 -7
  250. package/dist/modules/manager/custom/utils.js.map +1 -1
  251. package/dist/modules/manager/deps-edn/extract.js +13 -14
  252. package/dist/modules/manager/deps-edn/extract.js.map +1 -1
  253. package/dist/modules/manager/deps-edn/parser.js +2 -2
  254. package/dist/modules/manager/deps-edn/parser.js.map +1 -1
  255. package/dist/modules/manager/devbox/artifacts.js +2 -2
  256. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  257. package/dist/modules/manager/docker-compose/extract.js +3 -4
  258. package/dist/modules/manager/docker-compose/extract.js.map +1 -1
  259. package/dist/modules/manager/docker-compose/schema.js +2 -3
  260. package/dist/modules/manager/docker-compose/schema.js.map +1 -1
  261. package/dist/modules/manager/dockerfile/extract.js +5 -5
  262. package/dist/modules/manager/dockerfile/extract.js.map +1 -1
  263. package/dist/modules/manager/fingerprint.generated.js +6 -6
  264. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  265. package/dist/modules/manager/fleet/extract.js +2 -3
  266. package/dist/modules/manager/fleet/extract.js.map +1 -1
  267. package/dist/modules/manager/flux/extract.js +2 -3
  268. package/dist/modules/manager/flux/extract.js.map +1 -1
  269. package/dist/modules/manager/glasskube/extract.js +2 -3
  270. package/dist/modules/manager/glasskube/extract.js.map +1 -1
  271. package/dist/modules/manager/gleam/artifacts.js +3 -4
  272. package/dist/modules/manager/gleam/artifacts.js.map +1 -1
  273. package/dist/modules/manager/gomod/artifacts.js +2 -2
  274. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  275. package/dist/modules/manager/gradle/artifacts.js +2 -2
  276. package/dist/modules/manager/gradle/artifacts.js.map +1 -1
  277. package/dist/modules/manager/gradle/extract/catalog.js +5 -5
  278. package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
  279. package/dist/modules/manager/gradle-wrapper/artifacts.js +2 -2
  280. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  281. package/dist/modules/manager/helm-requirements/extract.js +2 -3
  282. package/dist/modules/manager/helm-requirements/extract.js.map +1 -1
  283. package/dist/modules/manager/helmfile/artifacts.js +2 -3
  284. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  285. package/dist/modules/manager/helmfile/extract.js +4 -5
  286. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  287. package/dist/modules/manager/helmsman/extract.js +4 -5
  288. package/dist/modules/manager/helmsman/extract.js.map +1 -1
  289. package/dist/modules/manager/helmv3/artifacts.js +4 -4
  290. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  291. package/dist/modules/manager/helmv3/extract.js +4 -5
  292. package/dist/modules/manager/helmv3/extract.js.map +1 -1
  293. package/dist/modules/manager/helmv3/oci.js +3 -4
  294. package/dist/modules/manager/helmv3/oci.js.map +1 -1
  295. package/dist/modules/manager/homebrew/extract.js +1 -1
  296. package/dist/modules/manager/homebrew/extract.js.map +1 -1
  297. package/dist/modules/manager/jenkins/extract.js +3 -3
  298. package/dist/modules/manager/jenkins/extract.js.map +1 -1
  299. package/dist/modules/manager/kotlin-script/extract.js +3 -4
  300. package/dist/modules/manager/kotlin-script/extract.js.map +1 -1
  301. package/dist/modules/manager/kubernetes/extract.js +4 -4
  302. package/dist/modules/manager/kubernetes/extract.js.map +1 -1
  303. package/dist/modules/manager/kustomize/artifacts.js +8 -8
  304. package/dist/modules/manager/kustomize/artifacts.js.map +1 -1
  305. package/dist/modules/manager/kustomize/extract.js +8 -8
  306. package/dist/modules/manager/kustomize/extract.js.map +1 -1
  307. package/dist/modules/manager/maven/extract.js +4 -4
  308. package/dist/modules/manager/maven/extract.js.map +1 -1
  309. package/dist/modules/manager/maven/update.js +2 -2
  310. package/dist/modules/manager/maven/update.js.map +1 -1
  311. package/dist/modules/manager/maven-wrapper/artifacts.js +2 -2
  312. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  313. package/dist/modules/manager/mise/backends.js +9 -10
  314. package/dist/modules/manager/mise/backends.js.map +1 -1
  315. package/dist/modules/manager/mise/extract.js +7 -8
  316. package/dist/modules/manager/mise/extract.js.map +1 -1
  317. package/dist/modules/manager/mix/artifacts.js +3 -3
  318. package/dist/modules/manager/mix/artifacts.js.map +1 -1
  319. package/dist/modules/manager/nix/artifacts.js +2 -2
  320. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  321. package/dist/modules/manager/npm/detect.js +2 -2
  322. package/dist/modules/manager/npm/detect.js.map +1 -1
  323. package/dist/modules/manager/npm/extract/common/dependency.js +2 -2
  324. package/dist/modules/manager/npm/extract/common/dependency.js.map +1 -1
  325. package/dist/modules/manager/npm/extract/common/overrides.js +3 -4
  326. package/dist/modules/manager/npm/extract/common/overrides.js.map +1 -1
  327. package/dist/modules/manager/npm/extract/common/package-file.js +8 -9
  328. package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
  329. package/dist/modules/manager/npm/extract/index.js +10 -10
  330. package/dist/modules/manager/npm/extract/index.js.map +1 -1
  331. package/dist/modules/manager/npm/extract/pnpm.js +7 -7
  332. package/dist/modules/manager/npm/extract/pnpm.js.map +1 -1
  333. package/dist/modules/manager/npm/extract/post/locked-versions.js +3 -3
  334. package/dist/modules/manager/npm/extract/post/locked-versions.js.map +1 -1
  335. package/dist/modules/manager/npm/extract/post/monorepo.js +3 -4
  336. package/dist/modules/manager/npm/extract/post/monorepo.js.map +1 -1
  337. package/dist/modules/manager/npm/extract/yarn.js +2 -3
  338. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  339. package/dist/modules/manager/npm/extract/yarnrc.js +2 -3
  340. package/dist/modules/manager/npm/extract/yarnrc.js.map +1 -1
  341. package/dist/modules/manager/npm/post-update/index.js +6 -6
  342. package/dist/modules/manager/npm/post-update/index.js.map +1 -1
  343. package/dist/modules/manager/npm/post-update/npm.js +4 -4
  344. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  345. package/dist/modules/manager/npm/post-update/pnpm.js +3 -3
  346. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  347. package/dist/modules/manager/npm/post-update/rules.js +2 -2
  348. package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
  349. package/dist/modules/manager/npm/post-update/utils.js +2 -2
  350. package/dist/modules/manager/npm/post-update/utils.js.map +1 -1
  351. package/dist/modules/manager/npm/post-update/yarn.js +3 -3
  352. package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
  353. package/dist/modules/manager/npm/update/dependency/index.js +2 -3
  354. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  355. package/dist/modules/manager/npm/update/dependency/pnpm.js +2 -3
  356. package/dist/modules/manager/npm/update/dependency/pnpm.js.map +1 -1
  357. package/dist/modules/manager/npm/update/dependency/yarn.js +3 -4
  358. package/dist/modules/manager/npm/update/dependency/yarn.js.map +1 -1
  359. package/dist/modules/manager/nuget/config-formatter.js +2 -2
  360. package/dist/modules/manager/nuget/config-formatter.js.map +1 -1
  361. package/dist/modules/manager/nuget/extract.js +4 -4
  362. package/dist/modules/manager/nuget/extract.js.map +1 -1
  363. package/dist/modules/manager/nuget/package-tree.js +2 -2
  364. package/dist/modules/manager/nuget/package-tree.js.map +1 -1
  365. package/dist/modules/manager/ocb/extract.js +2 -3
  366. package/dist/modules/manager/ocb/extract.js.map +1 -1
  367. package/dist/modules/manager/osgi/extract.js +4 -4
  368. package/dist/modules/manager/osgi/extract.js.map +1 -1
  369. package/dist/modules/manager/pep621/artifacts.js +3 -4
  370. package/dist/modules/manager/pep621/artifacts.js.map +1 -1
  371. package/dist/modules/manager/pep621/processors/uv.js +2 -3
  372. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  373. package/dist/modules/manager/pep621/schema.d.ts +1 -1
  374. package/dist/modules/manager/pep621/schema.js +1 -0
  375. package/dist/modules/manager/pep621/schema.js.map +1 -1
  376. package/dist/modules/manager/pep621/utils.js +8 -10
  377. package/dist/modules/manager/pep621/utils.js.map +1 -1
  378. package/dist/modules/manager/pep723/schema.js +2 -3
  379. package/dist/modules/manager/pep723/schema.js.map +1 -1
  380. package/dist/modules/manager/pip-compile/common.js +3 -3
  381. package/dist/modules/manager/pip-compile/common.js.map +1 -1
  382. package/dist/modules/manager/pip_requirements/artifacts.js +2 -3
  383. package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
  384. package/dist/modules/manager/pip_requirements/extract.js +2 -3
  385. package/dist/modules/manager/pip_requirements/extract.js.map +1 -1
  386. package/dist/modules/manager/pipenv/artifacts.js +3 -4
  387. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  388. package/dist/modules/manager/pipenv/extract.js +6 -7
  389. package/dist/modules/manager/pipenv/extract.js.map +1 -1
  390. package/dist/modules/manager/pixi/artifacts.js +2 -3
  391. package/dist/modules/manager/pixi/artifacts.js.map +1 -1
  392. package/dist/modules/manager/pixi/extract.js +2 -3
  393. package/dist/modules/manager/pixi/extract.js.map +1 -1
  394. package/dist/modules/manager/poetry/artifacts.js +4 -5
  395. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  396. package/dist/modules/manager/poetry/extract.js +2 -3
  397. package/dist/modules/manager/poetry/extract.js.map +1 -1
  398. package/dist/modules/manager/poetry/schema.d.ts +4 -0
  399. package/dist/modules/manager/poetry/schema.js +5 -1
  400. package/dist/modules/manager/poetry/schema.js.map +1 -1
  401. package/dist/modules/manager/pre-commit/extract.js +4 -5
  402. package/dist/modules/manager/pre-commit/extract.js.map +1 -1
  403. package/dist/modules/manager/pub/artifacts.js +3 -4
  404. package/dist/modules/manager/pub/artifacts.js.map +1 -1
  405. package/dist/modules/manager/pub/extract.js +8 -11
  406. package/dist/modules/manager/pub/extract.js.map +1 -1
  407. package/dist/modules/manager/renovate-config-presets/extract.js +4 -5
  408. package/dist/modules/manager/renovate-config-presets/extract.js.map +1 -1
  409. package/dist/modules/manager/tekton/extract.js +9 -10
  410. package/dist/modules/manager/tekton/extract.js.map +1 -1
  411. package/dist/modules/manager/terraform/base.js +2 -3
  412. package/dist/modules/manager/terraform/base.js.map +1 -1
  413. package/dist/modules/manager/terraform/extract.js +2 -2
  414. package/dist/modules/manager/terraform/extract.js.map +1 -1
  415. package/dist/modules/manager/terraform/extractors/others/modules.js +3 -4
  416. package/dist/modules/manager/terraform/extractors/others/modules.js.map +1 -1
  417. package/dist/modules/manager/terraform/extractors/others/providers.js +3 -4
  418. package/dist/modules/manager/terraform/extractors/others/providers.js.map +1 -1
  419. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js +7 -8
  420. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js.map +1 -1
  421. package/dist/modules/manager/terraform/extractors/resources/helm-release.js +5 -6
  422. package/dist/modules/manager/terraform/extractors/resources/helm-release.js.map +1 -1
  423. package/dist/modules/manager/terraform/extractors/resources/terraform-workspace.js +3 -4
  424. package/dist/modules/manager/terraform/extractors/resources/terraform-workspace.js.map +1 -1
  425. package/dist/modules/manager/terraform/extractors/terraform-block/required-provider.js +4 -5
  426. package/dist/modules/manager/terraform/extractors/terraform-block/required-provider.js.map +1 -1
  427. package/dist/modules/manager/terraform/extractors/terraform-block/terraform-version.js +3 -3
  428. package/dist/modules/manager/terraform/extractors/terraform-block/terraform-version.js.map +1 -1
  429. package/dist/modules/manager/terraform/lockfile/index.js +2 -2
  430. package/dist/modules/manager/terraform/lockfile/index.js.map +1 -1
  431. package/dist/modules/manager/terraform/lockfile/util.js +2 -3
  432. package/dist/modules/manager/terraform/lockfile/util.js.map +1 -1
  433. package/dist/modules/manager/terraform/util.js +2 -3
  434. package/dist/modules/manager/terraform/util.js.map +1 -1
  435. package/dist/modules/manager/tflint-plugin/plugins.js +2 -3
  436. package/dist/modules/manager/tflint-plugin/plugins.js.map +1 -1
  437. package/dist/modules/manager/travis/extract.js +5 -6
  438. package/dist/modules/manager/travis/extract.js.map +1 -1
  439. package/dist/modules/manager/woodpecker/extract.js +2 -3
  440. package/dist/modules/manager/woodpecker/extract.js.map +1 -1
  441. package/dist/modules/platform/azure/index.js +2 -2
  442. package/dist/modules/platform/azure/index.js.map +1 -1
  443. package/dist/modules/platform/bitbucket/index.js +5 -5
  444. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  445. package/dist/modules/platform/bitbucket-server/pr-cache.js +3 -3
  446. package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -1
  447. package/dist/modules/platform/bitbucket-server/utils.js +2 -2
  448. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  449. package/dist/modules/platform/codecommit/codecommit-client.js +2 -2
  450. package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
  451. package/dist/modules/platform/forgejo/index.js +5 -5
  452. package/dist/modules/platform/forgejo/index.js.map +1 -1
  453. package/dist/modules/platform/forgejo/pr-cache.js +1 -1
  454. package/dist/modules/platform/forgejo/pr-cache.js.map +1 -1
  455. package/dist/modules/platform/forgejo/utils.js +2 -2
  456. package/dist/modules/platform/forgejo/utils.js.map +1 -1
  457. package/dist/modules/platform/gitea/index.js +5 -5
  458. package/dist/modules/platform/gitea/index.js.map +1 -1
  459. package/dist/modules/platform/gitea/pr-cache.js +1 -1
  460. package/dist/modules/platform/gitea/pr-cache.js.map +1 -1
  461. package/dist/modules/platform/gitea/utils.js +2 -2
  462. package/dist/modules/platform/gitea/utils.js.map +1 -1
  463. package/dist/modules/platform/github/common.js +4 -5
  464. package/dist/modules/platform/github/common.js.map +1 -1
  465. package/dist/modules/platform/github/index.js +5 -5
  466. package/dist/modules/platform/github/index.js.map +1 -1
  467. package/dist/modules/platform/github/pr.js +2 -3
  468. package/dist/modules/platform/github/pr.js.map +1 -1
  469. package/dist/modules/platform/gitlab/http.js +2 -3
  470. package/dist/modules/platform/gitlab/http.js.map +1 -1
  471. package/dist/modules/platform/gitlab/index.js +3 -3
  472. package/dist/modules/platform/gitlab/index.js.map +1 -1
  473. package/dist/modules/platform/gitlab/utils.js +3 -3
  474. package/dist/modules/platform/gitlab/utils.js.map +1 -1
  475. package/dist/modules/platform/pr-body.js +2 -3
  476. package/dist/modules/platform/pr-body.js.map +1 -1
  477. package/dist/modules/versioning/composer/index.js +2 -3
  478. package/dist/modules/versioning/composer/index.js.map +1 -1
  479. package/dist/modules/versioning/generic.js +5 -6
  480. package/dist/modules/versioning/generic.js.map +1 -1
  481. package/dist/modules/versioning/gradle/compare.js +3 -4
  482. package/dist/modules/versioning/gradle/compare.js.map +1 -1
  483. package/dist/modules/versioning/ivy/parse.js +1 -1
  484. package/dist/modules/versioning/ivy/parse.js.map +1 -1
  485. package/dist/modules/versioning/maven/index.js +1 -1
  486. package/dist/modules/versioning/maven/index.js.map +1 -1
  487. package/dist/modules/versioning/nixpkgs/index.js +6 -7
  488. package/dist/modules/versioning/nixpkgs/index.js.map +1 -1
  489. package/dist/modules/versioning/npm/range.js +2 -2
  490. package/dist/modules/versioning/npm/range.js.map +1 -1
  491. package/dist/modules/versioning/nuget/index.js +1 -1
  492. package/dist/modules/versioning/nuget/index.js.map +1 -1
  493. package/dist/modules/versioning/rpm/index.js +4 -5
  494. package/dist/modules/versioning/rpm/index.js.map +1 -1
  495. package/dist/modules/versioning/schema.js +2 -2
  496. package/dist/modules/versioning/schema.js.map +1 -1
  497. package/dist/modules/versioning/semver-coerced/index.js +3 -3
  498. package/dist/modules/versioning/semver-coerced/index.js.map +1 -1
  499. package/dist/modules/versioning/semver-partial/index.js +4 -4
  500. package/dist/modules/versioning/semver-partial/index.js.map +1 -1
  501. package/dist/proxy.js +3 -4
  502. package/dist/proxy.js.map +1 -1
  503. package/dist/util/array.js +4 -5
  504. package/dist/util/array.js.map +1 -1
  505. package/dist/util/assign-keys.js +2 -3
  506. package/dist/util/assign-keys.js.map +1 -1
  507. package/dist/util/cache/package/decorator.js +6 -6
  508. package/dist/util/cache/package/decorator.js.map +1 -1
  509. package/dist/util/cache/package/ttl.js +4 -5
  510. package/dist/util/cache/package/ttl.js.map +1 -1
  511. package/dist/util/cache/repository/impl/base.js +3 -4
  512. package/dist/util/cache/repository/impl/base.js.map +1 -1
  513. package/dist/util/cache/repository/impl/s3.js +2 -3
  514. package/dist/util/cache/repository/impl/s3.js.map +1 -1
  515. package/dist/util/exec/common.js +2 -3
  516. package/dist/util/exec/common.js.map +1 -1
  517. package/dist/util/exec/containerbase.js +2 -2
  518. package/dist/util/exec/containerbase.js.map +1 -1
  519. package/dist/util/exec/docker/index.js +5 -5
  520. package/dist/util/exec/docker/index.js.map +1 -1
  521. package/dist/util/exec/index.js +2 -2
  522. package/dist/util/exec/index.js.map +1 -1
  523. package/dist/util/exec/utils.js +3 -4
  524. package/dist/util/exec/utils.js.map +1 -1
  525. package/dist/util/filter-map.js +2 -3
  526. package/dist/util/filter-map.js.map +1 -1
  527. package/dist/util/fs/index.js +3 -3
  528. package/dist/util/fs/index.js.map +1 -1
  529. package/dist/util/git/auth.js +2 -3
  530. package/dist/util/git/auth.js.map +1 -1
  531. package/dist/util/git/behind-base-branch-cache.js +2 -1
  532. package/dist/util/git/behind-base-branch-cache.js.map +1 -1
  533. package/dist/util/git/config.js +3 -4
  534. package/dist/util/git/config.js.map +1 -1
  535. package/dist/util/git/conflicts-cache.js +2 -1
  536. package/dist/util/git/conflicts-cache.js.map +1 -1
  537. package/dist/util/git/index.js +5 -5
  538. package/dist/util/git/index.js.map +1 -1
  539. package/dist/util/git/private-key.js +2 -2
  540. package/dist/util/git/private-key.js.map +1 -1
  541. package/dist/util/github/graphql/datasource-fetcher.js +2 -1
  542. package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
  543. package/dist/util/host-rules.js +6 -6
  544. package/dist/util/host-rules.js.map +1 -1
  545. package/dist/util/http/auth.js +3 -4
  546. package/dist/util/http/auth.js.map +1 -1
  547. package/dist/util/http/bitbucket-server.js +2 -3
  548. package/dist/util/http/bitbucket-server.js.map +1 -1
  549. package/dist/util/http/bitbucket.js +3 -4
  550. package/dist/util/http/bitbucket.js.map +1 -1
  551. package/dist/util/http/cache/package-http-cache-provider.js +2 -2
  552. package/dist/util/http/cache/package-http-cache-provider.js.map +1 -1
  553. package/dist/util/http/forgejo.js +3 -4
  554. package/dist/util/http/forgejo.js.map +1 -1
  555. package/dist/util/http/gitea.js +3 -4
  556. package/dist/util/http/gitea.js.map +1 -1
  557. package/dist/util/http/github.js +10 -10
  558. package/dist/util/http/github.js.map +1 -1
  559. package/dist/util/http/gitlab.js +4 -5
  560. package/dist/util/http/gitlab.js.map +1 -1
  561. package/dist/util/http/host-rules.js +10 -10
  562. package/dist/util/http/host-rules.js.map +1 -1
  563. package/dist/util/http/http.js +5 -5
  564. package/dist/util/http/http.js.map +1 -1
  565. package/dist/util/http/rate-limits.js +3 -3
  566. package/dist/util/http/rate-limits.js.map +1 -1
  567. package/dist/util/http/retry-after.js +3 -4
  568. package/dist/util/http/retry-after.js.map +1 -1
  569. package/dist/util/interpolator.js +8 -9
  570. package/dist/util/interpolator.js.map +1 -1
  571. package/dist/util/merge-confidence/index.js +5 -5
  572. package/dist/util/merge-confidence/index.js.map +1 -1
  573. package/dist/util/number.js +2 -3
  574. package/dist/util/number.js.map +1 -1
  575. package/dist/util/package-rules/base-branches.js +3 -4
  576. package/dist/util/package-rules/base-branches.js.map +1 -1
  577. package/dist/util/package-rules/categories.js +3 -4
  578. package/dist/util/package-rules/categories.js.map +1 -1
  579. package/dist/util/package-rules/current-age.js +3 -4
  580. package/dist/util/package-rules/current-age.js.map +1 -1
  581. package/dist/util/package-rules/current-value.js +2 -3
  582. package/dist/util/package-rules/current-value.js.map +1 -1
  583. package/dist/util/package-rules/current-version.js +5 -5
  584. package/dist/util/package-rules/current-version.js.map +1 -1
  585. package/dist/util/package-rules/datasources.js +3 -4
  586. package/dist/util/package-rules/datasources.js.map +1 -1
  587. package/dist/util/package-rules/dep-names.js +3 -4
  588. package/dist/util/package-rules/dep-names.js.map +1 -1
  589. package/dist/util/package-rules/dep-types.js +2 -3
  590. package/dist/util/package-rules/dep-types.js.map +1 -1
  591. package/dist/util/package-rules/files.js +4 -5
  592. package/dist/util/package-rules/files.js.map +1 -1
  593. package/dist/util/package-rules/index.js +6 -6
  594. package/dist/util/package-rules/index.js.map +1 -1
  595. package/dist/util/package-rules/managers.js +3 -4
  596. package/dist/util/package-rules/managers.js.map +1 -1
  597. package/dist/util/package-rules/merge-confidence.js +5 -6
  598. package/dist/util/package-rules/merge-confidence.js.map +1 -1
  599. package/dist/util/package-rules/new-value.js +2 -3
  600. package/dist/util/package-rules/new-value.js.map +1 -1
  601. package/dist/util/package-rules/package-names.js +2 -3
  602. package/dist/util/package-rules/package-names.js.map +1 -1
  603. package/dist/util/package-rules/repositories.js +3 -4
  604. package/dist/util/package-rules/repositories.js.map +1 -1
  605. package/dist/util/package-rules/sourceurls.js +2 -3
  606. package/dist/util/package-rules/sourceurls.js.map +1 -1
  607. package/dist/util/package-rules/update-types.js +2 -3
  608. package/dist/util/package-rules/update-types.js.map +1 -1
  609. package/dist/util/pretty-time.js +4 -4
  610. package/dist/util/pretty-time.js.map +1 -1
  611. package/dist/util/regex.js +2 -3
  612. package/dist/util/regex.js.map +1 -1
  613. package/dist/util/s3.js +2 -3
  614. package/dist/util/s3.js.map +1 -1
  615. package/dist/util/sanitize.js +2 -3
  616. package/dist/util/sanitize.js.map +1 -1
  617. package/dist/util/string-match.js +2 -3
  618. package/dist/util/string-match.js.map +1 -1
  619. package/dist/util/template/index.js +6 -6
  620. package/dist/util/template/index.js.map +1 -1
  621. package/dist/util/url.js +5 -5
  622. package/dist/util/url.js.map +1 -1
  623. package/dist/workers/global/autodiscover.js +3 -4
  624. package/dist/workers/global/autodiscover.js.map +1 -1
  625. package/dist/workers/global/config/parse/additional-config-file.js +4 -4
  626. package/dist/workers/global/config/parse/additional-config-file.js.map +1 -1
  627. package/dist/workers/global/config/parse/coersions.js +2 -2
  628. package/dist/workers/global/config/parse/coersions.js.map +1 -1
  629. package/dist/workers/global/config/parse/env.js +2 -2
  630. package/dist/workers/global/config/parse/env.js.map +1 -1
  631. package/dist/workers/global/config/parse/file.js +5 -5
  632. package/dist/workers/global/config/parse/file.js.map +1 -1
  633. package/dist/workers/global/config/parse/index.js +6 -7
  634. package/dist/workers/global/config/parse/index.js.map +1 -1
  635. package/dist/workers/global/config/parse/util.js +2 -2
  636. package/dist/workers/global/config/parse/util.js.map +1 -1
  637. package/dist/workers/global/index.js +5 -5
  638. package/dist/workers/global/index.js.map +1 -1
  639. package/dist/workers/global/limits.js +6 -7
  640. package/dist/workers/global/limits.js.map +1 -1
  641. package/dist/workers/repository/config-migration/branch/index.js +2 -3
  642. package/dist/workers/repository/config-migration/branch/index.js.map +1 -1
  643. package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -2
  644. package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
  645. package/dist/workers/repository/config-migration/pr/index.js +3 -3
  646. package/dist/workers/repository/config-migration/pr/index.js.map +1 -1
  647. package/dist/workers/repository/dependency-dashboard.js +10 -10
  648. package/dist/workers/repository/dependency-dashboard.js.map +1 -1
  649. package/dist/workers/repository/extract/index.js +2 -3
  650. package/dist/workers/repository/extract/index.js.map +1 -1
  651. package/dist/workers/repository/extract/manager-files.js +2 -3
  652. package/dist/workers/repository/extract/manager-files.js.map +1 -1
  653. package/dist/workers/repository/extract/supersedes.js +4 -5
  654. package/dist/workers/repository/extract/supersedes.js.map +1 -1
  655. package/dist/workers/repository/finalize/prune.js +2 -3
  656. package/dist/workers/repository/finalize/prune.js.map +1 -1
  657. package/dist/workers/repository/init/inherited.js +5 -5
  658. package/dist/workers/repository/init/inherited.js.map +1 -1
  659. package/dist/workers/repository/init/merge.js +13 -13
  660. package/dist/workers/repository/init/merge.js.map +1 -1
  661. package/dist/workers/repository/model/commit-message.js +2 -3
  662. package/dist/workers/repository/model/commit-message.js.map +1 -1
  663. package/dist/workers/repository/onboarding/branch/check.js +2 -1
  664. package/dist/workers/repository/onboarding/branch/check.js.map +1 -1
  665. package/dist/workers/repository/onboarding/branch/index.js +3 -4
  666. package/dist/workers/repository/onboarding/branch/index.js.map +1 -1
  667. package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js +7 -8
  668. package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js.map +1 -1
  669. package/dist/workers/repository/onboarding/pr/config-description.js +2 -5
  670. package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
  671. package/dist/workers/repository/onboarding/pr/index.js +3 -3
  672. package/dist/workers/repository/onboarding/pr/index.js.map +1 -1
  673. package/dist/workers/repository/package-files.js +8 -9
  674. package/dist/workers/repository/package-files.js.map +1 -1
  675. package/dist/workers/repository/process/extract-update.js +2 -2
  676. package/dist/workers/repository/process/extract-update.js.map +1 -1
  677. package/dist/workers/repository/process/fetch.js +3 -3
  678. package/dist/workers/repository/process/fetch.js.map +1 -1
  679. package/dist/workers/repository/process/lookup/current.js +2 -3
  680. package/dist/workers/repository/process/lookup/current.js.map +1 -1
  681. package/dist/workers/repository/process/lookup/filter-checks.js +4 -5
  682. package/dist/workers/repository/process/lookup/filter-checks.js.map +1 -1
  683. package/dist/workers/repository/process/lookup/generate.js +2 -3
  684. package/dist/workers/repository/process/lookup/generate.js.map +1 -1
  685. package/dist/workers/repository/process/lookup/index.js +15 -16
  686. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  687. package/dist/workers/repository/process/lookup/utils.js +7 -7
  688. package/dist/workers/repository/process/lookup/utils.js.map +1 -1
  689. package/dist/workers/repository/process/vulnerabilities.js +11 -11
  690. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  691. package/dist/workers/repository/process/write.js +2 -3
  692. package/dist/workers/repository/process/write.js.map +1 -1
  693. package/dist/workers/repository/reconfigure/comment.js +2 -5
  694. package/dist/workers/repository/reconfigure/comment.js.map +1 -1
  695. package/dist/workers/repository/reconfigure/utils.js +2 -3
  696. package/dist/workers/repository/reconfigure/utils.js.map +1 -1
  697. package/dist/workers/repository/reconfigure/validate.js +2 -3
  698. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  699. package/dist/workers/repository/update/branch/auto-replace.js +4 -5
  700. package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
  701. package/dist/workers/repository/update/branch/commit.js +3 -4
  702. package/dist/workers/repository/update/branch/commit.js.map +1 -1
  703. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +12 -5
  704. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  705. package/dist/workers/repository/update/branch/get-updated.js +8 -9
  706. package/dist/workers/repository/update/branch/get-updated.js.map +1 -1
  707. package/dist/workers/repository/update/branch/index.js +3 -3
  708. package/dist/workers/repository/update/branch/index.js.map +1 -1
  709. package/dist/workers/repository/update/branch/schedule.js +2 -2
  710. package/dist/workers/repository/update/branch/schedule.js.map +1 -1
  711. package/dist/workers/repository/update/pr/body/notes.js +2 -2
  712. package/dist/workers/repository/update/pr/body/notes.js.map +1 -1
  713. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +2 -2
  714. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  715. package/dist/workers/repository/update/pr/changelog/index.js +3 -3
  716. package/dist/workers/repository/update/pr/changelog/index.js.map +1 -1
  717. package/dist/workers/repository/update/pr/changelog/release-notes.js +4 -4
  718. package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
  719. package/dist/workers/repository/update/pr/changelog/source.js +8 -8
  720. package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
  721. package/dist/workers/repository/update/pr/code-owners.js +2 -2
  722. package/dist/workers/repository/update/pr/code-owners.js.map +1 -1
  723. package/dist/workers/repository/update/pr/index.js +7 -8
  724. package/dist/workers/repository/update/pr/index.js.map +1 -1
  725. package/dist/workers/repository/update/pr/labels.js +4 -4
  726. package/dist/workers/repository/update/pr/labels.js.map +1 -1
  727. package/dist/workers/repository/update/pr/participants.js +4 -5
  728. package/dist/workers/repository/update/pr/participants.js.map +1 -1
  729. package/dist/workers/repository/updates/generate.js +4 -4
  730. package/dist/workers/repository/updates/generate.js.map +1 -1
  731. package/package.json +5 -5
  732. package/renovate-schema.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../lib/config/validation.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { allManagersList, getManagerList } from '../modules/manager';\nimport { isCustomManager } from '../modules/manager/custom';\nimport type { CustomManager } from '../modules/manager/custom/types';\nimport type { HostRule } from '../types';\nimport { getExpression } from '../util/jsonata';\nimport { regEx } from '../util/regex';\nimport {\n getRegexPredicate,\n isRegexMatch,\n matchRegexOrGlobList,\n} from '../util/string-match';\nimport * as template from '../util/template';\nimport { parseUrl } from '../util/url';\nimport {\n hasValidSchedule,\n hasValidTimezone,\n} from '../workers/repository/update/branch/schedule';\nimport { getConfigFileNames } from './app-strings';\nimport { GlobalConfig } from './global';\nimport { migrateConfig } from './migration';\nimport { getOptions } from './options';\nimport { resolveConfigPresets } from './presets';\nimport { supportedDatasources } from './presets/internal/merge-confidence';\nimport type {\n AllowedParents,\n RenovateConfig,\n RenovateOptions,\n StatusCheckKey,\n ValidationMessage,\n ValidationResult,\n} from './types';\nimport { allowedStatusCheckStrings } from './types';\nimport * as matchBaseBranchesValidator from './validation-helpers/match-base-branches';\nimport * as regexOrGlobValidator from './validation-helpers/regex-glob-matchers';\nimport {\n getParentName,\n isFalseGlobal,\n validateJSONataManagerFields,\n validateNumber,\n validatePlainObject,\n validateRegexManagerFields,\n} from './validation-helpers/utils';\n\nconst options = getOptions();\n\nlet optionsInitialized = false;\nlet optionTypes: Record<string, RenovateOptions['type']>;\nlet optionParents: Record<string, AllowedParents[]>;\nlet optionGlobals: Set<string>;\nlet optionInherits: Set<string>;\nlet optionRegexOrGlob: Set<string>;\nlet optionAllowsNegativeIntegers: Set<string>;\n\nconst managerList = getManagerList();\n\nconst topLevelObjects = [...managerList, 'env'];\n\nconst ignoredNodes = [\n '$schema',\n 'headers',\n 'depType',\n 'npmToken',\n 'packageFile',\n 'forkToken',\n 'repository',\n 'vulnerabilityAlertsOnly',\n 'vulnerabilityAlert',\n 'isVulnerabilityAlert',\n 'vulnerabilityFixVersion', // not intended to be used by end users but may be by Mend apps\n 'copyLocalLibs', // deprecated - functionality is now enabled by default\n 'prBody', // deprecated\n 'minimumConfidence', // undocumented feature flag\n];\nconst tzRe = regEx(/^:timezone\\((.+)\\)$/);\nconst rulesRe = regEx(/p.*Rules\\[\\d+\\]$/);\n\nfunction isIgnored(key: string): boolean {\n return ignoredNodes.includes(key);\n}\n\nfunction getUnsupportedEnabledManagers(enabledManagers: string[]): string[] {\n return enabledManagers.filter(\n (manager) => !allManagersList.includes(manager.replace('custom.', '')),\n );\n}\n\nfunction getDeprecationMessage(option: string): string | undefined {\n const deprecatedOptions: Record<string, string | undefined> = {\n branchName: `Direct editing of branchName is now deprecated. Please edit branchPrefix, additionalBranchPrefix, or branchTopic instead`,\n commitMessage: `Direct editing of commitMessage is now deprecated. Please edit commitMessage's subcomponents instead.`,\n prTitle: `Direct editing of prTitle is now deprecated. Please edit commitMessage subcomponents instead as they will be passed through to prTitle.`,\n };\n return deprecatedOptions[option];\n}\n\nfunction isInhertConfigOption(key: string): boolean {\n return optionInherits.has(key);\n}\n\nfunction isRegexOrGlobOption(key: string): boolean {\n return optionRegexOrGlob.has(key);\n}\n\nfunction isGlobalOption(key: string): boolean {\n return optionGlobals.has(key);\n}\n\nfunction initOptions(): void {\n if (optionsInitialized) {\n return;\n }\n\n optionParents = {};\n optionInherits = new Set();\n optionTypes = {};\n optionRegexOrGlob = new Set();\n optionGlobals = new Set();\n optionAllowsNegativeIntegers = new Set();\n\n for (const option of options) {\n optionTypes[option.name] = option.type;\n\n if (option.parents) {\n optionParents[option.name] = option.parents;\n }\n\n if (option.inheritConfigSupport) {\n optionInherits.add(option.name);\n }\n\n if (option.patternMatch) {\n optionRegexOrGlob.add(option.name);\n }\n\n if (option.globalOnly) {\n optionGlobals.add(option.name);\n }\n\n if (option.allowNegative) {\n optionAllowsNegativeIntegers.add(option.name);\n }\n }\n\n optionsInitialized = true;\n}\n\nexport async function validateConfig(\n configType: 'global' | 'inherit' | 'repo',\n config: RenovateConfig,\n isPreset?: boolean,\n parentPath?: string,\n): Promise<ValidationResult> {\n initOptions();\n\n let errors: ValidationMessage[] = [];\n let warnings: ValidationMessage[] = [];\n\n for (const [key, val] of Object.entries(config)) {\n const currentPath = parentPath ? `${parentPath}.${key}` : key;\n /* v8 ignore next 7 -- TODO: add test */\n if (key === '__proto__') {\n errors.push({\n topic: 'Config security error',\n message: '__proto__',\n });\n continue;\n }\n if (\n parentPath &&\n parentPath !== 'onboardingConfig' &&\n topLevelObjects.includes(key)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `The \"${key}\" object can only be configured at the top level of a config but was found inside \"${parentPath}\"`,\n });\n }\n\n if (isGlobalOption(key)) {\n if (configType === 'global') {\n await validateGlobalConfig(\n key,\n val,\n optionTypes[key],\n warnings,\n errors,\n currentPath,\n config,\n );\n continue;\n } else if (\n !isFalseGlobal(key, parentPath) &&\n !(configType === 'inherit' && isInhertConfigOption(key))\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `The \"${key}\" option is a global option reserved only for Renovate's global configuration and cannot be configured within a repository's config file.`,\n });\n continue;\n }\n }\n if (key === 'enabledManagers' && val) {\n const unsupportedManagers = getUnsupportedEnabledManagers(\n val as string[],\n );\n if (is.nonEmptyArray(unsupportedManagers)) {\n errors.push({\n topic: 'Configuration Error',\n message: `The following managers configured in enabledManagers are not supported: \"${unsupportedManagers.join(\n ', ',\n )}\"`,\n });\n }\n }\n if (\n !isIgnored(key) && // We need to ignore some reserved keys\n !(is as any).function(val) // Ignore all functions\n ) {\n if (getDeprecationMessage(key)) {\n warnings.push({\n topic: 'Deprecation Warning',\n message: getDeprecationMessage(key)!,\n });\n }\n const templateKeys = [\n 'branchName',\n 'commitBody',\n 'commitMessage',\n 'prTitle',\n 'semanticCommitScope',\n ];\n if ((key.endsWith('Template') || templateKeys.includes(key)) && val) {\n try {\n // TODO: validate string #22198\n let res = template.compile((val as string).toString(), config, false);\n res = template.compile(res, config, false);\n template.compile(res, config, false);\n } catch {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid template in config path: ${currentPath}`,\n });\n }\n }\n const parentName = getParentName(parentPath);\n if (\n !isPreset &&\n optionParents[key] &&\n !optionParents[key].includes(parentName as AllowedParents)\n ) {\n // TODO: types (#22198)\n const options = optionParents[key]?.sort().join(', ');\n const message = `\"${key}\" can't be used in \"${parentName}\". Allowed objects: ${options}.`;\n warnings.push({\n topic: `${parentPath ? `${parentPath}.` : ''}${key}`,\n message,\n });\n }\n if (!optionTypes[key]) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid configuration option: ${currentPath}`,\n });\n } else if (key === 'schedule') {\n const [validSchedule, errorMessage] = hasValidSchedule(val as string[]);\n if (!validSchedule) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid ${currentPath}: \\`${errorMessage}\\``,\n });\n }\n } else if (\n [\n 'allowedVersions',\n 'matchCurrentVersion',\n 'matchCurrentValue',\n 'matchNewValue',\n ].includes(key) &&\n isRegexMatch(val)\n ) {\n if (!getRegexPredicate(val)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid regExp for ${currentPath}: \\`${val}\\``,\n });\n }\n } else if (key === 'timezone' && val !== null) {\n const [validTimezone, errorMessage] = hasValidTimezone(val as string);\n if (!validTimezone) {\n errors.push({\n topic: 'Configuration Error',\n message: `${currentPath}: ${errorMessage}`,\n });\n }\n } else if (val !== null) {\n const type = optionTypes[key];\n if (type === 'boolean') {\n if (val !== true && val !== false) {\n errors.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be boolean. Found: ${JSON.stringify(\n val,\n )} (${typeof val})`,\n });\n }\n } else if (type === 'integer') {\n const allowsNegative = optionAllowsNegativeIntegers.has(key);\n errors.push(...validateNumber(key, val, allowsNegative, currentPath));\n } else if (type === 'array' && val) {\n if (is.array(val)) {\n for (const [subIndex, subval] of val.entries()) {\n if (is.object(subval)) {\n const subValidation = await validateConfig(\n configType,\n subval as RenovateConfig,\n isPreset,\n `${currentPath}[${subIndex}]`,\n );\n warnings = warnings.concat(subValidation.warnings);\n errors = errors.concat(subValidation.errors);\n }\n }\n if (isRegexOrGlobOption(key)) {\n errors.push(\n ...regexOrGlobValidator.check({\n val,\n currentPath,\n }),\n );\n }\n if (key === 'extends') {\n for (const subval of val) {\n if (is.string(subval)) {\n if (\n parentName === 'packageRules' &&\n subval.startsWith('group:')\n ) {\n warnings.push({\n topic: 'Configuration Warning',\n message: `${currentPath}: you should not extend \"group:\" presets`,\n });\n }\n if (tzRe.test(subval)) {\n const [, timezone] = tzRe.exec(subval)!;\n const [validTimezone, errorMessage] =\n hasValidTimezone(timezone);\n if (!validTimezone) {\n errors.push({\n topic: 'Configuration Error',\n message: `${currentPath}: ${errorMessage}`,\n });\n }\n }\n } else {\n errors.push({\n topic: 'Configuration Warning',\n message: `${currentPath}: preset value is not a string`,\n });\n }\n }\n }\n\n const selectors = [\n 'matchFileNames',\n 'matchLanguages',\n 'matchCategories',\n 'matchBaseBranches',\n 'matchManagers',\n 'matchDatasources',\n 'matchDepTypes',\n 'matchDepNames',\n 'matchPackageNames',\n 'matchCurrentValue',\n 'matchCurrentVersion',\n 'matchSourceUrls',\n 'matchUpdateTypes',\n 'matchConfidence',\n 'matchCurrentAge',\n 'matchRepositories',\n 'matchNewValue',\n 'matchJsonata',\n ];\n if (key === 'packageRules') {\n for (const [subIndex, packageRule] of val.entries()) {\n if (is.object(packageRule)) {\n const resolvedRule = migrateConfig({\n packageRules: [\n await resolveConfigPresets(\n packageRule as RenovateConfig,\n config,\n ),\n ],\n }).migratedConfig.packageRules![0];\n warnings.push(\n ...matchBaseBranchesValidator.check({\n resolvedRule,\n currentPath: `${currentPath}[${subIndex}]`,\n baseBranchPatterns: config.baseBranchPatterns!,\n }),\n );\n const selectorLength = Object.keys(resolvedRule).filter(\n (ruleKey) => selectors.includes(ruleKey),\n ).length;\n if (!selectorLength) {\n const message = `${currentPath}[${subIndex}]: Each packageRule must contain at least one match* or exclude* selector. Rule: ${JSON.stringify(\n packageRule,\n )}`;\n errors.push({\n topic: 'Configuration Error',\n message,\n });\n }\n if (selectorLength === Object.keys(resolvedRule).length) {\n const message = `${currentPath}[${subIndex}]: Each packageRule must contain at least one non-match* or non-exclude* field. Rule: ${JSON.stringify(\n packageRule,\n )}`;\n warnings.push({\n topic: 'Configuration Error',\n message,\n });\n }\n // It's too late to apply any of these options once you already have updates determined\n const preLookupOptions = [\n 'allowedVersions',\n 'extractVersion',\n 'followTag',\n 'ignoreDeps',\n 'ignoreUnstable',\n 'rangeStrategy',\n 'registryUrls',\n 'respectLatest',\n 'rollbackPrs',\n 'separateMajorMinor',\n 'separateMinorPatch',\n 'separateMultipleMajor',\n 'separateMultipleMinor',\n 'versioning',\n ];\n if (is.nonEmptyArray(resolvedRule.matchUpdateTypes)) {\n for (const option of preLookupOptions) {\n if (resolvedRule[option] !== undefined) {\n const message = `${currentPath}[${subIndex}]: packageRules cannot combine both matchUpdateTypes and ${option}. Rule: ${JSON.stringify(\n packageRule,\n )}`;\n errors.push({\n topic: 'Configuration Error',\n message,\n });\n }\n }\n }\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `${currentPath} must contain JSON objects`,\n });\n }\n }\n }\n if (key === 'customManagers') {\n const allowedKeys = [\n 'customType',\n 'description',\n 'fileFormat',\n 'managerFilePatterns',\n 'matchStrings',\n 'matchStringsStrategy',\n 'depNameTemplate',\n 'packageNameTemplate',\n 'datasourceTemplate',\n 'versioningTemplate',\n 'registryUrlTemplate',\n 'currentValueTemplate',\n 'extractVersionTemplate',\n 'autoReplaceStringTemplate',\n 'depTypeTemplate',\n ];\n for (const customManager of val as CustomManager[]) {\n if (\n Object.keys(customManager).some(\n (k) => !allowedKeys.includes(k),\n )\n ) {\n const disallowedKeys = Object.keys(customManager).filter(\n (k) => !allowedKeys.includes(k),\n );\n errors.push({\n topic: 'Configuration Error',\n message: `Custom Manager contains disallowed fields: ${disallowedKeys.join(\n ', ',\n )}`,\n });\n } else if (\n is.nonEmptyString(customManager.customType) &&\n isCustomManager(customManager.customType)\n ) {\n if (is.nonEmptyArray(customManager.managerFilePatterns)) {\n switch (customManager.customType) {\n case 'regex':\n validateRegexManagerFields(\n customManager,\n currentPath,\n errors,\n );\n break;\n case 'jsonata':\n validateJSONataManagerFields(\n customManager,\n currentPath,\n errors,\n );\n break;\n }\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `Each Custom Manager must contain a non-empty managerFilePatterns array`,\n });\n }\n } else {\n if (\n is.emptyString(customManager.customType) ||\n is.undefined(customManager.customType)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Each Custom Manager must contain a non-empty customType string`,\n });\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid customType: ${customManager.customType}. Key is not a custom manager`,\n });\n }\n }\n }\n }\n if (['matchPackageNames', 'matchDepNames'].includes(key)) {\n const startPattern = regEx(/!?\\//);\n const endPattern = regEx(/\\/g?i?$/);\n for (const pattern of val as string[]) {\n if (startPattern.test(pattern) && endPattern.test(pattern)) {\n try {\n // regEx isn't aware of our !/ prefix but can handle the suffix\n regEx(pattern.replace(startPattern, '/'));\n } catch {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid regExp for ${currentPath}: \\`${pattern}\\``,\n });\n }\n }\n }\n }\n if (key === 'baseBranchPatterns') {\n for (const baseBranchPattern of val as string[]) {\n if (\n isRegexMatch(baseBranchPattern) &&\n !getRegexPredicate(baseBranchPattern)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid regExp for ${currentPath}: \\`${baseBranchPattern}\\``,\n });\n }\n }\n }\n if (\n (selectors.includes(key) ||\n key === 'matchCurrentVersion' ||\n key === 'matchCurrentValue') &&\n // TODO: can be undefined ? #22198\n !rulesRe.test(parentPath!) && // Inside a packageRule\n (is.string(parentPath) || !isPreset) // top level in a preset\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `${currentPath}: ${key} should be inside a \\`packageRule\\` only`,\n });\n }\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a list (Array)`,\n });\n }\n } else if (type === 'string') {\n if (!is.string(val)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a string`,\n });\n }\n } else if (\n type === 'object' &&\n currentPath !== 'compatibility' &&\n key !== 'constraints'\n ) {\n if (is.plainObject(val)) {\n if (key === 'registryAliases') {\n const res = validatePlainObject(val);\n if (res !== true) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${key}.${res}\\` configuration: value is not a string`,\n });\n }\n } else if (key === 'env') {\n const allowedEnvVars =\n configType === 'global'\n ? ((config.allowedEnv as string[]) ?? [])\n : GlobalConfig.get('allowedEnv', []);\n for (const [envVarName, envVarValue] of Object.entries(val)) {\n if (!is.string(envVarValue)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid env variable value: \\`${currentPath}.${envVarName}\\` must be a string.`,\n });\n }\n if (!matchRegexOrGlobList(envVarName, allowedEnvVars)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Env variable name \\`${envVarName}\\` is not allowed by this bot's \\`allowedEnv\\`.`,\n });\n }\n }\n } else if (key === 'statusCheckNames') {\n for (const [statusCheckKey, statusCheckValue] of Object.entries(\n val,\n )) {\n if (\n !allowedStatusCheckStrings.includes(\n statusCheckKey as StatusCheckKey,\n )\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${key}.${statusCheckKey}\\` configuration: key is not allowed.`,\n });\n }\n if (\n !(is.string(statusCheckValue) || null === statusCheckValue)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${statusCheckKey}\\` configuration: status check is not a string.`,\n });\n continue;\n }\n }\n } else if (key === 'customDatasources') {\n const allowedKeys = [\n 'description',\n 'defaultRegistryUrlTemplate',\n 'format',\n 'transformTemplates',\n ];\n for (const [\n customDatasourceName,\n customDatasourceValue,\n ] of Object.entries(val)) {\n if (!is.plainObject(customDatasourceValue)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${customDatasourceName}\\` configuration: customDatasource is not an object`,\n });\n continue;\n }\n for (const [subKey, subValue] of Object.entries(\n customDatasourceValue,\n )) {\n if (!allowedKeys.includes(subKey)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${subKey}\\` configuration: key is not allowed`,\n });\n } else if (subKey === 'transformTemplates') {\n if (!is.array(subValue, is.string)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${subKey}\\` configuration: is not an array of string`,\n });\n }\n } else if (subKey === 'description') {\n if (\n !(is.string(subValue) || is.array(subValue, is.string))\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${subKey}\\` configuration: is not an array of strings`,\n });\n }\n } else if (!is.string(subValue)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${subKey}\\` configuration: is a string`,\n });\n }\n }\n }\n } else {\n const ignoredObjects = options\n .filter((option) => option.freeChoice)\n .map((option) => option.name);\n if (!ignoredObjects.includes(key)) {\n const subValidation = await validateConfig(\n configType,\n val,\n isPreset,\n currentPath,\n );\n warnings = warnings.concat(subValidation.warnings);\n errors = errors.concat(subValidation.errors);\n }\n }\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a json object`,\n });\n }\n }\n }\n }\n\n if (key === 'hostRules' && is.array(val)) {\n const allowedHeaders =\n configType === 'global'\n ? ((config.allowedHeaders as string[]) ?? [])\n : GlobalConfig.get('allowedHeaders', []);\n for (const rule of val as HostRule[]) {\n if (is.nonEmptyString(rule.matchHost)) {\n if (rule.matchHost.includes('://')) {\n if (parseUrl(rule.matchHost) === null) {\n errors.push({\n topic: 'Configuration Error',\n message: `hostRules matchHost \\`${rule.matchHost}\\` is not a valid URL.`,\n });\n }\n }\n } else if (is.emptyString(rule.matchHost)) {\n errors.push({\n topic: 'Configuration Error',\n message:\n 'Invalid value for hostRules matchHost. It cannot be an empty string.',\n });\n }\n\n if (!rule.headers) {\n continue;\n }\n for (const [header, value] of Object.entries(rule.headers)) {\n if (!is.string(value)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid hostRules headers value configuration: header must be a string.`,\n });\n }\n if (!matchRegexOrGlobList(header, allowedHeaders)) {\n errors.push({\n topic: 'Configuration Error',\n message: `hostRules header \\`${header}\\` is not allowed by this bot's \\`allowedHeaders\\`.`,\n });\n }\n }\n }\n }\n\n if (key === 'matchJsonata' && is.array(val, is.string)) {\n for (const expression of val) {\n const res = getExpression(expression);\n if (res instanceof Error) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid JSONata expression for ${currentPath}: ${res.message}`,\n });\n }\n }\n }\n }\n\n function sortAll(a: ValidationMessage, b: ValidationMessage): number {\n if (a.topic === b.topic) {\n return a.message > b.message ? 1 : -1;\n }\n return a.topic > b.topic ? 1 : -1;\n }\n\n errors.sort(sortAll);\n warnings.sort(sortAll);\n return { errors, warnings };\n}\n\n/**\n * Basic validation for global config options\n */\nasync function validateGlobalConfig(\n key: string,\n val: unknown,\n type: string,\n warnings: ValidationMessage[],\n errors: ValidationMessage[],\n currentPath: string | undefined,\n config: RenovateConfig,\n): Promise<void> {\n /* v8 ignore next 5 -- not testable yet */\n if (getDeprecationMessage(key)) {\n warnings.push({\n topic: 'Deprecation Warning',\n message: getDeprecationMessage(key)!,\n });\n }\n if (val !== null) {\n if (type === 'string') {\n if (is.string(val)) {\n if (\n key === 'onboardingConfigFileName' &&\n !getConfigFileNames().includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${getConfigFileNames().join(', ')}.`,\n });\n } else if (\n key === 'repositoryCache' &&\n !['enabled', 'disabled', 'reset'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['enabled', 'disabled', 'reset'].join(', ')}.`,\n });\n } else if (\n key === 'dryRun' &&\n !['extract', 'lookup', 'full'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['extract', 'lookup', 'full'].join(', ')}.`,\n });\n } else if (\n key === 'binarySource' &&\n !['docker', 'global', 'install', 'hermit'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['docker', 'global', 'install', 'hermit'].join(', ')}.`,\n });\n } else if (\n key === 'requireConfig' &&\n !['required', 'optional', 'ignored'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['required', 'optional', 'ignored'].join(', ')}.`,\n });\n } else if (\n key === 'gitUrl' &&\n !['default', 'ssh', 'endpoint'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['default', 'ssh', 'endpoint'].join(', ')}.`,\n });\n }\n\n if (\n key === 'reportType' &&\n ['s3', 'file'].includes(val) &&\n !is.string(config.reportPath)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `reportType '${val}' requires a configured reportPath`,\n });\n }\n } else {\n warnings.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a string.`,\n });\n }\n } else if (type === 'integer') {\n const allowsNegative = optionAllowsNegativeIntegers.has(key);\n warnings.push(...validateNumber(key, val, allowsNegative, currentPath));\n } else if (type === 'boolean') {\n if (val !== true && val !== false) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a boolean. Found: ${JSON.stringify(\n val,\n )} (${typeof val}).`,\n });\n }\n } else if (type === 'array') {\n if (is.array(val)) {\n if (isRegexOrGlobOption(key)) {\n warnings.push(\n ...regexOrGlobValidator.check({\n val,\n currentPath: currentPath!,\n }),\n );\n }\n if (key === 'gitNoVerify') {\n const allowedValues = ['commit', 'push'];\n for (const value of val as string[]) {\n if (!allowedValues.includes(value)) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value for \\`${currentPath}\\`. The allowed values are ${allowedValues.join(', ')}.`,\n });\n }\n }\n }\n if (key === 'mergeConfidenceDatasources') {\n const allowedValues = supportedDatasources;\n for (const value of val as string[]) {\n if (!allowedValues.includes(value)) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${value}\\` for \\`${currentPath}\\`. The allowed values are ${allowedValues.join(', ')}.`,\n });\n }\n }\n }\n } else {\n warnings.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a list (Array).`,\n });\n }\n } else if (type === 'object') {\n if (is.plainObject(val)) {\n if (key === 'onboardingConfig') {\n const subValidation = await validateConfig('repo', val);\n for (const warning of subValidation.warnings.concat(\n subValidation.errors,\n )) {\n warnings.push(warning);\n }\n } else if (key === 'force') {\n const subValidation = await validateConfig('global', val);\n for (const warning of subValidation.warnings.concat(\n subValidation.errors,\n )) {\n warnings.push(warning);\n }\n } else if (key === 'cacheTtlOverride') {\n for (const [subKey, subValue] of Object.entries(val)) {\n const allowsNegative = optionAllowsNegativeIntegers.has(key);\n warnings.push(\n ...validateNumber(\n key,\n subValue,\n allowsNegative,\n currentPath,\n subKey,\n ),\n );\n }\n } else {\n const res = validatePlainObject(val);\n if (res !== true) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${res}\\` configuration: value must be a string.`,\n });\n }\n }\n } else {\n warnings.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a JSON object.`,\n });\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../lib/config/validation.ts"],"names":[],"mappings":"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","sourcesContent":["import is, {\n isArray,\n isEmptyString,\n isNonEmptyArray,\n isNonEmptyString,\n isObject,\n isPlainObject,\n isString,\n isUndefined,\n} from '@sindresorhus/is';\nimport { allManagersList, getManagerList } from '../modules/manager';\nimport { isCustomManager } from '../modules/manager/custom';\nimport type { CustomManager } from '../modules/manager/custom/types';\nimport type { HostRule } from '../types';\nimport { getExpression } from '../util/jsonata';\nimport { regEx } from '../util/regex';\nimport {\n getRegexPredicate,\n isRegexMatch,\n matchRegexOrGlobList,\n} from '../util/string-match';\nimport * as template from '../util/template';\nimport { parseUrl } from '../util/url';\nimport {\n hasValidSchedule,\n hasValidTimezone,\n} from '../workers/repository/update/branch/schedule';\nimport { getConfigFileNames } from './app-strings';\nimport { GlobalConfig } from './global';\nimport { migrateConfig } from './migration';\nimport { getOptions } from './options';\nimport { resolveConfigPresets } from './presets';\nimport { supportedDatasources } from './presets/internal/merge-confidence';\nimport type {\n AllowedParents,\n RenovateConfig,\n RenovateOptions,\n StatusCheckKey,\n ValidationMessage,\n ValidationResult,\n} from './types';\nimport { allowedStatusCheckStrings } from './types';\nimport * as matchBaseBranchesValidator from './validation-helpers/match-base-branches';\nimport * as regexOrGlobValidator from './validation-helpers/regex-glob-matchers';\nimport {\n getParentName,\n isFalseGlobal,\n validateJSONataManagerFields,\n validateNumber,\n validatePlainObject,\n validateRegexManagerFields,\n} from './validation-helpers/utils';\n\nconst options = getOptions();\n\nlet optionsInitialized = false;\nlet optionTypes: Record<string, RenovateOptions['type']>;\nlet optionParents: Record<string, AllowedParents[]>;\nlet optionGlobals: Set<string>;\nlet optionInherits: Set<string>;\nlet optionRegexOrGlob: Set<string>;\nlet optionAllowsNegativeIntegers: Set<string>;\n\nconst managerList = getManagerList();\n\nconst topLevelObjects = [...managerList, 'env'];\n\nconst ignoredNodes = [\n '$schema',\n 'headers',\n 'depType',\n 'npmToken',\n 'packageFile',\n 'forkToken',\n 'repository',\n 'vulnerabilityAlertsOnly',\n 'vulnerabilityAlert',\n 'isVulnerabilityAlert',\n 'vulnerabilityFixVersion', // not intended to be used by end users but may be by Mend apps\n 'copyLocalLibs', // deprecated - functionality is now enabled by default\n 'prBody', // deprecated\n 'minimumConfidence', // undocumented feature flag\n];\nconst tzRe = regEx(/^:timezone\\((.+)\\)$/);\nconst rulesRe = regEx(/p.*Rules\\[\\d+\\]$/);\n\nfunction isIgnored(key: string): boolean {\n return ignoredNodes.includes(key);\n}\n\nfunction getUnsupportedEnabledManagers(enabledManagers: string[]): string[] {\n return enabledManagers.filter(\n (manager) => !allManagersList.includes(manager.replace('custom.', '')),\n );\n}\n\nfunction getDeprecationMessage(option: string): string | undefined {\n const deprecatedOptions: Record<string, string | undefined> = {\n branchName: `Direct editing of branchName is now deprecated. Please edit branchPrefix, additionalBranchPrefix, or branchTopic instead`,\n commitMessage: `Direct editing of commitMessage is now deprecated. Please edit commitMessage's subcomponents instead.`,\n prTitle: `Direct editing of prTitle is now deprecated. Please edit commitMessage subcomponents instead as they will be passed through to prTitle.`,\n };\n return deprecatedOptions[option];\n}\n\nfunction isInhertConfigOption(key: string): boolean {\n return optionInherits.has(key);\n}\n\nfunction isRegexOrGlobOption(key: string): boolean {\n return optionRegexOrGlob.has(key);\n}\n\nfunction isGlobalOption(key: string): boolean {\n return optionGlobals.has(key);\n}\n\nfunction initOptions(): void {\n if (optionsInitialized) {\n return;\n }\n\n optionParents = {};\n optionInherits = new Set();\n optionTypes = {};\n optionRegexOrGlob = new Set();\n optionGlobals = new Set();\n optionAllowsNegativeIntegers = new Set();\n\n for (const option of options) {\n optionTypes[option.name] = option.type;\n\n if (option.parents) {\n optionParents[option.name] = option.parents;\n }\n\n if (option.inheritConfigSupport) {\n optionInherits.add(option.name);\n }\n\n if (option.patternMatch) {\n optionRegexOrGlob.add(option.name);\n }\n\n if (option.globalOnly) {\n optionGlobals.add(option.name);\n }\n\n if (option.allowNegative) {\n optionAllowsNegativeIntegers.add(option.name);\n }\n }\n\n optionsInitialized = true;\n}\n\nexport async function validateConfig(\n configType: 'global' | 'inherit' | 'repo',\n config: RenovateConfig,\n isPreset?: boolean,\n parentPath?: string,\n): Promise<ValidationResult> {\n initOptions();\n\n let errors: ValidationMessage[] = [];\n let warnings: ValidationMessage[] = [];\n\n for (const [key, val] of Object.entries(config)) {\n const currentPath = parentPath ? `${parentPath}.${key}` : key;\n /* v8 ignore next 7 -- TODO: add test */\n if (key === '__proto__') {\n errors.push({\n topic: 'Config security error',\n message: '__proto__',\n });\n continue;\n }\n if (\n parentPath &&\n parentPath !== 'onboardingConfig' &&\n topLevelObjects.includes(key)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `The \"${key}\" object can only be configured at the top level of a config but was found inside \"${parentPath}\"`,\n });\n }\n\n if (isGlobalOption(key)) {\n if (configType === 'global') {\n await validateGlobalConfig(\n key,\n val,\n optionTypes[key],\n warnings,\n errors,\n currentPath,\n config,\n );\n continue;\n } else if (\n !isFalseGlobal(key, parentPath) &&\n !(configType === 'inherit' && isInhertConfigOption(key))\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `The \"${key}\" option is a global option reserved only for Renovate's global configuration and cannot be configured within a repository's config file.`,\n });\n continue;\n }\n }\n if (key === 'enabledManagers' && val) {\n const unsupportedManagers = getUnsupportedEnabledManagers(\n val as string[],\n );\n if (isNonEmptyArray(unsupportedManagers)) {\n errors.push({\n topic: 'Configuration Error',\n message: `The following managers configured in enabledManagers are not supported: \"${unsupportedManagers.join(\n ', ',\n )}\"`,\n });\n }\n }\n if (\n !isIgnored(key) && // We need to ignore some reserved keys\n !(is as any).function(val) // Ignore all functions\n ) {\n if (getDeprecationMessage(key)) {\n warnings.push({\n topic: 'Deprecation Warning',\n message: getDeprecationMessage(key)!,\n });\n }\n const templateKeys = [\n 'branchName',\n 'commitBody',\n 'commitMessage',\n 'prTitle',\n 'semanticCommitScope',\n ];\n if ((key.endsWith('Template') || templateKeys.includes(key)) && val) {\n try {\n // TODO: validate string #22198\n let res = template.compile((val as string).toString(), config, false);\n res = template.compile(res, config, false);\n template.compile(res, config, false);\n } catch {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid template in config path: ${currentPath}`,\n });\n }\n }\n const parentName = getParentName(parentPath);\n if (\n !isPreset &&\n optionParents[key] &&\n !optionParents[key].includes(parentName as AllowedParents)\n ) {\n // TODO: types (#22198)\n const options = optionParents[key]?.sort().join(', ');\n const message = `\"${key}\" can't be used in \"${parentName}\". Allowed objects: ${options}.`;\n warnings.push({\n topic: `${parentPath ? `${parentPath}.` : ''}${key}`,\n message,\n });\n }\n if (!optionTypes[key]) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid configuration option: ${currentPath}`,\n });\n } else if (key === 'schedule') {\n const [validSchedule, errorMessage] = hasValidSchedule(val as string[]);\n if (!validSchedule) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid ${currentPath}: \\`${errorMessage}\\``,\n });\n }\n } else if (\n [\n 'allowedVersions',\n 'matchCurrentVersion',\n 'matchCurrentValue',\n 'matchNewValue',\n ].includes(key) &&\n isRegexMatch(val)\n ) {\n if (!getRegexPredicate(val)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid regExp for ${currentPath}: \\`${val}\\``,\n });\n }\n } else if (key === 'timezone' && val !== null) {\n const [validTimezone, errorMessage] = hasValidTimezone(val as string);\n if (!validTimezone) {\n errors.push({\n topic: 'Configuration Error',\n message: `${currentPath}: ${errorMessage}`,\n });\n }\n } else if (val !== null) {\n const type = optionTypes[key];\n if (type === 'boolean') {\n if (val !== true && val !== false) {\n errors.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be boolean. Found: ${JSON.stringify(\n val,\n )} (${typeof val})`,\n });\n }\n } else if (type === 'integer') {\n const allowsNegative = optionAllowsNegativeIntegers.has(key);\n errors.push(...validateNumber(key, val, allowsNegative, currentPath));\n } else if (type === 'array' && val) {\n if (isArray(val)) {\n for (const [subIndex, subval] of val.entries()) {\n if (isObject(subval)) {\n const subValidation = await validateConfig(\n configType,\n subval as RenovateConfig,\n isPreset,\n `${currentPath}[${subIndex}]`,\n );\n warnings = warnings.concat(subValidation.warnings);\n errors = errors.concat(subValidation.errors);\n }\n }\n if (isRegexOrGlobOption(key)) {\n errors.push(\n ...regexOrGlobValidator.check({\n val,\n currentPath,\n }),\n );\n }\n if (key === 'extends') {\n for (const subval of val) {\n if (isString(subval)) {\n if (\n parentName === 'packageRules' &&\n subval.startsWith('group:')\n ) {\n warnings.push({\n topic: 'Configuration Warning',\n message: `${currentPath}: you should not extend \"group:\" presets`,\n });\n }\n if (tzRe.test(subval)) {\n const [, timezone] = tzRe.exec(subval)!;\n const [validTimezone, errorMessage] =\n hasValidTimezone(timezone);\n if (!validTimezone) {\n errors.push({\n topic: 'Configuration Error',\n message: `${currentPath}: ${errorMessage}`,\n });\n }\n }\n } else {\n errors.push({\n topic: 'Configuration Warning',\n message: `${currentPath}: preset value is not a string`,\n });\n }\n }\n }\n\n const selectors = [\n 'matchFileNames',\n 'matchLanguages',\n 'matchCategories',\n 'matchBaseBranches',\n 'matchManagers',\n 'matchDatasources',\n 'matchDepTypes',\n 'matchDepNames',\n 'matchPackageNames',\n 'matchCurrentValue',\n 'matchCurrentVersion',\n 'matchSourceUrls',\n 'matchUpdateTypes',\n 'matchConfidence',\n 'matchCurrentAge',\n 'matchRepositories',\n 'matchNewValue',\n 'matchJsonata',\n ];\n if (key === 'packageRules') {\n for (const [subIndex, packageRule] of val.entries()) {\n if (isObject(packageRule)) {\n const resolvedRule = migrateConfig({\n packageRules: [\n await resolveConfigPresets(\n packageRule as RenovateConfig,\n config,\n ),\n ],\n }).migratedConfig.packageRules![0];\n warnings.push(\n ...matchBaseBranchesValidator.check({\n resolvedRule,\n currentPath: `${currentPath}[${subIndex}]`,\n baseBranchPatterns: config.baseBranchPatterns!,\n }),\n );\n const selectorLength = Object.keys(resolvedRule).filter(\n (ruleKey) => selectors.includes(ruleKey),\n ).length;\n if (!selectorLength) {\n const message = `${currentPath}[${subIndex}]: Each packageRule must contain at least one match* or exclude* selector. Rule: ${JSON.stringify(\n packageRule,\n )}`;\n errors.push({\n topic: 'Configuration Error',\n message,\n });\n }\n if (selectorLength === Object.keys(resolvedRule).length) {\n const message = `${currentPath}[${subIndex}]: Each packageRule must contain at least one non-match* or non-exclude* field. Rule: ${JSON.stringify(\n packageRule,\n )}`;\n warnings.push({\n topic: 'Configuration Error',\n message,\n });\n }\n // It's too late to apply any of these options once you already have updates determined\n const preLookupOptions = [\n 'allowedVersions',\n 'extractVersion',\n 'followTag',\n 'ignoreDeps',\n 'ignoreUnstable',\n 'rangeStrategy',\n 'registryUrls',\n 'respectLatest',\n 'rollbackPrs',\n 'separateMajorMinor',\n 'separateMinorPatch',\n 'separateMultipleMajor',\n 'separateMultipleMinor',\n 'versioning',\n ];\n if (isNonEmptyArray(resolvedRule.matchUpdateTypes)) {\n for (const option of preLookupOptions) {\n if (resolvedRule[option] !== undefined) {\n const message = `${currentPath}[${subIndex}]: packageRules cannot combine both matchUpdateTypes and ${option}. Rule: ${JSON.stringify(\n packageRule,\n )}`;\n errors.push({\n topic: 'Configuration Error',\n message,\n });\n }\n }\n }\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `${currentPath} must contain JSON objects`,\n });\n }\n }\n }\n if (key === 'customManagers') {\n const allowedKeys = [\n 'customType',\n 'description',\n 'fileFormat',\n 'managerFilePatterns',\n 'matchStrings',\n 'matchStringsStrategy',\n 'depNameTemplate',\n 'packageNameTemplate',\n 'datasourceTemplate',\n 'versioningTemplate',\n 'registryUrlTemplate',\n 'currentValueTemplate',\n 'extractVersionTemplate',\n 'autoReplaceStringTemplate',\n 'depTypeTemplate',\n ];\n for (const customManager of val as CustomManager[]) {\n if (\n Object.keys(customManager).some(\n (k) => !allowedKeys.includes(k),\n )\n ) {\n const disallowedKeys = Object.keys(customManager).filter(\n (k) => !allowedKeys.includes(k),\n );\n errors.push({\n topic: 'Configuration Error',\n message: `Custom Manager contains disallowed fields: ${disallowedKeys.join(\n ', ',\n )}`,\n });\n } else if (\n isNonEmptyString(customManager.customType) &&\n isCustomManager(customManager.customType)\n ) {\n if (isNonEmptyArray(customManager.managerFilePatterns)) {\n switch (customManager.customType) {\n case 'regex':\n validateRegexManagerFields(\n customManager,\n currentPath,\n errors,\n );\n break;\n case 'jsonata':\n validateJSONataManagerFields(\n customManager,\n currentPath,\n errors,\n );\n break;\n }\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `Each Custom Manager must contain a non-empty managerFilePatterns array`,\n });\n }\n } else {\n if (\n isEmptyString(customManager.customType) ||\n isUndefined(customManager.customType)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Each Custom Manager must contain a non-empty customType string`,\n });\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid customType: ${customManager.customType}. Key is not a custom manager`,\n });\n }\n }\n }\n }\n if (['matchPackageNames', 'matchDepNames'].includes(key)) {\n const startPattern = regEx(/!?\\//);\n const endPattern = regEx(/\\/g?i?$/);\n for (const pattern of val as string[]) {\n if (startPattern.test(pattern) && endPattern.test(pattern)) {\n try {\n // regEx isn't aware of our !/ prefix but can handle the suffix\n regEx(pattern.replace(startPattern, '/'));\n } catch {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid regExp for ${currentPath}: \\`${pattern}\\``,\n });\n }\n }\n }\n }\n if (key === 'baseBranchPatterns') {\n for (const baseBranchPattern of val as string[]) {\n if (\n isRegexMatch(baseBranchPattern) &&\n !getRegexPredicate(baseBranchPattern)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid regExp for ${currentPath}: \\`${baseBranchPattern}\\``,\n });\n }\n }\n }\n if (\n (selectors.includes(key) ||\n key === 'matchCurrentVersion' ||\n key === 'matchCurrentValue') &&\n // TODO: can be undefined ? #22198\n !rulesRe.test(parentPath!) && // Inside a packageRule\n (isString(parentPath) || !isPreset) // top level in a preset\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `${currentPath}: ${key} should be inside a \\`packageRule\\` only`,\n });\n }\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a list (Array)`,\n });\n }\n } else if (type === 'string') {\n if (!isString(val)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a string`,\n });\n }\n } else if (\n type === 'object' &&\n currentPath !== 'compatibility' &&\n key !== 'constraints'\n ) {\n if (isPlainObject(val)) {\n if (key === 'registryAliases') {\n const res = validatePlainObject(val);\n if (res !== true) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${key}.${res}\\` configuration: value is not a string`,\n });\n }\n } else if (key === 'env') {\n const allowedEnvVars =\n configType === 'global'\n ? ((config.allowedEnv as string[]) ?? [])\n : GlobalConfig.get('allowedEnv', []);\n for (const [envVarName, envVarValue] of Object.entries(val)) {\n if (!isString(envVarValue)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid env variable value: \\`${currentPath}.${envVarName}\\` must be a string.`,\n });\n }\n if (!matchRegexOrGlobList(envVarName, allowedEnvVars)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Env variable name \\`${envVarName}\\` is not allowed by this bot's \\`allowedEnv\\`.`,\n });\n }\n }\n } else if (key === 'statusCheckNames') {\n for (const [statusCheckKey, statusCheckValue] of Object.entries(\n val,\n )) {\n if (\n !allowedStatusCheckStrings.includes(\n statusCheckKey as StatusCheckKey,\n )\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${key}.${statusCheckKey}\\` configuration: key is not allowed.`,\n });\n }\n if (\n !(isString(statusCheckValue) || null === statusCheckValue)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${statusCheckKey}\\` configuration: status check is not a string.`,\n });\n continue;\n }\n }\n } else if (key === 'customDatasources') {\n const allowedKeys = [\n 'description',\n 'defaultRegistryUrlTemplate',\n 'format',\n 'transformTemplates',\n ];\n for (const [\n customDatasourceName,\n customDatasourceValue,\n ] of Object.entries(val)) {\n if (!isPlainObject(customDatasourceValue)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${customDatasourceName}\\` configuration: customDatasource is not an object`,\n });\n continue;\n }\n for (const [subKey, subValue] of Object.entries(\n customDatasourceValue,\n )) {\n if (!allowedKeys.includes(subKey)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${subKey}\\` configuration: key is not allowed`,\n });\n } else if (subKey === 'transformTemplates') {\n if (!isArray(subValue, isString)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${subKey}\\` configuration: is not an array of string`,\n });\n }\n } else if (subKey === 'description') {\n if (!(isString(subValue) || isArray(subValue, isString))) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${subKey}\\` configuration: is not an array of strings`,\n });\n }\n } else if (!isString(subValue)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${subKey}\\` configuration: is a string`,\n });\n }\n }\n }\n } else {\n const ignoredObjects = options\n .filter((option) => option.freeChoice)\n .map((option) => option.name);\n if (!ignoredObjects.includes(key)) {\n const subValidation = await validateConfig(\n configType,\n val,\n isPreset,\n currentPath,\n );\n warnings = warnings.concat(subValidation.warnings);\n errors = errors.concat(subValidation.errors);\n }\n }\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a json object`,\n });\n }\n }\n }\n }\n\n if (key === 'hostRules' && isArray(val)) {\n const allowedHeaders =\n configType === 'global'\n ? ((config.allowedHeaders as string[]) ?? [])\n : GlobalConfig.get('allowedHeaders', []);\n for (const rule of val as HostRule[]) {\n if (isNonEmptyString(rule.matchHost)) {\n if (rule.matchHost.includes('://')) {\n if (parseUrl(rule.matchHost) === null) {\n errors.push({\n topic: 'Configuration Error',\n message: `hostRules matchHost \\`${rule.matchHost}\\` is not a valid URL.`,\n });\n }\n }\n } else if (isEmptyString(rule.matchHost)) {\n errors.push({\n topic: 'Configuration Error',\n message:\n 'Invalid value for hostRules matchHost. It cannot be an empty string.',\n });\n }\n\n if (!rule.headers) {\n continue;\n }\n for (const [header, value] of Object.entries(rule.headers)) {\n if (!isString(value)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid hostRules headers value configuration: header must be a string.`,\n });\n }\n if (!matchRegexOrGlobList(header, allowedHeaders)) {\n errors.push({\n topic: 'Configuration Error',\n message: `hostRules header \\`${header}\\` is not allowed by this bot's \\`allowedHeaders\\`.`,\n });\n }\n }\n }\n }\n\n if (key === 'matchJsonata' && isArray(val, isString)) {\n for (const expression of val) {\n const res = getExpression(expression);\n if (res instanceof Error) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid JSONata expression for ${currentPath}: ${res.message}`,\n });\n }\n }\n }\n }\n\n function sortAll(a: ValidationMessage, b: ValidationMessage): number {\n if (a.topic === b.topic) {\n return a.message > b.message ? 1 : -1;\n }\n return a.topic > b.topic ? 1 : -1;\n }\n\n errors.sort(sortAll);\n warnings.sort(sortAll);\n return { errors, warnings };\n}\n\n/**\n * Basic validation for global config options\n */\nasync function validateGlobalConfig(\n key: string,\n val: unknown,\n type: string,\n warnings: ValidationMessage[],\n errors: ValidationMessage[],\n currentPath: string | undefined,\n config: RenovateConfig,\n): Promise<void> {\n /* v8 ignore next 5 -- not testable yet */\n if (getDeprecationMessage(key)) {\n warnings.push({\n topic: 'Deprecation Warning',\n message: getDeprecationMessage(key)!,\n });\n }\n if (val !== null) {\n if (type === 'string') {\n if (isString(val)) {\n if (\n key === 'onboardingConfigFileName' &&\n !getConfigFileNames().includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${getConfigFileNames().join(', ')}.`,\n });\n } else if (\n key === 'repositoryCache' &&\n !['enabled', 'disabled', 'reset'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['enabled', 'disabled', 'reset'].join(', ')}.`,\n });\n } else if (\n key === 'dryRun' &&\n !['extract', 'lookup', 'full'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['extract', 'lookup', 'full'].join(', ')}.`,\n });\n } else if (\n key === 'binarySource' &&\n !['docker', 'global', 'install', 'hermit'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['docker', 'global', 'install', 'hermit'].join(', ')}.`,\n });\n } else if (\n key === 'requireConfig' &&\n !['required', 'optional', 'ignored'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['required', 'optional', 'ignored'].join(', ')}.`,\n });\n } else if (\n key === 'gitUrl' &&\n !['default', 'ssh', 'endpoint'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['default', 'ssh', 'endpoint'].join(', ')}.`,\n });\n }\n\n if (\n key === 'reportType' &&\n ['s3', 'file'].includes(val) &&\n !isString(config.reportPath)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `reportType '${val}' requires a configured reportPath`,\n });\n }\n } else {\n warnings.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a string.`,\n });\n }\n } else if (type === 'integer') {\n const allowsNegative = optionAllowsNegativeIntegers.has(key);\n warnings.push(...validateNumber(key, val, allowsNegative, currentPath));\n } else if (type === 'boolean') {\n if (val !== true && val !== false) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a boolean. Found: ${JSON.stringify(\n val,\n )} (${typeof val}).`,\n });\n }\n } else if (type === 'array') {\n if (isArray(val)) {\n if (isRegexOrGlobOption(key)) {\n warnings.push(\n ...regexOrGlobValidator.check({\n val,\n currentPath: currentPath!,\n }),\n );\n }\n if (key === 'gitNoVerify') {\n const allowedValues = ['commit', 'push'];\n for (const value of val as string[]) {\n if (!allowedValues.includes(value)) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value for \\`${currentPath}\\`. The allowed values are ${allowedValues.join(', ')}.`,\n });\n }\n }\n }\n if (key === 'mergeConfidenceDatasources') {\n const allowedValues = supportedDatasources;\n for (const value of val as string[]) {\n if (!allowedValues.includes(value)) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${value}\\` for \\`${currentPath}\\`. The allowed values are ${allowedValues.join(', ')}.`,\n });\n }\n }\n }\n } else {\n warnings.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a list (Array).`,\n });\n }\n } else if (type === 'object') {\n if (isPlainObject(val)) {\n if (key === 'onboardingConfig') {\n const subValidation = await validateConfig('repo', val);\n for (const warning of subValidation.warnings.concat(\n subValidation.errors,\n )) {\n warnings.push(warning);\n }\n } else if (key === 'force') {\n const subValidation = await validateConfig('global', val);\n for (const warning of subValidation.warnings.concat(\n subValidation.errors,\n )) {\n warnings.push(warning);\n }\n } else if (key === 'cacheTtlOverride') {\n for (const [subKey, subValue] of Object.entries(val)) {\n const allowsNegative = optionAllowsNegativeIntegers.has(key);\n warnings.push(\n ...validateNumber(\n key,\n subValue,\n allowsNegative,\n currentPath,\n subKey,\n ),\n );\n }\n } else {\n const res = validatePlainObject(val);\n if (res !== true) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${res}\\` configuration: value must be a string.`,\n });\n }\n }\n } else {\n warnings.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a JSON object.`,\n });\n }\n }\n }\n}\n"]}
@@ -7,9 +7,8 @@ exports.addLibYears = addLibYears;
7
7
  exports.finalizeReport = finalizeReport;
8
8
  exports.exportStats = exportStats;
9
9
  exports.getReport = getReport;
10
- const tslib_1 = require("tslib");
11
10
  const client_s3_1 = require("@aws-sdk/client-s3");
12
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
11
+ const is_1 = require("@sindresorhus/is");
13
12
  const logger_1 = require("../logger");
14
13
  const fs_1 = require("../util/fs");
15
14
  const s3_1 = require("../util/s3");
@@ -26,14 +25,14 @@ function resetReport() {
26
25
  report.repositories = {};
27
26
  }
28
27
  function addBranchStats(config, branchesInformation) {
29
- if (is_1.default.nullOrUndefined(config.reportType)) {
28
+ if ((0, is_1.isNullOrUndefined)(config.reportType)) {
30
29
  return;
31
30
  }
32
31
  coerceRepo(config.repository);
33
32
  report.repositories[config.repository].branches = branchesInformation;
34
33
  }
35
34
  function addExtractionStats(config, extractResult) {
36
- if (is_1.default.nullOrUndefined(config.reportType)) {
35
+ if ((0, is_1.isNullOrUndefined)(config.reportType)) {
37
36
  return;
38
37
  }
39
38
  coerceRepo(config.repository);
@@ -41,7 +40,7 @@ function addExtractionStats(config, extractResult) {
41
40
  extractResult.packageFiles;
42
41
  }
43
42
  function addLibYears(config, libYearsWithDepCount) {
44
- if (is_1.default.nullOrUndefined(config.reportType)) {
43
+ if ((0, is_1.isNullOrUndefined)(config.reportType)) {
45
44
  return;
46
45
  }
47
46
  coerceRepo(config.repository);
@@ -65,7 +64,7 @@ function finalizeReport() {
65
64
  }
66
65
  async function exportStats(config) {
67
66
  try {
68
- if (is_1.default.nullOrUndefined(config.reportType)) {
67
+ if ((0, is_1.isNullOrUndefined)(config.reportType)) {
69
68
  return;
70
69
  }
71
70
  if (config.reportType === 'logging') {
@@ -80,7 +79,7 @@ async function exportStats(config) {
80
79
  }
81
80
  if (config.reportType === 's3') {
82
81
  const s3Url = (0, s3_1.parseS3Url)(config.reportPath);
83
- if (is_1.default.nullOrUndefined(s3Url)) {
82
+ if ((0, is_1.isNullOrUndefined)(s3Url)) {
84
83
  logger_1.logger.warn({ reportPath: config.reportPath }, 'Failed to parse s3 URL');
85
84
  return;
86
85
  }
@@ -103,7 +102,7 @@ function getReport() {
103
102
  return structuredClone(report);
104
103
  }
105
104
  function coerceRepo(repository) {
106
- if (!is_1.default.undefined(report.repositories[repository])) {
105
+ if (!(0, is_1.isUndefined)(report.repositories[repository])) {
107
106
  return;
108
107
  }
109
108
  report.repositories[repository] = {
@@ -1 +1 @@
1
- {"version":3,"file":"reporting.js","sourceRoot":"","sources":["../../lib/instrumentation/reporting.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PutObjectCommandInput } from '@aws-sdk/client-s3';\nimport { PutObjectCommand } from '@aws-sdk/client-s3';\nimport is from '@sindresorhus/is';\nimport type { RenovateConfig } from '../config/types';\nimport { getProblems, logger } from '../logger';\nimport type { BranchCache } from '../util/cache/repository/types';\nimport { writeSystemFile } from '../util/fs';\nimport { getS3Client, parseS3Url } from '../util/s3';\nimport type { ExtractResult } from '../workers/repository/process/extract-update';\nimport type { LibYearsWithStatus, Report } from './types';\n\nconst report: Report = {\n problems: [],\n repositories: {},\n};\n\n/**\n * Reset the report\n * Should only be used for testing\n */\nexport function resetReport(): void {\n report.problems = [];\n report.repositories = {};\n}\n\nexport function addBranchStats(\n config: RenovateConfig,\n branchesInformation: Partial<BranchCache>[],\n): void {\n if (is.nullOrUndefined(config.reportType)) {\n return;\n }\n\n coerceRepo(config.repository!);\n report.repositories[config.repository!].branches = branchesInformation;\n}\n\nexport function addExtractionStats(\n config: RenovateConfig,\n extractResult: ExtractResult,\n): void {\n if (is.nullOrUndefined(config.reportType)) {\n return;\n }\n\n coerceRepo(config.repository!);\n report.repositories[config.repository!].packageFiles =\n extractResult.packageFiles;\n}\n\nexport function addLibYears(\n config: RenovateConfig,\n libYearsWithDepCount: LibYearsWithStatus,\n): void {\n if (is.nullOrUndefined(config.reportType)) {\n return;\n }\n\n coerceRepo(config.repository!);\n report.repositories[config.repository!].libYearsWithStatus =\n libYearsWithDepCount;\n}\n\nexport function finalizeReport(): void {\n const allProblems = structuredClone(getProblems());\n for (const problem of allProblems) {\n const repository = problem.repository;\n delete problem.repository;\n\n // if the problem can be connected to a repository add it their else add to the root list\n if (repository) {\n coerceRepo(repository);\n report.repositories[repository].problems.push(problem);\n } else {\n report.problems.push(problem);\n }\n }\n}\n\nexport async function exportStats(config: RenovateConfig): Promise<void> {\n try {\n if (is.nullOrUndefined(config.reportType)) {\n return;\n }\n\n if (config.reportType === 'logging') {\n logger.info({ report }, 'Printing report');\n return;\n }\n\n if (config.reportType === 'file') {\n const path = config.reportPath!;\n await writeSystemFile(path, JSON.stringify(report));\n logger.debug({ path }, 'Writing report');\n return;\n }\n\n if (config.reportType === 's3') {\n const s3Url = parseS3Url(config.reportPath!);\n if (is.nullOrUndefined(s3Url)) {\n logger.warn(\n { reportPath: config.reportPath },\n 'Failed to parse s3 URL',\n );\n return;\n }\n\n const s3Params: PutObjectCommandInput = {\n Bucket: s3Url.Bucket,\n Key: s3Url.Key,\n Body: JSON.stringify(report),\n ContentType: 'application/json',\n };\n\n const client = getS3Client(config.s3Endpoint, config.s3PathStyle);\n const command = new PutObjectCommand(s3Params);\n await client.send(command);\n }\n } catch (err) {\n logger.warn({ err }, 'Reporting.exportStats() - failure');\n }\n}\n\nexport function getReport(): Report {\n return structuredClone(report);\n}\n\nfunction coerceRepo(repository: string): void {\n if (!is.undefined(report.repositories[repository])) {\n return;\n }\n\n report.repositories[repository] = {\n problems: [],\n branches: [],\n packageFiles: {},\n };\n}\n"]}
1
+ {"version":3,"file":"reporting.js","sourceRoot":"","sources":["../../lib/instrumentation/reporting.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PutObjectCommandInput } from '@aws-sdk/client-s3';\nimport { PutObjectCommand } from '@aws-sdk/client-s3';\nimport { isNullOrUndefined, isUndefined } from '@sindresorhus/is';\nimport type { RenovateConfig } from '../config/types';\nimport { getProblems, logger } from '../logger';\nimport type { BranchCache } from '../util/cache/repository/types';\nimport { writeSystemFile } from '../util/fs';\nimport { getS3Client, parseS3Url } from '../util/s3';\nimport type { ExtractResult } from '../workers/repository/process/extract-update';\nimport type { LibYearsWithStatus, Report } from './types';\n\nconst report: Report = {\n problems: [],\n repositories: {},\n};\n\n/**\n * Reset the report\n * Should only be used for testing\n */\nexport function resetReport(): void {\n report.problems = [];\n report.repositories = {};\n}\n\nexport function addBranchStats(\n config: RenovateConfig,\n branchesInformation: Partial<BranchCache>[],\n): void {\n if (isNullOrUndefined(config.reportType)) {\n return;\n }\n\n coerceRepo(config.repository!);\n report.repositories[config.repository!].branches = branchesInformation;\n}\n\nexport function addExtractionStats(\n config: RenovateConfig,\n extractResult: ExtractResult,\n): void {\n if (isNullOrUndefined(config.reportType)) {\n return;\n }\n\n coerceRepo(config.repository!);\n report.repositories[config.repository!].packageFiles =\n extractResult.packageFiles;\n}\n\nexport function addLibYears(\n config: RenovateConfig,\n libYearsWithDepCount: LibYearsWithStatus,\n): void {\n if (isNullOrUndefined(config.reportType)) {\n return;\n }\n\n coerceRepo(config.repository!);\n report.repositories[config.repository!].libYearsWithStatus =\n libYearsWithDepCount;\n}\n\nexport function finalizeReport(): void {\n const allProblems = structuredClone(getProblems());\n for (const problem of allProblems) {\n const repository = problem.repository;\n delete problem.repository;\n\n // if the problem can be connected to a repository add it their else add to the root list\n if (repository) {\n coerceRepo(repository);\n report.repositories[repository].problems.push(problem);\n } else {\n report.problems.push(problem);\n }\n }\n}\n\nexport async function exportStats(config: RenovateConfig): Promise<void> {\n try {\n if (isNullOrUndefined(config.reportType)) {\n return;\n }\n\n if (config.reportType === 'logging') {\n logger.info({ report }, 'Printing report');\n return;\n }\n\n if (config.reportType === 'file') {\n const path = config.reportPath!;\n await writeSystemFile(path, JSON.stringify(report));\n logger.debug({ path }, 'Writing report');\n return;\n }\n\n if (config.reportType === 's3') {\n const s3Url = parseS3Url(config.reportPath!);\n if (isNullOrUndefined(s3Url)) {\n logger.warn(\n { reportPath: config.reportPath },\n 'Failed to parse s3 URL',\n );\n return;\n }\n\n const s3Params: PutObjectCommandInput = {\n Bucket: s3Url.Bucket,\n Key: s3Url.Key,\n Body: JSON.stringify(report),\n ContentType: 'application/json',\n };\n\n const client = getS3Client(config.s3Endpoint, config.s3PathStyle);\n const command = new PutObjectCommand(s3Params);\n await client.send(command);\n }\n } catch (err) {\n logger.warn({ err }, 'Reporting.exportStats() - failure');\n }\n}\n\nexport function getReport(): Report {\n return structuredClone(report);\n}\n\nfunction coerceRepo(repository: string): void {\n if (!isUndefined(report.repositories[repository])) {\n return;\n }\n\n report.repositories[repository] = {\n problems: [],\n branches: [],\n packageFiles: {},\n };\n}\n"]}
@@ -4,8 +4,7 @@ exports.isTracingEnabled = isTracingEnabled;
4
4
  exports.isTraceDebuggingEnabled = isTraceDebuggingEnabled;
5
5
  exports.isTraceSendingEnabled = isTraceSendingEnabled;
6
6
  exports.massageThrowable = massageThrowable;
7
- const tslib_1 = require("tslib");
8
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
7
+ const is_1 = require("@sindresorhus/is");
9
8
  const env_1 = require("../util/env");
10
9
  function isTracingEnabled() {
11
10
  return isTraceDebuggingEnabled() || isTraceSendingEnabled();
@@ -17,7 +16,7 @@ function isTraceSendingEnabled() {
17
16
  return !!(0, env_1.getEnv)().OTEL_EXPORTER_OTLP_ENDPOINT;
18
17
  }
19
18
  function massageThrowable(e) {
20
- if (is_1.default.nullOrUndefined(e)) {
19
+ if ((0, is_1.isNullOrUndefined)(e)) {
21
20
  return undefined;
22
21
  }
23
22
  if (e instanceof Error) {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/instrumentation/utils.ts"],"names":[],"mappings":";;AAGA,4CAEC;AAED,0DAEC;AAED,sDAEC;AAED,4CAQC;;AAvBD,kEAAkC;AAClC,qCAAqC;AAErC,SAAgB,gBAAgB;IAC9B,OAAO,uBAAuB,EAAE,IAAI,qBAAqB,EAAE,CAAC;AAC9D,CAAC;AAED,SAAgB,uBAAuB;IACrC,OAAO,CAAC,CAAC,IAAA,YAAM,GAAE,CAAC,iCAAiC,CAAC;AACtD,CAAC;AAED,SAAgB,qBAAqB;IACnC,OAAO,CAAC,CAAC,IAAA,YAAM,GAAE,CAAC,2BAA2B,CAAC;AAChD,CAAC;AAED,SAAgB,gBAAgB,CAAC,CAAU;IACzC,IAAI,YAAE,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,CAAC,OAAO,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,2DAA2D;AAC/E,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { getEnv } from '../util/env';\n\nexport function isTracingEnabled(): boolean {\n return isTraceDebuggingEnabled() || isTraceSendingEnabled();\n}\n\nexport function isTraceDebuggingEnabled(): boolean {\n return !!getEnv().RENOVATE_TRACING_CONSOLE_EXPORTER;\n}\n\nexport function isTraceSendingEnabled(): boolean {\n return !!getEnv().OTEL_EXPORTER_OTLP_ENDPOINT;\n}\n\nexport function massageThrowable(e: unknown): string | undefined {\n if (is.nullOrUndefined(e)) {\n return undefined;\n }\n if (e instanceof Error) {\n return e.message;\n }\n return String(e); // eslint-disable-line @typescript-eslint/no-base-to-string\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/instrumentation/utils.ts"],"names":[],"mappings":";;AAGA,4CAEC;AAED,0DAEC;AAED,sDAEC;AAED,4CAQC;AAvBD,yCAAqD;AACrD,qCAAqC;AAErC,SAAgB,gBAAgB;IAC9B,OAAO,uBAAuB,EAAE,IAAI,qBAAqB,EAAE,CAAC;AAC9D,CAAC;AAED,SAAgB,uBAAuB;IACrC,OAAO,CAAC,CAAC,IAAA,YAAM,GAAE,CAAC,iCAAiC,CAAC;AACtD,CAAC;AAED,SAAgB,qBAAqB;IACnC,OAAO,CAAC,CAAC,IAAA,YAAM,GAAE,CAAC,2BAA2B,CAAC;AAChD,CAAC;AAED,SAAgB,gBAAgB,CAAC,CAAU;IACzC,IAAI,IAAA,sBAAiB,EAAC,CAAC,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,CAAC,OAAO,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,2DAA2D;AAC/E,CAAC","sourcesContent":["import { isNullOrUndefined } from '@sindresorhus/is';\nimport { getEnv } from '../util/env';\n\nexport function isTracingEnabled(): boolean {\n return isTraceDebuggingEnabled() || isTraceSendingEnabled();\n}\n\nexport function isTraceDebuggingEnabled(): boolean {\n return !!getEnv().RENOVATE_TRACING_CONSOLE_EXPORTER;\n}\n\nexport function isTraceSendingEnabled(): boolean {\n return !!getEnv().OTEL_EXPORTER_OTLP_ENDPOINT;\n}\n\nexport function massageThrowable(e: unknown): string | undefined {\n if (isNullOrUndefined(e)) {\n return undefined;\n }\n if (e instanceof Error) {\n return e.message;\n }\n return String(e); // eslint-disable-line @typescript-eslint/no-base-to-string\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = errSerializer;
4
4
  const tslib_1 = require("tslib");
5
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
5
+ const is_1 = require("@sindresorhus/is");
6
6
  const regex_1 = require("../util/regex");
7
7
  const utils_1 = tslib_1.__importDefault(require("./utils"));
8
8
  Error.stackTraceLimit = 20;
@@ -12,7 +12,7 @@ function errSerializer(err) {
12
12
  const redactedFields = ['message', 'stack', 'stdout', 'stderr'];
13
13
  for (const field of redactedFields) {
14
14
  const val = response[field];
15
- if (is_1.default.string(val)) {
15
+ if ((0, is_1.isString)(val)) {
16
16
  response[field] = val.replace((0, regex_1.regEx)(/https:\/\/[^@]*?@/g), 'https://**redacted**@');
17
17
  }
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"err-serializer.js","sourceRoot":"","sources":["../../lib/logger/err-serializer.ts"],"names":[],"mappings":";;AAMA,gCAeC;;AArBD,kEAAkC;AAClC,yCAAsC;AACtC,4DAAmC;AAEnC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC;AAE3B,SAAwB,aAAa,CAAC,GAAU;IAC9C,MAAM,QAAQ,GAA4B,IAAA,eAAY,EAAC,GAAG,CAAC,CAAC;IAE5D,oCAAoC;IACpC,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChE,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,YAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CAC3B,IAAA,aAAK,EAAC,oBAAoB,CAAC,EAC3B,uBAAuB,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { regEx } from '../util/regex';\nimport prepareError from './utils';\n\nError.stackTraceLimit = 20;\n\nexport default function errSerializer(err: Error): any {\n const response: Record<string, unknown> = prepareError(err);\n\n // already done by `sanitizeValue` ?\n const redactedFields = ['message', 'stack', 'stdout', 'stderr'];\n for (const field of redactedFields) {\n const val = response[field];\n if (is.string(val)) {\n response[field] = val.replace(\n regEx(/https:\\/\\/[^@]*?@/g),\n 'https://**redacted**@',\n );\n }\n }\n return response;\n}\n"]}
1
+ {"version":3,"file":"err-serializer.js","sourceRoot":"","sources":["../../lib/logger/err-serializer.ts"],"names":[],"mappings":";;AAMA,gCAeC;;AArBD,yCAA4C;AAC5C,yCAAsC;AACtC,4DAAmC;AAEnC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC;AAE3B,SAAwB,aAAa,CAAC,GAAU;IAC9C,MAAM,QAAQ,GAA4B,IAAA,eAAY,EAAC,GAAG,CAAC,CAAC;IAE5D,oCAAoC;IACpC,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChE,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,IAAA,aAAQ,EAAC,GAAG,CAAC,EAAE,CAAC;YAClB,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CAC3B,IAAA,aAAK,EAAC,oBAAoB,CAAC,EAC3B,uBAAuB,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import { isString } from '@sindresorhus/is';\nimport { regEx } from '../util/regex';\nimport prepareError from './utils';\n\nError.stackTraceLimit = 20;\n\nexport default function errSerializer(err: Error): any {\n const response: Record<string, unknown> = prepareError(err);\n\n // already done by `sanitizeValue` ?\n const redactedFields = ['message', 'stack', 'stdout', 'stderr'];\n for (const field of redactedFields) {\n const val = response[field];\n if (isString(val)) {\n response[field] = val.replace(\n regEx(/https:\\/\\/[^@]*?@/g),\n 'https://**redacted**@',\n );\n }\n }\n return response;\n}\n"]}
@@ -14,7 +14,7 @@ exports.levels = levels;
14
14
  exports.getProblems = getProblems;
15
15
  exports.clearProblems = clearProblems;
16
16
  const tslib_1 = require("tslib");
17
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
17
+ const is_1 = require("@sindresorhus/is");
18
18
  const bunyan = tslib_1.__importStar(require("bunyan"));
19
19
  const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
20
20
  const nanoid_1 = require("nanoid");
@@ -49,7 +49,7 @@ function createDefaultStreams(stdoutLevel, problems, logFile) {
49
49
  stream: problems,
50
50
  type: 'raw',
51
51
  };
52
- const logFileStream = is_1.default.string(logFile)
52
+ const logFileStream = (0, is_1.isString)(logFile)
53
53
  ? createLogFileStream(logFile)
54
54
  : undefined;
55
55
  return [stdout, problemsStream, logFileStream].filter(Boolean);
@@ -64,7 +64,7 @@ function createLogFileStream(logFile) {
64
64
  level: (0, utils_1.validateLogLevel)((0, utils_1.getEnv)('LOG_FILE_LEVEL'), 'debug'),
65
65
  };
66
66
  const logFileFormat = (0, utils_1.getEnv)('LOG_FILE_FORMAT');
67
- if (is_1.default.nonEmptyStringAndNotWhitespace(logFileFormat) &&
67
+ if ((0, is_1.isNonEmptyStringAndNotWhitespace)(logFileFormat) &&
68
68
  logFileFormat === 'pretty') {
69
69
  file.type = 'raw';
70
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/logger/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport * as bunyan from 'bunyan';\nimport fs from 'fs-extra';\nimport { nanoid } from 'nanoid';\nimport upath from 'upath';\nimport cmdSerializer from './cmd-serializer';\nimport configSerializer from './config-serializer';\nimport errSerializer from './err-serializer';\nimport { RenovateStream } from './pretty-stdout';\nimport { RenovateLogger } from './renovate-logger';\nimport type { BunyanRecord, Logger } from './types';\nimport {\n ProblemStream,\n getEnv,\n validateLogLevel,\n withSanitizer,\n} from './utils';\n\nconst problems = new ProblemStream();\nlet stdoutLevel = validateLogLevel(getEnv('LOG_LEVEL'), 'info');\n\nexport function logLevel(): bunyan.LogLevelString {\n return stdoutLevel;\n}\n\nexport function createDefaultStreams(\n stdoutLevel: bunyan.LogLevelString,\n problems: ProblemStream,\n logFile: string | undefined,\n): bunyan.Stream[] {\n const stdout: bunyan.Stream = {\n name: 'stdout',\n level: stdoutLevel,\n stream: process.stdout,\n };\n\n if (getEnv('LOG_FORMAT') !== 'json') {\n // TODO: typings (#9615)\n const prettyStdOut = new RenovateStream() as any;\n prettyStdOut.pipe(process.stdout);\n stdout.stream = prettyStdOut;\n stdout.type = 'raw';\n }\n\n const problemsStream: bunyan.Stream = {\n name: 'problems',\n level: 'warn' as bunyan.LogLevel,\n stream: problems as any,\n type: 'raw',\n };\n\n const logFileStream: bunyan.Stream | undefined = is.string(logFile)\n ? createLogFileStream(logFile)\n : undefined;\n\n return [stdout, problemsStream, logFileStream].filter(\n Boolean,\n ) as bunyan.Stream[];\n}\n\nfunction createLogFileStream(logFile: string): bunyan.Stream {\n // Ensure log file directory exists\n const directoryName = upath.dirname(logFile);\n fs.ensureDirSync(directoryName);\n\n const file: bunyan.Stream = {\n name: 'logfile',\n path: logFile,\n level: validateLogLevel(getEnv('LOG_FILE_LEVEL'), 'debug'),\n };\n\n const logFileFormat = getEnv('LOG_FILE_FORMAT');\n\n if (\n is.nonEmptyStringAndNotWhitespace(logFileFormat) &&\n logFileFormat === 'pretty'\n ) {\n file.type = 'raw';\n }\n\n return file;\n}\n\nfunction serializedSanitizedLogger(streams: bunyan.Stream[]): bunyan {\n return bunyan.createLogger({\n name: 'renovate',\n serializers: {\n body: configSerializer,\n cmd: cmdSerializer,\n config: configSerializer,\n migratedConfig: configSerializer,\n originalConfig: configSerializer,\n presetConfig: configSerializer,\n oldConfig: configSerializer,\n newConfig: configSerializer,\n err: errSerializer,\n },\n streams: streams.map(withSanitizer),\n });\n}\n\nconst defaultStreams = createDefaultStreams(\n stdoutLevel,\n problems,\n getEnv('LOG_FILE'),\n);\n\nconst bunyanLogger = serializedSanitizedLogger(defaultStreams);\nconst logContext = getEnv('LOG_CONTEXT') ?? nanoid();\nconst loggerInternal = new RenovateLogger(bunyanLogger, logContext, {});\n\nexport const logger: Logger = loggerInternal;\n\nexport function setContext(value: string): void {\n loggerInternal.logContext = value;\n}\n\nexport function getContext(): any {\n return loggerInternal.logContext;\n}\n\n// setMeta overrides existing meta, may remove fields if no longer existing\nexport function setMeta(obj: Record<string, unknown>): void {\n loggerInternal.setMeta(obj);\n}\n\n// addMeta overrides or adds fields but does not remove any\nexport function addMeta(obj: Record<string, unknown>): void {\n loggerInternal.addMeta(obj);\n}\n\n// removeMeta removes the provided fields from meta\nexport function removeMeta(fields: string[]): void {\n loggerInternal.removeMeta(fields);\n}\n\nexport function withMeta<T>(obj: Record<string, unknown>, cb: () => T): T {\n addMeta(obj);\n try {\n return cb();\n } finally {\n removeMeta(Object.keys(obj));\n }\n}\n\nexport function addStream(stream: bunyan.Stream): void {\n loggerInternal.addStream(stream);\n}\n\n/**\n * For testing purposes only\n * @param name stream name\n * @param level log level\n * @private\n */\nexport function levels(\n name: 'stdout' | 'logfile',\n level: bunyan.LogLevelString,\n): void {\n bunyanLogger.levels(name, level);\n if (name === 'stdout') {\n stdoutLevel = level;\n }\n}\n\nexport function getProblems(): BunyanRecord[] {\n return problems.getProblems();\n}\n\nexport function clearProblems(): void {\n return problems.clearProblems();\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/logger/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNonEmptyStringAndNotWhitespace, isString } from '@sindresorhus/is';\nimport * as bunyan from 'bunyan';\nimport fs from 'fs-extra';\nimport { nanoid } from 'nanoid';\nimport upath from 'upath';\nimport cmdSerializer from './cmd-serializer';\nimport configSerializer from './config-serializer';\nimport errSerializer from './err-serializer';\nimport { RenovateStream } from './pretty-stdout';\nimport { RenovateLogger } from './renovate-logger';\nimport type { BunyanRecord, Logger } from './types';\nimport {\n ProblemStream,\n getEnv,\n validateLogLevel,\n withSanitizer,\n} from './utils';\n\nconst problems = new ProblemStream();\nlet stdoutLevel = validateLogLevel(getEnv('LOG_LEVEL'), 'info');\n\nexport function logLevel(): bunyan.LogLevelString {\n return stdoutLevel;\n}\n\nexport function createDefaultStreams(\n stdoutLevel: bunyan.LogLevelString,\n problems: ProblemStream,\n logFile: string | undefined,\n): bunyan.Stream[] {\n const stdout: bunyan.Stream = {\n name: 'stdout',\n level: stdoutLevel,\n stream: process.stdout,\n };\n\n if (getEnv('LOG_FORMAT') !== 'json') {\n // TODO: typings (#9615)\n const prettyStdOut = new RenovateStream() as any;\n prettyStdOut.pipe(process.stdout);\n stdout.stream = prettyStdOut;\n stdout.type = 'raw';\n }\n\n const problemsStream: bunyan.Stream = {\n name: 'problems',\n level: 'warn' as bunyan.LogLevel,\n stream: problems as any,\n type: 'raw',\n };\n\n const logFileStream: bunyan.Stream | undefined = isString(logFile)\n ? createLogFileStream(logFile)\n : undefined;\n\n return [stdout, problemsStream, logFileStream].filter(\n Boolean,\n ) as bunyan.Stream[];\n}\n\nfunction createLogFileStream(logFile: string): bunyan.Stream {\n // Ensure log file directory exists\n const directoryName = upath.dirname(logFile);\n fs.ensureDirSync(directoryName);\n\n const file: bunyan.Stream = {\n name: 'logfile',\n path: logFile,\n level: validateLogLevel(getEnv('LOG_FILE_LEVEL'), 'debug'),\n };\n\n const logFileFormat = getEnv('LOG_FILE_FORMAT');\n\n if (\n isNonEmptyStringAndNotWhitespace(logFileFormat) &&\n logFileFormat === 'pretty'\n ) {\n file.type = 'raw';\n }\n\n return file;\n}\n\nfunction serializedSanitizedLogger(streams: bunyan.Stream[]): bunyan {\n return bunyan.createLogger({\n name: 'renovate',\n serializers: {\n body: configSerializer,\n cmd: cmdSerializer,\n config: configSerializer,\n migratedConfig: configSerializer,\n originalConfig: configSerializer,\n presetConfig: configSerializer,\n oldConfig: configSerializer,\n newConfig: configSerializer,\n err: errSerializer,\n },\n streams: streams.map(withSanitizer),\n });\n}\n\nconst defaultStreams = createDefaultStreams(\n stdoutLevel,\n problems,\n getEnv('LOG_FILE'),\n);\n\nconst bunyanLogger = serializedSanitizedLogger(defaultStreams);\nconst logContext = getEnv('LOG_CONTEXT') ?? nanoid();\nconst loggerInternal = new RenovateLogger(bunyanLogger, logContext, {});\n\nexport const logger: Logger = loggerInternal;\n\nexport function setContext(value: string): void {\n loggerInternal.logContext = value;\n}\n\nexport function getContext(): any {\n return loggerInternal.logContext;\n}\n\n// setMeta overrides existing meta, may remove fields if no longer existing\nexport function setMeta(obj: Record<string, unknown>): void {\n loggerInternal.setMeta(obj);\n}\n\n// addMeta overrides or adds fields but does not remove any\nexport function addMeta(obj: Record<string, unknown>): void {\n loggerInternal.addMeta(obj);\n}\n\n// removeMeta removes the provided fields from meta\nexport function removeMeta(fields: string[]): void {\n loggerInternal.removeMeta(fields);\n}\n\nexport function withMeta<T>(obj: Record<string, unknown>, cb: () => T): T {\n addMeta(obj);\n try {\n return cb();\n } finally {\n removeMeta(Object.keys(obj));\n }\n}\n\nexport function addStream(stream: bunyan.Stream): void {\n loggerInternal.addStream(stream);\n}\n\n/**\n * For testing purposes only\n * @param name stream name\n * @param level log level\n * @private\n */\nexport function levels(\n name: 'stdout' | 'logfile',\n level: bunyan.LogLevelString,\n): void {\n bunyanLogger.levels(name, level);\n if (name === 'stdout') {\n stdoutLevel = level;\n }\n}\n\nexport function getProblems(): BunyanRecord[] {\n return problems.getProblems();\n}\n\nexport function clearProblems(): void {\n return problems.clearProblems();\n}\n"]}
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RenovateLogger = void 0;
4
- const tslib_1 = require("tslib");
5
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
4
+ const is_1 = require("@sindresorhus/is");
6
5
  const once_1 = require("./once");
7
6
  const remap_1 = require("./remap");
8
7
  const utils_1 = require("./utils");
@@ -84,7 +83,7 @@ class RenovateLogger {
84
83
  };
85
84
  const msg = (0, utils_1.getMessage)(p1, p2);
86
85
  let level = _level;
87
- if (is_1.default.string(msg)) {
86
+ if ((0, is_1.isString)(msg)) {
88
87
  const remappedLevel = (0, remap_1.getRemappedLevel)(msg);
89
88
  /* v8 ignore next 4 -- not easily testable */
90
89
  if (remappedLevel) {
@@ -102,7 +101,7 @@ class RenovateLogger {
102
101
  const logOnceFn = (p1, p2) => {
103
102
  (0, once_1.once)(() => {
104
103
  const logFn = this[level].bind(this); // bind to the instance.
105
- if (is_1.default.string(p1)) {
104
+ if ((0, is_1.isString)(p1)) {
106
105
  logFn(p1);
107
106
  }
108
107
  else {
@@ -114,7 +113,7 @@ class RenovateLogger {
114
113
  }
115
114
  log(level, p1, p2) {
116
115
  const logFn = this.logger[level];
117
- if (is_1.default.string(p1)) {
116
+ if ((0, is_1.isString)(p1)) {
118
117
  logFn(p1);
119
118
  }
120
119
  else {