renovate 40.0.0-next.3 → 40.0.0-next.31

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 (683) hide show
  1. package/dist/config/decrypt/legacy.js +0 -1
  2. package/dist/config/decrypt/legacy.js.map +1 -1
  3. package/dist/config/decrypt.d.ts +3 -1
  4. package/dist/config/decrypt.js +56 -13
  5. package/dist/config/decrypt.js.map +1 -1
  6. package/dist/config/migrate-validate.js +3 -2
  7. package/dist/config/migrate-validate.js.map +1 -1
  8. package/dist/config/migration.js +2 -1
  9. package/dist/config/migration.js.map +1 -1
  10. package/dist/config/migrations/custom/rebase-stale-prs-migration.js +1 -1
  11. package/dist/config/migrations/custom/rebase-stale-prs-migration.js.map +1 -1
  12. package/dist/config/options/index.js +4 -3
  13. package/dist/config/options/index.js.map +1 -1
  14. package/dist/config/parse.js +2 -2
  15. package/dist/config/parse.js.map +1 -1
  16. package/dist/config/presets/gitea/index.js +0 -1
  17. package/dist/config/presets/gitea/index.js.map +1 -1
  18. package/dist/config/presets/github/index.js +0 -1
  19. package/dist/config/presets/github/index.js.map +1 -1
  20. package/dist/config/presets/gitlab/index.js +1 -1
  21. package/dist/config/presets/gitlab/index.js.map +1 -1
  22. package/dist/config/presets/http/index.js +1 -2
  23. package/dist/config/presets/http/index.js.map +1 -1
  24. package/dist/config/presets/index.js +0 -7
  25. package/dist/config/presets/index.js.map +1 -1
  26. package/dist/config/presets/internal/custom-managers.js +3 -4
  27. package/dist/config/presets/internal/custom-managers.js.map +1 -1
  28. package/dist/config/presets/internal/group.js +30 -1
  29. package/dist/config/presets/internal/group.js.map +1 -1
  30. package/dist/config/presets/internal/index.js +1 -3
  31. package/dist/config/presets/internal/index.js.map +1 -1
  32. package/dist/config/presets/internal/workarounds.js +1 -0
  33. package/dist/config/presets/internal/workarounds.js.map +1 -1
  34. package/dist/config/presets/parse.js +2 -1
  35. package/dist/config/presets/parse.js.map +1 -1
  36. package/dist/config/schema.d.ts +2 -2
  37. package/dist/config/types.d.ts +4 -1
  38. package/dist/config/types.js.map +1 -1
  39. package/dist/config/validation.js +3 -5
  40. package/dist/config/validation.js.map +1 -1
  41. package/dist/config-validator.js +0 -1
  42. package/dist/config-validator.js.map +1 -1
  43. package/dist/constants/category.js +0 -1
  44. package/dist/constants/category.js.map +1 -1
  45. package/dist/data/monorepo.json +5 -1
  46. package/dist/data/source-urls.json +1 -0
  47. package/dist/instrumentation/index.js +17 -13
  48. package/dist/instrumentation/index.js.map +1 -1
  49. package/dist/instrumentation/utils.js +1 -1
  50. package/dist/instrumentation/utils.js.map +1 -1
  51. package/dist/logger/cmd-serializer.js +0 -1
  52. package/dist/logger/cmd-serializer.js.map +1 -1
  53. package/dist/logger/config-serializer.js +0 -1
  54. package/dist/logger/config-serializer.js.map +1 -1
  55. package/dist/logger/index.js +1 -4
  56. package/dist/logger/index.js.map +1 -1
  57. package/dist/logger/once.js +4 -2
  58. package/dist/logger/once.js.map +1 -1
  59. package/dist/logger/pretty-stdout.js +0 -1
  60. package/dist/logger/pretty-stdout.js.map +1 -1
  61. package/dist/logger/renovate-logger.js +1 -1
  62. package/dist/logger/renovate-logger.js.map +1 -1
  63. package/dist/logger/utils.js +6 -11
  64. package/dist/logger/utils.js.map +1 -1
  65. package/dist/modules/datasource/api.js +2 -0
  66. package/dist/modules/datasource/api.js.map +1 -1
  67. package/dist/modules/datasource/artifactory/index.js +1 -2
  68. package/dist/modules/datasource/artifactory/index.js.map +1 -1
  69. package/dist/modules/datasource/aws-eks-addon/index.d.ts +11 -0
  70. package/dist/modules/datasource/aws-eks-addon/index.js +75 -0
  71. package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -0
  72. package/dist/modules/datasource/aws-eks-addon/schema.d.ts +40 -0
  73. package/dist/modules/datasource/aws-eks-addon/schema.js +31 -0
  74. package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -0
  75. package/dist/modules/datasource/aws-machine-image/index.js +6 -5
  76. package/dist/modules/datasource/aws-machine-image/index.js.map +1 -1
  77. package/dist/modules/datasource/azure-pipelines-tasks/index.js +11 -1
  78. package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
  79. package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +16 -0
  80. package/dist/modules/datasource/azure-pipelines-tasks/schema.js +2 -0
  81. package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
  82. package/dist/modules/datasource/bazel/index.js +0 -1
  83. package/dist/modules/datasource/bazel/index.js.map +1 -1
  84. package/dist/modules/datasource/bitrise/index.js +1 -1
  85. package/dist/modules/datasource/bitrise/index.js.map +1 -1
  86. package/dist/modules/datasource/cdnjs/schema.d.ts +2 -2
  87. package/dist/modules/datasource/conda/index.js +18 -1
  88. package/dist/modules/datasource/conda/index.js.map +1 -1
  89. package/dist/modules/datasource/conda/prefix-dev.d.ts +3 -0
  90. package/dist/modules/datasource/conda/prefix-dev.js +83 -0
  91. package/dist/modules/datasource/conda/prefix-dev.js.map +1 -0
  92. package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +189 -0
  93. package/dist/modules/datasource/conda/schema/prefix-dev.js +31 -0
  94. package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -0
  95. package/dist/modules/datasource/conda/types.d.ts +1 -20
  96. package/dist/modules/datasource/conda/types.js.map +1 -1
  97. package/dist/modules/datasource/cpan/index.js +1 -1
  98. package/dist/modules/datasource/cpan/index.js.map +1 -1
  99. package/dist/modules/datasource/crate/index.js +3 -3
  100. package/dist/modules/datasource/crate/index.js.map +1 -1
  101. package/dist/modules/datasource/custom/formats/html.js +1 -1
  102. package/dist/modules/datasource/custom/formats/html.js.map +1 -1
  103. package/dist/modules/datasource/custom/formats/yaml.js +1 -1
  104. package/dist/modules/datasource/custom/formats/yaml.js.map +1 -1
  105. package/dist/modules/datasource/custom/index.js +4 -2
  106. package/dist/modules/datasource/custom/index.js.map +1 -1
  107. package/dist/modules/datasource/custom/schema.d.ts +22 -22
  108. package/dist/modules/datasource/custom/utils.js +1 -0
  109. package/dist/modules/datasource/custom/utils.js.map +1 -1
  110. package/dist/modules/datasource/dart/index.js +1 -1
  111. package/dist/modules/datasource/dart/index.js.map +1 -1
  112. package/dist/modules/datasource/dart-version/index.js +1 -1
  113. package/dist/modules/datasource/dart-version/index.js.map +1 -1
  114. package/dist/modules/datasource/datasource.js +0 -1
  115. package/dist/modules/datasource/datasource.js.map +1 -1
  116. package/dist/modules/datasource/deb/index.js +2 -2
  117. package/dist/modules/datasource/deb/index.js.map +1 -1
  118. package/dist/modules/datasource/deno/index.js +1 -1
  119. package/dist/modules/datasource/deno/index.js.map +1 -1
  120. package/dist/modules/datasource/deno/schema.d.ts +1 -1
  121. package/dist/modules/datasource/devbox/index.js +0 -1
  122. package/dist/modules/datasource/devbox/index.js.map +1 -1
  123. package/dist/modules/datasource/docker/common.js +5 -2
  124. package/dist/modules/datasource/docker/common.js.map +1 -1
  125. package/dist/modules/datasource/docker/index.js +10 -8
  126. package/dist/modules/datasource/docker/index.js.map +1 -1
  127. package/dist/modules/datasource/docker/schema.d.ts +5 -5
  128. package/dist/modules/datasource/docker/schema.js +2 -1
  129. package/dist/modules/datasource/docker/schema.js.map +1 -1
  130. package/dist/modules/datasource/flutter-version/index.js +1 -1
  131. package/dist/modules/datasource/flutter-version/index.js.map +1 -1
  132. package/dist/modules/datasource/galaxy/schema.d.ts +1 -1
  133. package/dist/modules/datasource/galaxy-collection/schema.d.ts +8 -8
  134. package/dist/modules/datasource/git-refs/index.js +1 -1
  135. package/dist/modules/datasource/git-refs/index.js.map +1 -1
  136. package/dist/modules/datasource/gitea-releases/schema.d.ts +2 -2
  137. package/dist/modules/datasource/gitea-tags/schema.d.ts +4 -4
  138. package/dist/modules/datasource/github-release-attachments/index.js +2 -2
  139. package/dist/modules/datasource/github-release-attachments/index.js.map +1 -1
  140. package/dist/modules/datasource/gitlab-packages/index.js +1 -1
  141. package/dist/modules/datasource/gitlab-packages/index.js.map +1 -1
  142. package/dist/modules/datasource/gitlab-releases/index.js +1 -3
  143. package/dist/modules/datasource/gitlab-releases/index.js.map +1 -1
  144. package/dist/modules/datasource/go/base.js +1 -1
  145. package/dist/modules/datasource/go/base.js.map +1 -1
  146. package/dist/modules/datasource/go/index.js +1 -1
  147. package/dist/modules/datasource/go/index.js.map +1 -1
  148. package/dist/modules/datasource/go/releases-direct.js +7 -4
  149. package/dist/modules/datasource/go/releases-direct.js.map +1 -1
  150. package/dist/modules/datasource/go/releases-goproxy.js +1 -1
  151. package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
  152. package/dist/modules/datasource/golang-version/index.js +2 -2
  153. package/dist/modules/datasource/golang-version/index.js.map +1 -1
  154. package/dist/modules/datasource/gradle-version/index.js +1 -1
  155. package/dist/modules/datasource/gradle-version/index.js.map +1 -1
  156. package/dist/modules/datasource/helm/index.js +1 -1
  157. package/dist/modules/datasource/helm/index.js.map +1 -1
  158. package/dist/modules/datasource/hex/index.js +1 -1
  159. package/dist/modules/datasource/hex/index.js.map +1 -1
  160. package/dist/modules/datasource/hex/schema.d.ts +11 -11
  161. package/dist/modules/datasource/hexpm-bob/index.js +1 -1
  162. package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
  163. package/dist/modules/datasource/index.js +4 -4
  164. package/dist/modules/datasource/index.js.map +1 -1
  165. package/dist/modules/datasource/java-version/index.js +0 -1
  166. package/dist/modules/datasource/java-version/index.js.map +1 -1
  167. package/dist/modules/datasource/jenkins-plugins/index.js +1 -1
  168. package/dist/modules/datasource/jenkins-plugins/index.js.map +1 -1
  169. package/dist/modules/datasource/maven/index.js +35 -27
  170. package/dist/modules/datasource/maven/index.js.map +1 -1
  171. package/dist/modules/datasource/maven/types.d.ts +3 -6
  172. package/dist/modules/datasource/maven/types.js.map +1 -1
  173. package/dist/modules/datasource/maven/util.d.ts +4 -5
  174. package/dist/modules/datasource/maven/util.js +94 -157
  175. package/dist/modules/datasource/maven/util.js.map +1 -1
  176. package/dist/modules/datasource/node-version/index.js +1 -1
  177. package/dist/modules/datasource/node-version/index.js.map +1 -1
  178. package/dist/modules/datasource/npm/index.js +1 -1
  179. package/dist/modules/datasource/npm/index.js.map +1 -1
  180. package/dist/modules/datasource/npm/npmrc.js +1 -1
  181. package/dist/modules/datasource/npm/npmrc.js.map +1 -1
  182. package/dist/modules/datasource/nuget/index.js +1 -1
  183. package/dist/modules/datasource/nuget/index.js.map +1 -1
  184. package/dist/modules/datasource/nuget/v2.js +1 -1
  185. package/dist/modules/datasource/nuget/v2.js.map +1 -1
  186. package/dist/modules/datasource/nuget/v3.js +6 -6
  187. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  188. package/dist/modules/datasource/orb/index.js +1 -1
  189. package/dist/modules/datasource/orb/index.js.map +1 -1
  190. package/dist/modules/datasource/packagist/index.js +2 -2
  191. package/dist/modules/datasource/packagist/index.js.map +1 -1
  192. package/dist/modules/datasource/packagist/schema.d.ts +25 -25
  193. package/dist/modules/datasource/pod/index.js +2 -2
  194. package/dist/modules/datasource/pod/index.js.map +1 -1
  195. package/dist/modules/datasource/postprocess-release.js +1 -1
  196. package/dist/modules/datasource/postprocess-release.js.map +1 -1
  197. package/dist/modules/datasource/pypi/index.js +1 -1
  198. package/dist/modules/datasource/pypi/index.js.map +1 -1
  199. package/dist/modules/datasource/python-version/index.js +1 -1
  200. package/dist/modules/datasource/python-version/index.js.map +1 -1
  201. package/dist/modules/datasource/repology/index.js +1 -1
  202. package/dist/modules/datasource/repology/index.js.map +1 -1
  203. package/dist/modules/datasource/ruby-version/index.js +1 -1
  204. package/dist/modules/datasource/ruby-version/index.js.map +1 -1
  205. package/dist/modules/datasource/rubygems/index.js +2 -2
  206. package/dist/modules/datasource/rubygems/index.js.map +1 -1
  207. package/dist/modules/datasource/rubygems/versions-endpoint-cache.js +2 -2
  208. package/dist/modules/datasource/rubygems/versions-endpoint-cache.js.map +1 -1
  209. package/dist/modules/datasource/sbt-package/index.js +1 -1
  210. package/dist/modules/datasource/sbt-package/index.js.map +1 -1
  211. package/dist/modules/datasource/sbt-plugin/index.js +1 -1
  212. package/dist/modules/datasource/sbt-plugin/index.js.map +1 -1
  213. package/dist/modules/datasource/schema.d.ts +4 -4
  214. package/dist/modules/datasource/terraform-module/index.js +1 -1
  215. package/dist/modules/datasource/terraform-module/index.js.map +1 -1
  216. package/dist/modules/datasource/terraform-provider/index.js +2 -3
  217. package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
  218. package/dist/modules/datasource/types.d.ts +1 -0
  219. package/dist/modules/datasource/types.js.map +1 -1
  220. package/dist/modules/datasource/unity3d/index.d.ts +4 -1
  221. package/dist/modules/datasource/unity3d/index.js +36 -42
  222. package/dist/modules/datasource/unity3d/index.js.map +1 -1
  223. package/dist/modules/datasource/unity3d/schema.d.ts +47 -0
  224. package/dist/modules/datasource/unity3d/schema.js +17 -0
  225. package/dist/modules/datasource/unity3d/schema.js.map +1 -0
  226. package/dist/modules/manager/api.js +2 -0
  227. package/dist/modules/manager/api.js.map +1 -1
  228. package/dist/modules/manager/argocd/extract.js +1 -1
  229. package/dist/modules/manager/argocd/extract.js.map +1 -1
  230. package/dist/modules/manager/argocd/schema.d.ts +10 -10
  231. package/dist/modules/manager/asdf/upgradeable-tooling.js +94 -0
  232. package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
  233. package/dist/modules/manager/azure-pipelines/schema.d.ts +32 -32
  234. package/dist/modules/manager/batect/schema.d.ts +4 -4
  235. package/dist/modules/manager/batect-wrapper/artifacts.js +1 -1
  236. package/dist/modules/manager/batect-wrapper/artifacts.js.map +1 -1
  237. package/dist/modules/manager/bazel/rules/docker.d.ts +6 -6
  238. package/dist/modules/manager/bazel/rules/git.d.ts +10 -10
  239. package/dist/modules/manager/bazel/rules/git.js +9 -2
  240. package/dist/modules/manager/bazel/rules/git.js.map +1 -1
  241. package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
  242. package/dist/modules/manager/bazel/rules/maven.d.ts +7 -7
  243. package/dist/modules/manager/bazel/rules/oci.d.ts +6 -6
  244. package/dist/modules/manager/bazel-module/parser/fragments.d.ts +40 -40
  245. package/dist/modules/manager/bazel-module/parser/maven.d.ts +40 -40
  246. package/dist/modules/manager/bazel-module/parser/oci.d.ts +17 -17
  247. package/dist/modules/manager/bazel-module/rules.d.ts +40 -40
  248. package/dist/modules/manager/bun/artifacts.js +0 -1
  249. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  250. package/dist/modules/manager/bundler/artifacts.js +0 -1
  251. package/dist/modules/manager/bundler/artifacts.js.map +1 -1
  252. package/dist/modules/manager/bundler/extract.js +2 -1
  253. package/dist/modules/manager/bundler/extract.js.map +1 -1
  254. package/dist/modules/manager/cake/index.js +4 -2
  255. package/dist/modules/manager/cake/index.js.map +1 -1
  256. package/dist/modules/manager/cargo/artifacts.js +5 -7
  257. package/dist/modules/manager/cargo/artifacts.js.map +1 -1
  258. package/dist/modules/manager/cargo/schema.d.ts +114 -114
  259. package/dist/modules/manager/cocoapods/artifacts.js +1 -2
  260. package/dist/modules/manager/cocoapods/artifacts.js.map +1 -1
  261. package/dist/modules/manager/composer/artifacts.js +1 -2
  262. package/dist/modules/manager/composer/artifacts.js.map +1 -1
  263. package/dist/modules/manager/composer/schema.d.ts +26 -26
  264. package/dist/modules/manager/composer/schema.js +1 -1
  265. package/dist/modules/manager/composer/schema.js.map +1 -1
  266. package/dist/modules/manager/composer/utils.d.ts +1 -0
  267. package/dist/modules/manager/composer/utils.js +18 -6
  268. package/dist/modules/manager/composer/utils.js.map +1 -1
  269. package/dist/modules/manager/copier/artifacts.js +0 -1
  270. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  271. package/dist/modules/manager/crossplane/schema.d.ts +2 -2
  272. package/dist/modules/manager/custom/jsonata/index.js +4 -0
  273. package/dist/modules/manager/custom/jsonata/index.js.map +1 -1
  274. package/dist/modules/manager/custom/jsonata/schema.d.ts +21 -21
  275. package/dist/modules/manager/custom/regex/index.js +2 -0
  276. package/dist/modules/manager/custom/regex/index.js.map +1 -1
  277. package/dist/modules/manager/deps-edn/extract.js +2 -1
  278. package/dist/modules/manager/deps-edn/extract.js.map +1 -1
  279. package/dist/modules/manager/devbox/artifacts.d.ts +1 -1
  280. package/dist/modules/manager/devbox/artifacts.js +28 -11
  281. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  282. package/dist/modules/manager/devbox/schema.js +1 -1
  283. package/dist/modules/manager/devbox/schema.js.map +1 -1
  284. package/dist/modules/manager/devcontainer/extract.js +43 -1
  285. package/dist/modules/manager/devcontainer/extract.js.map +1 -1
  286. package/dist/modules/manager/devcontainer/index.js +11 -1
  287. package/dist/modules/manager/devcontainer/index.js.map +1 -1
  288. package/dist/modules/manager/devcontainer/schema.d.ts +7 -3
  289. package/dist/modules/manager/devcontainer/schema.js +3 -1
  290. package/dist/modules/manager/devcontainer/schema.js.map +1 -1
  291. package/dist/modules/manager/docker-compose/schema.d.ts +6 -6
  292. package/dist/modules/manager/fingerprint.generated.js +86 -85
  293. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  294. package/dist/modules/manager/flux/artifacts.js +0 -1
  295. package/dist/modules/manager/flux/artifacts.js.map +1 -1
  296. package/dist/modules/manager/flux/extract.js +27 -24
  297. package/dist/modules/manager/flux/extract.js.map +1 -1
  298. package/dist/modules/manager/flux/schema.d.ts +94 -94
  299. package/dist/modules/manager/github-actions/extract.js +60 -39
  300. package/dist/modules/manager/github-actions/extract.js.map +1 -1
  301. package/dist/modules/manager/github-actions/schema.d.ts +66 -0
  302. package/dist/modules/manager/github-actions/schema.js +38 -0
  303. package/dist/modules/manager/github-actions/schema.js.map +1 -0
  304. package/dist/modules/manager/gitlabci/extract.d.ts +1 -5
  305. package/dist/modules/manager/gitlabci/extract.js +27 -126
  306. package/dist/modules/manager/gitlabci/extract.js.map +1 -1
  307. package/dist/modules/manager/gitlabci/schema.d.ts +55 -0
  308. package/dist/modules/manager/gitlabci/schema.js +63 -0
  309. package/dist/modules/manager/gitlabci/schema.js.map +1 -0
  310. package/dist/modules/manager/gitlabci-include/extract.js +6 -54
  311. package/dist/modules/manager/gitlabci-include/extract.js.map +1 -1
  312. package/dist/modules/manager/gitlabci-include/schema.d.ts +13 -0
  313. package/dist/modules/manager/gitlabci-include/schema.js +46 -0
  314. package/dist/modules/manager/gitlabci-include/schema.js.map +1 -0
  315. package/dist/modules/manager/glasskube/schema.d.ts +8 -8
  316. package/dist/modules/manager/gomod/artifacts.js +24 -10
  317. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  318. package/dist/modules/manager/gomod/extract.js +23 -0
  319. package/dist/modules/manager/gomod/extract.js.map +1 -1
  320. package/dist/modules/manager/gomod/line-parser.js +16 -0
  321. package/dist/modules/manager/gomod/line-parser.js.map +1 -1
  322. package/dist/modules/manager/gomod/update.js +2 -2
  323. package/dist/modules/manager/gomod/update.js.map +1 -1
  324. package/dist/modules/manager/gradle/artifacts.js +0 -1
  325. package/dist/modules/manager/gradle/artifacts.js.map +1 -1
  326. package/dist/modules/manager/gradle/extract/catalog.js +1 -1
  327. package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
  328. package/dist/modules/manager/gradle/parser/assignments.js +2 -2
  329. package/dist/modules/manager/gradle/parser/assignments.js.map +1 -1
  330. package/dist/modules/manager/gradle/parser/handlers.d.ts +1 -2
  331. package/dist/modules/manager/gradle/parser/handlers.js +10 -25
  332. package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
  333. package/dist/modules/manager/gradle/parser/registry-urls.js +11 -3
  334. package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
  335. package/dist/modules/manager/gradle-wrapper/artifacts.js +1 -2
  336. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  337. package/dist/modules/manager/helmfile/artifacts.js +0 -1
  338. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  339. package/dist/modules/manager/helmfile/extract.js +4 -0
  340. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  341. package/dist/modules/manager/helmfile/schema.d.ts +9 -9
  342. package/dist/modules/manager/helmv3/artifacts.js +0 -1
  343. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  344. package/dist/modules/manager/helmv3/utils.js +3 -1
  345. package/dist/modules/manager/helmv3/utils.js.map +1 -1
  346. package/dist/modules/manager/hermit/artifacts.js +0 -1
  347. package/dist/modules/manager/hermit/artifacts.js.map +1 -1
  348. package/dist/modules/manager/homebrew/extract.js +0 -1
  349. package/dist/modules/manager/homebrew/extract.js.map +1 -1
  350. package/dist/modules/manager/jsonnet-bundler/artifacts.js +0 -1
  351. package/dist/modules/manager/jsonnet-bundler/artifacts.js.map +1 -1
  352. package/dist/modules/manager/kustomize/artifacts.d.ts +2 -0
  353. package/dist/modules/manager/kustomize/artifacts.js +154 -0
  354. package/dist/modules/manager/kustomize/artifacts.js.map +1 -0
  355. package/dist/modules/manager/kustomize/common.d.ts +3 -0
  356. package/dist/modules/manager/kustomize/common.js +22 -0
  357. package/dist/modules/manager/kustomize/common.js.map +1 -0
  358. package/dist/modules/manager/kustomize/index.d.ts +1 -0
  359. package/dist/modules/manager/kustomize/index.js +3 -1
  360. package/dist/modules/manager/kustomize/index.js.map +1 -1
  361. package/dist/modules/manager/kustomize/types.d.ts +4 -0
  362. package/dist/modules/manager/kustomize/types.js.map +1 -1
  363. package/dist/modules/manager/maven/extract.js +3 -1
  364. package/dist/modules/manager/maven/extract.js.map +1 -1
  365. package/dist/modules/manager/maven-wrapper/artifacts.js +0 -1
  366. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  367. package/dist/modules/manager/mise/extract.js +1 -1
  368. package/dist/modules/manager/mise/extract.js.map +1 -1
  369. package/dist/modules/manager/mix/artifacts.js +64 -14
  370. package/dist/modules/manager/mix/artifacts.js.map +1 -1
  371. package/dist/modules/manager/mix/index.d.ts +1 -0
  372. package/dist/modules/manager/mix/index.js +2 -1
  373. package/dist/modules/manager/mix/index.js.map +1 -1
  374. package/dist/modules/manager/nix/artifacts.js +0 -1
  375. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  376. package/dist/modules/manager/nix/extract.js +1 -1
  377. package/dist/modules/manager/nix/extract.js.map +1 -1
  378. package/dist/modules/manager/nix/schema.d.ts +18 -18
  379. package/dist/modules/manager/npm/artifacts.js +0 -1
  380. package/dist/modules/manager/npm/artifacts.js.map +1 -1
  381. package/dist/modules/manager/npm/extract/yarn.js +2 -2
  382. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  383. package/dist/modules/manager/npm/post-update/npm.js +0 -1
  384. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  385. package/dist/modules/manager/npm/post-update/pnpm.js +13 -2
  386. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  387. package/dist/modules/manager/npm/post-update/rules.js +11 -1
  388. package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
  389. package/dist/modules/manager/npm/post-update/yarn.js +0 -1
  390. package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
  391. package/dist/modules/manager/npm/schema.d.ts +13 -13
  392. package/dist/modules/manager/npm/update/dependency/index.js +1 -1
  393. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  394. package/dist/modules/manager/nuget/artifacts.js +1 -2
  395. package/dist/modules/manager/nuget/artifacts.js.map +1 -1
  396. package/dist/modules/manager/nuget/package-tree.js +4 -0
  397. package/dist/modules/manager/nuget/package-tree.js.map +1 -1
  398. package/dist/modules/manager/nuget/schema.d.ts +8 -8
  399. package/dist/modules/manager/nuget/util.js +4 -1
  400. package/dist/modules/manager/nuget/util.js.map +1 -1
  401. package/dist/modules/manager/ocb/schema.d.ts +6 -6
  402. package/dist/modules/manager/pep621/processors/pdm.js +0 -1
  403. package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
  404. package/dist/modules/manager/pep621/processors/uv.js +0 -1
  405. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  406. package/dist/modules/manager/pep621/schema.d.ts +59 -54
  407. package/dist/modules/manager/pep621/schema.js +2 -0
  408. package/dist/modules/manager/pep621/schema.js.map +1 -1
  409. package/dist/modules/manager/pep621/utils.js +1 -1
  410. package/dist/modules/manager/pep621/utils.js.map +1 -1
  411. package/dist/modules/manager/pip-compile/common.js +0 -1
  412. package/dist/modules/manager/pip-compile/common.js.map +1 -1
  413. package/dist/modules/manager/pip_requirements/artifacts.js +0 -1
  414. package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
  415. package/dist/modules/manager/pipenv/artifacts.js +0 -1
  416. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  417. package/dist/modules/manager/pixi/artifacts.d.ts +3 -0
  418. package/dist/modules/manager/pixi/artifacts.js +84 -0
  419. package/dist/modules/manager/pixi/artifacts.js.map +1 -0
  420. package/dist/modules/manager/pixi/extract.d.ts +2 -0
  421. package/dist/modules/manager/pixi/extract.js +53 -0
  422. package/dist/modules/manager/pixi/extract.js.map +1 -0
  423. package/dist/modules/manager/pixi/index.d.ts +11 -0
  424. package/dist/modules/manager/pixi/index.js +22 -0
  425. package/dist/modules/manager/pixi/index.js.map +1 -0
  426. package/dist/modules/manager/pixi/lockfile.d.ts +6 -0
  427. package/dist/modules/manager/pixi/lockfile.js +25 -0
  428. package/dist/modules/manager/pixi/lockfile.js.map +1 -0
  429. package/dist/modules/manager/pixi/schema.d.ts +14 -0
  430. package/dist/modules/manager/pixi/schema.js +14 -0
  431. package/dist/modules/manager/pixi/schema.js.map +1 -0
  432. package/dist/modules/manager/poetry/artifacts.js +3 -4
  433. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  434. package/dist/modules/manager/poetry/extract.js +2 -1
  435. package/dist/modules/manager/poetry/extract.js.map +1 -1
  436. package/dist/modules/manager/poetry/schema.d.ts +48 -48
  437. package/dist/modules/manager/pub/artifacts.js +0 -1
  438. package/dist/modules/manager/pub/artifacts.js.map +1 -1
  439. package/dist/modules/manager/pub/schema.d.ts +8 -8
  440. package/dist/modules/manager/scalafmt/extract.js +1 -1
  441. package/dist/modules/manager/scalafmt/extract.js.map +1 -1
  442. package/dist/modules/manager/sveltos/schema.d.ts +12 -12
  443. package/dist/modules/manager/terraform/lockfile/hash.d.ts +1 -1
  444. package/dist/modules/manager/types.d.ts +6 -2
  445. package/dist/modules/manager/types.js.map +1 -1
  446. package/dist/modules/manager/vendir/schema.d.ts +4 -4
  447. package/dist/modules/platform/api.d.ts +1 -1
  448. package/dist/modules/platform/azure/azure-helper.js +2 -2
  449. package/dist/modules/platform/azure/azure-helper.js.map +1 -1
  450. package/dist/modules/platform/azure/index.js +14 -14
  451. package/dist/modules/platform/azure/index.js.map +1 -1
  452. package/dist/modules/platform/bitbucket/comments.js +4 -4
  453. package/dist/modules/platform/bitbucket/comments.js.map +1 -1
  454. package/dist/modules/platform/bitbucket/index.d.ts +1 -0
  455. package/dist/modules/platform/bitbucket/index.js +54 -44
  456. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  457. package/dist/modules/platform/bitbucket/schema.d.ts +11 -11
  458. package/dist/modules/platform/bitbucket/utils.js +3 -3
  459. package/dist/modules/platform/bitbucket/utils.js.map +1 -1
  460. package/dist/modules/platform/bitbucket-server/index.d.ts +3 -3
  461. package/dist/modules/platform/bitbucket-server/index.js +81 -81
  462. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  463. package/dist/modules/platform/bitbucket-server/pr-cache.d.ts +23 -0
  464. package/dist/modules/platform/bitbucket-server/pr-cache.js +125 -0
  465. package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -0
  466. package/dist/modules/platform/bitbucket-server/schema.d.ts +75 -0
  467. package/dist/modules/platform/bitbucket-server/schema.js +14 -1
  468. package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
  469. package/dist/modules/platform/bitbucket-server/types.d.ts +8 -2
  470. package/dist/modules/platform/bitbucket-server/types.js.map +1 -1
  471. package/dist/modules/platform/bitbucket-server/utils.d.ts +0 -2
  472. package/dist/modules/platform/bitbucket-server/utils.js +6 -52
  473. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  474. package/dist/modules/platform/codecommit/codecommit-client.js +6 -6
  475. package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
  476. package/dist/modules/platform/codecommit/index.js +24 -24
  477. package/dist/modules/platform/codecommit/index.js.map +1 -1
  478. package/dist/modules/platform/gerrit/client.js +13 -2
  479. package/dist/modules/platform/gerrit/client.js.map +1 -1
  480. package/dist/modules/platform/gerrit/utils.js +1 -1
  481. package/dist/modules/platform/gerrit/utils.js.map +1 -1
  482. package/dist/modules/platform/gitea/gitea-helper.d.ts +1 -0
  483. package/dist/modules/platform/gitea/gitea-helper.js +16 -0
  484. package/dist/modules/platform/gitea/gitea-helper.js.map +1 -1
  485. package/dist/modules/platform/gitea/index.d.ts +1 -0
  486. package/dist/modules/platform/gitea/index.js +26 -7
  487. package/dist/modules/platform/gitea/index.js.map +1 -1
  488. package/dist/modules/platform/gitea/schema.d.ts +8 -8
  489. package/dist/modules/platform/gitea/types.d.ts +1 -1
  490. package/dist/modules/platform/gitea/types.js.map +1 -1
  491. package/dist/modules/platform/github/common.d.ts +2 -0
  492. package/dist/modules/platform/github/common.js +16 -0
  493. package/dist/modules/platform/github/common.js.map +1 -1
  494. package/dist/modules/platform/github/index.d.ts +1 -1
  495. package/dist/modules/platform/github/index.js +87 -82
  496. package/dist/modules/platform/github/index.js.map +1 -1
  497. package/dist/modules/platform/github/issue.d.ts +12 -12
  498. package/dist/modules/platform/github/massage-markdown-links.js +2 -2
  499. package/dist/modules/platform/github/massage-markdown-links.js.map +1 -1
  500. package/dist/modules/platform/github/pr.js +3 -3
  501. package/dist/modules/platform/github/pr.js.map +1 -1
  502. package/dist/modules/platform/github/schema.d.ts +76 -76
  503. package/dist/modules/platform/github/schema.js +3 -1
  504. package/dist/modules/platform/github/schema.js.map +1 -1
  505. package/dist/modules/platform/gitlab/index.d.ts +1 -0
  506. package/dist/modules/platform/gitlab/index.js +70 -43
  507. package/dist/modules/platform/gitlab/index.js.map +1 -1
  508. package/dist/modules/platform/index.js +0 -1
  509. package/dist/modules/platform/index.js.map +1 -1
  510. package/dist/modules/platform/scm.d.ts +1 -1
  511. package/dist/modules/versioning/api.js +2 -0
  512. package/dist/modules/versioning/api.js.map +1 -1
  513. package/dist/modules/versioning/composer/index.js +10 -0
  514. package/dist/modules/versioning/composer/index.js.map +1 -1
  515. package/dist/modules/versioning/conda/index.d.ts +41 -0
  516. package/dist/modules/versioning/conda/index.js +178 -0
  517. package/dist/modules/versioning/conda/index.js.map +1 -0
  518. package/dist/modules/versioning/hashicorp/convertor.d.ts +2 -1
  519. package/dist/modules/versioning/hashicorp/convertor.js +13 -8
  520. package/dist/modules/versioning/hashicorp/convertor.js.map +1 -1
  521. package/dist/modules/versioning/hex/index.js +3 -3
  522. package/dist/modules/versioning/hex/index.js.map +1 -1
  523. package/dist/modules/versioning/npm/index.js +2 -1
  524. package/dist/modules/versioning/npm/index.js.map +1 -1
  525. package/dist/modules/versioning/schema.js +1 -1
  526. package/dist/modules/versioning/schema.js.map +1 -1
  527. package/dist/modules/versioning/types.d.ts +4 -0
  528. package/dist/modules/versioning/types.js.map +1 -1
  529. package/dist/proxy.js +2 -1
  530. package/dist/proxy.js.map +1 -1
  531. package/dist/renovate.js +2 -2
  532. package/dist/renovate.js.map +1 -1
  533. package/dist/util/cache/package/decorator.js +2 -2
  534. package/dist/util/cache/package/decorator.js.map +1 -1
  535. package/dist/util/cache/package/redis.js +0 -1
  536. package/dist/util/cache/package/redis.js.map +1 -1
  537. package/dist/util/cache/package/types.d.ts +1 -1
  538. package/dist/util/cache/package/types.js.map +1 -1
  539. package/dist/util/cache/repository/impl/base.d.ts +1 -1
  540. package/dist/util/cache/repository/schema.d.ts +4 -4
  541. package/dist/util/cache/repository/types.d.ts +3 -0
  542. package/dist/util/cache/repository/types.js.map +1 -1
  543. package/dist/util/env.d.ts +4 -0
  544. package/dist/util/env.js +22 -0
  545. package/dist/util/env.js.map +1 -0
  546. package/dist/util/exec/containerbase.js +18 -12
  547. package/dist/util/exec/containerbase.js.map +1 -1
  548. package/dist/util/exec/index.js +5 -2
  549. package/dist/util/exec/index.js.map +1 -1
  550. package/dist/util/exec/types.d.ts +0 -2
  551. package/dist/util/exec/types.js.map +1 -1
  552. package/dist/util/exec/utils.d.ts +1 -1
  553. package/dist/util/exec/utils.js +6 -5
  554. package/dist/util/exec/utils.js.map +1 -1
  555. package/dist/util/git/author.js +1 -1
  556. package/dist/util/git/author.js.map +1 -1
  557. package/dist/util/git/config.js +0 -1
  558. package/dist/util/git/config.js.map +1 -1
  559. package/dist/util/git/error.js +4 -2
  560. package/dist/util/git/error.js.map +1 -1
  561. package/dist/util/git/index.js +73 -46
  562. package/dist/util/git/index.js.map +1 -1
  563. package/dist/util/git/private-key.js +1 -1
  564. package/dist/util/git/private-key.js.map +1 -1
  565. package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +2 -2
  566. package/dist/util/github/graphql/query-adapters/tags-query-adapter.d.ts +2 -2
  567. package/dist/util/http/auth.js +0 -1
  568. package/dist/util/http/auth.js.map +1 -1
  569. package/dist/util/http/bitbucket-server.d.ts +5 -4
  570. package/dist/util/http/bitbucket-server.js +21 -20
  571. package/dist/util/http/bitbucket-server.js.map +1 -1
  572. package/dist/util/http/bitbucket.d.ts +6 -5
  573. package/dist/util/http/bitbucket.js +34 -31
  574. package/dist/util/http/bitbucket.js.map +1 -1
  575. package/dist/util/http/cache/abstract-http-cache-provider.js +2 -2
  576. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  577. package/dist/util/http/cache/memory-http-cache-provider.d.ts +10 -0
  578. package/dist/util/http/cache/memory-http-cache-provider.js +29 -0
  579. package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -0
  580. package/dist/util/http/cache/schema.d.ts +2 -2
  581. package/dist/util/http/errors.d.ts +2 -0
  582. package/dist/util/http/errors.js +8 -0
  583. package/dist/util/http/errors.js.map +1 -0
  584. package/dist/util/http/gerrit.d.ts +6 -4
  585. package/dist/util/http/gerrit.js +11 -12
  586. package/dist/util/http/gerrit.js.map +1 -1
  587. package/dist/util/http/gitea.d.ts +5 -4
  588. package/dist/util/http/gitea.js +14 -13
  589. package/dist/util/http/gitea.js.map +1 -1
  590. package/dist/util/http/github.d.ts +14 -8
  591. package/dist/util/http/github.js +65 -60
  592. package/dist/util/http/github.js.map +1 -1
  593. package/dist/util/http/gitlab.d.ts +7 -5
  594. package/dist/util/http/gitlab.js +58 -46
  595. package/dist/util/http/gitlab.js.map +1 -1
  596. package/dist/util/http/got.d.ts +9 -0
  597. package/dist/util/http/got.js +54 -0
  598. package/dist/util/http/got.js.map +1 -0
  599. package/dist/util/http/host-rules.d.ts +2 -1
  600. package/dist/util/http/host-rules.js +5 -4
  601. package/dist/util/http/host-rules.js.map +1 -1
  602. package/dist/util/http/http.d.ts +93 -0
  603. package/dist/util/http/http.js +346 -0
  604. package/dist/util/http/http.js.map +1 -0
  605. package/dist/util/http/index.d.ts +6 -74
  606. package/dist/util/http/index.js +5 -359
  607. package/dist/util/http/index.js.map +1 -1
  608. package/dist/util/http/legacy.js +4 -1
  609. package/dist/util/http/legacy.js.map +1 -1
  610. package/dist/util/http/types.d.ts +9 -16
  611. package/dist/util/http/types.js.map +1 -1
  612. package/dist/util/stats.d.ts +10 -0
  613. package/dist/util/stats.js +45 -1
  614. package/dist/util/stats.js.map +1 -1
  615. package/dist/util/string.d.ts +15 -0
  616. package/dist/util/string.js +75 -0
  617. package/dist/util/string.js.map +1 -1
  618. package/dist/util/toml.d.ts +1 -0
  619. package/dist/util/toml.js +6 -0
  620. package/dist/util/toml.js.map +1 -1
  621. package/dist/util/url.js +3 -8
  622. package/dist/util/url.js.map +1 -1
  623. package/dist/util/yaml.js +2 -6
  624. package/dist/util/yaml.js.map +1 -1
  625. package/dist/workers/global/config/parse/env.js +3 -2
  626. package/dist/workers/global/config/parse/env.js.map +1 -1
  627. package/dist/workers/global/config/parse/file.js +19 -9
  628. package/dist/workers/global/config/parse/file.js.map +1 -1
  629. package/dist/workers/global/config/parse/host-rules-from-env.js +6 -2
  630. package/dist/workers/global/config/parse/host-rules-from-env.js.map +1 -1
  631. package/dist/workers/global/config/parse/index.js +5 -0
  632. package/dist/workers/global/config/parse/index.js.map +1 -1
  633. package/dist/workers/repository/cache.js +1 -2
  634. package/dist/workers/repository/cache.js.map +1 -1
  635. package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -0
  636. package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
  637. package/dist/workers/repository/index.js +1 -0
  638. package/dist/workers/repository/index.js.map +1 -1
  639. package/dist/workers/repository/init/merge.js +6 -3
  640. package/dist/workers/repository/init/merge.js.map +1 -1
  641. package/dist/workers/repository/onboarding/pr/config-description.js +3 -1
  642. package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
  643. package/dist/workers/repository/process/extract-update.js +0 -1
  644. package/dist/workers/repository/process/extract-update.js.map +1 -1
  645. package/dist/workers/repository/process/fingerprint-fields.js +0 -1
  646. package/dist/workers/repository/process/fingerprint-fields.js.map +1 -1
  647. package/dist/workers/repository/process/libyear.js +2 -2
  648. package/dist/workers/repository/process/libyear.js.map +1 -1
  649. package/dist/workers/repository/process/lookup/index.js +13 -4
  650. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  651. package/dist/workers/repository/process/vulnerabilities.js +1 -1
  652. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  653. package/dist/workers/repository/process/write.js +1 -8
  654. package/dist/workers/repository/process/write.js.map +1 -1
  655. package/dist/workers/repository/reconfigure/validate.js +1 -0
  656. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  657. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +10 -1
  658. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  659. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
  660. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  661. package/dist/workers/repository/update/pr/changelog/github/index.js +6 -3
  662. package/dist/workers/repository/update/pr/changelog/github/index.js.map +1 -1
  663. package/dist/workers/repository/update/pr/changelog/gitlab/index.js +1 -1
  664. package/dist/workers/repository/update/pr/changelog/gitlab/index.js.map +1 -1
  665. package/dist/workers/repository/update/pr/changelog/source.js +1 -0
  666. package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
  667. package/dist/workers/repository/updates/flatten.js +8 -4
  668. package/dist/workers/repository/updates/flatten.js.map +1 -1
  669. package/dist/workers/repository/updates/generate.js +1 -2
  670. package/dist/workers/repository/updates/generate.js.map +1 -1
  671. package/dist/workers/types.d.ts +1 -4
  672. package/dist/workers/types.js.map +1 -1
  673. package/package.json +69 -72
  674. package/renovate-schema.json +15 -1
  675. package/dist/modules/manager/github-actions/types.d.ts +0 -30
  676. package/dist/modules/manager/github-actions/types.js +0 -3
  677. package/dist/modules/manager/github-actions/types.js.map +0 -1
  678. package/dist/modules/manager/gitlabci/common.d.ts +0 -6
  679. package/dist/modules/manager/gitlabci/common.js +0 -30
  680. package/dist/modules/manager/gitlabci/common.js.map +0 -1
  681. package/dist/modules/manager/gitlabci/types.d.ts +0 -35
  682. package/dist/modules/manager/gitlabci/types.js +0 -3
  683. package/dist/modules/manager/gitlabci/types.js.map +0 -1
@@ -2,11 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MavenDatasource = exports.defaultRegistryUrls = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
6
5
  const global_1 = require("../../../config/global");
7
6
  const logger_1 = require("../../../logger");
8
7
  const packageCache = tslib_1.__importStar(require("../../../util/cache/package"));
9
- const decorator_1 = require("../../../util/cache/package/decorator");
10
8
  const timestamp_1 = require("../../../util/timestamp");
11
9
  const url_1 = require("../../../util/url");
12
10
  const maven_1 = tslib_1.__importDefault(require("../../versioning/maven"));
@@ -16,7 +14,7 @@ const datasource_1 = require("../datasource");
16
14
  const common_1 = require("./common");
17
15
  const util_1 = require("./util");
18
16
  function getLatestSuitableVersion(releases) {
19
- // istanbul ignore if
17
+ /* v8 ignore next 3 -- TODO: add test */
20
18
  if (!releases?.length) {
21
19
  return null;
22
20
  }
@@ -54,23 +52,27 @@ class MavenDatasource extends datasource_1.Datasource {
54
52
  const cacheNamespace = 'datasource-maven:metadata-xml';
55
53
  const cacheKey = `v2:${metadataUrl}`;
56
54
  const cachedVersions = await packageCache.get(cacheNamespace, cacheKey);
57
- /* istanbul ignore if */
55
+ /* v8 ignore next 3 -- TODO: add test */
58
56
  if (cachedVersions) {
59
57
  return cachedVersions;
60
58
  }
61
- const { isCacheable, xml: mavenMetadata } = await (0, util_1.downloadMavenXml)(this.http, metadataUrl);
62
- if (!mavenMetadata) {
63
- return [];
64
- }
65
- const versions = extractVersions(mavenMetadata);
66
- const cachePrivatePackages = global_1.GlobalConfig.get('cachePrivatePackages', false);
67
- if (cachePrivatePackages || isCacheable) {
68
- await packageCache.set(cacheNamespace, cacheKey, versions, 30);
69
- }
70
- return versions;
59
+ const metadataXmlResult = await (0, util_1.downloadMavenXml)(this.http, metadataUrl);
60
+ return metadataXmlResult
61
+ .transform(async ({ isCacheable, data: mavenMetadata }) => {
62
+ const versions = extractVersions(mavenMetadata);
63
+ const cachePrivatePackages = global_1.GlobalConfig.get('cachePrivatePackages', false);
64
+ if (cachePrivatePackages || isCacheable) {
65
+ await packageCache.set(cacheNamespace, cacheKey, versions, 30);
66
+ }
67
+ return versions;
68
+ })
69
+ .onError((err) => {
70
+ logger_1.logger.debug(`Maven: error fetching versions for "${dependency.display}": ${err.type}`);
71
+ })
72
+ .unwrapOr([]);
71
73
  }
72
74
  async getReleases({ packageName, registryUrl, }) {
73
- // istanbul ignore if
75
+ /* v8 ignore next 3 -- should never happen */
74
76
  if (!registryUrl) {
75
77
  return null;
76
78
  }
@@ -97,28 +99,34 @@ class MavenDatasource extends datasource_1.Datasource {
97
99
  return result;
98
100
  }
99
101
  async postprocessRelease({ packageName, registryUrl }, release) {
102
+ const { version, versionOrig } = release;
103
+ const cacheKey = versionOrig
104
+ ? `postprocessRelease:${registryUrl}:${packageName}:${versionOrig}:${version}`
105
+ : `postprocessRelease:${registryUrl}:${packageName}:${version}`;
106
+ const cachedResult = await packageCache.get('datasource-maven', cacheKey);
107
+ /* v8 ignore start: hard to test */
108
+ if (cachedResult) {
109
+ return cachedResult;
110
+ } /* v8 ignore stop */
100
111
  if (!packageName || !registryUrl) {
101
112
  return release;
102
113
  }
103
114
  const dependency = (0, util_1.getDependencyParts)(packageName);
104
115
  const pomUrl = await (0, util_1.createUrlForDependencyPom)(this.http, release.versionOrig ?? release.version, dependency, registryUrl);
105
116
  const artifactUrl = (0, util_1.getMavenUrl)(dependency, registryUrl, pomUrl);
106
- const res = await (0, util_1.checkResource)(this.http, artifactUrl);
107
- if (res === 'not-found' || res === 'error') {
108
- return 'reject';
117
+ const fetchResult = await (0, util_1.downloadMaven)(this.http, artifactUrl);
118
+ const { val, err } = fetchResult.unwrap();
119
+ if (err) {
120
+ const result = err.type === 'not-found' ? 'reject' : release;
121
+ await packageCache.set('datasource-maven', cacheKey, result, 24 * 60);
122
+ return result;
109
123
  }
110
- if (is_1.default.date(res)) {
111
- release.releaseTimestamp = (0, timestamp_1.asTimestamp)(res.toISOString());
124
+ if (val.lastModified) {
125
+ release.releaseTimestamp = (0, timestamp_1.asTimestamp)(val.lastModified);
112
126
  }
127
+ await packageCache.set('datasource-maven', cacheKey, release, 7 * 24 * 60);
113
128
  return release;
114
129
  }
115
130
  }
116
131
  exports.MavenDatasource = MavenDatasource;
117
- tslib_1.__decorate([
118
- (0, decorator_1.cache)({
119
- namespace: `datasource-maven`,
120
- key: ({ registryUrl, packageName }, { version, versionOrig }) => `postprocessRelease:${registryUrl}:${packageName}:${versionOrig ? `${versionOrig}:${version}` : `${version}`}`,
121
- ttlMinutes: 24 * 60,
122
- })
123
- ], MavenDatasource.prototype, "postprocessRelease", null);
124
132
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/maven/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport type { XmlDocument } from 'xmldoc';\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport * as packageCache from '../../../util/cache/package';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport mavenVersion from '../../versioning/maven';\nimport * as mavenVersioning from '../../versioning/maven';\nimport { compare } from '../../versioning/maven/compare';\nimport { Datasource } from '../datasource';\nimport type {\n GetReleasesConfig,\n PostprocessReleaseConfig,\n PostprocessReleaseResult,\n RegistryStrategy,\n Release,\n ReleaseResult,\n} from '../types';\nimport { MAVEN_REPO } from './common';\nimport type { MavenDependency } from './types';\nimport {\n checkResource,\n createUrlForDependencyPom,\n downloadMavenXml,\n getDependencyInfo,\n getDependencyParts,\n getMavenUrl,\n} from './util';\n\nfunction getLatestSuitableVersion(releases: Release[]): string | null {\n // istanbul ignore if\n if (!releases?.length) {\n return null;\n }\n const allVersions = releases.map(({ version }) => version);\n const stableVersions = allVersions.filter((x) => mavenVersion.isStable(x));\n const versions = stableVersions.length ? stableVersions : allVersions;\n return versions.reduce((latestVersion, version) =>\n compare(version, latestVersion) === 1\n ? version\n : /* istanbul ignore next: hard to test */ latestVersion,\n );\n}\n\nfunction extractVersions(metadata: XmlDocument): string[] {\n const versions = metadata.descendantWithPath('versioning.versions');\n const elements = versions?.childrenNamed('version');\n if (!elements) {\n return [];\n }\n return elements.map((el) => el.val);\n}\n\nexport const defaultRegistryUrls = [MAVEN_REPO];\n\nexport class MavenDatasource extends Datasource {\n static id = 'maven';\n\n override readonly caching = true;\n\n override readonly defaultRegistryUrls = defaultRegistryUrls;\n\n override readonly defaultVersioning: string = mavenVersioning.id;\n\n override readonly registryStrategy: RegistryStrategy = 'merge';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `Last-Modified` header or the `lastModified` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `scm` tags in the results.';\n\n constructor(id = MavenDatasource.id) {\n super(id);\n }\n\n async fetchVersionsFromMetadata(\n dependency: MavenDependency,\n repoUrl: string,\n ): Promise<string[]> {\n const metadataUrl = getMavenUrl(dependency, repoUrl, 'maven-metadata.xml');\n\n const cacheNamespace = 'datasource-maven:metadata-xml';\n const cacheKey = `v2:${metadataUrl}`;\n const cachedVersions = await packageCache.get<string[]>(\n cacheNamespace,\n cacheKey,\n );\n /* istanbul ignore if */\n if (cachedVersions) {\n return cachedVersions;\n }\n\n const { isCacheable, xml: mavenMetadata } = await downloadMavenXml(\n this.http,\n metadataUrl,\n );\n if (!mavenMetadata) {\n return [];\n }\n\n const versions = extractVersions(mavenMetadata);\n const cachePrivatePackages = GlobalConfig.get(\n 'cachePrivatePackages',\n false,\n );\n if (cachePrivatePackages || isCacheable) {\n await packageCache.set(cacheNamespace, cacheKey, versions, 30);\n }\n\n return versions;\n }\n\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n // istanbul ignore if\n if (!registryUrl) {\n return null;\n }\n\n const dependency = getDependencyParts(packageName);\n const repoUrl = ensureTrailingSlash(registryUrl);\n\n logger.debug(`Looking up ${dependency.display} in repository ${repoUrl}`);\n\n const metadataVersions = await this.fetchVersionsFromMetadata(\n dependency,\n repoUrl,\n );\n if (!metadataVersions?.length) {\n return null;\n }\n const releases = metadataVersions.map((version) => ({ version }));\n\n logger.debug(\n `Found ${releases.length} new releases for ${dependency.display} in repository ${repoUrl}`,\n );\n\n const latestSuitableVersion = getLatestSuitableVersion(releases);\n const dependencyInfo =\n latestSuitableVersion &&\n (await getDependencyInfo(\n this.http,\n dependency,\n repoUrl,\n latestSuitableVersion,\n ));\n\n const result: ReleaseResult = {\n ...dependency,\n ...dependencyInfo,\n releases,\n };\n\n if (!this.defaultRegistryUrls.includes(registryUrl)) {\n result.isPrivate = true;\n }\n\n return result;\n }\n\n @cache({\n namespace: `datasource-maven`,\n key: (\n { registryUrl, packageName }: PostprocessReleaseConfig,\n { version, versionOrig }: Release,\n ) =>\n `postprocessRelease:${registryUrl}:${packageName}:${versionOrig ? `${versionOrig}:${version}` : `${version}`}`,\n ttlMinutes: 24 * 60,\n })\n override async postprocessRelease(\n { packageName, registryUrl }: PostprocessReleaseConfig,\n release: Release,\n ): Promise<PostprocessReleaseResult> {\n if (!packageName || !registryUrl) {\n return release;\n }\n\n const dependency = getDependencyParts(packageName);\n\n const pomUrl = await createUrlForDependencyPom(\n this.http,\n release.versionOrig ?? release.version,\n dependency,\n registryUrl,\n );\n\n const artifactUrl = getMavenUrl(dependency, registryUrl, pomUrl);\n\n const res = await checkResource(this.http, artifactUrl);\n\n if (res === 'not-found' || res === 'error') {\n return 'reject';\n }\n\n if (is.date(res)) {\n release.releaseTimestamp = asTimestamp(res.toISOString());\n }\n\n return release;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/maven/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { XmlDocument } from 'xmldoc';\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport * as packageCache from '../../../util/cache/package';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport mavenVersion from '../../versioning/maven';\nimport * as mavenVersioning from '../../versioning/maven';\nimport { compare } from '../../versioning/maven/compare';\nimport { Datasource } from '../datasource';\nimport type {\n GetReleasesConfig,\n PostprocessReleaseConfig,\n PostprocessReleaseResult,\n RegistryStrategy,\n Release,\n ReleaseResult,\n} from '../types';\nimport { MAVEN_REPO } from './common';\nimport type { MavenDependency } from './types';\nimport {\n createUrlForDependencyPom,\n downloadMaven,\n downloadMavenXml,\n getDependencyInfo,\n getDependencyParts,\n getMavenUrl,\n} from './util';\n\nfunction getLatestSuitableVersion(releases: Release[]): string | null {\n /* v8 ignore next 3 -- TODO: add test */\n if (!releases?.length) {\n return null;\n }\n const allVersions = releases.map(({ version }) => version);\n const stableVersions = allVersions.filter((x) => mavenVersion.isStable(x));\n const versions = stableVersions.length ? stableVersions : allVersions;\n return versions.reduce((latestVersion, version) =>\n compare(version, latestVersion) === 1\n ? version\n : /* istanbul ignore next: hard to test */ latestVersion,\n );\n}\n\nfunction extractVersions(metadata: XmlDocument): string[] {\n const versions = metadata.descendantWithPath('versioning.versions');\n const elements = versions?.childrenNamed('version');\n if (!elements) {\n return [];\n }\n return elements.map((el) => el.val);\n}\n\nexport const defaultRegistryUrls = [MAVEN_REPO];\n\nexport class MavenDatasource extends Datasource {\n static id = 'maven';\n\n override readonly caching = true;\n\n override readonly defaultRegistryUrls = defaultRegistryUrls;\n\n override readonly defaultVersioning: string = mavenVersioning.id;\n\n override readonly registryStrategy: RegistryStrategy = 'merge';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `Last-Modified` header or the `lastModified` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `scm` tags in the results.';\n\n constructor(id = MavenDatasource.id) {\n super(id);\n }\n\n async fetchVersionsFromMetadata(\n dependency: MavenDependency,\n repoUrl: string,\n ): Promise<string[]> {\n const metadataUrl = getMavenUrl(dependency, repoUrl, 'maven-metadata.xml');\n\n const cacheNamespace = 'datasource-maven:metadata-xml';\n const cacheKey = `v2:${metadataUrl}`;\n const cachedVersions = await packageCache.get<string[]>(\n cacheNamespace,\n cacheKey,\n );\n /* v8 ignore next 3 -- TODO: add test */\n if (cachedVersions) {\n return cachedVersions;\n }\n\n const metadataXmlResult = await downloadMavenXml(this.http, metadataUrl);\n return metadataXmlResult\n .transform(\n async ({ isCacheable, data: mavenMetadata }): Promise<string[]> => {\n const versions = extractVersions(mavenMetadata);\n const cachePrivatePackages = GlobalConfig.get(\n 'cachePrivatePackages',\n false,\n );\n\n if (cachePrivatePackages || isCacheable) {\n await packageCache.set(cacheNamespace, cacheKey, versions, 30);\n }\n\n return versions;\n },\n )\n .onError((err) => {\n logger.debug(\n `Maven: error fetching versions for \"${dependency.display}\": ${err.type}`,\n );\n })\n .unwrapOr([]);\n }\n\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n\n const dependency = getDependencyParts(packageName);\n const repoUrl = ensureTrailingSlash(registryUrl);\n\n logger.debug(`Looking up ${dependency.display} in repository ${repoUrl}`);\n\n const metadataVersions = await this.fetchVersionsFromMetadata(\n dependency,\n repoUrl,\n );\n if (!metadataVersions?.length) {\n return null;\n }\n const releases = metadataVersions.map((version) => ({ version }));\n\n logger.debug(\n `Found ${releases.length} new releases for ${dependency.display} in repository ${repoUrl}`,\n );\n\n const latestSuitableVersion = getLatestSuitableVersion(releases);\n const dependencyInfo =\n latestSuitableVersion &&\n (await getDependencyInfo(\n this.http,\n dependency,\n repoUrl,\n latestSuitableVersion,\n ));\n\n const result: ReleaseResult = {\n ...dependency,\n ...dependencyInfo,\n releases,\n };\n\n if (!this.defaultRegistryUrls.includes(registryUrl)) {\n result.isPrivate = true;\n }\n\n return result;\n }\n\n override async postprocessRelease(\n { packageName, registryUrl }: PostprocessReleaseConfig,\n release: Release,\n ): Promise<PostprocessReleaseResult> {\n const { version, versionOrig } = release;\n const cacheKey = versionOrig\n ? `postprocessRelease:${registryUrl}:${packageName}:${versionOrig}:${version}`\n : `postprocessRelease:${registryUrl}:${packageName}:${version}`;\n const cachedResult = await packageCache.get<PostprocessReleaseResult>(\n 'datasource-maven',\n cacheKey,\n );\n\n /* v8 ignore start: hard to test */\n if (cachedResult) {\n return cachedResult;\n } /* v8 ignore stop */\n\n if (!packageName || !registryUrl) {\n return release;\n }\n\n const dependency = getDependencyParts(packageName);\n\n const pomUrl = await createUrlForDependencyPom(\n this.http,\n release.versionOrig ?? release.version,\n dependency,\n registryUrl,\n );\n\n const artifactUrl = getMavenUrl(dependency, registryUrl, pomUrl);\n const fetchResult = await downloadMaven(this.http, artifactUrl);\n const { val, err } = fetchResult.unwrap();\n\n if (err) {\n const result: PostprocessReleaseResult =\n err.type === 'not-found' ? 'reject' : release;\n await packageCache.set('datasource-maven', cacheKey, result, 24 * 60);\n return result;\n }\n\n if (val.lastModified) {\n release.releaseTimestamp = asTimestamp(val.lastModified);\n }\n\n await packageCache.set('datasource-maven', cacheKey, release, 7 * 24 * 60);\n return release;\n }\n}\n"]}
@@ -1,4 +1,3 @@
1
- import type { XmlDocument } from 'xmldoc';
2
1
  import type { Result } from '../../../util/result';
3
2
  import type { ReleaseResult } from '../types';
4
3
  export interface MavenDependency {
@@ -7,11 +6,6 @@ export interface MavenDependency {
7
6
  name?: string;
8
7
  dependencyUrl: string;
9
8
  }
10
- export interface MavenXml {
11
- isCacheable?: boolean;
12
- xml?: XmlDocument;
13
- }
14
- export type HttpResourceCheckResult = 'found' | 'not-found' | 'error' | Date;
15
9
  export type DependencyInfo = Pick<ReleaseResult, 'homepage' | 'sourceUrl' | 'packageScope' | 'replacementName' | 'replacementVersion' | 'deprecationMessage'>;
16
10
  export interface MavenFetchSuccess<T = string> {
17
11
  isCacheable?: boolean;
@@ -45,6 +39,9 @@ export type MavenFetchError = {
45
39
  type: 'credentials-error';
46
40
  } | {
47
41
  type: 'missing-aws-region';
42
+ } | {
43
+ type: 'xml-parse-error';
44
+ err: Error;
48
45
  } | {
49
46
  type: 'unknown';
50
47
  err: Error;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/maven/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { XmlDocument } from 'xmldoc';\nimport type { Result } from '../../../util/result';\nimport type { ReleaseResult } from '../types';\n\nexport interface MavenDependency {\n display: string;\n group?: string;\n name?: string;\n dependencyUrl: string;\n}\n\nexport interface MavenXml {\n isCacheable?: boolean;\n xml?: XmlDocument;\n}\n\nexport type HttpResourceCheckResult = 'found' | 'not-found' | 'error' | Date;\n\nexport type DependencyInfo = Pick<\n ReleaseResult,\n | 'homepage'\n | 'sourceUrl'\n | 'packageScope'\n | 'replacementName'\n | 'replacementVersion'\n | 'deprecationMessage'\n>;\n\nexport interface MavenFetchSuccess<T = string> {\n isCacheable?: boolean;\n lastModified?: string;\n data: T;\n}\n\nexport type MavenFetchError =\n | { type: 'invalid-url' }\n | { type: 'host-disabled' }\n | { type: 'not-found' }\n | { type: 'host-error' }\n | { type: 'permission-issue' }\n | { type: 'temporary-error' }\n | { type: 'maven-central-temporary-error'; err: Error }\n | { type: 'connection-error' }\n | { type: 'unsupported-host' }\n | { type: 'unsupported-format' }\n | { type: 'unsupported-protocol' }\n | { type: 'credentials-error' }\n | { type: 'missing-aws-region' }\n | { type: 'unknown'; err: Error };\n\nexport type MavenFetchResult<T = string> = Result<\n MavenFetchSuccess<T>,\n MavenFetchError\n>;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/maven/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Result } from '../../../util/result';\nimport type { ReleaseResult } from '../types';\n\nexport interface MavenDependency {\n display: string;\n group?: string;\n name?: string;\n dependencyUrl: string;\n}\n\nexport type DependencyInfo = Pick<\n ReleaseResult,\n | 'homepage'\n | 'sourceUrl'\n | 'packageScope'\n | 'replacementName'\n | 'replacementVersion'\n | 'deprecationMessage'\n>;\n\nexport interface MavenFetchSuccess<T = string> {\n isCacheable?: boolean;\n lastModified?: string;\n data: T;\n}\n\nexport type MavenFetchError =\n | { type: 'invalid-url' }\n | { type: 'host-disabled' }\n | { type: 'not-found' }\n | { type: 'host-error' }\n | { type: 'permission-issue' }\n | { type: 'temporary-error' }\n | { type: 'maven-central-temporary-error'; err: Error }\n | { type: 'connection-error' }\n | { type: 'unsupported-host' }\n | { type: 'unsupported-format' }\n | { type: 'unsupported-protocol' }\n | { type: 'credentials-error' }\n | { type: 'missing-aws-region' }\n | { type: 'xml-parse-error'; err: Error }\n | { type: 'unknown'; err: Error };\n\nexport type MavenFetchResult<T = string> = Result<\n MavenFetchSuccess<T>,\n MavenFetchError\n>;\n"]}
@@ -1,15 +1,14 @@
1
+ import { XmlDocument } from 'xmldoc';
1
2
  import { type Http } from '../../../util/http';
2
3
  import type { HttpOptions } from '../../../util/http/types';
3
- import type { S3UrlParts } from '../../../util/s3';
4
- import type { DependencyInfo, HttpResourceCheckResult, MavenDependency, MavenFetchResult, MavenXml } from './types';
4
+ import type { DependencyInfo, MavenDependency, MavenFetchResult } from './types';
5
5
  export declare function downloadHttpProtocol(http: Http, pkgUrl: URL | string, opts?: HttpOptions): Promise<MavenFetchResult>;
6
6
  export declare function downloadHttpContent(http: Http, pkgUrl: URL | string, opts?: HttpOptions): Promise<string | null>;
7
7
  export declare function downloadS3Protocol(pkgUrl: URL): Promise<MavenFetchResult>;
8
8
  export declare function downloadArtifactRegistryProtocol(http: Http, pkgUrl: URL): Promise<MavenFetchResult>;
9
- export declare function checkS3Resource(s3Url: S3UrlParts): Promise<HttpResourceCheckResult>;
10
- export declare function checkResource(http: Http, pkgUrl: URL | string): Promise<HttpResourceCheckResult>;
11
9
  export declare function getMavenUrl(dependency: MavenDependency, repoUrl: string, path: string): URL;
12
- export declare function downloadMavenXml(http: Http, pkgUrl: URL): Promise<MavenXml>;
10
+ export declare function downloadMaven(http: Http, url: URL): Promise<MavenFetchResult>;
11
+ export declare function downloadMavenXml(http: Http, url: URL): Promise<MavenFetchResult<XmlDocument>>;
13
12
  export declare function getDependencyParts(packageName: string): MavenDependency;
14
13
  export declare function createUrlForDependencyPom(http: Http, version: string, dependency: MavenDependency, repoUrl: string): Promise<string>;
15
14
  export declare function getDependencyInfo(http: Http, dependency: MavenDependency, repoUrl: string, version: string, recursionLimit?: number): Promise<DependencyInfo>;
@@ -4,16 +4,14 @@ exports.downloadHttpProtocol = downloadHttpProtocol;
4
4
  exports.downloadHttpContent = downloadHttpContent;
5
5
  exports.downloadS3Protocol = downloadS3Protocol;
6
6
  exports.downloadArtifactRegistryProtocol = downloadArtifactRegistryProtocol;
7
- exports.checkS3Resource = checkS3Resource;
8
- exports.checkResource = checkResource;
9
7
  exports.getMavenUrl = getMavenUrl;
8
+ exports.downloadMaven = downloadMaven;
10
9
  exports.downloadMavenXml = downloadMavenXml;
11
10
  exports.getDependencyParts = getDependencyParts;
12
11
  exports.createUrlForDependencyPom = createUrlForDependencyPom;
13
12
  exports.getDependencyInfo = getDependencyInfo;
14
13
  const node_stream_1 = require("node:stream");
15
14
  const client_s3_1 = require("@aws-sdk/client-s3");
16
- const luxon_1 = require("luxon");
17
15
  const xmldoc_1 = require("xmldoc");
18
16
  const error_messages_1 = require("../../../constants/error-messages");
19
17
  const logger_1 = require("../../../logger");
@@ -28,7 +26,7 @@ const url_1 = require("../../../util/url");
28
26
  const util_1 = require("../util");
29
27
  const common_1 = require("./common");
30
28
  function getHost(url) {
31
- return (0, url_1.parseUrl)(url)?.host ?? /* istanbul ignore next: not possible */ null;
29
+ return (0, url_1.parseUrl)(url)?.host;
32
30
  }
33
31
  function isTemporaryError(err) {
34
32
  if (err.code === 'ECONNRESET') {
@@ -60,7 +58,7 @@ function isUnsupportedHostError(err) {
60
58
  }
61
59
  async function downloadHttpProtocol(http, pkgUrl, opts = {}) {
62
60
  const url = pkgUrl.toString();
63
- const fetchResult = await result_1.Result.wrap(http.get(url, opts))
61
+ const fetchResult = await result_1.Result.wrap(http.getText(url, opts))
64
62
  .transform((res) => {
65
63
  const result = { data: res.body };
66
64
  if (!res.authorization) {
@@ -73,10 +71,10 @@ async function downloadHttpProtocol(http, pkgUrl, opts = {}) {
73
71
  return result;
74
72
  })
75
73
  .catch((err) => {
76
- // istanbul ignore next: never happens, needs for type narrowing
74
+ /* v8 ignore start: never happens, needs for type narrowing */
77
75
  if (!(err instanceof http_1.HttpError)) {
78
76
  return result_1.Result.err({ type: 'unknown', err });
79
- }
77
+ } /* v8 ignore stop */
80
78
  const failedUrl = url;
81
79
  if (err.message === error_messages_1.HOST_DISABLED) {
82
80
  logger_1.logger.trace({ failedUrl }, 'Host disabled');
@@ -191,105 +189,43 @@ async function downloadArtifactRegistryProtocol(http, pkgUrl) {
191
189
  const url = pkgUrl.toString().replace('artifactregistry:', 'https:');
192
190
  return downloadHttpProtocol(http, url, opts);
193
191
  }
194
- async function checkHttpResource(http, pkgUrl) {
195
- try {
196
- const res = await http.head(pkgUrl.toString());
197
- const timestamp = res?.headers?.['last-modified'];
198
- if (timestamp) {
199
- const isoTimestamp = (0, timestamp_1.asTimestamp)(timestamp);
200
- if (isoTimestamp) {
201
- const releaseDate = luxon_1.DateTime.fromISO(isoTimestamp, {
202
- zone: 'UTC',
203
- }).toJSDate();
204
- return releaseDate;
205
- }
206
- }
207
- return 'found';
208
- }
209
- catch (err) {
210
- if (isNotFoundError(err)) {
211
- return 'not-found';
212
- }
213
- const failedUrl = pkgUrl.toString();
214
- logger_1.logger.debug({ failedUrl, statusCode: err.statusCode }, `Can't check HTTP resource existence`);
215
- return 'error';
216
- }
217
- }
218
- async function checkS3Resource(s3Url) {
219
- try {
220
- const response = await (0, s3_1.getS3Client)().send(new client_s3_1.HeadObjectCommand(s3Url));
221
- if (response.DeleteMarker) {
222
- return 'not-found';
223
- }
224
- if (response.LastModified) {
225
- return response.LastModified;
226
- }
227
- return 'found';
228
- }
229
- catch (err) {
230
- if (isS3NotFound(err)) {
231
- return 'not-found';
232
- }
233
- else {
234
- logger_1.logger.debug({
235
- bucket: s3Url.Bucket,
236
- key: s3Url.Key,
237
- name: err.name,
238
- message: err.message,
239
- }, `Can't check S3 resource existence`);
240
- }
241
- return 'error';
242
- }
243
- }
244
- async function checkResource(http, pkgUrl) {
245
- const parsedUrl = typeof pkgUrl === 'string' ? (0, url_1.parseUrl)(pkgUrl) : pkgUrl;
246
- if (parsedUrl === null) {
247
- return 'error';
248
- }
249
- const s3Url = (0, s3_1.parseS3Url)(parsedUrl);
250
- if (s3Url) {
251
- return await checkS3Resource(s3Url);
252
- }
253
- if (parsedUrl.protocol === 'http:' || parsedUrl.protocol === 'https:') {
254
- return await checkHttpResource(http, parsedUrl);
255
- }
256
- logger_1.logger.debug({ url: pkgUrl.toString() }, `Unsupported Maven protocol in check resource`);
257
- return 'not-found';
258
- }
259
192
  function containsPlaceholder(str) {
260
193
  return (0, regex_1.regEx)(/\${.*?}/g).test(str);
261
194
  }
262
195
  function getMavenUrl(dependency, repoUrl, path) {
263
196
  return new URL(`${dependency.dependencyUrl}/${path}`, (0, url_1.ensureTrailingSlash)(repoUrl));
264
197
  }
265
- async function downloadMavenXml(http, pkgUrl) {
266
- const protocol = pkgUrl.protocol;
267
- if (protocol === 'http:' || protocol === 'https:') {
268
- const rawResult = await downloadHttpProtocol(http, pkgUrl);
269
- const xmlResult = rawResult.transform(({ isCacheable, data }) => {
270
- const xml = new xmldoc_1.XmlDocument(data);
271
- return { isCacheable, xml };
272
- });
273
- return xmlResult.unwrapOr({});
198
+ async function downloadMaven(http, url) {
199
+ const protocol = url.protocol;
200
+ let result = result_1.Result.err({ type: 'unsupported-protocol' });
201
+ if ((0, url_1.isHttpUrl)(url)) {
202
+ result = await downloadHttpProtocol(http, url);
274
203
  }
275
204
  if (protocol === 'artifactregistry:') {
276
- const rawResult = await downloadArtifactRegistryProtocol(http, pkgUrl);
277
- const xmlResult = rawResult.transform(({ isCacheable, data }) => {
278
- const xml = new xmldoc_1.XmlDocument(data);
279
- return { isCacheable, xml };
280
- });
281
- return xmlResult.unwrapOr({});
205
+ result = await downloadArtifactRegistryProtocol(http, url);
282
206
  }
283
207
  if (protocol === 's3:') {
284
- const rawResult = await downloadS3Protocol(pkgUrl);
285
- const xmlResult = rawResult.transform(({ isCacheable, data }) => {
286
- const xml = new xmldoc_1.XmlDocument(data);
287
- return { xml };
288
- });
289
- return xmlResult.unwrapOr({});
208
+ result = await downloadS3Protocol(url);
290
209
  }
291
- logger_1.logger.debug({ url: pkgUrl.toString() }, `Content is not found for Maven url`);
292
- return {};
210
+ return result.onError((err) => {
211
+ if (err.type === 'unsupported-protocol') {
212
+ logger_1.logger.debug({ url: url.toString() }, `Maven lookup error: unsupported protocol (${protocol})`);
213
+ }
214
+ });
215
+ }
216
+ async function downloadMavenXml(http, url) {
217
+ const rawResult = await downloadMaven(http, url);
218
+ return rawResult.transform((result) => {
219
+ try {
220
+ return result_1.Result.ok({
221
+ ...result,
222
+ data: new xmldoc_1.XmlDocument(result.data),
223
+ });
224
+ }
225
+ catch (err) {
226
+ return result_1.Result.err({ type: 'xml-parse-error', err });
227
+ }
228
+ });
293
229
  }
294
230
  function getDependencyParts(packageName) {
295
231
  const [group, name] = packageName.split(':');
@@ -326,12 +262,12 @@ async function getSnapshotFullVersion(http, version, dependency, repoUrl) {
326
262
  // To determine what actual files are available for the snapshot, first we have to fetch and parse
327
263
  // the metadata located at http://<repo>/<group>/<artifact>/<version-SNAPSHOT>/maven-metadata.xml
328
264
  const metadataUrl = getMavenUrl(dependency, repoUrl, `${version}/maven-metadata.xml`);
329
- const { xml: mavenMetadata } = await downloadMavenXml(http, metadataUrl);
330
- // istanbul ignore if: hard to test
331
- if (!mavenMetadata) {
332
- return null;
333
- }
334
- return extractSnapshotVersion(mavenMetadata);
265
+ const metadataXmlResult = await downloadMavenXml(http, metadataUrl);
266
+ return metadataXmlResult
267
+ .transform(({ data }) => result_1.Result.wrapNullable(extractSnapshotVersion(data), {
268
+ type: 'snapshot-extract-error',
269
+ }))
270
+ .unwrapOrNull();
335
271
  }
336
272
  function isSnapshotVersion(version) {
337
273
  if (version.endsWith('-SNAPSHOT')) {
@@ -354,68 +290,69 @@ async function createUrlForDependencyPom(http, version, dependency, repoUrl) {
354
290
  return `${version}/${dependency.name}-${version}.pom`;
355
291
  }
356
292
  async function getDependencyInfo(http, dependency, repoUrl, version, recursionLimit = 5) {
357
- const result = {};
358
293
  const path = await createUrlForDependencyPom(http, version, dependency, repoUrl);
359
294
  const pomUrl = getMavenUrl(dependency, repoUrl, path);
360
- const { xml: pomContent } = await downloadMavenXml(http, pomUrl);
361
- // istanbul ignore if
362
- if (!pomContent) {
363
- return result;
364
- }
365
- const homepage = pomContent.valueWithPath('url');
366
- if (homepage && !containsPlaceholder(homepage)) {
367
- result.homepage = homepage;
368
- }
369
- const sourceUrl = pomContent.valueWithPath('scm.url');
370
- if (sourceUrl && !containsPlaceholder(sourceUrl)) {
371
- result.sourceUrl = sourceUrl
372
- .replace((0, regex_1.regEx)(/^scm:/), '')
373
- .replace((0, regex_1.regEx)(/^git:/), '')
374
- .replace((0, regex_1.regEx)(/^git@github.com:/), 'https://github.com/')
375
- .replace((0, regex_1.regEx)(/^git@github.com\//), 'https://github.com/');
376
- if (result.sourceUrl.startsWith('//')) {
377
- // most likely the result of us stripping scm:, git: etc
378
- // going with prepending https: here which should result in potential information retrival
379
- result.sourceUrl = `https:${result.sourceUrl}`;
295
+ const pomXmlResult = await downloadMavenXml(http, pomUrl);
296
+ const dependencyInfoResult = await pomXmlResult.transform(async ({ data: pomContent }) => {
297
+ const result = {};
298
+ const homepage = pomContent.valueWithPath('url');
299
+ if (homepage && !containsPlaceholder(homepage)) {
300
+ result.homepage = homepage;
380
301
  }
381
- }
382
- const relocation = pomContent.descendantWithPath('distributionManagement.relocation');
383
- if (relocation) {
384
- const relocationGroup = relocation.valueWithPath('groupId') ?? dependency.group;
385
- const relocationName = relocation.valueWithPath('artifactId') ?? dependency.name;
386
- result.replacementName = `${relocationGroup}:${relocationName}`;
387
- const relocationVersion = relocation.valueWithPath('version');
388
- result.replacementVersion = relocationVersion ?? version;
389
- const relocationMessage = relocation.valueWithPath('message');
390
- if (relocationMessage) {
391
- result.deprecationMessage = relocationMessage;
302
+ const sourceUrl = pomContent.valueWithPath('scm.url');
303
+ if (sourceUrl && !containsPlaceholder(sourceUrl)) {
304
+ result.sourceUrl = sourceUrl
305
+ .replace((0, regex_1.regEx)(/^scm:/), '')
306
+ .replace((0, regex_1.regEx)(/^git:/), '')
307
+ .replace((0, regex_1.regEx)(/^git@github.com:/), 'https://github.com/')
308
+ .replace((0, regex_1.regEx)(/^git@github.com\//), 'https://github.com/');
309
+ if (result.sourceUrl.startsWith('//')) {
310
+ // most likely the result of us stripping scm:, git: etc
311
+ // going with prepending https: here which should result in potential information retrival
312
+ result.sourceUrl = `https:${result.sourceUrl}`;
313
+ }
392
314
  }
393
- }
394
- const groupId = pomContent.valueWithPath('groupId');
395
- if (groupId) {
396
- result.packageScope = groupId;
397
- }
398
- const parent = pomContent.childNamed('parent');
399
- if (recursionLimit > 0 && parent && (!result.sourceUrl || !result.homepage)) {
400
- // if we found a parent and are missing some information
401
- // trying to get the scm/homepage information from it
402
- const [parentGroupId, parentArtifactId, parentVersion] = [
403
- 'groupId',
404
- 'artifactId',
405
- 'version',
406
- ].map((k) => parent.valueWithPath(k)?.replace(/\s+/g, ''));
407
- if (parentGroupId && parentArtifactId && parentVersion) {
408
- const parentDisplayId = `${parentGroupId}:${parentArtifactId}`;
409
- const parentDependency = getDependencyParts(parentDisplayId);
410
- const parentInformation = await getDependencyInfo(http, parentDependency, repoUrl, parentVersion, recursionLimit - 1);
411
- if (!result.sourceUrl && parentInformation.sourceUrl) {
412
- result.sourceUrl = parentInformation.sourceUrl;
315
+ const relocation = pomContent.descendantWithPath('distributionManagement.relocation');
316
+ if (relocation) {
317
+ const relocationGroup = relocation.valueWithPath('groupId') ?? dependency.group;
318
+ const relocationName = relocation.valueWithPath('artifactId') ?? dependency.name;
319
+ result.replacementName = `${relocationGroup}:${relocationName}`;
320
+ const relocationVersion = relocation.valueWithPath('version');
321
+ result.replacementVersion = relocationVersion ?? version;
322
+ const relocationMessage = relocation.valueWithPath('message');
323
+ if (relocationMessage) {
324
+ result.deprecationMessage = relocationMessage;
413
325
  }
414
- if (!result.homepage && parentInformation.homepage) {
415
- result.homepage = parentInformation.homepage;
326
+ }
327
+ const groupId = pomContent.valueWithPath('groupId');
328
+ if (groupId) {
329
+ result.packageScope = groupId;
330
+ }
331
+ const parent = pomContent.childNamed('parent');
332
+ if (recursionLimit > 0 &&
333
+ parent &&
334
+ (!result.sourceUrl || !result.homepage)) {
335
+ // if we found a parent and are missing some information
336
+ // trying to get the scm/homepage information from it
337
+ const [parentGroupId, parentArtifactId, parentVersion] = [
338
+ 'groupId',
339
+ 'artifactId',
340
+ 'version',
341
+ ].map((k) => parent.valueWithPath(k)?.replace(/\s+/g, ''));
342
+ if (parentGroupId && parentArtifactId && parentVersion) {
343
+ const parentDisplayId = `${parentGroupId}:${parentArtifactId}`;
344
+ const parentDependency = getDependencyParts(parentDisplayId);
345
+ const parentInformation = await getDependencyInfo(http, parentDependency, repoUrl, parentVersion, recursionLimit - 1);
346
+ if (!result.sourceUrl && parentInformation.sourceUrl) {
347
+ result.sourceUrl = parentInformation.sourceUrl;
348
+ }
349
+ if (!result.homepage && parentInformation.homepage) {
350
+ result.homepage = parentInformation.homepage;
351
+ }
416
352
  }
417
353
  }
418
- }
419
- return result;
354
+ return result;
355
+ });
356
+ return dependencyInfoResult.unwrapOr({});
420
357
  }
421
358
  //# sourceMappingURL=util.js.map