renovate 40.0.0-next.26 → 40.0.0-next.27

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 (520) hide show
  1. package/dist/config/decrypt.js +1 -1
  2. package/dist/config/decrypt.js.map +1 -1
  3. package/dist/config/migrate-validate.js +2 -2
  4. package/dist/config/migrate-validate.js.map +1 -1
  5. package/dist/config/migration.js +1 -1
  6. package/dist/config/migration.js.map +1 -1
  7. package/dist/config/options/index.js +2 -1
  8. package/dist/config/options/index.js.map +1 -1
  9. package/dist/config/presets/internal/group.js +30 -1
  10. package/dist/config/presets/internal/group.js.map +1 -1
  11. package/dist/config/presets/internal/workarounds.js +1 -0
  12. package/dist/config/presets/internal/workarounds.js.map +1 -1
  13. package/dist/config/presets/parse.js +2 -1
  14. package/dist/config/presets/parse.js.map +1 -1
  15. package/dist/config/types.d.ts +4 -1
  16. package/dist/config/types.js.map +1 -1
  17. package/dist/config/validation.js +2 -2
  18. package/dist/config/validation.js.map +1 -1
  19. package/dist/data/monorepo.json +3 -0
  20. package/dist/data/source-urls.json +1 -0
  21. package/dist/instrumentation/index.js +14 -12
  22. package/dist/instrumentation/index.js.map +1 -1
  23. package/dist/logger/index.js +1 -1
  24. package/dist/logger/index.js.map +1 -1
  25. package/dist/logger/once.js +2 -2
  26. package/dist/logger/once.js.map +1 -1
  27. package/dist/logger/renovate-logger.js +1 -1
  28. package/dist/logger/renovate-logger.js.map +1 -1
  29. package/dist/logger/utils.js +1 -1
  30. package/dist/logger/utils.js.map +1 -1
  31. package/dist/modules/datasource/api.js +2 -0
  32. package/dist/modules/datasource/api.js.map +1 -1
  33. package/dist/modules/datasource/artifactory/index.js +0 -1
  34. package/dist/modules/datasource/artifactory/index.js.map +1 -1
  35. package/dist/modules/datasource/aws-eks-addon/index.d.ts +11 -0
  36. package/dist/modules/datasource/aws-eks-addon/index.js +75 -0
  37. package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -0
  38. package/dist/modules/datasource/aws-eks-addon/schema.d.ts +40 -0
  39. package/dist/modules/datasource/aws-eks-addon/schema.js +31 -0
  40. package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -0
  41. package/dist/modules/datasource/aws-machine-image/index.js +6 -5
  42. package/dist/modules/datasource/aws-machine-image/index.js.map +1 -1
  43. package/dist/modules/datasource/bazel/index.js +0 -1
  44. package/dist/modules/datasource/bazel/index.js.map +1 -1
  45. package/dist/modules/datasource/bitrise/index.js +1 -1
  46. package/dist/modules/datasource/bitrise/index.js.map +1 -1
  47. package/dist/modules/datasource/cdnjs/schema.d.ts +2 -2
  48. package/dist/modules/datasource/conda/index.js +18 -1
  49. package/dist/modules/datasource/conda/index.js.map +1 -1
  50. package/dist/modules/datasource/conda/prefix-dev.d.ts +3 -0
  51. package/dist/modules/datasource/conda/prefix-dev.js +83 -0
  52. package/dist/modules/datasource/conda/prefix-dev.js.map +1 -0
  53. package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +189 -0
  54. package/dist/modules/datasource/conda/schema/prefix-dev.js +31 -0
  55. package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -0
  56. package/dist/modules/datasource/conda/types.d.ts +1 -20
  57. package/dist/modules/datasource/conda/types.js.map +1 -1
  58. package/dist/modules/datasource/cpan/index.js +1 -1
  59. package/dist/modules/datasource/cpan/index.js.map +1 -1
  60. package/dist/modules/datasource/crate/index.js +2 -2
  61. package/dist/modules/datasource/crate/index.js.map +1 -1
  62. package/dist/modules/datasource/custom/index.js +4 -2
  63. package/dist/modules/datasource/custom/index.js.map +1 -1
  64. package/dist/modules/datasource/custom/schema.d.ts +27 -27
  65. package/dist/modules/datasource/custom/utils.js +1 -0
  66. package/dist/modules/datasource/custom/utils.js.map +1 -1
  67. package/dist/modules/datasource/dart/index.js +1 -1
  68. package/dist/modules/datasource/dart/index.js.map +1 -1
  69. package/dist/modules/datasource/dart-version/index.js +1 -1
  70. package/dist/modules/datasource/dart-version/index.js.map +1 -1
  71. package/dist/modules/datasource/datasource.js +0 -1
  72. package/dist/modules/datasource/datasource.js.map +1 -1
  73. package/dist/modules/datasource/deb/index.js +1 -1
  74. package/dist/modules/datasource/deb/index.js.map +1 -1
  75. package/dist/modules/datasource/deno/index.js +1 -1
  76. package/dist/modules/datasource/deno/index.js.map +1 -1
  77. package/dist/modules/datasource/deno/schema.d.ts +7 -7
  78. package/dist/modules/datasource/devbox/index.js +0 -1
  79. package/dist/modules/datasource/devbox/index.js.map +1 -1
  80. package/dist/modules/datasource/docker/common.js +4 -1
  81. package/dist/modules/datasource/docker/common.js.map +1 -1
  82. package/dist/modules/datasource/docker/index.js +5 -5
  83. package/dist/modules/datasource/docker/index.js.map +1 -1
  84. package/dist/modules/datasource/docker/schema.d.ts +27 -27
  85. package/dist/modules/datasource/docker/schema.js +2 -1
  86. package/dist/modules/datasource/docker/schema.js.map +1 -1
  87. package/dist/modules/datasource/flutter-version/index.js +1 -1
  88. package/dist/modules/datasource/flutter-version/index.js.map +1 -1
  89. package/dist/modules/datasource/galaxy-collection/schema.d.ts +5 -5
  90. package/dist/modules/datasource/git-refs/index.js +1 -1
  91. package/dist/modules/datasource/git-refs/index.js.map +1 -1
  92. package/dist/modules/datasource/gitea-releases/schema.d.ts +6 -6
  93. package/dist/modules/datasource/gitlab-packages/index.js +1 -1
  94. package/dist/modules/datasource/gitlab-packages/index.js.map +1 -1
  95. package/dist/modules/datasource/gitlab-releases/index.js +1 -3
  96. package/dist/modules/datasource/gitlab-releases/index.js.map +1 -1
  97. package/dist/modules/datasource/go/index.js +1 -1
  98. package/dist/modules/datasource/go/index.js.map +1 -1
  99. package/dist/modules/datasource/go/releases-direct.js +7 -4
  100. package/dist/modules/datasource/go/releases-direct.js.map +1 -1
  101. package/dist/modules/datasource/golang-version/index.js +1 -1
  102. package/dist/modules/datasource/golang-version/index.js.map +1 -1
  103. package/dist/modules/datasource/gradle-version/index.js +1 -1
  104. package/dist/modules/datasource/gradle-version/index.js.map +1 -1
  105. package/dist/modules/datasource/helm/index.js +1 -1
  106. package/dist/modules/datasource/helm/index.js.map +1 -1
  107. package/dist/modules/datasource/hex/index.js +1 -1
  108. package/dist/modules/datasource/hex/index.js.map +1 -1
  109. package/dist/modules/datasource/index.js +2 -2
  110. package/dist/modules/datasource/index.js.map +1 -1
  111. package/dist/modules/datasource/java-version/index.js +0 -1
  112. package/dist/modules/datasource/java-version/index.js.map +1 -1
  113. package/dist/modules/datasource/jenkins-plugins/index.js +1 -1
  114. package/dist/modules/datasource/jenkins-plugins/index.js.map +1 -1
  115. package/dist/modules/datasource/maven/index.js +35 -27
  116. package/dist/modules/datasource/maven/index.js.map +1 -1
  117. package/dist/modules/datasource/maven/types.d.ts +3 -6
  118. package/dist/modules/datasource/maven/types.js.map +1 -1
  119. package/dist/modules/datasource/maven/util.d.ts +4 -5
  120. package/dist/modules/datasource/maven/util.js +93 -156
  121. package/dist/modules/datasource/maven/util.js.map +1 -1
  122. package/dist/modules/datasource/node-version/index.js +1 -1
  123. package/dist/modules/datasource/node-version/index.js.map +1 -1
  124. package/dist/modules/datasource/npm/index.js +1 -1
  125. package/dist/modules/datasource/npm/index.js.map +1 -1
  126. package/dist/modules/datasource/npm/npmrc.js +1 -1
  127. package/dist/modules/datasource/npm/npmrc.js.map +1 -1
  128. package/dist/modules/datasource/nuget/index.js +1 -1
  129. package/dist/modules/datasource/nuget/index.js.map +1 -1
  130. package/dist/modules/datasource/nuget/v3.js +5 -5
  131. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  132. package/dist/modules/datasource/orb/index.js +1 -1
  133. package/dist/modules/datasource/orb/index.js.map +1 -1
  134. package/dist/modules/datasource/packagist/index.js +2 -2
  135. package/dist/modules/datasource/packagist/index.js.map +1 -1
  136. package/dist/modules/datasource/packagist/schema.d.ts +18 -18
  137. package/dist/modules/datasource/pod/index.js +1 -1
  138. package/dist/modules/datasource/pod/index.js.map +1 -1
  139. package/dist/modules/datasource/postprocess-release.js +1 -1
  140. package/dist/modules/datasource/postprocess-release.js.map +1 -1
  141. package/dist/modules/datasource/python-version/index.js +1 -1
  142. package/dist/modules/datasource/python-version/index.js.map +1 -1
  143. package/dist/modules/datasource/repology/index.js +1 -1
  144. package/dist/modules/datasource/repology/index.js.map +1 -1
  145. package/dist/modules/datasource/rubygems/index.js +1 -1
  146. package/dist/modules/datasource/rubygems/index.js.map +1 -1
  147. package/dist/modules/datasource/sbt-package/index.js +1 -1
  148. package/dist/modules/datasource/sbt-package/index.js.map +1 -1
  149. package/dist/modules/datasource/sbt-plugin/index.js +1 -1
  150. package/dist/modules/datasource/sbt-plugin/index.js.map +1 -1
  151. package/dist/modules/datasource/schema.d.ts +4 -4
  152. package/dist/modules/datasource/terraform-module/index.js +1 -1
  153. package/dist/modules/datasource/terraform-module/index.js.map +1 -1
  154. package/dist/modules/datasource/terraform-provider/index.js +1 -2
  155. package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
  156. package/dist/modules/datasource/types.d.ts +1 -0
  157. package/dist/modules/datasource/types.js.map +1 -1
  158. package/dist/modules/manager/api.js +2 -0
  159. package/dist/modules/manager/api.js.map +1 -1
  160. package/dist/modules/manager/argocd/extract.js +1 -1
  161. package/dist/modules/manager/argocd/extract.js.map +1 -1
  162. package/dist/modules/manager/asdf/upgradeable-tooling.js +94 -0
  163. package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
  164. package/dist/modules/manager/azure-pipelines/schema.d.ts +24 -24
  165. package/dist/modules/manager/batect/schema.d.ts +2 -2
  166. package/dist/modules/manager/bazel/rules/docker.d.ts +3 -3
  167. package/dist/modules/manager/bazel/rules/git.js +2 -1
  168. package/dist/modules/manager/bazel/rules/git.js.map +1 -1
  169. package/dist/modules/manager/bazel/rules/maven.d.ts +7 -7
  170. package/dist/modules/manager/bazel/rules/oci.d.ts +3 -3
  171. package/dist/modules/manager/bazel-module/parser/maven.d.ts +13 -13
  172. package/dist/modules/manager/bun/artifacts.js +0 -1
  173. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  174. package/dist/modules/manager/bundler/artifacts.js +0 -1
  175. package/dist/modules/manager/bundler/artifacts.js.map +1 -1
  176. package/dist/modules/manager/bundler/extract.js +2 -1
  177. package/dist/modules/manager/bundler/extract.js.map +1 -1
  178. package/dist/modules/manager/cake/index.js +4 -2
  179. package/dist/modules/manager/cake/index.js.map +1 -1
  180. package/dist/modules/manager/cargo/artifacts.js +5 -7
  181. package/dist/modules/manager/cargo/artifacts.js.map +1 -1
  182. package/dist/modules/manager/cargo/schema.d.ts +164 -164
  183. package/dist/modules/manager/circleci/schema.d.ts +6 -6
  184. package/dist/modules/manager/cocoapods/artifacts.js +1 -2
  185. package/dist/modules/manager/cocoapods/artifacts.js.map +1 -1
  186. package/dist/modules/manager/composer/artifacts.js +1 -2
  187. package/dist/modules/manager/composer/artifacts.js.map +1 -1
  188. package/dist/modules/manager/composer/schema.d.ts +36 -36
  189. package/dist/modules/manager/composer/schema.js +1 -1
  190. package/dist/modules/manager/composer/schema.js.map +1 -1
  191. package/dist/modules/manager/composer/utils.d.ts +1 -0
  192. package/dist/modules/manager/composer/utils.js +9 -0
  193. package/dist/modules/manager/composer/utils.js.map +1 -1
  194. package/dist/modules/manager/copier/artifacts.js +0 -1
  195. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  196. package/dist/modules/manager/custom/jsonata/schema.d.ts +28 -28
  197. package/dist/modules/manager/custom/regex/index.js +2 -0
  198. package/dist/modules/manager/custom/regex/index.js.map +1 -1
  199. package/dist/modules/manager/deps-edn/extract.js +2 -1
  200. package/dist/modules/manager/deps-edn/extract.js.map +1 -1
  201. package/dist/modules/manager/devbox/artifacts.d.ts +1 -1
  202. package/dist/modules/manager/devbox/artifacts.js +1 -2
  203. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  204. package/dist/modules/manager/devbox/schema.js +1 -1
  205. package/dist/modules/manager/devbox/schema.js.map +1 -1
  206. package/dist/modules/manager/devcontainer/extract.js +43 -1
  207. package/dist/modules/manager/devcontainer/extract.js.map +1 -1
  208. package/dist/modules/manager/devcontainer/index.js +11 -1
  209. package/dist/modules/manager/devcontainer/index.js.map +1 -1
  210. package/dist/modules/manager/devcontainer/schema.d.ts +7 -3
  211. package/dist/modules/manager/devcontainer/schema.js +3 -1
  212. package/dist/modules/manager/devcontainer/schema.js.map +1 -1
  213. package/dist/modules/manager/docker-compose/schema.d.ts +6 -6
  214. package/dist/modules/manager/fingerprint.generated.js +83 -82
  215. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  216. package/dist/modules/manager/fleet/schema.d.ts +12 -12
  217. package/dist/modules/manager/flux/artifacts.js +0 -1
  218. package/dist/modules/manager/flux/artifacts.js.map +1 -1
  219. package/dist/modules/manager/flux/extract.js +27 -24
  220. package/dist/modules/manager/flux/extract.js.map +1 -1
  221. package/dist/modules/manager/flux/schema.d.ts +44 -44
  222. package/dist/modules/manager/github-actions/extract.js +60 -39
  223. package/dist/modules/manager/github-actions/extract.js.map +1 -1
  224. package/dist/modules/manager/github-actions/schema.d.ts +66 -0
  225. package/dist/modules/manager/github-actions/schema.js +38 -0
  226. package/dist/modules/manager/github-actions/schema.js.map +1 -0
  227. package/dist/modules/manager/gitlabci/extract.d.ts +1 -5
  228. package/dist/modules/manager/gitlabci/extract.js +27 -126
  229. package/dist/modules/manager/gitlabci/extract.js.map +1 -1
  230. package/dist/modules/manager/gitlabci/schema.d.ts +55 -0
  231. package/dist/modules/manager/gitlabci/schema.js +63 -0
  232. package/dist/modules/manager/gitlabci/schema.js.map +1 -0
  233. package/dist/modules/manager/gitlabci-include/extract.js +6 -54
  234. package/dist/modules/manager/gitlabci-include/extract.js.map +1 -1
  235. package/dist/modules/manager/gitlabci-include/schema.d.ts +13 -0
  236. package/dist/modules/manager/gitlabci-include/schema.js +46 -0
  237. package/dist/modules/manager/gitlabci-include/schema.js.map +1 -0
  238. package/dist/modules/manager/gomod/artifacts.js +24 -10
  239. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  240. package/dist/modules/manager/gomod/extract.js +23 -0
  241. package/dist/modules/manager/gomod/extract.js.map +1 -1
  242. package/dist/modules/manager/gomod/line-parser.js +16 -0
  243. package/dist/modules/manager/gomod/line-parser.js.map +1 -1
  244. package/dist/modules/manager/gomod/update.js +2 -2
  245. package/dist/modules/manager/gomod/update.js.map +1 -1
  246. package/dist/modules/manager/gradle/artifacts.js +0 -1
  247. package/dist/modules/manager/gradle/artifacts.js.map +1 -1
  248. package/dist/modules/manager/gradle/extract/catalog.js +1 -1
  249. package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
  250. package/dist/modules/manager/gradle/parser/assignments.js +2 -2
  251. package/dist/modules/manager/gradle/parser/assignments.js.map +1 -1
  252. package/dist/modules/manager/gradle/parser/handlers.d.ts +1 -2
  253. package/dist/modules/manager/gradle/parser/handlers.js +10 -25
  254. package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
  255. package/dist/modules/manager/gradle/parser/registry-urls.js +11 -3
  256. package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
  257. package/dist/modules/manager/gradle-wrapper/artifacts.js +0 -1
  258. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  259. package/dist/modules/manager/helmfile/artifacts.js +0 -1
  260. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  261. package/dist/modules/manager/helmfile/extract.js +4 -0
  262. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  263. package/dist/modules/manager/helmfile/schema.d.ts +9 -9
  264. package/dist/modules/manager/helmv3/artifacts.js +0 -1
  265. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  266. package/dist/modules/manager/helmv3/utils.js +3 -1
  267. package/dist/modules/manager/helmv3/utils.js.map +1 -1
  268. package/dist/modules/manager/hermit/artifacts.js +0 -1
  269. package/dist/modules/manager/hermit/artifacts.js.map +1 -1
  270. package/dist/modules/manager/homebrew/extract.js +0 -1
  271. package/dist/modules/manager/homebrew/extract.js.map +1 -1
  272. package/dist/modules/manager/jsonnet-bundler/artifacts.js +0 -1
  273. package/dist/modules/manager/jsonnet-bundler/artifacts.js.map +1 -1
  274. package/dist/modules/manager/kustomize/artifacts.d.ts +2 -0
  275. package/dist/modules/manager/kustomize/artifacts.js +154 -0
  276. package/dist/modules/manager/kustomize/artifacts.js.map +1 -0
  277. package/dist/modules/manager/kustomize/common.d.ts +3 -0
  278. package/dist/modules/manager/kustomize/common.js +22 -0
  279. package/dist/modules/manager/kustomize/common.js.map +1 -0
  280. package/dist/modules/manager/kustomize/index.d.ts +1 -0
  281. package/dist/modules/manager/kustomize/index.js +3 -1
  282. package/dist/modules/manager/kustomize/index.js.map +1 -1
  283. package/dist/modules/manager/kustomize/types.d.ts +4 -0
  284. package/dist/modules/manager/kustomize/types.js.map +1 -1
  285. package/dist/modules/manager/maven-wrapper/artifacts.js +0 -1
  286. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  287. package/dist/modules/manager/mix/artifacts.js +64 -14
  288. package/dist/modules/manager/mix/artifacts.js.map +1 -1
  289. package/dist/modules/manager/mix/index.d.ts +1 -0
  290. package/dist/modules/manager/mix/index.js +2 -1
  291. package/dist/modules/manager/mix/index.js.map +1 -1
  292. package/dist/modules/manager/nix/artifacts.js +0 -1
  293. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  294. package/dist/modules/manager/nix/extract.js +1 -1
  295. package/dist/modules/manager/nix/extract.js.map +1 -1
  296. package/dist/modules/manager/nix/schema.d.ts +6 -6
  297. package/dist/modules/manager/npm/artifacts.js +0 -1
  298. package/dist/modules/manager/npm/artifacts.js.map +1 -1
  299. package/dist/modules/manager/npm/extract/yarn.js +2 -2
  300. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  301. package/dist/modules/manager/npm/post-update/npm.js +0 -1
  302. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  303. package/dist/modules/manager/npm/post-update/pnpm.js +13 -2
  304. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  305. package/dist/modules/manager/npm/post-update/rules.js +11 -1
  306. package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
  307. package/dist/modules/manager/npm/post-update/yarn.js +0 -1
  308. package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
  309. package/dist/modules/manager/npm/update/dependency/index.js +1 -1
  310. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  311. package/dist/modules/manager/nuget/artifacts.js +1 -2
  312. package/dist/modules/manager/nuget/artifacts.js.map +1 -1
  313. package/dist/modules/manager/nuget/package-tree.js +4 -0
  314. package/dist/modules/manager/nuget/package-tree.js.map +1 -1
  315. package/dist/modules/manager/nuget/util.js +4 -1
  316. package/dist/modules/manager/nuget/util.js.map +1 -1
  317. package/dist/modules/manager/pep621/processors/pdm.js +0 -1
  318. package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
  319. package/dist/modules/manager/pep621/processors/uv.js +0 -1
  320. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  321. package/dist/modules/manager/pep621/schema.d.ts +35 -30
  322. package/dist/modules/manager/pep621/schema.js +2 -0
  323. package/dist/modules/manager/pep621/schema.js.map +1 -1
  324. package/dist/modules/manager/pip-compile/common.js +0 -1
  325. package/dist/modules/manager/pip-compile/common.js.map +1 -1
  326. package/dist/modules/manager/pip_requirements/artifacts.js +0 -1
  327. package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
  328. package/dist/modules/manager/pipenv/artifacts.js +0 -1
  329. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  330. package/dist/modules/manager/pixi/artifacts.d.ts +3 -0
  331. package/dist/modules/manager/pixi/artifacts.js +84 -0
  332. package/dist/modules/manager/pixi/artifacts.js.map +1 -0
  333. package/dist/modules/manager/pixi/extract.d.ts +2 -0
  334. package/dist/modules/manager/pixi/extract.js +53 -0
  335. package/dist/modules/manager/pixi/extract.js.map +1 -0
  336. package/dist/modules/manager/pixi/index.d.ts +11 -0
  337. package/dist/modules/manager/pixi/index.js +22 -0
  338. package/dist/modules/manager/pixi/index.js.map +1 -0
  339. package/dist/modules/manager/pixi/lockfile.d.ts +6 -0
  340. package/dist/modules/manager/pixi/lockfile.js +25 -0
  341. package/dist/modules/manager/pixi/lockfile.js.map +1 -0
  342. package/dist/modules/manager/pixi/schema.d.ts +14 -0
  343. package/dist/modules/manager/pixi/schema.js +14 -0
  344. package/dist/modules/manager/pixi/schema.js.map +1 -0
  345. package/dist/modules/manager/poetry/artifacts.js +0 -1
  346. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  347. package/dist/modules/manager/poetry/schema.d.ts +31 -31
  348. package/dist/modules/manager/pub/artifacts.js +0 -1
  349. package/dist/modules/manager/pub/artifacts.js.map +1 -1
  350. package/dist/modules/manager/pub/schema.d.ts +8 -8
  351. package/dist/modules/manager/scalafmt/extract.js +1 -1
  352. package/dist/modules/manager/scalafmt/extract.js.map +1 -1
  353. package/dist/modules/manager/types.d.ts +6 -2
  354. package/dist/modules/manager/types.js.map +1 -1
  355. package/dist/modules/manager/vendir/schema.d.ts +23 -23
  356. package/dist/modules/platform/azure/azure-helper.js +2 -2
  357. package/dist/modules/platform/azure/azure-helper.js.map +1 -1
  358. package/dist/modules/platform/azure/index.js +14 -14
  359. package/dist/modules/platform/azure/index.js.map +1 -1
  360. package/dist/modules/platform/bitbucket/comments.js +4 -4
  361. package/dist/modules/platform/bitbucket/comments.js.map +1 -1
  362. package/dist/modules/platform/bitbucket/index.js +48 -43
  363. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  364. package/dist/modules/platform/bitbucket/schema.d.ts +13 -13
  365. package/dist/modules/platform/bitbucket/utils.js +3 -3
  366. package/dist/modules/platform/bitbucket/utils.js.map +1 -1
  367. package/dist/modules/platform/bitbucket-server/index.d.ts +2 -2
  368. package/dist/modules/platform/bitbucket-server/index.js +70 -72
  369. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  370. package/dist/modules/platform/bitbucket-server/pr-cache.d.ts +23 -0
  371. package/dist/modules/platform/bitbucket-server/pr-cache.js +125 -0
  372. package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -0
  373. package/dist/modules/platform/bitbucket-server/types.d.ts +6 -1
  374. package/dist/modules/platform/bitbucket-server/types.js.map +1 -1
  375. package/dist/modules/platform/bitbucket-server/utils.js +5 -1
  376. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  377. package/dist/modules/platform/codecommit/codecommit-client.js +6 -6
  378. package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
  379. package/dist/modules/platform/codecommit/index.js +24 -24
  380. package/dist/modules/platform/codecommit/index.js.map +1 -1
  381. package/dist/modules/platform/gerrit/client.js +12 -1
  382. package/dist/modules/platform/gerrit/client.js.map +1 -1
  383. package/dist/modules/platform/gerrit/utils.js +1 -1
  384. package/dist/modules/platform/gerrit/utils.js.map +1 -1
  385. package/dist/modules/platform/gitea/gitea-helper.d.ts +1 -0
  386. package/dist/modules/platform/gitea/gitea-helper.js +16 -0
  387. package/dist/modules/platform/gitea/gitea-helper.js.map +1 -1
  388. package/dist/modules/platform/gitea/index.js +15 -7
  389. package/dist/modules/platform/gitea/index.js.map +1 -1
  390. package/dist/modules/platform/gitea/schema.d.ts +4 -4
  391. package/dist/modules/platform/gitea/types.d.ts +1 -1
  392. package/dist/modules/platform/gitea/types.js.map +1 -1
  393. package/dist/modules/platform/github/index.js +81 -78
  394. package/dist/modules/platform/github/index.js.map +1 -1
  395. package/dist/modules/platform/github/issue.d.ts +3 -3
  396. package/dist/modules/platform/github/massage-markdown-links.js +2 -2
  397. package/dist/modules/platform/github/massage-markdown-links.js.map +1 -1
  398. package/dist/modules/platform/github/pr.js +3 -3
  399. package/dist/modules/platform/github/pr.js.map +1 -1
  400. package/dist/modules/platform/github/schema.d.ts +11 -11
  401. package/dist/modules/platform/github/schema.js +3 -1
  402. package/dist/modules/platform/github/schema.js.map +1 -1
  403. package/dist/modules/platform/gitlab/index.js +61 -43
  404. package/dist/modules/platform/gitlab/index.js.map +1 -1
  405. package/dist/modules/platform/index.js +0 -1
  406. package/dist/modules/platform/index.js.map +1 -1
  407. package/dist/modules/versioning/api.js +2 -0
  408. package/dist/modules/versioning/api.js.map +1 -1
  409. package/dist/modules/versioning/conda/index.d.ts +41 -0
  410. package/dist/modules/versioning/conda/index.js +178 -0
  411. package/dist/modules/versioning/conda/index.js.map +1 -0
  412. package/dist/modules/versioning/hashicorp/convertor.d.ts +2 -1
  413. package/dist/modules/versioning/hashicorp/convertor.js +13 -8
  414. package/dist/modules/versioning/hashicorp/convertor.js.map +1 -1
  415. package/dist/modules/versioning/hex/index.js +3 -3
  416. package/dist/modules/versioning/hex/index.js.map +1 -1
  417. package/dist/proxy.js +1 -1
  418. package/dist/proxy.js.map +1 -1
  419. package/dist/renovate.js +2 -2
  420. package/dist/renovate.js.map +1 -1
  421. package/dist/util/cache/package/types.d.ts +1 -1
  422. package/dist/util/cache/package/types.js.map +1 -1
  423. package/dist/util/cache/repository/schema.d.ts +4 -4
  424. package/dist/util/cache/repository/types.d.ts +3 -0
  425. package/dist/util/cache/repository/types.js.map +1 -1
  426. package/dist/util/env.d.ts +4 -0
  427. package/dist/util/env.js +22 -0
  428. package/dist/util/env.js.map +1 -0
  429. package/dist/util/exec/containerbase.js +6 -0
  430. package/dist/util/exec/containerbase.js.map +1 -1
  431. package/dist/util/exec/index.js +5 -2
  432. package/dist/util/exec/index.js.map +1 -1
  433. package/dist/util/exec/types.d.ts +0 -2
  434. package/dist/util/exec/types.js.map +1 -1
  435. package/dist/util/exec/utils.d.ts +1 -1
  436. package/dist/util/exec/utils.js +6 -5
  437. package/dist/util/exec/utils.js.map +1 -1
  438. package/dist/util/git/author.js +1 -1
  439. package/dist/util/git/author.js.map +1 -1
  440. package/dist/util/git/config.js +0 -1
  441. package/dist/util/git/config.js.map +1 -1
  442. package/dist/util/git/error.js +4 -2
  443. package/dist/util/git/error.js.map +1 -1
  444. package/dist/util/git/index.js +73 -46
  445. package/dist/util/git/index.js.map +1 -1
  446. package/dist/util/git/private-key.js +1 -1
  447. package/dist/util/git/private-key.js.map +1 -1
  448. package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +5 -5
  449. package/dist/util/github/graphql/query-adapters/tags-query-adapter.d.ts +2 -2
  450. package/dist/util/http/bitbucket-server.js +4 -0
  451. package/dist/util/http/bitbucket-server.js.map +1 -1
  452. package/dist/util/http/bitbucket.js +5 -1
  453. package/dist/util/http/bitbucket.js.map +1 -1
  454. package/dist/util/http/cache/abstract-http-cache-provider.js +2 -2
  455. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  456. package/dist/util/http/cache/memory-http-cache-provider.d.ts +10 -0
  457. package/dist/util/http/cache/memory-http-cache-provider.js +29 -0
  458. package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -0
  459. package/dist/util/http/gitea.js +2 -0
  460. package/dist/util/http/gitea.js.map +1 -1
  461. package/dist/util/http/github.js +1 -0
  462. package/dist/util/http/github.js.map +1 -1
  463. package/dist/util/http/gitlab.js +2 -0
  464. package/dist/util/http/gitlab.js.map +1 -1
  465. package/dist/util/http/host-rules.js +5 -4
  466. package/dist/util/http/host-rules.js.map +1 -1
  467. package/dist/util/http/http.js +12 -5
  468. package/dist/util/http/http.js.map +1 -1
  469. package/dist/util/stats.d.ts +10 -0
  470. package/dist/util/stats.js +45 -1
  471. package/dist/util/stats.js.map +1 -1
  472. package/dist/workers/global/config/parse/file.js +2 -2
  473. package/dist/workers/global/config/parse/file.js.map +1 -1
  474. package/dist/workers/global/config/parse/index.js +5 -0
  475. package/dist/workers/global/config/parse/index.js.map +1 -1
  476. package/dist/workers/repository/cache.js +1 -1
  477. package/dist/workers/repository/cache.js.map +1 -1
  478. package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -0
  479. package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
  480. package/dist/workers/repository/index.js +1 -0
  481. package/dist/workers/repository/index.js.map +1 -1
  482. package/dist/workers/repository/init/merge.js +6 -3
  483. package/dist/workers/repository/init/merge.js.map +1 -1
  484. package/dist/workers/repository/process/extract-update.js +0 -1
  485. package/dist/workers/repository/process/extract-update.js.map +1 -1
  486. package/dist/workers/repository/process/fingerprint-fields.js +0 -1
  487. package/dist/workers/repository/process/fingerprint-fields.js.map +1 -1
  488. package/dist/workers/repository/process/libyear.js +2 -2
  489. package/dist/workers/repository/process/libyear.js.map +1 -1
  490. package/dist/workers/repository/process/lookup/index.js +13 -4
  491. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  492. package/dist/workers/repository/process/vulnerabilities.js +1 -1
  493. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  494. package/dist/workers/repository/process/write.js +1 -8
  495. package/dist/workers/repository/process/write.js.map +1 -1
  496. package/dist/workers/repository/reconfigure/validate.js +1 -0
  497. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  498. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +10 -1
  499. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  500. package/dist/workers/repository/update/pr/changelog/github/index.js +6 -3
  501. package/dist/workers/repository/update/pr/changelog/github/index.js.map +1 -1
  502. package/dist/workers/repository/update/pr/changelog/source.js +1 -0
  503. package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
  504. package/dist/workers/repository/updates/flatten.js +8 -4
  505. package/dist/workers/repository/updates/flatten.js.map +1 -1
  506. package/dist/workers/repository/updates/generate.js +1 -2
  507. package/dist/workers/repository/updates/generate.js.map +1 -1
  508. package/dist/workers/types.d.ts +1 -4
  509. package/dist/workers/types.js.map +1 -1
  510. package/package.json +45 -43
  511. package/renovate-schema.json +14 -1
  512. package/dist/modules/manager/github-actions/types.d.ts +0 -30
  513. package/dist/modules/manager/github-actions/types.js +0 -3
  514. package/dist/modules/manager/github-actions/types.js.map +0 -1
  515. package/dist/modules/manager/gitlabci/common.d.ts +0 -6
  516. package/dist/modules/manager/gitlabci/common.js +0 -30
  517. package/dist/modules/manager/gitlabci/common.js.map +0 -1
  518. package/dist/modules/manager/gitlabci/types.d.ts +0 -35
  519. package/dist/modules/manager/gitlabci/types.js +0 -3
  520. package/dist/modules/manager/gitlabci/types.js.map +0 -1
@@ -106,18 +106,21 @@ class GoDirectDatasource extends datasource_1.Datasource {
106
106
  res = await this.bitbucket.getReleases(source);
107
107
  break;
108
108
  }
109
- /* istanbul ignore next: can never happen, makes lint happy */
109
+ /* v8 ignore next 3 -- should never happen */
110
110
  default: {
111
111
  return null;
112
112
  }
113
113
  }
114
- // istanbul ignore if
114
+ /* v8 ignore next 3 -- TODO: add test */
115
115
  if (!res) {
116
116
  return null;
117
117
  }
118
118
  const sourceUrl = (0, common_1.getSourceUrl)(source) ?? null;
119
- res.releases = filterByPrefix(packageName, res.releases);
120
- return { ...res, sourceUrl };
119
+ return {
120
+ ...res,
121
+ releases: filterByPrefix(packageName, res.releases),
122
+ sourceUrl,
123
+ };
121
124
  }
122
125
  }
123
126
  exports.GoDirectDatasource = GoDirectDatasource;
@@ -1 +1 @@
1
- {"version":3,"file":"releases-direct.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/go/releases-direct.ts"],"names":[],"mappings":";;;;AAAA,4CAAyC;AACzC,qEAA8D;AAC9D,+CAA4C;AAC5C,sDAA4D;AAC5D,8CAA2C;AAC3C,0CAAgD;AAChD,8CAAoD;AACpD,gDAAsD;AACtD,gDAAsD;AAEtD,iCAA0C;AAC1C,qCAAwC;AAExC;;;;;;;;;;;GAWG;AACH,SAAS,cAAc,CAAC,WAAmB,EAAE,QAAmB;IAC9D,MAAM,SAAS,GAAG,WAAW;SAC1B,OAAO,CAAC,IAAA,aAAK,EAAC,SAAS,CAAC,EAAE,EAAE,CAAC;SAC7B,KAAK,CAAC,GAAG,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,CAAC;IAEZ,MAAM,iBAAiB,GAAc,EAAE,CAAC;IACxC,OAAO,SAAS,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAEzC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,SAAS;YACX,CAAC;YAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAA,aAAK,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC;gBACjD,SAAS;YACX,CAAC;YAED,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACtD,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC7B,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QAED,SAAS,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAa,kBAAmB,SAAQ,uBAAU;IAChD,MAAM,CAAU,EAAE,GAAG,WAAW,CAAC;IAEjC,GAAG,CAAoB;IACd,KAAK,GAAG,IAAI,gCAAmB,EAAE,CAAC;IAC3C,MAAM,CAAuB;IAC7B,MAAM,CAAuB;IAC7B,SAAS,CAA0B;IAEnC;QACE,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,IAAI,4BAAiB,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,kCAAoB,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,IAAI,kCAAoB,EAAE,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,wCAAuB,EAAE,CAAC;IACjD,CAAC;IAED;;;;;;;;;;OAUG;IAKG,AAAN,KAAK,CAAC,WAAW,CAAC,MAAyB;QACzC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAE/B,IAAI,GAAG,GAAyB,IAAI,CAAC;QAErC,eAAM,CAAC,KAAK,CAAC,kBAAkB,WAAW,GAAG,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,uBAAgB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAEjE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,eAAM,CAAC,IAAI,CACT,EAAE,WAAW,EAAE,EACf,+CAA+C,CAChD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,QAAQ,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1B,KAAK,4BAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1B,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACzC,MAAM;YACR,CAAC;YACD,KAAK,gCAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5B,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC3C,MAAM;YACR,CAAC;YACD,KAAK,kCAAoB,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM;YACR,CAAC;YACD,KAAK,kCAAoB,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM;YACR,CAAC;YACD,KAAK,wCAAuB,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChC,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM;YACR,CAAC;YACD,8DAA8D;YAC9D,OAAO,CAAC,CAAC,CAAC;gBACR,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,MAAM,CAAC,IAAI,IAAI,CAAC;QAE/C,GAAG,CAAC,QAAQ,GAAG,cAAc,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEzD,OAAO,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC;;AArFH,gDAsFC;AAtDO;IAJL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,kBAAkB,CAAC,EAAE,EAAE;QAChD,GAAG,EAAE,CAAC,EAAE,WAAW,EAAqB,EAAE,EAAE,CAAC,WAAW;KACzD,CAAC;qDAsDD","sourcesContent":["import { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { regEx } from '../../../util/regex';\nimport { BitbucketTagsDatasource } from '../bitbucket-tags';\nimport { Datasource } from '../datasource';\nimport { GitTagsDatasource } from '../git-tags';\nimport { GiteaTagsDatasource } from '../gitea-tags';\nimport { GithubTagsDatasource } from '../github-tags';\nimport { GitlabTagsDatasource } from '../gitlab-tags';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport { BaseGoDatasource } from './base';\nimport { getSourceUrl } from './common';\n\n/**\n * This function tries to select tags with longest prefix could be constructed from `packageName`.\n *\n * For package named `example.com/foo/bar/baz/qux`, it will try to detect tags with following prefixes:\n *\n * - `foo/bar/baz/qux/vX.Y.Z`\n * - `bar/baz/qux/vX.Y.Z`\n * - `baz/qux/vX.Y.Z`\n * - `qux/vX.Y.Z`\n *\n * If none of the following is found, it falls back to simply returning all tags like `vX.Y.Z`.\n */\nfunction filterByPrefix(packageName: string, releases: Release[]): Release[] {\n const nameParts = packageName\n .replace(regEx(/\\/v\\d+$/), '')\n .split('/')\n .slice(1);\n\n const submoduleReleases: Release[] = [];\n while (nameParts.length) {\n const prefix = `${nameParts.join('/')}/`;\n\n for (const release of releases) {\n if (!release.version.startsWith(prefix)) {\n continue;\n }\n\n const normalizedVersion = release.version.replace(prefix, '');\n if (!normalizedVersion.match(regEx(/^v\\d[^/]*/))) {\n continue;\n }\n\n release.version = release.version.replace(prefix, '');\n submoduleReleases.push(release);\n }\n\n if (submoduleReleases.length) {\n return submoduleReleases;\n }\n\n nameParts.shift();\n }\n\n return releases.filter((release) => release.version.startsWith('v'));\n}\n\nexport class GoDirectDatasource extends Datasource {\n static readonly id = 'go-direct';\n\n git: GitTagsDatasource;\n readonly gitea = new GiteaTagsDatasource();\n github: GithubTagsDatasource;\n gitlab: GitlabTagsDatasource;\n bitbucket: BitbucketTagsDatasource;\n\n constructor() {\n super(GoDirectDatasource.id);\n this.git = new GitTagsDatasource();\n this.github = new GithubTagsDatasource();\n this.gitlab = new GitlabTagsDatasource();\n this.bitbucket = new BitbucketTagsDatasource();\n }\n\n /**\n * go.getReleases\n *\n * This datasource resolves a go module URL into its source repository\n * and then fetch it if it is on GitHub.\n *\n * This function will:\n * - Determine the source URL for the module\n * - Call the respective getReleases in github/gitlab to retrieve the tags\n * - Filter module tags according to the module path\n */\n @cache({\n namespace: `datasource-${GoDirectDatasource.id}`,\n key: ({ packageName }: GetReleasesConfig) => packageName,\n })\n async getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n const { packageName } = config;\n\n let res: ReleaseResult | null = null;\n\n logger.trace(`go.getReleases(${packageName})`);\n const source = await BaseGoDatasource.getDatasource(packageName);\n\n if (!source) {\n logger.info(\n { packageName },\n 'Unsupported go host - cannot look up versions',\n );\n return null;\n }\n\n switch (source.datasource) {\n case GitTagsDatasource.id: {\n res = await this.git.getReleases(source);\n break;\n }\n case GiteaTagsDatasource.id: {\n res = await this.gitea.getReleases(source);\n break;\n }\n case GithubTagsDatasource.id: {\n res = await this.github.getReleases(source);\n break;\n }\n case GitlabTagsDatasource.id: {\n res = await this.gitlab.getReleases(source);\n break;\n }\n case BitbucketTagsDatasource.id: {\n res = await this.bitbucket.getReleases(source);\n break;\n }\n /* istanbul ignore next: can never happen, makes lint happy */\n default: {\n return null;\n }\n }\n\n // istanbul ignore if\n if (!res) {\n return null;\n }\n\n const sourceUrl = getSourceUrl(source) ?? null;\n\n res.releases = filterByPrefix(packageName, res.releases);\n\n return { ...res, sourceUrl };\n }\n}\n"]}
1
+ {"version":3,"file":"releases-direct.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/go/releases-direct.ts"],"names":[],"mappings":";;;;AAAA,4CAAyC;AACzC,qEAA8D;AAC9D,+CAA4C;AAC5C,sDAA4D;AAC5D,8CAA2C;AAC3C,0CAAgD;AAChD,8CAAoD;AACpD,gDAAsD;AACtD,gDAAsD;AAEtD,iCAA0C;AAC1C,qCAAwC;AAExC;;;;;;;;;;;GAWG;AACH,SAAS,cAAc,CAAC,WAAmB,EAAE,QAAmB;IAC9D,MAAM,SAAS,GAAG,WAAW;SAC1B,OAAO,CAAC,IAAA,aAAK,EAAC,SAAS,CAAC,EAAE,EAAE,CAAC;SAC7B,KAAK,CAAC,GAAG,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,CAAC;IAEZ,MAAM,iBAAiB,GAAc,EAAE,CAAC;IACxC,OAAO,SAAS,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAEzC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,SAAS;YACX,CAAC;YAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAA,aAAK,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC;gBACjD,SAAS;YACX,CAAC;YAED,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACtD,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC7B,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QAED,SAAS,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAa,kBAAmB,SAAQ,uBAAU;IAChD,MAAM,CAAU,EAAE,GAAG,WAAW,CAAC;IAEjC,GAAG,CAAoB;IACd,KAAK,GAAG,IAAI,gCAAmB,EAAE,CAAC;IAC3C,MAAM,CAAuB;IAC7B,MAAM,CAAuB;IAC7B,SAAS,CAA0B;IAEnC;QACE,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,IAAI,4BAAiB,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,kCAAoB,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,IAAI,kCAAoB,EAAE,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,wCAAuB,EAAE,CAAC;IACjD,CAAC;IAED;;;;;;;;;;OAUG;IAKG,AAAN,KAAK,CAAC,WAAW,CAAC,MAAyB;QACzC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAE/B,IAAI,GAAG,GAAyB,IAAI,CAAC;QAErC,eAAM,CAAC,KAAK,CAAC,kBAAkB,WAAW,GAAG,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,uBAAgB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAEjE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,eAAM,CAAC,IAAI,CACT,EAAE,WAAW,EAAE,EACf,+CAA+C,CAChD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,QAAQ,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1B,KAAK,4BAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1B,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACzC,MAAM;YACR,CAAC;YACD,KAAK,gCAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5B,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC3C,MAAM;YACR,CAAC;YACD,KAAK,kCAAoB,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM;YACR,CAAC;YACD,KAAK,kCAAoB,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM;YACR,CAAC;YACD,KAAK,wCAAuB,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChC,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM;YACR,CAAC;YACD,6CAA6C;YAC7C,OAAO,CAAC,CAAC,CAAC;gBACR,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,MAAM,CAAC,IAAI,IAAI,CAAC;QAE/C,OAAO;YACL,GAAG,GAAG;YACN,QAAQ,EAAE,cAAc,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC;YACnD,SAAS;SACV,CAAC;IACJ,CAAC;;AAvFH,gDAwFC;AAxDO;IAJL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,kBAAkB,CAAC,EAAE,EAAE;QAChD,GAAG,EAAE,CAAC,EAAE,WAAW,EAAqB,EAAE,EAAE,CAAC,WAAW;KACzD,CAAC;qDAwDD","sourcesContent":["import { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { regEx } from '../../../util/regex';\nimport { BitbucketTagsDatasource } from '../bitbucket-tags';\nimport { Datasource } from '../datasource';\nimport { GitTagsDatasource } from '../git-tags';\nimport { GiteaTagsDatasource } from '../gitea-tags';\nimport { GithubTagsDatasource } from '../github-tags';\nimport { GitlabTagsDatasource } from '../gitlab-tags';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport { BaseGoDatasource } from './base';\nimport { getSourceUrl } from './common';\n\n/**\n * This function tries to select tags with longest prefix could be constructed from `packageName`.\n *\n * For package named `example.com/foo/bar/baz/qux`, it will try to detect tags with following prefixes:\n *\n * - `foo/bar/baz/qux/vX.Y.Z`\n * - `bar/baz/qux/vX.Y.Z`\n * - `baz/qux/vX.Y.Z`\n * - `qux/vX.Y.Z`\n *\n * If none of the following is found, it falls back to simply returning all tags like `vX.Y.Z`.\n */\nfunction filterByPrefix(packageName: string, releases: Release[]): Release[] {\n const nameParts = packageName\n .replace(regEx(/\\/v\\d+$/), '')\n .split('/')\n .slice(1);\n\n const submoduleReleases: Release[] = [];\n while (nameParts.length) {\n const prefix = `${nameParts.join('/')}/`;\n\n for (const release of releases) {\n if (!release.version.startsWith(prefix)) {\n continue;\n }\n\n const normalizedVersion = release.version.replace(prefix, '');\n if (!normalizedVersion.match(regEx(/^v\\d[^/]*/))) {\n continue;\n }\n\n release.version = release.version.replace(prefix, '');\n submoduleReleases.push(release);\n }\n\n if (submoduleReleases.length) {\n return submoduleReleases;\n }\n\n nameParts.shift();\n }\n\n return releases.filter((release) => release.version.startsWith('v'));\n}\n\nexport class GoDirectDatasource extends Datasource {\n static readonly id = 'go-direct';\n\n git: GitTagsDatasource;\n readonly gitea = new GiteaTagsDatasource();\n github: GithubTagsDatasource;\n gitlab: GitlabTagsDatasource;\n bitbucket: BitbucketTagsDatasource;\n\n constructor() {\n super(GoDirectDatasource.id);\n this.git = new GitTagsDatasource();\n this.github = new GithubTagsDatasource();\n this.gitlab = new GitlabTagsDatasource();\n this.bitbucket = new BitbucketTagsDatasource();\n }\n\n /**\n * go.getReleases\n *\n * This datasource resolves a go module URL into its source repository\n * and then fetch it if it is on GitHub.\n *\n * This function will:\n * - Determine the source URL for the module\n * - Call the respective getReleases in github/gitlab to retrieve the tags\n * - Filter module tags according to the module path\n */\n @cache({\n namespace: `datasource-${GoDirectDatasource.id}`,\n key: ({ packageName }: GetReleasesConfig) => packageName,\n })\n async getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n const { packageName } = config;\n\n let res: ReleaseResult | null = null;\n\n logger.trace(`go.getReleases(${packageName})`);\n const source = await BaseGoDatasource.getDatasource(packageName);\n\n if (!source) {\n logger.info(\n { packageName },\n 'Unsupported go host - cannot look up versions',\n );\n return null;\n }\n\n switch (source.datasource) {\n case GitTagsDatasource.id: {\n res = await this.git.getReleases(source);\n break;\n }\n case GiteaTagsDatasource.id: {\n res = await this.gitea.getReleases(source);\n break;\n }\n case GithubTagsDatasource.id: {\n res = await this.github.getReleases(source);\n break;\n }\n case GitlabTagsDatasource.id: {\n res = await this.gitlab.getReleases(source);\n break;\n }\n case BitbucketTagsDatasource.id: {\n res = await this.bitbucket.getReleases(source);\n break;\n }\n /* v8 ignore next 3 -- should never happen */\n default: {\n return null;\n }\n }\n\n /* v8 ignore next 3 -- TODO: add test */\n if (!res) {\n return null;\n }\n\n const sourceUrl = getSourceUrl(source) ?? null;\n\n return {\n ...res,\n releases: filterByPrefix(packageName, res.releases),\n sourceUrl,\n };\n }\n}\n"]}
@@ -30,7 +30,7 @@ class GolangVersionDatasource extends datasource_1.Datasource {
30
30
  sourceUrlSupport = 'package';
31
31
  sourceUrlNote = 'We use the URL: https://github.com/golang/go.';
32
32
  async getReleases({ registryUrl, }) {
33
- // istanbul ignore if
33
+ /* v8 ignore next 3 -- should never happen */
34
34
  if (!registryUrl) {
35
35
  return null;
36
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/golang-version/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { ExternalHostError } from '../../../types/errors/external-host-error';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { regEx } from '../../../util/regex';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { joinUrlParts } from '../../../util/url';\nimport { isVersion, id as semverVersioningId } from '../../versioning/semver';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\n\nconst lineTerminationRegex = regEx(`\\r?\\n`);\nconst releaseBeginningChar = '\\t{';\nconst releaseTerminationChar = '\\t},';\nconst releaseDateRegex = regEx(\n `Date\\\\{(?<year>\\\\d+),\\\\s+(?<month>\\\\d+),\\\\s+(?<day>\\\\d+)\\\\}`,\n);\nconst releaseVersionRegex = regEx(\n `Version\\\\{(?<versionMajor>\\\\d+),\\\\s+(?<versionMinor>\\\\d+),\\\\s+(?<patch>\\\\d+)\\\\}`,\n);\nconst releaseFutureRegex = regEx(`Future:\\\\s+true`);\n\nexport class GolangVersionDatasource extends Datasource {\n static readonly id = 'golang-version';\n\n constructor() {\n super(GolangVersionDatasource.id);\n }\n\n override readonly defaultRegistryUrls = [\n 'https://raw.githubusercontent.com/golang/website',\n ];\n\n override readonly customRegistrySupport = true;\n\n override readonly defaultVersioning = semverVersioningId;\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `Date` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'We use the URL: https://github.com/golang/go.';\n\n @cache({ namespace: `datasource-${GolangVersionDatasource.id}`, key: 'all' })\n async getReleases({\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n // istanbul ignore if\n if (!registryUrl) {\n return null;\n }\n\n const res: ReleaseResult = {\n homepage: 'https://go.dev/',\n sourceUrl: 'https://github.com/golang/go',\n releases: [],\n };\n\n const golangVersionsUrl = joinUrlParts(\n registryUrl,\n '/HEAD/internal/history/release.go',\n );\n\n const response = await this.http.getText(golangVersionsUrl);\n\n const lines = response.body.split(lineTerminationRegex);\n\n const startOfReleases = lines.indexOf('var Releases = []*Release{');\n if (startOfReleases === -1) {\n throw new ExternalHostError(\n new Error('Invalid file - could not find the Releases section'),\n );\n }\n\n // Remove part before releases\n lines.splice(0, startOfReleases + 1);\n\n // Parse the release list\n let release: Omit<Release, 'version'> & { version?: string | undefined } = {\n version: undefined,\n };\n let skipFutureRelease = false;\n while (lines.length !== 0) {\n const line = lines.shift()!;\n if (line === releaseBeginningChar) {\n if (release.version !== undefined) {\n throw new ExternalHostError(\n new Error(\n 'Invalid file - unexpected error while parsing a release',\n ),\n );\n }\n } else if (line === releaseTerminationChar) {\n if (skipFutureRelease) {\n skipFutureRelease = false;\n } else {\n if (release.version === undefined) {\n throw new ExternalHostError(\n new Error('Invalid file - release has empty version'),\n );\n }\n res.releases.push(release as Release);\n }\n release = { version: undefined };\n } else {\n const isFutureRelease = releaseFutureRegex.test(line);\n if (isFutureRelease) {\n skipFutureRelease = true;\n }\n const releaseDateMatch = releaseDateRegex.exec(line);\n if (releaseDateMatch?.groups) {\n // Make a valid UTC timestamp\n const year = releaseDateMatch.groups.year.padStart(4, '0');\n const month = releaseDateMatch.groups.month.padStart(2, '0');\n const day = releaseDateMatch.groups.day.padStart(2, '0');\n release.releaseTimestamp = asTimestamp(\n `${year}-${month}-${day}T00:00:00.000Z`,\n );\n }\n const releaseVersionMatch = releaseVersionRegex.exec(line);\n if (releaseVersionMatch?.groups) {\n release.version = `${releaseVersionMatch.groups.versionMajor}.${releaseVersionMatch.groups.versionMinor}.${releaseVersionMatch.groups.patch}`;\n if (!isVersion(release.version)) {\n throw new ExternalHostError(\n new Error(`Version ${release.version} is not a valid semver`),\n );\n }\n }\n }\n }\n\n if (res.releases.length === 0) {\n throw new ExternalHostError(\n new Error(`Invalid file - zero releases extracted`),\n );\n }\n\n return res;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/golang-version/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { ExternalHostError } from '../../../types/errors/external-host-error';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { regEx } from '../../../util/regex';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { joinUrlParts } from '../../../util/url';\nimport { isVersion, id as semverVersioningId } from '../../versioning/semver';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\n\nconst lineTerminationRegex = regEx(`\\r?\\n`);\nconst releaseBeginningChar = '\\t{';\nconst releaseTerminationChar = '\\t},';\nconst releaseDateRegex = regEx(\n `Date\\\\{(?<year>\\\\d+),\\\\s+(?<month>\\\\d+),\\\\s+(?<day>\\\\d+)\\\\}`,\n);\nconst releaseVersionRegex = regEx(\n `Version\\\\{(?<versionMajor>\\\\d+),\\\\s+(?<versionMinor>\\\\d+),\\\\s+(?<patch>\\\\d+)\\\\}`,\n);\nconst releaseFutureRegex = regEx(`Future:\\\\s+true`);\n\nexport class GolangVersionDatasource extends Datasource {\n static readonly id = 'golang-version';\n\n constructor() {\n super(GolangVersionDatasource.id);\n }\n\n override readonly defaultRegistryUrls = [\n 'https://raw.githubusercontent.com/golang/website',\n ];\n\n override readonly customRegistrySupport = true;\n\n override readonly defaultVersioning = semverVersioningId;\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `Date` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'We use the URL: https://github.com/golang/go.';\n\n @cache({ namespace: `datasource-${GolangVersionDatasource.id}`, key: 'all' })\n async getReleases({\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 res: ReleaseResult = {\n homepage: 'https://go.dev/',\n sourceUrl: 'https://github.com/golang/go',\n releases: [],\n };\n\n const golangVersionsUrl = joinUrlParts(\n registryUrl,\n '/HEAD/internal/history/release.go',\n );\n\n const response = await this.http.getText(golangVersionsUrl);\n\n const lines = response.body.split(lineTerminationRegex);\n\n const startOfReleases = lines.indexOf('var Releases = []*Release{');\n if (startOfReleases === -1) {\n throw new ExternalHostError(\n new Error('Invalid file - could not find the Releases section'),\n );\n }\n\n // Remove part before releases\n lines.splice(0, startOfReleases + 1);\n\n // Parse the release list\n let release: Omit<Release, 'version'> & { version?: string | undefined } = {\n version: undefined,\n };\n let skipFutureRelease = false;\n while (lines.length !== 0) {\n const line = lines.shift()!;\n if (line === releaseBeginningChar) {\n if (release.version !== undefined) {\n throw new ExternalHostError(\n new Error(\n 'Invalid file - unexpected error while parsing a release',\n ),\n );\n }\n } else if (line === releaseTerminationChar) {\n if (skipFutureRelease) {\n skipFutureRelease = false;\n } else {\n if (release.version === undefined) {\n throw new ExternalHostError(\n new Error('Invalid file - release has empty version'),\n );\n }\n res.releases.push(release as Release);\n }\n release = { version: undefined };\n } else {\n const isFutureRelease = releaseFutureRegex.test(line);\n if (isFutureRelease) {\n skipFutureRelease = true;\n }\n const releaseDateMatch = releaseDateRegex.exec(line);\n if (releaseDateMatch?.groups) {\n // Make a valid UTC timestamp\n const year = releaseDateMatch.groups.year.padStart(4, '0');\n const month = releaseDateMatch.groups.month.padStart(2, '0');\n const day = releaseDateMatch.groups.day.padStart(2, '0');\n release.releaseTimestamp = asTimestamp(\n `${year}-${month}-${day}T00:00:00.000Z`,\n );\n }\n const releaseVersionMatch = releaseVersionRegex.exec(line);\n if (releaseVersionMatch?.groups) {\n release.version = `${releaseVersionMatch.groups.versionMajor}.${releaseVersionMatch.groups.versionMinor}.${releaseVersionMatch.groups.patch}`;\n if (!isVersion(release.version)) {\n throw new ExternalHostError(\n new Error(`Version ${release.version} is not a valid semver`),\n );\n }\n }\n }\n }\n\n if (res.releases.length === 0) {\n throw new ExternalHostError(\n new Error(`Invalid file - zero releases extracted`),\n );\n }\n\n return res;\n }\n}\n"]}
@@ -21,7 +21,7 @@ class GradleVersionDatasource extends datasource_1.Datasource {
21
21
  sourceUrlSupport = 'package';
22
22
  sourceUrlNote = 'We use the URL: https://github.com/gradle/gradle.';
23
23
  async getReleases({ registryUrl, }) {
24
- // istanbul ignore if
24
+ /* v8 ignore next 3 -- should never happen */
25
25
  if (!registryUrl) {
26
26
  return null;
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/gradle-version/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { cache } from '../../../util/cache/package/decorator';\nimport { asTimestamp } from '../../../util/timestamp';\nimport * as gradleVersioning from '../../versioning/gradle';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport type { GradleRelease } from './types';\n\nexport class GradleVersionDatasource extends Datasource {\n static readonly id = 'gradle-version';\n\n constructor() {\n super(GradleVersionDatasource.id);\n }\n\n override readonly defaultRegistryUrls = [\n 'https://services.gradle.org/versions/all',\n ];\n\n override readonly defaultVersioning = gradleVersioning.id;\n\n override readonly registryStrategy = 'merge';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `buildTime` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'We use the URL: https://github.com/gradle/gradle.';\n\n @cache({\n namespace: `datasource-${GradleVersionDatasource.id}`,\n // TODO: types (#22198)\n key: ({ registryUrl }: GetReleasesConfig) => `${registryUrl}`,\n })\n async getReleases({\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n // istanbul ignore if\n if (!registryUrl) {\n return null;\n }\n\n let releases: Release[];\n try {\n const response =\n await this.http.getJsonUnchecked<GradleRelease[]>(registryUrl);\n releases = response.body\n .filter((release) => !release.snapshot && !release.nightly)\n .map((release) => {\n const { version, buildTime } = release;\n\n const gitRef = GradleVersionDatasource.getGitRef(release.version);\n\n const releaseTimestamp = asTimestamp(buildTime);\n\n const result: Release = { version, gitRef, releaseTimestamp };\n\n if (release.broken) {\n result.isDeprecated = true;\n }\n\n return result;\n });\n } catch (err) {\n this.handleGenericErrors(err);\n }\n\n const res: ReleaseResult = {\n releases,\n homepage: 'https://gradle.org',\n sourceUrl: 'https://github.com/gradle/gradle',\n };\n if (res.releases.length) {\n return res;\n }\n return null;\n }\n\n /**\n * Calculate `gitTag` based on `version`:\n * - `8.1.2` -> `v8.1.2`\n * - `8.2` -> `v8.2.0`\n * - `8.2-rc-1` -> `v8.2.0-RC1`\n * - `8.2-milestone-1` -> `v8.2.0-M1`\n */\n private static getGitRef(version: string): string {\n const [versionPart, typePart, unstablePart] = version.split(/-([a-z]+)-/);\n\n let suffix = '';\n if (typePart === 'rc') {\n suffix = `-RC${unstablePart}`;\n } else if (typePart === 'milestone') {\n suffix = `-M${unstablePart}`;\n }\n\n const [major, minor, patch = '0'] = versionPart.split('.');\n return `v${major}.${minor}.${patch}${suffix}`;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/gradle-version/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { cache } from '../../../util/cache/package/decorator';\nimport { asTimestamp } from '../../../util/timestamp';\nimport * as gradleVersioning from '../../versioning/gradle';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport type { GradleRelease } from './types';\n\nexport class GradleVersionDatasource extends Datasource {\n static readonly id = 'gradle-version';\n\n constructor() {\n super(GradleVersionDatasource.id);\n }\n\n override readonly defaultRegistryUrls = [\n 'https://services.gradle.org/versions/all',\n ];\n\n override readonly defaultVersioning = gradleVersioning.id;\n\n override readonly registryStrategy = 'merge';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `buildTime` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'We use the URL: https://github.com/gradle/gradle.';\n\n @cache({\n namespace: `datasource-${GradleVersionDatasource.id}`,\n // TODO: types (#22198)\n key: ({ registryUrl }: GetReleasesConfig) => `${registryUrl}`,\n })\n async getReleases({\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n\n let releases: Release[];\n try {\n const response =\n await this.http.getJsonUnchecked<GradleRelease[]>(registryUrl);\n releases = response.body\n .filter((release) => !release.snapshot && !release.nightly)\n .map((release) => {\n const { version, buildTime } = release;\n\n const gitRef = GradleVersionDatasource.getGitRef(release.version);\n\n const releaseTimestamp = asTimestamp(buildTime);\n\n const result: Release = { version, gitRef, releaseTimestamp };\n\n if (release.broken) {\n result.isDeprecated = true;\n }\n\n return result;\n });\n } catch (err) {\n this.handleGenericErrors(err);\n }\n\n const res: ReleaseResult = {\n releases,\n homepage: 'https://gradle.org',\n sourceUrl: 'https://github.com/gradle/gradle',\n };\n if (res.releases.length) {\n return res;\n }\n return null;\n }\n\n /**\n * Calculate `gitTag` based on `version`:\n * - `8.1.2` -> `v8.1.2`\n * - `8.2` -> `v8.2.0`\n * - `8.2-rc-1` -> `v8.2.0-RC1`\n * - `8.2-milestone-1` -> `v8.2.0-M1`\n */\n private static getGitRef(version: string): string {\n const [versionPart, typePart, unstablePart] = version.split(/-([a-z]+)-/);\n\n let suffix = '';\n if (typePart === 'rc') {\n suffix = `-RC${unstablePart}`;\n } else if (typePart === 'milestone') {\n suffix = `-M${unstablePart}`;\n }\n\n const [major, minor, patch = '0'] = versionPart.split('.');\n return `v${major}.${minor}.${patch}${suffix}`;\n }\n}\n"]}
@@ -32,7 +32,7 @@ class HelmDatasource extends datasource_1.Datasource {
32
32
  return val;
33
33
  }
34
34
  async getReleases({ packageName, registryUrl: helmRepository, }) {
35
- // istanbul ignore if
35
+ /* v8 ignore next 3 -- should never happen */
36
36
  if (!helmRepository) {
37
37
  return null;
38
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/helm/index.ts"],"names":[],"mappings":";;;;AAAA,4CAAyC;AACzC,qEAA8D;AAC9D,2CAAwD;AACxD,8EAAwD;AACxD,8CAA2C;AAG3C,qCAAgD;AAEhD,MAAa,cAAe,SAAQ,uBAAU;IAC5C,MAAM,CAAU,EAAE,GAAG,MAAM,CAAC;IAE5B;QACE,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAEiB,mBAAmB,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAExD,aAAa,GAAG;QAChC,kBAAkB,EAAE,0BAA0B;KAC/C,CAAC;IAEgB,iBAAiB,GAAG,cAAc,CAAC,EAAE,CAAC;IAEtC,uBAAuB,GAAG,IAAI,CAAC;IAC/B,oBAAoB,GACpC,6EAA6E,CAAC;IAC9D,gBAAgB,GAAG,SAAS,CAAC;IAC7B,aAAa,GAC7B,2FAA2F,CAAC;IAMxF,AAAN,KAAK,CAAC,iBAAiB,CAAC,cAAsB;QAC5C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI;aACjC,WAAW,CACV,YAAY,EACZ,EAAE,OAAO,EAAE,IAAA,yBAAmB,EAAC,cAAc,CAAC,EAAE,EAChD,6BAAoB,CACrB;aACA,MAAM,EAAE,CAAC;QAEZ,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAChB,WAAW,EACX,WAAW,EAAE,cAAc,GACT;QAClB,qBAAqB;QACrB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,WAAW,EAAE,EAC3B,SAAS,WAAW,qCAAqC,cAAc,EAAE,CAC1E,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;;AA7DH,wCA8DC;AApCO;IAJL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,cAAc,CAAC,EAAE,EAAE;QAC5C,GAAG,EAAE,CAAC,cAAsB,EAAE,EAAE,CAAC,mBAAmB,cAAc,EAAE;KACrE,CAAC;uDAeD","sourcesContent":["import { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport * as helmVersioning from '../../versioning/helm';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport type { HelmRepositoryData } from './schema';\nimport { HelmRepositorySchema } from './schema';\n\nexport class HelmDatasource extends Datasource {\n static readonly id = 'helm';\n\n constructor() {\n super(HelmDatasource.id);\n }\n\n override readonly defaultRegistryUrls = ['https://charts.helm.sh/stable'];\n\n override readonly defaultConfig = {\n commitMessageTopic: 'Helm release {{depName}}',\n };\n\n override readonly defaultVersioning = helmVersioning.id;\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timstamp is determined from the `created` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `home` field or the `sources` field in the results.';\n\n @cache({\n namespace: `datasource-${HelmDatasource.id}`,\n key: (helmRepository: string) => `repository-data:${helmRepository}`,\n })\n async getRepositoryData(helmRepository: string): Promise<HelmRepositoryData> {\n const { val, err } = await this.http\n .getYamlSafe(\n 'index.yaml',\n { baseUrl: ensureTrailingSlash(helmRepository) },\n HelmRepositorySchema,\n )\n .unwrap();\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n async getReleases({\n packageName,\n registryUrl: helmRepository,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n // istanbul ignore if\n if (!helmRepository) {\n return null;\n }\n\n const repositoryData = await this.getRepositoryData(helmRepository);\n const releases = repositoryData[packageName];\n if (!releases) {\n logger.debug(\n { dependency: packageName },\n `Entry ${packageName} doesn't exist in index.yaml from ${helmRepository}`,\n );\n return null;\n }\n return releases;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/helm/index.ts"],"names":[],"mappings":";;;;AAAA,4CAAyC;AACzC,qEAA8D;AAC9D,2CAAwD;AACxD,8EAAwD;AACxD,8CAA2C;AAG3C,qCAAgD;AAEhD,MAAa,cAAe,SAAQ,uBAAU;IAC5C,MAAM,CAAU,EAAE,GAAG,MAAM,CAAC;IAE5B;QACE,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAEiB,mBAAmB,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAExD,aAAa,GAAG;QAChC,kBAAkB,EAAE,0BAA0B;KAC/C,CAAC;IAEgB,iBAAiB,GAAG,cAAc,CAAC,EAAE,CAAC;IAEtC,uBAAuB,GAAG,IAAI,CAAC;IAC/B,oBAAoB,GACpC,6EAA6E,CAAC;IAC9D,gBAAgB,GAAG,SAAS,CAAC;IAC7B,aAAa,GAC7B,2FAA2F,CAAC;IAMxF,AAAN,KAAK,CAAC,iBAAiB,CAAC,cAAsB;QAC5C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI;aACjC,WAAW,CACV,YAAY,EACZ,EAAE,OAAO,EAAE,IAAA,yBAAmB,EAAC,cAAc,CAAC,EAAE,EAChD,6BAAoB,CACrB;aACA,MAAM,EAAE,CAAC;QAEZ,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAChB,WAAW,EACX,WAAW,EAAE,cAAc,GACT;QAClB,6CAA6C;QAC7C,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,WAAW,EAAE,EAC3B,SAAS,WAAW,qCAAqC,cAAc,EAAE,CAC1E,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;;AA7DH,wCA8DC;AApCO;IAJL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,cAAc,CAAC,EAAE,EAAE;QAC5C,GAAG,EAAE,CAAC,cAAsB,EAAE,EAAE,CAAC,mBAAmB,cAAc,EAAE;KACrE,CAAC;uDAeD","sourcesContent":["import { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport * as helmVersioning from '../../versioning/helm';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport type { HelmRepositoryData } from './schema';\nimport { HelmRepositorySchema } from './schema';\n\nexport class HelmDatasource extends Datasource {\n static readonly id = 'helm';\n\n constructor() {\n super(HelmDatasource.id);\n }\n\n override readonly defaultRegistryUrls = ['https://charts.helm.sh/stable'];\n\n override readonly defaultConfig = {\n commitMessageTopic: 'Helm release {{depName}}',\n };\n\n override readonly defaultVersioning = helmVersioning.id;\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timstamp is determined from the `created` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `home` field or the `sources` field in the results.';\n\n @cache({\n namespace: `datasource-${HelmDatasource.id}`,\n key: (helmRepository: string) => `repository-data:${helmRepository}`,\n })\n async getRepositoryData(helmRepository: string): Promise<HelmRepositoryData> {\n const { val, err } = await this.http\n .getYamlSafe(\n 'index.yaml',\n { baseUrl: ensureTrailingSlash(helmRepository) },\n HelmRepositorySchema,\n )\n .unwrap();\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n async getReleases({\n packageName,\n registryUrl: helmRepository,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!helmRepository) {\n return null;\n }\n\n const repositoryData = await this.getRepositoryData(helmRepository);\n const releases = repositoryData[packageName];\n if (!releases) {\n logger.debug(\n { dependency: packageName },\n `Entry ${packageName} doesn't exist in index.yaml from ${helmRepository}`,\n );\n return null;\n }\n return releases;\n }\n}\n"]}
@@ -20,7 +20,7 @@ class HexDatasource extends datasource_1.Datasource {
20
20
  sourceUrlSupport = 'package';
21
21
  sourceUrlNote = 'The source URL is determined from the `Github` field in the results.';
22
22
  async getReleases({ packageName, registryUrl, }) {
23
- // istanbul ignore if
23
+ /* v8 ignore next 3 -- should never happen */
24
24
  if (!registryUrl) {
25
25
  return null;
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/hex/index.ts"],"names":[],"mappings":";;;;AAAA,4CAAyC;AACzC,qEAA8D;AAC9D,2CAAiD;AACjD,4EAAsD;AACtD,8CAA2C;AAE3C,qCAAsC;AAEtC,MAAa,aAAc,SAAQ,uBAAU;IAC3C,MAAM,CAAU,EAAE,GAAG,KAAK,CAAC;IAE3B;QACE,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAEiB,mBAAmB,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAEzC,iBAAiB,GAAG,aAAa,CAAC,EAAE,CAAC;IAErC,uBAAuB,GAAG,IAAI,CAAC;IAC/B,oBAAoB,GACpC,6EAA6E,CAAC;IAC9D,gBAAgB,GAAG,SAAS,CAAC;IAC7B,aAAa,GAC7B,sEAAsE,CAAC;IAMnE,AAAN,KAAK,CAAC,WAAW,CAAC,EAChB,WAAW,EACX,WAAW,GACO;QAClB,qBAAqB;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,wCAAwC;QACxC,oFAAoF;QACpF,kCAAkC;QAClC,mDAAmD;QACnD,yDAAyD;QACzD,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClE,MAAM,qBAAqB,GAAG,gBAAgB;YAC5C,CAAC,CAAC,SAAS,gBAAgB,GAAG;YAC9B,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,MAAM,GAAG,IAAA,kBAAY,EACzB,WAAW,EACX,QAAQ,qBAAqB,YAAY,cAAc,EAAE,CAC1D,CAAC;QAEF,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI;aACzC,WAAW,CAAC,MAAM,EAAE,mBAAU,CAAC;aAC/B,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACf,eAAM,CAAC,IAAI,CACT,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,EACpD,yBAAyB,CAC1B,CAAC;QACJ,CAAC,CAAC;aACD,MAAM,EAAE,CAAC;QAEZ,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;;AA7DH,sCA8DC;AAxCO;IAJL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,aAAa,CAAC,EAAE,EAAE;QAC3C,GAAG,EAAE,CAAC,EAAE,WAAW,EAAqB,EAAE,EAAE,CAAC,WAAW;KACzD,CAAC;gDAwCD","sourcesContent":["import { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { joinUrlParts } from '../../../util/url';\nimport * as hexVersioning from '../../versioning/hex';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport { HexRelease } from './schema';\n\nexport class HexDatasource extends Datasource {\n static readonly id = 'hex';\n\n constructor() {\n super(HexDatasource.id);\n }\n\n override readonly defaultRegistryUrls = ['https://hex.pm'];\n\n override readonly defaultVersioning = hexVersioning.id;\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined the `inserted_at` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `Github` field in the results.';\n\n @cache({\n namespace: `datasource-${HexDatasource.id}`,\n key: ({ packageName }: GetReleasesConfig) => packageName,\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 // Get dependency name from packageName.\n // If the dependency is private packageName contains organization name as following:\n // hexPackageName:organizationName\n // hexPackageName is used to pass it in hex dep url\n // organizationName is used for accessing to private deps\n const [hexPackageName, organizationName] = packageName.split(':');\n const organizationUrlPrefix = organizationName\n ? `repos/${organizationName}/`\n : '';\n\n const hexUrl = joinUrlParts(\n registryUrl,\n `/api/${organizationUrlPrefix}packages/${hexPackageName}`,\n );\n\n const { val: result, err } = await this.http\n .getJsonSafe(hexUrl, HexRelease)\n .onError((err) => {\n logger.warn(\n { url: hexUrl, datasource: 'hex', packageName, err },\n 'Error fetching from url',\n );\n })\n .unwrap();\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return result;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/hex/index.ts"],"names":[],"mappings":";;;;AAAA,4CAAyC;AACzC,qEAA8D;AAC9D,2CAAiD;AACjD,4EAAsD;AACtD,8CAA2C;AAE3C,qCAAsC;AAEtC,MAAa,aAAc,SAAQ,uBAAU;IAC3C,MAAM,CAAU,EAAE,GAAG,KAAK,CAAC;IAE3B;QACE,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAEiB,mBAAmB,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAEzC,iBAAiB,GAAG,aAAa,CAAC,EAAE,CAAC;IAErC,uBAAuB,GAAG,IAAI,CAAC;IAC/B,oBAAoB,GACpC,6EAA6E,CAAC;IAC9D,gBAAgB,GAAG,SAAS,CAAC;IAC7B,aAAa,GAC7B,sEAAsE,CAAC;IAMnE,AAAN,KAAK,CAAC,WAAW,CAAC,EAChB,WAAW,EACX,WAAW,GACO;QAClB,6CAA6C;QAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,wCAAwC;QACxC,oFAAoF;QACpF,kCAAkC;QAClC,mDAAmD;QACnD,yDAAyD;QACzD,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClE,MAAM,qBAAqB,GAAG,gBAAgB;YAC5C,CAAC,CAAC,SAAS,gBAAgB,GAAG;YAC9B,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,MAAM,GAAG,IAAA,kBAAY,EACzB,WAAW,EACX,QAAQ,qBAAqB,YAAY,cAAc,EAAE,CAC1D,CAAC;QAEF,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI;aACzC,WAAW,CAAC,MAAM,EAAE,mBAAU,CAAC;aAC/B,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACf,eAAM,CAAC,IAAI,CACT,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,EACpD,yBAAyB,CAC1B,CAAC;QACJ,CAAC,CAAC;aACD,MAAM,EAAE,CAAC;QAEZ,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;;AA7DH,sCA8DC;AAxCO;IAJL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,aAAa,CAAC,EAAE,EAAE;QAC3C,GAAG,EAAE,CAAC,EAAE,WAAW,EAAqB,EAAE,EAAE,CAAC,WAAW;KACzD,CAAC;gDAwCD","sourcesContent":["import { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { joinUrlParts } from '../../../util/url';\nimport * as hexVersioning from '../../versioning/hex';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport { HexRelease } from './schema';\n\nexport class HexDatasource extends Datasource {\n static readonly id = 'hex';\n\n constructor() {\n super(HexDatasource.id);\n }\n\n override readonly defaultRegistryUrls = ['https://hex.pm'];\n\n override readonly defaultVersioning = hexVersioning.id;\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined the `inserted_at` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `Github` field in the results.';\n\n @cache({\n namespace: `datasource-${HexDatasource.id}`,\n key: ({ packageName }: GetReleasesConfig) => packageName,\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 // Get dependency name from packageName.\n // If the dependency is private packageName contains organization name as following:\n // hexPackageName:organizationName\n // hexPackageName is used to pass it in hex dep url\n // organizationName is used for accessing to private deps\n const [hexPackageName, organizationName] = packageName.split(':');\n const organizationUrlPrefix = organizationName\n ? `repos/${organizationName}/`\n : '';\n\n const hexUrl = joinUrlParts(\n registryUrl,\n `/api/${organizationUrlPrefix}packages/${hexPackageName}`,\n );\n\n const { val: result, err } = await this.http\n .getJsonSafe(hexUrl, HexRelease)\n .onError((err) => {\n logger.warn(\n { url: hexUrl, datasource: 'hex', packageName, err },\n 'Error fetching from url',\n );\n })\n .unwrap();\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return result;\n }\n}\n"]}
@@ -243,7 +243,7 @@ async function fetchReleases(config) {
243
243
  }
244
244
  registryUrls = resolveRegistryUrls(datasource, config.defaultRegistryUrls, registryUrls, config.additionalRegistryUrls);
245
245
  let dep = null;
246
- const registryStrategy = datasource.registryStrategy ?? 'hunt';
246
+ const registryStrategy = config.registryStrategy ?? datasource.registryStrategy ?? 'hunt';
247
247
  try {
248
248
  if (is_1.default.nonEmptyArray(registryUrls)) {
249
249
  if (registryStrategy === 'first') {
@@ -278,7 +278,7 @@ async function fetchReleases(config) {
278
278
  }
279
279
  function fetchCachedReleases(config) {
280
280
  const { datasource, packageName, registryUrls } = config;
281
- const cacheKey = `${cacheNamespace}${datasource}${packageName}${String(registryUrls)}`;
281
+ const cacheKey = `${cacheNamespace}${datasource}${packageName}${config.registryStrategy}${String(registryUrls)}`;
282
282
  // By returning a Promise and reusing it, we should only fetch each package at most once
283
283
  const cachedResult = memCache.get(cacheKey);
284
284
  // istanbul ignore if
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/modules/datasource/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { dequal } from 'dequal';\nimport { GlobalConfig } from '../../config/global';\nimport { HOST_DISABLED } from '../../constants/error-messages';\nimport { logger } from '../../logger';\nimport { ExternalHostError } from '../../types/errors/external-host-error';\nimport { coerceArray } from '../../util/array';\nimport * as memCache from '../../util/cache/memory';\nimport * as packageCache from '../../util/cache/package';\nimport { clone } from '../../util/clone';\nimport { filterMap } from '../../util/filter-map';\nimport { AsyncResult, Result } from '../../util/result';\nimport { DatasourceCacheStats } from '../../util/stats';\nimport { trimTrailingSlash } from '../../util/url';\nimport datasources from './api';\nimport {\n applyConstraintsFiltering,\n applyExtractVersion,\n applyVersionCompatibility,\n filterValidVersions,\n getDatasourceFor,\n sortAndRemoveDuplicates,\n} from './common';\nimport { addMetaData } from './metadata';\nimport { setNpmrc } from './npm';\nimport { resolveRegistryUrl } from './npm/npmrc';\nimport type {\n DatasourceApi,\n DigestConfig,\n GetDigestInputConfig,\n GetPkgReleasesConfig,\n GetReleasesConfig,\n ReleaseResult,\n} from './types';\n\nexport * from './types';\nexport { isGetPkgReleasesConfig } from './common';\n\nexport const getDatasources = (): Map<string, DatasourceApi> => datasources;\nexport const getDatasourceList = (): string[] => Array.from(datasources.keys());\n\nconst cacheNamespace = 'datasource-releases';\n\ntype GetReleasesInternalConfig = GetReleasesConfig & GetPkgReleasesConfig;\n\n// TODO: fix error Type\nfunction logError(datasource: string, packageName: string, err: any): void {\n const { statusCode, code: errCode, url } = err;\n if (statusCode === 404) {\n logger.debug({ datasource, packageName, url }, 'Datasource 404');\n } else if (statusCode === 401 || statusCode === 403) {\n logger.debug({ datasource, packageName, url }, 'Datasource unauthorized');\n } else if (errCode) {\n logger.debug(\n { datasource, packageName, url, errCode },\n 'Datasource connection error',\n );\n } else {\n logger.debug({ datasource, packageName, err }, 'Datasource unknown error');\n }\n}\n\nasync function getRegistryReleases(\n datasource: DatasourceApi,\n config: GetReleasesConfig,\n registryUrl: string,\n): Promise<ReleaseResult | null> {\n const cacheKey = `${datasource.id} ${registryUrl} ${config.packageName}`;\n if (datasource.caching) {\n const cachedResult = await packageCache.get<ReleaseResult>(\n cacheNamespace,\n cacheKey,\n );\n\n // istanbul ignore if\n if (cachedResult) {\n logger.trace({ cacheKey }, 'Returning cached datasource response');\n DatasourceCacheStats.hit(datasource.id, registryUrl, config.packageName);\n return cachedResult;\n }\n\n DatasourceCacheStats.miss(datasource.id, registryUrl, config.packageName);\n }\n\n const res = await datasource.getReleases({ ...config, registryUrl });\n if (res?.releases.length) {\n res.registryUrl ??= registryUrl;\n }\n\n // cache non-null responses unless marked as private\n if (datasource.caching && res) {\n const cachePrivatePackages = GlobalConfig.get(\n 'cachePrivatePackages',\n false,\n );\n if (cachePrivatePackages || !res.isPrivate) {\n logger.trace({ cacheKey }, 'Caching datasource response');\n const cacheMinutes = 15;\n await packageCache.set(cacheNamespace, cacheKey, res, cacheMinutes);\n DatasourceCacheStats.set(datasource.id, registryUrl, config.packageName);\n } else {\n DatasourceCacheStats.skip(datasource.id, registryUrl, config.packageName);\n }\n }\n\n return res;\n}\n\nfunction firstRegistry(\n config: GetReleasesInternalConfig,\n datasource: DatasourceApi,\n registryUrls: string[],\n): Promise<ReleaseResult | null> {\n if (registryUrls.length > 1) {\n logger.warn(\n {\n datasource: datasource.id,\n packageName: config.packageName,\n registryUrls,\n },\n 'Excess registryUrls found for datasource lookup - using first configured only',\n );\n }\n const registryUrl = registryUrls[0];\n return getRegistryReleases(datasource, config, registryUrl);\n}\n\nasync function huntRegistries(\n config: GetReleasesInternalConfig,\n datasource: DatasourceApi,\n registryUrls: string[],\n): Promise<ReleaseResult | null> {\n let res: ReleaseResult | null = null;\n let caughtError: Error | undefined;\n for (const registryUrl of registryUrls) {\n try {\n res = await getRegistryReleases(datasource, config, registryUrl);\n if (res) {\n break;\n }\n } catch (err) {\n if (err instanceof ExternalHostError) {\n throw err;\n }\n // We'll always save the last-thrown error\n caughtError = err;\n logger.trace({ err }, 'datasource hunt failure');\n }\n }\n if (res) {\n return res;\n }\n if (caughtError) {\n throw caughtError;\n }\n return null;\n}\n\nasync function mergeRegistries(\n config: GetReleasesInternalConfig,\n datasource: DatasourceApi,\n registryUrls: string[],\n): Promise<ReleaseResult | null> {\n let combinedRes: ReleaseResult | undefined;\n let lastErr: Error | undefined;\n let commonRegistryUrl = true;\n for (const registryUrl of registryUrls) {\n try {\n const res = await getRegistryReleases(datasource, config, registryUrl);\n if (!res) {\n continue;\n }\n\n if (!combinedRes) {\n combinedRes = res;\n continue;\n }\n\n if (commonRegistryUrl) {\n for (const release of coerceArray(combinedRes.releases)) {\n release.registryUrl ??= combinedRes.registryUrl;\n }\n commonRegistryUrl = false;\n }\n\n const releases = coerceArray(res.releases);\n for (const release of releases) {\n release.registryUrl ??= res.registryUrl;\n }\n\n combinedRes.releases.push(...releases);\n combinedRes = { ...res, ...combinedRes };\n delete combinedRes.registryUrl;\n } catch (err) {\n if (err instanceof ExternalHostError) {\n throw err;\n }\n\n lastErr = err;\n logger.trace({ err }, 'datasource merge failure');\n }\n }\n\n if (!combinedRes) {\n if (lastErr) {\n throw lastErr;\n }\n\n return null;\n }\n\n const seenVersions = new Set<string>();\n combinedRes.releases = filterMap(combinedRes.releases, (release) => {\n if (seenVersions.has(release.version)) {\n return null;\n }\n seenVersions.add(release.version);\n return release;\n });\n\n return combinedRes;\n}\n\nfunction massageRegistryUrls(registryUrls: string[]): string[] {\n return registryUrls.filter(Boolean).map(trimTrailingSlash);\n}\n\nfunction resolveRegistryUrls(\n datasource: DatasourceApi,\n defaultRegistryUrls: string[] | undefined,\n registryUrls: string[] | undefined | null,\n additionalRegistryUrls: string[] | undefined,\n): string[] {\n if (!datasource.customRegistrySupport) {\n if (\n is.nonEmptyArray(registryUrls) ||\n is.nonEmptyArray(defaultRegistryUrls) ||\n is.nonEmptyArray(additionalRegistryUrls)\n ) {\n logger.warn(\n {\n datasource: datasource.id,\n registryUrls,\n defaultRegistryUrls,\n additionalRegistryUrls,\n },\n 'Custom registries are not allowed for this datasource and will be ignored',\n );\n }\n return is.function(datasource.defaultRegistryUrls)\n ? datasource.defaultRegistryUrls()\n : (datasource.defaultRegistryUrls ?? []);\n }\n const customUrls = registryUrls?.filter(Boolean);\n let resolvedUrls: string[] = [];\n if (is.nonEmptyArray(customUrls)) {\n resolvedUrls = [...customUrls];\n } else if (is.nonEmptyArray(defaultRegistryUrls)) {\n resolvedUrls = [...defaultRegistryUrls];\n resolvedUrls = resolvedUrls.concat(additionalRegistryUrls ?? []);\n } else if (is.function(datasource.defaultRegistryUrls)) {\n resolvedUrls = [...datasource.defaultRegistryUrls()];\n resolvedUrls = resolvedUrls.concat(additionalRegistryUrls ?? []);\n } else if (is.nonEmptyArray(datasource.defaultRegistryUrls)) {\n resolvedUrls = [...datasource.defaultRegistryUrls];\n resolvedUrls = resolvedUrls.concat(additionalRegistryUrls ?? []);\n }\n return massageRegistryUrls(resolvedUrls);\n}\n\nfunction applyReplacements(\n config: GetReleasesInternalConfig,\n): Pick<ReleaseResult, 'replacementName' | 'replacementVersion'> | undefined {\n if (config.replacementName && config.replacementVersion) {\n return {\n replacementName: config.replacementName,\n replacementVersion: config.replacementVersion,\n };\n }\n return undefined;\n}\n\nasync function fetchReleases(\n config: GetReleasesInternalConfig,\n): Promise<ReleaseResult | null> {\n const { datasource: datasourceName } = config;\n let { registryUrls } = config;\n // istanbul ignore if: need test\n if (!datasourceName || getDatasourceFor(datasourceName) === undefined) {\n logger.warn({ datasource: datasourceName }, 'Unknown datasource');\n return null;\n }\n if (datasourceName === 'npm') {\n if (is.string(config.npmrc)) {\n setNpmrc(config.npmrc);\n }\n if (!is.nonEmptyArray(registryUrls)) {\n registryUrls = [resolveRegistryUrl(config.packageName)];\n }\n }\n const datasource = getDatasourceFor(datasourceName);\n // istanbul ignore if: needs test\n if (!datasource) {\n logger.warn({ datasource: datasourceName }, 'Unknown datasource');\n return null;\n }\n registryUrls = resolveRegistryUrls(\n datasource,\n config.defaultRegistryUrls,\n registryUrls,\n config.additionalRegistryUrls,\n );\n let dep: ReleaseResult | null = null;\n const registryStrategy = datasource.registryStrategy ?? 'hunt';\n try {\n if (is.nonEmptyArray(registryUrls)) {\n if (registryStrategy === 'first') {\n dep = await firstRegistry(config, datasource, registryUrls);\n } else if (registryStrategy === 'hunt') {\n dep = await huntRegistries(config, datasource, registryUrls);\n } else if (registryStrategy === 'merge') {\n dep = await mergeRegistries(config, datasource, registryUrls);\n }\n } else {\n dep = await datasource.getReleases(config);\n }\n } catch (err) {\n if (err.message === HOST_DISABLED || err.err?.message === HOST_DISABLED) {\n return null;\n }\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logError(datasource.id, config.packageName, err);\n }\n if (!dep || dequal(dep, { releases: [] })) {\n return null;\n }\n addMetaData(dep, datasourceName, config.packageName);\n dep = { ...dep, ...applyReplacements(config) };\n return dep;\n}\n\nfunction fetchCachedReleases(\n config: GetReleasesInternalConfig,\n): Promise<ReleaseResult | null> {\n const { datasource, packageName, registryUrls } = config;\n const cacheKey = `${cacheNamespace}${datasource}${packageName}${String(\n registryUrls,\n )}`;\n // By returning a Promise and reusing it, we should only fetch each package at most once\n const cachedResult = memCache.get<Promise<ReleaseResult | null>>(cacheKey);\n // istanbul ignore if\n if (cachedResult !== undefined) {\n return cachedResult;\n }\n const promisedRes = fetchReleases(config);\n memCache.set(cacheKey, promisedRes);\n return promisedRes;\n}\n\nexport function getRawPkgReleases(\n config: GetPkgReleasesConfig,\n): AsyncResult<\n ReleaseResult,\n Error | 'no-datasource' | 'no-package-name' | 'no-result'\n> {\n if (!config.datasource) {\n logger.warn('No datasource found');\n return AsyncResult.err('no-datasource');\n }\n\n const packageName = config.packageName;\n if (!packageName) {\n logger.error({ config }, 'Datasource getReleases without packageName');\n return AsyncResult.err('no-package-name');\n }\n\n return Result.wrapNullable(fetchCachedReleases(config), 'no-result' as const)\n .catch((e) => {\n if (e instanceof ExternalHostError) {\n e.hostType = config.datasource;\n e.packageName = packageName;\n }\n return Result.err(e);\n })\n .transform(clone);\n}\n\nexport function applyDatasourceFilters(\n releaseResult: ReleaseResult,\n config: GetPkgReleasesConfig,\n): ReleaseResult {\n let res = releaseResult;\n res = applyExtractVersion(res, config.extractVersion);\n res = applyVersionCompatibility(\n res,\n config.versionCompatibility,\n config.currentCompatibility,\n );\n res = filterValidVersions(res, config);\n res = sortAndRemoveDuplicates(res, config);\n res = applyConstraintsFiltering(res, config);\n return res;\n}\n\nexport async function getPkgReleases(\n config: GetPkgReleasesConfig,\n): Promise<ReleaseResult | null> {\n const { val = null, err } = await getRawPkgReleases(config)\n .transform((res) => applyDatasourceFilters(res, config))\n .unwrap();\n\n if (err instanceof Error) {\n throw err;\n }\n\n return val;\n}\n\nexport function supportsDigests(datasource: string | undefined): boolean {\n const ds = !!datasource && getDatasourceFor(datasource);\n return !!ds && 'getDigest' in ds;\n}\n\nfunction getDigestConfig(\n datasource: DatasourceApi,\n config: GetDigestInputConfig,\n): DigestConfig {\n const { lookupName, currentValue, currentDigest } = config;\n const packageName = config.replacementName ?? config.packageName;\n // Prefer registryUrl from getReleases() lookup if it has been passed\n const registryUrl =\n config.registryUrl ??\n resolveRegistryUrls(\n datasource,\n config.defaultRegistryUrls,\n config.registryUrls,\n config.additionalRegistryUrls,\n )[0];\n return { lookupName, packageName, registryUrl, currentValue, currentDigest };\n}\n\nexport function getDigest(\n config: GetDigestInputConfig,\n value?: string,\n): Promise<string | null> {\n const datasource = getDatasourceFor(config.datasource);\n // istanbul ignore if: need test\n if (!datasource || !('getDigest' in datasource)) {\n return Promise.resolve(null);\n }\n const digestConfig = getDigestConfig(datasource, config);\n return datasource.getDigest!(digestConfig, value);\n}\n\nexport function getDefaultConfig(\n datasource: string,\n): Promise<Record<string, unknown>> {\n const loadedDatasource = getDatasourceFor(datasource);\n return Promise.resolve<Record<string, unknown>>(\n loadedDatasource?.defaultConfig ?? Object.create({}),\n );\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/modules/datasource/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { dequal } from 'dequal';\nimport { GlobalConfig } from '../../config/global';\nimport { HOST_DISABLED } from '../../constants/error-messages';\nimport { logger } from '../../logger';\nimport { ExternalHostError } from '../../types/errors/external-host-error';\nimport { coerceArray } from '../../util/array';\nimport * as memCache from '../../util/cache/memory';\nimport * as packageCache from '../../util/cache/package';\nimport { clone } from '../../util/clone';\nimport { filterMap } from '../../util/filter-map';\nimport { AsyncResult, Result } from '../../util/result';\nimport { DatasourceCacheStats } from '../../util/stats';\nimport { trimTrailingSlash } from '../../util/url';\nimport datasources from './api';\nimport {\n applyConstraintsFiltering,\n applyExtractVersion,\n applyVersionCompatibility,\n filterValidVersions,\n getDatasourceFor,\n sortAndRemoveDuplicates,\n} from './common';\nimport { addMetaData } from './metadata';\nimport { setNpmrc } from './npm';\nimport { resolveRegistryUrl } from './npm/npmrc';\nimport type {\n DatasourceApi,\n DigestConfig,\n GetDigestInputConfig,\n GetPkgReleasesConfig,\n GetReleasesConfig,\n ReleaseResult,\n} from './types';\n\nexport * from './types';\nexport { isGetPkgReleasesConfig } from './common';\n\nexport const getDatasources = (): Map<string, DatasourceApi> => datasources;\nexport const getDatasourceList = (): string[] => Array.from(datasources.keys());\n\nconst cacheNamespace = 'datasource-releases';\n\ntype GetReleasesInternalConfig = GetReleasesConfig & GetPkgReleasesConfig;\n\n// TODO: fix error Type\nfunction logError(datasource: string, packageName: string, err: any): void {\n const { statusCode, code: errCode, url } = err;\n if (statusCode === 404) {\n logger.debug({ datasource, packageName, url }, 'Datasource 404');\n } else if (statusCode === 401 || statusCode === 403) {\n logger.debug({ datasource, packageName, url }, 'Datasource unauthorized');\n } else if (errCode) {\n logger.debug(\n { datasource, packageName, url, errCode },\n 'Datasource connection error',\n );\n } else {\n logger.debug({ datasource, packageName, err }, 'Datasource unknown error');\n }\n}\n\nasync function getRegistryReleases(\n datasource: DatasourceApi,\n config: GetReleasesConfig,\n registryUrl: string,\n): Promise<ReleaseResult | null> {\n const cacheKey = `${datasource.id} ${registryUrl} ${config.packageName}`;\n if (datasource.caching) {\n const cachedResult = await packageCache.get<ReleaseResult>(\n cacheNamespace,\n cacheKey,\n );\n\n // istanbul ignore if\n if (cachedResult) {\n logger.trace({ cacheKey }, 'Returning cached datasource response');\n DatasourceCacheStats.hit(datasource.id, registryUrl, config.packageName);\n return cachedResult;\n }\n\n DatasourceCacheStats.miss(datasource.id, registryUrl, config.packageName);\n }\n\n const res = await datasource.getReleases({ ...config, registryUrl });\n if (res?.releases.length) {\n res.registryUrl ??= registryUrl;\n }\n\n // cache non-null responses unless marked as private\n if (datasource.caching && res) {\n const cachePrivatePackages = GlobalConfig.get(\n 'cachePrivatePackages',\n false,\n );\n if (cachePrivatePackages || !res.isPrivate) {\n logger.trace({ cacheKey }, 'Caching datasource response');\n const cacheMinutes = 15;\n await packageCache.set(cacheNamespace, cacheKey, res, cacheMinutes);\n DatasourceCacheStats.set(datasource.id, registryUrl, config.packageName);\n } else {\n DatasourceCacheStats.skip(datasource.id, registryUrl, config.packageName);\n }\n }\n\n return res;\n}\n\nfunction firstRegistry(\n config: GetReleasesInternalConfig,\n datasource: DatasourceApi,\n registryUrls: string[],\n): Promise<ReleaseResult | null> {\n if (registryUrls.length > 1) {\n logger.warn(\n {\n datasource: datasource.id,\n packageName: config.packageName,\n registryUrls,\n },\n 'Excess registryUrls found for datasource lookup - using first configured only',\n );\n }\n const registryUrl = registryUrls[0];\n return getRegistryReleases(datasource, config, registryUrl);\n}\n\nasync function huntRegistries(\n config: GetReleasesInternalConfig,\n datasource: DatasourceApi,\n registryUrls: string[],\n): Promise<ReleaseResult | null> {\n let res: ReleaseResult | null = null;\n let caughtError: Error | undefined;\n for (const registryUrl of registryUrls) {\n try {\n res = await getRegistryReleases(datasource, config, registryUrl);\n if (res) {\n break;\n }\n } catch (err) {\n if (err instanceof ExternalHostError) {\n throw err;\n }\n // We'll always save the last-thrown error\n caughtError = err;\n logger.trace({ err }, 'datasource hunt failure');\n }\n }\n if (res) {\n return res;\n }\n if (caughtError) {\n throw caughtError;\n }\n return null;\n}\n\nasync function mergeRegistries(\n config: GetReleasesInternalConfig,\n datasource: DatasourceApi,\n registryUrls: string[],\n): Promise<ReleaseResult | null> {\n let combinedRes: ReleaseResult | undefined;\n let lastErr: Error | undefined;\n let commonRegistryUrl = true;\n for (const registryUrl of registryUrls) {\n try {\n const res = await getRegistryReleases(datasource, config, registryUrl);\n if (!res) {\n continue;\n }\n\n if (!combinedRes) {\n combinedRes = res;\n continue;\n }\n\n if (commonRegistryUrl) {\n for (const release of coerceArray(combinedRes.releases)) {\n release.registryUrl ??= combinedRes.registryUrl;\n }\n commonRegistryUrl = false;\n }\n\n const releases = coerceArray(res.releases);\n for (const release of releases) {\n release.registryUrl ??= res.registryUrl;\n }\n\n combinedRes.releases.push(...releases);\n combinedRes = { ...res, ...combinedRes };\n delete combinedRes.registryUrl;\n } catch (err) {\n if (err instanceof ExternalHostError) {\n throw err;\n }\n\n lastErr = err;\n logger.trace({ err }, 'datasource merge failure');\n }\n }\n\n if (!combinedRes) {\n if (lastErr) {\n throw lastErr;\n }\n\n return null;\n }\n\n const seenVersions = new Set<string>();\n combinedRes.releases = filterMap(combinedRes.releases, (release) => {\n if (seenVersions.has(release.version)) {\n return null;\n }\n seenVersions.add(release.version);\n return release;\n });\n\n return combinedRes;\n}\n\nfunction massageRegistryUrls(registryUrls: string[]): string[] {\n return registryUrls.filter(Boolean).map(trimTrailingSlash);\n}\n\nfunction resolveRegistryUrls(\n datasource: DatasourceApi,\n defaultRegistryUrls: string[] | undefined,\n registryUrls: string[] | undefined | null,\n additionalRegistryUrls: string[] | undefined,\n): string[] {\n if (!datasource.customRegistrySupport) {\n if (\n is.nonEmptyArray(registryUrls) ||\n is.nonEmptyArray(defaultRegistryUrls) ||\n is.nonEmptyArray(additionalRegistryUrls)\n ) {\n logger.warn(\n {\n datasource: datasource.id,\n registryUrls,\n defaultRegistryUrls,\n additionalRegistryUrls,\n },\n 'Custom registries are not allowed for this datasource and will be ignored',\n );\n }\n return is.function(datasource.defaultRegistryUrls)\n ? datasource.defaultRegistryUrls()\n : (datasource.defaultRegistryUrls ?? []);\n }\n const customUrls = registryUrls?.filter(Boolean);\n let resolvedUrls: string[] = [];\n if (is.nonEmptyArray(customUrls)) {\n resolvedUrls = [...customUrls];\n } else if (is.nonEmptyArray(defaultRegistryUrls)) {\n resolvedUrls = [...defaultRegistryUrls];\n resolvedUrls = resolvedUrls.concat(additionalRegistryUrls ?? []);\n } else if (is.function(datasource.defaultRegistryUrls)) {\n resolvedUrls = [...datasource.defaultRegistryUrls()];\n resolvedUrls = resolvedUrls.concat(additionalRegistryUrls ?? []);\n } else if (is.nonEmptyArray(datasource.defaultRegistryUrls)) {\n resolvedUrls = [...datasource.defaultRegistryUrls];\n resolvedUrls = resolvedUrls.concat(additionalRegistryUrls ?? []);\n }\n return massageRegistryUrls(resolvedUrls);\n}\n\nfunction applyReplacements(\n config: GetReleasesInternalConfig,\n): Pick<ReleaseResult, 'replacementName' | 'replacementVersion'> | undefined {\n if (config.replacementName && config.replacementVersion) {\n return {\n replacementName: config.replacementName,\n replacementVersion: config.replacementVersion,\n };\n }\n return undefined;\n}\n\nasync function fetchReleases(\n config: GetReleasesInternalConfig,\n): Promise<ReleaseResult | null> {\n const { datasource: datasourceName } = config;\n let { registryUrls } = config;\n // istanbul ignore if: need test\n if (!datasourceName || getDatasourceFor(datasourceName) === undefined) {\n logger.warn({ datasource: datasourceName }, 'Unknown datasource');\n return null;\n }\n if (datasourceName === 'npm') {\n if (is.string(config.npmrc)) {\n setNpmrc(config.npmrc);\n }\n if (!is.nonEmptyArray(registryUrls)) {\n registryUrls = [resolveRegistryUrl(config.packageName)];\n }\n }\n const datasource = getDatasourceFor(datasourceName);\n // istanbul ignore if: needs test\n if (!datasource) {\n logger.warn({ datasource: datasourceName }, 'Unknown datasource');\n return null;\n }\n registryUrls = resolveRegistryUrls(\n datasource,\n config.defaultRegistryUrls,\n registryUrls,\n config.additionalRegistryUrls,\n );\n let dep: ReleaseResult | null = null;\n const registryStrategy =\n config.registryStrategy ?? datasource.registryStrategy ?? 'hunt';\n try {\n if (is.nonEmptyArray(registryUrls)) {\n if (registryStrategy === 'first') {\n dep = await firstRegistry(config, datasource, registryUrls);\n } else if (registryStrategy === 'hunt') {\n dep = await huntRegistries(config, datasource, registryUrls);\n } else if (registryStrategy === 'merge') {\n dep = await mergeRegistries(config, datasource, registryUrls);\n }\n } else {\n dep = await datasource.getReleases(config);\n }\n } catch (err) {\n if (err.message === HOST_DISABLED || err.err?.message === HOST_DISABLED) {\n return null;\n }\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logError(datasource.id, config.packageName, err);\n }\n if (!dep || dequal(dep, { releases: [] })) {\n return null;\n }\n addMetaData(dep, datasourceName, config.packageName);\n dep = { ...dep, ...applyReplacements(config) };\n return dep;\n}\n\nfunction fetchCachedReleases(\n config: GetReleasesInternalConfig,\n): Promise<ReleaseResult | null> {\n const { datasource, packageName, registryUrls } = config;\n const cacheKey = `${cacheNamespace}${datasource}${packageName}${config.registryStrategy}${String(\n registryUrls,\n )}`;\n // By returning a Promise and reusing it, we should only fetch each package at most once\n const cachedResult = memCache.get<Promise<ReleaseResult | null>>(cacheKey);\n // istanbul ignore if\n if (cachedResult !== undefined) {\n return cachedResult;\n }\n const promisedRes = fetchReleases(config);\n memCache.set(cacheKey, promisedRes);\n return promisedRes;\n}\n\nexport function getRawPkgReleases(\n config: GetPkgReleasesConfig,\n): AsyncResult<\n ReleaseResult,\n Error | 'no-datasource' | 'no-package-name' | 'no-result'\n> {\n if (!config.datasource) {\n logger.warn('No datasource found');\n return AsyncResult.err('no-datasource');\n }\n\n const packageName = config.packageName;\n if (!packageName) {\n logger.error({ config }, 'Datasource getReleases without packageName');\n return AsyncResult.err('no-package-name');\n }\n\n return Result.wrapNullable(fetchCachedReleases(config), 'no-result' as const)\n .catch((e) => {\n if (e instanceof ExternalHostError) {\n e.hostType = config.datasource;\n e.packageName = packageName;\n }\n return Result.err(e);\n })\n .transform(clone);\n}\n\nexport function applyDatasourceFilters(\n releaseResult: ReleaseResult,\n config: GetPkgReleasesConfig,\n): ReleaseResult {\n let res = releaseResult;\n res = applyExtractVersion(res, config.extractVersion);\n res = applyVersionCompatibility(\n res,\n config.versionCompatibility,\n config.currentCompatibility,\n );\n res = filterValidVersions(res, config);\n res = sortAndRemoveDuplicates(res, config);\n res = applyConstraintsFiltering(res, config);\n return res;\n}\n\nexport async function getPkgReleases(\n config: GetPkgReleasesConfig,\n): Promise<ReleaseResult | null> {\n const { val = null, err } = await getRawPkgReleases(config)\n .transform((res) => applyDatasourceFilters(res, config))\n .unwrap();\n\n if (err instanceof Error) {\n throw err;\n }\n\n return val;\n}\n\nexport function supportsDigests(datasource: string | undefined): boolean {\n const ds = !!datasource && getDatasourceFor(datasource);\n return !!ds && 'getDigest' in ds;\n}\n\nfunction getDigestConfig(\n datasource: DatasourceApi,\n config: GetDigestInputConfig,\n): DigestConfig {\n const { lookupName, currentValue, currentDigest } = config;\n const packageName = config.replacementName ?? config.packageName;\n // Prefer registryUrl from getReleases() lookup if it has been passed\n const registryUrl =\n config.registryUrl ??\n resolveRegistryUrls(\n datasource,\n config.defaultRegistryUrls,\n config.registryUrls,\n config.additionalRegistryUrls,\n )[0];\n return { lookupName, packageName, registryUrl, currentValue, currentDigest };\n}\n\nexport function getDigest(\n config: GetDigestInputConfig,\n value?: string,\n): Promise<string | null> {\n const datasource = getDatasourceFor(config.datasource);\n // istanbul ignore if: need test\n if (!datasource || !('getDigest' in datasource)) {\n return Promise.resolve(null);\n }\n const digestConfig = getDigestConfig(datasource, config);\n return datasource.getDigest!(digestConfig, value);\n}\n\nexport function getDefaultConfig(\n datasource: string,\n): Promise<Record<string, unknown>> {\n const loadedDatasource = getDatasourceFor(datasource);\n return Promise.resolve<Record<string, unknown>>(\n loadedDatasource?.defaultConfig ?? Object.create({}),\n );\n}\n"]}
@@ -56,7 +56,6 @@ class JavaVersionDatasource extends datasource_1.Datasource {
56
56
  }
57
57
  }
58
58
  catch (err) {
59
- // istanbul ignore else: not testable with nock
60
59
  if (err instanceof http_1.HttpError) {
61
60
  if (err.response?.statusCode !== 404) {
62
61
  throw new external_host_error_1.ExternalHostError(err);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/java-version/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { HttpError } from '../../../util/http';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport {\n datasource,\n defaultRegistryUrl,\n getImageType,\n pageSize,\n} from './common';\nimport type { AdoptiumJavaResponse } from './types';\n\nexport class JavaVersionDatasource extends Datasource {\n static readonly id = datasource;\n\n constructor() {\n super(datasource);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultRegistryUrls = [defaultRegistryUrl];\n\n override readonly caching = true;\n\n private async getPageReleases(\n url: string,\n page: number,\n ): Promise<Release[] | null> {\n const pgUrl = `${url}&page=${page}`;\n try {\n const pgRes =\n await this.http.getJsonUnchecked<AdoptiumJavaResponse>(pgUrl);\n return (\n pgRes?.body?.versions?.map(({ semver }) => ({\n version: semver,\n })) ?? null\n );\n } catch (err) {\n if (\n page !== 0 &&\n err instanceof HttpError &&\n err.response?.statusCode === 404\n ) {\n // No more pages\n return null;\n }\n\n throw err;\n }\n }\n\n @cache({\n namespace: `datasource-${datasource}`,\n key: ({ registryUrl, packageName }: GetReleasesConfig) =>\n // TODO: types (#22198)\n `${registryUrl!}:${getImageType(packageName)}`,\n })\n async getReleases({\n registryUrl,\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const imageType = getImageType(packageName);\n logger.trace(\n { registryUrl, packageName, imageType },\n 'fetching java release',\n );\n // TODO: types (#22198)\n const url = `${registryUrl!}v3/info/release_versions?page_size=${pageSize}&image_type=${imageType}&project=jdk&release_type=ga&sort_method=DATE&sort_order=DESC`;\n\n const result: ReleaseResult = {\n homepage: 'https://adoptium.net',\n releases: [],\n };\n try {\n let page = 0;\n let releases = await this.getPageReleases(url, page);\n while (releases) {\n result.releases.push(...releases);\n if (releases.length !== pageSize || page >= 50) {\n break;\n }\n page += 1;\n releases = await this.getPageReleases(url, page);\n }\n } catch (err) {\n // istanbul ignore else: not testable with nock\n if (err instanceof HttpError) {\n if (err.response?.statusCode !== 404) {\n throw new ExternalHostError(err);\n }\n }\n this.handleGenericErrors(err);\n }\n\n return result.releases.length ? result : null;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/java-version/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { HttpError } from '../../../util/http';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport {\n datasource,\n defaultRegistryUrl,\n getImageType,\n pageSize,\n} from './common';\nimport type { AdoptiumJavaResponse } from './types';\n\nexport class JavaVersionDatasource extends Datasource {\n static readonly id = datasource;\n\n constructor() {\n super(datasource);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultRegistryUrls = [defaultRegistryUrl];\n\n override readonly caching = true;\n\n private async getPageReleases(\n url: string,\n page: number,\n ): Promise<Release[] | null> {\n const pgUrl = `${url}&page=${page}`;\n try {\n const pgRes =\n await this.http.getJsonUnchecked<AdoptiumJavaResponse>(pgUrl);\n return (\n pgRes?.body?.versions?.map(({ semver }) => ({\n version: semver,\n })) ?? null\n );\n } catch (err) {\n if (\n page !== 0 &&\n err instanceof HttpError &&\n err.response?.statusCode === 404\n ) {\n // No more pages\n return null;\n }\n\n throw err;\n }\n }\n\n @cache({\n namespace: `datasource-${datasource}`,\n key: ({ registryUrl, packageName }: GetReleasesConfig) =>\n // TODO: types (#22198)\n `${registryUrl!}:${getImageType(packageName)}`,\n })\n async getReleases({\n registryUrl,\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const imageType = getImageType(packageName);\n logger.trace(\n { registryUrl, packageName, imageType },\n 'fetching java release',\n );\n // TODO: types (#22198)\n const url = `${registryUrl!}v3/info/release_versions?page_size=${pageSize}&image_type=${imageType}&project=jdk&release_type=ga&sort_method=DATE&sort_order=DESC`;\n\n const result: ReleaseResult = {\n homepage: 'https://adoptium.net',\n releases: [],\n };\n try {\n let page = 0;\n let releases = await this.getPageReleases(url, page);\n while (releases) {\n result.releases.push(...releases);\n if (releases.length !== pageSize || page >= 50) {\n break;\n }\n page += 1;\n releases = await this.getPageReleases(url, page);\n }\n } catch (err) {\n if (err instanceof HttpError) {\n if (err.response?.statusCode !== 404) {\n throw new ExternalHostError(err);\n }\n }\n this.handleGenericErrors(err);\n }\n\n return result.releases.length ? result : null;\n }\n}\n"]}
@@ -23,7 +23,7 @@ class JenkinsPluginsDatasource extends datasource_1.Datasource {
23
23
  sourceUrlSupport = 'package';
24
24
  sourceUrlNote = 'The source URL is determined from the `scm` field in the results.';
25
25
  async getReleases({ packageName, registryUrl, }) {
26
- // istanbul ignore if
26
+ /* v8 ignore next 3 -- should never happen */
27
27
  if (!registryUrl) {
28
28
  return null;
29
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/jenkins-plugins/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { clone } from '../../../util/clone';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport type {\n JenkinsPluginsInfoResponse,\n JenkinsPluginsVersionsResponse,\n} from './types';\n\nexport class JenkinsPluginsDatasource extends Datasource {\n static readonly id = 'jenkins-plugins';\n\n constructor() {\n super(JenkinsPluginsDatasource.id);\n }\n\n override readonly customRegistrySupport = true;\n\n override readonly defaultRegistryUrls = ['https://updates.jenkins.io'];\n\n override readonly registryStrategy = 'hunt';\n\n private static readonly packageInfoPath = 'current/update-center.actual.json';\n private static readonly packageVersionsPath = 'current/plugin-versions.json';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The releaseTimestamp is determined from the `releaseTimestamp` or `buildDate` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `scm` field in the results.';\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 const updateSiteUrl = ensureTrailingSlash(registryUrl);\n\n const plugins = await this.getJenkinsPluginInfo(updateSiteUrl);\n const plugin = plugins[packageName];\n if (!plugin) {\n return null;\n }\n\n const result = clone(plugin);\n const versions = await this.getJenkinsPluginVersions(updateSiteUrl);\n const releases = versions[packageName];\n result.releases = releases ? clone(releases) : [];\n return result;\n }\n\n @cache({\n namespace: `datasource-${JenkinsPluginsDatasource.id}`,\n key: 'info',\n ttlMinutes: 1440,\n })\n async getJenkinsPluginInfo(\n updateSiteUrl: string,\n ): Promise<Record<string, ReleaseResult>> {\n const { plugins } =\n await this.getJenkinsUpdateCenterResponse<JenkinsPluginsInfoResponse>(\n `${updateSiteUrl}${JenkinsPluginsDatasource.packageInfoPath}`,\n );\n\n const info: Record<string, ReleaseResult> = {};\n for (const name of Object.keys(plugins ?? [])) {\n info[name] = {\n releases: [], // releases\n sourceUrl: plugins[name]?.scm,\n };\n }\n return info;\n }\n\n @cache({\n namespace: `datasource-${JenkinsPluginsDatasource.id}`,\n key: 'versions',\n })\n async getJenkinsPluginVersions(\n updateSiteUrl: string,\n ): Promise<Record<string, Release[]>> {\n const { plugins } =\n await this.getJenkinsUpdateCenterResponse<JenkinsPluginsVersionsResponse>(\n `${updateSiteUrl}${JenkinsPluginsDatasource.packageVersionsPath}`,\n );\n\n const versions: Record<string, Release[]> = {};\n for (const name of Object.keys(plugins ?? [])) {\n versions[name] = Object.keys(plugins[name]).map((version) => {\n const downloadUrl = plugins[name][version]?.url;\n const buildDate = plugins[name][version]?.buildDate;\n const releaseTimestamp =\n plugins[name][version]?.releaseTimestamp ?? asTimestamp(buildDate);\n const jenkins = plugins[name][version]?.requiredCore;\n const constraints = jenkins ? { jenkins: [`>=${jenkins}`] } : undefined;\n return {\n version,\n downloadUrl,\n releaseTimestamp,\n ...(constraints && { constraints }),\n };\n });\n }\n return versions;\n }\n\n private async getJenkinsUpdateCenterResponse<T>(url: string): Promise<T> {\n let response: T;\n\n try {\n logger.debug(`jenkins-plugins: Fetching Jenkins plugins from ${url}`);\n const startTime = Date.now();\n response = (await this.http.getJsonUnchecked<T>(url)).body;\n const durationMs = Math.round(Date.now() - startTime);\n logger.debug(\n { durationMs },\n `jenkins-plugins: Fetched Jenkins plugins from ${url}`,\n );\n } catch (err) /* istanbul ignore next */ {\n this.handleGenericErrors(err);\n }\n\n return response;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/jenkins-plugins/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { clone } from '../../../util/clone';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport type {\n JenkinsPluginsInfoResponse,\n JenkinsPluginsVersionsResponse,\n} from './types';\n\nexport class JenkinsPluginsDatasource extends Datasource {\n static readonly id = 'jenkins-plugins';\n\n constructor() {\n super(JenkinsPluginsDatasource.id);\n }\n\n override readonly customRegistrySupport = true;\n\n override readonly defaultRegistryUrls = ['https://updates.jenkins.io'];\n\n override readonly registryStrategy = 'hunt';\n\n private static readonly packageInfoPath = 'current/update-center.actual.json';\n private static readonly packageVersionsPath = 'current/plugin-versions.json';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The releaseTimestamp is determined from the `releaseTimestamp` or `buildDate` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `scm` field in the results.';\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 const updateSiteUrl = ensureTrailingSlash(registryUrl);\n\n const plugins = await this.getJenkinsPluginInfo(updateSiteUrl);\n const plugin = plugins[packageName];\n if (!plugin) {\n return null;\n }\n\n const result = clone(plugin);\n const versions = await this.getJenkinsPluginVersions(updateSiteUrl);\n const releases = versions[packageName];\n result.releases = releases ? clone(releases) : [];\n return result;\n }\n\n @cache({\n namespace: `datasource-${JenkinsPluginsDatasource.id}`,\n key: 'info',\n ttlMinutes: 1440,\n })\n async getJenkinsPluginInfo(\n updateSiteUrl: string,\n ): Promise<Record<string, ReleaseResult>> {\n const { plugins } =\n await this.getJenkinsUpdateCenterResponse<JenkinsPluginsInfoResponse>(\n `${updateSiteUrl}${JenkinsPluginsDatasource.packageInfoPath}`,\n );\n\n const info: Record<string, ReleaseResult> = {};\n for (const name of Object.keys(plugins ?? [])) {\n info[name] = {\n releases: [], // releases\n sourceUrl: plugins[name]?.scm,\n };\n }\n return info;\n }\n\n @cache({\n namespace: `datasource-${JenkinsPluginsDatasource.id}`,\n key: 'versions',\n })\n async getJenkinsPluginVersions(\n updateSiteUrl: string,\n ): Promise<Record<string, Release[]>> {\n const { plugins } =\n await this.getJenkinsUpdateCenterResponse<JenkinsPluginsVersionsResponse>(\n `${updateSiteUrl}${JenkinsPluginsDatasource.packageVersionsPath}`,\n );\n\n const versions: Record<string, Release[]> = {};\n for (const name of Object.keys(plugins ?? [])) {\n versions[name] = Object.keys(plugins[name]).map((version) => {\n const downloadUrl = plugins[name][version]?.url;\n const buildDate = plugins[name][version]?.buildDate;\n const releaseTimestamp =\n plugins[name][version]?.releaseTimestamp ?? asTimestamp(buildDate);\n const jenkins = plugins[name][version]?.requiredCore;\n const constraints = jenkins ? { jenkins: [`>=${jenkins}`] } : undefined;\n return {\n version,\n downloadUrl,\n releaseTimestamp,\n ...(constraints && { constraints }),\n };\n });\n }\n return versions;\n }\n\n private async getJenkinsUpdateCenterResponse<T>(url: string): Promise<T> {\n let response: T;\n\n try {\n logger.debug(`jenkins-plugins: Fetching Jenkins plugins from ${url}`);\n const startTime = Date.now();\n response = (await this.http.getJsonUnchecked<T>(url)).body;\n const durationMs = Math.round(Date.now() - startTime);\n logger.debug(\n { durationMs },\n `jenkins-plugins: Fetched Jenkins plugins from ${url}`,\n );\n } catch (err) /* istanbul ignore next */ {\n this.handleGenericErrors(err);\n }\n\n return response;\n }\n}\n"]}
@@ -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