renovate 42.3.0 → 42.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (732) hide show
  1. package/dist/config/decrypt.js +13 -14
  2. package/dist/config/decrypt.js.map +1 -1
  3. package/dist/config/massage.js +6 -7
  4. package/dist/config/massage.js.map +1 -1
  5. package/dist/config/migrate-validate.js +3 -3
  6. package/dist/config/migrate-validate.js.map +1 -1
  7. package/dist/config/migration.js +19 -20
  8. package/dist/config/migration.js.map +1 -1
  9. package/dist/config/migrations/base/abstract-migration.js +5 -6
  10. package/dist/config/migrations/base/abstract-migration.js.map +1 -1
  11. package/dist/config/migrations/custom/automerge-major-migration.js +2 -3
  12. package/dist/config/migrations/custom/automerge-major-migration.js.map +1 -1
  13. package/dist/config/migrations/custom/automerge-migration.js +4 -5
  14. package/dist/config/migrations/custom/automerge-migration.js.map +1 -1
  15. package/dist/config/migrations/custom/automerge-minor-migration.js +2 -3
  16. package/dist/config/migrations/custom/automerge-minor-migration.js.map +1 -1
  17. package/dist/config/migrations/custom/automerge-patch-migration.js +2 -3
  18. package/dist/config/migrations/custom/automerge-patch-migration.js.map +1 -1
  19. package/dist/config/migrations/custom/automerge-type-migration.js +2 -3
  20. package/dist/config/migrations/custom/automerge-type-migration.js.map +1 -1
  21. package/dist/config/migrations/custom/base-branch-migration.js +3 -4
  22. package/dist/config/migrations/custom/base-branch-migration.js.map +1 -1
  23. package/dist/config/migrations/custom/branch-name-migration.js +2 -3
  24. package/dist/config/migrations/custom/branch-name-migration.js.map +1 -1
  25. package/dist/config/migrations/custom/branch-prefix-migration.js +2 -3
  26. package/dist/config/migrations/custom/branch-prefix-migration.js.map +1 -1
  27. package/dist/config/migrations/custom/compatibility-migration.js +2 -3
  28. package/dist/config/migrations/custom/compatibility-migration.js.map +1 -1
  29. package/dist/config/migrations/custom/composer-ignore-platform-reqs-migration.js +2 -3
  30. package/dist/config/migrations/custom/composer-ignore-platform-reqs-migration.js.map +1 -1
  31. package/dist/config/migrations/custom/custom-managers-migration.js +2 -3
  32. package/dist/config/migrations/custom/custom-managers-migration.js.map +1 -1
  33. package/dist/config/migrations/custom/datasource-migration.js +2 -3
  34. package/dist/config/migrations/custom/datasource-migration.js.map +1 -1
  35. package/dist/config/migrations/custom/dep-types-migration.js +4 -5
  36. package/dist/config/migrations/custom/dep-types-migration.js.map +1 -1
  37. package/dist/config/migrations/custom/enabled-managers-migration.js +2 -3
  38. package/dist/config/migrations/custom/enabled-managers-migration.js.map +1 -1
  39. package/dist/config/migrations/custom/extends-migration.js +4 -5
  40. package/dist/config/migrations/custom/extends-migration.js.map +1 -1
  41. package/dist/config/migrations/custom/fetch-release-notes-migration.js +2 -3
  42. package/dist/config/migrations/custom/fetch-release-notes-migration.js.map +1 -1
  43. package/dist/config/migrations/custom/file-match-migration.js +3 -4
  44. package/dist/config/migrations/custom/file-match-migration.js.map +1 -1
  45. package/dist/config/migrations/custom/host-rules-migration.js +6 -7
  46. package/dist/config/migrations/custom/host-rules-migration.js.map +1 -1
  47. package/dist/config/migrations/custom/ignore-npmrc-file-migration.js +2 -3
  48. package/dist/config/migrations/custom/ignore-npmrc-file-migration.js.map +1 -1
  49. package/dist/config/migrations/custom/include-forks-migration.js +2 -3
  50. package/dist/config/migrations/custom/include-forks-migration.js.map +1 -1
  51. package/dist/config/migrations/custom/match-datasources-migration.js +2 -3
  52. package/dist/config/migrations/custom/match-datasources-migration.js.map +1 -1
  53. package/dist/config/migrations/custom/match-managers-migration.js +2 -3
  54. package/dist/config/migrations/custom/match-managers-migration.js.map +1 -1
  55. package/dist/config/migrations/custom/match-strings-migration.js +2 -3
  56. package/dist/config/migrations/custom/match-strings-migration.js.map +1 -1
  57. package/dist/config/migrations/custom/package-files-migration.js +6 -7
  58. package/dist/config/migrations/custom/package-files-migration.js.map +1 -1
  59. package/dist/config/migrations/custom/package-rules-migration.js +15 -16
  60. package/dist/config/migrations/custom/package-rules-migration.js.map +1 -1
  61. package/dist/config/migrations/custom/packages-migration.js +3 -4
  62. package/dist/config/migrations/custom/packages-migration.js.map +1 -1
  63. package/dist/config/migrations/custom/path-rules-migration.js +3 -4
  64. package/dist/config/migrations/custom/path-rules-migration.js.map +1 -1
  65. package/dist/config/migrations/custom/pin-versions-migration.js +2 -3
  66. package/dist/config/migrations/custom/pin-versions-migration.js.map +1 -1
  67. package/dist/config/migrations/custom/platform-commit-migration.js +2 -3
  68. package/dist/config/migrations/custom/platform-commit-migration.js.map +1 -1
  69. package/dist/config/migrations/custom/post-update-options-migration.js +2 -3
  70. package/dist/config/migrations/custom/post-update-options-migration.js.map +1 -1
  71. package/dist/config/migrations/custom/rebase-stale-prs-migration.js +2 -3
  72. package/dist/config/migrations/custom/rebase-stale-prs-migration.js.map +1 -1
  73. package/dist/config/migrations/custom/recreate-closed-migration.js +2 -3
  74. package/dist/config/migrations/custom/recreate-closed-migration.js.map +1 -1
  75. package/dist/config/migrations/custom/renovate-fork-migration.js +2 -3
  76. package/dist/config/migrations/custom/renovate-fork-migration.js.map +1 -1
  77. package/dist/config/migrations/custom/schedule-migration.js +4 -4
  78. package/dist/config/migrations/custom/schedule-migration.js.map +1 -1
  79. package/dist/config/migrations/custom/semantic-commits-migration.js +2 -3
  80. package/dist/config/migrations/custom/semantic-commits-migration.js.map +1 -1
  81. package/dist/config/migrations/custom/semantic-prefix-migration.js +2 -3
  82. package/dist/config/migrations/custom/semantic-prefix-migration.js.map +1 -1
  83. package/dist/config/migrations/custom/stability-days-migration.js +2 -3
  84. package/dist/config/migrations/custom/stability-days-migration.js.map +1 -1
  85. package/dist/config/migrations/custom/suppress-notifications-migration.js +2 -3
  86. package/dist/config/migrations/custom/suppress-notifications-migration.js.map +1 -1
  87. package/dist/config/migrations/custom/unpublish-safe-migration.js +2 -3
  88. package/dist/config/migrations/custom/unpublish-safe-migration.js.map +1 -1
  89. package/dist/config/migrations/migrations-service.js +2 -3
  90. package/dist/config/migrations/migrations-service.js.map +1 -1
  91. package/dist/config/presets/github/index.js +2 -3
  92. package/dist/config/presets/github/index.js.map +1 -1
  93. package/dist/config/presets/gitlab/index.js +2 -3
  94. package/dist/config/presets/gitlab/index.js.map +1 -1
  95. package/dist/config/presets/index.js +8 -8
  96. package/dist/config/presets/index.js.map +1 -1
  97. package/dist/config/presets/parse.js +2 -3
  98. package/dist/config/presets/parse.js.map +1 -1
  99. package/dist/config/secrets.js +3 -4
  100. package/dist/config/secrets.js.map +1 -1
  101. package/dist/config/validation-helpers/match-base-branches.js +2 -3
  102. package/dist/config/validation-helpers/match-base-branches.js.map +1 -1
  103. package/dist/config/validation-helpers/regex-glob-matchers.js +2 -3
  104. package/dist/config/validation-helpers/regex-glob-matchers.js.map +1 -1
  105. package/dist/config/validation-helpers/utils.js +6 -6
  106. package/dist/config/validation-helpers/utils.js.map +1 -1
  107. package/dist/config/validation.js +29 -29
  108. package/dist/config/validation.js.map +1 -1
  109. package/dist/instrumentation/reporting.js +7 -8
  110. package/dist/instrumentation/reporting.js.map +1 -1
  111. package/dist/instrumentation/utils.js +2 -3
  112. package/dist/instrumentation/utils.js.map +1 -1
  113. package/dist/logger/err-serializer.js +2 -2
  114. package/dist/logger/err-serializer.js.map +1 -1
  115. package/dist/logger/index.js +3 -3
  116. package/dist/logger/index.js.map +1 -1
  117. package/dist/logger/renovate-logger.js +4 -5
  118. package/dist/logger/renovate-logger.js.map +1 -1
  119. package/dist/logger/utils.js +19 -19
  120. package/dist/logger/utils.js.map +1 -1
  121. package/dist/modules/datasource/aws-eks-addon/index.js +2 -2
  122. package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -1
  123. package/dist/modules/datasource/bazel/index.js +2 -2
  124. package/dist/modules/datasource/bazel/index.js.map +1 -1
  125. package/dist/modules/datasource/bitrise/index.js +2 -2
  126. package/dist/modules/datasource/bitrise/index.js.map +1 -1
  127. package/dist/modules/datasource/common.js +4 -4
  128. package/dist/modules/datasource/common.js.map +1 -1
  129. package/dist/modules/datasource/conan/index.js +3 -3
  130. package/dist/modules/datasource/conan/index.js.map +1 -1
  131. package/dist/modules/datasource/custom/formats/html.js +2 -5
  132. package/dist/modules/datasource/custom/formats/html.js.map +1 -1
  133. package/dist/modules/datasource/custom/index.js +2 -3
  134. package/dist/modules/datasource/custom/index.js.map +1 -1
  135. package/dist/modules/datasource/custom/utils.js +4 -4
  136. package/dist/modules/datasource/custom/utils.js.map +1 -1
  137. package/dist/modules/datasource/dart-version/index.js +2 -3
  138. package/dist/modules/datasource/dart-version/index.js.map +1 -1
  139. package/dist/modules/datasource/deno/index.js +2 -2
  140. package/dist/modules/datasource/deno/index.js.map +1 -1
  141. package/dist/modules/datasource/docker/common.js +5 -5
  142. package/dist/modules/datasource/docker/common.js.map +1 -1
  143. package/dist/modules/datasource/docker/index.js +6 -6
  144. package/dist/modules/datasource/docker/index.js.map +1 -1
  145. package/dist/modules/datasource/endoflife-date/index.js +2 -2
  146. package/dist/modules/datasource/endoflife-date/index.js.map +1 -1
  147. package/dist/modules/datasource/galaxy/index.js +2 -2
  148. package/dist/modules/datasource/galaxy/index.js.map +1 -1
  149. package/dist/modules/datasource/galaxy-collection/index.js +2 -2
  150. package/dist/modules/datasource/galaxy-collection/index.js.map +1 -1
  151. package/dist/modules/datasource/git-refs/base.js +2 -2
  152. package/dist/modules/datasource/git-refs/base.js.map +1 -1
  153. package/dist/modules/datasource/github-release-attachments/index.js +2 -2
  154. package/dist/modules/datasource/github-release-attachments/index.js.map +1 -1
  155. package/dist/modules/datasource/github-releases/index.js +2 -3
  156. package/dist/modules/datasource/github-releases/index.js.map +1 -1
  157. package/dist/modules/datasource/github-tags/index.js +2 -3
  158. package/dist/modules/datasource/github-tags/index.js.map +1 -1
  159. package/dist/modules/datasource/go/goproxy-parser.js +3 -3
  160. package/dist/modules/datasource/go/goproxy-parser.js.map +1 -1
  161. package/dist/modules/datasource/go/index.js +2 -2
  162. package/dist/modules/datasource/go/index.js.map +1 -1
  163. package/dist/modules/datasource/go/releases-goproxy.js +3 -3
  164. package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
  165. package/dist/modules/datasource/hackage/index.js +2 -2
  166. package/dist/modules/datasource/hackage/index.js.map +1 -1
  167. package/dist/modules/datasource/hex/schema.js +2 -3
  168. package/dist/modules/datasource/hex/schema.js.map +1 -1
  169. package/dist/modules/datasource/hexpm-bob/index.js +2 -2
  170. package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
  171. package/dist/modules/datasource/index.js +14 -14
  172. package/dist/modules/datasource/index.js.map +1 -1
  173. package/dist/modules/datasource/jsr/index.js +2 -2
  174. package/dist/modules/datasource/jsr/index.js.map +1 -1
  175. package/dist/modules/datasource/jsr/util.js +3 -4
  176. package/dist/modules/datasource/jsr/util.js.map +1 -1
  177. package/dist/modules/datasource/metadata.js +5 -5
  178. package/dist/modules/datasource/metadata.js.map +1 -1
  179. package/dist/modules/datasource/npm/get.js +2 -2
  180. package/dist/modules/datasource/npm/get.js.map +1 -1
  181. package/dist/modules/datasource/npm/npmrc.js +7 -7
  182. package/dist/modules/datasource/npm/npmrc.js.map +1 -1
  183. package/dist/modules/datasource/nuget/v3.js +2 -2
  184. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  185. package/dist/modules/datasource/packagist/index.js +2 -2
  186. package/dist/modules/datasource/packagist/index.js.map +1 -1
  187. package/dist/modules/datasource/packagist/schema.js +3 -4
  188. package/dist/modules/datasource/packagist/schema.js.map +1 -1
  189. package/dist/modules/datasource/pypi/index.js +2 -2
  190. package/dist/modules/datasource/pypi/index.js.map +1 -1
  191. package/dist/modules/datasource/repology/index.js +3 -3
  192. package/dist/modules/datasource/repology/index.js.map +1 -1
  193. package/dist/modules/datasource/rubygems/schema.js +5 -6
  194. package/dist/modules/datasource/rubygems/schema.js.map +1 -1
  195. package/dist/modules/datasource/util.js +2 -3
  196. package/dist/modules/datasource/util.js.map +1 -1
  197. package/dist/modules/manager/argocd/extract.js +3 -4
  198. package/dist/modules/manager/argocd/extract.js.map +1 -1
  199. package/dist/modules/manager/asdf/extract.js +2 -3
  200. package/dist/modules/manager/asdf/extract.js.map +1 -1
  201. package/dist/modules/manager/bazel/artifacts.js +2 -2
  202. package/dist/modules/manager/bazel/artifacts.js.map +1 -1
  203. package/dist/modules/manager/bazel/common.js +4 -5
  204. package/dist/modules/manager/bazel/common.js.map +1 -1
  205. package/dist/modules/manager/bazel/rules/http.js +3 -4
  206. package/dist/modules/manager/bazel/rules/http.js.map +1 -1
  207. package/dist/modules/manager/bazel/rules/maven.js +2 -3
  208. package/dist/modules/manager/bazel/rules/maven.js.map +1 -1
  209. package/dist/modules/manager/bazel-module/parser/starlark.js +2 -3
  210. package/dist/modules/manager/bazel-module/parser/starlark.js.map +1 -1
  211. package/dist/modules/manager/bazel-module/rules.js +3 -3
  212. package/dist/modules/manager/bazel-module/rules.js.map +1 -1
  213. package/dist/modules/manager/bitrise/utils.js +3 -4
  214. package/dist/modules/manager/bitrise/utils.js.map +1 -1
  215. package/dist/modules/manager/buildpacks/extract.js +2 -3
  216. package/dist/modules/manager/buildpacks/extract.js.map +1 -1
  217. package/dist/modules/manager/bun/artifacts.js +2 -2
  218. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  219. package/dist/modules/manager/bun/extract.js +2 -3
  220. package/dist/modules/manager/bun/extract.js.map +1 -1
  221. package/dist/modules/manager/bundler/artifacts.js +3 -3
  222. package/dist/modules/manager/bundler/artifacts.js.map +1 -1
  223. package/dist/modules/manager/bundler/extract.js +5 -6
  224. package/dist/modules/manager/bundler/extract.js.map +1 -1
  225. package/dist/modules/manager/cargo/extract.js +3 -4
  226. package/dist/modules/manager/cargo/extract.js.map +1 -1
  227. package/dist/modules/manager/composer/artifacts.js +3 -3
  228. package/dist/modules/manager/composer/artifacts.js.map +1 -1
  229. package/dist/modules/manager/composer/utils.js +3 -4
  230. package/dist/modules/manager/composer/utils.js.map +1 -1
  231. package/dist/modules/manager/conan/extract.js +2 -3
  232. package/dist/modules/manager/conan/extract.js.map +1 -1
  233. package/dist/modules/manager/copier/artifacts.js +1 -1
  234. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  235. package/dist/modules/manager/copier/utils.js +3 -4
  236. package/dist/modules/manager/copier/utils.js.map +1 -1
  237. package/dist/modules/manager/crow/extract.js +2 -3
  238. package/dist/modules/manager/crow/extract.js.map +1 -1
  239. package/dist/modules/manager/custom/jsonata/index.js +2 -3
  240. package/dist/modules/manager/custom/jsonata/index.js.map +1 -1
  241. package/dist/modules/manager/custom/jsonata/utils.js +3 -3
  242. package/dist/modules/manager/custom/jsonata/utils.js.map +1 -1
  243. package/dist/modules/manager/custom/regex/index.js +2 -3
  244. package/dist/modules/manager/custom/regex/index.js.map +1 -1
  245. package/dist/modules/manager/custom/regex/strategies.js +4 -5
  246. package/dist/modules/manager/custom/regex/strategies.js.map +1 -1
  247. package/dist/modules/manager/custom/regex/utils.js +2 -2
  248. package/dist/modules/manager/custom/regex/utils.js.map +1 -1
  249. package/dist/modules/manager/custom/utils.js +6 -7
  250. package/dist/modules/manager/custom/utils.js.map +1 -1
  251. package/dist/modules/manager/deps-edn/extract.js +13 -14
  252. package/dist/modules/manager/deps-edn/extract.js.map +1 -1
  253. package/dist/modules/manager/deps-edn/parser.js +2 -2
  254. package/dist/modules/manager/deps-edn/parser.js.map +1 -1
  255. package/dist/modules/manager/devbox/artifacts.js +2 -2
  256. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  257. package/dist/modules/manager/docker-compose/extract.js +3 -4
  258. package/dist/modules/manager/docker-compose/extract.js.map +1 -1
  259. package/dist/modules/manager/docker-compose/schema.js +2 -3
  260. package/dist/modules/manager/docker-compose/schema.js.map +1 -1
  261. package/dist/modules/manager/dockerfile/extract.js +5 -5
  262. package/dist/modules/manager/dockerfile/extract.js.map +1 -1
  263. package/dist/modules/manager/fingerprint.generated.js +6 -6
  264. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  265. package/dist/modules/manager/fleet/extract.js +2 -3
  266. package/dist/modules/manager/fleet/extract.js.map +1 -1
  267. package/dist/modules/manager/flux/extract.js +2 -3
  268. package/dist/modules/manager/flux/extract.js.map +1 -1
  269. package/dist/modules/manager/glasskube/extract.js +2 -3
  270. package/dist/modules/manager/glasskube/extract.js.map +1 -1
  271. package/dist/modules/manager/gleam/artifacts.js +3 -4
  272. package/dist/modules/manager/gleam/artifacts.js.map +1 -1
  273. package/dist/modules/manager/gomod/artifacts.js +2 -2
  274. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  275. package/dist/modules/manager/gradle/artifacts.js +2 -2
  276. package/dist/modules/manager/gradle/artifacts.js.map +1 -1
  277. package/dist/modules/manager/gradle/extract/catalog.js +5 -5
  278. package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
  279. package/dist/modules/manager/gradle-wrapper/artifacts.js +2 -2
  280. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  281. package/dist/modules/manager/helm-requirements/extract.js +2 -3
  282. package/dist/modules/manager/helm-requirements/extract.js.map +1 -1
  283. package/dist/modules/manager/helmfile/artifacts.js +2 -3
  284. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  285. package/dist/modules/manager/helmfile/extract.js +4 -5
  286. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  287. package/dist/modules/manager/helmsman/extract.js +4 -5
  288. package/dist/modules/manager/helmsman/extract.js.map +1 -1
  289. package/dist/modules/manager/helmv3/artifacts.js +4 -4
  290. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  291. package/dist/modules/manager/helmv3/extract.js +4 -5
  292. package/dist/modules/manager/helmv3/extract.js.map +1 -1
  293. package/dist/modules/manager/helmv3/oci.js +3 -4
  294. package/dist/modules/manager/helmv3/oci.js.map +1 -1
  295. package/dist/modules/manager/homebrew/extract.js +1 -1
  296. package/dist/modules/manager/homebrew/extract.js.map +1 -1
  297. package/dist/modules/manager/jenkins/extract.js +3 -3
  298. package/dist/modules/manager/jenkins/extract.js.map +1 -1
  299. package/dist/modules/manager/kotlin-script/extract.js +3 -4
  300. package/dist/modules/manager/kotlin-script/extract.js.map +1 -1
  301. package/dist/modules/manager/kubernetes/extract.js +4 -4
  302. package/dist/modules/manager/kubernetes/extract.js.map +1 -1
  303. package/dist/modules/manager/kustomize/artifacts.js +8 -8
  304. package/dist/modules/manager/kustomize/artifacts.js.map +1 -1
  305. package/dist/modules/manager/kustomize/extract.js +8 -8
  306. package/dist/modules/manager/kustomize/extract.js.map +1 -1
  307. package/dist/modules/manager/maven/extract.js +4 -4
  308. package/dist/modules/manager/maven/extract.js.map +1 -1
  309. package/dist/modules/manager/maven/update.js +2 -2
  310. package/dist/modules/manager/maven/update.js.map +1 -1
  311. package/dist/modules/manager/maven-wrapper/artifacts.js +2 -2
  312. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  313. package/dist/modules/manager/mise/backends.js +9 -10
  314. package/dist/modules/manager/mise/backends.js.map +1 -1
  315. package/dist/modules/manager/mise/extract.js +7 -8
  316. package/dist/modules/manager/mise/extract.js.map +1 -1
  317. package/dist/modules/manager/mix/artifacts.js +3 -3
  318. package/dist/modules/manager/mix/artifacts.js.map +1 -1
  319. package/dist/modules/manager/nix/artifacts.js +2 -2
  320. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  321. package/dist/modules/manager/npm/detect.js +2 -2
  322. package/dist/modules/manager/npm/detect.js.map +1 -1
  323. package/dist/modules/manager/npm/extract/common/dependency.js +2 -2
  324. package/dist/modules/manager/npm/extract/common/dependency.js.map +1 -1
  325. package/dist/modules/manager/npm/extract/common/overrides.js +3 -4
  326. package/dist/modules/manager/npm/extract/common/overrides.js.map +1 -1
  327. package/dist/modules/manager/npm/extract/common/package-file.js +8 -9
  328. package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
  329. package/dist/modules/manager/npm/extract/index.js +10 -10
  330. package/dist/modules/manager/npm/extract/index.js.map +1 -1
  331. package/dist/modules/manager/npm/extract/pnpm.js +7 -7
  332. package/dist/modules/manager/npm/extract/pnpm.js.map +1 -1
  333. package/dist/modules/manager/npm/extract/post/locked-versions.js +3 -3
  334. package/dist/modules/manager/npm/extract/post/locked-versions.js.map +1 -1
  335. package/dist/modules/manager/npm/extract/post/monorepo.js +3 -4
  336. package/dist/modules/manager/npm/extract/post/monorepo.js.map +1 -1
  337. package/dist/modules/manager/npm/extract/yarn.js +2 -3
  338. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  339. package/dist/modules/manager/npm/extract/yarnrc.js +2 -3
  340. package/dist/modules/manager/npm/extract/yarnrc.js.map +1 -1
  341. package/dist/modules/manager/npm/post-update/index.js +6 -6
  342. package/dist/modules/manager/npm/post-update/index.js.map +1 -1
  343. package/dist/modules/manager/npm/post-update/npm.js +4 -4
  344. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  345. package/dist/modules/manager/npm/post-update/pnpm.js +3 -3
  346. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  347. package/dist/modules/manager/npm/post-update/rules.js +2 -2
  348. package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
  349. package/dist/modules/manager/npm/post-update/utils.js +2 -2
  350. package/dist/modules/manager/npm/post-update/utils.js.map +1 -1
  351. package/dist/modules/manager/npm/post-update/yarn.js +3 -3
  352. package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
  353. package/dist/modules/manager/npm/update/dependency/index.js +2 -3
  354. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  355. package/dist/modules/manager/npm/update/dependency/pnpm.js +2 -3
  356. package/dist/modules/manager/npm/update/dependency/pnpm.js.map +1 -1
  357. package/dist/modules/manager/npm/update/dependency/yarn.js +3 -4
  358. package/dist/modules/manager/npm/update/dependency/yarn.js.map +1 -1
  359. package/dist/modules/manager/nuget/config-formatter.js +2 -2
  360. package/dist/modules/manager/nuget/config-formatter.js.map +1 -1
  361. package/dist/modules/manager/nuget/extract.js +4 -4
  362. package/dist/modules/manager/nuget/extract.js.map +1 -1
  363. package/dist/modules/manager/nuget/package-tree.js +2 -2
  364. package/dist/modules/manager/nuget/package-tree.js.map +1 -1
  365. package/dist/modules/manager/ocb/extract.js +2 -3
  366. package/dist/modules/manager/ocb/extract.js.map +1 -1
  367. package/dist/modules/manager/osgi/extract.js +4 -4
  368. package/dist/modules/manager/osgi/extract.js.map +1 -1
  369. package/dist/modules/manager/pep621/artifacts.js +3 -4
  370. package/dist/modules/manager/pep621/artifacts.js.map +1 -1
  371. package/dist/modules/manager/pep621/processors/uv.js +2 -3
  372. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  373. package/dist/modules/manager/pep621/schema.d.ts +1 -1
  374. package/dist/modules/manager/pep621/schema.js +1 -0
  375. package/dist/modules/manager/pep621/schema.js.map +1 -1
  376. package/dist/modules/manager/pep621/utils.js +8 -10
  377. package/dist/modules/manager/pep621/utils.js.map +1 -1
  378. package/dist/modules/manager/pep723/schema.js +2 -3
  379. package/dist/modules/manager/pep723/schema.js.map +1 -1
  380. package/dist/modules/manager/pip-compile/common.js +3 -3
  381. package/dist/modules/manager/pip-compile/common.js.map +1 -1
  382. package/dist/modules/manager/pip_requirements/artifacts.js +2 -3
  383. package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
  384. package/dist/modules/manager/pip_requirements/extract.js +2 -3
  385. package/dist/modules/manager/pip_requirements/extract.js.map +1 -1
  386. package/dist/modules/manager/pipenv/artifacts.js +3 -4
  387. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  388. package/dist/modules/manager/pipenv/extract.js +6 -7
  389. package/dist/modules/manager/pipenv/extract.js.map +1 -1
  390. package/dist/modules/manager/pixi/artifacts.js +2 -3
  391. package/dist/modules/manager/pixi/artifacts.js.map +1 -1
  392. package/dist/modules/manager/pixi/extract.js +2 -3
  393. package/dist/modules/manager/pixi/extract.js.map +1 -1
  394. package/dist/modules/manager/poetry/artifacts.js +4 -5
  395. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  396. package/dist/modules/manager/poetry/extract.js +2 -3
  397. package/dist/modules/manager/poetry/extract.js.map +1 -1
  398. package/dist/modules/manager/poetry/schema.d.ts +4 -0
  399. package/dist/modules/manager/poetry/schema.js +5 -1
  400. package/dist/modules/manager/poetry/schema.js.map +1 -1
  401. package/dist/modules/manager/pre-commit/extract.js +4 -5
  402. package/dist/modules/manager/pre-commit/extract.js.map +1 -1
  403. package/dist/modules/manager/pub/artifacts.js +3 -4
  404. package/dist/modules/manager/pub/artifacts.js.map +1 -1
  405. package/dist/modules/manager/pub/extract.js +8 -11
  406. package/dist/modules/manager/pub/extract.js.map +1 -1
  407. package/dist/modules/manager/renovate-config-presets/extract.js +4 -5
  408. package/dist/modules/manager/renovate-config-presets/extract.js.map +1 -1
  409. package/dist/modules/manager/tekton/extract.js +9 -10
  410. package/dist/modules/manager/tekton/extract.js.map +1 -1
  411. package/dist/modules/manager/terraform/base.js +2 -3
  412. package/dist/modules/manager/terraform/base.js.map +1 -1
  413. package/dist/modules/manager/terraform/extract.js +2 -2
  414. package/dist/modules/manager/terraform/extract.js.map +1 -1
  415. package/dist/modules/manager/terraform/extractors/others/modules.js +3 -4
  416. package/dist/modules/manager/terraform/extractors/others/modules.js.map +1 -1
  417. package/dist/modules/manager/terraform/extractors/others/providers.js +3 -4
  418. package/dist/modules/manager/terraform/extractors/others/providers.js.map +1 -1
  419. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js +7 -8
  420. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js.map +1 -1
  421. package/dist/modules/manager/terraform/extractors/resources/helm-release.js +5 -6
  422. package/dist/modules/manager/terraform/extractors/resources/helm-release.js.map +1 -1
  423. package/dist/modules/manager/terraform/extractors/resources/terraform-workspace.js +3 -4
  424. package/dist/modules/manager/terraform/extractors/resources/terraform-workspace.js.map +1 -1
  425. package/dist/modules/manager/terraform/extractors/terraform-block/required-provider.js +4 -5
  426. package/dist/modules/manager/terraform/extractors/terraform-block/required-provider.js.map +1 -1
  427. package/dist/modules/manager/terraform/extractors/terraform-block/terraform-version.js +3 -3
  428. package/dist/modules/manager/terraform/extractors/terraform-block/terraform-version.js.map +1 -1
  429. package/dist/modules/manager/terraform/lockfile/index.js +2 -2
  430. package/dist/modules/manager/terraform/lockfile/index.js.map +1 -1
  431. package/dist/modules/manager/terraform/lockfile/util.js +2 -3
  432. package/dist/modules/manager/terraform/lockfile/util.js.map +1 -1
  433. package/dist/modules/manager/terraform/util.js +2 -3
  434. package/dist/modules/manager/terraform/util.js.map +1 -1
  435. package/dist/modules/manager/tflint-plugin/plugins.js +2 -3
  436. package/dist/modules/manager/tflint-plugin/plugins.js.map +1 -1
  437. package/dist/modules/manager/travis/extract.js +5 -6
  438. package/dist/modules/manager/travis/extract.js.map +1 -1
  439. package/dist/modules/manager/woodpecker/extract.js +2 -3
  440. package/dist/modules/manager/woodpecker/extract.js.map +1 -1
  441. package/dist/modules/platform/azure/index.js +2 -2
  442. package/dist/modules/platform/azure/index.js.map +1 -1
  443. package/dist/modules/platform/bitbucket/index.js +5 -5
  444. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  445. package/dist/modules/platform/bitbucket-server/pr-cache.js +3 -3
  446. package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -1
  447. package/dist/modules/platform/bitbucket-server/utils.js +2 -2
  448. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  449. package/dist/modules/platform/codecommit/codecommit-client.js +2 -2
  450. package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
  451. package/dist/modules/platform/forgejo/index.js +5 -5
  452. package/dist/modules/platform/forgejo/index.js.map +1 -1
  453. package/dist/modules/platform/forgejo/pr-cache.js +1 -1
  454. package/dist/modules/platform/forgejo/pr-cache.js.map +1 -1
  455. package/dist/modules/platform/forgejo/utils.js +2 -2
  456. package/dist/modules/platform/forgejo/utils.js.map +1 -1
  457. package/dist/modules/platform/gitea/index.js +5 -5
  458. package/dist/modules/platform/gitea/index.js.map +1 -1
  459. package/dist/modules/platform/gitea/pr-cache.js +1 -1
  460. package/dist/modules/platform/gitea/pr-cache.js.map +1 -1
  461. package/dist/modules/platform/gitea/utils.js +2 -2
  462. package/dist/modules/platform/gitea/utils.js.map +1 -1
  463. package/dist/modules/platform/github/common.js +4 -5
  464. package/dist/modules/platform/github/common.js.map +1 -1
  465. package/dist/modules/platform/github/index.js +5 -5
  466. package/dist/modules/platform/github/index.js.map +1 -1
  467. package/dist/modules/platform/github/pr.js +2 -3
  468. package/dist/modules/platform/github/pr.js.map +1 -1
  469. package/dist/modules/platform/gitlab/http.js +2 -3
  470. package/dist/modules/platform/gitlab/http.js.map +1 -1
  471. package/dist/modules/platform/gitlab/index.js +3 -3
  472. package/dist/modules/platform/gitlab/index.js.map +1 -1
  473. package/dist/modules/platform/gitlab/utils.js +3 -3
  474. package/dist/modules/platform/gitlab/utils.js.map +1 -1
  475. package/dist/modules/platform/pr-body.js +2 -3
  476. package/dist/modules/platform/pr-body.js.map +1 -1
  477. package/dist/modules/versioning/composer/index.js +2 -3
  478. package/dist/modules/versioning/composer/index.js.map +1 -1
  479. package/dist/modules/versioning/generic.js +5 -6
  480. package/dist/modules/versioning/generic.js.map +1 -1
  481. package/dist/modules/versioning/gradle/compare.js +3 -4
  482. package/dist/modules/versioning/gradle/compare.js.map +1 -1
  483. package/dist/modules/versioning/ivy/parse.js +1 -1
  484. package/dist/modules/versioning/ivy/parse.js.map +1 -1
  485. package/dist/modules/versioning/maven/index.js +1 -1
  486. package/dist/modules/versioning/maven/index.js.map +1 -1
  487. package/dist/modules/versioning/nixpkgs/index.js +6 -7
  488. package/dist/modules/versioning/nixpkgs/index.js.map +1 -1
  489. package/dist/modules/versioning/npm/range.js +2 -2
  490. package/dist/modules/versioning/npm/range.js.map +1 -1
  491. package/dist/modules/versioning/nuget/index.js +1 -1
  492. package/dist/modules/versioning/nuget/index.js.map +1 -1
  493. package/dist/modules/versioning/rpm/index.js +4 -5
  494. package/dist/modules/versioning/rpm/index.js.map +1 -1
  495. package/dist/modules/versioning/schema.js +2 -2
  496. package/dist/modules/versioning/schema.js.map +1 -1
  497. package/dist/modules/versioning/semver-coerced/index.js +3 -3
  498. package/dist/modules/versioning/semver-coerced/index.js.map +1 -1
  499. package/dist/modules/versioning/semver-partial/index.js +4 -4
  500. package/dist/modules/versioning/semver-partial/index.js.map +1 -1
  501. package/dist/proxy.js +3 -4
  502. package/dist/proxy.js.map +1 -1
  503. package/dist/util/array.js +4 -5
  504. package/dist/util/array.js.map +1 -1
  505. package/dist/util/assign-keys.js +2 -3
  506. package/dist/util/assign-keys.js.map +1 -1
  507. package/dist/util/cache/package/decorator.js +6 -6
  508. package/dist/util/cache/package/decorator.js.map +1 -1
  509. package/dist/util/cache/package/ttl.js +4 -5
  510. package/dist/util/cache/package/ttl.js.map +1 -1
  511. package/dist/util/cache/repository/impl/base.js +3 -4
  512. package/dist/util/cache/repository/impl/base.js.map +1 -1
  513. package/dist/util/cache/repository/impl/s3.js +2 -3
  514. package/dist/util/cache/repository/impl/s3.js.map +1 -1
  515. package/dist/util/exec/common.js +2 -3
  516. package/dist/util/exec/common.js.map +1 -1
  517. package/dist/util/exec/containerbase.js +2 -2
  518. package/dist/util/exec/containerbase.js.map +1 -1
  519. package/dist/util/exec/docker/index.js +5 -5
  520. package/dist/util/exec/docker/index.js.map +1 -1
  521. package/dist/util/exec/index.js +2 -2
  522. package/dist/util/exec/index.js.map +1 -1
  523. package/dist/util/exec/utils.js +3 -4
  524. package/dist/util/exec/utils.js.map +1 -1
  525. package/dist/util/filter-map.js +2 -3
  526. package/dist/util/filter-map.js.map +1 -1
  527. package/dist/util/fs/index.js +3 -3
  528. package/dist/util/fs/index.js.map +1 -1
  529. package/dist/util/git/auth.js +2 -3
  530. package/dist/util/git/auth.js.map +1 -1
  531. package/dist/util/git/behind-base-branch-cache.js +2 -1
  532. package/dist/util/git/behind-base-branch-cache.js.map +1 -1
  533. package/dist/util/git/config.js +3 -4
  534. package/dist/util/git/config.js.map +1 -1
  535. package/dist/util/git/conflicts-cache.js +2 -1
  536. package/dist/util/git/conflicts-cache.js.map +1 -1
  537. package/dist/util/git/index.js +5 -5
  538. package/dist/util/git/index.js.map +1 -1
  539. package/dist/util/git/private-key.js +2 -2
  540. package/dist/util/git/private-key.js.map +1 -1
  541. package/dist/util/github/graphql/datasource-fetcher.js +2 -1
  542. package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
  543. package/dist/util/host-rules.js +6 -6
  544. package/dist/util/host-rules.js.map +1 -1
  545. package/dist/util/http/auth.js +3 -4
  546. package/dist/util/http/auth.js.map +1 -1
  547. package/dist/util/http/bitbucket-server.js +2 -3
  548. package/dist/util/http/bitbucket-server.js.map +1 -1
  549. package/dist/util/http/bitbucket.js +3 -4
  550. package/dist/util/http/bitbucket.js.map +1 -1
  551. package/dist/util/http/cache/package-http-cache-provider.js +2 -2
  552. package/dist/util/http/cache/package-http-cache-provider.js.map +1 -1
  553. package/dist/util/http/forgejo.js +3 -4
  554. package/dist/util/http/forgejo.js.map +1 -1
  555. package/dist/util/http/gitea.js +3 -4
  556. package/dist/util/http/gitea.js.map +1 -1
  557. package/dist/util/http/github.js +10 -10
  558. package/dist/util/http/github.js.map +1 -1
  559. package/dist/util/http/gitlab.js +4 -5
  560. package/dist/util/http/gitlab.js.map +1 -1
  561. package/dist/util/http/host-rules.js +10 -10
  562. package/dist/util/http/host-rules.js.map +1 -1
  563. package/dist/util/http/http.js +5 -5
  564. package/dist/util/http/http.js.map +1 -1
  565. package/dist/util/http/rate-limits.js +3 -3
  566. package/dist/util/http/rate-limits.js.map +1 -1
  567. package/dist/util/http/retry-after.js +3 -4
  568. package/dist/util/http/retry-after.js.map +1 -1
  569. package/dist/util/interpolator.js +8 -9
  570. package/dist/util/interpolator.js.map +1 -1
  571. package/dist/util/merge-confidence/index.js +5 -5
  572. package/dist/util/merge-confidence/index.js.map +1 -1
  573. package/dist/util/number.js +2 -3
  574. package/dist/util/number.js.map +1 -1
  575. package/dist/util/package-rules/base-branches.js +3 -4
  576. package/dist/util/package-rules/base-branches.js.map +1 -1
  577. package/dist/util/package-rules/categories.js +3 -4
  578. package/dist/util/package-rules/categories.js.map +1 -1
  579. package/dist/util/package-rules/current-age.js +3 -4
  580. package/dist/util/package-rules/current-age.js.map +1 -1
  581. package/dist/util/package-rules/current-value.js +2 -3
  582. package/dist/util/package-rules/current-value.js.map +1 -1
  583. package/dist/util/package-rules/current-version.js +5 -5
  584. package/dist/util/package-rules/current-version.js.map +1 -1
  585. package/dist/util/package-rules/datasources.js +3 -4
  586. package/dist/util/package-rules/datasources.js.map +1 -1
  587. package/dist/util/package-rules/dep-names.js +3 -4
  588. package/dist/util/package-rules/dep-names.js.map +1 -1
  589. package/dist/util/package-rules/dep-types.js +2 -3
  590. package/dist/util/package-rules/dep-types.js.map +1 -1
  591. package/dist/util/package-rules/files.js +4 -5
  592. package/dist/util/package-rules/files.js.map +1 -1
  593. package/dist/util/package-rules/index.js +6 -6
  594. package/dist/util/package-rules/index.js.map +1 -1
  595. package/dist/util/package-rules/managers.js +3 -4
  596. package/dist/util/package-rules/managers.js.map +1 -1
  597. package/dist/util/package-rules/merge-confidence.js +5 -6
  598. package/dist/util/package-rules/merge-confidence.js.map +1 -1
  599. package/dist/util/package-rules/new-value.js +2 -3
  600. package/dist/util/package-rules/new-value.js.map +1 -1
  601. package/dist/util/package-rules/package-names.js +2 -3
  602. package/dist/util/package-rules/package-names.js.map +1 -1
  603. package/dist/util/package-rules/repositories.js +3 -4
  604. package/dist/util/package-rules/repositories.js.map +1 -1
  605. package/dist/util/package-rules/sourceurls.js +2 -3
  606. package/dist/util/package-rules/sourceurls.js.map +1 -1
  607. package/dist/util/package-rules/update-types.js +2 -3
  608. package/dist/util/package-rules/update-types.js.map +1 -1
  609. package/dist/util/pretty-time.js +4 -4
  610. package/dist/util/pretty-time.js.map +1 -1
  611. package/dist/util/regex.js +2 -3
  612. package/dist/util/regex.js.map +1 -1
  613. package/dist/util/s3.js +2 -3
  614. package/dist/util/s3.js.map +1 -1
  615. package/dist/util/sanitize.js +2 -3
  616. package/dist/util/sanitize.js.map +1 -1
  617. package/dist/util/string-match.js +2 -3
  618. package/dist/util/string-match.js.map +1 -1
  619. package/dist/util/template/index.js +6 -6
  620. package/dist/util/template/index.js.map +1 -1
  621. package/dist/util/url.js +5 -5
  622. package/dist/util/url.js.map +1 -1
  623. package/dist/workers/global/autodiscover.js +3 -4
  624. package/dist/workers/global/autodiscover.js.map +1 -1
  625. package/dist/workers/global/config/parse/additional-config-file.js +4 -4
  626. package/dist/workers/global/config/parse/additional-config-file.js.map +1 -1
  627. package/dist/workers/global/config/parse/coersions.js +2 -2
  628. package/dist/workers/global/config/parse/coersions.js.map +1 -1
  629. package/dist/workers/global/config/parse/env.js +2 -2
  630. package/dist/workers/global/config/parse/env.js.map +1 -1
  631. package/dist/workers/global/config/parse/file.js +5 -5
  632. package/dist/workers/global/config/parse/file.js.map +1 -1
  633. package/dist/workers/global/config/parse/index.js +6 -7
  634. package/dist/workers/global/config/parse/index.js.map +1 -1
  635. package/dist/workers/global/config/parse/util.js +2 -2
  636. package/dist/workers/global/config/parse/util.js.map +1 -1
  637. package/dist/workers/global/index.js +5 -5
  638. package/dist/workers/global/index.js.map +1 -1
  639. package/dist/workers/global/limits.js +6 -7
  640. package/dist/workers/global/limits.js.map +1 -1
  641. package/dist/workers/repository/config-migration/branch/index.js +2 -3
  642. package/dist/workers/repository/config-migration/branch/index.js.map +1 -1
  643. package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -2
  644. package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
  645. package/dist/workers/repository/config-migration/pr/index.js +3 -3
  646. package/dist/workers/repository/config-migration/pr/index.js.map +1 -1
  647. package/dist/workers/repository/dependency-dashboard.js +10 -10
  648. package/dist/workers/repository/dependency-dashboard.js.map +1 -1
  649. package/dist/workers/repository/extract/index.js +2 -3
  650. package/dist/workers/repository/extract/index.js.map +1 -1
  651. package/dist/workers/repository/extract/manager-files.js +2 -3
  652. package/dist/workers/repository/extract/manager-files.js.map +1 -1
  653. package/dist/workers/repository/extract/supersedes.js +4 -5
  654. package/dist/workers/repository/extract/supersedes.js.map +1 -1
  655. package/dist/workers/repository/finalize/prune.js +2 -3
  656. package/dist/workers/repository/finalize/prune.js.map +1 -1
  657. package/dist/workers/repository/init/inherited.js +5 -5
  658. package/dist/workers/repository/init/inherited.js.map +1 -1
  659. package/dist/workers/repository/init/merge.js +13 -13
  660. package/dist/workers/repository/init/merge.js.map +1 -1
  661. package/dist/workers/repository/model/commit-message.js +2 -3
  662. package/dist/workers/repository/model/commit-message.js.map +1 -1
  663. package/dist/workers/repository/onboarding/branch/check.js +2 -1
  664. package/dist/workers/repository/onboarding/branch/check.js.map +1 -1
  665. package/dist/workers/repository/onboarding/branch/index.js +3 -4
  666. package/dist/workers/repository/onboarding/branch/index.js.map +1 -1
  667. package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js +7 -8
  668. package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js.map +1 -1
  669. package/dist/workers/repository/onboarding/pr/config-description.js +2 -5
  670. package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
  671. package/dist/workers/repository/onboarding/pr/index.js +3 -3
  672. package/dist/workers/repository/onboarding/pr/index.js.map +1 -1
  673. package/dist/workers/repository/package-files.js +8 -9
  674. package/dist/workers/repository/package-files.js.map +1 -1
  675. package/dist/workers/repository/process/extract-update.js +2 -2
  676. package/dist/workers/repository/process/extract-update.js.map +1 -1
  677. package/dist/workers/repository/process/fetch.js +3 -3
  678. package/dist/workers/repository/process/fetch.js.map +1 -1
  679. package/dist/workers/repository/process/lookup/current.js +2 -3
  680. package/dist/workers/repository/process/lookup/current.js.map +1 -1
  681. package/dist/workers/repository/process/lookup/filter-checks.js +4 -5
  682. package/dist/workers/repository/process/lookup/filter-checks.js.map +1 -1
  683. package/dist/workers/repository/process/lookup/generate.js +2 -3
  684. package/dist/workers/repository/process/lookup/generate.js.map +1 -1
  685. package/dist/workers/repository/process/lookup/index.js +15 -16
  686. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  687. package/dist/workers/repository/process/lookup/utils.js +7 -7
  688. package/dist/workers/repository/process/lookup/utils.js.map +1 -1
  689. package/dist/workers/repository/process/vulnerabilities.js +11 -11
  690. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  691. package/dist/workers/repository/process/write.js +2 -3
  692. package/dist/workers/repository/process/write.js.map +1 -1
  693. package/dist/workers/repository/reconfigure/comment.js +2 -5
  694. package/dist/workers/repository/reconfigure/comment.js.map +1 -1
  695. package/dist/workers/repository/reconfigure/utils.js +2 -3
  696. package/dist/workers/repository/reconfigure/utils.js.map +1 -1
  697. package/dist/workers/repository/reconfigure/validate.js +2 -3
  698. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  699. package/dist/workers/repository/update/branch/auto-replace.js +4 -5
  700. package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
  701. package/dist/workers/repository/update/branch/commit.js +3 -4
  702. package/dist/workers/repository/update/branch/commit.js.map +1 -1
  703. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +12 -5
  704. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  705. package/dist/workers/repository/update/branch/get-updated.js +8 -9
  706. package/dist/workers/repository/update/branch/get-updated.js.map +1 -1
  707. package/dist/workers/repository/update/branch/index.js +3 -3
  708. package/dist/workers/repository/update/branch/index.js.map +1 -1
  709. package/dist/workers/repository/update/branch/schedule.js +2 -2
  710. package/dist/workers/repository/update/branch/schedule.js.map +1 -1
  711. package/dist/workers/repository/update/pr/body/notes.js +2 -2
  712. package/dist/workers/repository/update/pr/body/notes.js.map +1 -1
  713. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +2 -2
  714. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  715. package/dist/workers/repository/update/pr/changelog/index.js +3 -3
  716. package/dist/workers/repository/update/pr/changelog/index.js.map +1 -1
  717. package/dist/workers/repository/update/pr/changelog/release-notes.js +4 -4
  718. package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
  719. package/dist/workers/repository/update/pr/changelog/source.js +8 -8
  720. package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
  721. package/dist/workers/repository/update/pr/code-owners.js +2 -2
  722. package/dist/workers/repository/update/pr/code-owners.js.map +1 -1
  723. package/dist/workers/repository/update/pr/index.js +7 -8
  724. package/dist/workers/repository/update/pr/index.js.map +1 -1
  725. package/dist/workers/repository/update/pr/labels.js +4 -4
  726. package/dist/workers/repository/update/pr/labels.js.map +1 -1
  727. package/dist/workers/repository/update/pr/participants.js +4 -5
  728. package/dist/workers/repository/update/pr/participants.js.map +1 -1
  729. package/dist/workers/repository/updates/generate.js +4 -4
  730. package/dist/workers/repository/updates/generate.js.map +1 -1
  731. package/package.json +5 -5
  732. package/renovate-schema.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmfile/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { regEx } from '../../../util/regex';\nimport { parseYaml } from '../../../util/yaml';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { HelmDatasource } from '../../datasource/helm';\nimport { isOCIRegistry, removeOCIPrefix } from '../helmv3/oci';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport type { Doc, HelmRepository } from './schema';\nimport { Doc as Document } from './schema';\nimport {\n kustomizationsKeysUsed,\n localChartHasKustomizationsYaml,\n} from './utils';\n\nfunction isValidChartName(name: string | undefined, oci: boolean): boolean {\n if (oci) {\n return !!name && !regEx(/[!@#$%^&*(),.?\":{}|<>A-Z]/).test(name);\n } else {\n return !!name && !regEx(/[!@#$%^&*(),.?\":{}/|<>A-Z]/).test(name);\n }\n}\n\nfunction isLocalPath(possiblePath: string): boolean {\n return ['./', '../', '/'].some((localPrefix) =>\n possiblePath.startsWith(localPrefix),\n );\n}\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): Promise<PackageFileContent | null> {\n const deps: PackageDependency[] = [];\n let registryData: Record<string, HelmRepository> = {};\n // Record kustomization usage for all deps, since updating artifacts is run on the helmfile.yaml as a whole.\n let needKustomize = false;\n const docs: Doc[] = parseYaml(content, {\n customSchema: Document,\n failureBehaviour: 'filter',\n removeTemplates: true,\n });\n\n for (const doc of docs) {\n // Always check for repositories in the current document and override the existing ones if any (as YAML does)\n if (doc.repositories) {\n registryData = {};\n for (const repo of doc.repositories) {\n if (repo.url?.startsWith('git+')) {\n logger.debug(\n { repo, packageFile },\n `Skipping unsupported helm-git repository.`,\n );\n continue;\n }\n registryData[repo.name] = repo;\n }\n logger.debug(\n { registryAliases: registryData, packageFile },\n `repositories discovered.`,\n );\n }\n\n for (const dep of coerceArray(doc.releases)) {\n let depName = dep.chart;\n let packageName: string | null = null;\n let repoName: string | null = null;\n\n // If it starts with ./ ../ or / then it's a local path\n if (isLocalPath(dep.chart)) {\n if (\n kustomizationsKeysUsed(dep) ||\n (await localChartHasKustomizationsYaml(dep, packageFile))\n ) {\n needKustomize = true;\n }\n deps.push({\n depName: dep.name,\n skipReason: 'local-chart',\n });\n continue;\n }\n\n if (isOCIRegistry(dep.chart)) {\n packageName = depName = removeOCIPrefix(dep.chart);\n } else {\n if (dep.chart.includes('/')) {\n const v = dep.chart.split('/');\n repoName = v.shift()!;\n depName = v.join('/');\n } else {\n repoName = dep.chart;\n }\n if (registryData[repoName]?.oci) {\n const alias = registryData[repoName]?.url;\n if (alias) {\n packageName = `${alias}/${depName}`;\n }\n repoName = null;\n }\n }\n\n if (!is.string(dep.version)) {\n deps.push({\n depName,\n skipReason: 'invalid-version',\n });\n continue;\n }\n\n const res: PackageDependency = {\n depName,\n currentValue: dep.version,\n };\n if (kustomizationsKeysUsed(dep)) {\n needKustomize = true;\n }\n if (packageName) {\n res.datasource = DockerDatasource.id;\n res.packageName = packageName;\n } else if (repoName) {\n res.registryUrls = [registryData[repoName]?.url]\n .concat([config.registryAliases?.[repoName]] as string[])\n .filter(is.string);\n }\n\n // By definition on helm the chart name should be lowercase letter + number + -\n // However helmfile support templating of that field\n if (\n !isValidChartName(\n isOCIRegistry(dep.chart)\n ? depName.slice(depName.lastIndexOf('/') + 1)\n : depName,\n !!packageName,\n )\n ) {\n res.skipReason = 'unsupported-chart-type';\n }\n\n // Skip in case we cannot locate the registry\n if (\n res.datasource !== DockerDatasource.id &&\n is.emptyArray(res.registryUrls)\n ) {\n res.skipReason = 'unknown-registry';\n }\n\n deps.push(res);\n }\n }\n\n return deps.length\n ? {\n deps,\n datasource: HelmDatasource.id,\n ...(needKustomize && { managerData: { needKustomize } }),\n }\n : null;\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmfile/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { isEmptyArray, isString } from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { regEx } from '../../../util/regex';\nimport { parseYaml } from '../../../util/yaml';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { HelmDatasource } from '../../datasource/helm';\nimport { isOCIRegistry, removeOCIPrefix } from '../helmv3/oci';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport type { Doc, HelmRepository } from './schema';\nimport { Doc as Document } from './schema';\nimport {\n kustomizationsKeysUsed,\n localChartHasKustomizationsYaml,\n} from './utils';\n\nfunction isValidChartName(name: string | undefined, oci: boolean): boolean {\n if (oci) {\n return !!name && !regEx(/[!@#$%^&*(),.?\":{}|<>A-Z]/).test(name);\n } else {\n return !!name && !regEx(/[!@#$%^&*(),.?\":{}/|<>A-Z]/).test(name);\n }\n}\n\nfunction isLocalPath(possiblePath: string): boolean {\n return ['./', '../', '/'].some((localPrefix) =>\n possiblePath.startsWith(localPrefix),\n );\n}\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): Promise<PackageFileContent | null> {\n const deps: PackageDependency[] = [];\n let registryData: Record<string, HelmRepository> = {};\n // Record kustomization usage for all deps, since updating artifacts is run on the helmfile.yaml as a whole.\n let needKustomize = false;\n const docs: Doc[] = parseYaml(content, {\n customSchema: Document,\n failureBehaviour: 'filter',\n removeTemplates: true,\n });\n\n for (const doc of docs) {\n // Always check for repositories in the current document and override the existing ones if any (as YAML does)\n if (doc.repositories) {\n registryData = {};\n for (const repo of doc.repositories) {\n if (repo.url?.startsWith('git+')) {\n logger.debug(\n { repo, packageFile },\n `Skipping unsupported helm-git repository.`,\n );\n continue;\n }\n registryData[repo.name] = repo;\n }\n logger.debug(\n { registryAliases: registryData, packageFile },\n `repositories discovered.`,\n );\n }\n\n for (const dep of coerceArray(doc.releases)) {\n let depName = dep.chart;\n let packageName: string | null = null;\n let repoName: string | null = null;\n\n // If it starts with ./ ../ or / then it's a local path\n if (isLocalPath(dep.chart)) {\n if (\n kustomizationsKeysUsed(dep) ||\n (await localChartHasKustomizationsYaml(dep, packageFile))\n ) {\n needKustomize = true;\n }\n deps.push({\n depName: dep.name,\n skipReason: 'local-chart',\n });\n continue;\n }\n\n if (isOCIRegistry(dep.chart)) {\n packageName = depName = removeOCIPrefix(dep.chart);\n } else {\n if (dep.chart.includes('/')) {\n const v = dep.chart.split('/');\n repoName = v.shift()!;\n depName = v.join('/');\n } else {\n repoName = dep.chart;\n }\n if (registryData[repoName]?.oci) {\n const alias = registryData[repoName]?.url;\n if (alias) {\n packageName = `${alias}/${depName}`;\n }\n repoName = null;\n }\n }\n\n if (!isString(dep.version)) {\n deps.push({\n depName,\n skipReason: 'invalid-version',\n });\n continue;\n }\n\n const res: PackageDependency = {\n depName,\n currentValue: dep.version,\n };\n if (kustomizationsKeysUsed(dep)) {\n needKustomize = true;\n }\n if (packageName) {\n res.datasource = DockerDatasource.id;\n res.packageName = packageName;\n } else if (repoName) {\n res.registryUrls = [registryData[repoName]?.url]\n .concat([config.registryAliases?.[repoName]] as string[])\n .filter(isString);\n }\n\n // By definition on helm the chart name should be lowercase letter + number + -\n // However helmfile support templating of that field\n if (\n !isValidChartName(\n isOCIRegistry(dep.chart)\n ? depName.slice(depName.lastIndexOf('/') + 1)\n : depName,\n !!packageName,\n )\n ) {\n res.skipReason = 'unsupported-chart-type';\n }\n\n // Skip in case we cannot locate the registry\n if (\n res.datasource !== DockerDatasource.id &&\n isEmptyArray(res.registryUrls)\n ) {\n res.skipReason = 'unknown-registry';\n }\n\n deps.push(res);\n }\n }\n\n return deps.length\n ? {\n deps,\n datasource: HelmDatasource.id,\n ...(needKustomize && { managerData: { needKustomize } }),\n }\n : null;\n}\n"]}
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractPackageFile = extractPackageFile;
4
- const tslib_1 = require("tslib");
5
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
4
+ const is_1 = require("@sindresorhus/is");
6
5
  const logger_1 = require("../../../logger");
7
6
  const regex_1 = require("../../../util/regex");
8
7
  const yaml_1 = require("../../../util/yaml");
@@ -35,13 +34,13 @@ function createDep(key, doc) {
35
34
  dep.skipReason = 'invalid-url';
36
35
  return dep;
37
36
  }
38
- if (!is_1.default.nonEmptyString(regexResult.groups.packageName)) {
37
+ if (!(0, is_1.isNonEmptyString)(regexResult.groups.packageName)) {
39
38
  dep.skipReason = 'invalid-name';
40
39
  return dep;
41
40
  }
42
41
  dep.packageName = regexResult.groups.packageName;
43
42
  const registryUrl = doc.helmRepos[regexResult.groups.registryRef];
44
- if (!is_1.default.nonEmptyString(registryUrl)) {
43
+ if (!(0, is_1.isNonEmptyString)(registryUrl)) {
45
44
  dep.skipReason = 'no-repository';
46
45
  return dep;
47
46
  }
@@ -58,7 +57,7 @@ function extractPackageFile(content, packageFile, _config) {
58
57
  }
59
58
  const deps = Object.keys(doc.apps)
60
59
  .map((key) => createDep(key, doc))
61
- .filter(is_1.default.truthy); // filter null values
60
+ .filter(is_1.isTruthy); // filter null values
62
61
  if (deps.length === 0) {
63
62
  return null;
64
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmsman/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { regEx } from '../../../util/regex';\nimport { parseSingleYaml } from '../../../util/yaml';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { HelmDatasource } from '../../datasource/helm';\nimport { isOCIRegistry, removeOCIPrefix } from '../helmv3/oci';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport type { HelmsmanDocument } from './types';\n\nconst chartRegex = regEx('^(?<registryRef>[^/]*)/(?<packageName>[^/]*)$');\n\nfunction createDep(\n key: string,\n doc: HelmsmanDocument,\n): PackageDependency | null {\n const dep: PackageDependency = {\n depName: key,\n datasource: HelmDatasource.id,\n };\n const anApp = doc.apps[key];\n if (!anApp) {\n return null;\n }\n\n if (!anApp.version) {\n dep.skipReason = 'unspecified-version';\n return dep;\n }\n dep.currentValue = anApp.version;\n\n // in case of OCI repository, we need a PackageDependency with a DockerDatasource and a packageName\n if (isOCIRegistry(anApp.chart)) {\n dep.datasource = DockerDatasource.id;\n dep.packageName = removeOCIPrefix(anApp.chart!);\n return dep;\n }\n\n const regexResult = anApp.chart ? chartRegex.exec(anApp.chart) : null;\n if (!regexResult?.groups) {\n dep.skipReason = 'invalid-url';\n return dep;\n }\n\n if (!is.nonEmptyString(regexResult.groups.packageName)) {\n dep.skipReason = 'invalid-name';\n return dep;\n }\n dep.packageName = regexResult.groups.packageName;\n\n const registryUrl = doc.helmRepos[regexResult.groups.registryRef];\n if (!is.nonEmptyString(registryUrl)) {\n dep.skipReason = 'no-repository';\n return dep;\n }\n dep.registryUrls = [registryUrl];\n\n return dep;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n _config: ExtractConfig,\n): PackageFileContent | null {\n try {\n // TODO: use schema (#9610)\n const doc = parseSingleYaml<HelmsmanDocument>(content);\n if (!doc.apps) {\n logger.debug({ packageFile }, `Missing apps keys`);\n return null;\n }\n\n const deps = Object.keys(doc.apps)\n .map((key) => createDep(key, doc))\n .filter(is.truthy); // filter null values\n\n if (deps.length === 0) {\n return null;\n }\n\n return { deps };\n } catch (err) /* istanbul ignore next */ {\n if (err.stack?.startsWith('YAMLException:')) {\n logger.debug({ err, packageFile }, 'YAML exception extracting');\n } else {\n logger.debug({ err, packageFile }, 'Error extracting');\n }\n return null;\n }\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmsman/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNonEmptyString, isTruthy } from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { regEx } from '../../../util/regex';\nimport { parseSingleYaml } from '../../../util/yaml';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { HelmDatasource } from '../../datasource/helm';\nimport { isOCIRegistry, removeOCIPrefix } from '../helmv3/oci';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport type { HelmsmanDocument } from './types';\n\nconst chartRegex = regEx('^(?<registryRef>[^/]*)/(?<packageName>[^/]*)$');\n\nfunction createDep(\n key: string,\n doc: HelmsmanDocument,\n): PackageDependency | null {\n const dep: PackageDependency = {\n depName: key,\n datasource: HelmDatasource.id,\n };\n const anApp = doc.apps[key];\n if (!anApp) {\n return null;\n }\n\n if (!anApp.version) {\n dep.skipReason = 'unspecified-version';\n return dep;\n }\n dep.currentValue = anApp.version;\n\n // in case of OCI repository, we need a PackageDependency with a DockerDatasource and a packageName\n if (isOCIRegistry(anApp.chart)) {\n dep.datasource = DockerDatasource.id;\n dep.packageName = removeOCIPrefix(anApp.chart!);\n return dep;\n }\n\n const regexResult = anApp.chart ? chartRegex.exec(anApp.chart) : null;\n if (!regexResult?.groups) {\n dep.skipReason = 'invalid-url';\n return dep;\n }\n\n if (!isNonEmptyString(regexResult.groups.packageName)) {\n dep.skipReason = 'invalid-name';\n return dep;\n }\n dep.packageName = regexResult.groups.packageName;\n\n const registryUrl = doc.helmRepos[regexResult.groups.registryRef];\n if (!isNonEmptyString(registryUrl)) {\n dep.skipReason = 'no-repository';\n return dep;\n }\n dep.registryUrls = [registryUrl];\n\n return dep;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n _config: ExtractConfig,\n): PackageFileContent | null {\n try {\n // TODO: use schema (#9610)\n const doc = parseSingleYaml<HelmsmanDocument>(content);\n if (!doc.apps) {\n logger.debug({ packageFile }, `Missing apps keys`);\n return null;\n }\n\n const deps = Object.keys(doc.apps)\n .map((key) => createDep(key, doc))\n .filter(isTruthy); // filter null values\n\n if (deps.length === 0) {\n return null;\n }\n\n return { deps };\n } catch (err) /* istanbul ignore next */ {\n if (err.stack?.startsWith('YAMLException:')) {\n logger.debug({ err, packageFile }, 'YAML exception extracting');\n } else {\n logger.debug({ err, packageFile }, 'Error extracting');\n }\n return null;\n }\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateArtifacts = updateArtifacts;
4
4
  const tslib_1 = require("tslib");
5
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
5
+ const is_1 = require("@sindresorhus/is");
6
6
  const p_map_1 = tslib_1.__importDefault(require("p-map"));
7
7
  const shlex_1 = require("shlex");
8
8
  const error_messages_1 = require("../../../constants/error-messages");
@@ -111,9 +111,9 @@ async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileCon
111
111
  await helmCommands(execOptions, packageFileName, repositories);
112
112
  logger_1.logger.debug('Returning updated Helm artifacts');
113
113
  const fileChanges = [];
114
- if (is_1.default.truthy(existingLockFileContent)) {
114
+ if ((0, is_1.isTruthy)(existingLockFileContent)) {
115
115
  const newHelmLockContent = await (0, fs_1.readLocalFile)(lockFileName, 'utf8');
116
- const isLockFileChanged = !is_1.default.string(newHelmLockContent) ||
116
+ const isLockFileChanged = !(0, is_1.isString)(newHelmLockContent) ||
117
117
  isHelmLockChanged(existingLockFileContent, newHelmLockContent);
118
118
  if (isLockFileChanged) {
119
119
  fileChanges.push({
@@ -129,7 +129,7 @@ async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileCon
129
129
  }
130
130
  }
131
131
  // add modified helm chart archives to artifacts
132
- if (is_1.default.truthy(isUpdateOptionAddChartArchives)) {
132
+ if ((0, is_1.isTruthy)(isUpdateOptionAddChartArchives)) {
133
133
  const chartsPath = (0, fs_1.getSiblingFileName)(packageFileName, 'charts');
134
134
  const status = await (0, git_1.getRepoStatus)();
135
135
  const chartsAddition = status.not_added ?? [];
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmv3/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport pMap from 'p-map';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions, ToolConstraint } from '../../../util/exec/types';\nimport {\n getParentDir,\n getSiblingFileName,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport * as hostRules from '../../../util/host-rules';\nimport { regEx } from '../../../util/regex';\nimport * as yaml from '../../../util/yaml';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { HelmDatasource } from '../../datasource/helm';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport { generateHelmEnvs, generateLoginCmd } from './common';\nimport { isOCIRegistry, removeOCIPrefix } from './oci';\nimport type { ChartDefinition, Repository, RepositoryRule } from './types';\nimport {\n aliasRecordToRepositories,\n getRepositories,\n isFileInDir,\n} from './utils';\n\nasync function helmCommands(\n execOptions: ExecOptions,\n manifestPath: string,\n repositories: Repository[],\n): Promise<void> {\n const cmd: string[] = [];\n // get OCI registries and detect host rules\n const registries: RepositoryRule[] = repositories\n .filter(isOCIRegistry)\n .map((value) => {\n return {\n ...value,\n repository: removeOCIPrefix(value.repository),\n hostRule: hostRules.find({\n url: value.repository.replace('oci://', 'https://'), //TODO we need to replace this, as oci:// will not be accepted as protocol\n hostType: DockerDatasource.id,\n }),\n };\n });\n\n // if credentials for the registry have been found, log into it\n await pMap(registries, async (value) => {\n const loginCmd = await generateLoginCmd(value);\n if (loginCmd) {\n cmd.push(loginCmd);\n }\n });\n\n // find classic Chart repositories and fitting host rules\n const classicRepositories: RepositoryRule[] = repositories\n .filter((repository) => !isOCIRegistry(repository))\n .map((value) => {\n return {\n ...value,\n hostRule: hostRules.find({\n url: value.repository,\n hostType: HelmDatasource.id,\n }),\n };\n });\n\n // add helm repos if an alias or credentials for the url are defined\n classicRepositories.forEach((value) => {\n const { username, password } = value.hostRule;\n const parameters = [`${quote(value.repository)}`, `--force-update`];\n const isPrivateRepo = username && password;\n if (isPrivateRepo) {\n parameters.push(`--username ${quote(username)}`);\n parameters.push(`--password ${quote(password)}`);\n }\n\n cmd.push(`helm repo add ${quote(value.name)} ${parameters.join(' ')}`);\n });\n\n cmd.push(`helm dependency update ${quote(getParentDir(manifestPath))}`);\n\n await exec(cmd, execOptions);\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`helmv3.updateArtifacts(${packageFileName})`);\n\n const { isLockFileMaintenance } = config;\n const isUpdateOptionAddChartArchives = config.postUpdateOptions?.includes(\n 'helmUpdateSubChartArchives',\n );\n\n if (\n !isLockFileMaintenance &&\n (updatedDeps === undefined || updatedDeps.length < 1)\n ) {\n logger.debug('No updated helmv3 deps - returning null');\n return null;\n }\n\n const lockFileName = getSiblingFileName(packageFileName, 'Chart.lock');\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent && !isUpdateOptionAddChartArchives) {\n logger.debug('No Chart.lock found');\n return null;\n }\n try {\n // get repositories and registries defined in the package file\n // TODO: use schema (#9610)\n const packages = yaml.parseSingleYaml<ChartDefinition>(\n newPackageFileContent,\n );\n const locks = existingLockFileContent\n ? yaml.parseSingleYaml<ChartDefinition>(existingLockFileContent)\n : { dependencies: [] };\n\n const chartDefinitions: ChartDefinition[] = [];\n // prioritize registryAlias naming for Helm repositories\n if (config.registryAliases) {\n chartDefinitions.push({\n dependencies: aliasRecordToRepositories(config.registryAliases),\n });\n }\n chartDefinitions.push(packages, locks);\n\n const repositories = getRepositories(chartDefinitions);\n\n await writeLocalFile(packageFileName, newPackageFileContent);\n logger.debug('Updating Helm artifacts');\n const helmToolConstraint: ToolConstraint = {\n toolName: 'helm',\n constraint: config.constraints?.helm,\n };\n\n const execOptions: ExecOptions = {\n docker: {},\n extraEnv: generateHelmEnvs(),\n toolConstraints: [helmToolConstraint],\n };\n await helmCommands(execOptions, packageFileName, repositories);\n logger.debug('Returning updated Helm artifacts');\n\n const fileChanges: UpdateArtifactsResult[] = [];\n\n if (is.truthy(existingLockFileContent)) {\n const newHelmLockContent = await readLocalFile(lockFileName, 'utf8');\n const isLockFileChanged =\n !is.string(newHelmLockContent) ||\n isHelmLockChanged(existingLockFileContent, newHelmLockContent);\n if (isLockFileChanged) {\n fileChanges.push({\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newHelmLockContent,\n },\n });\n } else {\n logger.debug('Chart.lock is unchanged');\n }\n }\n\n // add modified helm chart archives to artifacts\n if (is.truthy(isUpdateOptionAddChartArchives)) {\n const chartsPath = getSiblingFileName(packageFileName, 'charts');\n const status = await getRepoStatus();\n const chartsAddition = status.not_added ?? [];\n const chartsDeletion = status.deleted ?? [];\n\n for (const file of chartsAddition) {\n // only add artifacts in the chart sub path\n if (!isFileInDir(chartsPath, file)) {\n continue;\n }\n fileChanges.push({\n file: {\n type: 'addition',\n path: file,\n contents: await readLocalFile(file),\n },\n });\n }\n\n for (const file of chartsDeletion) {\n // only add artifacts in the chart sub path\n if (!isFileInDir(chartsPath, file)) {\n continue;\n }\n fileChanges.push({\n file: {\n type: 'deletion',\n path: file,\n },\n });\n }\n }\n\n return fileChanges.length > 0 ? fileChanges : null;\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update Helm lock file');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n\nfunction isHelmLockChanged(oldContent: string, newContent: string): boolean {\n const regex = regEx(/^generated: \".+\"$/m);\n return newContent.replace(regex, '') !== oldContent.replace(regex, '');\n}\n"]}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmv3/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import { isString, isTruthy } from '@sindresorhus/is';\nimport pMap from 'p-map';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions, ToolConstraint } from '../../../util/exec/types';\nimport {\n getParentDir,\n getSiblingFileName,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport * as hostRules from '../../../util/host-rules';\nimport { regEx } from '../../../util/regex';\nimport * as yaml from '../../../util/yaml';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { HelmDatasource } from '../../datasource/helm';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport { generateHelmEnvs, generateLoginCmd } from './common';\nimport { isOCIRegistry, removeOCIPrefix } from './oci';\nimport type { ChartDefinition, Repository, RepositoryRule } from './types';\nimport {\n aliasRecordToRepositories,\n getRepositories,\n isFileInDir,\n} from './utils';\n\nasync function helmCommands(\n execOptions: ExecOptions,\n manifestPath: string,\n repositories: Repository[],\n): Promise<void> {\n const cmd: string[] = [];\n // get OCI registries and detect host rules\n const registries: RepositoryRule[] = repositories\n .filter(isOCIRegistry)\n .map((value) => {\n return {\n ...value,\n repository: removeOCIPrefix(value.repository),\n hostRule: hostRules.find({\n url: value.repository.replace('oci://', 'https://'), //TODO we need to replace this, as oci:// will not be accepted as protocol\n hostType: DockerDatasource.id,\n }),\n };\n });\n\n // if credentials for the registry have been found, log into it\n await pMap(registries, async (value) => {\n const loginCmd = await generateLoginCmd(value);\n if (loginCmd) {\n cmd.push(loginCmd);\n }\n });\n\n // find classic Chart repositories and fitting host rules\n const classicRepositories: RepositoryRule[] = repositories\n .filter((repository) => !isOCIRegistry(repository))\n .map((value) => {\n return {\n ...value,\n hostRule: hostRules.find({\n url: value.repository,\n hostType: HelmDatasource.id,\n }),\n };\n });\n\n // add helm repos if an alias or credentials for the url are defined\n classicRepositories.forEach((value) => {\n const { username, password } = value.hostRule;\n const parameters = [`${quote(value.repository)}`, `--force-update`];\n const isPrivateRepo = username && password;\n if (isPrivateRepo) {\n parameters.push(`--username ${quote(username)}`);\n parameters.push(`--password ${quote(password)}`);\n }\n\n cmd.push(`helm repo add ${quote(value.name)} ${parameters.join(' ')}`);\n });\n\n cmd.push(`helm dependency update ${quote(getParentDir(manifestPath))}`);\n\n await exec(cmd, execOptions);\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`helmv3.updateArtifacts(${packageFileName})`);\n\n const { isLockFileMaintenance } = config;\n const isUpdateOptionAddChartArchives = config.postUpdateOptions?.includes(\n 'helmUpdateSubChartArchives',\n );\n\n if (\n !isLockFileMaintenance &&\n (updatedDeps === undefined || updatedDeps.length < 1)\n ) {\n logger.debug('No updated helmv3 deps - returning null');\n return null;\n }\n\n const lockFileName = getSiblingFileName(packageFileName, 'Chart.lock');\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent && !isUpdateOptionAddChartArchives) {\n logger.debug('No Chart.lock found');\n return null;\n }\n try {\n // get repositories and registries defined in the package file\n // TODO: use schema (#9610)\n const packages = yaml.parseSingleYaml<ChartDefinition>(\n newPackageFileContent,\n );\n const locks = existingLockFileContent\n ? yaml.parseSingleYaml<ChartDefinition>(existingLockFileContent)\n : { dependencies: [] };\n\n const chartDefinitions: ChartDefinition[] = [];\n // prioritize registryAlias naming for Helm repositories\n if (config.registryAliases) {\n chartDefinitions.push({\n dependencies: aliasRecordToRepositories(config.registryAliases),\n });\n }\n chartDefinitions.push(packages, locks);\n\n const repositories = getRepositories(chartDefinitions);\n\n await writeLocalFile(packageFileName, newPackageFileContent);\n logger.debug('Updating Helm artifacts');\n const helmToolConstraint: ToolConstraint = {\n toolName: 'helm',\n constraint: config.constraints?.helm,\n };\n\n const execOptions: ExecOptions = {\n docker: {},\n extraEnv: generateHelmEnvs(),\n toolConstraints: [helmToolConstraint],\n };\n await helmCommands(execOptions, packageFileName, repositories);\n logger.debug('Returning updated Helm artifacts');\n\n const fileChanges: UpdateArtifactsResult[] = [];\n\n if (isTruthy(existingLockFileContent)) {\n const newHelmLockContent = await readLocalFile(lockFileName, 'utf8');\n const isLockFileChanged =\n !isString(newHelmLockContent) ||\n isHelmLockChanged(existingLockFileContent, newHelmLockContent);\n if (isLockFileChanged) {\n fileChanges.push({\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newHelmLockContent,\n },\n });\n } else {\n logger.debug('Chart.lock is unchanged');\n }\n }\n\n // add modified helm chart archives to artifacts\n if (isTruthy(isUpdateOptionAddChartArchives)) {\n const chartsPath = getSiblingFileName(packageFileName, 'charts');\n const status = await getRepoStatus();\n const chartsAddition = status.not_added ?? [];\n const chartsDeletion = status.deleted ?? [];\n\n for (const file of chartsAddition) {\n // only add artifacts in the chart sub path\n if (!isFileInDir(chartsPath, file)) {\n continue;\n }\n fileChanges.push({\n file: {\n type: 'addition',\n path: file,\n contents: await readLocalFile(file),\n },\n });\n }\n\n for (const file of chartsDeletion) {\n // only add artifacts in the chart sub path\n if (!isFileInDir(chartsPath, file)) {\n continue;\n }\n fileChanges.push({\n file: {\n type: 'deletion',\n path: file,\n },\n });\n }\n }\n\n return fileChanges.length > 0 ? fileChanges : null;\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update Helm lock file');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n\nfunction isHelmLockChanged(oldContent: string, newContent: string): boolean {\n const regex = regEx(/^generated: \".+\"$/m);\n return newContent.replace(regex, '') !== oldContent.replace(regex, '');\n}\n"]}
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractPackageFile = extractPackageFile;
4
- const tslib_1 = require("tslib");
5
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
4
+ const is_1 = require("@sindresorhus/is");
6
5
  const logger_1 = require("../../../logger");
7
6
  const fs_1 = require("../../../util/fs");
8
7
  const yaml_1 = require("../../../util/yaml");
@@ -28,12 +27,12 @@ async function extractPackageFile(content, packageFile, config) {
28
27
  }
29
28
  const packageFileVersion = chart.version;
30
29
  let deps = [];
31
- if (!is_1.default.nonEmptyArray(chart?.dependencies)) {
30
+ if (!(0, is_1.isNonEmptyArray)(chart?.dependencies)) {
32
31
  logger_1.logger.debug(`Chart has no dependencies in ${packageFile}`);
33
32
  return null;
34
33
  }
35
- const validDependencies = chart.dependencies.filter((dep) => is_1.default.nonEmptyString(dep.name) && is_1.default.nonEmptyString(dep.version));
36
- if (!is_1.default.nonEmptyArray(validDependencies)) {
34
+ const validDependencies = chart.dependencies.filter((dep) => (0, is_1.isNonEmptyString)(dep.name) && (0, is_1.isNonEmptyString)(dep.version));
35
+ if (!(0, is_1.isNonEmptyArray)(validDependencies)) {
37
36
  logger_1.logger.debug('Name and/or version missing for all dependencies');
38
37
  return null;
39
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmv3/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { getSiblingFileName, localPathExists } from '../../../util/fs';\nimport { parseSingleYaml } from '../../../util/yaml';\nimport { HelmDatasource } from '../../datasource/helm';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport { parseRepository, resolveAlias } from './utils';\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): Promise<PackageFileContent | null> {\n let chart: {\n apiVersion: string;\n name: string;\n version: string;\n dependencies: { name: string; version: string; repository: string }[];\n };\n try {\n // TODO: use schema (#9610)\n chart = parseSingleYaml(content);\n if (!(chart?.apiVersion && chart.name && chart.version)) {\n logger.debug(\n { packageFile },\n 'Failed to find required fields in Chart.yaml',\n );\n return null;\n }\n if (chart.apiVersion !== 'v2') {\n logger.debug(\n { packageFile },\n 'Unsupported Chart apiVersion. Only v2 is supported.',\n );\n return null;\n }\n } catch {\n logger.debug({ packageFile }, `Failed to parse helm Chart.yaml`);\n return null;\n }\n const packageFileVersion = chart.version;\n let deps: PackageDependency[] = [];\n if (!is.nonEmptyArray(chart?.dependencies)) {\n logger.debug(`Chart has no dependencies in ${packageFile}`);\n return null;\n }\n const validDependencies = chart.dependencies.filter(\n (dep) => is.nonEmptyString(dep.name) && is.nonEmptyString(dep.version),\n );\n if (!is.nonEmptyArray(validDependencies)) {\n logger.debug('Name and/or version missing for all dependencies');\n return null;\n }\n deps = validDependencies.map((dep) => {\n const res: PackageDependency = {\n depName: dep.name,\n currentValue: dep.version,\n };\n if (!dep.repository) {\n res.skipReason = 'no-repository';\n return res;\n }\n\n const repository = resolveAlias(dep.repository, config.registryAliases!);\n if (!repository) {\n res.skipReason = 'placeholder-url';\n return res;\n }\n\n const result: PackageDependency = {\n ...res,\n ...parseRepository(dep.name, repository),\n };\n return result;\n });\n const res: PackageFileContent = {\n deps,\n datasource: HelmDatasource.id,\n packageFileVersion,\n };\n const lockFileName = getSiblingFileName(packageFile, 'Chart.lock');\n // istanbul ignore if\n if (await localPathExists(lockFileName)) {\n res.lockFiles = [lockFileName];\n }\n return res;\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmv3/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNonEmptyArray, isNonEmptyString } from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { getSiblingFileName, localPathExists } from '../../../util/fs';\nimport { parseSingleYaml } from '../../../util/yaml';\nimport { HelmDatasource } from '../../datasource/helm';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport { parseRepository, resolveAlias } from './utils';\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): Promise<PackageFileContent | null> {\n let chart: {\n apiVersion: string;\n name: string;\n version: string;\n dependencies: { name: string; version: string; repository: string }[];\n };\n try {\n // TODO: use schema (#9610)\n chart = parseSingleYaml(content);\n if (!(chart?.apiVersion && chart.name && chart.version)) {\n logger.debug(\n { packageFile },\n 'Failed to find required fields in Chart.yaml',\n );\n return null;\n }\n if (chart.apiVersion !== 'v2') {\n logger.debug(\n { packageFile },\n 'Unsupported Chart apiVersion. Only v2 is supported.',\n );\n return null;\n }\n } catch {\n logger.debug({ packageFile }, `Failed to parse helm Chart.yaml`);\n return null;\n }\n const packageFileVersion = chart.version;\n let deps: PackageDependency[] = [];\n if (!isNonEmptyArray(chart?.dependencies)) {\n logger.debug(`Chart has no dependencies in ${packageFile}`);\n return null;\n }\n const validDependencies = chart.dependencies.filter(\n (dep) => isNonEmptyString(dep.name) && isNonEmptyString(dep.version),\n );\n if (!isNonEmptyArray(validDependencies)) {\n logger.debug('Name and/or version missing for all dependencies');\n return null;\n }\n deps = validDependencies.map((dep) => {\n const res: PackageDependency = {\n depName: dep.name,\n currentValue: dep.version,\n };\n if (!dep.repository) {\n res.skipReason = 'no-repository';\n return res;\n }\n\n const repository = resolveAlias(dep.repository, config.registryAliases!);\n if (!repository) {\n res.skipReason = 'placeholder-url';\n return res;\n }\n\n const result: PackageDependency = {\n ...res,\n ...parseRepository(dep.name, repository),\n };\n return result;\n });\n const res: PackageFileContent = {\n deps,\n datasource: HelmDatasource.id,\n packageFileVersion,\n };\n const lockFileName = getSiblingFileName(packageFile, 'Chart.lock');\n // istanbul ignore if\n if (await localPathExists(lockFileName)) {\n res.lockFiles = [lockFileName];\n }\n return res;\n}\n"]}
@@ -2,13 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isOCIRegistry = isOCIRegistry;
4
4
  exports.removeOCIPrefix = removeOCIPrefix;
5
- const tslib_1 = require("tslib");
6
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
5
+ const is_1 = require("@sindresorhus/is");
7
6
  function isOCIRegistry(repository) {
8
- if (is_1.default.nullOrUndefined(repository)) {
7
+ if ((0, is_1.isNullOrUndefined)(repository)) {
9
8
  return false;
10
9
  }
11
- const repo = is_1.default.string(repository) ? repository : repository.repository;
10
+ const repo = (0, is_1.isString)(repository) ? repository : repository.repository;
12
11
  return repo.startsWith('oci://');
13
12
  }
14
13
  function removeOCIPrefix(repository) {
@@ -1 +1 @@
1
- {"version":3,"file":"oci.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmv3/oci.ts"],"names":[],"mappings":";;AAGA,sCAQC;AAED,0CAKC;;AAlBD,kEAAkC;AAGlC,SAAgB,aAAa,CAC3B,UAAkD;IAElD,IAAI,YAAE,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,YAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,eAAe,CAAC,UAAkB;IAChD,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport type { Repository } from './types';\n\nexport function isOCIRegistry(\n repository: Repository | string | null | undefined,\n): boolean {\n if (is.nullOrUndefined(repository)) {\n return false;\n }\n const repo = is.string(repository) ? repository : repository.repository;\n return repo.startsWith('oci://');\n}\n\nexport function removeOCIPrefix(repository: string): string {\n if (isOCIRegistry(repository)) {\n return repository.replace('oci://', '');\n }\n return repository;\n}\n"]}
1
+ {"version":3,"file":"oci.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmv3/oci.ts"],"names":[],"mappings":";;AAGA,sCAQC;AAED,0CAKC;AAlBD,yCAA+D;AAG/D,SAAgB,aAAa,CAC3B,UAAkD;IAElD,IAAI,IAAA,sBAAiB,EAAC,UAAU,CAAC,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,aAAQ,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACvE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,eAAe,CAAC,UAAkB;IAChD,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["import { isNullOrUndefined, isString } from '@sindresorhus/is';\nimport type { Repository } from './types';\n\nexport function isOCIRegistry(\n repository: Repository | string | null | undefined,\n): boolean {\n if (isNullOrUndefined(repository)) {\n return false;\n }\n const repo = isString(repository) ? repository : repository.repository;\n return repo.startsWith('oci://');\n}\n\nexport function removeOCIPrefix(repository: string): string {\n if (isOCIRegistry(repository)) {\n return repository.replace('oci://', '');\n }\n return repository;\n}\n"]}
@@ -157,7 +157,7 @@ function extractPackageFile(content) {
157
157
  skipReason = 'unsupported-url';
158
158
  }
159
159
  const sha256 = extractSha256(cleanContent);
160
- if (!sha256 || sha256.length !== 64) {
160
+ if (sha256?.length !== 64) {
161
161
  logger_1.logger.debug('Error: Invalid sha256 field');
162
162
  skipReason = 'invalid-sha256';
163
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/homebrew/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport type { SkipReason } from '../../../types';\nimport { regEx } from '../../../util/regex';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport type { PackageDependency, PackageFileContent } from '../types';\nimport type { UrlPathParsedResult } from './types';\nimport { isSpace, removeComments, skip } from './util';\n\nfunction parseSha256(idx: number, content: string): string | null {\n let i = idx;\n i += 'sha256'.length;\n i = skip(i, content, (c) => isSpace(c));\n if (content[i] !== '\"' && content[i] !== \"'\") {\n return null;\n }\n i += 1;\n const j = skip(i, content, (c) => c !== '\"' && c !== \"'\");\n const sha256 = content.slice(i, j);\n return sha256;\n}\n\nfunction extractSha256(content: string): string | null {\n const sha256RegExp = regEx(/(^|\\s)sha256(\\s)/);\n let i = content.search(sha256RegExp);\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseSha256(i, content);\n}\n\nfunction parseUrl(idx: number, content: string): string | null {\n let i = idx;\n i += 'url'.length;\n i = skip(i, content, (c) => isSpace(c));\n const chr = content[i];\n if (chr !== '\"' && chr !== \"'\") {\n return null;\n }\n i += 1;\n const j = skip(i, content, (c) => c !== '\"' && c !== \"'\" && !isSpace(c));\n const url = content.slice(i, j);\n return url;\n}\n\nfunction extractUrl(content: string): string | null {\n const urlRegExp = regEx(/(^|\\s)url(\\s)/);\n let i = content.search(urlRegExp);\n // content.search() returns -1 if not found\n if (i === -1) {\n return null;\n }\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseUrl(i, content);\n}\n\nexport function parseUrlPath(\n urlStr: string | null | undefined,\n): UrlPathParsedResult | null {\n if (!urlStr) {\n return null;\n }\n try {\n const url = new URL(urlStr);\n if (url.hostname !== 'github.com') {\n return null;\n }\n let s = url.pathname.split('/');\n s = s.filter((val) => val);\n const ownerName = s[0];\n const repoName = s[1];\n let currentValue: string | undefined;\n if (s[2] === 'archive') {\n // old archive url in form: [...]/archive/<tag>.tar.gz\n currentValue = s[3];\n if (currentValue === 'refs') {\n // new archive url in form: [...]/archive/refs/tags/<tag>.tar.gz\n currentValue = s[5];\n }\n const targz = currentValue.slice(\n currentValue.length - 7,\n currentValue.length,\n );\n if (targz === '.tar.gz') {\n currentValue = currentValue.substring(0, currentValue.length - 7);\n }\n } else if (s[2] === 'releases' && s[3] === 'download') {\n currentValue = s[4];\n }\n if (!currentValue) {\n return null;\n }\n return { currentValue, ownerName, repoName };\n } catch {\n return null;\n }\n}\n\n/* This function parses the \"class className < Formula\" header\n and returns the className and index of the character just after the header */\nfunction parseClassHeader(idx: number, content: string): string | null {\n let i = idx;\n i += 'class'.length;\n i = skip(i, content, (c) => isSpace(c));\n // Skip all non space and non '<' characters\n let j = skip(i, content, (c) => !isSpace(c) && c !== '<');\n const className = content.slice(i, j);\n i = j;\n // Skip spaces\n i = skip(i, content, (c) => isSpace(c));\n if (content[i] === '<') {\n i += 1;\n } else {\n return null;\n } // Skip spaces\n i = skip(i, content, (c) => isSpace(c));\n // Skip non-spaces\n j = skip(i, content, (c) => !isSpace(c));\n if (content.slice(i, j) !== 'Formula') {\n return null;\n }\n return className;\n}\n\nfunction extractClassName(content: string): string | null {\n const classRegExp = regEx(/(^|\\s)class\\s/);\n let i = content.search(classRegExp);\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseClassHeader(i, content);\n}\n\n// TODO: Maybe check if quotes/double-quotes are balanced (#9591)\nexport function extractPackageFile(content: string): PackageFileContent | null {\n logger.trace('extractPackageFile()');\n /*\n 1. match \"class className < Formula\"\n 2. extract className\n 3. extract url field (get depName from url)\n 4. extract sha256 field\n */\n const cleanContent = removeComments(content);\n const className = extractClassName(cleanContent);\n if (!className) {\n logger.debug('Invalid class definition');\n return null;\n }\n const url = extractUrl(cleanContent);\n if (!url) {\n logger.debug('Invalid URL field');\n }\n const urlPathResult = parseUrlPath(url);\n let skipReason: SkipReason | undefined;\n let currentValue: string | null = null;\n let ownerName: string | null = null;\n let repoName: string | null = null;\n if (urlPathResult) {\n currentValue = urlPathResult.currentValue;\n ownerName = urlPathResult.ownerName;\n repoName = urlPathResult.repoName;\n } else {\n logger.debug('Error: Unsupported URL field');\n skipReason = 'unsupported-url';\n }\n const sha256 = extractSha256(cleanContent);\n if (!sha256 || sha256.length !== 64) {\n logger.debug('Error: Invalid sha256 field');\n skipReason = 'invalid-sha256';\n }\n const dep: PackageDependency = {\n // TODO: types (#22198)\n depName: `${ownerName}/${repoName}`,\n managerData: { ownerName, repoName, sha256, url },\n currentValue,\n datasource: GithubTagsDatasource.id,\n };\n if (skipReason) {\n dep.skipReason = skipReason;\n if (skipReason === 'unsupported-url') {\n dep.depName = className;\n dep.datasource = undefined;\n }\n }\n const deps = [dep];\n return { deps };\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/homebrew/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport type { SkipReason } from '../../../types';\nimport { regEx } from '../../../util/regex';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport type { PackageDependency, PackageFileContent } from '../types';\nimport type { UrlPathParsedResult } from './types';\nimport { isSpace, removeComments, skip } from './util';\n\nfunction parseSha256(idx: number, content: string): string | null {\n let i = idx;\n i += 'sha256'.length;\n i = skip(i, content, (c) => isSpace(c));\n if (content[i] !== '\"' && content[i] !== \"'\") {\n return null;\n }\n i += 1;\n const j = skip(i, content, (c) => c !== '\"' && c !== \"'\");\n const sha256 = content.slice(i, j);\n return sha256;\n}\n\nfunction extractSha256(content: string): string | null {\n const sha256RegExp = regEx(/(^|\\s)sha256(\\s)/);\n let i = content.search(sha256RegExp);\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseSha256(i, content);\n}\n\nfunction parseUrl(idx: number, content: string): string | null {\n let i = idx;\n i += 'url'.length;\n i = skip(i, content, (c) => isSpace(c));\n const chr = content[i];\n if (chr !== '\"' && chr !== \"'\") {\n return null;\n }\n i += 1;\n const j = skip(i, content, (c) => c !== '\"' && c !== \"'\" && !isSpace(c));\n const url = content.slice(i, j);\n return url;\n}\n\nfunction extractUrl(content: string): string | null {\n const urlRegExp = regEx(/(^|\\s)url(\\s)/);\n let i = content.search(urlRegExp);\n // content.search() returns -1 if not found\n if (i === -1) {\n return null;\n }\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseUrl(i, content);\n}\n\nexport function parseUrlPath(\n urlStr: string | null | undefined,\n): UrlPathParsedResult | null {\n if (!urlStr) {\n return null;\n }\n try {\n const url = new URL(urlStr);\n if (url.hostname !== 'github.com') {\n return null;\n }\n let s = url.pathname.split('/');\n s = s.filter((val) => val);\n const ownerName = s[0];\n const repoName = s[1];\n let currentValue: string | undefined;\n if (s[2] === 'archive') {\n // old archive url in form: [...]/archive/<tag>.tar.gz\n currentValue = s[3];\n if (currentValue === 'refs') {\n // new archive url in form: [...]/archive/refs/tags/<tag>.tar.gz\n currentValue = s[5];\n }\n const targz = currentValue.slice(\n currentValue.length - 7,\n currentValue.length,\n );\n if (targz === '.tar.gz') {\n currentValue = currentValue.substring(0, currentValue.length - 7);\n }\n } else if (s[2] === 'releases' && s[3] === 'download') {\n currentValue = s[4];\n }\n if (!currentValue) {\n return null;\n }\n return { currentValue, ownerName, repoName };\n } catch {\n return null;\n }\n}\n\n/* This function parses the \"class className < Formula\" header\n and returns the className and index of the character just after the header */\nfunction parseClassHeader(idx: number, content: string): string | null {\n let i = idx;\n i += 'class'.length;\n i = skip(i, content, (c) => isSpace(c));\n // Skip all non space and non '<' characters\n let j = skip(i, content, (c) => !isSpace(c) && c !== '<');\n const className = content.slice(i, j);\n i = j;\n // Skip spaces\n i = skip(i, content, (c) => isSpace(c));\n if (content[i] === '<') {\n i += 1;\n } else {\n return null;\n } // Skip spaces\n i = skip(i, content, (c) => isSpace(c));\n // Skip non-spaces\n j = skip(i, content, (c) => !isSpace(c));\n if (content.slice(i, j) !== 'Formula') {\n return null;\n }\n return className;\n}\n\nfunction extractClassName(content: string): string | null {\n const classRegExp = regEx(/(^|\\s)class\\s/);\n let i = content.search(classRegExp);\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseClassHeader(i, content);\n}\n\n// TODO: Maybe check if quotes/double-quotes are balanced (#9591)\nexport function extractPackageFile(content: string): PackageFileContent | null {\n logger.trace('extractPackageFile()');\n /*\n 1. match \"class className < Formula\"\n 2. extract className\n 3. extract url field (get depName from url)\n 4. extract sha256 field\n */\n const cleanContent = removeComments(content);\n const className = extractClassName(cleanContent);\n if (!className) {\n logger.debug('Invalid class definition');\n return null;\n }\n const url = extractUrl(cleanContent);\n if (!url) {\n logger.debug('Invalid URL field');\n }\n const urlPathResult = parseUrlPath(url);\n let skipReason: SkipReason | undefined;\n let currentValue: string | null = null;\n let ownerName: string | null = null;\n let repoName: string | null = null;\n if (urlPathResult) {\n currentValue = urlPathResult.currentValue;\n ownerName = urlPathResult.ownerName;\n repoName = urlPathResult.repoName;\n } else {\n logger.debug('Error: Unsupported URL field');\n skipReason = 'unsupported-url';\n }\n const sha256 = extractSha256(cleanContent);\n if (sha256?.length !== 64) {\n logger.debug('Error: Invalid sha256 field');\n skipReason = 'invalid-sha256';\n }\n const dep: PackageDependency = {\n // TODO: types (#22198)\n depName: `${ownerName}/${repoName}`,\n managerData: { ownerName, repoName, sha256, url },\n currentValue,\n datasource: GithubTagsDatasource.id,\n };\n if (skipReason) {\n dep.skipReason = skipReason;\n if (skipReason === 'unsupported-url') {\n dep.depName = className;\n dep.datasource = undefined;\n }\n }\n const deps = [dep];\n return { deps };\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractPackageFile = extractPackageFile;
4
4
  const tslib_1 = require("tslib");
5
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
5
+ const is_1 = require("@sindresorhus/is");
6
6
  const logger_1 = require("../../../logger");
7
7
  const ignore_1 = require("../../../util/ignore");
8
8
  const regex_1 = require("../../../util/regex");
@@ -18,7 +18,7 @@ function getDependency(plugin) {
18
18
  };
19
19
  if (plugin.source?.version) {
20
20
  dep.currentValue = plugin.source.version.toString();
21
- if (!is_1.default.string(plugin.source.version)) {
21
+ if (!(0, is_1.isString)(plugin.source.version)) {
22
22
  dep.skipReason = 'invalid-version';
23
23
  logger_1.logger.warn({ dep }, 'Jenkins plugin dependency version is not a string and will be ignored');
24
24
  }
@@ -45,7 +45,7 @@ function extractYaml(content, packageFile) {
45
45
  try {
46
46
  // TODO: use schema (#9610)
47
47
  const doc = (0, yaml_1.parseSingleYaml)(content);
48
- if (is_1.default.nonEmptyArray(doc?.plugins)) {
48
+ if ((0, is_1.isNonEmptyArray)(doc?.plugins)) {
49
49
  for (const plugin of doc.plugins) {
50
50
  if (plugin.artifactId) {
51
51
  const dep = getDependency(plugin);
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/jenkins/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { isSkipComment } from '../../../util/ignore';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport { parseSingleYaml } from '../../../util/yaml';\nimport { JenkinsPluginsDatasource } from '../../datasource/jenkins-plugins';\nimport * as mavenVersioning from '../../versioning/maven';\nimport type { PackageDependency, PackageFileContent } from '../types';\nimport type { JenkinsPlugin, JenkinsPlugins } from './types';\n\nconst YamlExtension = regEx(/\\.ya?ml$/);\n\nfunction getDependency(plugin: JenkinsPlugin): PackageDependency {\n const dep: PackageDependency = {\n datasource: JenkinsPluginsDatasource.id,\n versioning: mavenVersioning.id,\n depName: plugin.artifactId,\n };\n\n if (plugin.source?.version) {\n dep.currentValue = plugin.source.version.toString();\n if (!is.string(plugin.source.version)) {\n dep.skipReason = 'invalid-version';\n logger.warn(\n { dep },\n 'Jenkins plugin dependency version is not a string and will be ignored',\n );\n }\n } else {\n dep.skipReason = 'unspecified-version';\n }\n\n if (\n plugin.source?.version === 'latest' ||\n plugin.source?.version === 'experimental' ||\n plugin.groupId\n ) {\n dep.skipReason = 'unsupported-version';\n }\n\n if (plugin.source?.url) {\n dep.skipReason = 'internal-package';\n }\n\n if (!dep.skipReason && plugin.renovate?.ignore) {\n dep.skipReason = 'ignored';\n }\n\n logger.debug({ dep }, 'Jenkins plugin dependency');\n return dep;\n}\n\nfunction extractYaml(\n content: string,\n packageFile: string,\n): PackageDependency[] {\n const deps: PackageDependency[] = [];\n\n try {\n // TODO: use schema (#9610)\n const doc = parseSingleYaml<JenkinsPlugins>(content);\n if (is.nonEmptyArray(doc?.plugins)) {\n for (const plugin of doc.plugins) {\n if (plugin.artifactId) {\n const dep = getDependency(plugin);\n deps.push(dep);\n }\n }\n }\n } catch (err) /* istanbul ignore next */ {\n logger.debug({ err, packageFile }, 'Error parsing Jenkins plugins');\n }\n return deps;\n}\n\nfunction extractText(content: string): PackageDependency[] {\n const deps: PackageDependency[] = [];\n const regex = regEx(\n /^\\s*(?<depName>[\\d\\w-]+):(?<currentValue>[^#\\s]+)[#\\s]*(?<comment>.*)$/,\n );\n\n for (const line of content.split(newlineRegex)) {\n const match = regex.exec(line);\n if (match?.groups) {\n const { depName, currentValue, comment } = match.groups;\n const plugin: JenkinsPlugin = {\n artifactId: depName,\n source: {\n version: currentValue,\n },\n renovate: {\n ignore: isSkipComment(comment),\n },\n };\n const dep = getDependency(plugin);\n deps.push(dep);\n }\n }\n return deps;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n): PackageFileContent | null {\n logger.trace(`jenkins.extractPackageFile(${packageFile})`);\n const deps: PackageDependency[] = [];\n\n if (YamlExtension.test(packageFile)) {\n deps.push(...extractYaml(content, packageFile));\n } else {\n deps.push(...extractText(content));\n }\n\n if (deps.length === 0) {\n return null;\n }\n return { deps };\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/jenkins/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNonEmptyArray, isString } from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { isSkipComment } from '../../../util/ignore';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport { parseSingleYaml } from '../../../util/yaml';\nimport { JenkinsPluginsDatasource } from '../../datasource/jenkins-plugins';\nimport * as mavenVersioning from '../../versioning/maven';\nimport type { PackageDependency, PackageFileContent } from '../types';\nimport type { JenkinsPlugin, JenkinsPlugins } from './types';\n\nconst YamlExtension = regEx(/\\.ya?ml$/);\n\nfunction getDependency(plugin: JenkinsPlugin): PackageDependency {\n const dep: PackageDependency = {\n datasource: JenkinsPluginsDatasource.id,\n versioning: mavenVersioning.id,\n depName: plugin.artifactId,\n };\n\n if (plugin.source?.version) {\n dep.currentValue = plugin.source.version.toString();\n if (!isString(plugin.source.version)) {\n dep.skipReason = 'invalid-version';\n logger.warn(\n { dep },\n 'Jenkins plugin dependency version is not a string and will be ignored',\n );\n }\n } else {\n dep.skipReason = 'unspecified-version';\n }\n\n if (\n plugin.source?.version === 'latest' ||\n plugin.source?.version === 'experimental' ||\n plugin.groupId\n ) {\n dep.skipReason = 'unsupported-version';\n }\n\n if (plugin.source?.url) {\n dep.skipReason = 'internal-package';\n }\n\n if (!dep.skipReason && plugin.renovate?.ignore) {\n dep.skipReason = 'ignored';\n }\n\n logger.debug({ dep }, 'Jenkins plugin dependency');\n return dep;\n}\n\nfunction extractYaml(\n content: string,\n packageFile: string,\n): PackageDependency[] {\n const deps: PackageDependency[] = [];\n\n try {\n // TODO: use schema (#9610)\n const doc = parseSingleYaml<JenkinsPlugins>(content);\n if (isNonEmptyArray(doc?.plugins)) {\n for (const plugin of doc.plugins) {\n if (plugin.artifactId) {\n const dep = getDependency(plugin);\n deps.push(dep);\n }\n }\n }\n } catch (err) /* istanbul ignore next */ {\n logger.debug({ err, packageFile }, 'Error parsing Jenkins plugins');\n }\n return deps;\n}\n\nfunction extractText(content: string): PackageDependency[] {\n const deps: PackageDependency[] = [];\n const regex = regEx(\n /^\\s*(?<depName>[\\d\\w-]+):(?<currentValue>[^#\\s]+)[#\\s]*(?<comment>.*)$/,\n );\n\n for (const line of content.split(newlineRegex)) {\n const match = regex.exec(line);\n if (match?.groups) {\n const { depName, currentValue, comment } = match.groups;\n const plugin: JenkinsPlugin = {\n artifactId: depName,\n source: {\n version: currentValue,\n },\n renovate: {\n ignore: isSkipComment(comment),\n },\n };\n const dep = getDependency(plugin);\n deps.push(dep);\n }\n }\n return deps;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n): PackageFileContent | null {\n logger.trace(`jenkins.extractPackageFile(${packageFile})`);\n const deps: PackageDependency[] = [];\n\n if (YamlExtension.test(packageFile)) {\n deps.push(...extractYaml(content, packageFile));\n } else {\n deps.push(...extractText(content));\n }\n\n if (deps.length === 0) {\n return null;\n }\n return { deps };\n}\n"]}
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractPackageFile = extractPackageFile;
4
- const tslib_1 = require("tslib");
5
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
4
+ const is_1 = require("@sindresorhus/is");
6
5
  const regex_1 = require("../../../util/regex");
7
6
  const maven_1 = require("../../datasource/maven");
8
7
  const dependsOnRegex = (0, regex_1.regEx)(/@file\s*:\s*DependsOn\s*\(\s*(?<replaceString>"(?<groupId>.+):(?<artifactId>.+):(?<version>.+)")\s*\)/g);
@@ -10,10 +9,10 @@ const repositoryRegex = (0, regex_1.regEx)(/@file\s*:\s*Repository\s*\(\s*"(?<re
10
9
  function extractPackageFile(fileContent) {
11
10
  const registryUrls = [...fileContent.matchAll(repositoryRegex)]
12
11
  .map((match) => match.groups?.repositoryName)
13
- .filter(is_1.default.string);
12
+ .filter(is_1.isString);
14
13
  const matches = [...fileContent.matchAll(dependsOnRegex)]
15
14
  .map((m) => m.groups)
16
- .filter(is_1.default.truthy);
15
+ .filter(is_1.isTruthy);
17
16
  const deps = [];
18
17
  for (const match of matches) {
19
18
  const dep = {
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kotlin-script/extract.ts"],"names":[],"mappings":";;AAYA,gDA6BC;;AAzCD,kEAAkC;AAClC,+CAA4C;AAC5C,kDAAyD;AAGzD,MAAM,cAAc,GAAG,IAAA,aAAK,EAC1B,wGAAwG,CACzG,CAAC;AACF,MAAM,eAAe,GAAG,IAAA,aAAK,EAC3B,6DAA6D,CAC9D,CAAC;AAEF,SAAgB,kBAAkB,CAChC,WAAmB;IAEnB,MAAM,YAAY,GAAa,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;SACtE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC;SAC5C,MAAM,CAAC,YAAE,CAAC,MAAM,CAAC,CAAC;IAErB,MAAM,OAAO,GAAG,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;SACtD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;SACpB,MAAM,CAAC,YAAE,CAAC,MAAM,CAAC,CAAC;IACrB,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAsB;YAC7B,YAAY,EAAE,KAAK,CAAC,OAAO;YAC3B,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,UAAU,EAAE;YAC/C,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,UAAU,EAAE,uBAAe,CAAC,EAAE;SAC/B,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI;QACJ,GAAG,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,YAAY,EAAE,CAAC;KAC7C,CAAC;AACJ,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { regEx } from '../../../util/regex';\nimport { MavenDatasource } from '../../datasource/maven';\nimport type { PackageDependency, PackageFileContent } from '../types';\n\nconst dependsOnRegex = regEx(\n /@file\\s*:\\s*DependsOn\\s*\\(\\s*(?<replaceString>\"(?<groupId>.+):(?<artifactId>.+):(?<version>.+)\")\\s*\\)/g,\n);\nconst repositoryRegex = regEx(\n /@file\\s*:\\s*Repository\\s*\\(\\s*\"(?<repositoryName>.+)\"\\s*\\)/g,\n);\n\nexport function extractPackageFile(\n fileContent: string,\n): PackageFileContent | null {\n const registryUrls: string[] = [...fileContent.matchAll(repositoryRegex)]\n .map((match) => match.groups?.repositoryName)\n .filter(is.string);\n\n const matches = [...fileContent.matchAll(dependsOnRegex)]\n .map((m) => m.groups)\n .filter(is.truthy);\n const deps: PackageDependency[] = [];\n for (const match of matches) {\n const dep: PackageDependency = {\n currentValue: match.version,\n depName: `${match.groupId}:${match.artifactId}`,\n replaceString: match.replaceString,\n datasource: MavenDatasource.id,\n };\n deps.push(dep);\n }\n\n if (deps.length === 0) {\n return null;\n }\n\n return {\n deps,\n ...(registryUrls.length && { registryUrls }),\n };\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kotlin-script/extract.ts"],"names":[],"mappings":";;AAYA,gDA6BC;AAzCD,yCAAsD;AACtD,+CAA4C;AAC5C,kDAAyD;AAGzD,MAAM,cAAc,GAAG,IAAA,aAAK,EAC1B,wGAAwG,CACzG,CAAC;AACF,MAAM,eAAe,GAAG,IAAA,aAAK,EAC3B,6DAA6D,CAC9D,CAAC;AAEF,SAAgB,kBAAkB,CAChC,WAAmB;IAEnB,MAAM,YAAY,GAAa,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;SACtE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC;SAC5C,MAAM,CAAC,aAAQ,CAAC,CAAC;IAEpB,MAAM,OAAO,GAAG,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;SACtD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;SACpB,MAAM,CAAC,aAAQ,CAAC,CAAC;IACpB,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAsB;YAC7B,YAAY,EAAE,KAAK,CAAC,OAAO;YAC3B,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,UAAU,EAAE;YAC/C,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,UAAU,EAAE,uBAAe,CAAC,EAAE;SAC/B,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI;QACJ,GAAG,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,YAAY,EAAE,CAAC;KAC7C,CAAC;AACJ,CAAC","sourcesContent":["import { isString, isTruthy } from '@sindresorhus/is';\nimport { regEx } from '../../../util/regex';\nimport { MavenDatasource } from '../../datasource/maven';\nimport type { PackageDependency, PackageFileContent } from '../types';\n\nconst dependsOnRegex = regEx(\n /@file\\s*:\\s*DependsOn\\s*\\(\\s*(?<replaceString>\"(?<groupId>.+):(?<artifactId>.+):(?<version>.+)\")\\s*\\)/g,\n);\nconst repositoryRegex = regEx(\n /@file\\s*:\\s*Repository\\s*\\(\\s*\"(?<repositoryName>.+)\"\\s*\\)/g,\n);\n\nexport function extractPackageFile(\n fileContent: string,\n): PackageFileContent | null {\n const registryUrls: string[] = [...fileContent.matchAll(repositoryRegex)]\n .map((match) => match.groups?.repositoryName)\n .filter(isString);\n\n const matches = [...fileContent.matchAll(dependsOnRegex)]\n .map((m) => m.groups)\n .filter(isTruthy);\n const deps: PackageDependency[] = [];\n for (const match of matches) {\n const dep: PackageDependency = {\n currentValue: match.version,\n depName: `${match.groupId}:${match.artifactId}`,\n replaceString: match.replaceString,\n datasource: MavenDatasource.id,\n };\n deps.push(dep);\n }\n\n if (deps.length === 0) {\n return null;\n }\n\n return {\n deps,\n ...(registryUrls.length && { registryUrls }),\n };\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractPackageFile = extractPackageFile;
4
4
  const tslib_1 = require("tslib");
5
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
5
+ const is_1 = require("@sindresorhus/is");
6
6
  const logger_1 = require("../../../logger");
7
7
  const regex_1 = require("../../../util/regex");
8
8
  const yaml_1 = require("../../../util/yaml");
@@ -56,9 +56,9 @@ function extractApis(content, packageFile) {
56
56
  return [];
57
57
  }
58
58
  return doc
59
- .filter(is_1.default.truthy)
60
- .filter((m) => is_1.default.nonEmptyStringAndNotWhitespace(m.kind) &&
61
- is_1.default.nonEmptyStringAndNotWhitespace(m.apiVersion))
59
+ .filter(is_1.isTruthy)
60
+ .filter((m) => (0, is_1.isNonEmptyStringAndNotWhitespace)(m.kind) &&
61
+ (0, is_1.isNonEmptyStringAndNotWhitespace)(m.apiVersion))
62
62
  .filter((m) => kubernetes_api_1.supportedApis.has(m.kind))
63
63
  .map((configuration) => ({
64
64
  depName: configuration.kind,
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kubernetes/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport { parseYaml } from '../../../util/yaml';\nimport {\n KubernetesApiDatasource,\n supportedApis,\n} from '../../datasource/kubernetes-api';\nimport * as kubernetesApiVersioning from '../../versioning/kubernetes-api';\nimport { getDep } from '../dockerfile/extract';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport type { KubernetesConfiguration } from './types';\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageFileContent | null {\n logger.trace('kubernetes.extractPackageFile()');\n\n const isKubernetesManifest =\n regEx(/\\s*apiVersion\\s*:/).test(content) &&\n regEx(/\\s*kind\\s*:/).test(content);\n if (!isKubernetesManifest) {\n return null;\n }\n\n const deps: PackageDependency[] = [\n ...extractImages(content, config),\n ...extractApis(content, packageFile),\n ];\n\n return deps.length ? { deps } : null;\n}\n\n// Comes from https://github.com/distribution/reference/blob/v0.6.0/regexp.go\n// Extracted & converted with https://go.dev/play/p/KQQAONGp__2\nconst dockerImageRegexPattern = `((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\\\\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\\\\[(?:[a-fA-F0-9:]+)\\\\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([A-Za-z0-9_][A-Za-z0-9_.-]{0,127}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][0-9a-fA-F]{32,}))?`;\n\nconst k8sImageRegex = regEx(\n `^\\\\s*-?\\\\s*image:\\\\s*['\"]?(${dockerImageRegexPattern})['\"]?\\\\s*`,\n);\n\nfunction extractImages(\n content: string,\n config: ExtractConfig,\n): PackageDependency[] {\n const deps: PackageDependency[] = [];\n\n for (const line of content.split(newlineRegex)) {\n const match = k8sImageRegex.exec(line);\n if (match) {\n const currentFrom = match[1];\n const dep = getDep(currentFrom, true, config.registryAliases);\n logger.debug(\n {\n depName: dep.depName,\n currentValue: dep.currentValue,\n currentDigest: dep.currentDigest,\n },\n 'Kubernetes image',\n );\n deps.push(dep);\n }\n }\n\n return deps;\n}\n\nfunction extractApis(\n content: string,\n packageFile: string,\n): PackageDependency[] {\n let doc: KubernetesConfiguration[];\n\n try {\n // TODO: use schema (#9610)\n doc = parseYaml(content, {\n removeTemplates: true,\n });\n } catch (err) {\n logger.debug({ err, packageFile }, 'Failed to parse Kubernetes manifest.');\n return [];\n }\n\n return doc\n .filter(is.truthy)\n .filter(\n (m) =>\n is.nonEmptyStringAndNotWhitespace(m.kind) &&\n is.nonEmptyStringAndNotWhitespace(m.apiVersion),\n )\n .filter((m) => supportedApis.has(m.kind))\n .map((configuration) => ({\n depName: configuration.kind,\n currentValue: configuration.apiVersion,\n datasource: KubernetesApiDatasource.id,\n versioning: kubernetesApiVersioning.id,\n }));\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kubernetes/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNonEmptyStringAndNotWhitespace, isTruthy } from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport { parseYaml } from '../../../util/yaml';\nimport {\n KubernetesApiDatasource,\n supportedApis,\n} from '../../datasource/kubernetes-api';\nimport * as kubernetesApiVersioning from '../../versioning/kubernetes-api';\nimport { getDep } from '../dockerfile/extract';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport type { KubernetesConfiguration } from './types';\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageFileContent | null {\n logger.trace('kubernetes.extractPackageFile()');\n\n const isKubernetesManifest =\n regEx(/\\s*apiVersion\\s*:/).test(content) &&\n regEx(/\\s*kind\\s*:/).test(content);\n if (!isKubernetesManifest) {\n return null;\n }\n\n const deps: PackageDependency[] = [\n ...extractImages(content, config),\n ...extractApis(content, packageFile),\n ];\n\n return deps.length ? { deps } : null;\n}\n\n// Comes from https://github.com/distribution/reference/blob/v0.6.0/regexp.go\n// Extracted & converted with https://go.dev/play/p/KQQAONGp__2\nconst dockerImageRegexPattern = `((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\\\\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\\\\[(?:[a-fA-F0-9:]+)\\\\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([A-Za-z0-9_][A-Za-z0-9_.-]{0,127}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][0-9a-fA-F]{32,}))?`;\n\nconst k8sImageRegex = regEx(\n `^\\\\s*-?\\\\s*image:\\\\s*['\"]?(${dockerImageRegexPattern})['\"]?\\\\s*`,\n);\n\nfunction extractImages(\n content: string,\n config: ExtractConfig,\n): PackageDependency[] {\n const deps: PackageDependency[] = [];\n\n for (const line of content.split(newlineRegex)) {\n const match = k8sImageRegex.exec(line);\n if (match) {\n const currentFrom = match[1];\n const dep = getDep(currentFrom, true, config.registryAliases);\n logger.debug(\n {\n depName: dep.depName,\n currentValue: dep.currentValue,\n currentDigest: dep.currentDigest,\n },\n 'Kubernetes image',\n );\n deps.push(dep);\n }\n }\n\n return deps;\n}\n\nfunction extractApis(\n content: string,\n packageFile: string,\n): PackageDependency[] {\n let doc: KubernetesConfiguration[];\n\n try {\n // TODO: use schema (#9610)\n doc = parseYaml(content, {\n removeTemplates: true,\n });\n } catch (err) {\n logger.debug({ err, packageFile }, 'Failed to parse Kubernetes manifest.');\n return [];\n }\n\n return doc\n .filter(isTruthy)\n .filter(\n (m) =>\n isNonEmptyStringAndNotWhitespace(m.kind) &&\n isNonEmptyStringAndNotWhitespace(m.apiVersion),\n )\n .filter((m) => supportedApis.has(m.kind))\n .map((configuration) => ({\n depName: configuration.kind,\n currentValue: configuration.apiVersion,\n datasource: KubernetesApiDatasource.id,\n versioning: kubernetesApiVersioning.id,\n }));\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateArtifacts = updateArtifacts;
4
4
  const tslib_1 = require("tslib");
5
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
5
+ const is_1 = require("@sindresorhus/is");
6
6
  const shlex_1 = require("shlex");
7
7
  const upath_1 = tslib_1.__importDefault(require("upath"));
8
8
  const error_messages_1 = require("../../../constants/error-messages");
@@ -33,18 +33,18 @@ function helmRepositoryArgs(repository, depName, datasource) {
33
33
  }
34
34
  async function inflateHelmChart(flagEnabled, execOptions, chartHome, depName, repository, currentVersion, newVersion, datasource) {
35
35
  const currentChartExistingPath = await localExistingChartPath(chartHome, depName, currentVersion);
36
- if (!flagEnabled && is_1.default.nullOrUndefined(currentChartExistingPath)) {
36
+ if (!flagEnabled && (0, is_1.isNullOrUndefined)(currentChartExistingPath)) {
37
37
  logger_1.logger.debug(`Not inflating Helm chart for ${depName} as kustomizeInflateHelmCharts is not enabled and the current version isn't inflated`);
38
38
  return;
39
39
  }
40
- if (is_1.default.nonEmptyString(currentChartExistingPath) &&
41
- is_1.default.nonEmptyString(newVersion)) {
40
+ if ((0, is_1.isNonEmptyString)(currentChartExistingPath) &&
41
+ (0, is_1.isNonEmptyString)(newVersion)) {
42
42
  logger_1.logger.debug(`Deleting previous helm chart: ${currentChartExistingPath}`);
43
43
  await (0, fs_1.deleteLocalFile)(currentChartExistingPath);
44
44
  }
45
45
  const versionToPull = newVersion ?? currentVersion;
46
46
  const versionToPullExistingPath = await localExistingChartPath(chartHome, depName, versionToPull);
47
- if (is_1.default.nonEmptyString(versionToPullExistingPath)) {
47
+ if ((0, is_1.isNonEmptyString)(versionToPullExistingPath)) {
48
48
  logger_1.logger.debug(`Helm chart ${depName} version ${versionToPull} already exists at ${versionToPullExistingPath}`);
49
49
  return;
50
50
  }
@@ -59,7 +59,7 @@ async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileCon
59
59
  logger_1.logger.debug(`kustomize.updateArtifacts(${packageFileName})`);
60
60
  const project = (0, extract_1.parseKustomize)(newPackageFileContent);
61
61
  const isUpdateOptionInflateChartArchives = config.postUpdateOptions?.includes('kustomizeInflateHelmCharts') === true;
62
- if (is_1.default.nullOrUndefined(project)) {
62
+ if ((0, is_1.isNullOrUndefined)(project)) {
63
63
  return [
64
64
  {
65
65
  artifactError: {
@@ -86,7 +86,7 @@ async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileCon
86
86
  if (dependency.newVersion === dependency.currentVersion) {
87
87
  continue;
88
88
  }
89
- if (!is_1.default.nonEmptyString(dependency.depName)) {
89
+ if (!(0, is_1.isNonEmptyString)(dependency.depName)) {
90
90
  continue;
91
91
  }
92
92
  if (dependency.depType !== 'HelmChart') {
@@ -101,7 +101,7 @@ async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileCon
101
101
  repository = dependency.packageName;
102
102
  break;
103
103
  }
104
- if (is_1.default.nullOrUndefined(repository)) {
104
+ if ((0, is_1.isNullOrUndefined)(repository)) {
105
105
  continue;
106
106
  }
107
107
  await inflateHelmChart(isUpdateOptionInflateChartArchives, execOptions, chartHome, dependency.depName, repository, dependency.currentVersion, dependency.newVersion, dependency.datasource);