renovate 40.0.0-next.9 → 40.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (816) hide show
  1. package/dist/config/decrypt/legacy.js +0 -1
  2. package/dist/config/decrypt/legacy.js.map +1 -1
  3. package/dist/config/decrypt.d.ts +3 -1
  4. package/dist/config/decrypt.js +56 -13
  5. package/dist/config/decrypt.js.map +1 -1
  6. package/dist/config/global.js +0 -1
  7. package/dist/config/global.js.map +1 -1
  8. package/dist/config/migrate-validate.js +3 -2
  9. package/dist/config/migrate-validate.js.map +1 -1
  10. package/dist/config/migration.js +2 -1
  11. package/dist/config/migration.js.map +1 -1
  12. package/dist/config/migrations/custom/rebase-stale-prs-migration.js +1 -1
  13. package/dist/config/migrations/custom/rebase-stale-prs-migration.js.map +1 -1
  14. package/dist/config/migrations/migrations-service.js +3 -2
  15. package/dist/config/migrations/migrations-service.js.map +1 -1
  16. package/dist/config/options/index.js +18 -11
  17. package/dist/config/options/index.js.map +1 -1
  18. package/dist/config/parse.js +2 -2
  19. package/dist/config/parse.js.map +1 -1
  20. package/dist/config/presets/common.js +1 -0
  21. package/dist/config/presets/common.js.map +1 -1
  22. package/dist/config/presets/gitea/index.js +0 -1
  23. package/dist/config/presets/gitea/index.js.map +1 -1
  24. package/dist/config/presets/github/index.js +4 -2
  25. package/dist/config/presets/github/index.js.map +1 -1
  26. package/dist/config/presets/gitlab/index.js +1 -1
  27. package/dist/config/presets/gitlab/index.js.map +1 -1
  28. package/dist/config/presets/http/index.js +2 -2
  29. package/dist/config/presets/http/index.js.map +1 -1
  30. package/dist/config/presets/index.js +0 -7
  31. package/dist/config/presets/index.js.map +1 -1
  32. package/dist/config/presets/internal/custom-managers.js +18 -4
  33. package/dist/config/presets/internal/custom-managers.js.map +1 -1
  34. package/dist/config/presets/internal/group.js +30 -1
  35. package/dist/config/presets/internal/group.js.map +1 -1
  36. package/dist/config/presets/internal/index.js +1 -3
  37. package/dist/config/presets/internal/index.js.map +1 -1
  38. package/dist/config/presets/internal/workarounds.js +1 -0
  39. package/dist/config/presets/internal/workarounds.js.map +1 -1
  40. package/dist/config/presets/npm/index.js +4 -1
  41. package/dist/config/presets/npm/index.js.map +1 -1
  42. package/dist/config/presets/parse.js +2 -1
  43. package/dist/config/presets/parse.js.map +1 -1
  44. package/dist/config/schema.d.ts +2 -2
  45. package/dist/config/types.d.ts +4 -2
  46. package/dist/config/types.js.map +1 -1
  47. package/dist/config/validation.js +3 -5
  48. package/dist/config/validation.js.map +1 -1
  49. package/dist/config-validator.js +0 -1
  50. package/dist/config-validator.js.map +1 -1
  51. package/dist/constants/category.js +0 -1
  52. package/dist/constants/category.js.map +1 -1
  53. package/dist/constants/platforms.js +5 -1
  54. package/dist/constants/platforms.js.map +1 -1
  55. package/dist/data/monorepo.json +9 -2
  56. package/dist/data/replacements.json +13 -0
  57. package/dist/data/source-urls.json +1 -0
  58. package/dist/data-files.generated.js +2 -2
  59. package/dist/data-files.generated.js.map +1 -1
  60. package/dist/instrumentation/index.js +39 -15
  61. package/dist/instrumentation/index.js.map +1 -1
  62. package/dist/instrumentation/utils.js +1 -1
  63. package/dist/instrumentation/utils.js.map +1 -1
  64. package/dist/logger/cmd-serializer.js +0 -1
  65. package/dist/logger/cmd-serializer.js.map +1 -1
  66. package/dist/logger/config-serializer.js +0 -1
  67. package/dist/logger/config-serializer.js.map +1 -1
  68. package/dist/logger/index.js +1 -4
  69. package/dist/logger/index.js.map +1 -1
  70. package/dist/logger/once.js +4 -2
  71. package/dist/logger/once.js.map +1 -1
  72. package/dist/logger/pretty-stdout.js +0 -1
  73. package/dist/logger/pretty-stdout.js.map +1 -1
  74. package/dist/logger/renovate-logger.js +1 -1
  75. package/dist/logger/renovate-logger.js.map +1 -1
  76. package/dist/logger/utils.js +5 -10
  77. package/dist/logger/utils.js.map +1 -1
  78. package/dist/modules/datasource/api.js +4 -0
  79. package/dist/modules/datasource/api.js.map +1 -1
  80. package/dist/modules/datasource/artifactory/index.js +1 -2
  81. package/dist/modules/datasource/artifactory/index.js.map +1 -1
  82. package/dist/modules/datasource/aws-eks-addon/index.d.ts +11 -0
  83. package/dist/modules/datasource/aws-eks-addon/index.js +75 -0
  84. package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -0
  85. package/dist/modules/datasource/aws-eks-addon/schema.d.ts +40 -0
  86. package/dist/modules/datasource/aws-eks-addon/schema.js +31 -0
  87. package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -0
  88. package/dist/modules/datasource/aws-machine-image/index.js +6 -5
  89. package/dist/modules/datasource/aws-machine-image/index.js.map +1 -1
  90. package/dist/modules/datasource/azure-pipelines-tasks/index.js +15 -1
  91. package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
  92. package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +24 -0
  93. package/dist/modules/datasource/azure-pipelines-tasks/schema.js +3 -0
  94. package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
  95. package/dist/modules/datasource/bazel/index.js +18 -2
  96. package/dist/modules/datasource/bazel/index.js.map +1 -1
  97. package/dist/modules/datasource/bazel/schema.d.ts +1 -0
  98. package/dist/modules/datasource/bazel/schema.js.map +1 -1
  99. package/dist/modules/datasource/bitbucket-server-tags/index.d.ts +19 -0
  100. package/dist/modules/datasource/bitbucket-server-tags/index.js +133 -0
  101. package/dist/modules/datasource/bitbucket-server-tags/index.js.map +1 -0
  102. package/dist/modules/datasource/bitbucket-server-tags/schema.d.ts +28 -0
  103. package/dist/modules/datasource/bitbucket-server-tags/schema.js +13 -0
  104. package/dist/modules/datasource/bitbucket-server-tags/schema.js.map +1 -0
  105. package/dist/modules/datasource/bitrise/index.js +1 -1
  106. package/dist/modules/datasource/bitrise/index.js.map +1 -1
  107. package/dist/modules/datasource/cdnjs/schema.d.ts +2 -2
  108. package/dist/modules/datasource/conda/index.js +18 -1
  109. package/dist/modules/datasource/conda/index.js.map +1 -1
  110. package/dist/modules/datasource/conda/prefix-dev.d.ts +3 -0
  111. package/dist/modules/datasource/conda/prefix-dev.js +81 -0
  112. package/dist/modules/datasource/conda/prefix-dev.js.map +1 -0
  113. package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +189 -0
  114. package/dist/modules/datasource/conda/schema/prefix-dev.js +31 -0
  115. package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -0
  116. package/dist/modules/datasource/conda/types.d.ts +1 -20
  117. package/dist/modules/datasource/conda/types.js.map +1 -1
  118. package/dist/modules/datasource/cpan/index.js +2 -4
  119. package/dist/modules/datasource/cpan/index.js.map +1 -1
  120. package/dist/modules/datasource/crate/index.js +3 -3
  121. package/dist/modules/datasource/crate/index.js.map +1 -1
  122. package/dist/modules/datasource/custom/formats/html.js +1 -1
  123. package/dist/modules/datasource/custom/formats/html.js.map +1 -1
  124. package/dist/modules/datasource/custom/formats/yaml.js +1 -1
  125. package/dist/modules/datasource/custom/formats/yaml.js.map +1 -1
  126. package/dist/modules/datasource/custom/index.js +4 -2
  127. package/dist/modules/datasource/custom/index.js.map +1 -1
  128. package/dist/modules/datasource/custom/schema.d.ts +22 -22
  129. package/dist/modules/datasource/custom/utils.js +1 -0
  130. package/dist/modules/datasource/custom/utils.js.map +1 -1
  131. package/dist/modules/datasource/dart/index.js +1 -1
  132. package/dist/modules/datasource/dart/index.js.map +1 -1
  133. package/dist/modules/datasource/dart-version/index.js +1 -1
  134. package/dist/modules/datasource/dart-version/index.js.map +1 -1
  135. package/dist/modules/datasource/datasource.js +0 -1
  136. package/dist/modules/datasource/datasource.js.map +1 -1
  137. package/dist/modules/datasource/deb/index.d.ts +4 -5
  138. package/dist/modules/datasource/deb/index.js +10 -11
  139. package/dist/modules/datasource/deb/index.js.map +1 -1
  140. package/dist/modules/datasource/deb/url.d.ts +3 -3
  141. package/dist/modules/datasource/deb/url.js +17 -13
  142. package/dist/modules/datasource/deb/url.js.map +1 -1
  143. package/dist/modules/datasource/deno/index.js +1 -1
  144. package/dist/modules/datasource/deno/index.js.map +1 -1
  145. package/dist/modules/datasource/deno/schema.d.ts +1 -1
  146. package/dist/modules/datasource/devbox/index.js +0 -1
  147. package/dist/modules/datasource/devbox/index.js.map +1 -1
  148. package/dist/modules/datasource/docker/common.js +5 -2
  149. package/dist/modules/datasource/docker/common.js.map +1 -1
  150. package/dist/modules/datasource/docker/index.js +8 -6
  151. package/dist/modules/datasource/docker/index.js.map +1 -1
  152. package/dist/modules/datasource/docker/schema.d.ts +77 -101
  153. package/dist/modules/datasource/docker/schema.js +2 -1
  154. package/dist/modules/datasource/docker/schema.js.map +1 -1
  155. package/dist/modules/datasource/flutter-version/index.js +1 -1
  156. package/dist/modules/datasource/flutter-version/index.js.map +1 -1
  157. package/dist/modules/datasource/galaxy/schema.d.ts +1 -1
  158. package/dist/modules/datasource/galaxy-collection/schema.d.ts +8 -8
  159. package/dist/modules/datasource/git-refs/index.js +1 -1
  160. package/dist/modules/datasource/git-refs/index.js.map +1 -1
  161. package/dist/modules/datasource/gitea-releases/schema.d.ts +6 -6
  162. package/dist/modules/datasource/gitea-tags/schema.d.ts +4 -4
  163. package/dist/modules/datasource/github-release-attachments/index.js +2 -2
  164. package/dist/modules/datasource/github-release-attachments/index.js.map +1 -1
  165. package/dist/modules/datasource/github-runners/index.js +2 -2
  166. package/dist/modules/datasource/github-runners/index.js.map +1 -1
  167. package/dist/modules/datasource/github-tags/index.js +4 -1
  168. package/dist/modules/datasource/github-tags/index.js.map +1 -1
  169. package/dist/modules/datasource/gitlab-packages/index.js +1 -1
  170. package/dist/modules/datasource/gitlab-packages/index.js.map +1 -1
  171. package/dist/modules/datasource/gitlab-releases/index.js +1 -3
  172. package/dist/modules/datasource/gitlab-releases/index.js.map +1 -1
  173. package/dist/modules/datasource/go/base.js +1 -1
  174. package/dist/modules/datasource/go/base.js.map +1 -1
  175. package/dist/modules/datasource/go/index.js +1 -1
  176. package/dist/modules/datasource/go/index.js.map +1 -1
  177. package/dist/modules/datasource/go/releases-direct.js +7 -4
  178. package/dist/modules/datasource/go/releases-direct.js.map +1 -1
  179. package/dist/modules/datasource/go/releases-goproxy.js +1 -1
  180. package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
  181. package/dist/modules/datasource/golang-version/index.js +2 -2
  182. package/dist/modules/datasource/golang-version/index.js.map +1 -1
  183. package/dist/modules/datasource/gradle-version/index.js +1 -1
  184. package/dist/modules/datasource/gradle-version/index.js.map +1 -1
  185. package/dist/modules/datasource/helm/index.js +1 -1
  186. package/dist/modules/datasource/helm/index.js.map +1 -1
  187. package/dist/modules/datasource/hex/index.js +1 -1
  188. package/dist/modules/datasource/hex/index.js.map +1 -1
  189. package/dist/modules/datasource/hex/schema.d.ts +11 -11
  190. package/dist/modules/datasource/hexpm-bob/index.js +1 -1
  191. package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
  192. package/dist/modules/datasource/index.js +46 -5
  193. package/dist/modules/datasource/index.js.map +1 -1
  194. package/dist/modules/datasource/java-version/index.js +0 -1
  195. package/dist/modules/datasource/java-version/index.js.map +1 -1
  196. package/dist/modules/datasource/jenkins-plugins/index.js +1 -1
  197. package/dist/modules/datasource/jenkins-plugins/index.js.map +1 -1
  198. package/dist/modules/datasource/maven/index.d.ts +2 -2
  199. package/dist/modules/datasource/maven/index.js +56 -33
  200. package/dist/modules/datasource/maven/index.js.map +1 -1
  201. package/dist/modules/datasource/maven/types.d.ts +7 -6
  202. package/dist/modules/datasource/maven/types.js.map +1 -1
  203. package/dist/modules/datasource/maven/util.d.ts +4 -5
  204. package/dist/modules/datasource/maven/util.js +94 -157
  205. package/dist/modules/datasource/maven/util.js.map +1 -1
  206. package/dist/modules/datasource/metadata.js +9 -1
  207. package/dist/modules/datasource/metadata.js.map +1 -1
  208. package/dist/modules/datasource/node-version/index.js +1 -1
  209. package/dist/modules/datasource/node-version/index.js.map +1 -1
  210. package/dist/modules/datasource/npm/get.d.ts +0 -1
  211. package/dist/modules/datasource/npm/get.js +14 -68
  212. package/dist/modules/datasource/npm/get.js.map +1 -1
  213. package/dist/modules/datasource/npm/index.js +1 -1
  214. package/dist/modules/datasource/npm/index.js.map +1 -1
  215. package/dist/modules/datasource/npm/npmrc.js +1 -1
  216. package/dist/modules/datasource/npm/npmrc.js.map +1 -1
  217. package/dist/modules/datasource/npm/types.d.ts +0 -8
  218. package/dist/modules/datasource/npm/types.js.map +1 -1
  219. package/dist/modules/datasource/nuget/index.js +1 -1
  220. package/dist/modules/datasource/nuget/index.js.map +1 -1
  221. package/dist/modules/datasource/nuget/v2.js +1 -1
  222. package/dist/modules/datasource/nuget/v2.js.map +1 -1
  223. package/dist/modules/datasource/nuget/v3.js +8 -6
  224. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  225. package/dist/modules/datasource/orb/index.js +1 -1
  226. package/dist/modules/datasource/orb/index.js.map +1 -1
  227. package/dist/modules/datasource/packagist/index.js +2 -2
  228. package/dist/modules/datasource/packagist/index.js.map +1 -1
  229. package/dist/modules/datasource/packagist/schema.d.ts +32 -32
  230. package/dist/modules/datasource/pod/index.js +2 -2
  231. package/dist/modules/datasource/pod/index.js.map +1 -1
  232. package/dist/modules/datasource/postprocess-release.js +1 -1
  233. package/dist/modules/datasource/postprocess-release.js.map +1 -1
  234. package/dist/modules/datasource/pypi/index.js +1 -1
  235. package/dist/modules/datasource/pypi/index.js.map +1 -1
  236. package/dist/modules/datasource/python-version/index.js +1 -1
  237. package/dist/modules/datasource/python-version/index.js.map +1 -1
  238. package/dist/modules/datasource/repology/index.js +1 -1
  239. package/dist/modules/datasource/repology/index.js.map +1 -1
  240. package/dist/modules/datasource/ruby-version/index.js +1 -1
  241. package/dist/modules/datasource/ruby-version/index.js.map +1 -1
  242. package/dist/modules/datasource/rubygems/index.js +2 -2
  243. package/dist/modules/datasource/rubygems/index.js.map +1 -1
  244. package/dist/modules/datasource/rubygems/versions-endpoint-cache.js +2 -2
  245. package/dist/modules/datasource/rubygems/versions-endpoint-cache.js.map +1 -1
  246. package/dist/modules/datasource/sbt-package/index.js +1 -1
  247. package/dist/modules/datasource/sbt-package/index.js.map +1 -1
  248. package/dist/modules/datasource/sbt-plugin/index.js +1 -1
  249. package/dist/modules/datasource/sbt-plugin/index.js.map +1 -1
  250. package/dist/modules/datasource/schema.d.ts +4 -4
  251. package/dist/modules/datasource/terraform-module/index.js +1 -1
  252. package/dist/modules/datasource/terraform-module/index.js.map +1 -1
  253. package/dist/modules/datasource/terraform-provider/index.js +2 -3
  254. package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
  255. package/dist/modules/datasource/types.d.ts +2 -0
  256. package/dist/modules/datasource/types.js.map +1 -1
  257. package/dist/modules/manager/api.js +2 -0
  258. package/dist/modules/manager/api.js.map +1 -1
  259. package/dist/modules/manager/argocd/extract.js +1 -1
  260. package/dist/modules/manager/argocd/extract.js.map +1 -1
  261. package/dist/modules/manager/argocd/schema.d.ts +22 -22
  262. package/dist/modules/manager/asdf/upgradeable-tooling.js +94 -0
  263. package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
  264. package/dist/modules/manager/azure-pipelines/schema.d.ts +32 -32
  265. package/dist/modules/manager/batect/schema.d.ts +4 -4
  266. package/dist/modules/manager/batect-wrapper/artifacts.js +1 -1
  267. package/dist/modules/manager/batect-wrapper/artifacts.js.map +1 -1
  268. package/dist/modules/manager/bazel/rules/docker.d.ts +6 -6
  269. package/dist/modules/manager/bazel/rules/git.d.ts +10 -10
  270. package/dist/modules/manager/bazel/rules/git.js +9 -2
  271. package/dist/modules/manager/bazel/rules/git.js.map +1 -1
  272. package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
  273. package/dist/modules/manager/bazel/rules/maven.d.ts +7 -7
  274. package/dist/modules/manager/bazel/rules/oci.d.ts +6 -6
  275. package/dist/modules/manager/bazel-module/parser/fragments.d.ts +40 -40
  276. package/dist/modules/manager/bazel-module/parser/maven.d.ts +44 -90
  277. package/dist/modules/manager/bazel-module/parser/oci.d.ts +19 -42
  278. package/dist/modules/manager/bazel-module/rules.d.ts +50 -160
  279. package/dist/modules/manager/buildpacks/extract.d.ts +6 -1
  280. package/dist/modules/manager/buildpacks/extract.js +24 -14
  281. package/dist/modules/manager/buildpacks/extract.js.map +1 -1
  282. package/dist/modules/manager/bun/artifacts.js +0 -1
  283. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  284. package/dist/modules/manager/bun/extract.d.ts +1 -0
  285. package/dist/modules/manager/bun/extract.js +53 -27
  286. package/dist/modules/manager/bun/extract.js.map +1 -1
  287. package/dist/modules/manager/bun/index.js +1 -1
  288. package/dist/modules/manager/bun/index.js.map +1 -1
  289. package/dist/modules/manager/bun/utils.d.ts +2 -0
  290. package/dist/modules/manager/bun/utils.js +22 -0
  291. package/dist/modules/manager/bun/utils.js.map +1 -0
  292. package/dist/modules/manager/bundler/artifacts.js +0 -1
  293. package/dist/modules/manager/bundler/artifacts.js.map +1 -1
  294. package/dist/modules/manager/bundler/extract.js +2 -1
  295. package/dist/modules/manager/bundler/extract.js.map +1 -1
  296. package/dist/modules/manager/cake/index.js +4 -2
  297. package/dist/modules/manager/cake/index.js.map +1 -1
  298. package/dist/modules/manager/cargo/artifacts.js +5 -7
  299. package/dist/modules/manager/cargo/artifacts.js.map +1 -1
  300. package/dist/modules/manager/cargo/schema.d.ts +166 -166
  301. package/dist/modules/manager/circleci/extract.js +21 -30
  302. package/dist/modules/manager/circleci/extract.js.map +1 -1
  303. package/dist/modules/manager/circleci/schema.d.ts +33 -144
  304. package/dist/modules/manager/circleci/schema.js +21 -17
  305. package/dist/modules/manager/circleci/schema.js.map +1 -1
  306. package/dist/modules/manager/cocoapods/artifacts.js +1 -2
  307. package/dist/modules/manager/cocoapods/artifacts.js.map +1 -1
  308. package/dist/modules/manager/composer/artifacts.js +1 -2
  309. package/dist/modules/manager/composer/artifacts.js.map +1 -1
  310. package/dist/modules/manager/composer/schema.d.ts +32 -34
  311. package/dist/modules/manager/composer/schema.js +1 -1
  312. package/dist/modules/manager/composer/schema.js.map +1 -1
  313. package/dist/modules/manager/composer/utils.d.ts +1 -0
  314. package/dist/modules/manager/composer/utils.js +18 -6
  315. package/dist/modules/manager/composer/utils.js.map +1 -1
  316. package/dist/modules/manager/conan/artifacts.d.ts +2 -0
  317. package/dist/modules/manager/conan/artifacts.js +76 -0
  318. package/dist/modules/manager/conan/artifacts.js.map +1 -0
  319. package/dist/modules/manager/conan/index.d.ts +2 -0
  320. package/dist/modules/manager/conan/index.js +4 -1
  321. package/dist/modules/manager/conan/index.js.map +1 -1
  322. package/dist/modules/manager/copier/artifacts.js +0 -1
  323. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  324. package/dist/modules/manager/crossplane/schema.d.ts +2 -2
  325. package/dist/modules/manager/custom/jsonata/schema.d.ts +21 -21
  326. package/dist/modules/manager/custom/regex/index.js +2 -0
  327. package/dist/modules/manager/custom/regex/index.js.map +1 -1
  328. package/dist/modules/manager/deps-edn/extract.js +2 -1
  329. package/dist/modules/manager/deps-edn/extract.js.map +1 -1
  330. package/dist/modules/manager/devbox/artifacts.d.ts +1 -1
  331. package/dist/modules/manager/devbox/artifacts.js +35 -11
  332. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  333. package/dist/modules/manager/devbox/schema.js +1 -1
  334. package/dist/modules/manager/devbox/schema.js.map +1 -1
  335. package/dist/modules/manager/devcontainer/extract.js +43 -1
  336. package/dist/modules/manager/devcontainer/extract.js.map +1 -1
  337. package/dist/modules/manager/devcontainer/index.js +11 -1
  338. package/dist/modules/manager/devcontainer/index.js.map +1 -1
  339. package/dist/modules/manager/devcontainer/schema.d.ts +7 -3
  340. package/dist/modules/manager/devcontainer/schema.js +3 -1
  341. package/dist/modules/manager/devcontainer/schema.js.map +1 -1
  342. package/dist/modules/manager/docker-compose/schema.d.ts +6 -6
  343. package/dist/modules/manager/dockerfile/extract.js +2 -6
  344. package/dist/modules/manager/dockerfile/extract.js.map +1 -1
  345. package/dist/modules/manager/fingerprint.generated.js +86 -85
  346. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  347. package/dist/modules/manager/fleet/schema.d.ts +4 -4
  348. package/dist/modules/manager/flux/artifacts.js +0 -1
  349. package/dist/modules/manager/flux/artifacts.js.map +1 -1
  350. package/dist/modules/manager/flux/extract.js +27 -24
  351. package/dist/modules/manager/flux/extract.js.map +1 -1
  352. package/dist/modules/manager/flux/schema.d.ts +130 -154
  353. package/dist/modules/manager/github-actions/extract.js +60 -39
  354. package/dist/modules/manager/github-actions/extract.js.map +1 -1
  355. package/dist/modules/manager/github-actions/schema.d.ts +66 -0
  356. package/dist/modules/manager/github-actions/schema.js +38 -0
  357. package/dist/modules/manager/github-actions/schema.js.map +1 -0
  358. package/dist/modules/manager/gitlabci/extract.d.ts +1 -5
  359. package/dist/modules/manager/gitlabci/extract.js +27 -126
  360. package/dist/modules/manager/gitlabci/extract.js.map +1 -1
  361. package/dist/modules/manager/gitlabci/schema.d.ts +55 -0
  362. package/dist/modules/manager/gitlabci/schema.js +63 -0
  363. package/dist/modules/manager/gitlabci/schema.js.map +1 -0
  364. package/dist/modules/manager/gitlabci-include/extract.js +6 -54
  365. package/dist/modules/manager/gitlabci-include/extract.js.map +1 -1
  366. package/dist/modules/manager/gitlabci-include/schema.d.ts +13 -0
  367. package/dist/modules/manager/gitlabci-include/schema.js +46 -0
  368. package/dist/modules/manager/gitlabci-include/schema.js.map +1 -0
  369. package/dist/modules/manager/glasskube/schema.d.ts +8 -8
  370. package/dist/modules/manager/gomod/artifacts-extra.js +12 -4
  371. package/dist/modules/manager/gomod/artifacts-extra.js.map +1 -1
  372. package/dist/modules/manager/gomod/artifacts.js +24 -10
  373. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  374. package/dist/modules/manager/gomod/extract.js +23 -0
  375. package/dist/modules/manager/gomod/extract.js.map +1 -1
  376. package/dist/modules/manager/gomod/line-parser.js +16 -0
  377. package/dist/modules/manager/gomod/line-parser.js.map +1 -1
  378. package/dist/modules/manager/gomod/update.js +5 -3
  379. package/dist/modules/manager/gomod/update.js.map +1 -1
  380. package/dist/modules/manager/gradle/artifacts.js +0 -1
  381. package/dist/modules/manager/gradle/artifacts.js.map +1 -1
  382. package/dist/modules/manager/gradle/extract/catalog.js +1 -1
  383. package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
  384. package/dist/modules/manager/gradle/extract.js +8 -13
  385. package/dist/modules/manager/gradle/extract.js.map +1 -1
  386. package/dist/modules/manager/gradle/parser/assignments.js +2 -2
  387. package/dist/modules/manager/gradle/parser/assignments.js.map +1 -1
  388. package/dist/modules/manager/gradle/parser/handlers.d.ts +1 -2
  389. package/dist/modules/manager/gradle/parser/handlers.js +17 -24
  390. package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
  391. package/dist/modules/manager/gradle/parser/registry-urls.js +46 -12
  392. package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
  393. package/dist/modules/manager/gradle/types.d.ts +1 -0
  394. package/dist/modules/manager/gradle/types.js.map +1 -1
  395. package/dist/modules/manager/gradle-wrapper/artifacts.js +1 -2
  396. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  397. package/dist/modules/manager/helmfile/artifacts.js +0 -1
  398. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  399. package/dist/modules/manager/helmfile/extract.js +4 -0
  400. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  401. package/dist/modules/manager/helmfile/schema.d.ts +9 -9
  402. package/dist/modules/manager/helmv3/artifacts.js +0 -1
  403. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  404. package/dist/modules/manager/helmv3/utils.js +3 -1
  405. package/dist/modules/manager/helmv3/utils.js.map +1 -1
  406. package/dist/modules/manager/hermit/artifacts.js +0 -1
  407. package/dist/modules/manager/hermit/artifacts.js.map +1 -1
  408. package/dist/modules/manager/homebrew/extract.js +0 -1
  409. package/dist/modules/manager/homebrew/extract.js.map +1 -1
  410. package/dist/modules/manager/jsonnet-bundler/artifacts.js +0 -1
  411. package/dist/modules/manager/jsonnet-bundler/artifacts.js.map +1 -1
  412. package/dist/modules/manager/kustomize/artifacts.d.ts +2 -0
  413. package/dist/modules/manager/kustomize/artifacts.js +154 -0
  414. package/dist/modules/manager/kustomize/artifacts.js.map +1 -0
  415. package/dist/modules/manager/kustomize/common.d.ts +3 -0
  416. package/dist/modules/manager/kustomize/common.js +22 -0
  417. package/dist/modules/manager/kustomize/common.js.map +1 -0
  418. package/dist/modules/manager/kustomize/index.d.ts +1 -0
  419. package/dist/modules/manager/kustomize/index.js +3 -1
  420. package/dist/modules/manager/kustomize/index.js.map +1 -1
  421. package/dist/modules/manager/kustomize/types.d.ts +4 -0
  422. package/dist/modules/manager/kustomize/types.js.map +1 -1
  423. package/dist/modules/manager/maven/extract.d.ts +2 -2
  424. package/dist/modules/manager/maven/extract.js +14 -9
  425. package/dist/modules/manager/maven/extract.js.map +1 -1
  426. package/dist/modules/manager/maven-wrapper/artifacts.js +0 -1
  427. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  428. package/dist/modules/manager/mise/extract.js +1 -1
  429. package/dist/modules/manager/mise/extract.js.map +1 -1
  430. package/dist/modules/manager/mix/artifacts.js +64 -14
  431. package/dist/modules/manager/mix/artifacts.js.map +1 -1
  432. package/dist/modules/manager/mix/index.d.ts +1 -0
  433. package/dist/modules/manager/mix/index.js +2 -1
  434. package/dist/modules/manager/mix/index.js.map +1 -1
  435. package/dist/modules/manager/nix/artifacts.js +0 -1
  436. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  437. package/dist/modules/manager/nix/extract.js +1 -1
  438. package/dist/modules/manager/nix/extract.js.map +1 -1
  439. package/dist/modules/manager/nix/schema.d.ts +20 -20
  440. package/dist/modules/manager/nix/schema.js +1 -0
  441. package/dist/modules/manager/nix/schema.js.map +1 -1
  442. package/dist/modules/manager/npm/artifacts.js +0 -1
  443. package/dist/modules/manager/npm/artifacts.js.map +1 -1
  444. package/dist/modules/manager/npm/extract/common/package-file.js +1 -0
  445. package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
  446. package/dist/modules/manager/npm/extract/yarn.js +2 -2
  447. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  448. package/dist/modules/manager/npm/post-update/npm.js +0 -1
  449. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  450. package/dist/modules/manager/npm/post-update/pnpm.js +13 -2
  451. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  452. package/dist/modules/manager/npm/post-update/rules.js +11 -1
  453. package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
  454. package/dist/modules/manager/npm/post-update/yarn.js +0 -1
  455. package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
  456. package/dist/modules/manager/npm/schema.d.ts +13 -13
  457. package/dist/modules/manager/npm/update/dependency/index.js +1 -1
  458. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  459. package/dist/modules/manager/nuget/artifacts.js +1 -2
  460. package/dist/modules/manager/nuget/artifacts.js.map +1 -1
  461. package/dist/modules/manager/nuget/extract.js +21 -18
  462. package/dist/modules/manager/nuget/extract.js.map +1 -1
  463. package/dist/modules/manager/nuget/package-tree.js +4 -0
  464. package/dist/modules/manager/nuget/package-tree.js.map +1 -1
  465. package/dist/modules/manager/nuget/schema.d.ts +8 -8
  466. package/dist/modules/manager/nuget/util.js +4 -1
  467. package/dist/modules/manager/nuget/util.js.map +1 -1
  468. package/dist/modules/manager/ocb/schema.d.ts +6 -6
  469. package/dist/modules/manager/pep621/extract.js +19 -3
  470. package/dist/modules/manager/pep621/extract.js.map +1 -1
  471. package/dist/modules/manager/pep621/processors/pdm.js +3 -2
  472. package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
  473. package/dist/modules/manager/pep621/processors/uv.js +4 -1
  474. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  475. package/dist/modules/manager/pep621/schema.d.ts +341 -49
  476. package/dist/modules/manager/pep621/schema.js +3 -1
  477. package/dist/modules/manager/pep621/schema.js.map +1 -1
  478. package/dist/modules/manager/pep621/utils.js +1 -1
  479. package/dist/modules/manager/pep621/utils.js.map +1 -1
  480. package/dist/modules/manager/pip-compile/common.js +0 -1
  481. package/dist/modules/manager/pip-compile/common.js.map +1 -1
  482. package/dist/modules/manager/pip_requirements/artifacts.js +0 -1
  483. package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
  484. package/dist/modules/manager/pip_requirements/common.js +2 -6
  485. package/dist/modules/manager/pip_requirements/common.js.map +1 -1
  486. package/dist/modules/manager/pipenv/artifacts.js +0 -1
  487. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  488. package/dist/modules/manager/pixi/artifacts.d.ts +3 -0
  489. package/dist/modules/manager/pixi/artifacts.js +78 -0
  490. package/dist/modules/manager/pixi/artifacts.js.map +1 -0
  491. package/dist/modules/manager/pixi/extract.d.ts +4 -0
  492. package/dist/modules/manager/pixi/extract.js +131 -0
  493. package/dist/modules/manager/pixi/extract.js.map +1 -0
  494. package/dist/modules/manager/pixi/index.d.ts +10 -0
  495. package/dist/modules/manager/pixi/index.js +20 -0
  496. package/dist/modules/manager/pixi/index.js.map +1 -0
  497. package/dist/modules/manager/pixi/schema.d.ts +405 -0
  498. package/dist/modules/manager/pixi/schema.js +147 -0
  499. package/dist/modules/manager/pixi/schema.js.map +1 -0
  500. package/dist/modules/manager/poetry/artifacts.js +3 -4
  501. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  502. package/dist/modules/manager/poetry/extract.js +2 -1
  503. package/dist/modules/manager/poetry/extract.js.map +1 -1
  504. package/dist/modules/manager/poetry/schema.d.ts +44 -44
  505. package/dist/modules/manager/pub/artifacts.js +0 -1
  506. package/dist/modules/manager/pub/artifacts.js.map +1 -1
  507. package/dist/modules/manager/pub/schema.d.ts +8 -8
  508. package/dist/modules/manager/scalafmt/extract.js +1 -1
  509. package/dist/modules/manager/scalafmt/extract.js.map +1 -1
  510. package/dist/modules/manager/sveltos/schema.d.ts +30 -42
  511. package/dist/modules/manager/terraform/lockfile/hash.d.ts +1 -1
  512. package/dist/modules/manager/terraform/util.js +1 -3
  513. package/dist/modules/manager/terraform/util.js.map +1 -1
  514. package/dist/modules/manager/types.d.ts +6 -2
  515. package/dist/modules/manager/types.js.map +1 -1
  516. package/dist/modules/manager/vendir/schema.d.ts +7 -7
  517. package/dist/modules/platform/api.d.ts +1 -1
  518. package/dist/modules/platform/azure/azure-helper.js +2 -2
  519. package/dist/modules/platform/azure/azure-helper.js.map +1 -1
  520. package/dist/modules/platform/azure/index.js +14 -14
  521. package/dist/modules/platform/azure/index.js.map +1 -1
  522. package/dist/modules/platform/bitbucket/comments.js +4 -4
  523. package/dist/modules/platform/bitbucket/comments.js.map +1 -1
  524. package/dist/modules/platform/bitbucket/index.js +49 -44
  525. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  526. package/dist/modules/platform/bitbucket/schema.d.ts +14 -14
  527. package/dist/modules/platform/bitbucket/utils.js +3 -3
  528. package/dist/modules/platform/bitbucket/utils.js.map +1 -1
  529. package/dist/modules/platform/bitbucket-server/index.d.ts +2 -2
  530. package/dist/modules/platform/bitbucket-server/index.js +81 -81
  531. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  532. package/dist/modules/platform/bitbucket-server/pr-cache.d.ts +23 -0
  533. package/dist/modules/platform/bitbucket-server/pr-cache.js +125 -0
  534. package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -0
  535. package/dist/modules/platform/bitbucket-server/schema.d.ts +76 -0
  536. package/dist/modules/platform/bitbucket-server/schema.js +15 -1
  537. package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
  538. package/dist/modules/platform/bitbucket-server/types.d.ts +8 -2
  539. package/dist/modules/platform/bitbucket-server/types.js.map +1 -1
  540. package/dist/modules/platform/bitbucket-server/utils.d.ts +0 -2
  541. package/dist/modules/platform/bitbucket-server/utils.js +6 -52
  542. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  543. package/dist/modules/platform/codecommit/codecommit-client.js +6 -6
  544. package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
  545. package/dist/modules/platform/codecommit/index.js +24 -24
  546. package/dist/modules/platform/codecommit/index.js.map +1 -1
  547. package/dist/modules/platform/gerrit/client.d.ts +0 -3
  548. package/dist/modules/platform/gerrit/client.js +20 -29
  549. package/dist/modules/platform/gerrit/client.js.map +1 -1
  550. package/dist/modules/platform/gerrit/index.js +0 -6
  551. package/dist/modules/platform/gerrit/index.js.map +1 -1
  552. package/dist/modules/platform/gerrit/scm.js +5 -6
  553. package/dist/modules/platform/gerrit/scm.js.map +1 -1
  554. package/dist/modules/platform/gerrit/types.d.ts +1 -4
  555. package/dist/modules/platform/gerrit/types.js.map +1 -1
  556. package/dist/modules/platform/gerrit/utils.d.ts +3 -2
  557. package/dist/modules/platform/gerrit/utils.js +4 -8
  558. package/dist/modules/platform/gerrit/utils.js.map +1 -1
  559. package/dist/modules/platform/gitea/gitea-helper.d.ts +1 -0
  560. package/dist/modules/platform/gitea/gitea-helper.js +16 -0
  561. package/dist/modules/platform/gitea/gitea-helper.js.map +1 -1
  562. package/dist/modules/platform/gitea/index.js +22 -16
  563. package/dist/modules/platform/gitea/index.js.map +1 -1
  564. package/dist/modules/platform/gitea/schema.d.ts +8 -8
  565. package/dist/modules/platform/gitea/types.d.ts +1 -1
  566. package/dist/modules/platform/gitea/types.js.map +1 -1
  567. package/dist/modules/platform/github/common.d.ts +2 -0
  568. package/dist/modules/platform/github/common.js +16 -0
  569. package/dist/modules/platform/github/common.js.map +1 -1
  570. package/dist/modules/platform/github/index.d.ts +1 -1
  571. package/dist/modules/platform/github/index.js +87 -82
  572. package/dist/modules/platform/github/index.js.map +1 -1
  573. package/dist/modules/platform/github/issue.d.ts +18 -18
  574. package/dist/modules/platform/github/massage-markdown-links.js +2 -2
  575. package/dist/modules/platform/github/massage-markdown-links.js.map +1 -1
  576. package/dist/modules/platform/github/pr.js +3 -3
  577. package/dist/modules/platform/github/pr.js.map +1 -1
  578. package/dist/modules/platform/github/schema.d.ts +128 -128
  579. package/dist/modules/platform/github/schema.js +3 -1
  580. package/dist/modules/platform/github/schema.js.map +1 -1
  581. package/dist/modules/platform/gitlab/index.js +63 -49
  582. package/dist/modules/platform/gitlab/index.js.map +1 -1
  583. package/dist/modules/platform/index.js +0 -1
  584. package/dist/modules/platform/index.js.map +1 -1
  585. package/dist/modules/platform/scm.d.ts +1 -1
  586. package/dist/modules/versioning/api.js +2 -0
  587. package/dist/modules/versioning/api.js.map +1 -1
  588. package/dist/modules/versioning/composer/index.js +10 -0
  589. package/dist/modules/versioning/composer/index.js.map +1 -1
  590. package/dist/modules/versioning/conda/index.d.ts +41 -0
  591. package/dist/modules/versioning/conda/index.js +178 -0
  592. package/dist/modules/versioning/conda/index.js.map +1 -0
  593. package/dist/modules/versioning/distro.js +1 -3
  594. package/dist/modules/versioning/distro.js.map +1 -1
  595. package/dist/modules/versioning/hashicorp/convertor.d.ts +2 -1
  596. package/dist/modules/versioning/hashicorp/convertor.js +13 -8
  597. package/dist/modules/versioning/hashicorp/convertor.js.map +1 -1
  598. package/dist/modules/versioning/hex/index.js +3 -3
  599. package/dist/modules/versioning/hex/index.js.map +1 -1
  600. package/dist/modules/versioning/npm/index.js +2 -1
  601. package/dist/modules/versioning/npm/index.js.map +1 -1
  602. package/dist/modules/versioning/types.d.ts +4 -0
  603. package/dist/modules/versioning/types.js.map +1 -1
  604. package/dist/proxy.js +2 -1
  605. package/dist/proxy.js.map +1 -1
  606. package/dist/renovate.js +2 -2
  607. package/dist/renovate.js.map +1 -1
  608. package/dist/util/cache/package/redis.js +0 -1
  609. package/dist/util/cache/package/redis.js.map +1 -1
  610. package/dist/util/cache/package/types.d.ts +1 -1
  611. package/dist/util/cache/package/types.js.map +1 -1
  612. package/dist/util/cache/repository/impl/base.d.ts +1 -1
  613. package/dist/util/cache/repository/impl/base.js +4 -0
  614. package/dist/util/cache/repository/impl/base.js.map +1 -1
  615. package/dist/util/cache/repository/schema.d.ts +4 -4
  616. package/dist/util/cache/repository/types.d.ts +3 -0
  617. package/dist/util/cache/repository/types.js.map +1 -1
  618. package/dist/util/common.d.ts +4 -2
  619. package/dist/util/common.js +17 -3
  620. package/dist/util/common.js.map +1 -1
  621. package/dist/util/env.d.ts +4 -0
  622. package/dist/util/env.js +22 -0
  623. package/dist/util/env.js.map +1 -0
  624. package/dist/util/exec/containerbase.js +19 -14
  625. package/dist/util/exec/containerbase.js.map +1 -1
  626. package/dist/util/exec/index.js +5 -2
  627. package/dist/util/exec/index.js.map +1 -1
  628. package/dist/util/exec/types.d.ts +0 -2
  629. package/dist/util/exec/types.js.map +1 -1
  630. package/dist/util/exec/utils.d.ts +1 -1
  631. package/dist/util/exec/utils.js +6 -5
  632. package/dist/util/exec/utils.js.map +1 -1
  633. package/dist/util/git/auth.js +8 -5
  634. package/dist/util/git/auth.js.map +1 -1
  635. package/dist/util/git/author.js +1 -1
  636. package/dist/util/git/author.js.map +1 -1
  637. package/dist/util/git/config.js +0 -1
  638. package/dist/util/git/config.js.map +1 -1
  639. package/dist/util/git/error.js +4 -2
  640. package/dist/util/git/error.js.map +1 -1
  641. package/dist/util/git/index.js +75 -52
  642. package/dist/util/git/index.js.map +1 -1
  643. package/dist/util/git/private-key.js +2 -4
  644. package/dist/util/git/private-key.js.map +1 -1
  645. package/dist/util/git/types.d.ts +2 -0
  646. package/dist/util/git/types.js.map +1 -1
  647. package/dist/util/git/url.js +1 -1
  648. package/dist/util/git/url.js.map +1 -1
  649. package/dist/util/github/graphql/datasource-fetcher.js +3 -5
  650. package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
  651. package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +2 -2
  652. package/dist/util/github/graphql/query-adapters/tags-query-adapter.d.ts +2 -2
  653. package/dist/util/http/auth.js +0 -1
  654. package/dist/util/http/auth.js.map +1 -1
  655. package/dist/util/http/bitbucket-server.d.ts +7 -5
  656. package/dist/util/http/bitbucket-server.js +26 -23
  657. package/dist/util/http/bitbucket-server.js.map +1 -1
  658. package/dist/util/http/bitbucket.d.ts +6 -5
  659. package/dist/util/http/bitbucket.js +34 -31
  660. package/dist/util/http/bitbucket.js.map +1 -1
  661. package/dist/util/http/cache/abstract-http-cache-provider.js +2 -2
  662. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  663. package/dist/util/http/cache/memory-http-cache-provider.d.ts +10 -0
  664. package/dist/util/http/cache/memory-http-cache-provider.js +29 -0
  665. package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -0
  666. package/dist/util/http/cache/package-http-cache-provider.d.ts +23 -0
  667. package/dist/util/http/cache/package-http-cache-provider.js +80 -0
  668. package/dist/util/http/cache/package-http-cache-provider.js.map +1 -0
  669. package/dist/util/http/cache/schema.d.ts +2 -2
  670. package/dist/util/http/errors.d.ts +2 -0
  671. package/dist/util/http/errors.js +8 -0
  672. package/dist/util/http/errors.js.map +1 -0
  673. package/dist/util/http/gerrit.d.ts +6 -4
  674. package/dist/util/http/gerrit.js +11 -12
  675. package/dist/util/http/gerrit.js.map +1 -1
  676. package/dist/util/http/gitea.d.ts +5 -4
  677. package/dist/util/http/gitea.js +14 -13
  678. package/dist/util/http/gitea.js.map +1 -1
  679. package/dist/util/http/github.d.ts +14 -8
  680. package/dist/util/http/github.js +65 -60
  681. package/dist/util/http/github.js.map +1 -1
  682. package/dist/util/http/gitlab.d.ts +7 -5
  683. package/dist/util/http/gitlab.js +58 -46
  684. package/dist/util/http/gitlab.js.map +1 -1
  685. package/dist/util/http/got.d.ts +9 -0
  686. package/dist/util/http/got.js +54 -0
  687. package/dist/util/http/got.js.map +1 -0
  688. package/dist/util/http/host-rules.d.ts +2 -1
  689. package/dist/util/http/host-rules.js +17 -4
  690. package/dist/util/http/host-rules.js.map +1 -1
  691. package/dist/util/http/http.d.ts +93 -0
  692. package/dist/util/http/http.js +346 -0
  693. package/dist/util/http/http.js.map +1 -0
  694. package/dist/util/http/index.d.ts +6 -74
  695. package/dist/util/http/index.js +5 -359
  696. package/dist/util/http/index.js.map +1 -1
  697. package/dist/util/http/legacy.js +4 -1
  698. package/dist/util/http/legacy.js.map +1 -1
  699. package/dist/util/http/types.d.ts +9 -16
  700. package/dist/util/http/types.js.map +1 -1
  701. package/dist/util/schema-utils.d.ts +1 -0
  702. package/dist/util/schema-utils.js +43 -8
  703. package/dist/util/schema-utils.js.map +1 -1
  704. package/dist/util/stats.d.ts +10 -0
  705. package/dist/util/stats.js +45 -1
  706. package/dist/util/stats.js.map +1 -1
  707. package/dist/util/string.d.ts +16 -0
  708. package/dist/util/string.js +79 -0
  709. package/dist/util/string.js.map +1 -1
  710. package/dist/util/toml.d.ts +1 -0
  711. package/dist/util/toml.js +6 -0
  712. package/dist/util/toml.js.map +1 -1
  713. package/dist/util/url.js +3 -8
  714. package/dist/util/url.js.map +1 -1
  715. package/dist/util/yaml.js +3 -8
  716. package/dist/util/yaml.js.map +1 -1
  717. package/dist/workers/global/autodiscover.js +1 -19
  718. package/dist/workers/global/autodiscover.js.map +1 -1
  719. package/dist/workers/global/config/parse/env.js +3 -3
  720. package/dist/workers/global/config/parse/env.js.map +1 -1
  721. package/dist/workers/global/config/parse/file.js +18 -8
  722. package/dist/workers/global/config/parse/file.js.map +1 -1
  723. package/dist/workers/global/config/parse/host-rules-from-env.js +6 -2
  724. package/dist/workers/global/config/parse/host-rules-from-env.js.map +1 -1
  725. package/dist/workers/global/config/parse/index.js +15 -0
  726. package/dist/workers/global/config/parse/index.js.map +1 -1
  727. package/dist/workers/global/index.js +4 -2
  728. package/dist/workers/global/index.js.map +1 -1
  729. package/dist/workers/repository/cache.js +1 -2
  730. package/dist/workers/repository/cache.js.map +1 -1
  731. package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -0
  732. package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
  733. package/dist/workers/repository/index.js +1 -0
  734. package/dist/workers/repository/index.js.map +1 -1
  735. package/dist/workers/repository/init/merge.js +6 -3
  736. package/dist/workers/repository/init/merge.js.map +1 -1
  737. package/dist/workers/repository/onboarding/pr/config-description.js +3 -1
  738. package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
  739. package/dist/workers/repository/onboarding/pr/index.js +4 -0
  740. package/dist/workers/repository/onboarding/pr/index.js.map +1 -1
  741. package/dist/workers/repository/process/extract-update.js +0 -1
  742. package/dist/workers/repository/process/extract-update.js.map +1 -1
  743. package/dist/workers/repository/process/fingerprint-fields.js +0 -1
  744. package/dist/workers/repository/process/fingerprint-fields.js.map +1 -1
  745. package/dist/workers/repository/process/libyear.js +2 -2
  746. package/dist/workers/repository/process/libyear.js.map +1 -1
  747. package/dist/workers/repository/process/lookup/index.js +15 -4
  748. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  749. package/dist/workers/repository/process/lookup/timestamps.d.ts +18 -0
  750. package/dist/workers/repository/process/lookup/timestamps.js +69 -0
  751. package/dist/workers/repository/process/lookup/timestamps.js.map +1 -0
  752. package/dist/workers/repository/process/lookup/types.d.ts +1 -0
  753. package/dist/workers/repository/process/lookup/types.js.map +1 -1
  754. package/dist/workers/repository/process/lookup/utils.js +20 -9
  755. package/dist/workers/repository/process/lookup/utils.js.map +1 -1
  756. package/dist/workers/repository/process/sort.js +1 -1
  757. package/dist/workers/repository/process/sort.js.map +1 -1
  758. package/dist/workers/repository/process/vulnerabilities.js +1 -1
  759. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  760. package/dist/workers/repository/process/write.js +1 -8
  761. package/dist/workers/repository/process/write.js.map +1 -1
  762. package/dist/workers/repository/reconfigure/utils.d.ts +2 -0
  763. package/dist/workers/repository/reconfigure/utils.js +16 -0
  764. package/dist/workers/repository/reconfigure/utils.js.map +1 -1
  765. package/dist/workers/repository/reconfigure/validate.js +6 -17
  766. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  767. package/dist/workers/repository/update/branch/auto-replace.js +25 -5
  768. package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
  769. package/dist/workers/repository/update/branch/commit.js +2 -0
  770. package/dist/workers/repository/update/branch/commit.js.map +1 -1
  771. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +17 -8
  772. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  773. package/dist/workers/repository/update/pr/body/config-description.js +26 -1
  774. package/dist/workers/repository/update/pr/body/config-description.js.map +1 -1
  775. package/dist/workers/repository/update/pr/body/index.js +21 -14
  776. package/dist/workers/repository/update/pr/body/index.js.map +1 -1
  777. package/dist/workers/repository/update/pr/changelog/api.js +8 -6
  778. package/dist/workers/repository/update/pr/changelog/api.js.map +1 -1
  779. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
  780. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  781. package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.d.ts +3 -0
  782. package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js +39 -0
  783. package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js.map +1 -0
  784. package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.d.ts +8 -0
  785. package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js +31 -0
  786. package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js.map +1 -0
  787. package/dist/workers/repository/update/pr/changelog/github/index.js +6 -3
  788. package/dist/workers/repository/update/pr/changelog/github/index.js.map +1 -1
  789. package/dist/workers/repository/update/pr/changelog/gitlab/index.js +1 -1
  790. package/dist/workers/repository/update/pr/changelog/gitlab/index.js.map +1 -1
  791. package/dist/workers/repository/update/pr/changelog/release-notes.js +12 -8
  792. package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
  793. package/dist/workers/repository/update/pr/changelog/source.d.ts +1 -1
  794. package/dist/workers/repository/update/pr/changelog/source.js +1 -0
  795. package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
  796. package/dist/workers/repository/update/pr/changelog/types.d.ts +1 -1
  797. package/dist/workers/repository/update/pr/changelog/types.js.map +1 -1
  798. package/dist/workers/repository/update/pr/index.js +2 -4
  799. package/dist/workers/repository/update/pr/index.js.map +1 -1
  800. package/dist/workers/repository/updates/flatten.js +8 -4
  801. package/dist/workers/repository/updates/flatten.js.map +1 -1
  802. package/dist/workers/repository/updates/generate.js +3 -2
  803. package/dist/workers/repository/updates/generate.js.map +1 -1
  804. package/dist/workers/types.d.ts +1 -4
  805. package/dist/workers/types.js.map +1 -1
  806. package/package.json +86 -83
  807. package/renovate-schema.json +25 -10
  808. package/dist/modules/manager/github-actions/types.d.ts +0 -30
  809. package/dist/modules/manager/github-actions/types.js +0 -3
  810. package/dist/modules/manager/github-actions/types.js.map +0 -1
  811. package/dist/modules/manager/gitlabci/common.d.ts +0 -6
  812. package/dist/modules/manager/gitlabci/common.js +0 -30
  813. package/dist/modules/manager/gitlabci/common.js.map +0 -1
  814. package/dist/modules/manager/gitlabci/types.d.ts +0 -35
  815. package/dist/modules/manager/gitlabci/types.js +0 -3
  816. package/dist/modules/manager/gitlabci/types.js.map +0 -1
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
6
6
  const external_host_error_1 = require("../../../types/errors/external-host-error");
7
7
  const decorator_1 = require("../../../util/cache/package/decorator");
8
+ const fs_1 = require("../../../util/fs");
8
9
  const http_1 = require("../../../util/http");
9
10
  const url_1 = require("../../../util/url");
10
11
  const bazel_module_1 = require("../../versioning/bazel-module");
@@ -30,7 +31,23 @@ class BazelDatasource extends datasource_1.Datasource {
30
31
  const url = (0, url_1.joinUrlParts)(registryUrl, path);
31
32
  const result = { releases: [] };
32
33
  try {
33
- const { body: metadata } = await this.http.getJson(url, schema_1.BazelModuleMetadata);
34
+ let metadata;
35
+ const FILE_PREFIX = 'file://';
36
+ if (url.startsWith(FILE_PREFIX)) {
37
+ const filePath = url.slice(FILE_PREFIX.length);
38
+ if (!(0, fs_1.isValidLocalPath)(filePath)) {
39
+ return null;
40
+ }
41
+ const fileContent = await (0, fs_1.readLocalFile)(filePath, 'utf8');
42
+ if (!fileContent) {
43
+ return null;
44
+ }
45
+ metadata = schema_1.BazelModuleMetadata.parse(JSON.parse(fileContent));
46
+ }
47
+ else {
48
+ const response = await this.http.getJson(url, schema_1.BazelModuleMetadata);
49
+ metadata = response.body;
50
+ }
34
51
  result.releases = metadata.versions
35
52
  .map((v) => new bzlmod_version_1.BzlmodVersion(v))
36
53
  .sort(bzlmod_version_1.BzlmodVersion.defaultCompare)
@@ -46,7 +63,6 @@ class BazelDatasource extends datasource_1.Datasource {
46
63
  }
47
64
  }
48
65
  catch (err) {
49
- // istanbul ignore else: not testable with nock
50
66
  if (err instanceof http_1.HttpError) {
51
67
  if (err.response?.statusCode === 404) {
52
68
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/bazel/index.ts"],"names":[],"mappings":";;;;AAAA,kEAAkC;AAClC,mFAA8E;AAC9E,qEAA8D;AAC9D,6CAA+C;AAC/C,2CAAiD;AACjD,gEAAwE;AACxE,iFAA6E;AAC7E,8CAA2C;AAE3C,qCAA+C;AAE/C,MAAa,eAAgB,SAAQ,uBAAU;IAC7C,MAAM,CAAU,EAAE,GAAG,OAAO,CAAC;IAE7B,MAAM,CAAU,mBAAmB,GACjC,0EAA0E,CAAC;IAE3D,mBAAmB,GAAG,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAC5D,gBAAgB,GAAG,MAAM,CAAC;IAC1B,qBAAqB,GAAG,IAAI,CAAC;IAC7B,OAAO,GAAG,IAAI,CAAC;IACf,iBAAiB,GAAG,iBAAiB,CAAC;IAExD,MAAM,CAAC,mBAAmB,CAAC,WAAmB;QAC5C,OAAO,YAAY,WAAW,gBAAgB,CAAC;IACjD,CAAC;IAED;QACE,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAOK,AAAN,KAAK,CAAC,WAAW,CAAC,EAChB,WAAW,EACX,WAAW,GACO;QAClB,MAAM,IAAI,GAAG,eAAe,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,IAAA,kBAAY,EAAC,WAAY,EAAE,IAAI,CAAC,CAAC;QAE7C,MAAM,MAAM,GAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAChD,GAAG,EACH,4BAAmB,CACpB,CAAC;YACF,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ;iBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,8BAAa,CAAC,CAAC,CAAC,CAAC;iBAChC,IAAI,CAAC,8BAAa,CAAC,cAAc,CAAC;iBAClC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBACV,MAAM,OAAO,GAAY,EAAE,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAClD,IAAI,YAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;oBACvD,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC9B,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC,CAAC;YACL,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACtB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACtC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,+CAA+C;YAC/C,IAAI,GAAG,YAAY,gBAAS,EAAE,CAAC;gBAC7B,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,KAAK,GAAG,EAAE,CAAC;oBACrC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,IAAI,uCAAiB,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;;AA/DH,0CAgEC;AAvCO;IALL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,eAAe,CAAC,EAAE,EAAE;QAC7C,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,EAAqB,EAAE,EAAE,CACvD,GAAG,WAAY,IAAI,WAAW,EAAE;KACnC,CAAC;kDAuCD","sourcesContent":["import is from '@sindresorhus/is';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { HttpError } from '../../../util/http';\nimport { joinUrlParts } from '../../../util/url';\nimport { id as bazelVersioningId } from '../../versioning/bazel-module';\nimport { BzlmodVersion } from '../../versioning/bazel-module/bzlmod-version';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport { BazelModuleMetadata } from './schema';\n\nexport class BazelDatasource extends Datasource {\n static readonly id = 'bazel';\n\n static readonly bazelCentralRepoUrl =\n 'https://raw.githubusercontent.com/bazelbuild/bazel-central-registry/main';\n\n override readonly defaultRegistryUrls = [BazelDatasource.bazelCentralRepoUrl];\n override readonly registryStrategy = 'hunt';\n override readonly customRegistrySupport = true;\n override readonly caching = true;\n override readonly defaultVersioning = bazelVersioningId;\n\n static packageMetadataPath(packageName: string): string {\n return `/modules/${packageName}/metadata.json`;\n }\n\n constructor() {\n super(BazelDatasource.id);\n }\n\n @cache({\n namespace: `datasource-${BazelDatasource.id}`,\n key: ({ registryUrl, packageName }: GetReleasesConfig) =>\n `${registryUrl!}:${packageName}`,\n })\n async getReleases({\n registryUrl,\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const path = BazelDatasource.packageMetadataPath(packageName);\n const url = joinUrlParts(registryUrl!, path);\n\n const result: ReleaseResult = { releases: [] };\n try {\n const { body: metadata } = await this.http.getJson(\n url,\n BazelModuleMetadata,\n );\n result.releases = metadata.versions\n .map((v) => new BzlmodVersion(v))\n .sort(BzlmodVersion.defaultCompare)\n .map((bv) => {\n const release: Release = { version: bv.original };\n if (is.truthy(metadata.yanked_versions?.[bv.original])) {\n release.isDeprecated = true;\n }\n return release;\n });\n if (metadata.homepage) {\n result.homepage = metadata.homepage;\n }\n } catch (err) {\n // istanbul ignore else: not testable with nock\n if (err instanceof HttpError) {\n if (err.response?.statusCode === 404) {\n return null;\n }\n throw new ExternalHostError(err);\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/bazel/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { isValidLocalPath, readLocalFile } from '../../../util/fs';\nimport { HttpError } from '../../../util/http';\nimport { joinUrlParts } from '../../../util/url';\nimport { id as bazelVersioningId } from '../../versioning/bazel-module';\nimport { BzlmodVersion } from '../../versioning/bazel-module/bzlmod-version';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport { BazelModuleMetadata } from './schema';\n\nexport class BazelDatasource extends Datasource {\n static readonly id = 'bazel';\n\n static readonly bazelCentralRepoUrl =\n 'https://raw.githubusercontent.com/bazelbuild/bazel-central-registry/main';\n\n override readonly defaultRegistryUrls = [BazelDatasource.bazelCentralRepoUrl];\n override readonly registryStrategy = 'hunt';\n override readonly customRegistrySupport = true;\n override readonly caching = true;\n override readonly defaultVersioning = bazelVersioningId;\n\n static packageMetadataPath(packageName: string): string {\n return `/modules/${packageName}/metadata.json`;\n }\n\n constructor() {\n super(BazelDatasource.id);\n }\n\n @cache({\n namespace: `datasource-${BazelDatasource.id}`,\n key: ({ registryUrl, packageName }: GetReleasesConfig) =>\n `${registryUrl!}:${packageName}`,\n })\n async getReleases({\n registryUrl,\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const path = BazelDatasource.packageMetadataPath(packageName);\n const url = joinUrlParts(registryUrl!, path);\n const result: ReleaseResult = { releases: [] };\n try {\n let metadata: BazelModuleMetadata;\n const FILE_PREFIX = 'file://';\n if (url.startsWith(FILE_PREFIX)) {\n const filePath = url.slice(FILE_PREFIX.length);\n if (!isValidLocalPath(filePath)) {\n return null;\n }\n const fileContent = await readLocalFile(filePath, 'utf8');\n if (!fileContent) {\n return null;\n }\n metadata = BazelModuleMetadata.parse(JSON.parse(fileContent));\n } else {\n const response = await this.http.getJson(url, BazelModuleMetadata);\n metadata = response.body;\n }\n\n result.releases = metadata.versions\n .map((v) => new BzlmodVersion(v))\n .sort(BzlmodVersion.defaultCompare)\n .map((bv) => {\n const release: Release = { version: bv.original };\n if (is.truthy(metadata.yanked_versions?.[bv.original])) {\n release.isDeprecated = true;\n }\n return release;\n });\n if (metadata.homepage) {\n result.homepage = metadata.homepage;\n }\n } catch (err) {\n if (err instanceof HttpError) {\n if (err.response?.statusCode === 404) {\n return null;\n }\n throw new ExternalHostError(err);\n }\n this.handleGenericErrors(err);\n }\n\n return result.releases.length ? result : null;\n }\n}\n"]}
@@ -12,3 +12,4 @@ export declare const BazelModuleMetadata: z.ZodObject<{
12
12
  homepage?: string | null | undefined;
13
13
  yanked_versions?: Record<string, string> | undefined;
14
14
  }>;
15
+ export type BazelModuleMetadata = z.infer<typeof BazelModuleMetadata>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/bazel/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1C,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;IAC7B,eAAe,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC7D,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\n\nexport const BazelModuleMetadata = z.object({\n homepage: z.string().optional().nullable(),\n versions: z.array(z.string()),\n yanked_versions: z.record(z.string(), z.string()).optional(),\n});\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/bazel/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1C,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;IAC7B,eAAe,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC7D,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\n\nexport const BazelModuleMetadata = z.object({\n homepage: z.string().optional().nullable(),\n versions: z.array(z.string()),\n yanked_versions: z.record(z.string(), z.string()).optional(),\n});\n\nexport type BazelModuleMetadata = z.infer<typeof BazelModuleMetadata>;\n"]}
@@ -0,0 +1,19 @@
1
+ import type { PackageCacheNamespace } from '../../../util/cache/package/types';
2
+ import { BitbucketServerHttp } from '../../../util/http/bitbucket-server';
3
+ import { Datasource } from '../datasource';
4
+ import type { DigestConfig, GetReleasesConfig, ReleaseResult } from '../types';
5
+ export declare class BitbucketServerTagsDatasource extends Datasource {
6
+ static readonly id = "bitbucket-server-tags";
7
+ http: BitbucketServerHttp;
8
+ static readonly sourceUrlSupport = "package";
9
+ static readonly sourceUrlNote = "The source URL is determined by using the `packageName` and `registryUrl`.";
10
+ static readonly cacheNamespace: PackageCacheNamespace;
11
+ constructor();
12
+ static getRegistryURL(registryUrl: string): string;
13
+ static getSourceUrl(projectKey: string, repositorySlug: string, registryUrl: string): string;
14
+ static getApiUrl(registryUrl: string): string;
15
+ static getCacheKey(registryUrl: string | undefined, repo: string, type: string): string;
16
+ getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null>;
17
+ getTagCommit(baseUrl: string, tag: string): Promise<string | null>;
18
+ getDigest(config: DigestConfig, newValue?: string): Promise<string | null>;
19
+ }
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BitbucketServerTagsDatasource = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const zod_1 = require("zod");
6
+ const logger_1 = require("../../../logger");
7
+ const decorator_1 = require("../../../util/cache/package/decorator");
8
+ const bitbucket_server_1 = require("../../../util/http/bitbucket-server");
9
+ const regex_1 = require("../../../util/regex");
10
+ const result_1 = require("../../../util/result");
11
+ const url_1 = require("../../../util/url");
12
+ const datasource_1 = require("../datasource");
13
+ const schema_1 = require("../schema");
14
+ const schema_2 = require("./schema");
15
+ class BitbucketServerTagsDatasource extends datasource_1.Datasource {
16
+ static id = 'bitbucket-server-tags';
17
+ http = new bitbucket_server_1.BitbucketServerHttp(BitbucketServerTagsDatasource.id);
18
+ static sourceUrlSupport = 'package';
19
+ static sourceUrlNote = 'The source URL is determined by using the `packageName` and `registryUrl`.';
20
+ static cacheNamespace = `datasource-${BitbucketServerTagsDatasource.id}`;
21
+ constructor() {
22
+ super(BitbucketServerTagsDatasource.id);
23
+ }
24
+ static getRegistryURL(registryUrl) {
25
+ return registryUrl?.replace((0, regex_1.regEx)(/\/rest\/api\/1.0$/), '');
26
+ }
27
+ static getSourceUrl(projectKey, repositorySlug, registryUrl) {
28
+ const url = BitbucketServerTagsDatasource.getRegistryURL(registryUrl);
29
+ return `${(0, url_1.ensureTrailingSlash)(url)}projects/${projectKey}/repos/${repositorySlug}`;
30
+ }
31
+ static getApiUrl(registryUrl) {
32
+ const res = BitbucketServerTagsDatasource.getRegistryURL(registryUrl);
33
+ return `${(0, url_1.ensureTrailingSlash)(res)}rest/api/1.0/`;
34
+ }
35
+ static getCacheKey(registryUrl, repo, type) {
36
+ return `${BitbucketServerTagsDatasource.getRegistryURL(registryUrl ?? '')}:${repo}:${type}`;
37
+ }
38
+ // getReleases fetches list of tags for the repository
39
+ async getReleases(config) {
40
+ const { registryUrl, packageName } = config;
41
+ const [projectKey, repositorySlug] = packageName.split('/');
42
+ if (!registryUrl) {
43
+ logger_1.logger.debug('Missing registryUrl');
44
+ return null;
45
+ }
46
+ const result = result_1.Result.parse(config, schema_1.ReleasesConfig)
47
+ .transform(({ registryUrl }) => {
48
+ const url = `${BitbucketServerTagsDatasource.getApiUrl(registryUrl)}projects/${projectKey}/repos/${repositorySlug}/tags`;
49
+ return this.http.getJsonSafe(url, { paginate: true }, schema_2.BitbucketServerTags);
50
+ })
51
+ .transform((tags) => tags.map(({ displayId, hash }) => ({
52
+ version: displayId,
53
+ gitRef: displayId,
54
+ newDigest: hash ?? undefined,
55
+ })))
56
+ .transform((versions) => {
57
+ return {
58
+ sourceUrl: BitbucketServerTagsDatasource.getSourceUrl(projectKey, repositorySlug, registryUrl),
59
+ registryUrl: BitbucketServerTagsDatasource.getRegistryURL(registryUrl),
60
+ releases: versions,
61
+ };
62
+ });
63
+ const { val, err } = await result.unwrap();
64
+ if (err instanceof zod_1.ZodError) {
65
+ logger_1.logger.debug({ err }, 'bitbucket-server-tags: validation error');
66
+ return null;
67
+ }
68
+ if (err) {
69
+ this.handleGenericErrors(err);
70
+ }
71
+ return val;
72
+ }
73
+ // getTagCommit fetches the commit hash for the specified tag
74
+ async getTagCommit(baseUrl, tag) {
75
+ const bitbucketServerTag = (await this.http.getJson(`${baseUrl}/tags/${tag}`, schema_2.BitbucketServerTag)).body;
76
+ return bitbucketServerTag.hash ?? null;
77
+ }
78
+ // getDigest fetches the latest commit for repository main branch.
79
+ // If newValue is provided, then getTagCommit is called
80
+ async getDigest(config, newValue) {
81
+ const { registryUrl, packageName } = config;
82
+ const [projectKey, repositorySlug] = packageName.split('/');
83
+ if (!registryUrl) {
84
+ logger_1.logger.debug('Missing registryUrl');
85
+ return null;
86
+ }
87
+ const baseUrl = `${BitbucketServerTagsDatasource.getApiUrl(registryUrl)}projects/${projectKey}/repos/${repositorySlug}`;
88
+ if (newValue?.length) {
89
+ return this.getTagCommit(baseUrl, newValue);
90
+ }
91
+ const result = result_1.Result.parse(config, schema_1.DigestsConfig)
92
+ .transform(() => {
93
+ const url = `${baseUrl}/commits?ignoreMissing=true`;
94
+ return this.http.getJsonSafe(url, {
95
+ paginate: true,
96
+ limit: 1,
97
+ maxPages: 1,
98
+ }, schema_2.BitbucketServerCommits);
99
+ })
100
+ .transform((commits) => {
101
+ return commits[0]?.id;
102
+ });
103
+ const { val = null, err } = await result.unwrap();
104
+ if (err instanceof zod_1.ZodError) {
105
+ logger_1.logger.debug({ err }, 'bitbucket-server-tags: validation error');
106
+ return null;
107
+ }
108
+ if (err) {
109
+ this.handleGenericErrors(err);
110
+ }
111
+ return val;
112
+ }
113
+ }
114
+ exports.BitbucketServerTagsDatasource = BitbucketServerTagsDatasource;
115
+ tslib_1.__decorate([
116
+ (0, decorator_1.cache)({
117
+ namespace: BitbucketServerTagsDatasource.cacheNamespace,
118
+ key: ({ registryUrl, packageName }) => BitbucketServerTagsDatasource.getCacheKey(registryUrl, packageName, 'tags'),
119
+ })
120
+ ], BitbucketServerTagsDatasource.prototype, "getReleases", null);
121
+ tslib_1.__decorate([
122
+ (0, decorator_1.cache)({
123
+ namespace: BitbucketServerTagsDatasource.cacheNamespace,
124
+ key: ({ registryUrl, packageName }, tag) => BitbucketServerTagsDatasource.getCacheKey(registryUrl, packageName, `tag-${tag}`),
125
+ })
126
+ ], BitbucketServerTagsDatasource.prototype, "getTagCommit", null);
127
+ tslib_1.__decorate([
128
+ (0, decorator_1.cache)({
129
+ namespace: BitbucketServerTagsDatasource.cacheNamespace,
130
+ key: ({ registryUrl, packageName }) => BitbucketServerTagsDatasource.getCacheKey(registryUrl, packageName, 'digest'),
131
+ })
132
+ ], BitbucketServerTagsDatasource.prototype, "getDigest", null);
133
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/bitbucket-server-tags/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { ZodError } from 'zod';\nimport { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport type { PackageCacheNamespace } from '../../../util/cache/package/types';\nimport { BitbucketServerHttp } from '../../../util/http/bitbucket-server';\nimport { regEx } from '../../../util/regex';\nimport { Result } from '../../../util/result';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport { Datasource } from '../datasource';\nimport { DigestsConfig, ReleasesConfig } from '../schema';\nimport type { DigestConfig, GetReleasesConfig, ReleaseResult } from '../types';\nimport {\n BitbucketServerCommits,\n BitbucketServerTag,\n BitbucketServerTags,\n} from './schema';\n\nexport class BitbucketServerTagsDatasource extends Datasource {\n static readonly id = 'bitbucket-server-tags';\n\n override http = new BitbucketServerHttp(BitbucketServerTagsDatasource.id);\n\n static readonly sourceUrlSupport = 'package';\n static readonly sourceUrlNote =\n 'The source URL is determined by using the `packageName` and `registryUrl`.';\n\n static readonly cacheNamespace: PackageCacheNamespace = `datasource-${BitbucketServerTagsDatasource.id}`;\n\n constructor() {\n super(BitbucketServerTagsDatasource.id);\n }\n\n static getRegistryURL(registryUrl: string): string {\n return registryUrl?.replace(regEx(/\\/rest\\/api\\/1.0$/), '');\n }\n\n static getSourceUrl(\n projectKey: string,\n repositorySlug: string,\n registryUrl: string,\n ): string {\n const url = BitbucketServerTagsDatasource.getRegistryURL(registryUrl);\n return `${ensureTrailingSlash(url)}projects/${projectKey}/repos/${repositorySlug}`;\n }\n\n static getApiUrl(registryUrl: string): string {\n const res = BitbucketServerTagsDatasource.getRegistryURL(registryUrl);\n return `${ensureTrailingSlash(res)}rest/api/1.0/`;\n }\n\n static getCacheKey(\n registryUrl: string | undefined,\n repo: string,\n type: string,\n ): string {\n return `${BitbucketServerTagsDatasource.getRegistryURL(registryUrl ?? '')}:${repo}:${type}`;\n }\n\n // getReleases fetches list of tags for the repository\n @cache({\n namespace: BitbucketServerTagsDatasource.cacheNamespace,\n key: ({ registryUrl, packageName }: GetReleasesConfig) =>\n BitbucketServerTagsDatasource.getCacheKey(\n registryUrl,\n packageName,\n 'tags',\n ),\n })\n async getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n const { registryUrl, packageName } = config;\n const [projectKey, repositorySlug] = packageName.split('/');\n if (!registryUrl) {\n logger.debug('Missing registryUrl');\n return null;\n }\n\n const result = Result.parse(config, ReleasesConfig)\n .transform(({ registryUrl }) => {\n const url = `${BitbucketServerTagsDatasource.getApiUrl(registryUrl)}projects/${projectKey}/repos/${repositorySlug}/tags`;\n\n return this.http.getJsonSafe(\n url,\n { paginate: true },\n BitbucketServerTags,\n );\n })\n .transform((tags) =>\n tags.map(({ displayId, hash }) => ({\n version: displayId,\n gitRef: displayId,\n newDigest: hash ?? undefined,\n })),\n )\n .transform((versions): ReleaseResult => {\n return {\n sourceUrl: BitbucketServerTagsDatasource.getSourceUrl(\n projectKey,\n repositorySlug,\n registryUrl,\n ),\n registryUrl:\n BitbucketServerTagsDatasource.getRegistryURL(registryUrl),\n releases: versions,\n };\n });\n const { val, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'bitbucket-server-tags: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n // getTagCommit fetches the commit hash for the specified tag\n @cache({\n namespace: BitbucketServerTagsDatasource.cacheNamespace,\n key: ({ registryUrl, packageName }: DigestConfig, tag: string) =>\n BitbucketServerTagsDatasource.getCacheKey(\n registryUrl,\n packageName,\n `tag-${tag}`,\n ),\n })\n async getTagCommit(baseUrl: string, tag: string): Promise<string | null> {\n const bitbucketServerTag = (\n await this.http.getJson(`${baseUrl}/tags/${tag}`, BitbucketServerTag)\n ).body;\n\n return bitbucketServerTag.hash ?? null;\n }\n\n // getDigest fetches the latest commit for repository main branch.\n // If newValue is provided, then getTagCommit is called\n @cache({\n namespace: BitbucketServerTagsDatasource.cacheNamespace,\n key: ({ registryUrl, packageName }: DigestConfig) =>\n BitbucketServerTagsDatasource.getCacheKey(\n registryUrl,\n packageName,\n 'digest',\n ),\n })\n override async getDigest(\n config: DigestConfig,\n newValue?: string,\n ): Promise<string | null> {\n const { registryUrl, packageName } = config;\n const [projectKey, repositorySlug] = packageName.split('/');\n if (!registryUrl) {\n logger.debug('Missing registryUrl');\n return null;\n }\n\n const baseUrl = `${BitbucketServerTagsDatasource.getApiUrl(registryUrl)}projects/${projectKey}/repos/${repositorySlug}`;\n\n if (newValue?.length) {\n return this.getTagCommit(baseUrl, newValue);\n }\n\n const result = Result.parse(config, DigestsConfig)\n .transform(() => {\n const url = `${baseUrl}/commits?ignoreMissing=true`;\n\n return this.http.getJsonSafe(\n url,\n {\n paginate: true,\n limit: 1,\n maxPages: 1,\n },\n BitbucketServerCommits,\n );\n })\n .transform((commits) => {\n return commits[0]?.id;\n });\n\n const { val = null, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'bitbucket-server-tags: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n}\n"]}
@@ -0,0 +1,28 @@
1
+ import { z } from 'zod';
2
+ export declare const BitbucketServerTag: z.ZodObject<{
3
+ displayId: z.ZodString;
4
+ hash: z.ZodNullable<z.ZodString>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ displayId: string;
7
+ hash: string | null;
8
+ }, {
9
+ displayId: string;
10
+ hash: string | null;
11
+ }>;
12
+ export declare const BitbucketServerTags: z.ZodArray<z.ZodObject<{
13
+ displayId: z.ZodString;
14
+ hash: z.ZodNullable<z.ZodString>;
15
+ }, "strip", z.ZodTypeAny, {
16
+ displayId: string;
17
+ hash: string | null;
18
+ }, {
19
+ displayId: string;
20
+ hash: string | null;
21
+ }>, "many">;
22
+ export declare const BitbucketServerCommits: z.ZodArray<z.ZodObject<{
23
+ id: z.ZodString;
24
+ }, "strip", z.ZodTypeAny, {
25
+ id: string;
26
+ }, {
27
+ id: string;
28
+ }>, "many">;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BitbucketServerCommits = exports.BitbucketServerTags = exports.BitbucketServerTag = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.BitbucketServerTag = zod_1.z.object({
6
+ displayId: zod_1.z.string(),
7
+ hash: zod_1.z.string().nullable(),
8
+ });
9
+ exports.BitbucketServerTags = zod_1.z.array(exports.BitbucketServerTag);
10
+ exports.BitbucketServerCommits = zod_1.z.array(zod_1.z.object({
11
+ id: zod_1.z.string(),
12
+ }));
13
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/bitbucket-server-tags/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAEU,QAAA,mBAAmB,GAAG,OAAC,CAAC,KAAK,CAAC,0BAAkB,CAAC,CAAC;AAElD,QAAA,sBAAsB,GAAG,OAAC,CAAC,KAAK,CAC3C,OAAC,CAAC,MAAM,CAAC;IACP,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;CACf,CAAC,CACH,CAAC","sourcesContent":["import { z } from 'zod';\n\nexport const BitbucketServerTag = z.object({\n displayId: z.string(),\n hash: z.string().nullable(),\n});\n\nexport const BitbucketServerTags = z.array(BitbucketServerTag);\n\nexport const BitbucketServerCommits = z.array(\n z.object({\n id: z.string(),\n }),\n);\n"]}
@@ -30,7 +30,7 @@ class BitriseDatasource extends datasource_1.Datasource {
30
30
  sourceUrlSupport = 'release';
31
31
  sourceUrlNote = 'The source URL is determined from the `source_code_url` field of the release object in the results.';
32
32
  async getReleases({ packageName, 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/bitrise/index.ts"],"names":[],"mappings":";;;;AAAA,kEAAkC;AAClC,4CAAyC;AACzC,qEAA8D;AAC9D,iDAAsD;AACtD,+CAAoD;AACpD,sDAAuD;AACvD,iDAAkD;AAClD,2CAAiD;AACjD,yDAAqE;AACrE,6EAA6C;AAC7C,8CAA2C;AAE3C,qCAA2C;AAE3C,MAAa,iBAAkB,SAAQ,uBAAU;IAC/C,MAAM,CAAU,EAAE,GAAG,SAAS,CAAC;IAEb,IAAI,CAAa;IAEnC;QACE,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAE5B,IAAI,CAAC,IAAI,GAAG,IAAI,mBAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAEiB,qBAAqB,GAAG,IAAI,CAAC;IAE7B,mBAAmB,GAAG;QACtC,mDAAmD;KACpD,CAAC;IAEgB,uBAAuB,GAAG,IAAI,CAAC;IAC/B,oBAAoB,GACpC,mFAAmF,CAAC;IACpE,gBAAgB,GAAG,SAAS,CAAC;IAC7B,aAAa,GAC7B,qGAAqG,CAAC;IAOlG,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,MAAM,SAAS,GAAG,IAAA,iBAAW,EAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,IAAA,uBAAc,EAAC,WAAW,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC7C,eAAM,CAAC,IAAI,CAAC,IAAI,CACd,GAAG,SAAS,CAAC,MAAM,oDAAoD,CACxE,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAkB;YAC5B,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC5D,MAAM,UAAU,GACd,SAAS,CAAC,QAAQ,KAAK,YAAY;YACjC,CAAC,CAAC,wBAAwB;YAC1B,CAAC,CAAC,WAAW,SAAS,CAAC,QAAQ,SAAS,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAA,kBAAY,EAC7B,UAAU,EACV,OAAO,EACP,SAAS,CAAC,SAAS,EACnB,gBAAgB,EAChB,mBAAmB,CACpB,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAClD,UAAU,EACV,8BAAqB,CACtB,CAAC;QAEF,IAAI,CAAC,YAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1B,eAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,EACrC,sDAAsD,CACvD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CACrD,gBAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAC7B,EAAE,CAAC;YACF,MAAM,OAAO,GAAG,IAAA,kBAAY,EAAC,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACtE,wCAAwC;YACxC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,8BAAqB,CAAC,CAAC;YACzE,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC;gBACzB,eAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAC5B,mDAAmD,CACpD,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC/B,eAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EACrD,mDAAmD,CACpD,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,wBAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEzE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,UAAU,CAAC,IAAI;gBACxB,gBAAgB,EAAE,YAAY;gBAC9B,SAAS,EAAE,eAAe;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,GAAG,MAAM;YACT,QAAQ,EAAE,yCAAyC,WAAW,EAAE;SACjE,CAAC;IACJ,CAAC;;AApHH,8CAqHC;AAxFO;IALL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,iBAAiB,CAAC,EAAE,EAAE;QAC/C,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,EAAqB,EAAE,EAAE,CACvD,GAAG,WAAW,IAAI,WAAW,EAAE;KAClC,CAAC;oDAwFD","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { detectPlatform } from '../../../util/common';\nimport { parseGitUrl } from '../../../util/git/url';\nimport { GithubHttp } from '../../../util/http/github';\nimport { fromBase64 } from '../../../util/string';\nimport { joinUrlParts } from '../../../util/url';\nimport { GithubContentResponse } from '../../platform/github/schema';\nimport semver from '../../versioning/semver';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport { BitriseStepFile } from './schema';\n\nexport class BitriseDatasource extends Datasource {\n static readonly id = 'bitrise';\n\n override readonly http: GithubHttp;\n\n constructor() {\n super(BitriseDatasource.id);\n\n this.http = new GithubHttp(this.id);\n }\n\n override readonly customRegistrySupport = true;\n\n override readonly defaultRegistryUrls = [\n 'https://github.com/bitrise-io/bitrise-steplib.git',\n ];\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `published_at` field in the results.';\n override readonly sourceUrlSupport = 'release';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `source_code_url` field of the release object in the results.';\n\n @cache({\n namespace: `datasource-${BitriseDatasource.id}`,\n key: ({ packageName, registryUrl }: GetReleasesConfig) =>\n `${registryUrl}/${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 const parsedUrl = parseGitUrl(registryUrl);\n if (detectPlatform(registryUrl) !== 'github') {\n logger.once.warn(\n `${parsedUrl.source} is not a supported Git hoster for this datasource`,\n );\n return null;\n }\n\n const result: ReleaseResult = {\n releases: [],\n };\n\n const massagedPackageName = encodeURIComponent(packageName);\n const baseApiURL =\n parsedUrl.resource === 'github.com'\n ? 'https://api.github.com'\n : `https://${parsedUrl.resource}/api/v3`;\n const packageUrl = joinUrlParts(\n baseApiURL,\n 'repos',\n parsedUrl.full_name,\n 'contents/steps',\n massagedPackageName,\n );\n\n const { body: packageRaw } = await this.http.getJson(\n packageUrl,\n GithubContentResponse,\n );\n\n if (!is.array(packageRaw)) {\n logger.warn(\n { data: packageRaw, url: packageUrl },\n 'Got unexpected response for Bitrise package location',\n );\n return null;\n }\n\n for (const versionDir of packageRaw.filter((element) =>\n semver.isValid(element.name),\n )) {\n const stepUrl = joinUrlParts(packageUrl, versionDir.name, 'step.yml');\n // TODO use getRawFile when ready #30155\n const { body } = await this.http.getJson(stepUrl, GithubContentResponse);\n if (!('content' in body)) {\n logger.warn(\n { data: body, url: stepUrl },\n 'Got unexpected response for Bitrise step location',\n );\n return null;\n }\n if (body.encoding !== 'base64') {\n logger.warn(\n { encoding: body.encoding, data: body, url: stepUrl },\n `Got unexpected encoding for Bitrise step location`,\n );\n return null;\n }\n\n const content = fromBase64(body.content);\n const { published_at, source_code_url } = BitriseStepFile.parse(content);\n\n result.releases.push({\n version: versionDir.name,\n releaseTimestamp: published_at,\n sourceUrl: source_code_url,\n });\n }\n\n // if we have no releases return null\n if (!result.releases.length) {\n return null;\n }\n\n return {\n ...result,\n homepage: `https://bitrise.io/integrations/steps/${packageName}`,\n };\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/bitrise/index.ts"],"names":[],"mappings":";;;;AAAA,kEAAkC;AAClC,4CAAyC;AACzC,qEAA8D;AAC9D,iDAAsD;AACtD,+CAAoD;AACpD,sDAAuD;AACvD,iDAAkD;AAClD,2CAAiD;AACjD,yDAAqE;AACrE,6EAA6C;AAC7C,8CAA2C;AAE3C,qCAA2C;AAE3C,MAAa,iBAAkB,SAAQ,uBAAU;IAC/C,MAAM,CAAU,EAAE,GAAG,SAAS,CAAC;IAEb,IAAI,CAAa;IAEnC;QACE,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAE5B,IAAI,CAAC,IAAI,GAAG,IAAI,mBAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAEiB,qBAAqB,GAAG,IAAI,CAAC;IAE7B,mBAAmB,GAAG;QACtC,mDAAmD;KACpD,CAAC;IAEgB,uBAAuB,GAAG,IAAI,CAAC;IAC/B,oBAAoB,GACpC,mFAAmF,CAAC;IACpE,gBAAgB,GAAG,SAAS,CAAC;IAC7B,aAAa,GAC7B,qGAAqG,CAAC;IAOlG,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,MAAM,SAAS,GAAG,IAAA,iBAAW,EAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,IAAA,uBAAc,EAAC,WAAW,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC7C,eAAM,CAAC,IAAI,CAAC,IAAI,CACd,GAAG,SAAS,CAAC,MAAM,oDAAoD,CACxE,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAkB;YAC5B,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC5D,MAAM,UAAU,GACd,SAAS,CAAC,QAAQ,KAAK,YAAY;YACjC,CAAC,CAAC,wBAAwB;YAC1B,CAAC,CAAC,WAAW,SAAS,CAAC,QAAQ,SAAS,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAA,kBAAY,EAC7B,UAAU,EACV,OAAO,EACP,SAAS,CAAC,SAAS,EACnB,gBAAgB,EAChB,mBAAmB,CACpB,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAClD,UAAU,EACV,8BAAqB,CACtB,CAAC;QAEF,IAAI,CAAC,YAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1B,eAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,EACrC,sDAAsD,CACvD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CACrD,gBAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAC7B,EAAE,CAAC;YACF,MAAM,OAAO,GAAG,IAAA,kBAAY,EAAC,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACtE,wCAAwC;YACxC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,8BAAqB,CAAC,CAAC;YACzE,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC;gBACzB,eAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAC5B,mDAAmD,CACpD,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC/B,eAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EACrD,mDAAmD,CACpD,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,wBAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEzE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,UAAU,CAAC,IAAI;gBACxB,gBAAgB,EAAE,YAAY;gBAC9B,SAAS,EAAE,eAAe;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,GAAG,MAAM;YACT,QAAQ,EAAE,yCAAyC,WAAW,EAAE;SACjE,CAAC;IACJ,CAAC;;AApHH,8CAqHC;AAxFO;IALL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,iBAAiB,CAAC,EAAE,EAAE;QAC/C,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,EAAqB,EAAE,EAAE,CACvD,GAAG,WAAW,IAAI,WAAW,EAAE;KAClC,CAAC;oDAwFD","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { detectPlatform } from '../../../util/common';\nimport { parseGitUrl } from '../../../util/git/url';\nimport { GithubHttp } from '../../../util/http/github';\nimport { fromBase64 } from '../../../util/string';\nimport { joinUrlParts } from '../../../util/url';\nimport { GithubContentResponse } from '../../platform/github/schema';\nimport semver from '../../versioning/semver';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport { BitriseStepFile } from './schema';\n\nexport class BitriseDatasource extends Datasource {\n static readonly id = 'bitrise';\n\n override readonly http: GithubHttp;\n\n constructor() {\n super(BitriseDatasource.id);\n\n this.http = new GithubHttp(this.id);\n }\n\n override readonly customRegistrySupport = true;\n\n override readonly defaultRegistryUrls = [\n 'https://github.com/bitrise-io/bitrise-steplib.git',\n ];\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `published_at` field in the results.';\n override readonly sourceUrlSupport = 'release';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `source_code_url` field of the release object in the results.';\n\n @cache({\n namespace: `datasource-${BitriseDatasource.id}`,\n key: ({ packageName, registryUrl }: GetReleasesConfig) =>\n `${registryUrl}/${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 const parsedUrl = parseGitUrl(registryUrl);\n if (detectPlatform(registryUrl) !== 'github') {\n logger.once.warn(\n `${parsedUrl.source} is not a supported Git hoster for this datasource`,\n );\n return null;\n }\n\n const result: ReleaseResult = {\n releases: [],\n };\n\n const massagedPackageName = encodeURIComponent(packageName);\n const baseApiURL =\n parsedUrl.resource === 'github.com'\n ? 'https://api.github.com'\n : `https://${parsedUrl.resource}/api/v3`;\n const packageUrl = joinUrlParts(\n baseApiURL,\n 'repos',\n parsedUrl.full_name,\n 'contents/steps',\n massagedPackageName,\n );\n\n const { body: packageRaw } = await this.http.getJson(\n packageUrl,\n GithubContentResponse,\n );\n\n if (!is.array(packageRaw)) {\n logger.warn(\n { data: packageRaw, url: packageUrl },\n 'Got unexpected response for Bitrise package location',\n );\n return null;\n }\n\n for (const versionDir of packageRaw.filter((element) =>\n semver.isValid(element.name),\n )) {\n const stepUrl = joinUrlParts(packageUrl, versionDir.name, 'step.yml');\n // TODO use getRawFile when ready #30155\n const { body } = await this.http.getJson(stepUrl, GithubContentResponse);\n if (!('content' in body)) {\n logger.warn(\n { data: body, url: stepUrl },\n 'Got unexpected response for Bitrise step location',\n );\n return null;\n }\n if (body.encoding !== 'base64') {\n logger.warn(\n { encoding: body.encoding, data: body, url: stepUrl },\n `Got unexpected encoding for Bitrise step location`,\n );\n return null;\n }\n\n const content = fromBase64(body.content);\n const { published_at, source_code_url } = BitriseStepFile.parse(content);\n\n result.releases.push({\n version: versionDir.name,\n releaseTimestamp: published_at,\n sourceUrl: source_code_url,\n });\n }\n\n // if we have no releases return null\n if (!result.releases.length) {\n return null;\n }\n\n return {\n ...result,\n homepage: `https://bitrise.io/integrations/steps/${packageName}`,\n };\n }\n}\n"]}
@@ -34,12 +34,12 @@ export declare const CdnjsAPIVersionResponseSchema: z.ZodObject<{
34
34
  versions: z.ZodArray<z.ZodEffects<z.ZodString, Release, string>, "many">;
35
35
  }, "strip", z.ZodTypeAny, {
36
36
  versions: Release[];
37
- repository?: string | undefined;
38
37
  homepage?: string | undefined;
38
+ repository?: string | undefined;
39
39
  }, {
40
40
  versions: string[];
41
- repository?: unknown;
42
41
  homepage?: unknown;
42
+ repository?: unknown;
43
43
  }>;
44
44
  export declare const CdnjsAPISriResponseSchema: z.ZodObject<{
45
45
  sri: z.ZodRecord<z.ZodString, z.ZodString>;
@@ -4,11 +4,14 @@ exports.CondaDatasource = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const logger_1 = require("../../../logger");
6
6
  const external_host_error_1 = require("../../../types/errors/external-host-error");
7
+ const array_1 = require("../../../util/array");
7
8
  const decorator_1 = require("../../../util/cache/package/decorator");
8
9
  const http_1 = require("../../../util/http");
10
+ const timestamp_1 = require("../../../util/timestamp");
9
11
  const url_1 = require("../../../util/url");
10
12
  const datasource_1 = require("../datasource");
11
13
  const common_1 = require("./common");
14
+ const prefixDev = tslib_1.__importStar(require("./prefix-dev"));
12
15
  class CondaDatasource extends datasource_1.Datasource {
13
16
  static id = common_1.datasource;
14
17
  constructor() {
@@ -25,6 +28,15 @@ class CondaDatasource extends datasource_1.Datasource {
25
28
  if (!registryUrl) {
26
29
  return null;
27
30
  }
31
+ // fast.prefix.dev is a alias, deprecated, but still running.
32
+ // We expect registryUrl to be `https://prefix.dev/${channel}` here.
33
+ if (registryUrl.startsWith('https://prefix.dev/') ||
34
+ registryUrl.startsWith('https://fast.prefix.dev/')) {
35
+ // Since the registryUrl contains at least 3 `/` ,
36
+ // the channel varitable won't be undefined in any case.
37
+ const channel = (0, url_1.ensureTrailingSlash)(registryUrl).split('/').at(-2);
38
+ return prefixDev.getReleases(this.http, channel, packageName);
39
+ }
28
40
  const url = (0, url_1.joinUrlParts)(registryUrl, packageName);
29
41
  const result = {
30
42
  releases: [],
@@ -34,15 +46,20 @@ class CondaDatasource extends datasource_1.Datasource {
34
46
  response = await this.http.getJsonUnchecked(url);
35
47
  result.homepage = response.body.html_url;
36
48
  result.sourceUrl = response.body.dev_url;
49
+ const releaseDate = {};
50
+ // we assume all packages are roughly released on the same time
51
+ for (const file of (0, array_1.coerceArray)(response.body.files)) {
52
+ releaseDate[file.version] ??= timestamp_1.Timestamp.parse(file.upload_time);
53
+ }
37
54
  response.body.versions.forEach((version) => {
38
55
  const thisRelease = {
39
56
  version,
57
+ releaseTimestamp: releaseDate[version],
40
58
  };
41
59
  result.releases.push(thisRelease);
42
60
  });
43
61
  }
44
62
  catch (err) {
45
- // istanbul ignore else: not testable with nock
46
63
  if (err instanceof http_1.HttpError) {
47
64
  if (err.response?.statusCode !== 404) {
48
65
  throw new external_host_error_1.ExternalHostError(err);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/conda/index.ts"],"names":[],"mappings":";;;;AAAA,4CAAyC;AACzC,mFAA8E;AAC9E,qEAA8D;AAC9D,6CAA+C;AAC/C,2CAAiD;AACjD,8CAA2C;AAE3C,qCAA0D;AAG1D,MAAa,eAAgB,SAAQ,uBAAU;IAC7C,MAAM,CAAU,EAAE,GAAG,mBAAU,CAAC;IAEhC;QACE,KAAK,CAAC,mBAAU,CAAC,CAAC;IACpB,CAAC;IAEiB,qBAAqB,GAAG,IAAI,CAAC;IAE7B,gBAAgB,GAAG,MAAM,CAAC;IAE1B,mBAAmB,GAAG,CAAC,2BAAkB,CAAC,CAAC;IAE3C,OAAO,GAAG,IAAI,CAAC;IAEf,gBAAgB,GAAG,SAAS,CAAC;IAC7B,aAAa,GAC7B,uEAAuE,CAAC;IAQpE,AAAN,KAAK,CAAC,WAAW,CAAC,EAChB,WAAW,EACX,WAAW,GACO;QAClB,eAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,wBAAwB,CAAC,CAAC;QAErE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,IAAA,kBAAY,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAkB;YAC5B,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,QAAgC,CAAC;QAErC,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAEjD,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;YACzC,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;YAEzC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,EAAE;gBACjD,MAAM,WAAW,GAAY;oBAC3B,OAAO;iBACR,CAAC;gBACF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,+CAA+C;YAC/C,IAAI,GAAG,YAAY,gBAAS,EAAE,CAAC;gBAC7B,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,KAAK,GAAG,EAAE,CAAC;oBACrC,MAAM,IAAI,uCAAiB,CAAC,GAAG,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;;AAlEH,0CAmEC;AA1CO;IANL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,mBAAU,EAAE;QACrC,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,EAAqB,EAAE,EAAE;QACvD,uBAAuB;QACvB,GAAG,WAAW,IAAI,WAAW,EAAE;KAClC,CAAC;kDA0CD","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 { joinUrlParts } from '../../../util/url';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport { datasource, defaultRegistryUrl } from './common';\nimport type { CondaPackage } from './types';\n\nexport class CondaDatasource extends Datasource {\n static readonly id = datasource;\n\n constructor() {\n super(datasource);\n }\n\n override readonly customRegistrySupport = true;\n\n override readonly registryStrategy = 'hunt';\n\n override readonly defaultRegistryUrls = [defaultRegistryUrl];\n\n override readonly caching = true;\n\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `dev_url` field in the results.';\n\n @cache({\n namespace: `datasource-${datasource}`,\n key: ({ registryUrl, packageName }: GetReleasesConfig) =>\n // TODO: types (#22198)\n `${registryUrl}:${packageName}`,\n })\n async getReleases({\n registryUrl,\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n logger.trace({ registryUrl, packageName }, 'fetching conda package');\n\n if (!registryUrl) {\n return null;\n }\n\n const url = joinUrlParts(registryUrl, packageName);\n\n const result: ReleaseResult = {\n releases: [],\n };\n\n let response: { body: CondaPackage };\n\n try {\n response = await this.http.getJsonUnchecked(url);\n\n result.homepage = response.body.html_url;\n result.sourceUrl = response.body.dev_url;\n\n response.body.versions.forEach((version: string) => {\n const thisRelease: Release = {\n version,\n };\n result.releases.push(thisRelease);\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/conda/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport { coerceArray } from '../../../util/array';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { HttpError } from '../../../util/http';\nimport { Timestamp } from '../../../util/timestamp';\nimport { ensureTrailingSlash, joinUrlParts } from '../../../util/url';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport { datasource, defaultRegistryUrl } from './common';\nimport * as prefixDev from './prefix-dev';\nimport type { CondaPackage } from './types';\n\nexport class CondaDatasource extends Datasource {\n static readonly id = datasource;\n\n constructor() {\n super(datasource);\n }\n\n override readonly customRegistrySupport = true;\n\n override readonly registryStrategy = 'hunt';\n\n override readonly defaultRegistryUrls = [defaultRegistryUrl];\n\n override readonly caching = true;\n\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `dev_url` field in the results.';\n\n @cache({\n namespace: `datasource-${datasource}`,\n key: ({ registryUrl, packageName }: GetReleasesConfig) =>\n // TODO: types (#22198)\n `${registryUrl}:${packageName}`,\n })\n async getReleases({\n registryUrl,\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n logger.trace({ registryUrl, packageName }, 'fetching conda package');\n\n if (!registryUrl) {\n return null;\n }\n\n // fast.prefix.dev is a alias, deprecated, but still running.\n // We expect registryUrl to be `https://prefix.dev/${channel}` here.\n if (\n registryUrl.startsWith('https://prefix.dev/') ||\n registryUrl.startsWith('https://fast.prefix.dev/')\n ) {\n // Since the registryUrl contains at least 3 `/` ,\n // the channel varitable won't be undefined in any case.\n const channel = ensureTrailingSlash(registryUrl).split('/').at(-2)!;\n\n return prefixDev.getReleases(this.http, channel, packageName);\n }\n\n const url = joinUrlParts(registryUrl, packageName);\n\n const result: ReleaseResult = {\n releases: [],\n };\n\n let response: { body: CondaPackage };\n\n try {\n response = await this.http.getJsonUnchecked(url);\n\n result.homepage = response.body.html_url;\n result.sourceUrl = response.body.dev_url;\n\n const releaseDate: Record<string, Timestamp> = {};\n // we assume all packages are roughly released on the same time\n for (const file of coerceArray(response.body.files)) {\n releaseDate[file.version] ??= Timestamp.parse(file.upload_time);\n }\n\n response.body.versions.forEach((version: string) => {\n const thisRelease: Release = {\n version,\n releaseTimestamp: releaseDate[version],\n };\n result.releases.push(thisRelease);\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"]}
@@ -0,0 +1,3 @@
1
+ import type { Http } from '../../../util/http';
2
+ import type { ReleaseResult } from '../types';
3
+ export declare function getReleases(http: Http, channel: string, packageName: string): Promise<ReleaseResult | null>;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getReleases = getReleases;
4
+ const logger_1 = require("../../../logger");
5
+ const array_1 = require("../../../util/array");
6
+ const timestamp_1 = require("../../../util/timestamp");
7
+ const prefix_dev_1 = require("./schema/prefix-dev");
8
+ const MAX_PREFIX_DEV_GRAPHQL_PAGE = 100;
9
+ const query = `
10
+ query search($channel: String!, $package: String!, $page: Int = 0) {
11
+ package(channelName: $channel, name: $package) {
12
+ variants(limit: 500, page: $page) {
13
+ pages
14
+ page {
15
+ createdAt
16
+ version
17
+ yankedReason
18
+ urls {
19
+ url
20
+ kind
21
+ }
22
+ }
23
+ }
24
+ }
25
+ }
26
+ `;
27
+ async function getReleases(http, channel, packageName) {
28
+ logger_1.logger.debug({ channel, packageName }, 'lookup package from prefix.dev graphql API');
29
+ const files = await getPagedResponse(http, query, {
30
+ channel,
31
+ package: packageName,
32
+ });
33
+ if (!files.length) {
34
+ return null;
35
+ }
36
+ let homepage = undefined;
37
+ let sourceUrl = undefined;
38
+ const releases = {};
39
+ for (const file of files) {
40
+ const version = file.version;
41
+ homepage ??= file.urls.HOME;
42
+ sourceUrl ??= file.urls.DEV;
43
+ releases[version] ??= { version };
44
+ // we assume all packages are roughly released on the same time
45
+ releases[version].releaseTimestamp =
46
+ releases[version].releaseTimestamp ??
47
+ timestamp_1.MaybeTimestamp.parse(file.createdAt);
48
+ // if the version has not been marked as deprecated, check other releases packages of the same version
49
+ releases[version].isDeprecated ??= (0, array_1.isNotNullOrUndefined)(file.yankedReason);
50
+ }
51
+ return {
52
+ homepage,
53
+ sourceUrl,
54
+ releases: Object.values(releases),
55
+ };
56
+ }
57
+ async function getPagedResponse(http, query, data) {
58
+ const result = [];
59
+ for (let page = 0; page <= MAX_PREFIX_DEV_GRAPHQL_PAGE; page++) {
60
+ const res = await http.postJson('https://prefix.dev/api/graphql', {
61
+ body: {
62
+ operationName: 'search',
63
+ query,
64
+ variables: {
65
+ ...data,
66
+ page,
67
+ },
68
+ },
69
+ }, prefix_dev_1.PagedResponseSchema);
70
+ const currentPage = res.body.data.package?.variants;
71
+ if (!currentPage) {
72
+ break;
73
+ }
74
+ result.push(...currentPage.page);
75
+ if (page >= currentPage.pages - 1) {
76
+ break;
77
+ }
78
+ }
79
+ return result;
80
+ }
81
+ //# sourceMappingURL=prefix-dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefix-dev.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/conda/prefix-dev.ts"],"names":[],"mappings":";;AA4BA,kCA6CC;AAzED,4CAAyC;AACzC,+CAA2D;AAE3D,uDAAyD;AAEzD,oDAAqE;AAErE,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAExC,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;CAiBb,CAAC;AAEK,KAAK,UAAU,WAAW,CAC/B,IAAU,EACV,OAAe,EACf,WAAmB;IAEnB,eAAM,CAAC,KAAK,CACV,EAAE,OAAO,EAAE,WAAW,EAAE,EACxB,4CAA4C,CAC7C,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE;QAChD,OAAO;QACP,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,GAAuB,SAAS,CAAC;IAC7C,IAAI,SAAS,GAAuB,SAAS,CAAC;IAE9C,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE7B,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAE5B,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;QAElC,+DAA+D;QAC/D,QAAQ,CAAC,OAAO,CAAC,CAAC,gBAAgB;YAChC,QAAQ,CAAC,OAAO,CAAC,CAAC,gBAAgB;gBAClC,0BAAc,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvC,sGAAsG;QACtG,QAAQ,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,IAAA,4BAAoB,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO;QACL,QAAQ;QACR,SAAS;QACT,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,IAAU,EACV,KAAa,EACb,IAAS;IAET,MAAM,MAAM,GAAW,EAAE,CAAC;IAE1B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,2BAA2B,EAAE,IAAI,EAAE,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC7B,gCAAgC,EAChC;YACE,IAAI,EAAE;gBACJ,aAAa,EAAE,QAAQ;gBACvB,KAAK;gBACL,SAAS,EAAE;oBACT,GAAG,IAAI;oBACP,IAAI;iBACL;aACF;SACF,EACD,gCAAmB,CACpB,CAAC;QAEF,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM;QACR,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,IAAI,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import { logger } from '../../../logger';\nimport { isNotNullOrUndefined } from '../../../util/array';\nimport type { Http } from '../../../util/http';\nimport { MaybeTimestamp } from '../../../util/timestamp';\nimport type { Release, ReleaseResult } from '../types';\nimport { type File, PagedResponseSchema } from './schema/prefix-dev';\n\nconst MAX_PREFIX_DEV_GRAPHQL_PAGE = 100;\n\nconst query = `\nquery search($channel: String!, $package: String!, $page: Int = 0) {\n package(channelName: $channel, name: $package) {\n variants(limit: 500, page: $page) {\n pages\n page {\n createdAt\n version\n yankedReason\n urls {\n url\n kind\n }\n }\n }\n }\n}\n`;\n\nexport async function getReleases(\n http: Http,\n channel: string,\n packageName: string,\n): Promise<ReleaseResult | null> {\n logger.debug(\n { channel, packageName },\n 'lookup package from prefix.dev graphql API',\n );\n\n const files = await getPagedResponse(http, query, {\n channel,\n package: packageName,\n });\n\n if (!files.length) {\n return null;\n }\n\n let homepage: string | undefined = undefined;\n let sourceUrl: string | undefined = undefined;\n\n const releases: Record<string, Release> = {};\n for (const file of files) {\n const version = file.version;\n\n homepage ??= file.urls.HOME;\n sourceUrl ??= file.urls.DEV;\n\n releases[version] ??= { version };\n\n // we assume all packages are roughly released on the same time\n releases[version].releaseTimestamp =\n releases[version].releaseTimestamp ??\n MaybeTimestamp.parse(file.createdAt);\n\n // if the version has not been marked as deprecated, check other releases packages of the same version\n releases[version].isDeprecated ??= isNotNullOrUndefined(file.yankedReason);\n }\n\n return {\n homepage,\n sourceUrl,\n releases: Object.values(releases),\n };\n}\n\nasync function getPagedResponse(\n http: Http,\n query: string,\n data: any,\n): Promise<File[]> {\n const result: File[] = [];\n\n for (let page = 0; page <= MAX_PREFIX_DEV_GRAPHQL_PAGE; page++) {\n const res = await http.postJson(\n 'https://prefix.dev/api/graphql',\n {\n body: {\n operationName: 'search',\n query,\n variables: {\n ...data,\n page,\n },\n },\n },\n PagedResponseSchema,\n );\n\n const currentPage = res.body.data.package?.variants;\n if (!currentPage) {\n break;\n }\n\n result.push(...currentPage.page);\n\n if (page >= currentPage.pages - 1) {\n break;\n }\n }\n\n return result;\n}\n"]}