renovate 42.4.0 → 42.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (708) 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/options/index.js +7 -0
  92. package/dist/config/options/index.js.map +1 -1
  93. package/dist/config/presets/github/index.js +2 -3
  94. package/dist/config/presets/github/index.js.map +1 -1
  95. package/dist/config/presets/gitlab/index.js +2 -3
  96. package/dist/config/presets/gitlab/index.js.map +1 -1
  97. package/dist/config/presets/index.js +8 -8
  98. package/dist/config/presets/index.js.map +1 -1
  99. package/dist/config/presets/parse.js +2 -3
  100. package/dist/config/presets/parse.js.map +1 -1
  101. package/dist/config/secrets.js +3 -4
  102. package/dist/config/secrets.js.map +1 -1
  103. package/dist/config/types.d.ts +1 -0
  104. package/dist/config/types.js.map +1 -1
  105. package/dist/config/validation-helpers/match-base-branches.js +2 -3
  106. package/dist/config/validation-helpers/match-base-branches.js.map +1 -1
  107. package/dist/config/validation-helpers/regex-glob-matchers.js +2 -3
  108. package/dist/config/validation-helpers/regex-glob-matchers.js.map +1 -1
  109. package/dist/config/validation-helpers/utils.js +6 -6
  110. package/dist/config/validation-helpers/utils.js.map +1 -1
  111. package/dist/config/validation.js +29 -29
  112. package/dist/config/validation.js.map +1 -1
  113. package/dist/instrumentation/reporting.js +7 -8
  114. package/dist/instrumentation/reporting.js.map +1 -1
  115. package/dist/instrumentation/utils.js +2 -3
  116. package/dist/instrumentation/utils.js.map +1 -1
  117. package/dist/logger/err-serializer.js +2 -2
  118. package/dist/logger/err-serializer.js.map +1 -1
  119. package/dist/logger/index.js +3 -3
  120. package/dist/logger/index.js.map +1 -1
  121. package/dist/logger/renovate-logger.js +4 -5
  122. package/dist/logger/renovate-logger.js.map +1 -1
  123. package/dist/logger/utils.js +19 -19
  124. package/dist/logger/utils.js.map +1 -1
  125. package/dist/modules/datasource/aws-eks-addon/index.js +2 -2
  126. package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -1
  127. package/dist/modules/datasource/bazel/index.js +2 -2
  128. package/dist/modules/datasource/bazel/index.js.map +1 -1
  129. package/dist/modules/datasource/bitrise/index.js +2 -2
  130. package/dist/modules/datasource/bitrise/index.js.map +1 -1
  131. package/dist/modules/datasource/common.js +4 -4
  132. package/dist/modules/datasource/common.js.map +1 -1
  133. package/dist/modules/datasource/conan/index.js +3 -3
  134. package/dist/modules/datasource/conan/index.js.map +1 -1
  135. package/dist/modules/datasource/custom/formats/html.js +2 -5
  136. package/dist/modules/datasource/custom/formats/html.js.map +1 -1
  137. package/dist/modules/datasource/custom/index.js +2 -3
  138. package/dist/modules/datasource/custom/index.js.map +1 -1
  139. package/dist/modules/datasource/custom/utils.js +4 -4
  140. package/dist/modules/datasource/custom/utils.js.map +1 -1
  141. package/dist/modules/datasource/dart-version/index.js +2 -3
  142. package/dist/modules/datasource/dart-version/index.js.map +1 -1
  143. package/dist/modules/datasource/deno/index.js +2 -2
  144. package/dist/modules/datasource/deno/index.js.map +1 -1
  145. package/dist/modules/datasource/docker/common.js +5 -5
  146. package/dist/modules/datasource/docker/common.js.map +1 -1
  147. package/dist/modules/datasource/docker/index.js +6 -6
  148. package/dist/modules/datasource/docker/index.js.map +1 -1
  149. package/dist/modules/datasource/endoflife-date/index.js +2 -2
  150. package/dist/modules/datasource/endoflife-date/index.js.map +1 -1
  151. package/dist/modules/datasource/galaxy/index.js +2 -2
  152. package/dist/modules/datasource/galaxy/index.js.map +1 -1
  153. package/dist/modules/datasource/galaxy-collection/index.js +2 -2
  154. package/dist/modules/datasource/galaxy-collection/index.js.map +1 -1
  155. package/dist/modules/datasource/git-refs/base.js +2 -2
  156. package/dist/modules/datasource/git-refs/base.js.map +1 -1
  157. package/dist/modules/datasource/github-release-attachments/index.js +2 -2
  158. package/dist/modules/datasource/github-release-attachments/index.js.map +1 -1
  159. package/dist/modules/datasource/github-releases/index.js +2 -3
  160. package/dist/modules/datasource/github-releases/index.js.map +1 -1
  161. package/dist/modules/datasource/github-tags/index.js +2 -3
  162. package/dist/modules/datasource/github-tags/index.js.map +1 -1
  163. package/dist/modules/datasource/go/goproxy-parser.js +3 -3
  164. package/dist/modules/datasource/go/goproxy-parser.js.map +1 -1
  165. package/dist/modules/datasource/go/index.js +2 -2
  166. package/dist/modules/datasource/go/index.js.map +1 -1
  167. package/dist/modules/datasource/go/releases-goproxy.js +3 -3
  168. package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
  169. package/dist/modules/datasource/hackage/index.js +2 -2
  170. package/dist/modules/datasource/hackage/index.js.map +1 -1
  171. package/dist/modules/datasource/hex/schema.js +2 -3
  172. package/dist/modules/datasource/hex/schema.js.map +1 -1
  173. package/dist/modules/datasource/hexpm-bob/index.js +2 -2
  174. package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
  175. package/dist/modules/datasource/index.js +14 -14
  176. package/dist/modules/datasource/index.js.map +1 -1
  177. package/dist/modules/datasource/jsr/index.js +2 -2
  178. package/dist/modules/datasource/jsr/index.js.map +1 -1
  179. package/dist/modules/datasource/jsr/util.js +3 -4
  180. package/dist/modules/datasource/jsr/util.js.map +1 -1
  181. package/dist/modules/datasource/metadata.js +5 -5
  182. package/dist/modules/datasource/metadata.js.map +1 -1
  183. package/dist/modules/datasource/npm/get.js +2 -2
  184. package/dist/modules/datasource/npm/get.js.map +1 -1
  185. package/dist/modules/datasource/npm/npmrc.js +7 -7
  186. package/dist/modules/datasource/npm/npmrc.js.map +1 -1
  187. package/dist/modules/datasource/nuget/v3.js +2 -2
  188. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  189. package/dist/modules/datasource/packagist/index.js +2 -2
  190. package/dist/modules/datasource/packagist/index.js.map +1 -1
  191. package/dist/modules/datasource/packagist/schema.js +3 -4
  192. package/dist/modules/datasource/packagist/schema.js.map +1 -1
  193. package/dist/modules/datasource/pypi/index.js +2 -2
  194. package/dist/modules/datasource/pypi/index.js.map +1 -1
  195. package/dist/modules/datasource/repology/index.js +3 -3
  196. package/dist/modules/datasource/repology/index.js.map +1 -1
  197. package/dist/modules/datasource/rubygems/schema.js +5 -6
  198. package/dist/modules/datasource/rubygems/schema.js.map +1 -1
  199. package/dist/modules/datasource/util.js +2 -3
  200. package/dist/modules/datasource/util.js.map +1 -1
  201. package/dist/modules/manager/argocd/extract.js +3 -4
  202. package/dist/modules/manager/argocd/extract.js.map +1 -1
  203. package/dist/modules/manager/asdf/extract.js +2 -3
  204. package/dist/modules/manager/asdf/extract.js.map +1 -1
  205. package/dist/modules/manager/bazel/artifacts.js +2 -2
  206. package/dist/modules/manager/bazel/artifacts.js.map +1 -1
  207. package/dist/modules/manager/bazel/common.js +4 -5
  208. package/dist/modules/manager/bazel/common.js.map +1 -1
  209. package/dist/modules/manager/bazel/rules/http.js +3 -4
  210. package/dist/modules/manager/bazel/rules/http.js.map +1 -1
  211. package/dist/modules/manager/bazel/rules/maven.js +2 -3
  212. package/dist/modules/manager/bazel/rules/maven.js.map +1 -1
  213. package/dist/modules/manager/bazel-module/parser/starlark.js +2 -3
  214. package/dist/modules/manager/bazel-module/parser/starlark.js.map +1 -1
  215. package/dist/modules/manager/bazel-module/rules.js +3 -3
  216. package/dist/modules/manager/bazel-module/rules.js.map +1 -1
  217. package/dist/modules/manager/bitrise/utils.js +3 -4
  218. package/dist/modules/manager/bitrise/utils.js.map +1 -1
  219. package/dist/modules/manager/buildpacks/extract.js +2 -3
  220. package/dist/modules/manager/buildpacks/extract.js.map +1 -1
  221. package/dist/modules/manager/bun/artifacts.js +2 -2
  222. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  223. package/dist/modules/manager/bun/extract.js +2 -3
  224. package/dist/modules/manager/bun/extract.js.map +1 -1
  225. package/dist/modules/manager/bundler/artifacts.js +3 -3
  226. package/dist/modules/manager/bundler/artifacts.js.map +1 -1
  227. package/dist/modules/manager/bundler/extract.js +5 -6
  228. package/dist/modules/manager/bundler/extract.js.map +1 -1
  229. package/dist/modules/manager/cargo/extract.js +3 -4
  230. package/dist/modules/manager/cargo/extract.js.map +1 -1
  231. package/dist/modules/manager/composer/artifacts.js +3 -3
  232. package/dist/modules/manager/composer/artifacts.js.map +1 -1
  233. package/dist/modules/manager/composer/utils.js +3 -4
  234. package/dist/modules/manager/composer/utils.js.map +1 -1
  235. package/dist/modules/manager/conan/extract.js +2 -3
  236. package/dist/modules/manager/conan/extract.js.map +1 -1
  237. package/dist/modules/manager/copier/utils.js +3 -4
  238. package/dist/modules/manager/copier/utils.js.map +1 -1
  239. package/dist/modules/manager/crow/extract.js +2 -3
  240. package/dist/modules/manager/crow/extract.js.map +1 -1
  241. package/dist/modules/manager/custom/jsonata/index.js +2 -3
  242. package/dist/modules/manager/custom/jsonata/index.js.map +1 -1
  243. package/dist/modules/manager/custom/jsonata/utils.js +3 -3
  244. package/dist/modules/manager/custom/jsonata/utils.js.map +1 -1
  245. package/dist/modules/manager/custom/regex/index.js +2 -3
  246. package/dist/modules/manager/custom/regex/index.js.map +1 -1
  247. package/dist/modules/manager/custom/regex/strategies.js +4 -5
  248. package/dist/modules/manager/custom/regex/strategies.js.map +1 -1
  249. package/dist/modules/manager/custom/regex/utils.js +2 -2
  250. package/dist/modules/manager/custom/regex/utils.js.map +1 -1
  251. package/dist/modules/manager/custom/utils.js +6 -7
  252. package/dist/modules/manager/custom/utils.js.map +1 -1
  253. package/dist/modules/manager/deps-edn/extract.js +13 -14
  254. package/dist/modules/manager/deps-edn/extract.js.map +1 -1
  255. package/dist/modules/manager/deps-edn/parser.js +2 -2
  256. package/dist/modules/manager/deps-edn/parser.js.map +1 -1
  257. package/dist/modules/manager/devbox/artifacts.js +2 -2
  258. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  259. package/dist/modules/manager/docker-compose/extract.js +3 -4
  260. package/dist/modules/manager/docker-compose/extract.js.map +1 -1
  261. package/dist/modules/manager/docker-compose/schema.js +2 -3
  262. package/dist/modules/manager/docker-compose/schema.js.map +1 -1
  263. package/dist/modules/manager/dockerfile/extract.js +5 -5
  264. package/dist/modules/manager/dockerfile/extract.js.map +1 -1
  265. package/dist/modules/manager/fingerprint.generated.js +5 -5
  266. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  267. package/dist/modules/manager/fleet/extract.js +2 -3
  268. package/dist/modules/manager/fleet/extract.js.map +1 -1
  269. package/dist/modules/manager/flux/extract.js +2 -3
  270. package/dist/modules/manager/flux/extract.js.map +1 -1
  271. package/dist/modules/manager/glasskube/extract.js +2 -3
  272. package/dist/modules/manager/glasskube/extract.js.map +1 -1
  273. package/dist/modules/manager/gleam/artifacts.js +3 -4
  274. package/dist/modules/manager/gleam/artifacts.js.map +1 -1
  275. package/dist/modules/manager/gomod/artifacts.js +2 -2
  276. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  277. package/dist/modules/manager/gradle/artifacts.js +2 -2
  278. package/dist/modules/manager/gradle/artifacts.js.map +1 -1
  279. package/dist/modules/manager/gradle/extract/catalog.js +5 -5
  280. package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
  281. package/dist/modules/manager/gradle-wrapper/artifacts.js +2 -2
  282. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  283. package/dist/modules/manager/helm-requirements/extract.js +2 -3
  284. package/dist/modules/manager/helm-requirements/extract.js.map +1 -1
  285. package/dist/modules/manager/helmfile/artifacts.js +2 -3
  286. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  287. package/dist/modules/manager/helmfile/extract.js +4 -5
  288. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  289. package/dist/modules/manager/helmsman/extract.js +4 -5
  290. package/dist/modules/manager/helmsman/extract.js.map +1 -1
  291. package/dist/modules/manager/helmv3/artifacts.js +4 -4
  292. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  293. package/dist/modules/manager/helmv3/extract.js +4 -5
  294. package/dist/modules/manager/helmv3/extract.js.map +1 -1
  295. package/dist/modules/manager/helmv3/oci.js +3 -4
  296. package/dist/modules/manager/helmv3/oci.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/utils.js +8 -10
  374. package/dist/modules/manager/pep621/utils.js.map +1 -1
  375. package/dist/modules/manager/pep723/schema.js +2 -3
  376. package/dist/modules/manager/pep723/schema.js.map +1 -1
  377. package/dist/modules/manager/pip-compile/common.js +3 -3
  378. package/dist/modules/manager/pip-compile/common.js.map +1 -1
  379. package/dist/modules/manager/pip_requirements/artifacts.js +2 -3
  380. package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
  381. package/dist/modules/manager/pip_requirements/extract.js +2 -3
  382. package/dist/modules/manager/pip_requirements/extract.js.map +1 -1
  383. package/dist/modules/manager/pipenv/artifacts.js +3 -4
  384. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  385. package/dist/modules/manager/pipenv/extract.js +6 -7
  386. package/dist/modules/manager/pipenv/extract.js.map +1 -1
  387. package/dist/modules/manager/pixi/artifacts.js +2 -3
  388. package/dist/modules/manager/pixi/artifacts.js.map +1 -1
  389. package/dist/modules/manager/pixi/extract.js +2 -3
  390. package/dist/modules/manager/pixi/extract.js.map +1 -1
  391. package/dist/modules/manager/poetry/artifacts.js +4 -5
  392. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  393. package/dist/modules/manager/poetry/extract.js +2 -3
  394. package/dist/modules/manager/poetry/extract.js.map +1 -1
  395. package/dist/modules/manager/pre-commit/extract.js +4 -5
  396. package/dist/modules/manager/pre-commit/extract.js.map +1 -1
  397. package/dist/modules/manager/pub/artifacts.js +3 -4
  398. package/dist/modules/manager/pub/artifacts.js.map +1 -1
  399. package/dist/modules/manager/pub/extract.js +8 -11
  400. package/dist/modules/manager/pub/extract.js.map +1 -1
  401. package/dist/modules/manager/renovate-config-presets/extract.js +4 -5
  402. package/dist/modules/manager/renovate-config-presets/extract.js.map +1 -1
  403. package/dist/modules/manager/tekton/extract.js +9 -10
  404. package/dist/modules/manager/tekton/extract.js.map +1 -1
  405. package/dist/modules/manager/terraform/base.js +2 -3
  406. package/dist/modules/manager/terraform/base.js.map +1 -1
  407. package/dist/modules/manager/terraform/extract.js +2 -2
  408. package/dist/modules/manager/terraform/extract.js.map +1 -1
  409. package/dist/modules/manager/terraform/extractors/others/modules.js +3 -4
  410. package/dist/modules/manager/terraform/extractors/others/modules.js.map +1 -1
  411. package/dist/modules/manager/terraform/extractors/others/providers.js +3 -4
  412. package/dist/modules/manager/terraform/extractors/others/providers.js.map +1 -1
  413. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js +7 -8
  414. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js.map +1 -1
  415. package/dist/modules/manager/terraform/extractors/resources/helm-release.js +5 -6
  416. package/dist/modules/manager/terraform/extractors/resources/helm-release.js.map +1 -1
  417. package/dist/modules/manager/terraform/extractors/resources/terraform-workspace.js +3 -4
  418. package/dist/modules/manager/terraform/extractors/resources/terraform-workspace.js.map +1 -1
  419. package/dist/modules/manager/terraform/extractors/terraform-block/required-provider.js +4 -5
  420. package/dist/modules/manager/terraform/extractors/terraform-block/required-provider.js.map +1 -1
  421. package/dist/modules/manager/terraform/extractors/terraform-block/terraform-version.js +3 -3
  422. package/dist/modules/manager/terraform/extractors/terraform-block/terraform-version.js.map +1 -1
  423. package/dist/modules/manager/terraform/lockfile/index.js +2 -2
  424. package/dist/modules/manager/terraform/lockfile/index.js.map +1 -1
  425. package/dist/modules/manager/terraform/lockfile/util.js +2 -3
  426. package/dist/modules/manager/terraform/lockfile/util.js.map +1 -1
  427. package/dist/modules/manager/terraform/util.js +2 -3
  428. package/dist/modules/manager/terraform/util.js.map +1 -1
  429. package/dist/modules/manager/tflint-plugin/plugins.js +2 -3
  430. package/dist/modules/manager/tflint-plugin/plugins.js.map +1 -1
  431. package/dist/modules/manager/travis/extract.js +5 -6
  432. package/dist/modules/manager/travis/extract.js.map +1 -1
  433. package/dist/modules/manager/woodpecker/extract.js +2 -3
  434. package/dist/modules/manager/woodpecker/extract.js.map +1 -1
  435. package/dist/modules/platform/azure/index.js +2 -2
  436. package/dist/modules/platform/azure/index.js.map +1 -1
  437. package/dist/modules/platform/bitbucket/index.js +5 -5
  438. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  439. package/dist/modules/platform/bitbucket-server/pr-cache.js +2 -2
  440. package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -1
  441. package/dist/modules/platform/bitbucket-server/utils.js +2 -2
  442. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  443. package/dist/modules/platform/codecommit/codecommit-client.js +2 -2
  444. package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
  445. package/dist/modules/platform/forgejo/index.js +5 -5
  446. package/dist/modules/platform/forgejo/index.js.map +1 -1
  447. package/dist/modules/platform/forgejo/utils.js +2 -2
  448. package/dist/modules/platform/forgejo/utils.js.map +1 -1
  449. package/dist/modules/platform/gitea/index.js +5 -5
  450. package/dist/modules/platform/gitea/index.js.map +1 -1
  451. package/dist/modules/platform/gitea/utils.js +2 -2
  452. package/dist/modules/platform/gitea/utils.js.map +1 -1
  453. package/dist/modules/platform/github/common.js +4 -5
  454. package/dist/modules/platform/github/common.js.map +1 -1
  455. package/dist/modules/platform/github/index.js +5 -5
  456. package/dist/modules/platform/github/index.js.map +1 -1
  457. package/dist/modules/platform/github/pr.js +2 -3
  458. package/dist/modules/platform/github/pr.js.map +1 -1
  459. package/dist/modules/platform/gitlab/http.js +2 -3
  460. package/dist/modules/platform/gitlab/http.js.map +1 -1
  461. package/dist/modules/platform/gitlab/index.js +3 -3
  462. package/dist/modules/platform/gitlab/index.js.map +1 -1
  463. package/dist/modules/platform/gitlab/utils.js +3 -3
  464. package/dist/modules/platform/gitlab/utils.js.map +1 -1
  465. package/dist/modules/platform/pr-body.js +2 -3
  466. package/dist/modules/platform/pr-body.js.map +1 -1
  467. package/dist/modules/versioning/composer/index.js +2 -3
  468. package/dist/modules/versioning/composer/index.js.map +1 -1
  469. package/dist/modules/versioning/generic.js +5 -6
  470. package/dist/modules/versioning/generic.js.map +1 -1
  471. package/dist/modules/versioning/gradle/compare.js +3 -4
  472. package/dist/modules/versioning/gradle/compare.js.map +1 -1
  473. package/dist/modules/versioning/nixpkgs/index.js +6 -7
  474. package/dist/modules/versioning/nixpkgs/index.js.map +1 -1
  475. package/dist/modules/versioning/npm/range.js +2 -2
  476. package/dist/modules/versioning/npm/range.js.map +1 -1
  477. package/dist/modules/versioning/rpm/index.js +4 -5
  478. package/dist/modules/versioning/rpm/index.js.map +1 -1
  479. package/dist/modules/versioning/schema.js +2 -2
  480. package/dist/modules/versioning/schema.js.map +1 -1
  481. package/dist/modules/versioning/semver-coerced/index.js +3 -3
  482. package/dist/modules/versioning/semver-coerced/index.js.map +1 -1
  483. package/dist/modules/versioning/semver-partial/index.js +4 -4
  484. package/dist/modules/versioning/semver-partial/index.js.map +1 -1
  485. package/dist/proxy.js +3 -4
  486. package/dist/proxy.js.map +1 -1
  487. package/dist/util/array.js +4 -5
  488. package/dist/util/array.js.map +1 -1
  489. package/dist/util/assign-keys.js +2 -3
  490. package/dist/util/assign-keys.js.map +1 -1
  491. package/dist/util/cache/package/decorator.js +6 -6
  492. package/dist/util/cache/package/decorator.js.map +1 -1
  493. package/dist/util/cache/package/ttl.js +4 -5
  494. package/dist/util/cache/package/ttl.js.map +1 -1
  495. package/dist/util/cache/repository/impl/base.js +3 -4
  496. package/dist/util/cache/repository/impl/base.js.map +1 -1
  497. package/dist/util/cache/repository/impl/s3.js +2 -3
  498. package/dist/util/cache/repository/impl/s3.js.map +1 -1
  499. package/dist/util/exec/common.js +2 -3
  500. package/dist/util/exec/common.js.map +1 -1
  501. package/dist/util/exec/containerbase.js +2 -2
  502. package/dist/util/exec/containerbase.js.map +1 -1
  503. package/dist/util/exec/docker/index.js +5 -5
  504. package/dist/util/exec/docker/index.js.map +1 -1
  505. package/dist/util/exec/index.js +2 -2
  506. package/dist/util/exec/index.js.map +1 -1
  507. package/dist/util/exec/utils.js +3 -4
  508. package/dist/util/exec/utils.js.map +1 -1
  509. package/dist/util/filter-map.js +2 -3
  510. package/dist/util/filter-map.js.map +1 -1
  511. package/dist/util/fs/index.js +3 -3
  512. package/dist/util/fs/index.js.map +1 -1
  513. package/dist/util/git/auth.js +2 -3
  514. package/dist/util/git/auth.js.map +1 -1
  515. package/dist/util/git/config.js +3 -4
  516. package/dist/util/git/config.js.map +1 -1
  517. package/dist/util/git/index.js +4 -4
  518. package/dist/util/git/index.js.map +1 -1
  519. package/dist/util/git/private-key.js +2 -2
  520. package/dist/util/git/private-key.js.map +1 -1
  521. package/dist/util/host-rules.js +6 -6
  522. package/dist/util/host-rules.js.map +1 -1
  523. package/dist/util/http/auth.js +3 -4
  524. package/dist/util/http/auth.js.map +1 -1
  525. package/dist/util/http/bitbucket-server.js +2 -3
  526. package/dist/util/http/bitbucket-server.js.map +1 -1
  527. package/dist/util/http/bitbucket.js +3 -4
  528. package/dist/util/http/bitbucket.js.map +1 -1
  529. package/dist/util/http/cache/package-http-cache-provider.js +2 -2
  530. package/dist/util/http/cache/package-http-cache-provider.js.map +1 -1
  531. package/dist/util/http/forgejo.js +3 -4
  532. package/dist/util/http/forgejo.js.map +1 -1
  533. package/dist/util/http/gitea.js +3 -4
  534. package/dist/util/http/gitea.js.map +1 -1
  535. package/dist/util/http/github.js +10 -10
  536. package/dist/util/http/github.js.map +1 -1
  537. package/dist/util/http/gitlab.js +4 -5
  538. package/dist/util/http/gitlab.js.map +1 -1
  539. package/dist/util/http/host-rules.js +10 -10
  540. package/dist/util/http/host-rules.js.map +1 -1
  541. package/dist/util/http/http.js +5 -5
  542. package/dist/util/http/http.js.map +1 -1
  543. package/dist/util/http/rate-limits.js +3 -3
  544. package/dist/util/http/rate-limits.js.map +1 -1
  545. package/dist/util/interpolator.js +8 -9
  546. package/dist/util/interpolator.js.map +1 -1
  547. package/dist/util/merge-confidence/index.js +5 -5
  548. package/dist/util/merge-confidence/index.js.map +1 -1
  549. package/dist/util/number.js +2 -3
  550. package/dist/util/number.js.map +1 -1
  551. package/dist/util/package-rules/base-branches.js +3 -4
  552. package/dist/util/package-rules/base-branches.js.map +1 -1
  553. package/dist/util/package-rules/categories.js +3 -4
  554. package/dist/util/package-rules/categories.js.map +1 -1
  555. package/dist/util/package-rules/current-age.js +3 -4
  556. package/dist/util/package-rules/current-age.js.map +1 -1
  557. package/dist/util/package-rules/current-value.js +2 -3
  558. package/dist/util/package-rules/current-value.js.map +1 -1
  559. package/dist/util/package-rules/current-version.js +5 -5
  560. package/dist/util/package-rules/current-version.js.map +1 -1
  561. package/dist/util/package-rules/datasources.js +3 -4
  562. package/dist/util/package-rules/datasources.js.map +1 -1
  563. package/dist/util/package-rules/dep-names.js +3 -4
  564. package/dist/util/package-rules/dep-names.js.map +1 -1
  565. package/dist/util/package-rules/dep-types.js +2 -3
  566. package/dist/util/package-rules/dep-types.js.map +1 -1
  567. package/dist/util/package-rules/files.js +4 -5
  568. package/dist/util/package-rules/files.js.map +1 -1
  569. package/dist/util/package-rules/index.js +6 -6
  570. package/dist/util/package-rules/index.js.map +1 -1
  571. package/dist/util/package-rules/managers.js +3 -4
  572. package/dist/util/package-rules/managers.js.map +1 -1
  573. package/dist/util/package-rules/merge-confidence.js +5 -6
  574. package/dist/util/package-rules/merge-confidence.js.map +1 -1
  575. package/dist/util/package-rules/new-value.js +2 -3
  576. package/dist/util/package-rules/new-value.js.map +1 -1
  577. package/dist/util/package-rules/package-names.js +2 -3
  578. package/dist/util/package-rules/package-names.js.map +1 -1
  579. package/dist/util/package-rules/repositories.js +3 -4
  580. package/dist/util/package-rules/repositories.js.map +1 -1
  581. package/dist/util/package-rules/sourceurls.js +2 -3
  582. package/dist/util/package-rules/sourceurls.js.map +1 -1
  583. package/dist/util/package-rules/update-types.js +2 -3
  584. package/dist/util/package-rules/update-types.js.map +1 -1
  585. package/dist/util/pretty-time.js +4 -4
  586. package/dist/util/pretty-time.js.map +1 -1
  587. package/dist/util/regex.js +2 -3
  588. package/dist/util/regex.js.map +1 -1
  589. package/dist/util/s3.js +2 -3
  590. package/dist/util/s3.js.map +1 -1
  591. package/dist/util/sanitize.js +2 -3
  592. package/dist/util/sanitize.js.map +1 -1
  593. package/dist/util/string-match.js +2 -3
  594. package/dist/util/string-match.js.map +1 -1
  595. package/dist/util/template/index.js +6 -6
  596. package/dist/util/template/index.js.map +1 -1
  597. package/dist/util/url.js +5 -5
  598. package/dist/util/url.js.map +1 -1
  599. package/dist/workers/global/autodiscover.js +3 -4
  600. package/dist/workers/global/autodiscover.js.map +1 -1
  601. package/dist/workers/global/config/parse/additional-config-file.js +4 -4
  602. package/dist/workers/global/config/parse/additional-config-file.js.map +1 -1
  603. package/dist/workers/global/config/parse/coersions.js +2 -2
  604. package/dist/workers/global/config/parse/coersions.js.map +1 -1
  605. package/dist/workers/global/config/parse/env.js +2 -2
  606. package/dist/workers/global/config/parse/env.js.map +1 -1
  607. package/dist/workers/global/config/parse/file.js +5 -5
  608. package/dist/workers/global/config/parse/file.js.map +1 -1
  609. package/dist/workers/global/config/parse/index.js +6 -7
  610. package/dist/workers/global/config/parse/index.js.map +1 -1
  611. package/dist/workers/global/config/parse/util.js +2 -2
  612. package/dist/workers/global/config/parse/util.js.map +1 -1
  613. package/dist/workers/global/index.js +5 -5
  614. package/dist/workers/global/index.js.map +1 -1
  615. package/dist/workers/global/limits.js +6 -7
  616. package/dist/workers/global/limits.js.map +1 -1
  617. package/dist/workers/repository/config-migration/branch/index.js +2 -3
  618. package/dist/workers/repository/config-migration/branch/index.js.map +1 -1
  619. package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -2
  620. package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
  621. package/dist/workers/repository/config-migration/pr/index.js +3 -3
  622. package/dist/workers/repository/config-migration/pr/index.js.map +1 -1
  623. package/dist/workers/repository/dependency-dashboard.js +10 -10
  624. package/dist/workers/repository/dependency-dashboard.js.map +1 -1
  625. package/dist/workers/repository/error.js +6 -1
  626. package/dist/workers/repository/error.js.map +1 -1
  627. package/dist/workers/repository/extract/index.js +2 -3
  628. package/dist/workers/repository/extract/index.js.map +1 -1
  629. package/dist/workers/repository/extract/manager-files.js +2 -3
  630. package/dist/workers/repository/extract/manager-files.js.map +1 -1
  631. package/dist/workers/repository/extract/supersedes.js +4 -5
  632. package/dist/workers/repository/extract/supersedes.js.map +1 -1
  633. package/dist/workers/repository/finalize/prune.js +2 -3
  634. package/dist/workers/repository/finalize/prune.js.map +1 -1
  635. package/dist/workers/repository/init/inherited.js +5 -5
  636. package/dist/workers/repository/init/inherited.js.map +1 -1
  637. package/dist/workers/repository/init/merge.js +13 -13
  638. package/dist/workers/repository/init/merge.js.map +1 -1
  639. package/dist/workers/repository/model/commit-message.js +2 -3
  640. package/dist/workers/repository/model/commit-message.js.map +1 -1
  641. package/dist/workers/repository/onboarding/branch/index.js +2 -3
  642. package/dist/workers/repository/onboarding/branch/index.js.map +1 -1
  643. package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js +5 -6
  644. package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js.map +1 -1
  645. package/dist/workers/repository/onboarding/pr/config-description.js +2 -5
  646. package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
  647. package/dist/workers/repository/onboarding/pr/index.js +3 -3
  648. package/dist/workers/repository/onboarding/pr/index.js.map +1 -1
  649. package/dist/workers/repository/package-files.js +8 -9
  650. package/dist/workers/repository/package-files.js.map +1 -1
  651. package/dist/workers/repository/process/extract-update.js +2 -2
  652. package/dist/workers/repository/process/extract-update.js.map +1 -1
  653. package/dist/workers/repository/process/fetch.js +3 -3
  654. package/dist/workers/repository/process/fetch.js.map +1 -1
  655. package/dist/workers/repository/process/lookup/current.js +2 -3
  656. package/dist/workers/repository/process/lookup/current.js.map +1 -1
  657. package/dist/workers/repository/process/lookup/filter-checks.js +4 -5
  658. package/dist/workers/repository/process/lookup/filter-checks.js.map +1 -1
  659. package/dist/workers/repository/process/lookup/generate.js +2 -3
  660. package/dist/workers/repository/process/lookup/generate.js.map +1 -1
  661. package/dist/workers/repository/process/lookup/index.js +15 -16
  662. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  663. package/dist/workers/repository/process/lookup/utils.js +7 -7
  664. package/dist/workers/repository/process/lookup/utils.js.map +1 -1
  665. package/dist/workers/repository/process/vulnerabilities.js +11 -11
  666. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  667. package/dist/workers/repository/process/write.js +2 -3
  668. package/dist/workers/repository/process/write.js.map +1 -1
  669. package/dist/workers/repository/reconfigure/comment.js +2 -5
  670. package/dist/workers/repository/reconfigure/comment.js.map +1 -1
  671. package/dist/workers/repository/reconfigure/utils.js +2 -3
  672. package/dist/workers/repository/reconfigure/utils.js.map +1 -1
  673. package/dist/workers/repository/reconfigure/validate.js +2 -3
  674. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  675. package/dist/workers/repository/update/branch/auto-replace.js +4 -5
  676. package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
  677. package/dist/workers/repository/update/branch/commit.js +3 -4
  678. package/dist/workers/repository/update/branch/commit.js.map +1 -1
  679. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +12 -5
  680. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  681. package/dist/workers/repository/update/branch/get-updated.js +8 -9
  682. package/dist/workers/repository/update/branch/get-updated.js.map +1 -1
  683. package/dist/workers/repository/update/branch/index.js +3 -3
  684. package/dist/workers/repository/update/branch/index.js.map +1 -1
  685. package/dist/workers/repository/update/branch/schedule.js +2 -2
  686. package/dist/workers/repository/update/branch/schedule.js.map +1 -1
  687. package/dist/workers/repository/update/pr/body/notes.js +2 -2
  688. package/dist/workers/repository/update/pr/body/notes.js.map +1 -1
  689. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +2 -2
  690. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  691. package/dist/workers/repository/update/pr/changelog/index.js +3 -3
  692. package/dist/workers/repository/update/pr/changelog/index.js.map +1 -1
  693. package/dist/workers/repository/update/pr/changelog/release-notes.js +4 -4
  694. package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
  695. package/dist/workers/repository/update/pr/changelog/source.js +8 -8
  696. package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
  697. package/dist/workers/repository/update/pr/code-owners.js +2 -2
  698. package/dist/workers/repository/update/pr/code-owners.js.map +1 -1
  699. package/dist/workers/repository/update/pr/index.js +7 -8
  700. package/dist/workers/repository/update/pr/index.js.map +1 -1
  701. package/dist/workers/repository/update/pr/labels.js +4 -4
  702. package/dist/workers/repository/update/pr/labels.js.map +1 -1
  703. package/dist/workers/repository/update/pr/participants.js +4 -5
  704. package/dist/workers/repository/update/pr/participants.js.map +1 -1
  705. package/dist/workers/repository/updates/generate.js +4 -4
  706. package/dist/workers/repository/updates/generate.js.map +1 -1
  707. package/package.json +3 -3
  708. package/renovate-schema.json +7 -2
@@ -7,7 +7,7 @@ exports.parseKustomize = parseKustomize;
7
7
  exports.extractPackageFile = extractPackageFile;
8
8
  const tslib_1 = require("tslib");
9
9
  const node_querystring_1 = tslib_1.__importDefault(require("node:querystring"));
10
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
10
+ const is_1 = require("@sindresorhus/is");
11
11
  const logger_1 = require("../../../logger");
12
12
  const array_1 = require("../../../util/array");
13
13
  const regex_1 = require("../../../util/regex");
@@ -72,7 +72,7 @@ function extractImage(image, aliases) {
72
72
  return null;
73
73
  }
74
74
  const nameToSplit = image.newName ?? image.name;
75
- if (!is_1.default.string(nameToSplit)) {
75
+ if (!(0, is_1.isString)(nameToSplit)) {
76
76
  logger_1.logger.debug({ image }, 'Invalid image name');
77
77
  return null;
78
78
  }
@@ -89,7 +89,7 @@ function extractImage(image, aliases) {
89
89
  };
90
90
  }
91
91
  if (digest) {
92
- if (!is_1.default.string(digest) || !digest.startsWith('sha256:')) {
92
+ if (!(0, is_1.isString)(digest) || !digest.startsWith('sha256:')) {
93
93
  return {
94
94
  depName,
95
95
  currentValue: digest,
@@ -103,7 +103,7 @@ function extractImage(image, aliases) {
103
103
  };
104
104
  }
105
105
  if (newTag) {
106
- if (!is_1.default.string(newTag) || newTag.startsWith('sha256:')) {
106
+ if (!(0, is_1.isString)(newTag) || newTag.startsWith('sha256:')) {
107
107
  return {
108
108
  depName,
109
109
  currentValue: newTag,
@@ -156,7 +156,7 @@ function parseKustomize(content, packageFile) {
156
156
  logger_1.logger.debug({ packageFile }, 'Error parsing kustomize file');
157
157
  return null;
158
158
  }
159
- if (!pkg || is_1.default.string(pkg)) {
159
+ if (!pkg || (0, is_1.isString)(pkg)) {
160
160
  return null;
161
161
  }
162
162
  pkg.kind ??= 'Kustomization';
@@ -173,7 +173,7 @@ function extractPackageFile(content, packageFile, config) {
173
173
  return null;
174
174
  }
175
175
  // grab the remote bases
176
- for (const base of (0, array_1.coerceArray)(pkg.bases).filter(is_1.default.string)) {
176
+ for (const base of (0, array_1.coerceArray)(pkg.bases).filter(is_1.isString)) {
177
177
  const dep = extractResource(base);
178
178
  if (dep) {
179
179
  deps.push({
@@ -183,7 +183,7 @@ function extractPackageFile(content, packageFile, config) {
183
183
  }
184
184
  }
185
185
  // grab the remote resources
186
- for (const resource of (0, array_1.coerceArray)(pkg.resources).filter(is_1.default.string)) {
186
+ for (const resource of (0, array_1.coerceArray)(pkg.resources).filter(is_1.isString)) {
187
187
  const dep = extractResource(resource);
188
188
  if (dep) {
189
189
  deps.push({
@@ -193,7 +193,7 @@ function extractPackageFile(content, packageFile, config) {
193
193
  }
194
194
  }
195
195
  // grab the remote components
196
- for (const component of (0, array_1.coerceArray)(pkg.components).filter(is_1.default.string)) {
196
+ for (const component of (0, array_1.coerceArray)(pkg.components).filter(is_1.isString)) {
197
197
  const dep = extractResource(component);
198
198
  if (dep) {
199
199
  deps.push({
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kustomize/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import querystring from 'node:querystring';\nimport is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { regEx } from '../../../util/regex';\nimport { parseSingleYaml } from '../../../util/yaml';\nimport { GitTagsDatasource } from '../../datasource/git-tags';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport { HelmDatasource } from '../../datasource/helm';\nimport { getDep } from '../dockerfile/extract';\nimport { isOCIRegistry, removeOCIPrefix } from '../helmv3/oci';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport type { HelmChart, Image, Kustomize } from './types';\n\n// URL specifications should follow the hashicorp URL format\n// https://github.com/hashicorp/go-getter#url-format\nconst gitUrl = regEx(\n /^(?:git::)?(?<url>(?:(?:(?:http|https|ssh):\\/\\/)?(?:.*@)?)?(?<path>(?:[^:/\\s]+(?::[0-9]+)?[:/])?(?<project>[^/\\s]+\\/[^/\\s]+)))(?<subdir>[^?\\s]*)\\?(?<queryString>.+)$/,\n);\n// regex to match URLs with \".git\" delimiter\nconst dotGitRegex = regEx(\n /^(?:git::)?(?<url>(?:(?:(?:http|https|ssh):\\/\\/)?(?:.*@)?)?(?<path>(?:[^:/\\s]+(?::[0-9]+)?[:/])?(?<project>[^?\\s]*(\\.git))))(?<subdir>[^?\\s]*)\\?(?<queryString>.+)$/,\n);\n// regex to match URLs with \"_git\" delimiter\nconst underscoreGitRegex = regEx(\n /^(?:git::)?(?<url>(?:(?:(?:http|https|ssh):\\/\\/)?(?:.*@)?)?(?<path>(?:[^:/\\s]+(?::[0-9]+)?[:/])?(?<project>[^?\\s]*)(_git\\/[^/\\s]+)))(?<subdir>[^?\\s]*)\\?(?<queryString>.+)$/,\n);\n// regex to match URLs having an extra \"//\"\nconst gitUrlWithPath = regEx(\n /^(?:git::)?(?<url>(?:(?:(?:http|https|ssh):\\/\\/)?(?:.*@)?)?(?<path>(?:[^:/\\s]+(?::[0-9]+)?[:/])(?<project>[^?\\s]+)))(?:\\/\\/)(?<subdir>[^?\\s]+)\\?(?<queryString>.+)$/,\n);\n\nexport function extractResource(base: string): PackageDependency | null {\n let match: RegExpExecArray | null;\n\n if (base.includes('_git')) {\n match = underscoreGitRegex.exec(base);\n } else if (base.includes('.git')) {\n match = dotGitRegex.exec(base);\n } else if (gitUrlWithPath.test(base)) {\n match = gitUrlWithPath.exec(base);\n } else {\n match = gitUrl.exec(base);\n }\n\n if (!match?.groups) {\n return null;\n }\n\n const { path, queryString } = match.groups;\n const params = querystring.parse(queryString);\n const refParam = Array.isArray(params.ref) ? params.ref[0] : params.ref;\n const versionParam = Array.isArray(params.version)\n ? params.version[0]\n : params.version;\n const currentValue = refParam ?? versionParam;\n if (!currentValue) {\n return null;\n }\n\n if (regEx(/(?:github\\.com)(:|\\/)/).test(path)) {\n return {\n currentValue,\n datasource: GithubTagsDatasource.id,\n depName: match.groups.project.replace('.git', ''),\n };\n }\n\n return {\n datasource: GitTagsDatasource.id,\n depName: path.replace('.git', ''),\n packageName: match.groups.url,\n currentValue,\n };\n}\n\nexport function extractImage(\n image: Image,\n aliases?: Record<string, string>,\n): PackageDependency | null {\n if (!image.name) {\n return null;\n }\n const nameToSplit = image.newName ?? image.name;\n if (!is.string(nameToSplit)) {\n logger.debug({ image }, 'Invalid image name');\n return null;\n }\n const nameDep = getDep(nameToSplit, false, aliases);\n const { depName } = nameDep;\n const { digest, newTag } = image;\n if (digest && newTag) {\n logger.debug(\n { newTag, digest },\n 'Kustomize ignores newTag when digest is provided. Pick one, or use `newTag: tag@digest`',\n );\n return {\n depName,\n currentValue: newTag,\n currentDigest: digest,\n skipReason: 'invalid-dependency-specification',\n };\n }\n\n if (digest) {\n if (!is.string(digest) || !digest.startsWith('sha256:')) {\n return {\n depName,\n currentValue: digest,\n skipReason: 'invalid-value',\n };\n }\n\n return {\n ...nameDep,\n currentDigest: digest,\n replaceString: digest,\n };\n }\n\n if (newTag) {\n if (!is.string(newTag) || newTag.startsWith('sha256:')) {\n return {\n depName,\n currentValue: newTag,\n skipReason: 'invalid-value',\n };\n }\n\n const dep = getDep(`${depName}:${newTag}`, false, aliases);\n return {\n ...dep,\n replaceString: newTag,\n autoReplaceStringTemplate:\n '{{newValue}}{{#if newDigest}}@{{newDigest}}{{/if}}',\n };\n }\n\n if (image.newName) {\n return {\n ...nameDep,\n replaceString: image.newName,\n };\n }\n\n return null;\n}\n\nexport function extractHelmChart(\n helmChart: HelmChart,\n aliases?: Record<string, string>,\n): PackageDependency | null {\n if (!helmChart.name) {\n return null;\n }\n\n if (isOCIRegistry(helmChart.repo)) {\n const dep = getDep(\n `${removeOCIPrefix(helmChart.repo)}/${helmChart.name}:${helmChart.version}`,\n false,\n aliases,\n );\n return {\n ...dep,\n depName: helmChart.name,\n // https://github.com/helm/helm/issues/10312\n // https://github.com/helm/helm/issues/10678\n pinDigests: false,\n };\n }\n\n return {\n depName: helmChart.name,\n currentValue: helmChart.version,\n registryUrls: [helmChart.repo],\n datasource: HelmDatasource.id,\n };\n}\n\nexport function parseKustomize(\n content: string,\n packageFile?: string,\n): Kustomize | null {\n let pkg: Kustomize | null = null;\n try {\n // TODO: use schema (#9610)\n pkg = parseSingleYaml(content);\n } catch /* istanbul ignore next */ {\n logger.debug({ packageFile }, 'Error parsing kustomize file');\n return null;\n }\n\n if (!pkg || is.string(pkg)) {\n return null;\n }\n\n pkg.kind ??= 'Kustomization';\n\n if (!['Kustomization', 'Component'].includes(pkg.kind)) {\n return null;\n }\n\n return pkg;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageFileContent | null {\n logger.trace(`kustomize.extractPackageFile(${packageFile})`);\n const deps: PackageDependency[] = [];\n\n const pkg = parseKustomize(content, packageFile);\n if (!pkg) {\n return null;\n }\n\n // grab the remote bases\n for (const base of coerceArray(pkg.bases).filter(is.string)) {\n const dep = extractResource(base);\n if (dep) {\n deps.push({\n ...dep,\n depType: pkg.kind,\n });\n }\n }\n\n // grab the remote resources\n for (const resource of coerceArray(pkg.resources).filter(is.string)) {\n const dep = extractResource(resource);\n if (dep) {\n deps.push({\n ...dep,\n depType: pkg.kind,\n });\n }\n }\n\n // grab the remote components\n for (const component of coerceArray(pkg.components).filter(is.string)) {\n const dep = extractResource(component);\n if (dep) {\n deps.push({\n ...dep,\n depType: pkg.kind,\n });\n }\n }\n\n // grab the image tags\n for (const image of coerceArray(pkg.images)) {\n const dep = extractImage(image, config.registryAliases);\n if (dep) {\n deps.push({\n ...dep,\n depType: pkg.kind,\n });\n }\n }\n\n // grab the helm charts\n for (const helmChart of coerceArray(pkg.helmCharts)) {\n const dep = extractHelmChart(helmChart, config.registryAliases);\n if (dep) {\n deps.push({\n ...dep,\n depType: 'HelmChart',\n });\n }\n }\n\n if (!deps.length) {\n return null;\n }\n return { deps };\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kustomize/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import querystring from 'node:querystring';\nimport { isString } from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { regEx } from '../../../util/regex';\nimport { parseSingleYaml } from '../../../util/yaml';\nimport { GitTagsDatasource } from '../../datasource/git-tags';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport { HelmDatasource } from '../../datasource/helm';\nimport { getDep } from '../dockerfile/extract';\nimport { isOCIRegistry, removeOCIPrefix } from '../helmv3/oci';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport type { HelmChart, Image, Kustomize } from './types';\n\n// URL specifications should follow the hashicorp URL format\n// https://github.com/hashicorp/go-getter#url-format\nconst gitUrl = regEx(\n /^(?:git::)?(?<url>(?:(?:(?:http|https|ssh):\\/\\/)?(?:.*@)?)?(?<path>(?:[^:/\\s]+(?::[0-9]+)?[:/])?(?<project>[^/\\s]+\\/[^/\\s]+)))(?<subdir>[^?\\s]*)\\?(?<queryString>.+)$/,\n);\n// regex to match URLs with \".git\" delimiter\nconst dotGitRegex = regEx(\n /^(?:git::)?(?<url>(?:(?:(?:http|https|ssh):\\/\\/)?(?:.*@)?)?(?<path>(?:[^:/\\s]+(?::[0-9]+)?[:/])?(?<project>[^?\\s]*(\\.git))))(?<subdir>[^?\\s]*)\\?(?<queryString>.+)$/,\n);\n// regex to match URLs with \"_git\" delimiter\nconst underscoreGitRegex = regEx(\n /^(?:git::)?(?<url>(?:(?:(?:http|https|ssh):\\/\\/)?(?:.*@)?)?(?<path>(?:[^:/\\s]+(?::[0-9]+)?[:/])?(?<project>[^?\\s]*)(_git\\/[^/\\s]+)))(?<subdir>[^?\\s]*)\\?(?<queryString>.+)$/,\n);\n// regex to match URLs having an extra \"//\"\nconst gitUrlWithPath = regEx(\n /^(?:git::)?(?<url>(?:(?:(?:http|https|ssh):\\/\\/)?(?:.*@)?)?(?<path>(?:[^:/\\s]+(?::[0-9]+)?[:/])(?<project>[^?\\s]+)))(?:\\/\\/)(?<subdir>[^?\\s]+)\\?(?<queryString>.+)$/,\n);\n\nexport function extractResource(base: string): PackageDependency | null {\n let match: RegExpExecArray | null;\n\n if (base.includes('_git')) {\n match = underscoreGitRegex.exec(base);\n } else if (base.includes('.git')) {\n match = dotGitRegex.exec(base);\n } else if (gitUrlWithPath.test(base)) {\n match = gitUrlWithPath.exec(base);\n } else {\n match = gitUrl.exec(base);\n }\n\n if (!match?.groups) {\n return null;\n }\n\n const { path, queryString } = match.groups;\n const params = querystring.parse(queryString);\n const refParam = Array.isArray(params.ref) ? params.ref[0] : params.ref;\n const versionParam = Array.isArray(params.version)\n ? params.version[0]\n : params.version;\n const currentValue = refParam ?? versionParam;\n if (!currentValue) {\n return null;\n }\n\n if (regEx(/(?:github\\.com)(:|\\/)/).test(path)) {\n return {\n currentValue,\n datasource: GithubTagsDatasource.id,\n depName: match.groups.project.replace('.git', ''),\n };\n }\n\n return {\n datasource: GitTagsDatasource.id,\n depName: path.replace('.git', ''),\n packageName: match.groups.url,\n currentValue,\n };\n}\n\nexport function extractImage(\n image: Image,\n aliases?: Record<string, string>,\n): PackageDependency | null {\n if (!image.name) {\n return null;\n }\n const nameToSplit = image.newName ?? image.name;\n if (!isString(nameToSplit)) {\n logger.debug({ image }, 'Invalid image name');\n return null;\n }\n const nameDep = getDep(nameToSplit, false, aliases);\n const { depName } = nameDep;\n const { digest, newTag } = image;\n if (digest && newTag) {\n logger.debug(\n { newTag, digest },\n 'Kustomize ignores newTag when digest is provided. Pick one, or use `newTag: tag@digest`',\n );\n return {\n depName,\n currentValue: newTag,\n currentDigest: digest,\n skipReason: 'invalid-dependency-specification',\n };\n }\n\n if (digest) {\n if (!isString(digest) || !digest.startsWith('sha256:')) {\n return {\n depName,\n currentValue: digest,\n skipReason: 'invalid-value',\n };\n }\n\n return {\n ...nameDep,\n currentDigest: digest,\n replaceString: digest,\n };\n }\n\n if (newTag) {\n if (!isString(newTag) || newTag.startsWith('sha256:')) {\n return {\n depName,\n currentValue: newTag,\n skipReason: 'invalid-value',\n };\n }\n\n const dep = getDep(`${depName}:${newTag}`, false, aliases);\n return {\n ...dep,\n replaceString: newTag,\n autoReplaceStringTemplate:\n '{{newValue}}{{#if newDigest}}@{{newDigest}}{{/if}}',\n };\n }\n\n if (image.newName) {\n return {\n ...nameDep,\n replaceString: image.newName,\n };\n }\n\n return null;\n}\n\nexport function extractHelmChart(\n helmChart: HelmChart,\n aliases?: Record<string, string>,\n): PackageDependency | null {\n if (!helmChart.name) {\n return null;\n }\n\n if (isOCIRegistry(helmChart.repo)) {\n const dep = getDep(\n `${removeOCIPrefix(helmChart.repo)}/${helmChart.name}:${helmChart.version}`,\n false,\n aliases,\n );\n return {\n ...dep,\n depName: helmChart.name,\n // https://github.com/helm/helm/issues/10312\n // https://github.com/helm/helm/issues/10678\n pinDigests: false,\n };\n }\n\n return {\n depName: helmChart.name,\n currentValue: helmChart.version,\n registryUrls: [helmChart.repo],\n datasource: HelmDatasource.id,\n };\n}\n\nexport function parseKustomize(\n content: string,\n packageFile?: string,\n): Kustomize | null {\n let pkg: Kustomize | null = null;\n try {\n // TODO: use schema (#9610)\n pkg = parseSingleYaml(content);\n } catch /* istanbul ignore next */ {\n logger.debug({ packageFile }, 'Error parsing kustomize file');\n return null;\n }\n\n if (!pkg || isString(pkg)) {\n return null;\n }\n\n pkg.kind ??= 'Kustomization';\n\n if (!['Kustomization', 'Component'].includes(pkg.kind)) {\n return null;\n }\n\n return pkg;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageFileContent | null {\n logger.trace(`kustomize.extractPackageFile(${packageFile})`);\n const deps: PackageDependency[] = [];\n\n const pkg = parseKustomize(content, packageFile);\n if (!pkg) {\n return null;\n }\n\n // grab the remote bases\n for (const base of coerceArray(pkg.bases).filter(isString)) {\n const dep = extractResource(base);\n if (dep) {\n deps.push({\n ...dep,\n depType: pkg.kind,\n });\n }\n }\n\n // grab the remote resources\n for (const resource of coerceArray(pkg.resources).filter(isString)) {\n const dep = extractResource(resource);\n if (dep) {\n deps.push({\n ...dep,\n depType: pkg.kind,\n });\n }\n }\n\n // grab the remote components\n for (const component of coerceArray(pkg.components).filter(isString)) {\n const dep = extractResource(component);\n if (dep) {\n deps.push({\n ...dep,\n depType: pkg.kind,\n });\n }\n }\n\n // grab the image tags\n for (const image of coerceArray(pkg.images)) {\n const dep = extractImage(image, config.registryAliases);\n if (dep) {\n deps.push({\n ...dep,\n depType: pkg.kind,\n });\n }\n }\n\n // grab the helm charts\n for (const helmChart of coerceArray(pkg.helmCharts)) {\n const dep = extractHelmChart(helmChart, config.registryAliases);\n if (dep) {\n deps.push({\n ...dep,\n depType: 'HelmChart',\n });\n }\n }\n\n if (!deps.length) {\n return null;\n }\n return { deps };\n}\n"]}
@@ -7,7 +7,7 @@ exports.resolveParents = resolveParents;
7
7
  exports.extractExtensions = extractExtensions;
8
8
  exports.extractAllPackageFiles = extractAllPackageFiles;
9
9
  const tslib_1 = require("tslib");
10
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
10
+ const is_1 = require("@sindresorhus/is");
11
11
  const upath_1 = tslib_1.__importDefault(require("upath"));
12
12
  const xmldoc_1 = require("xmldoc");
13
13
  const logger_1 = require("../../../logger");
@@ -46,7 +46,7 @@ function parsePom(raw, packageFile) {
46
46
  if (attr.xmlns === 'http://maven.apache.org/POM/4.0.0') {
47
47
  return project;
48
48
  }
49
- if (is_1.default.nonEmptyArray(children) &&
49
+ if ((0, is_1.isNonEmptyArray)(children) &&
50
50
  children.some((c) => c.name === 'modelVersion' && c.val === '4.0.0')) {
51
51
  return project;
52
52
  }
@@ -68,7 +68,7 @@ function parseExtensions(raw, packageFile) {
68
68
  if (!supportedExtensionsNamespaces.includes(attr.xmlns)) {
69
69
  return null;
70
70
  }
71
- if (!is_1.default.nonEmptyArray(children)) {
71
+ if (!(0, is_1.isNonEmptyArray)(children)) {
72
72
  return null;
73
73
  }
74
74
  return extensions;
@@ -329,7 +329,7 @@ function extractPackage(rawContent, packageFile, config) {
329
329
  }
330
330
  }
331
331
  result.deps.forEach((dep) => {
332
- if (is_1.default.array(dep.registryUrls)) {
332
+ if ((0, is_1.isArray)(dep.registryUrls)) {
333
333
  repoUrls.forEach((url) => dep.registryUrls.push(url));
334
334
  }
335
335
  });
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/maven/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport upath from 'upath';\nimport type { XmlElement } from 'xmldoc';\nimport { XmlDocument } from 'xmldoc';\nimport { logger } from '../../../logger';\nimport { readLocalFile } from '../../../util/fs';\nimport { regEx } from '../../../util/regex';\nimport { MavenDatasource } from '../../datasource/maven';\nimport { MAVEN_REPO } from '../../datasource/maven/common';\nimport {\n BUILDPACK_REGISTRY_PREFIX,\n DOCKER_PREFIX,\n getDep as getBuildpackDep,\n isBuildpackRegistryRef,\n isDockerRef,\n} from '../buildpacks/extract';\nimport { getDep as getDockerDep } from '../dockerfile/extract';\nimport type { ExtractConfig, PackageDependency, PackageFile } from '../types';\nimport type { MavenProp } from './types';\n\nconst supportedNamespaces = [\n 'http://maven.apache.org/SETTINGS/1.0.0',\n 'http://maven.apache.org/SETTINGS/1.1.0',\n 'http://maven.apache.org/SETTINGS/1.2.0',\n];\n\nconst supportedExtensionsNamespaces = [\n 'http://maven.apache.org/EXTENSIONS/1.0.0',\n 'http://maven.apache.org/EXTENSIONS/1.1.0',\n 'http://maven.apache.org/EXTENSIONS/1.2.0',\n];\n\nfunction parsePom(raw: string, packageFile: string): XmlDocument | null {\n let project: XmlDocument;\n try {\n project = new XmlDocument(raw);\n if (raw.includes('\\r\\n')) {\n logger.warn(\n 'Your pom.xml contains windows line endings. This is not supported and may result in parsing issues.',\n );\n }\n } catch {\n logger.debug({ packageFile }, `Failed to parse as XML`);\n return null;\n }\n const { name, attr, children } = project;\n if (name !== 'project') {\n return null;\n }\n if (attr.xmlns === 'http://maven.apache.org/POM/4.0.0') {\n return project;\n }\n if (\n is.nonEmptyArray(children) &&\n children.some((c: any) => c.name === 'modelVersion' && c.val === '4.0.0')\n ) {\n return project;\n }\n return null;\n}\n\nfunction parseExtensions(raw: string, packageFile: string): XmlDocument | null {\n let extensions: XmlDocument;\n try {\n extensions = new XmlDocument(raw);\n } catch {\n logger.debug({ packageFile }, `Failed to parse as XML`);\n return null;\n }\n const { name, attr, children } = extensions;\n if (name !== 'extensions') {\n return null;\n }\n if (!supportedExtensionsNamespaces.includes(attr.xmlns)) {\n return null;\n }\n if (!is.nonEmptyArray(children)) {\n return null;\n }\n return extensions;\n}\n\nfunction containsPlaceholder(str: string | null | undefined): boolean {\n return !!str && regEx(/\\${[^}]*?}/).test(str);\n}\n\nfunction getCNBDependencies(\n nodes: XmlElement[],\n config: ExtractConfig,\n): PackageDependency[] {\n const deps: PackageDependency[] = [];\n for (const node of nodes) {\n const depString = node.val.trim();\n if (isDockerRef(depString)) {\n const dep = getDockerDep(\n depString.replace(DOCKER_PREFIX, ''),\n true,\n config.registryAliases,\n );\n\n dep.fileReplacePosition = node.position!; // TODO: should not be null\n if (dep.currentValue || dep.currentDigest) {\n deps.push(dep);\n }\n } else if (isBuildpackRegistryRef(depString)) {\n const dep = getBuildpackDep(\n depString.replace(BUILDPACK_REGISTRY_PREFIX, ''),\n );\n\n if (dep?.currentValue) {\n dep.fileReplacePosition = node.position!; // TODO: should not be null\n deps.push(dep);\n }\n }\n }\n return deps;\n}\n\nfunction getAllCNBDependencies(\n node: XmlDocument,\n config: ExtractConfig,\n): PackageDependency[] | null {\n const pluginNodes =\n node.childNamed('build')?.childNamed('plugins')?.childrenNamed('plugin') ??\n [];\n\n const pluginNode = pluginNodes.find((pluginNode) => {\n return (\n pluginNode.valueWithPath('groupId')?.trim() ===\n 'org.springframework.boot' &&\n pluginNode.valueWithPath('artifactId')?.trim() ===\n 'spring-boot-maven-plugin'\n );\n });\n if (!pluginNode) {\n return null;\n }\n\n const deps: PackageDependency[] = [];\n const imageNode = pluginNode.childNamed('configuration')?.childNamed('image');\n if (!imageNode) {\n return null;\n }\n const builder = getCNBDependencies(\n imageNode.childrenNamed('builder'),\n config,\n );\n const runImage = getCNBDependencies(\n imageNode.childrenNamed('runImage'),\n config,\n );\n const buildpacks = getCNBDependencies(\n imageNode.childNamed('buildpacks')?.childrenNamed('buildpack') ?? [],\n config,\n );\n deps.push(...builder, ...runImage, ...buildpacks);\n\n return deps.length ? deps : null;\n}\n\nfunction depFromNode(\n node: XmlElement,\n underBuildSettingsElement: boolean,\n): PackageDependency | null {\n if (!('valueWithPath' in node)) {\n return null;\n }\n let groupId = node.valueWithPath('groupId')?.trim();\n const artifactId = node.valueWithPath('artifactId')?.trim();\n const currentValue = node.valueWithPath('version')?.trim();\n let depType: string | undefined;\n\n if (!groupId && node.name === 'plugin') {\n groupId = 'org.apache.maven.plugins';\n }\n\n if (groupId && artifactId && currentValue) {\n const depName = `${groupId}:${artifactId}`;\n const versionNode = node.descendantWithPath('version')!;\n const fileReplacePosition = versionNode.position!; // TODO: should not be null\n const datasource = MavenDatasource.id;\n const result: PackageDependency = {\n datasource,\n depName,\n currentValue,\n fileReplacePosition,\n registryUrls: [],\n };\n\n switch (node.name) {\n case 'plugin':\n case 'extension':\n depType = 'build';\n break;\n case 'parent':\n depType = 'parent';\n break;\n case 'dependency':\n if (underBuildSettingsElement) {\n depType = 'build';\n } else if (node.valueWithPath('optional')?.trim() === 'true') {\n depType = 'optional';\n } else {\n depType = node.valueWithPath('scope')?.trim() ?? 'compile'; // maven default scope is compile\n }\n break;\n }\n\n if (depType) {\n result.depType = depType;\n }\n\n return result;\n }\n return null;\n}\n\nfunction deepExtract(\n node: XmlElement,\n result: PackageDependency[] = [],\n isRoot = true,\n underBuildSettingsElement = false,\n): PackageDependency[] {\n const dep = depFromNode(node, underBuildSettingsElement);\n if (dep && !isRoot) {\n result.push(dep);\n }\n if (node.children) {\n for (const child of node.children) {\n deepExtract(\n child as XmlElement,\n result,\n false,\n node.name === 'build' ||\n node.name === 'reporting' ||\n underBuildSettingsElement,\n );\n }\n }\n return result;\n}\n\nfunction applyProps(\n dep: PackageDependency<Record<string, any>>,\n depPackageFile: string,\n props: MavenProp,\n): PackageDependency<Record<string, any>> {\n let result = dep;\n let anyChange = false;\n const alreadySeenProps = new Set<string>();\n\n do {\n const [returnedResult, returnedAnyChange, fatal] = applyPropsInternal(\n result,\n depPackageFile,\n props,\n alreadySeenProps,\n );\n if (fatal) {\n dep.skipReason = 'recursive-placeholder';\n return dep;\n }\n result = returnedResult;\n anyChange = returnedAnyChange;\n } while (anyChange);\n\n if (containsPlaceholder(result.depName)) {\n result.skipReason = 'name-placeholder';\n } else if (containsPlaceholder(result.currentValue)) {\n result.skipReason = 'version-placeholder';\n }\n\n return result;\n}\n\nfunction applyPropsInternal(\n dep: PackageDependency<Record<string, any>>,\n depPackageFile: string,\n props: MavenProp,\n previouslySeenProps: Set<string>,\n): [PackageDependency<Record<string, any>>, boolean, boolean] {\n let anyChange = false;\n let fatal = false;\n\n const seenProps = new Set<string>();\n\n const replaceAll = (str: string): string =>\n str.replace(regEx(/\\${[^}]*?}/g), (substr) => {\n const propKey = substr.slice(2, -1).trim();\n // TODO: wrong types here, props is already `MavenProp`\n const propValue = (props as any)[propKey] as MavenProp;\n if (propValue) {\n anyChange = true;\n if (previouslySeenProps.has(propKey)) {\n fatal = true;\n } else {\n seenProps.add(propKey);\n }\n return propValue.val;\n }\n return substr;\n });\n\n let depName = dep.depName;\n if (dep.depName) {\n depName = replaceAll(dep.depName);\n }\n\n const registryUrls = dep.registryUrls!.map((url) => replaceAll(url));\n\n let fileReplacePosition = dep.fileReplacePosition;\n let propSource = dep.propSource;\n let sharedVariableName: string | null = null;\n let currentValue: string | null = null;\n\n if (dep.currentValue) {\n currentValue = dep.currentValue.replace(regEx(/^\\${[^}]*?}$/), (substr) => {\n const propKey = substr.slice(2, -1).trim();\n // TODO: wrong types here, props is already `MavenProp`\n const propValue = (props as any)[propKey] as MavenProp;\n if (propValue) {\n sharedVariableName ??= propKey;\n fileReplacePosition = propValue.fileReplacePosition;\n propSource =\n propValue.packageFile ??\n // istanbul ignore next\n undefined;\n anyChange = true;\n if (previouslySeenProps.has(propKey)) {\n fatal = true;\n } else {\n seenProps.add(propKey);\n }\n return propValue.val;\n }\n return substr;\n });\n }\n\n const result: PackageDependency = {\n ...dep,\n depName,\n registryUrls,\n fileReplacePosition,\n propSource,\n currentValue,\n };\n\n if (sharedVariableName) {\n result.sharedVariableName = sharedVariableName;\n }\n\n if (propSource && depPackageFile !== propSource) {\n result.editFile = propSource;\n }\n\n for (const prop of seenProps) {\n previouslySeenProps.add(prop);\n }\n return [result, anyChange, fatal];\n}\n\nfunction resolveParentFile(packageFile: string, parentPath: string): string {\n let parentFile = 'pom.xml';\n let parentDir = parentPath;\n const parentBasename = upath.basename(parentPath);\n if (parentBasename === 'pom.xml' || parentBasename.endsWith('.pom.xml')) {\n parentFile = parentBasename;\n parentDir = upath.dirname(parentPath);\n }\n const dir = upath.dirname(packageFile);\n return upath.normalize(upath.join(dir, parentDir, parentFile));\n}\n\ninterface MavenInterimPackageFile extends PackageFile {\n mavenProps?: Record<string, any>;\n parent?: string;\n}\n\nexport function extractPackage(\n rawContent: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageFile | null {\n if (!rawContent) {\n return null;\n }\n\n const project = parsePom(rawContent, packageFile);\n if (!project) {\n return null;\n }\n\n const result: MavenInterimPackageFile = {\n datasource: MavenDatasource.id,\n packageFile,\n deps: [],\n };\n\n result.deps = deepExtract(project);\n\n const CNBDependencies = getAllCNBDependencies(project, config);\n if (CNBDependencies) {\n result.deps.push(...CNBDependencies);\n }\n\n const propsNode = project.childNamed('properties');\n const props: Record<string, MavenProp> = {};\n if (propsNode?.children) {\n for (const propNode of propsNode.children as XmlElement[]) {\n const key = propNode.name;\n const val = propNode?.val?.trim();\n if (key && val && propNode.position) {\n const fileReplacePosition = propNode.position;\n props[key] = { val, fileReplacePosition, packageFile };\n }\n }\n }\n result.mavenProps = props;\n\n const repositories = project.childNamed('repositories');\n if (repositories?.children) {\n const repoUrls: string[] = [];\n for (const repo of repositories.childrenNamed('repository')) {\n const repoUrl = repo.valueWithPath('url')?.trim();\n if (repoUrl) {\n repoUrls.push(repoUrl);\n }\n }\n result.deps.forEach((dep) => {\n if (is.array(dep.registryUrls)) {\n repoUrls.forEach((url) => dep.registryUrls!.push(url));\n }\n });\n }\n\n if (packageFile && project.childNamed('parent')) {\n const parentPath =\n project.valueWithPath('parent.relativePath')?.trim() ?? '../pom.xml';\n result.parent = resolveParentFile(packageFile, parentPath);\n }\n\n if (project.childNamed('version')) {\n result.packageFileVersion = project.valueWithPath('version')!.trim();\n }\n\n return result;\n}\n\nexport function extractRegistries(rawContent: string): string[] {\n if (!rawContent) {\n return [];\n }\n\n const settings = parseSettings(rawContent);\n if (!settings) {\n return [];\n }\n\n const urls: string[] = [];\n\n const mirrorUrls = parseUrls(settings, 'mirrors');\n urls.push(...mirrorUrls);\n\n settings.childNamed('profiles')?.eachChild((profile) => {\n const repositoryUrls = parseUrls(profile, 'repositories');\n urls.push(...repositoryUrls);\n });\n\n // filter out duplicates\n return [...new Set(urls)];\n}\n\nfunction parseUrls(xmlNode: XmlElement, path: string): string[] {\n const children = xmlNode.descendantWithPath(path);\n const urls: string[] = [];\n if (children?.children) {\n children.eachChild((child) => {\n const url = child.valueWithPath('url');\n if (url) {\n urls.push(url);\n }\n });\n }\n return urls;\n}\n\nexport function parseSettings(raw: string): XmlDocument | null {\n let settings: XmlDocument;\n try {\n settings = new XmlDocument(raw);\n } catch {\n return null;\n }\n const { name, attr } = settings;\n if (name !== 'settings') {\n return null;\n }\n if (supportedNamespaces.includes(attr.xmlns)) {\n return settings;\n }\n return null;\n}\n\nexport function resolveParents(packages: PackageFile[]): PackageFile[] {\n const packageFileNames: string[] = [];\n const extractedPackages: Record<string, MavenInterimPackageFile> = {};\n const extractedDeps: Record<string, PackageDependency[]> = {};\n const extractedProps: Record<string, MavenProp> = {};\n const registryUrls: Record<string, Set<string>> = {};\n packages.forEach((pkg) => {\n const name = pkg.packageFile;\n packageFileNames.push(name);\n extractedPackages[name] = pkg;\n extractedDeps[name] = [];\n });\n\n // Construct package-specific prop scopes\n // and merge them in reverse order,\n // which allows inheritance/overriding.\n packageFileNames.forEach((name) => {\n registryUrls[name] = new Set();\n const propsHierarchy: Record<string, MavenProp>[] = [];\n const visitedPackages = new Set<string>();\n let pkg: MavenInterimPackageFile | null = extractedPackages[name];\n while (pkg) {\n propsHierarchy.unshift(pkg.mavenProps!);\n\n if (pkg.deps) {\n pkg.deps.forEach((dep) => {\n if (dep.registryUrls) {\n dep.registryUrls.forEach((url) => {\n registryUrls[name].add(url);\n });\n }\n });\n }\n\n if (pkg.parent && !visitedPackages.has(pkg.parent)) {\n visitedPackages.add(pkg.parent);\n pkg = extractedPackages[pkg.parent];\n } else {\n pkg = null;\n }\n }\n propsHierarchy.unshift({});\n extractedProps[name] = Object.assign.apply(null, propsHierarchy as any);\n });\n\n // Resolve registryUrls\n packageFileNames.forEach((name) => {\n const pkg = extractedPackages[name];\n pkg.deps.forEach((rawDep) => {\n const urlsSet = new Set([\n ...(rawDep.registryUrls ?? []),\n ...registryUrls[name],\n ]);\n rawDep.registryUrls = [...urlsSet];\n });\n });\n\n const rootDeps = new Set<string>();\n // Resolve placeholders\n packageFileNames.forEach((name) => {\n const pkg = extractedPackages[name];\n pkg.deps.forEach((rawDep) => {\n const dep = applyProps(rawDep, name, extractedProps[name]);\n if (dep.depType === 'parent') {\n const parentPkg = extractedPackages[pkg.parent!];\n const hasParentWithNoParent = parentPkg && !parentPkg.parent;\n const hasParentWithExternalParent =\n parentPkg && !packageFileNames.includes(parentPkg.parent!);\n if (hasParentWithNoParent || hasParentWithExternalParent) {\n rootDeps.add(dep.depName!);\n }\n }\n const sourceName = dep.propSource ?? name;\n extractedDeps[sourceName].push(dep);\n });\n });\n\n const packageFiles = packageFileNames.map((packageFile) => {\n const pkg = extractedPackages[packageFile];\n const deps = extractedDeps[packageFile];\n for (const dep of deps) {\n if (rootDeps.has(dep.depName!)) {\n dep.depType = 'parent-root';\n }\n }\n return { ...pkg, deps };\n });\n\n return packageFiles;\n}\n\nfunction cleanResult(packageFiles: MavenInterimPackageFile[]): PackageFile[] {\n packageFiles.forEach((packageFile) => {\n delete packageFile.mavenProps;\n delete packageFile.parent;\n packageFile.deps.forEach((dep) => {\n delete dep.propSource;\n //Add Registry From SuperPom\n if (dep.datasource === MavenDatasource.id) {\n dep.registryUrls!.push(MAVEN_REPO);\n }\n });\n });\n return packageFiles;\n}\n\nexport function extractExtensions(\n rawContent: string,\n packageFile: string,\n): PackageFile | null {\n if (!rawContent) {\n return null;\n }\n\n const extensions = parseExtensions(rawContent, packageFile);\n if (!extensions) {\n return null;\n }\n\n const result: MavenInterimPackageFile = {\n datasource: MavenDatasource.id,\n packageFile,\n deps: [],\n };\n\n result.deps = deepExtract(extensions);\n\n return result;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[]> {\n const packages: PackageFile[] = [];\n const additionalRegistryUrls: string[] = [];\n\n for (const packageFile of packageFiles) {\n const content = await readLocalFile(packageFile, 'utf8');\n if (!content) {\n logger.debug({ packageFile }, 'packageFile has no content');\n continue;\n }\n if (packageFile.endsWith('settings.xml')) {\n const registries = extractRegistries(content);\n if (registries) {\n logger.debug(\n { registries, packageFile },\n 'Found registryUrls in settings.xml',\n );\n additionalRegistryUrls.push(...registries);\n }\n } else if (packageFile.endsWith('.mvn/extensions.xml')) {\n const extensions = extractExtensions(content, packageFile);\n if (extensions) {\n packages.push(extensions);\n } else {\n logger.trace({ packageFile }, 'can not read extensions');\n }\n } else {\n const pkg = extractPackage(content, packageFile, config);\n if (pkg) {\n packages.push(pkg);\n } else {\n logger.trace({ packageFile }, 'can not read dependencies');\n }\n }\n }\n if (additionalRegistryUrls) {\n for (const pkgFile of packages) {\n for (const dep of pkgFile.deps) {\n if (dep.registryUrls) {\n dep.registryUrls.unshift(...additionalRegistryUrls);\n }\n }\n }\n }\n return cleanResult(resolveParents(packages));\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/maven/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { isArray, isNonEmptyArray } from '@sindresorhus/is';\nimport upath from 'upath';\nimport type { XmlElement } from 'xmldoc';\nimport { XmlDocument } from 'xmldoc';\nimport { logger } from '../../../logger';\nimport { readLocalFile } from '../../../util/fs';\nimport { regEx } from '../../../util/regex';\nimport { MavenDatasource } from '../../datasource/maven';\nimport { MAVEN_REPO } from '../../datasource/maven/common';\nimport {\n BUILDPACK_REGISTRY_PREFIX,\n DOCKER_PREFIX,\n getDep as getBuildpackDep,\n isBuildpackRegistryRef,\n isDockerRef,\n} from '../buildpacks/extract';\nimport { getDep as getDockerDep } from '../dockerfile/extract';\nimport type { ExtractConfig, PackageDependency, PackageFile } from '../types';\nimport type { MavenProp } from './types';\n\nconst supportedNamespaces = [\n 'http://maven.apache.org/SETTINGS/1.0.0',\n 'http://maven.apache.org/SETTINGS/1.1.0',\n 'http://maven.apache.org/SETTINGS/1.2.0',\n];\n\nconst supportedExtensionsNamespaces = [\n 'http://maven.apache.org/EXTENSIONS/1.0.0',\n 'http://maven.apache.org/EXTENSIONS/1.1.0',\n 'http://maven.apache.org/EXTENSIONS/1.2.0',\n];\n\nfunction parsePom(raw: string, packageFile: string): XmlDocument | null {\n let project: XmlDocument;\n try {\n project = new XmlDocument(raw);\n if (raw.includes('\\r\\n')) {\n logger.warn(\n 'Your pom.xml contains windows line endings. This is not supported and may result in parsing issues.',\n );\n }\n } catch {\n logger.debug({ packageFile }, `Failed to parse as XML`);\n return null;\n }\n const { name, attr, children } = project;\n if (name !== 'project') {\n return null;\n }\n if (attr.xmlns === 'http://maven.apache.org/POM/4.0.0') {\n return project;\n }\n if (\n isNonEmptyArray(children) &&\n children.some((c: any) => c.name === 'modelVersion' && c.val === '4.0.0')\n ) {\n return project;\n }\n return null;\n}\n\nfunction parseExtensions(raw: string, packageFile: string): XmlDocument | null {\n let extensions: XmlDocument;\n try {\n extensions = new XmlDocument(raw);\n } catch {\n logger.debug({ packageFile }, `Failed to parse as XML`);\n return null;\n }\n const { name, attr, children } = extensions;\n if (name !== 'extensions') {\n return null;\n }\n if (!supportedExtensionsNamespaces.includes(attr.xmlns)) {\n return null;\n }\n if (!isNonEmptyArray(children)) {\n return null;\n }\n return extensions;\n}\n\nfunction containsPlaceholder(str: string | null | undefined): boolean {\n return !!str && regEx(/\\${[^}]*?}/).test(str);\n}\n\nfunction getCNBDependencies(\n nodes: XmlElement[],\n config: ExtractConfig,\n): PackageDependency[] {\n const deps: PackageDependency[] = [];\n for (const node of nodes) {\n const depString = node.val.trim();\n if (isDockerRef(depString)) {\n const dep = getDockerDep(\n depString.replace(DOCKER_PREFIX, ''),\n true,\n config.registryAliases,\n );\n\n dep.fileReplacePosition = node.position!; // TODO: should not be null\n if (dep.currentValue || dep.currentDigest) {\n deps.push(dep);\n }\n } else if (isBuildpackRegistryRef(depString)) {\n const dep = getBuildpackDep(\n depString.replace(BUILDPACK_REGISTRY_PREFIX, ''),\n );\n\n if (dep?.currentValue) {\n dep.fileReplacePosition = node.position!; // TODO: should not be null\n deps.push(dep);\n }\n }\n }\n return deps;\n}\n\nfunction getAllCNBDependencies(\n node: XmlDocument,\n config: ExtractConfig,\n): PackageDependency[] | null {\n const pluginNodes =\n node.childNamed('build')?.childNamed('plugins')?.childrenNamed('plugin') ??\n [];\n\n const pluginNode = pluginNodes.find((pluginNode) => {\n return (\n pluginNode.valueWithPath('groupId')?.trim() ===\n 'org.springframework.boot' &&\n pluginNode.valueWithPath('artifactId')?.trim() ===\n 'spring-boot-maven-plugin'\n );\n });\n if (!pluginNode) {\n return null;\n }\n\n const deps: PackageDependency[] = [];\n const imageNode = pluginNode.childNamed('configuration')?.childNamed('image');\n if (!imageNode) {\n return null;\n }\n const builder = getCNBDependencies(\n imageNode.childrenNamed('builder'),\n config,\n );\n const runImage = getCNBDependencies(\n imageNode.childrenNamed('runImage'),\n config,\n );\n const buildpacks = getCNBDependencies(\n imageNode.childNamed('buildpacks')?.childrenNamed('buildpack') ?? [],\n config,\n );\n deps.push(...builder, ...runImage, ...buildpacks);\n\n return deps.length ? deps : null;\n}\n\nfunction depFromNode(\n node: XmlElement,\n underBuildSettingsElement: boolean,\n): PackageDependency | null {\n if (!('valueWithPath' in node)) {\n return null;\n }\n let groupId = node.valueWithPath('groupId')?.trim();\n const artifactId = node.valueWithPath('artifactId')?.trim();\n const currentValue = node.valueWithPath('version')?.trim();\n let depType: string | undefined;\n\n if (!groupId && node.name === 'plugin') {\n groupId = 'org.apache.maven.plugins';\n }\n\n if (groupId && artifactId && currentValue) {\n const depName = `${groupId}:${artifactId}`;\n const versionNode = node.descendantWithPath('version')!;\n const fileReplacePosition = versionNode.position!; // TODO: should not be null\n const datasource = MavenDatasource.id;\n const result: PackageDependency = {\n datasource,\n depName,\n currentValue,\n fileReplacePosition,\n registryUrls: [],\n };\n\n switch (node.name) {\n case 'plugin':\n case 'extension':\n depType = 'build';\n break;\n case 'parent':\n depType = 'parent';\n break;\n case 'dependency':\n if (underBuildSettingsElement) {\n depType = 'build';\n } else if (node.valueWithPath('optional')?.trim() === 'true') {\n depType = 'optional';\n } else {\n depType = node.valueWithPath('scope')?.trim() ?? 'compile'; // maven default scope is compile\n }\n break;\n }\n\n if (depType) {\n result.depType = depType;\n }\n\n return result;\n }\n return null;\n}\n\nfunction deepExtract(\n node: XmlElement,\n result: PackageDependency[] = [],\n isRoot = true,\n underBuildSettingsElement = false,\n): PackageDependency[] {\n const dep = depFromNode(node, underBuildSettingsElement);\n if (dep && !isRoot) {\n result.push(dep);\n }\n if (node.children) {\n for (const child of node.children) {\n deepExtract(\n child as XmlElement,\n result,\n false,\n node.name === 'build' ||\n node.name === 'reporting' ||\n underBuildSettingsElement,\n );\n }\n }\n return result;\n}\n\nfunction applyProps(\n dep: PackageDependency<Record<string, any>>,\n depPackageFile: string,\n props: MavenProp,\n): PackageDependency<Record<string, any>> {\n let result = dep;\n let anyChange = false;\n const alreadySeenProps = new Set<string>();\n\n do {\n const [returnedResult, returnedAnyChange, fatal] = applyPropsInternal(\n result,\n depPackageFile,\n props,\n alreadySeenProps,\n );\n if (fatal) {\n dep.skipReason = 'recursive-placeholder';\n return dep;\n }\n result = returnedResult;\n anyChange = returnedAnyChange;\n } while (anyChange);\n\n if (containsPlaceholder(result.depName)) {\n result.skipReason = 'name-placeholder';\n } else if (containsPlaceholder(result.currentValue)) {\n result.skipReason = 'version-placeholder';\n }\n\n return result;\n}\n\nfunction applyPropsInternal(\n dep: PackageDependency<Record<string, any>>,\n depPackageFile: string,\n props: MavenProp,\n previouslySeenProps: Set<string>,\n): [PackageDependency<Record<string, any>>, boolean, boolean] {\n let anyChange = false;\n let fatal = false;\n\n const seenProps = new Set<string>();\n\n const replaceAll = (str: string): string =>\n str.replace(regEx(/\\${[^}]*?}/g), (substr) => {\n const propKey = substr.slice(2, -1).trim();\n // TODO: wrong types here, props is already `MavenProp`\n const propValue = (props as any)[propKey] as MavenProp;\n if (propValue) {\n anyChange = true;\n if (previouslySeenProps.has(propKey)) {\n fatal = true;\n } else {\n seenProps.add(propKey);\n }\n return propValue.val;\n }\n return substr;\n });\n\n let depName = dep.depName;\n if (dep.depName) {\n depName = replaceAll(dep.depName);\n }\n\n const registryUrls = dep.registryUrls!.map((url) => replaceAll(url));\n\n let fileReplacePosition = dep.fileReplacePosition;\n let propSource = dep.propSource;\n let sharedVariableName: string | null = null;\n let currentValue: string | null = null;\n\n if (dep.currentValue) {\n currentValue = dep.currentValue.replace(regEx(/^\\${[^}]*?}$/), (substr) => {\n const propKey = substr.slice(2, -1).trim();\n // TODO: wrong types here, props is already `MavenProp`\n const propValue = (props as any)[propKey] as MavenProp;\n if (propValue) {\n sharedVariableName ??= propKey;\n fileReplacePosition = propValue.fileReplacePosition;\n propSource =\n propValue.packageFile ??\n // istanbul ignore next\n undefined;\n anyChange = true;\n if (previouslySeenProps.has(propKey)) {\n fatal = true;\n } else {\n seenProps.add(propKey);\n }\n return propValue.val;\n }\n return substr;\n });\n }\n\n const result: PackageDependency = {\n ...dep,\n depName,\n registryUrls,\n fileReplacePosition,\n propSource,\n currentValue,\n };\n\n if (sharedVariableName) {\n result.sharedVariableName = sharedVariableName;\n }\n\n if (propSource && depPackageFile !== propSource) {\n result.editFile = propSource;\n }\n\n for (const prop of seenProps) {\n previouslySeenProps.add(prop);\n }\n return [result, anyChange, fatal];\n}\n\nfunction resolveParentFile(packageFile: string, parentPath: string): string {\n let parentFile = 'pom.xml';\n let parentDir = parentPath;\n const parentBasename = upath.basename(parentPath);\n if (parentBasename === 'pom.xml' || parentBasename.endsWith('.pom.xml')) {\n parentFile = parentBasename;\n parentDir = upath.dirname(parentPath);\n }\n const dir = upath.dirname(packageFile);\n return upath.normalize(upath.join(dir, parentDir, parentFile));\n}\n\ninterface MavenInterimPackageFile extends PackageFile {\n mavenProps?: Record<string, any>;\n parent?: string;\n}\n\nexport function extractPackage(\n rawContent: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageFile | null {\n if (!rawContent) {\n return null;\n }\n\n const project = parsePom(rawContent, packageFile);\n if (!project) {\n return null;\n }\n\n const result: MavenInterimPackageFile = {\n datasource: MavenDatasource.id,\n packageFile,\n deps: [],\n };\n\n result.deps = deepExtract(project);\n\n const CNBDependencies = getAllCNBDependencies(project, config);\n if (CNBDependencies) {\n result.deps.push(...CNBDependencies);\n }\n\n const propsNode = project.childNamed('properties');\n const props: Record<string, MavenProp> = {};\n if (propsNode?.children) {\n for (const propNode of propsNode.children as XmlElement[]) {\n const key = propNode.name;\n const val = propNode?.val?.trim();\n if (key && val && propNode.position) {\n const fileReplacePosition = propNode.position;\n props[key] = { val, fileReplacePosition, packageFile };\n }\n }\n }\n result.mavenProps = props;\n\n const repositories = project.childNamed('repositories');\n if (repositories?.children) {\n const repoUrls: string[] = [];\n for (const repo of repositories.childrenNamed('repository')) {\n const repoUrl = repo.valueWithPath('url')?.trim();\n if (repoUrl) {\n repoUrls.push(repoUrl);\n }\n }\n result.deps.forEach((dep) => {\n if (isArray(dep.registryUrls)) {\n repoUrls.forEach((url) => dep.registryUrls!.push(url));\n }\n });\n }\n\n if (packageFile && project.childNamed('parent')) {\n const parentPath =\n project.valueWithPath('parent.relativePath')?.trim() ?? '../pom.xml';\n result.parent = resolveParentFile(packageFile, parentPath);\n }\n\n if (project.childNamed('version')) {\n result.packageFileVersion = project.valueWithPath('version')!.trim();\n }\n\n return result;\n}\n\nexport function extractRegistries(rawContent: string): string[] {\n if (!rawContent) {\n return [];\n }\n\n const settings = parseSettings(rawContent);\n if (!settings) {\n return [];\n }\n\n const urls: string[] = [];\n\n const mirrorUrls = parseUrls(settings, 'mirrors');\n urls.push(...mirrorUrls);\n\n settings.childNamed('profiles')?.eachChild((profile) => {\n const repositoryUrls = parseUrls(profile, 'repositories');\n urls.push(...repositoryUrls);\n });\n\n // filter out duplicates\n return [...new Set(urls)];\n}\n\nfunction parseUrls(xmlNode: XmlElement, path: string): string[] {\n const children = xmlNode.descendantWithPath(path);\n const urls: string[] = [];\n if (children?.children) {\n children.eachChild((child) => {\n const url = child.valueWithPath('url');\n if (url) {\n urls.push(url);\n }\n });\n }\n return urls;\n}\n\nexport function parseSettings(raw: string): XmlDocument | null {\n let settings: XmlDocument;\n try {\n settings = new XmlDocument(raw);\n } catch {\n return null;\n }\n const { name, attr } = settings;\n if (name !== 'settings') {\n return null;\n }\n if (supportedNamespaces.includes(attr.xmlns)) {\n return settings;\n }\n return null;\n}\n\nexport function resolveParents(packages: PackageFile[]): PackageFile[] {\n const packageFileNames: string[] = [];\n const extractedPackages: Record<string, MavenInterimPackageFile> = {};\n const extractedDeps: Record<string, PackageDependency[]> = {};\n const extractedProps: Record<string, MavenProp> = {};\n const registryUrls: Record<string, Set<string>> = {};\n packages.forEach((pkg) => {\n const name = pkg.packageFile;\n packageFileNames.push(name);\n extractedPackages[name] = pkg;\n extractedDeps[name] = [];\n });\n\n // Construct package-specific prop scopes\n // and merge them in reverse order,\n // which allows inheritance/overriding.\n packageFileNames.forEach((name) => {\n registryUrls[name] = new Set();\n const propsHierarchy: Record<string, MavenProp>[] = [];\n const visitedPackages = new Set<string>();\n let pkg: MavenInterimPackageFile | null = extractedPackages[name];\n while (pkg) {\n propsHierarchy.unshift(pkg.mavenProps!);\n\n if (pkg.deps) {\n pkg.deps.forEach((dep) => {\n if (dep.registryUrls) {\n dep.registryUrls.forEach((url) => {\n registryUrls[name].add(url);\n });\n }\n });\n }\n\n if (pkg.parent && !visitedPackages.has(pkg.parent)) {\n visitedPackages.add(pkg.parent);\n pkg = extractedPackages[pkg.parent];\n } else {\n pkg = null;\n }\n }\n propsHierarchy.unshift({});\n extractedProps[name] = Object.assign.apply(null, propsHierarchy as any);\n });\n\n // Resolve registryUrls\n packageFileNames.forEach((name) => {\n const pkg = extractedPackages[name];\n pkg.deps.forEach((rawDep) => {\n const urlsSet = new Set([\n ...(rawDep.registryUrls ?? []),\n ...registryUrls[name],\n ]);\n rawDep.registryUrls = [...urlsSet];\n });\n });\n\n const rootDeps = new Set<string>();\n // Resolve placeholders\n packageFileNames.forEach((name) => {\n const pkg = extractedPackages[name];\n pkg.deps.forEach((rawDep) => {\n const dep = applyProps(rawDep, name, extractedProps[name]);\n if (dep.depType === 'parent') {\n const parentPkg = extractedPackages[pkg.parent!];\n const hasParentWithNoParent = parentPkg && !parentPkg.parent;\n const hasParentWithExternalParent =\n parentPkg && !packageFileNames.includes(parentPkg.parent!);\n if (hasParentWithNoParent || hasParentWithExternalParent) {\n rootDeps.add(dep.depName!);\n }\n }\n const sourceName = dep.propSource ?? name;\n extractedDeps[sourceName].push(dep);\n });\n });\n\n const packageFiles = packageFileNames.map((packageFile) => {\n const pkg = extractedPackages[packageFile];\n const deps = extractedDeps[packageFile];\n for (const dep of deps) {\n if (rootDeps.has(dep.depName!)) {\n dep.depType = 'parent-root';\n }\n }\n return { ...pkg, deps };\n });\n\n return packageFiles;\n}\n\nfunction cleanResult(packageFiles: MavenInterimPackageFile[]): PackageFile[] {\n packageFiles.forEach((packageFile) => {\n delete packageFile.mavenProps;\n delete packageFile.parent;\n packageFile.deps.forEach((dep) => {\n delete dep.propSource;\n //Add Registry From SuperPom\n if (dep.datasource === MavenDatasource.id) {\n dep.registryUrls!.push(MAVEN_REPO);\n }\n });\n });\n return packageFiles;\n}\n\nexport function extractExtensions(\n rawContent: string,\n packageFile: string,\n): PackageFile | null {\n if (!rawContent) {\n return null;\n }\n\n const extensions = parseExtensions(rawContent, packageFile);\n if (!extensions) {\n return null;\n }\n\n const result: MavenInterimPackageFile = {\n datasource: MavenDatasource.id,\n packageFile,\n deps: [],\n };\n\n result.deps = deepExtract(extensions);\n\n return result;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[]> {\n const packages: PackageFile[] = [];\n const additionalRegistryUrls: string[] = [];\n\n for (const packageFile of packageFiles) {\n const content = await readLocalFile(packageFile, 'utf8');\n if (!content) {\n logger.debug({ packageFile }, 'packageFile has no content');\n continue;\n }\n if (packageFile.endsWith('settings.xml')) {\n const registries = extractRegistries(content);\n if (registries) {\n logger.debug(\n { registries, packageFile },\n 'Found registryUrls in settings.xml',\n );\n additionalRegistryUrls.push(...registries);\n }\n } else if (packageFile.endsWith('.mvn/extensions.xml')) {\n const extensions = extractExtensions(content, packageFile);\n if (extensions) {\n packages.push(extensions);\n } else {\n logger.trace({ packageFile }, 'can not read extensions');\n }\n } else {\n const pkg = extractPackage(content, packageFile, config);\n if (pkg) {\n packages.push(pkg);\n } else {\n logger.trace({ packageFile }, 'can not read dependencies');\n }\n }\n }\n if (additionalRegistryUrls) {\n for (const pkgFile of packages) {\n for (const dep of pkgFile.deps) {\n if (dep.registryUrls) {\n dep.registryUrls.unshift(...additionalRegistryUrls);\n }\n }\n }\n }\n return cleanResult(resolveParents(packages));\n}\n"]}
@@ -4,7 +4,7 @@ exports.updateAtPosition = updateAtPosition;
4
4
  exports.updateDependency = updateDependency;
5
5
  exports.bumpPackageVersion = bumpPackageVersion;
6
6
  const tslib_1 = require("tslib");
7
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
7
+ const is_1 = require("@sindresorhus/is");
8
8
  const semver_1 = tslib_1.__importDefault(require("semver"));
9
9
  const xmldoc_1 = require("xmldoc");
10
10
  const logger_1 = require("../../../logger");
@@ -135,7 +135,7 @@ function bumpPackageVersion(content, currentValue, bumpVersion) {
135
135
  }
136
136
  function isSnapshot(prerelease) {
137
137
  const lastPart = prerelease?.at(-1);
138
- return is_1.default.string(lastPart) && lastPart.endsWith('SNAPSHOT');
138
+ return (0, is_1.isString)(lastPart) && lastPart.endsWith('SNAPSHOT');
139
139
  }
140
140
  function updateValue(content, nodeName, oldValue, newValue) {
141
141
  const elementStart = content.indexOf('<' + nodeName);
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../lib/modules/manager/maven/update.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport type { ReleaseType } from 'semver';\nimport semver from 'semver';\nimport { XmlDocument } from 'xmldoc';\nimport { logger } from '../../../logger';\nimport { replaceAt } from '../../../util/string';\nimport type {\n BumpPackageVersionResult,\n UpdateDependencyConfig,\n Upgrade,\n} from '../types';\n\nexport function updateAtPosition(\n fileContent: string,\n upgrade: Upgrade,\n endingAnchor: string,\n): string | null {\n const { depName, newName, currentValue, newValue, fileReplacePosition } =\n upgrade;\n let leftPart = fileContent.slice(0, fileReplacePosition);\n const rightPart = fileContent.slice(fileReplacePosition);\n const versionClosePosition = rightPart.indexOf(endingAnchor);\n let restPart = rightPart.slice(versionClosePosition);\n const versionPart = rightPart.slice(0, versionClosePosition);\n const version = versionPart.trim();\n if (newName) {\n const blockStart = Math.max(\n leftPart.lastIndexOf('<parent'),\n leftPart.lastIndexOf('<dependency'),\n leftPart.lastIndexOf('<plugin'),\n leftPart.lastIndexOf('<extension'),\n );\n let leftBlock = leftPart.slice(blockStart);\n const blockEnd = Math.min(\n restPart.indexOf('</parent'),\n restPart.indexOf('</dependency'),\n restPart.indexOf('</plugin'),\n restPart.indexOf('</extension'),\n );\n let rightBlock = restPart.slice(0, blockEnd);\n const [groupId, artifactId] = depName!.split(':', 2);\n const [newGroupId, newArtifactId] = newName.split(':', 2);\n if (leftBlock.indexOf('<groupId') > 0) {\n leftBlock = updateValue(leftBlock, 'groupId', groupId, newGroupId);\n } else {\n rightBlock = updateValue(rightBlock, 'groupId', groupId, newGroupId);\n }\n if (leftBlock.indexOf('<artifactId') > 0) {\n leftBlock = updateValue(\n leftBlock,\n 'artifactId',\n artifactId,\n newArtifactId,\n );\n } else {\n rightBlock = updateValue(\n rightBlock,\n 'artifactId',\n artifactId,\n newArtifactId,\n );\n }\n leftPart = leftPart.slice(0, blockStart) + leftBlock;\n restPart = rightBlock + restPart.slice(blockEnd);\n } else if (version === newValue) {\n return fileContent;\n }\n if (version === currentValue || upgrade.sharedVariableName) {\n // TODO: validate newValue (#22198)\n const replacedPart = versionPart.replace(version, newValue!);\n return leftPart + replacedPart + restPart;\n } else if (\n upgrade.datasource === 'docker' ||\n upgrade.datasource === 'buildpacks-registry'\n ) {\n // In contrast to maven dependencies, cloud native buildpacks are not contained in specific version tags.\n // Instead they are contained in the value of the buildpack tag and we have to update it differently.\n let replacedPart = version;\n if (currentValue) {\n replacedPart = version.replace(currentValue, newValue!);\n }\n if (upgrade.currentDigest && upgrade.newDigest) {\n replacedPart = replacedPart.replace(\n upgrade.currentDigest,\n upgrade.newDigest,\n );\n }\n if (replacedPart !== version) {\n return leftPart + replacedPart + restPart;\n }\n }\n logger.debug({ depName, version, currentValue, newValue }, 'Unknown value');\n return null;\n}\n\nexport function updateDependency({\n fileContent,\n upgrade,\n}: UpdateDependencyConfig): string | null {\n const offset = fileContent.indexOf('<');\n const spaces = fileContent.slice(0, offset);\n const restContent = fileContent.slice(offset);\n const updatedContent = updateAtPosition(restContent, upgrade, '</');\n if (!updatedContent) {\n return null;\n }\n if (updatedContent === restContent) {\n return fileContent;\n }\n return `${spaces}${updatedContent}`;\n}\n\nexport function bumpPackageVersion(\n content: string,\n currentValue: string,\n bumpVersion: ReleaseType,\n): BumpPackageVersionResult {\n logger.debug(\n { bumpVersion, currentValue },\n 'Checking if we should bump pom.xml version',\n );\n let bumpedContent = content;\n\n if (!semver.valid(currentValue)) {\n logger.warn(\n { currentValue },\n 'Unable to bump pom.xml version, not a valid semver',\n );\n return { bumpedContent };\n }\n\n try {\n const project = new XmlDocument(content);\n const versionNode = project.childNamed('version')!;\n const startTagPosition = versionNode.startTagPosition!; // TODO: should not be null\n const versionPosition = content.indexOf(versionNode.val, startTagPosition);\n\n let newPomVersion: string | null = null;\n const currentPrereleaseValue = semver.prerelease(currentValue);\n if (isSnapshot(currentPrereleaseValue)) {\n // It is already a SNAPSHOT version.\n // Therefore the same qualifier (prerelease) will be used as before.\n let releaseType = bumpVersion;\n if (!bumpVersion.startsWith('pre')) {\n releaseType = `pre${bumpVersion}` as ReleaseType;\n }\n newPomVersion = semver.inc(\n currentValue,\n releaseType,\n currentPrereleaseValue!.join('.'),\n false,\n );\n } else if (currentPrereleaseValue) {\n // Some qualifier which is not a SNAPSHOT is present.\n // The expected behaviour in this case is unclear and the standard increase will be used.\n newPomVersion = semver.inc(currentValue, bumpVersion);\n } else {\n // A release version without any qualifier is present.\n // Therefore the SNAPSHOT qualifier will be added if a prerelease is requested.\n // This will do a normal increment, ignoring SNAPSHOT, if a non-prerelease bumpVersion is configured\n newPomVersion = semver.inc(currentValue, bumpVersion, 'SNAPSHOT', false);\n }\n if (!newPomVersion) {\n throw new Error('semver inc failed');\n }\n\n logger.debug({ newPomVersion });\n bumpedContent = replaceAt(\n content,\n versionPosition,\n currentValue,\n newPomVersion,\n );\n\n if (bumpedContent === content) {\n logger.debug('Version was already bumped');\n } else {\n logger.debug('pom.xml version bumped');\n }\n } catch {\n logger.warn(\n {\n content,\n currentValue,\n bumpVersion,\n },\n 'Failed to bumpVersion',\n );\n }\n return { bumpedContent };\n}\n\nfunction isSnapshot(prerelease: readonly (string | number)[] | null): boolean {\n const lastPart = prerelease?.at(-1);\n return is.string(lastPart) && lastPart.endsWith('SNAPSHOT');\n}\n\nfunction updateValue(\n content: string,\n nodeName: string,\n oldValue: string,\n newValue: string,\n): string {\n const elementStart = content.indexOf('<' + nodeName);\n const start = content.indexOf('>', elementStart) + 1;\n const end = content.indexOf('</' + nodeName, start);\n const elementContent = content.slice(start, end);\n if (elementContent.trim() === oldValue) {\n return (\n content.slice(0, start) +\n elementContent.replace(oldValue, newValue) +\n content.slice(end)\n );\n }\n logger.debug({ content, nodeName, oldValue, newValue }, 'Unknown value');\n return content;\n}\n"]}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../lib/modules/manager/maven/update.ts"],"names":[],"mappings":"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","sourcesContent":["import { isString } from '@sindresorhus/is';\nimport type { ReleaseType } from 'semver';\nimport semver from 'semver';\nimport { XmlDocument } from 'xmldoc';\nimport { logger } from '../../../logger';\nimport { replaceAt } from '../../../util/string';\nimport type {\n BumpPackageVersionResult,\n UpdateDependencyConfig,\n Upgrade,\n} from '../types';\n\nexport function updateAtPosition(\n fileContent: string,\n upgrade: Upgrade,\n endingAnchor: string,\n): string | null {\n const { depName, newName, currentValue, newValue, fileReplacePosition } =\n upgrade;\n let leftPart = fileContent.slice(0, fileReplacePosition);\n const rightPart = fileContent.slice(fileReplacePosition);\n const versionClosePosition = rightPart.indexOf(endingAnchor);\n let restPart = rightPart.slice(versionClosePosition);\n const versionPart = rightPart.slice(0, versionClosePosition);\n const version = versionPart.trim();\n if (newName) {\n const blockStart = Math.max(\n leftPart.lastIndexOf('<parent'),\n leftPart.lastIndexOf('<dependency'),\n leftPart.lastIndexOf('<plugin'),\n leftPart.lastIndexOf('<extension'),\n );\n let leftBlock = leftPart.slice(blockStart);\n const blockEnd = Math.min(\n restPart.indexOf('</parent'),\n restPart.indexOf('</dependency'),\n restPart.indexOf('</plugin'),\n restPart.indexOf('</extension'),\n );\n let rightBlock = restPart.slice(0, blockEnd);\n const [groupId, artifactId] = depName!.split(':', 2);\n const [newGroupId, newArtifactId] = newName.split(':', 2);\n if (leftBlock.indexOf('<groupId') > 0) {\n leftBlock = updateValue(leftBlock, 'groupId', groupId, newGroupId);\n } else {\n rightBlock = updateValue(rightBlock, 'groupId', groupId, newGroupId);\n }\n if (leftBlock.indexOf('<artifactId') > 0) {\n leftBlock = updateValue(\n leftBlock,\n 'artifactId',\n artifactId,\n newArtifactId,\n );\n } else {\n rightBlock = updateValue(\n rightBlock,\n 'artifactId',\n artifactId,\n newArtifactId,\n );\n }\n leftPart = leftPart.slice(0, blockStart) + leftBlock;\n restPart = rightBlock + restPart.slice(blockEnd);\n } else if (version === newValue) {\n return fileContent;\n }\n if (version === currentValue || upgrade.sharedVariableName) {\n // TODO: validate newValue (#22198)\n const replacedPart = versionPart.replace(version, newValue!);\n return leftPart + replacedPart + restPart;\n } else if (\n upgrade.datasource === 'docker' ||\n upgrade.datasource === 'buildpacks-registry'\n ) {\n // In contrast to maven dependencies, cloud native buildpacks are not contained in specific version tags.\n // Instead they are contained in the value of the buildpack tag and we have to update it differently.\n let replacedPart = version;\n if (currentValue) {\n replacedPart = version.replace(currentValue, newValue!);\n }\n if (upgrade.currentDigest && upgrade.newDigest) {\n replacedPart = replacedPart.replace(\n upgrade.currentDigest,\n upgrade.newDigest,\n );\n }\n if (replacedPart !== version) {\n return leftPart + replacedPart + restPart;\n }\n }\n logger.debug({ depName, version, currentValue, newValue }, 'Unknown value');\n return null;\n}\n\nexport function updateDependency({\n fileContent,\n upgrade,\n}: UpdateDependencyConfig): string | null {\n const offset = fileContent.indexOf('<');\n const spaces = fileContent.slice(0, offset);\n const restContent = fileContent.slice(offset);\n const updatedContent = updateAtPosition(restContent, upgrade, '</');\n if (!updatedContent) {\n return null;\n }\n if (updatedContent === restContent) {\n return fileContent;\n }\n return `${spaces}${updatedContent}`;\n}\n\nexport function bumpPackageVersion(\n content: string,\n currentValue: string,\n bumpVersion: ReleaseType,\n): BumpPackageVersionResult {\n logger.debug(\n { bumpVersion, currentValue },\n 'Checking if we should bump pom.xml version',\n );\n let bumpedContent = content;\n\n if (!semver.valid(currentValue)) {\n logger.warn(\n { currentValue },\n 'Unable to bump pom.xml version, not a valid semver',\n );\n return { bumpedContent };\n }\n\n try {\n const project = new XmlDocument(content);\n const versionNode = project.childNamed('version')!;\n const startTagPosition = versionNode.startTagPosition!; // TODO: should not be null\n const versionPosition = content.indexOf(versionNode.val, startTagPosition);\n\n let newPomVersion: string | null = null;\n const currentPrereleaseValue = semver.prerelease(currentValue);\n if (isSnapshot(currentPrereleaseValue)) {\n // It is already a SNAPSHOT version.\n // Therefore the same qualifier (prerelease) will be used as before.\n let releaseType = bumpVersion;\n if (!bumpVersion.startsWith('pre')) {\n releaseType = `pre${bumpVersion}` as ReleaseType;\n }\n newPomVersion = semver.inc(\n currentValue,\n releaseType,\n currentPrereleaseValue!.join('.'),\n false,\n );\n } else if (currentPrereleaseValue) {\n // Some qualifier which is not a SNAPSHOT is present.\n // The expected behaviour in this case is unclear and the standard increase will be used.\n newPomVersion = semver.inc(currentValue, bumpVersion);\n } else {\n // A release version without any qualifier is present.\n // Therefore the SNAPSHOT qualifier will be added if a prerelease is requested.\n // This will do a normal increment, ignoring SNAPSHOT, if a non-prerelease bumpVersion is configured\n newPomVersion = semver.inc(currentValue, bumpVersion, 'SNAPSHOT', false);\n }\n if (!newPomVersion) {\n throw new Error('semver inc failed');\n }\n\n logger.debug({ newPomVersion });\n bumpedContent = replaceAt(\n content,\n versionPosition,\n currentValue,\n newPomVersion,\n );\n\n if (bumpedContent === content) {\n logger.debug('Version was already bumped');\n } else {\n logger.debug('pom.xml version bumped');\n }\n } catch {\n logger.warn(\n {\n content,\n currentValue,\n bumpVersion,\n },\n 'Failed to bumpVersion',\n );\n }\n return { bumpedContent };\n}\n\nfunction isSnapshot(prerelease: readonly (string | number)[] | null): boolean {\n const lastPart = prerelease?.at(-1);\n return isString(lastPart) && lastPart.endsWith('SNAPSHOT');\n}\n\nfunction updateValue(\n content: string,\n nodeName: string,\n oldValue: string,\n newValue: string,\n): string {\n const elementStart = content.indexOf('<' + nodeName);\n const start = content.indexOf('>', elementStart) + 1;\n const end = content.indexOf('</' + nodeName, start);\n const elementContent = content.slice(start, end);\n if (elementContent.trim() === oldValue) {\n return (\n content.slice(0, start) +\n elementContent.replace(oldValue, newValue) +\n content.slice(end)\n );\n }\n logger.debug({ content, nodeName, oldValue, newValue }, 'Unknown value');\n return content;\n}\n"]}
@@ -4,7 +4,7 @@ exports.updateArtifacts = updateArtifacts;
4
4
  exports.getJavaConstraint = getJavaConstraint;
5
5
  const tslib_1 = require("tslib");
6
6
  const node_os_1 = tslib_1.__importDefault(require("node:os"));
7
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
7
+ const is_1 = require("@sindresorhus/is");
8
8
  const upath_1 = tslib_1.__importDefault(require("upath"));
9
9
  const global_1 = require("../../../config/global");
10
10
  const logger_1 = require("../../../logger");
@@ -49,7 +49,7 @@ async function updateArtifacts({ packageFileName, newPackageFileContent, updated
49
49
  'mvnw.cmd',
50
50
  ].map((filename) => packageFileName.replace('.mvn/wrapper/maven-wrapper.properties', '') +
51
51
  filename);
52
- const updateArtifactsResult = (await getUpdatedArtifacts(status, artifactFileNames)).filter(is_1.default.truthy);
52
+ const updateArtifactsResult = (await getUpdatedArtifacts(status, artifactFileNames)).filter(is_1.isTruthy);
53
53
  logger_1.logger.debug({ files: updateArtifactsResult.map((r) => r.file?.path) }, `Returning updated maven-wrapper files`);
54
54
  return updateArtifactsResult;
55
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/maven-wrapper/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Stats } from 'node:fs';\nimport os from 'node:os';\nimport is from '@sindresorhus/is';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions, ExtraEnv } from '../../../util/exec/types';\nimport { chmodLocalFile, readLocalFile, statLocalFile } from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport type { StatusResult } from '../../../util/git/types';\nimport { regEx } from '../../../util/regex';\nimport mavenVersioning from '../../versioning/maven';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../types';\n\nconst DEFAULT_MAVEN_REPO_URL = 'https://repo.maven.apache.org/maven2';\ninterface MavenWrapperPaths {\n wrapperExecutableFileName: string;\n localProjectDir: string;\n wrapperFullyQualifiedPath: string;\n}\n\nasync function addIfUpdated(\n status: StatusResult,\n fileProjectPath: string,\n): Promise<UpdateArtifactsResult | null> {\n if (status.modified.includes(fileProjectPath)) {\n return {\n file: {\n type: 'addition',\n path: fileProjectPath,\n contents: await readLocalFile(fileProjectPath),\n },\n };\n }\n return null;\n}\n\nexport async function updateArtifacts({\n packageFileName,\n newPackageFileContent,\n updatedDeps,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n try {\n logger.debug({ updatedDeps }, 'maven-wrapper.updateArtifacts()');\n\n if (!updatedDeps.some((dep) => dep.depName === 'maven-wrapper')) {\n logger.info(\n 'Maven wrapper version not updated - skipping Artifacts update',\n );\n return null;\n }\n\n const cmd = await createWrapperCommand(packageFileName);\n\n if (!cmd) {\n logger.info('No mvnw found - skipping Artifacts update');\n return null;\n }\n\n const extraEnv = getExtraEnvOptions(updatedDeps);\n await executeWrapperCommand(cmd, config, packageFileName, extraEnv);\n\n const status = await getRepoStatus();\n const artifactFileNames = [\n '.mvn/wrapper/maven-wrapper.properties',\n '.mvn/wrapper/maven-wrapper.jar',\n '.mvn/wrapper/MavenWrapperDownloader.java',\n 'mvnw',\n 'mvnw.cmd',\n ].map(\n (filename) =>\n packageFileName.replace('.mvn/wrapper/maven-wrapper.properties', '') +\n filename,\n );\n const updateArtifactsResult = (\n await getUpdatedArtifacts(status, artifactFileNames)\n ).filter(is.truthy);\n\n logger.debug(\n { files: updateArtifactsResult.map((r) => r.file?.path) },\n `Returning updated maven-wrapper files`,\n );\n return updateArtifactsResult;\n } catch (err) {\n logger.debug({ err }, 'Error setting new Maven Wrapper release value');\n return [\n {\n artifactError: {\n lockFile: packageFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n\nasync function getUpdatedArtifacts(\n status: StatusResult,\n artifactFileNames: string[],\n): Promise<UpdateArtifactsResult[]> {\n const updatedResults: UpdateArtifactsResult[] = [];\n for (const artifactFileName of artifactFileNames) {\n const updatedResult = await addIfUpdated(status, artifactFileName);\n if (updatedResult !== null) {\n updatedResults.push(updatedResult);\n }\n }\n return updatedResults;\n}\n\n/**\n * Find compatible java version for maven.\n * see https://maven.apache.org/developers/compatibility-plan.html\n * @param mavenWrapperVersion current maven version\n * @returns A Java semver range\n */\nexport function getJavaConstraint(\n mavenWrapperVersion: string | null | undefined,\n): string | null {\n const major = mavenWrapperVersion\n ? mavenVersioning.getMajor(mavenWrapperVersion)\n : null;\n\n if (major && major >= 3) {\n return '^17.0.0';\n }\n\n return '^8.0.0';\n}\n\nasync function executeWrapperCommand(\n cmd: string,\n config: UpdateArtifactsConfig,\n packageFileName: string,\n extraEnv: ExtraEnv,\n): Promise<void> {\n logger.debug(`Updating maven wrapper: \"${cmd}\"`);\n const { wrapperFullyQualifiedPath } = getMavenPaths(packageFileName);\n\n const execOptions: ExecOptions = {\n cwdFile: wrapperFullyQualifiedPath,\n docker: {},\n extraEnv,\n toolConstraints: [\n {\n toolName: 'java',\n constraint:\n config.constraints?.java ?? getJavaConstraint(config.currentValue),\n },\n ],\n };\n\n try {\n await exec(cmd, execOptions);\n } catch (err) {\n logger.error({ err }, 'Error executing maven wrapper update command.');\n throw err;\n }\n}\n\nfunction getExtraEnvOptions(deps: PackageDependency[]): ExtraEnv {\n const customMavenWrapperUrl = getCustomMavenWrapperRepoUrl(deps);\n if (customMavenWrapperUrl) {\n return { MVNW_REPOURL: customMavenWrapperUrl };\n }\n return {};\n}\n\nfunction getCustomMavenWrapperRepoUrl(\n deps: PackageDependency[],\n): string | null {\n const replaceString = deps.find(\n (dep) => dep.depName === 'maven-wrapper',\n )?.replaceString;\n\n if (!replaceString) {\n return null;\n }\n\n const match = regEx(/^(.*?)\\/org\\/apache\\/maven\\/wrapper\\//).exec(\n replaceString,\n );\n\n if (!match) {\n return null;\n }\n\n return match[1] === DEFAULT_MAVEN_REPO_URL ? null : match[1];\n}\n\nasync function createWrapperCommand(\n packageFileName: string,\n): Promise<string | null> {\n const {\n wrapperExecutableFileName,\n localProjectDir,\n wrapperFullyQualifiedPath,\n } = getMavenPaths(packageFileName);\n\n return await prepareCommand(\n wrapperExecutableFileName,\n localProjectDir,\n await statLocalFile(wrapperFullyQualifiedPath),\n 'wrapper:wrapper',\n );\n}\n\nfunction mavenWrapperFileName(): string {\n if (\n os.platform() === 'win32' &&\n GlobalConfig.get('binarySource') !== 'docker'\n ) {\n return 'mvnw.cmd';\n }\n return './mvnw';\n}\n\nfunction getMavenPaths(packageFileName: string): MavenWrapperPaths {\n const wrapperExecutableFileName = mavenWrapperFileName();\n const localProjectDir = upath.join(\n upath.dirname(packageFileName),\n packageFileName.includes('mvnw') ? '.' : '../../',\n );\n const wrapperFullyQualifiedPath = upath.join(\n localProjectDir,\n wrapperExecutableFileName,\n );\n return {\n wrapperExecutableFileName,\n localProjectDir,\n wrapperFullyQualifiedPath,\n };\n}\n\nasync function prepareCommand(\n fileName: string,\n cwd: string | undefined,\n pathFileStats: Stats | null,\n args: string | null,\n): Promise<string | null> {\n /* v8 ignore start -- hard to test */\n if (pathFileStats?.isFile() === true) {\n // if the file is not executable by others\n if (os.platform() !== 'win32' && (pathFileStats.mode & 0o1) === 0) {\n // add the execution permission to the owner, group and others\n logger.warn('Maven wrapper is missing the executable bit');\n await chmodLocalFile(\n upath.join(cwd, fileName),\n pathFileStats.mode | 0o111,\n );\n }\n if (args === null) {\n return fileName;\n }\n return `${fileName} ${args}`;\n } /* v8 ignore stop */\n return null;\n}\n"]}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/maven-wrapper/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Stats } from 'node:fs';\nimport os from 'node:os';\nimport { isTruthy } from '@sindresorhus/is';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions, ExtraEnv } from '../../../util/exec/types';\nimport { chmodLocalFile, readLocalFile, statLocalFile } from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport type { StatusResult } from '../../../util/git/types';\nimport { regEx } from '../../../util/regex';\nimport mavenVersioning from '../../versioning/maven';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../types';\n\nconst DEFAULT_MAVEN_REPO_URL = 'https://repo.maven.apache.org/maven2';\ninterface MavenWrapperPaths {\n wrapperExecutableFileName: string;\n localProjectDir: string;\n wrapperFullyQualifiedPath: string;\n}\n\nasync function addIfUpdated(\n status: StatusResult,\n fileProjectPath: string,\n): Promise<UpdateArtifactsResult | null> {\n if (status.modified.includes(fileProjectPath)) {\n return {\n file: {\n type: 'addition',\n path: fileProjectPath,\n contents: await readLocalFile(fileProjectPath),\n },\n };\n }\n return null;\n}\n\nexport async function updateArtifacts({\n packageFileName,\n newPackageFileContent,\n updatedDeps,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n try {\n logger.debug({ updatedDeps }, 'maven-wrapper.updateArtifacts()');\n\n if (!updatedDeps.some((dep) => dep.depName === 'maven-wrapper')) {\n logger.info(\n 'Maven wrapper version not updated - skipping Artifacts update',\n );\n return null;\n }\n\n const cmd = await createWrapperCommand(packageFileName);\n\n if (!cmd) {\n logger.info('No mvnw found - skipping Artifacts update');\n return null;\n }\n\n const extraEnv = getExtraEnvOptions(updatedDeps);\n await executeWrapperCommand(cmd, config, packageFileName, extraEnv);\n\n const status = await getRepoStatus();\n const artifactFileNames = [\n '.mvn/wrapper/maven-wrapper.properties',\n '.mvn/wrapper/maven-wrapper.jar',\n '.mvn/wrapper/MavenWrapperDownloader.java',\n 'mvnw',\n 'mvnw.cmd',\n ].map(\n (filename) =>\n packageFileName.replace('.mvn/wrapper/maven-wrapper.properties', '') +\n filename,\n );\n const updateArtifactsResult = (\n await getUpdatedArtifacts(status, artifactFileNames)\n ).filter(isTruthy);\n\n logger.debug(\n { files: updateArtifactsResult.map((r) => r.file?.path) },\n `Returning updated maven-wrapper files`,\n );\n return updateArtifactsResult;\n } catch (err) {\n logger.debug({ err }, 'Error setting new Maven Wrapper release value');\n return [\n {\n artifactError: {\n lockFile: packageFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n\nasync function getUpdatedArtifacts(\n status: StatusResult,\n artifactFileNames: string[],\n): Promise<UpdateArtifactsResult[]> {\n const updatedResults: UpdateArtifactsResult[] = [];\n for (const artifactFileName of artifactFileNames) {\n const updatedResult = await addIfUpdated(status, artifactFileName);\n if (updatedResult !== null) {\n updatedResults.push(updatedResult);\n }\n }\n return updatedResults;\n}\n\n/**\n * Find compatible java version for maven.\n * see https://maven.apache.org/developers/compatibility-plan.html\n * @param mavenWrapperVersion current maven version\n * @returns A Java semver range\n */\nexport function getJavaConstraint(\n mavenWrapperVersion: string | null | undefined,\n): string | null {\n const major = mavenWrapperVersion\n ? mavenVersioning.getMajor(mavenWrapperVersion)\n : null;\n\n if (major && major >= 3) {\n return '^17.0.0';\n }\n\n return '^8.0.0';\n}\n\nasync function executeWrapperCommand(\n cmd: string,\n config: UpdateArtifactsConfig,\n packageFileName: string,\n extraEnv: ExtraEnv,\n): Promise<void> {\n logger.debug(`Updating maven wrapper: \"${cmd}\"`);\n const { wrapperFullyQualifiedPath } = getMavenPaths(packageFileName);\n\n const execOptions: ExecOptions = {\n cwdFile: wrapperFullyQualifiedPath,\n docker: {},\n extraEnv,\n toolConstraints: [\n {\n toolName: 'java',\n constraint:\n config.constraints?.java ?? getJavaConstraint(config.currentValue),\n },\n ],\n };\n\n try {\n await exec(cmd, execOptions);\n } catch (err) {\n logger.error({ err }, 'Error executing maven wrapper update command.');\n throw err;\n }\n}\n\nfunction getExtraEnvOptions(deps: PackageDependency[]): ExtraEnv {\n const customMavenWrapperUrl = getCustomMavenWrapperRepoUrl(deps);\n if (customMavenWrapperUrl) {\n return { MVNW_REPOURL: customMavenWrapperUrl };\n }\n return {};\n}\n\nfunction getCustomMavenWrapperRepoUrl(\n deps: PackageDependency[],\n): string | null {\n const replaceString = deps.find(\n (dep) => dep.depName === 'maven-wrapper',\n )?.replaceString;\n\n if (!replaceString) {\n return null;\n }\n\n const match = regEx(/^(.*?)\\/org\\/apache\\/maven\\/wrapper\\//).exec(\n replaceString,\n );\n\n if (!match) {\n return null;\n }\n\n return match[1] === DEFAULT_MAVEN_REPO_URL ? null : match[1];\n}\n\nasync function createWrapperCommand(\n packageFileName: string,\n): Promise<string | null> {\n const {\n wrapperExecutableFileName,\n localProjectDir,\n wrapperFullyQualifiedPath,\n } = getMavenPaths(packageFileName);\n\n return await prepareCommand(\n wrapperExecutableFileName,\n localProjectDir,\n await statLocalFile(wrapperFullyQualifiedPath),\n 'wrapper:wrapper',\n );\n}\n\nfunction mavenWrapperFileName(): string {\n if (\n os.platform() === 'win32' &&\n GlobalConfig.get('binarySource') !== 'docker'\n ) {\n return 'mvnw.cmd';\n }\n return './mvnw';\n}\n\nfunction getMavenPaths(packageFileName: string): MavenWrapperPaths {\n const wrapperExecutableFileName = mavenWrapperFileName();\n const localProjectDir = upath.join(\n upath.dirname(packageFileName),\n packageFileName.includes('mvnw') ? '.' : '../../',\n );\n const wrapperFullyQualifiedPath = upath.join(\n localProjectDir,\n wrapperExecutableFileName,\n );\n return {\n wrapperExecutableFileName,\n localProjectDir,\n wrapperFullyQualifiedPath,\n };\n}\n\nasync function prepareCommand(\n fileName: string,\n cwd: string | undefined,\n pathFileStats: Stats | null,\n args: string | null,\n): Promise<string | null> {\n /* v8 ignore start -- hard to test */\n if (pathFileStats?.isFile() === true) {\n // if the file is not executable by others\n if (os.platform() !== 'win32' && (pathFileStats.mode & 0o1) === 0) {\n // add the execution permission to the owner, group and others\n logger.warn('Maven wrapper is missing the executable bit');\n await chmodLocalFile(\n upath.join(cwd, fileName),\n pathFileStats.mode | 0o111,\n );\n }\n if (args === null) {\n return fileName;\n }\n return `${fileName} ${args}`;\n } /* v8 ignore stop */\n return null;\n}\n"]}
@@ -9,8 +9,7 @@ exports.createNpmToolConfig = createNpmToolConfig;
9
9
  exports.createPipxToolConfig = createPipxToolConfig;
10
10
  exports.createSpmToolConfig = createSpmToolConfig;
11
11
  exports.createUbiToolConfig = createUbiToolConfig;
12
- const tslib_1 = require("tslib");
13
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
12
+ const is_1 = require("@sindresorhus/is");
14
13
  const regex_1 = require("../../../util/regex");
15
14
  const crate_1 = require("../../datasource/crate");
16
15
  const git_refs_1 = require("../../datasource/git-refs");
@@ -45,7 +44,7 @@ const cargoGitVersionRegex = (0, regex_1.regEx)(/^(?<type>tag|branch|rev):(?<ver
45
44
  * @link https://mise.jdx.dev/dev-tools/backends/cargo.html
46
45
  */
47
46
  function createCargoToolConfig(name, version) {
48
- if (!is_1.default.urlString(name)) {
47
+ if (!(0, is_1.isUrlString)(name)) {
49
48
  return {
50
49
  packageName: name,
51
50
  datasource: crate_1.CrateDatasource.id,
@@ -54,7 +53,7 @@ function createCargoToolConfig(name, version) {
54
53
  // tag: branch: or rev: is required for git repository url
55
54
  // e.g. branch:main, tag:0.1.0, rev:abcdef
56
55
  const matchGroups = cargoGitVersionRegex.exec(version)?.groups;
57
- if (is_1.default.undefined(matchGroups)) {
56
+ if ((0, is_1.isUndefined)(matchGroups)) {
58
57
  return {
59
58
  packageName: name,
60
59
  skipReason: 'invalid-version',
@@ -131,7 +130,7 @@ function createPipxToolConfig(name) {
131
130
  const isGitSyntax = name.startsWith('git+');
132
131
  // Does not support zip file url
133
132
  // Avoid type narrowing to prevent type error
134
- if (!isGitSyntax && is_1.default.urlString(name)) {
133
+ if (!isGitSyntax && is_1.isUrlString(name)) {
135
134
  return {
136
135
  packageName: name,
137
136
  skipReason: 'unsupported-url',
@@ -142,7 +141,7 @@ function createPipxToolConfig(name) {
142
141
  if (isGitSyntax) {
143
142
  repoName = pipxGitHubRegex.exec(name)?.groups?.repo;
144
143
  // If the url is not a github repo, treat the version as a git ref
145
- if (is_1.default.undefined(repoName)) {
144
+ if ((0, is_1.isUndefined)(repoName)) {
146
145
  return {
147
146
  packageName: name.replace(/^git\+/g, '').replaceAll(/\.git$/g, ''),
148
147
  datasource: git_refs_1.GitRefsDatasource.id,
@@ -170,7 +169,7 @@ const spmGitHubRegex = (0, regex_1.regEx)(/^https:\/\/github.com\/(?<repo>.+).gi
170
169
  function createSpmToolConfig(name) {
171
170
  let repoName;
172
171
  // Avoid type narrowing to prevent type error
173
- if (is_1.default.urlString(name)) {
172
+ if (is_1.isUrlString(name)) {
174
173
  repoName = spmGitHubRegex.exec(name)?.groups?.repo;
175
174
  // spm backend only supports github repos
176
175
  if (!repoName) {
@@ -192,13 +191,13 @@ function createSpmToolConfig(name) {
192
191
  function createUbiToolConfig(name, version, toolOptions) {
193
192
  let extractVersion = undefined;
194
193
  const hasVPrefix = version.startsWith('v');
195
- const setsTagRegex = !hasVPrefix || is_1.default.string(toolOptions.tag_regex);
194
+ const setsTagRegex = !hasVPrefix || (0, is_1.isString)(toolOptions.tag_regex);
196
195
  if (setsTagRegex) {
197
196
  // By default, use a regex that matches any tag
198
197
  let tagRegex = '.+';
199
198
  // Filter versions by tag_regex if it is specified
200
199
  // ref: https://mise.jdx.dev/dev-tools/backends/ubi.html#ubi-uses-weird-versions
201
- if (is_1.default.string(toolOptions.tag_regex)) {
200
+ if ((0, is_1.isString)(toolOptions.tag_regex)) {
202
201
  // Remove the leading '^' if it exists to avoid duplication
203
202
  tagRegex = toolOptions.tag_regex.replace(/^\^/, '');
204
203
  if (!hasVPrefix) {
@@ -213,7 +212,7 @@ function createUbiToolConfig(name, version, toolOptions) {
213
212
  packageName: name,
214
213
  datasource: github_releases_1.GithubReleasesDatasource.id,
215
214
  currentValue: version,
216
- ...(is_1.default.string(extractVersion) ? { extractVersion } : {}),
215
+ ...((0, is_1.isString)(extractVersion) ? { extractVersion } : {}),
217
216
  };
218
217
  }
219
218
  //# sourceMappingURL=backends.js.map