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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (683) hide show
  1. package/dist/config/decrypt/legacy.js +0 -1
  2. package/dist/config/decrypt/legacy.js.map +1 -1
  3. package/dist/config/decrypt.d.ts +3 -1
  4. package/dist/config/decrypt.js +56 -13
  5. package/dist/config/decrypt.js.map +1 -1
  6. package/dist/config/migrate-validate.js +3 -2
  7. package/dist/config/migrate-validate.js.map +1 -1
  8. package/dist/config/migration.js +2 -1
  9. package/dist/config/migration.js.map +1 -1
  10. package/dist/config/migrations/custom/rebase-stale-prs-migration.js +1 -1
  11. package/dist/config/migrations/custom/rebase-stale-prs-migration.js.map +1 -1
  12. package/dist/config/options/index.js +4 -3
  13. package/dist/config/options/index.js.map +1 -1
  14. package/dist/config/parse.js +2 -2
  15. package/dist/config/parse.js.map +1 -1
  16. package/dist/config/presets/gitea/index.js +0 -1
  17. package/dist/config/presets/gitea/index.js.map +1 -1
  18. package/dist/config/presets/github/index.js +0 -1
  19. package/dist/config/presets/github/index.js.map +1 -1
  20. package/dist/config/presets/gitlab/index.js +1 -1
  21. package/dist/config/presets/gitlab/index.js.map +1 -1
  22. package/dist/config/presets/http/index.js +1 -2
  23. package/dist/config/presets/http/index.js.map +1 -1
  24. package/dist/config/presets/index.js +0 -7
  25. package/dist/config/presets/index.js.map +1 -1
  26. package/dist/config/presets/internal/custom-managers.js +3 -4
  27. package/dist/config/presets/internal/custom-managers.js.map +1 -1
  28. package/dist/config/presets/internal/group.js +30 -1
  29. package/dist/config/presets/internal/group.js.map +1 -1
  30. package/dist/config/presets/internal/index.js +1 -3
  31. package/dist/config/presets/internal/index.js.map +1 -1
  32. package/dist/config/presets/internal/workarounds.js +1 -0
  33. package/dist/config/presets/internal/workarounds.js.map +1 -1
  34. package/dist/config/presets/parse.js +2 -1
  35. package/dist/config/presets/parse.js.map +1 -1
  36. package/dist/config/schema.d.ts +2 -2
  37. package/dist/config/types.d.ts +4 -1
  38. package/dist/config/types.js.map +1 -1
  39. package/dist/config/validation.js +3 -5
  40. package/dist/config/validation.js.map +1 -1
  41. package/dist/config-validator.js +0 -1
  42. package/dist/config-validator.js.map +1 -1
  43. package/dist/constants/category.js +0 -1
  44. package/dist/constants/category.js.map +1 -1
  45. package/dist/data/monorepo.json +5 -1
  46. package/dist/data/source-urls.json +1 -0
  47. package/dist/instrumentation/index.js +17 -13
  48. package/dist/instrumentation/index.js.map +1 -1
  49. package/dist/instrumentation/utils.js +1 -1
  50. package/dist/instrumentation/utils.js.map +1 -1
  51. package/dist/logger/cmd-serializer.js +0 -1
  52. package/dist/logger/cmd-serializer.js.map +1 -1
  53. package/dist/logger/config-serializer.js +0 -1
  54. package/dist/logger/config-serializer.js.map +1 -1
  55. package/dist/logger/index.js +1 -4
  56. package/dist/logger/index.js.map +1 -1
  57. package/dist/logger/once.js +4 -2
  58. package/dist/logger/once.js.map +1 -1
  59. package/dist/logger/pretty-stdout.js +0 -1
  60. package/dist/logger/pretty-stdout.js.map +1 -1
  61. package/dist/logger/renovate-logger.js +1 -1
  62. package/dist/logger/renovate-logger.js.map +1 -1
  63. package/dist/logger/utils.js +6 -11
  64. package/dist/logger/utils.js.map +1 -1
  65. package/dist/modules/datasource/api.js +2 -0
  66. package/dist/modules/datasource/api.js.map +1 -1
  67. package/dist/modules/datasource/artifactory/index.js +1 -2
  68. package/dist/modules/datasource/artifactory/index.js.map +1 -1
  69. package/dist/modules/datasource/aws-eks-addon/index.d.ts +11 -0
  70. package/dist/modules/datasource/aws-eks-addon/index.js +75 -0
  71. package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -0
  72. package/dist/modules/datasource/aws-eks-addon/schema.d.ts +40 -0
  73. package/dist/modules/datasource/aws-eks-addon/schema.js +31 -0
  74. package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -0
  75. package/dist/modules/datasource/aws-machine-image/index.js +6 -5
  76. package/dist/modules/datasource/aws-machine-image/index.js.map +1 -1
  77. package/dist/modules/datasource/azure-pipelines-tasks/index.js +11 -1
  78. package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
  79. package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +16 -0
  80. package/dist/modules/datasource/azure-pipelines-tasks/schema.js +2 -0
  81. package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
  82. package/dist/modules/datasource/bazel/index.js +0 -1
  83. package/dist/modules/datasource/bazel/index.js.map +1 -1
  84. package/dist/modules/datasource/bitrise/index.js +1 -1
  85. package/dist/modules/datasource/bitrise/index.js.map +1 -1
  86. package/dist/modules/datasource/cdnjs/schema.d.ts +2 -2
  87. package/dist/modules/datasource/conda/index.js +18 -1
  88. package/dist/modules/datasource/conda/index.js.map +1 -1
  89. package/dist/modules/datasource/conda/prefix-dev.d.ts +3 -0
  90. package/dist/modules/datasource/conda/prefix-dev.js +83 -0
  91. package/dist/modules/datasource/conda/prefix-dev.js.map +1 -0
  92. package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +189 -0
  93. package/dist/modules/datasource/conda/schema/prefix-dev.js +31 -0
  94. package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -0
  95. package/dist/modules/datasource/conda/types.d.ts +1 -20
  96. package/dist/modules/datasource/conda/types.js.map +1 -1
  97. package/dist/modules/datasource/cpan/index.js +1 -1
  98. package/dist/modules/datasource/cpan/index.js.map +1 -1
  99. package/dist/modules/datasource/crate/index.js +3 -3
  100. package/dist/modules/datasource/crate/index.js.map +1 -1
  101. package/dist/modules/datasource/custom/formats/html.js +1 -1
  102. package/dist/modules/datasource/custom/formats/html.js.map +1 -1
  103. package/dist/modules/datasource/custom/formats/yaml.js +1 -1
  104. package/dist/modules/datasource/custom/formats/yaml.js.map +1 -1
  105. package/dist/modules/datasource/custom/index.js +4 -2
  106. package/dist/modules/datasource/custom/index.js.map +1 -1
  107. package/dist/modules/datasource/custom/schema.d.ts +22 -22
  108. package/dist/modules/datasource/custom/utils.js +1 -0
  109. package/dist/modules/datasource/custom/utils.js.map +1 -1
  110. package/dist/modules/datasource/dart/index.js +1 -1
  111. package/dist/modules/datasource/dart/index.js.map +1 -1
  112. package/dist/modules/datasource/dart-version/index.js +1 -1
  113. package/dist/modules/datasource/dart-version/index.js.map +1 -1
  114. package/dist/modules/datasource/datasource.js +0 -1
  115. package/dist/modules/datasource/datasource.js.map +1 -1
  116. package/dist/modules/datasource/deb/index.js +2 -2
  117. package/dist/modules/datasource/deb/index.js.map +1 -1
  118. package/dist/modules/datasource/deno/index.js +1 -1
  119. package/dist/modules/datasource/deno/index.js.map +1 -1
  120. package/dist/modules/datasource/deno/schema.d.ts +1 -1
  121. package/dist/modules/datasource/devbox/index.js +0 -1
  122. package/dist/modules/datasource/devbox/index.js.map +1 -1
  123. package/dist/modules/datasource/docker/common.js +5 -2
  124. package/dist/modules/datasource/docker/common.js.map +1 -1
  125. package/dist/modules/datasource/docker/index.js +10 -8
  126. package/dist/modules/datasource/docker/index.js.map +1 -1
  127. package/dist/modules/datasource/docker/schema.d.ts +5 -5
  128. package/dist/modules/datasource/docker/schema.js +2 -1
  129. package/dist/modules/datasource/docker/schema.js.map +1 -1
  130. package/dist/modules/datasource/flutter-version/index.js +1 -1
  131. package/dist/modules/datasource/flutter-version/index.js.map +1 -1
  132. package/dist/modules/datasource/galaxy/schema.d.ts +1 -1
  133. package/dist/modules/datasource/galaxy-collection/schema.d.ts +8 -8
  134. package/dist/modules/datasource/git-refs/index.js +1 -1
  135. package/dist/modules/datasource/git-refs/index.js.map +1 -1
  136. package/dist/modules/datasource/gitea-releases/schema.d.ts +2 -2
  137. package/dist/modules/datasource/gitea-tags/schema.d.ts +4 -4
  138. package/dist/modules/datasource/github-release-attachments/index.js +2 -2
  139. package/dist/modules/datasource/github-release-attachments/index.js.map +1 -1
  140. package/dist/modules/datasource/gitlab-packages/index.js +1 -1
  141. package/dist/modules/datasource/gitlab-packages/index.js.map +1 -1
  142. package/dist/modules/datasource/gitlab-releases/index.js +1 -3
  143. package/dist/modules/datasource/gitlab-releases/index.js.map +1 -1
  144. package/dist/modules/datasource/go/base.js +1 -1
  145. package/dist/modules/datasource/go/base.js.map +1 -1
  146. package/dist/modules/datasource/go/index.js +1 -1
  147. package/dist/modules/datasource/go/index.js.map +1 -1
  148. package/dist/modules/datasource/go/releases-direct.js +7 -4
  149. package/dist/modules/datasource/go/releases-direct.js.map +1 -1
  150. package/dist/modules/datasource/go/releases-goproxy.js +1 -1
  151. package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
  152. package/dist/modules/datasource/golang-version/index.js +2 -2
  153. package/dist/modules/datasource/golang-version/index.js.map +1 -1
  154. package/dist/modules/datasource/gradle-version/index.js +1 -1
  155. package/dist/modules/datasource/gradle-version/index.js.map +1 -1
  156. package/dist/modules/datasource/helm/index.js +1 -1
  157. package/dist/modules/datasource/helm/index.js.map +1 -1
  158. package/dist/modules/datasource/hex/index.js +1 -1
  159. package/dist/modules/datasource/hex/index.js.map +1 -1
  160. package/dist/modules/datasource/hex/schema.d.ts +11 -11
  161. package/dist/modules/datasource/hexpm-bob/index.js +1 -1
  162. package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
  163. package/dist/modules/datasource/index.js +4 -4
  164. package/dist/modules/datasource/index.js.map +1 -1
  165. package/dist/modules/datasource/java-version/index.js +0 -1
  166. package/dist/modules/datasource/java-version/index.js.map +1 -1
  167. package/dist/modules/datasource/jenkins-plugins/index.js +1 -1
  168. package/dist/modules/datasource/jenkins-plugins/index.js.map +1 -1
  169. package/dist/modules/datasource/maven/index.js +35 -27
  170. package/dist/modules/datasource/maven/index.js.map +1 -1
  171. package/dist/modules/datasource/maven/types.d.ts +3 -6
  172. package/dist/modules/datasource/maven/types.js.map +1 -1
  173. package/dist/modules/datasource/maven/util.d.ts +4 -5
  174. package/dist/modules/datasource/maven/util.js +94 -157
  175. package/dist/modules/datasource/maven/util.js.map +1 -1
  176. package/dist/modules/datasource/node-version/index.js +1 -1
  177. package/dist/modules/datasource/node-version/index.js.map +1 -1
  178. package/dist/modules/datasource/npm/index.js +1 -1
  179. package/dist/modules/datasource/npm/index.js.map +1 -1
  180. package/dist/modules/datasource/npm/npmrc.js +1 -1
  181. package/dist/modules/datasource/npm/npmrc.js.map +1 -1
  182. package/dist/modules/datasource/nuget/index.js +1 -1
  183. package/dist/modules/datasource/nuget/index.js.map +1 -1
  184. package/dist/modules/datasource/nuget/v2.js +1 -1
  185. package/dist/modules/datasource/nuget/v2.js.map +1 -1
  186. package/dist/modules/datasource/nuget/v3.js +6 -6
  187. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  188. package/dist/modules/datasource/orb/index.js +1 -1
  189. package/dist/modules/datasource/orb/index.js.map +1 -1
  190. package/dist/modules/datasource/packagist/index.js +2 -2
  191. package/dist/modules/datasource/packagist/index.js.map +1 -1
  192. package/dist/modules/datasource/packagist/schema.d.ts +25 -25
  193. package/dist/modules/datasource/pod/index.js +2 -2
  194. package/dist/modules/datasource/pod/index.js.map +1 -1
  195. package/dist/modules/datasource/postprocess-release.js +1 -1
  196. package/dist/modules/datasource/postprocess-release.js.map +1 -1
  197. package/dist/modules/datasource/pypi/index.js +1 -1
  198. package/dist/modules/datasource/pypi/index.js.map +1 -1
  199. package/dist/modules/datasource/python-version/index.js +1 -1
  200. package/dist/modules/datasource/python-version/index.js.map +1 -1
  201. package/dist/modules/datasource/repology/index.js +1 -1
  202. package/dist/modules/datasource/repology/index.js.map +1 -1
  203. package/dist/modules/datasource/ruby-version/index.js +1 -1
  204. package/dist/modules/datasource/ruby-version/index.js.map +1 -1
  205. package/dist/modules/datasource/rubygems/index.js +2 -2
  206. package/dist/modules/datasource/rubygems/index.js.map +1 -1
  207. package/dist/modules/datasource/rubygems/versions-endpoint-cache.js +2 -2
  208. package/dist/modules/datasource/rubygems/versions-endpoint-cache.js.map +1 -1
  209. package/dist/modules/datasource/sbt-package/index.js +1 -1
  210. package/dist/modules/datasource/sbt-package/index.js.map +1 -1
  211. package/dist/modules/datasource/sbt-plugin/index.js +1 -1
  212. package/dist/modules/datasource/sbt-plugin/index.js.map +1 -1
  213. package/dist/modules/datasource/schema.d.ts +4 -4
  214. package/dist/modules/datasource/terraform-module/index.js +1 -1
  215. package/dist/modules/datasource/terraform-module/index.js.map +1 -1
  216. package/dist/modules/datasource/terraform-provider/index.js +2 -3
  217. package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
  218. package/dist/modules/datasource/types.d.ts +1 -0
  219. package/dist/modules/datasource/types.js.map +1 -1
  220. package/dist/modules/datasource/unity3d/index.d.ts +4 -1
  221. package/dist/modules/datasource/unity3d/index.js +36 -42
  222. package/dist/modules/datasource/unity3d/index.js.map +1 -1
  223. package/dist/modules/datasource/unity3d/schema.d.ts +47 -0
  224. package/dist/modules/datasource/unity3d/schema.js +17 -0
  225. package/dist/modules/datasource/unity3d/schema.js.map +1 -0
  226. package/dist/modules/manager/api.js +2 -0
  227. package/dist/modules/manager/api.js.map +1 -1
  228. package/dist/modules/manager/argocd/extract.js +1 -1
  229. package/dist/modules/manager/argocd/extract.js.map +1 -1
  230. package/dist/modules/manager/argocd/schema.d.ts +10 -10
  231. package/dist/modules/manager/asdf/upgradeable-tooling.js +94 -0
  232. package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
  233. package/dist/modules/manager/azure-pipelines/schema.d.ts +32 -32
  234. package/dist/modules/manager/batect/schema.d.ts +4 -4
  235. package/dist/modules/manager/batect-wrapper/artifacts.js +1 -1
  236. package/dist/modules/manager/batect-wrapper/artifacts.js.map +1 -1
  237. package/dist/modules/manager/bazel/rules/docker.d.ts +6 -6
  238. package/dist/modules/manager/bazel/rules/git.d.ts +10 -10
  239. package/dist/modules/manager/bazel/rules/git.js +9 -2
  240. package/dist/modules/manager/bazel/rules/git.js.map +1 -1
  241. package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
  242. package/dist/modules/manager/bazel/rules/maven.d.ts +7 -7
  243. package/dist/modules/manager/bazel/rules/oci.d.ts +6 -6
  244. package/dist/modules/manager/bazel-module/parser/fragments.d.ts +40 -40
  245. package/dist/modules/manager/bazel-module/parser/maven.d.ts +40 -40
  246. package/dist/modules/manager/bazel-module/parser/oci.d.ts +17 -17
  247. package/dist/modules/manager/bazel-module/rules.d.ts +40 -40
  248. package/dist/modules/manager/bun/artifacts.js +0 -1
  249. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  250. package/dist/modules/manager/bundler/artifacts.js +0 -1
  251. package/dist/modules/manager/bundler/artifacts.js.map +1 -1
  252. package/dist/modules/manager/bundler/extract.js +2 -1
  253. package/dist/modules/manager/bundler/extract.js.map +1 -1
  254. package/dist/modules/manager/cake/index.js +4 -2
  255. package/dist/modules/manager/cake/index.js.map +1 -1
  256. package/dist/modules/manager/cargo/artifacts.js +5 -7
  257. package/dist/modules/manager/cargo/artifacts.js.map +1 -1
  258. package/dist/modules/manager/cargo/schema.d.ts +114 -114
  259. package/dist/modules/manager/cocoapods/artifacts.js +1 -2
  260. package/dist/modules/manager/cocoapods/artifacts.js.map +1 -1
  261. package/dist/modules/manager/composer/artifacts.js +1 -2
  262. package/dist/modules/manager/composer/artifacts.js.map +1 -1
  263. package/dist/modules/manager/composer/schema.d.ts +26 -26
  264. package/dist/modules/manager/composer/schema.js +1 -1
  265. package/dist/modules/manager/composer/schema.js.map +1 -1
  266. package/dist/modules/manager/composer/utils.d.ts +1 -0
  267. package/dist/modules/manager/composer/utils.js +18 -6
  268. package/dist/modules/manager/composer/utils.js.map +1 -1
  269. package/dist/modules/manager/copier/artifacts.js +0 -1
  270. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  271. package/dist/modules/manager/crossplane/schema.d.ts +2 -2
  272. package/dist/modules/manager/custom/jsonata/index.js +4 -0
  273. package/dist/modules/manager/custom/jsonata/index.js.map +1 -1
  274. package/dist/modules/manager/custom/jsonata/schema.d.ts +21 -21
  275. package/dist/modules/manager/custom/regex/index.js +2 -0
  276. package/dist/modules/manager/custom/regex/index.js.map +1 -1
  277. package/dist/modules/manager/deps-edn/extract.js +2 -1
  278. package/dist/modules/manager/deps-edn/extract.js.map +1 -1
  279. package/dist/modules/manager/devbox/artifacts.d.ts +1 -1
  280. package/dist/modules/manager/devbox/artifacts.js +28 -11
  281. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  282. package/dist/modules/manager/devbox/schema.js +1 -1
  283. package/dist/modules/manager/devbox/schema.js.map +1 -1
  284. package/dist/modules/manager/devcontainer/extract.js +43 -1
  285. package/dist/modules/manager/devcontainer/extract.js.map +1 -1
  286. package/dist/modules/manager/devcontainer/index.js +11 -1
  287. package/dist/modules/manager/devcontainer/index.js.map +1 -1
  288. package/dist/modules/manager/devcontainer/schema.d.ts +7 -3
  289. package/dist/modules/manager/devcontainer/schema.js +3 -1
  290. package/dist/modules/manager/devcontainer/schema.js.map +1 -1
  291. package/dist/modules/manager/docker-compose/schema.d.ts +6 -6
  292. package/dist/modules/manager/fingerprint.generated.js +86 -85
  293. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  294. package/dist/modules/manager/flux/artifacts.js +0 -1
  295. package/dist/modules/manager/flux/artifacts.js.map +1 -1
  296. package/dist/modules/manager/flux/extract.js +27 -24
  297. package/dist/modules/manager/flux/extract.js.map +1 -1
  298. package/dist/modules/manager/flux/schema.d.ts +94 -94
  299. package/dist/modules/manager/github-actions/extract.js +60 -39
  300. package/dist/modules/manager/github-actions/extract.js.map +1 -1
  301. package/dist/modules/manager/github-actions/schema.d.ts +66 -0
  302. package/dist/modules/manager/github-actions/schema.js +38 -0
  303. package/dist/modules/manager/github-actions/schema.js.map +1 -0
  304. package/dist/modules/manager/gitlabci/extract.d.ts +1 -5
  305. package/dist/modules/manager/gitlabci/extract.js +27 -126
  306. package/dist/modules/manager/gitlabci/extract.js.map +1 -1
  307. package/dist/modules/manager/gitlabci/schema.d.ts +55 -0
  308. package/dist/modules/manager/gitlabci/schema.js +63 -0
  309. package/dist/modules/manager/gitlabci/schema.js.map +1 -0
  310. package/dist/modules/manager/gitlabci-include/extract.js +6 -54
  311. package/dist/modules/manager/gitlabci-include/extract.js.map +1 -1
  312. package/dist/modules/manager/gitlabci-include/schema.d.ts +13 -0
  313. package/dist/modules/manager/gitlabci-include/schema.js +46 -0
  314. package/dist/modules/manager/gitlabci-include/schema.js.map +1 -0
  315. package/dist/modules/manager/glasskube/schema.d.ts +8 -8
  316. package/dist/modules/manager/gomod/artifacts.js +24 -10
  317. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  318. package/dist/modules/manager/gomod/extract.js +23 -0
  319. package/dist/modules/manager/gomod/extract.js.map +1 -1
  320. package/dist/modules/manager/gomod/line-parser.js +16 -0
  321. package/dist/modules/manager/gomod/line-parser.js.map +1 -1
  322. package/dist/modules/manager/gomod/update.js +2 -2
  323. package/dist/modules/manager/gomod/update.js.map +1 -1
  324. package/dist/modules/manager/gradle/artifacts.js +0 -1
  325. package/dist/modules/manager/gradle/artifacts.js.map +1 -1
  326. package/dist/modules/manager/gradle/extract/catalog.js +1 -1
  327. package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
  328. package/dist/modules/manager/gradle/parser/assignments.js +2 -2
  329. package/dist/modules/manager/gradle/parser/assignments.js.map +1 -1
  330. package/dist/modules/manager/gradle/parser/handlers.d.ts +1 -2
  331. package/dist/modules/manager/gradle/parser/handlers.js +10 -25
  332. package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
  333. package/dist/modules/manager/gradle/parser/registry-urls.js +11 -3
  334. package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
  335. package/dist/modules/manager/gradle-wrapper/artifacts.js +1 -2
  336. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  337. package/dist/modules/manager/helmfile/artifacts.js +0 -1
  338. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  339. package/dist/modules/manager/helmfile/extract.js +4 -0
  340. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  341. package/dist/modules/manager/helmfile/schema.d.ts +9 -9
  342. package/dist/modules/manager/helmv3/artifacts.js +0 -1
  343. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  344. package/dist/modules/manager/helmv3/utils.js +3 -1
  345. package/dist/modules/manager/helmv3/utils.js.map +1 -1
  346. package/dist/modules/manager/hermit/artifacts.js +0 -1
  347. package/dist/modules/manager/hermit/artifacts.js.map +1 -1
  348. package/dist/modules/manager/homebrew/extract.js +0 -1
  349. package/dist/modules/manager/homebrew/extract.js.map +1 -1
  350. package/dist/modules/manager/jsonnet-bundler/artifacts.js +0 -1
  351. package/dist/modules/manager/jsonnet-bundler/artifacts.js.map +1 -1
  352. package/dist/modules/manager/kustomize/artifacts.d.ts +2 -0
  353. package/dist/modules/manager/kustomize/artifacts.js +154 -0
  354. package/dist/modules/manager/kustomize/artifacts.js.map +1 -0
  355. package/dist/modules/manager/kustomize/common.d.ts +3 -0
  356. package/dist/modules/manager/kustomize/common.js +22 -0
  357. package/dist/modules/manager/kustomize/common.js.map +1 -0
  358. package/dist/modules/manager/kustomize/index.d.ts +1 -0
  359. package/dist/modules/manager/kustomize/index.js +3 -1
  360. package/dist/modules/manager/kustomize/index.js.map +1 -1
  361. package/dist/modules/manager/kustomize/types.d.ts +4 -0
  362. package/dist/modules/manager/kustomize/types.js.map +1 -1
  363. package/dist/modules/manager/maven/extract.js +3 -1
  364. package/dist/modules/manager/maven/extract.js.map +1 -1
  365. package/dist/modules/manager/maven-wrapper/artifacts.js +0 -1
  366. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  367. package/dist/modules/manager/mise/extract.js +1 -1
  368. package/dist/modules/manager/mise/extract.js.map +1 -1
  369. package/dist/modules/manager/mix/artifacts.js +64 -14
  370. package/dist/modules/manager/mix/artifacts.js.map +1 -1
  371. package/dist/modules/manager/mix/index.d.ts +1 -0
  372. package/dist/modules/manager/mix/index.js +2 -1
  373. package/dist/modules/manager/mix/index.js.map +1 -1
  374. package/dist/modules/manager/nix/artifacts.js +0 -1
  375. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  376. package/dist/modules/manager/nix/extract.js +1 -1
  377. package/dist/modules/manager/nix/extract.js.map +1 -1
  378. package/dist/modules/manager/nix/schema.d.ts +18 -18
  379. package/dist/modules/manager/npm/artifacts.js +0 -1
  380. package/dist/modules/manager/npm/artifacts.js.map +1 -1
  381. package/dist/modules/manager/npm/extract/yarn.js +2 -2
  382. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  383. package/dist/modules/manager/npm/post-update/npm.js +0 -1
  384. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  385. package/dist/modules/manager/npm/post-update/pnpm.js +13 -2
  386. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  387. package/dist/modules/manager/npm/post-update/rules.js +11 -1
  388. package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
  389. package/dist/modules/manager/npm/post-update/yarn.js +0 -1
  390. package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
  391. package/dist/modules/manager/npm/schema.d.ts +13 -13
  392. package/dist/modules/manager/npm/update/dependency/index.js +1 -1
  393. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  394. package/dist/modules/manager/nuget/artifacts.js +1 -2
  395. package/dist/modules/manager/nuget/artifacts.js.map +1 -1
  396. package/dist/modules/manager/nuget/package-tree.js +4 -0
  397. package/dist/modules/manager/nuget/package-tree.js.map +1 -1
  398. package/dist/modules/manager/nuget/schema.d.ts +8 -8
  399. package/dist/modules/manager/nuget/util.js +4 -1
  400. package/dist/modules/manager/nuget/util.js.map +1 -1
  401. package/dist/modules/manager/ocb/schema.d.ts +6 -6
  402. package/dist/modules/manager/pep621/processors/pdm.js +0 -1
  403. package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
  404. package/dist/modules/manager/pep621/processors/uv.js +0 -1
  405. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  406. package/dist/modules/manager/pep621/schema.d.ts +59 -54
  407. package/dist/modules/manager/pep621/schema.js +2 -0
  408. package/dist/modules/manager/pep621/schema.js.map +1 -1
  409. package/dist/modules/manager/pep621/utils.js +1 -1
  410. package/dist/modules/manager/pep621/utils.js.map +1 -1
  411. package/dist/modules/manager/pip-compile/common.js +0 -1
  412. package/dist/modules/manager/pip-compile/common.js.map +1 -1
  413. package/dist/modules/manager/pip_requirements/artifacts.js +0 -1
  414. package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
  415. package/dist/modules/manager/pipenv/artifacts.js +0 -1
  416. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  417. package/dist/modules/manager/pixi/artifacts.d.ts +3 -0
  418. package/dist/modules/manager/pixi/artifacts.js +84 -0
  419. package/dist/modules/manager/pixi/artifacts.js.map +1 -0
  420. package/dist/modules/manager/pixi/extract.d.ts +2 -0
  421. package/dist/modules/manager/pixi/extract.js +53 -0
  422. package/dist/modules/manager/pixi/extract.js.map +1 -0
  423. package/dist/modules/manager/pixi/index.d.ts +11 -0
  424. package/dist/modules/manager/pixi/index.js +22 -0
  425. package/dist/modules/manager/pixi/index.js.map +1 -0
  426. package/dist/modules/manager/pixi/lockfile.d.ts +6 -0
  427. package/dist/modules/manager/pixi/lockfile.js +25 -0
  428. package/dist/modules/manager/pixi/lockfile.js.map +1 -0
  429. package/dist/modules/manager/pixi/schema.d.ts +14 -0
  430. package/dist/modules/manager/pixi/schema.js +14 -0
  431. package/dist/modules/manager/pixi/schema.js.map +1 -0
  432. package/dist/modules/manager/poetry/artifacts.js +3 -4
  433. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  434. package/dist/modules/manager/poetry/extract.js +2 -1
  435. package/dist/modules/manager/poetry/extract.js.map +1 -1
  436. package/dist/modules/manager/poetry/schema.d.ts +48 -48
  437. package/dist/modules/manager/pub/artifacts.js +0 -1
  438. package/dist/modules/manager/pub/artifacts.js.map +1 -1
  439. package/dist/modules/manager/pub/schema.d.ts +8 -8
  440. package/dist/modules/manager/scalafmt/extract.js +1 -1
  441. package/dist/modules/manager/scalafmt/extract.js.map +1 -1
  442. package/dist/modules/manager/sveltos/schema.d.ts +12 -12
  443. package/dist/modules/manager/terraform/lockfile/hash.d.ts +1 -1
  444. package/dist/modules/manager/types.d.ts +6 -2
  445. package/dist/modules/manager/types.js.map +1 -1
  446. package/dist/modules/manager/vendir/schema.d.ts +4 -4
  447. package/dist/modules/platform/api.d.ts +1 -1
  448. package/dist/modules/platform/azure/azure-helper.js +2 -2
  449. package/dist/modules/platform/azure/azure-helper.js.map +1 -1
  450. package/dist/modules/platform/azure/index.js +14 -14
  451. package/dist/modules/platform/azure/index.js.map +1 -1
  452. package/dist/modules/platform/bitbucket/comments.js +4 -4
  453. package/dist/modules/platform/bitbucket/comments.js.map +1 -1
  454. package/dist/modules/platform/bitbucket/index.d.ts +1 -0
  455. package/dist/modules/platform/bitbucket/index.js +54 -44
  456. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  457. package/dist/modules/platform/bitbucket/schema.d.ts +11 -11
  458. package/dist/modules/platform/bitbucket/utils.js +3 -3
  459. package/dist/modules/platform/bitbucket/utils.js.map +1 -1
  460. package/dist/modules/platform/bitbucket-server/index.d.ts +3 -3
  461. package/dist/modules/platform/bitbucket-server/index.js +81 -81
  462. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  463. package/dist/modules/platform/bitbucket-server/pr-cache.d.ts +23 -0
  464. package/dist/modules/platform/bitbucket-server/pr-cache.js +125 -0
  465. package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -0
  466. package/dist/modules/platform/bitbucket-server/schema.d.ts +75 -0
  467. package/dist/modules/platform/bitbucket-server/schema.js +14 -1
  468. package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
  469. package/dist/modules/platform/bitbucket-server/types.d.ts +8 -2
  470. package/dist/modules/platform/bitbucket-server/types.js.map +1 -1
  471. package/dist/modules/platform/bitbucket-server/utils.d.ts +0 -2
  472. package/dist/modules/platform/bitbucket-server/utils.js +6 -52
  473. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  474. package/dist/modules/platform/codecommit/codecommit-client.js +6 -6
  475. package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
  476. package/dist/modules/platform/codecommit/index.js +24 -24
  477. package/dist/modules/platform/codecommit/index.js.map +1 -1
  478. package/dist/modules/platform/gerrit/client.js +13 -2
  479. package/dist/modules/platform/gerrit/client.js.map +1 -1
  480. package/dist/modules/platform/gerrit/utils.js +1 -1
  481. package/dist/modules/platform/gerrit/utils.js.map +1 -1
  482. package/dist/modules/platform/gitea/gitea-helper.d.ts +1 -0
  483. package/dist/modules/platform/gitea/gitea-helper.js +16 -0
  484. package/dist/modules/platform/gitea/gitea-helper.js.map +1 -1
  485. package/dist/modules/platform/gitea/index.d.ts +1 -0
  486. package/dist/modules/platform/gitea/index.js +26 -7
  487. package/dist/modules/platform/gitea/index.js.map +1 -1
  488. package/dist/modules/platform/gitea/schema.d.ts +8 -8
  489. package/dist/modules/platform/gitea/types.d.ts +1 -1
  490. package/dist/modules/platform/gitea/types.js.map +1 -1
  491. package/dist/modules/platform/github/common.d.ts +2 -0
  492. package/dist/modules/platform/github/common.js +16 -0
  493. package/dist/modules/platform/github/common.js.map +1 -1
  494. package/dist/modules/platform/github/index.d.ts +1 -1
  495. package/dist/modules/platform/github/index.js +87 -82
  496. package/dist/modules/platform/github/index.js.map +1 -1
  497. package/dist/modules/platform/github/issue.d.ts +12 -12
  498. package/dist/modules/platform/github/massage-markdown-links.js +2 -2
  499. package/dist/modules/platform/github/massage-markdown-links.js.map +1 -1
  500. package/dist/modules/platform/github/pr.js +3 -3
  501. package/dist/modules/platform/github/pr.js.map +1 -1
  502. package/dist/modules/platform/github/schema.d.ts +76 -76
  503. package/dist/modules/platform/github/schema.js +3 -1
  504. package/dist/modules/platform/github/schema.js.map +1 -1
  505. package/dist/modules/platform/gitlab/index.d.ts +1 -0
  506. package/dist/modules/platform/gitlab/index.js +70 -43
  507. package/dist/modules/platform/gitlab/index.js.map +1 -1
  508. package/dist/modules/platform/index.js +0 -1
  509. package/dist/modules/platform/index.js.map +1 -1
  510. package/dist/modules/platform/scm.d.ts +1 -1
  511. package/dist/modules/versioning/api.js +2 -0
  512. package/dist/modules/versioning/api.js.map +1 -1
  513. package/dist/modules/versioning/composer/index.js +10 -0
  514. package/dist/modules/versioning/composer/index.js.map +1 -1
  515. package/dist/modules/versioning/conda/index.d.ts +41 -0
  516. package/dist/modules/versioning/conda/index.js +178 -0
  517. package/dist/modules/versioning/conda/index.js.map +1 -0
  518. package/dist/modules/versioning/hashicorp/convertor.d.ts +2 -1
  519. package/dist/modules/versioning/hashicorp/convertor.js +13 -8
  520. package/dist/modules/versioning/hashicorp/convertor.js.map +1 -1
  521. package/dist/modules/versioning/hex/index.js +3 -3
  522. package/dist/modules/versioning/hex/index.js.map +1 -1
  523. package/dist/modules/versioning/npm/index.js +2 -1
  524. package/dist/modules/versioning/npm/index.js.map +1 -1
  525. package/dist/modules/versioning/schema.js +1 -1
  526. package/dist/modules/versioning/schema.js.map +1 -1
  527. package/dist/modules/versioning/types.d.ts +4 -0
  528. package/dist/modules/versioning/types.js.map +1 -1
  529. package/dist/proxy.js +2 -1
  530. package/dist/proxy.js.map +1 -1
  531. package/dist/renovate.js +2 -2
  532. package/dist/renovate.js.map +1 -1
  533. package/dist/util/cache/package/decorator.js +2 -2
  534. package/dist/util/cache/package/decorator.js.map +1 -1
  535. package/dist/util/cache/package/redis.js +0 -1
  536. package/dist/util/cache/package/redis.js.map +1 -1
  537. package/dist/util/cache/package/types.d.ts +1 -1
  538. package/dist/util/cache/package/types.js.map +1 -1
  539. package/dist/util/cache/repository/impl/base.d.ts +1 -1
  540. package/dist/util/cache/repository/schema.d.ts +4 -4
  541. package/dist/util/cache/repository/types.d.ts +3 -0
  542. package/dist/util/cache/repository/types.js.map +1 -1
  543. package/dist/util/env.d.ts +4 -0
  544. package/dist/util/env.js +22 -0
  545. package/dist/util/env.js.map +1 -0
  546. package/dist/util/exec/containerbase.js +18 -12
  547. package/dist/util/exec/containerbase.js.map +1 -1
  548. package/dist/util/exec/index.js +5 -2
  549. package/dist/util/exec/index.js.map +1 -1
  550. package/dist/util/exec/types.d.ts +0 -2
  551. package/dist/util/exec/types.js.map +1 -1
  552. package/dist/util/exec/utils.d.ts +1 -1
  553. package/dist/util/exec/utils.js +6 -5
  554. package/dist/util/exec/utils.js.map +1 -1
  555. package/dist/util/git/author.js +1 -1
  556. package/dist/util/git/author.js.map +1 -1
  557. package/dist/util/git/config.js +0 -1
  558. package/dist/util/git/config.js.map +1 -1
  559. package/dist/util/git/error.js +4 -2
  560. package/dist/util/git/error.js.map +1 -1
  561. package/dist/util/git/index.js +73 -46
  562. package/dist/util/git/index.js.map +1 -1
  563. package/dist/util/git/private-key.js +1 -1
  564. package/dist/util/git/private-key.js.map +1 -1
  565. package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +2 -2
  566. package/dist/util/github/graphql/query-adapters/tags-query-adapter.d.ts +2 -2
  567. package/dist/util/http/auth.js +0 -1
  568. package/dist/util/http/auth.js.map +1 -1
  569. package/dist/util/http/bitbucket-server.d.ts +5 -4
  570. package/dist/util/http/bitbucket-server.js +21 -20
  571. package/dist/util/http/bitbucket-server.js.map +1 -1
  572. package/dist/util/http/bitbucket.d.ts +6 -5
  573. package/dist/util/http/bitbucket.js +34 -31
  574. package/dist/util/http/bitbucket.js.map +1 -1
  575. package/dist/util/http/cache/abstract-http-cache-provider.js +2 -2
  576. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  577. package/dist/util/http/cache/memory-http-cache-provider.d.ts +10 -0
  578. package/dist/util/http/cache/memory-http-cache-provider.js +29 -0
  579. package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -0
  580. package/dist/util/http/cache/schema.d.ts +2 -2
  581. package/dist/util/http/errors.d.ts +2 -0
  582. package/dist/util/http/errors.js +8 -0
  583. package/dist/util/http/errors.js.map +1 -0
  584. package/dist/util/http/gerrit.d.ts +6 -4
  585. package/dist/util/http/gerrit.js +11 -12
  586. package/dist/util/http/gerrit.js.map +1 -1
  587. package/dist/util/http/gitea.d.ts +5 -4
  588. package/dist/util/http/gitea.js +14 -13
  589. package/dist/util/http/gitea.js.map +1 -1
  590. package/dist/util/http/github.d.ts +14 -8
  591. package/dist/util/http/github.js +65 -60
  592. package/dist/util/http/github.js.map +1 -1
  593. package/dist/util/http/gitlab.d.ts +7 -5
  594. package/dist/util/http/gitlab.js +58 -46
  595. package/dist/util/http/gitlab.js.map +1 -1
  596. package/dist/util/http/got.d.ts +9 -0
  597. package/dist/util/http/got.js +54 -0
  598. package/dist/util/http/got.js.map +1 -0
  599. package/dist/util/http/host-rules.d.ts +2 -1
  600. package/dist/util/http/host-rules.js +5 -4
  601. package/dist/util/http/host-rules.js.map +1 -1
  602. package/dist/util/http/http.d.ts +93 -0
  603. package/dist/util/http/http.js +346 -0
  604. package/dist/util/http/http.js.map +1 -0
  605. package/dist/util/http/index.d.ts +6 -74
  606. package/dist/util/http/index.js +5 -359
  607. package/dist/util/http/index.js.map +1 -1
  608. package/dist/util/http/legacy.js +4 -1
  609. package/dist/util/http/legacy.js.map +1 -1
  610. package/dist/util/http/types.d.ts +9 -16
  611. package/dist/util/http/types.js.map +1 -1
  612. package/dist/util/stats.d.ts +10 -0
  613. package/dist/util/stats.js +45 -1
  614. package/dist/util/stats.js.map +1 -1
  615. package/dist/util/string.d.ts +15 -0
  616. package/dist/util/string.js +75 -0
  617. package/dist/util/string.js.map +1 -1
  618. package/dist/util/toml.d.ts +1 -0
  619. package/dist/util/toml.js +6 -0
  620. package/dist/util/toml.js.map +1 -1
  621. package/dist/util/url.js +3 -8
  622. package/dist/util/url.js.map +1 -1
  623. package/dist/util/yaml.js +2 -6
  624. package/dist/util/yaml.js.map +1 -1
  625. package/dist/workers/global/config/parse/env.js +3 -2
  626. package/dist/workers/global/config/parse/env.js.map +1 -1
  627. package/dist/workers/global/config/parse/file.js +19 -9
  628. package/dist/workers/global/config/parse/file.js.map +1 -1
  629. package/dist/workers/global/config/parse/host-rules-from-env.js +6 -2
  630. package/dist/workers/global/config/parse/host-rules-from-env.js.map +1 -1
  631. package/dist/workers/global/config/parse/index.js +5 -0
  632. package/dist/workers/global/config/parse/index.js.map +1 -1
  633. package/dist/workers/repository/cache.js +1 -2
  634. package/dist/workers/repository/cache.js.map +1 -1
  635. package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -0
  636. package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
  637. package/dist/workers/repository/index.js +1 -0
  638. package/dist/workers/repository/index.js.map +1 -1
  639. package/dist/workers/repository/init/merge.js +6 -3
  640. package/dist/workers/repository/init/merge.js.map +1 -1
  641. package/dist/workers/repository/onboarding/pr/config-description.js +3 -1
  642. package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
  643. package/dist/workers/repository/process/extract-update.js +0 -1
  644. package/dist/workers/repository/process/extract-update.js.map +1 -1
  645. package/dist/workers/repository/process/fingerprint-fields.js +0 -1
  646. package/dist/workers/repository/process/fingerprint-fields.js.map +1 -1
  647. package/dist/workers/repository/process/libyear.js +2 -2
  648. package/dist/workers/repository/process/libyear.js.map +1 -1
  649. package/dist/workers/repository/process/lookup/index.js +13 -4
  650. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  651. package/dist/workers/repository/process/vulnerabilities.js +1 -1
  652. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  653. package/dist/workers/repository/process/write.js +1 -8
  654. package/dist/workers/repository/process/write.js.map +1 -1
  655. package/dist/workers/repository/reconfigure/validate.js +1 -0
  656. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  657. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +10 -1
  658. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  659. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
  660. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  661. package/dist/workers/repository/update/pr/changelog/github/index.js +6 -3
  662. package/dist/workers/repository/update/pr/changelog/github/index.js.map +1 -1
  663. package/dist/workers/repository/update/pr/changelog/gitlab/index.js +1 -1
  664. package/dist/workers/repository/update/pr/changelog/gitlab/index.js.map +1 -1
  665. package/dist/workers/repository/update/pr/changelog/source.js +1 -0
  666. package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
  667. package/dist/workers/repository/updates/flatten.js +8 -4
  668. package/dist/workers/repository/updates/flatten.js.map +1 -1
  669. package/dist/workers/repository/updates/generate.js +1 -2
  670. package/dist/workers/repository/updates/generate.js.map +1 -1
  671. package/dist/workers/types.d.ts +1 -4
  672. package/dist/workers/types.js.map +1 -1
  673. package/package.json +69 -72
  674. package/renovate-schema.json +15 -1
  675. package/dist/modules/manager/github-actions/types.d.ts +0 -30
  676. package/dist/modules/manager/github-actions/types.js +0 -3
  677. package/dist/modules/manager/github-actions/types.js.map +0 -1
  678. package/dist/modules/manager/gitlabci/common.d.ts +0 -6
  679. package/dist/modules/manager/gitlabci/common.js +0 -30
  680. package/dist/modules/manager/gitlabci/common.js.map +0 -1
  681. package/dist/modules/manager/gitlabci/types.d.ts +0 -35
  682. package/dist/modules/manager/gitlabci/types.js +0 -3
  683. package/dist/modules/manager/gitlabci/types.js.map +0 -1
@@ -0,0 +1,40 @@
1
+ import { type ZodEffects, type ZodString, z } from 'zod';
2
+ export declare const EksAddonsFilterSchema: z.ZodObject<{
3
+ addonName: ZodString;
4
+ kubernetesVersion: z.ZodOptional<ZodString>;
5
+ default: z.ZodUnion<[z.ZodOptional<z.ZodBoolean>, ZodEffects<ZodString, boolean, string>]>;
6
+ region: z.ZodOptional<ZodString>;
7
+ profile: z.ZodOptional<ZodString>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ addonName: string;
10
+ default?: boolean | undefined;
11
+ profile?: string | undefined;
12
+ kubernetesVersion?: string | undefined;
13
+ region?: string | undefined;
14
+ }, {
15
+ addonName: string;
16
+ default?: string | boolean | undefined;
17
+ profile?: string | undefined;
18
+ kubernetesVersion?: string | undefined;
19
+ region?: string | undefined;
20
+ }>;
21
+ export type EksAddonsFilter = z.infer<typeof EksAddonsFilterSchema>;
22
+ export declare const EksAddonsFilter: z.ZodPipeline<ZodEffects<ZodString, string | number | boolean | import("type-fest").JsonObject | import("type-fest").JsonValue[] | readonly import("type-fest").JsonValue[] | null, string>, z.ZodObject<{
23
+ addonName: ZodString;
24
+ kubernetesVersion: z.ZodOptional<ZodString>;
25
+ default: z.ZodUnion<[z.ZodOptional<z.ZodBoolean>, ZodEffects<ZodString, boolean, string>]>;
26
+ region: z.ZodOptional<ZodString>;
27
+ profile: z.ZodOptional<ZodString>;
28
+ }, "strip", z.ZodTypeAny, {
29
+ addonName: string;
30
+ default?: boolean | undefined;
31
+ profile?: string | undefined;
32
+ kubernetesVersion?: string | undefined;
33
+ region?: string | undefined;
34
+ }, {
35
+ addonName: string;
36
+ default?: string | boolean | undefined;
37
+ profile?: string | undefined;
38
+ kubernetesVersion?: string | undefined;
39
+ region?: string | undefined;
40
+ }>>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EksAddonsFilter = exports.EksAddonsFilterSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const regex_1 = require("../../../util/regex");
6
+ const schema_utils_1 = require("../../../util/schema-utils");
7
+ const stringIsBoolSchema = zod_1.z
8
+ .string()
9
+ .transform((value) => {
10
+ if (value === 'true') {
11
+ return true;
12
+ }
13
+ else if (value === 'false') {
14
+ return false;
15
+ }
16
+ else {
17
+ return false;
18
+ }
19
+ });
20
+ exports.EksAddonsFilterSchema = zod_1.z.object({
21
+ addonName: zod_1.z.string().nonempty().regex((0, regex_1.regEx)('^[a-z0-9][a-z0-9-]*[a-z0-9]$')),
22
+ kubernetesVersion: zod_1.z
23
+ .string()
24
+ .regex((0, regex_1.regEx)('^(?<major>\\d+)\\.(?<minor>\\d+)$'))
25
+ .optional(),
26
+ default: zod_1.z.oboolean().or(stringIsBoolSchema),
27
+ region: zod_1.z.string().optional(),
28
+ profile: zod_1.z.string().optional(),
29
+ });
30
+ exports.EksAddonsFilter = schema_utils_1.Json.pipe(exports.EksAddonsFilterSchema);
31
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/aws-eks-addon/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAyD;AACzD,+CAA4C;AAC5C,6DAAkD;AAElD,MAAM,kBAAkB,GAA2C,OAAC;KACjE,MAAM,EAAE;KACR,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;IACnB,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC,CAAC;AAEQ,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAA,aAAK,EAAC,8BAA8B,CAAC,CAAC;IAC7E,iBAAiB,EAAE,OAAC;SACjB,MAAM,EAAE;SACR,KAAK,CAAC,IAAA,aAAK,EAAC,mCAAmC,CAAC,CAAC;SACjD,QAAQ,EAAE;IACb,OAAO,EAAE,OAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC;IAC5C,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAGU,QAAA,eAAe,GAAG,mBAAI,CAAC,IAAI,CAAC,6BAAqB,CAAC,CAAC","sourcesContent":["import { type ZodEffects, type ZodString, z } from 'zod';\nimport { regEx } from '../../../util/regex';\nimport { Json } from '../../../util/schema-utils';\n\nconst stringIsBoolSchema: ZodEffects<ZodString, boolean, string> = z\n .string()\n .transform((value) => {\n if (value === 'true') {\n return true;\n } else if (value === 'false') {\n return false;\n } else {\n return false;\n }\n });\n\nexport const EksAddonsFilterSchema = z.object({\n addonName: z.string().nonempty().regex(regEx('^[a-z0-9][a-z0-9-]*[a-z0-9]$')),\n kubernetesVersion: z\n .string()\n .regex(regEx('^(?<major>\\\\d+)\\\\.(?<minor>\\\\d+)$'))\n .optional(),\n default: z.oboolean().or(stringIsBoolSchema),\n region: z.string().optional(),\n profile: z.string().optional(),\n});\n\nexport type EksAddonsFilter = z.infer<typeof EksAddonsFilterSchema>;\nexport const EksAddonsFilter = Json.pipe(EksAddonsFilterSchema);\n"]}
@@ -75,10 +75,10 @@ class AwsMachineImageDatasource extends datasource_1.Datasource {
75
75
  return matchingImages.Images.sort((image1, image2) => {
76
76
  const ts1 = image1.CreationDate
77
77
  ? Date.parse(image1.CreationDate)
78
- : /* istanbul ignore next */ 0;
78
+ : /* v8 ignore next */ 0; // TODO: add date coersion util
79
79
  const ts2 = image2.CreationDate
80
80
  ? Date.parse(image2.CreationDate)
81
- : /* istanbul ignore next */ 0;
81
+ : /* v8 ignore next */ 0; // TODO: add date coersion util
82
82
  return ts1 - ts2;
83
83
  });
84
84
  }
@@ -89,13 +89,14 @@ class AwsMachineImageDatasource extends datasource_1.Datasource {
89
89
  }
90
90
  if (newValue) {
91
91
  const newValueMatchingImages = images.filter((image) => image.ImageId === newValue);
92
- if (newValueMatchingImages.length === 1) {
93
- return (newValueMatchingImages[0].Name ?? /* istanbul ignore next */ null);
92
+ if (newValueMatchingImages.length === 1 &&
93
+ newValueMatchingImages[0].Name) {
94
+ return newValueMatchingImages[0].Name;
94
95
  }
95
96
  return null;
96
97
  }
97
98
  const res = await this.getReleases({ packageName: serializedAmiFilter });
98
- return res?.releases?.[0]?.newDigest ?? /* istanbul ignore next */ null;
99
+ return res?.releases?.[0]?.newDigest ?? /* v8 ignore next */ null; // TODO: needs test
99
100
  }
100
101
  async getReleases({ packageName: serializedAmiFilter, }) {
101
102
  const images = await this.getSortedAwsMachineImages(serializedAmiFilter);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/aws-machine-image/index.ts"],"names":[],"mappings":";;;;AACA,oDAAuE;AACvE,wEAAsE;AACtE,qEAA8D;AAC9D,uDAAsD;AACtD,yGAAmF;AACnF,8CAA2C;AAI3C,MAAa,yBAA0B,SAAQ,uBAAU;IACvD,MAAM,CAAU,EAAE,GAAG,mBAAmB,CAAC;IAEvB,iBAAiB,GAAG,4BAA4B,CAAC,EAAE,CAAC;IAEpD,OAAO,GAAG,IAAI,CAAC;IAEf,uBAAuB,GAAG,IAAI,CAAC;IAC/B,oBAAoB,GACpC,mFAAmF,CAAC;IAEpE,aAAa,GAAG;QAChC,oGAAoG;QACpG,kBAAkB,EAAE,qBAAqB;QACzC,aAAa,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;QAClC,iBAAiB,EAAE;YACjB,KAAK,EAAE,uBAAuB;SAC/B;QACD,MAAM,EAAE;YACN,4FAA4F;YAC5F,kBAAkB,EAAE,oBAAoB;YACxC,aAAa,EAAE,CAAC,OAAO,CAAC;YACxB,iBAAiB,EAAE;gBACjB,KAAK,EAAE,uBAAuB;aAC/B;SACF;KACF,CAAC;IAEe,GAAG,CAAS;IAE7B;QACE,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;IAEO,WAAW,CAAC,MAAgC;QAClD,OAAO,MAAM,IAAI,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC;IAChD,CAAC;IAEO,YAAY,CAAC,MAAuB;QAC1C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACnC,OAAO,IAAI,sBAAS,CAAC;YACnB,MAAM;YACN,WAAW,EAAE,IAAA,4CAAqB,EAAC,EAAE,OAAO,EAAE,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB,CAAC,MAAgB;QAC1C,OAAO,IAAI,kCAAqB,CAAC;YAC/B,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,mBAA2B;QACpC,MAAM,YAAY,GAAiB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,qDAAqD;gBACrD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,8CAA8C;gBAC9C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAOK,AAAN,KAAK,CAAC,yBAAyB,CAC7B,mBAA2B;QAE3B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1D,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,IAAI,EAAE,CAAC;QACpD,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YACnD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY;gBAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;gBACjC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;YAEjC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY;gBAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;gBACjC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACjC,OAAO,GAAG,GAAG,GAAG,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAOc,AAAN,KAAK,CAAC,SAAS,CACtB,EAAE,WAAW,EAAE,mBAAmB,EAAqB,EACvD,QAAiB;QAEjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;QACzE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAC1C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,CACtC,CAAC;YACF,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxC,OAAO,CACL,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,0BAA0B,CAAC,IAAI,CAClE,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAC;QACzE,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,0BAA0B,CAAC,IAAI,CAAC;IAC1E,CAAC;IAMK,AAAN,KAAK,CAAC,WAAW,CAAC,EAChB,WAAW,EAAE,mBAAmB,GACd;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,gBAAgB,EAAE,IAAA,uBAAW,EAAC,WAAW,CAAC,YAAY,CAAC;oBACvD,YAAY,EACV,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;wBAC9D,IAAI,CAAC,GAAG;oBACV,SAAS,EAAE,WAAW,CAAC,IAAI;iBAC5B;aACF;SACF,CAAC;IACJ,CAAC;;AApJH,8DAqJC;AA3EO;IALL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,yBAAyB,CAAC,EAAE,EAAE;QACvD,GAAG,EAAE,CAAC,mBAA2B,EAAE,EAAE,CACnC,6BAA6B,mBAAmB,EAAE;KACrD,CAAC;0EAmBD;AAOc;IALd,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,yBAAyB,CAAC,EAAE,EAAE;QACvD,GAAG,EAAE,CAAC,EAAE,WAAW,EAAqB,EAAE,QAAgB,EAAE,EAAE,CAC5D,aAAa,WAAW,IAAI,QAAQ,IAAI,EAAE,EAAE;KAC/C,CAAC;0DAwBD;AAMK;IAJL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,yBAAyB,CAAC,EAAE,EAAE;QACvD,GAAG,EAAE,CAAC,EAAE,WAAW,EAAqB,EAAE,EAAE,CAAC,eAAe,WAAW,EAAE;KAC1E,CAAC;4DAqBD","sourcesContent":["import type { Filter, Image } from '@aws-sdk/client-ec2';\nimport { DescribeImagesCommand, EC2Client } from '@aws-sdk/client-ec2';\nimport { fromNodeProviderChain } from '@aws-sdk/credential-providers';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { asTimestamp } from '../../../util/timestamp';\nimport * as amazonMachineImageVersioning from '../../versioning/aws-machine-image';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport type { AwsClientConfig, ParsedConfig } from './types';\n\nexport class AwsMachineImageDatasource extends Datasource {\n static readonly id = 'aws-machine-image';\n\n override readonly defaultVersioning = amazonMachineImageVersioning.id;\n\n override readonly caching = true;\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `CreationDate` field in the results.';\n\n override readonly defaultConfig = {\n // Because AMIs don't follow any versioning scheme, we override commitMessageExtra to remove the 'v'\n commitMessageExtra: 'to {{{newVersion}}}',\n prBodyColumns: ['Change', 'Image'],\n prBodyDefinitions: {\n Image: '```{{{newDigest}}}```',\n },\n digest: {\n // Because newDigestShort will allways be 'amazon-' we override to print the name of the AMI\n commitMessageExtra: 'to {{{newDigest}}}',\n prBodyColumns: ['Image'],\n prBodyDefinitions: {\n Image: '```{{{newDigest}}}```',\n },\n },\n };\n\n private readonly now: number;\n\n constructor() {\n super(AwsMachineImageDatasource.id);\n this.now = Date.now();\n }\n\n private isAmiFilter(config: Filter | AwsClientConfig): config is Filter {\n return 'Name' in config && 'Values' in config;\n }\n\n private getEC2Client(config: AwsClientConfig): EC2Client {\n const { profile, region } = config;\n return new EC2Client({\n region,\n credentials: fromNodeProviderChain({ profile }),\n });\n }\n\n private getAmiFilterCommand(filter: Filter[]): DescribeImagesCommand {\n return new DescribeImagesCommand({\n Filters: filter,\n });\n }\n\n loadConfig(serializedAmiFilter: string): [Filter[], AwsClientConfig] {\n const parsedConfig: ParsedConfig = JSON.parse(serializedAmiFilter);\n const filters = [];\n let config = {};\n for (const elem of parsedConfig) {\n if (this.isAmiFilter(elem)) {\n // Separate actual AMI filters from aws client config\n filters.push(elem);\n } else {\n // merge config objects if there are multiple\n config = Object.assign(config, elem);\n }\n }\n return [filters, config];\n }\n\n @cache({\n namespace: `datasource-${AwsMachineImageDatasource.id}`,\n key: (serializedAmiFilter: string) =>\n `getSortedAwsMachineImages:${serializedAmiFilter}`,\n })\n async getSortedAwsMachineImages(\n serializedAmiFilter: string,\n ): Promise<Image[]> {\n const [amiFilter, clientConfig] = this.loadConfig(serializedAmiFilter);\n const amiFilterCmd = this.getAmiFilterCommand(amiFilter);\n const ec2Client = this.getEC2Client(clientConfig);\n const matchingImages = await ec2Client.send(amiFilterCmd);\n matchingImages.Images = matchingImages.Images ?? [];\n return matchingImages.Images.sort((image1, image2) => {\n const ts1 = image1.CreationDate\n ? Date.parse(image1.CreationDate)\n : /* istanbul ignore next */ 0;\n\n const ts2 = image2.CreationDate\n ? Date.parse(image2.CreationDate)\n : /* istanbul ignore next */ 0;\n return ts1 - ts2;\n });\n }\n\n @cache({\n namespace: `datasource-${AwsMachineImageDatasource.id}`,\n key: ({ packageName }: GetReleasesConfig, newValue: string) =>\n `getDigest:${packageName}:${newValue ?? ''}`,\n })\n override async getDigest(\n { packageName: serializedAmiFilter }: GetReleasesConfig,\n newValue?: string,\n ): Promise<string | null> {\n const images = await this.getSortedAwsMachineImages(serializedAmiFilter);\n if (images.length < 1) {\n return null;\n }\n\n if (newValue) {\n const newValueMatchingImages = images.filter(\n (image) => image.ImageId === newValue,\n );\n if (newValueMatchingImages.length === 1) {\n return (\n newValueMatchingImages[0].Name ?? /* istanbul ignore next */ null\n );\n }\n return null;\n }\n\n const res = await this.getReleases({ packageName: serializedAmiFilter });\n return res?.releases?.[0]?.newDigest ?? /* istanbul ignore next */ null;\n }\n\n @cache({\n namespace: `datasource-${AwsMachineImageDatasource.id}`,\n key: ({ packageName }: GetReleasesConfig) => `getReleases:${packageName}`,\n })\n async getReleases({\n packageName: serializedAmiFilter,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const images = await this.getSortedAwsMachineImages(serializedAmiFilter);\n const latestImage = images[images.length - 1];\n if (!latestImage?.ImageId) {\n return null;\n }\n return {\n releases: [\n {\n version: latestImage.ImageId,\n releaseTimestamp: asTimestamp(latestImage.CreationDate),\n isDeprecated:\n Date.parse(latestImage.DeprecationTime ?? this.now.toString()) <\n this.now,\n newDigest: latestImage.Name,\n },\n ],\n };\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/aws-machine-image/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Filter, Image } from '@aws-sdk/client-ec2';\nimport { DescribeImagesCommand, EC2Client } from '@aws-sdk/client-ec2';\nimport { fromNodeProviderChain } from '@aws-sdk/credential-providers';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { asTimestamp } from '../../../util/timestamp';\nimport * as amazonMachineImageVersioning from '../../versioning/aws-machine-image';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport type { AwsClientConfig, ParsedConfig } from './types';\n\nexport class AwsMachineImageDatasource extends Datasource {\n static readonly id = 'aws-machine-image';\n\n override readonly defaultVersioning = amazonMachineImageVersioning.id;\n\n override readonly caching = true;\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `CreationDate` field in the results.';\n\n override readonly defaultConfig = {\n // Because AMIs don't follow any versioning scheme, we override commitMessageExtra to remove the 'v'\n commitMessageExtra: 'to {{{newVersion}}}',\n prBodyColumns: ['Change', 'Image'],\n prBodyDefinitions: {\n Image: '```{{{newDigest}}}```',\n },\n digest: {\n // Because newDigestShort will allways be 'amazon-' we override to print the name of the AMI\n commitMessageExtra: 'to {{{newDigest}}}',\n prBodyColumns: ['Image'],\n prBodyDefinitions: {\n Image: '```{{{newDigest}}}```',\n },\n },\n };\n\n private readonly now: number;\n\n constructor() {\n super(AwsMachineImageDatasource.id);\n this.now = Date.now();\n }\n\n private isAmiFilter(config: Filter | AwsClientConfig): config is Filter {\n return 'Name' in config && 'Values' in config;\n }\n\n private getEC2Client(config: AwsClientConfig): EC2Client {\n const { profile, region } = config;\n return new EC2Client({\n region,\n credentials: fromNodeProviderChain({ profile }),\n });\n }\n\n private getAmiFilterCommand(filter: Filter[]): DescribeImagesCommand {\n return new DescribeImagesCommand({\n Filters: filter,\n });\n }\n\n loadConfig(serializedAmiFilter: string): [Filter[], AwsClientConfig] {\n const parsedConfig: ParsedConfig = JSON.parse(serializedAmiFilter);\n const filters = [];\n let config = {};\n for (const elem of parsedConfig) {\n if (this.isAmiFilter(elem)) {\n // Separate actual AMI filters from aws client config\n filters.push(elem);\n } else {\n // merge config objects if there are multiple\n config = Object.assign(config, elem);\n }\n }\n return [filters, config];\n }\n\n @cache({\n namespace: `datasource-${AwsMachineImageDatasource.id}`,\n key: (serializedAmiFilter: string) =>\n `getSortedAwsMachineImages:${serializedAmiFilter}`,\n })\n async getSortedAwsMachineImages(\n serializedAmiFilter: string,\n ): Promise<Image[]> {\n const [amiFilter, clientConfig] = this.loadConfig(serializedAmiFilter);\n const amiFilterCmd = this.getAmiFilterCommand(amiFilter);\n const ec2Client = this.getEC2Client(clientConfig);\n const matchingImages = await ec2Client.send(amiFilterCmd);\n matchingImages.Images = matchingImages.Images ?? [];\n return matchingImages.Images.sort((image1, image2) => {\n const ts1 = image1.CreationDate\n ? Date.parse(image1.CreationDate)\n : /* v8 ignore next */ 0; // TODO: add date coersion util\n\n const ts2 = image2.CreationDate\n ? Date.parse(image2.CreationDate)\n : /* v8 ignore next */ 0; // TODO: add date coersion util\n return ts1 - ts2;\n });\n }\n\n @cache({\n namespace: `datasource-${AwsMachineImageDatasource.id}`,\n key: ({ packageName }: GetReleasesConfig, newValue: string) =>\n `getDigest:${packageName}:${newValue ?? ''}`,\n })\n override async getDigest(\n { packageName: serializedAmiFilter }: GetReleasesConfig,\n newValue?: string,\n ): Promise<string | null> {\n const images = await this.getSortedAwsMachineImages(serializedAmiFilter);\n if (images.length < 1) {\n return null;\n }\n\n if (newValue) {\n const newValueMatchingImages = images.filter(\n (image) => image.ImageId === newValue,\n );\n if (\n newValueMatchingImages.length === 1 &&\n newValueMatchingImages[0].Name\n ) {\n return newValueMatchingImages[0].Name;\n }\n return null;\n }\n\n const res = await this.getReleases({ packageName: serializedAmiFilter });\n return res?.releases?.[0]?.newDigest ?? /* v8 ignore next */ null; // TODO: needs test\n }\n\n @cache({\n namespace: `datasource-${AwsMachineImageDatasource.id}`,\n key: ({ packageName }: GetReleasesConfig) => `getReleases:${packageName}`,\n })\n async getReleases({\n packageName: serializedAmiFilter,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const images = await this.getSortedAwsMachineImages(serializedAmiFilter);\n const latestImage = images[images.length - 1];\n if (!latestImage?.ImageId) {\n return null;\n }\n return {\n releases: [\n {\n version: latestImage.ImageId,\n releaseTimestamp: asTimestamp(latestImage.CreationDate),\n isDeprecated:\n Date.parse(latestImage.DeprecationTime ?? this.now.toString()) <\n this.now,\n newDigest: latestImage.Name,\n },\n ],\n };\n }\n}\n"]}
@@ -33,7 +33,17 @@ class AzurePipelinesTasksDatasource extends datasource_1.Datasource {
33
33
  const results = await this.getTasks(`${endpoint}/_apis/distributedtask/tasks/`, opts, schema_1.AzurePipelinesJSON);
34
34
  const result = { releases: [] };
35
35
  results.value
36
- .filter((task) => task.name === packageName)
36
+ .filter((task) => {
37
+ const matchers = [
38
+ task.id === packageName,
39
+ task.name === packageName,
40
+ task.contributionIdentifier !== null &&
41
+ `${task.contributionIdentifier}.${task.id}` === packageName,
42
+ task.contributionIdentifier !== null &&
43
+ `${task.contributionIdentifier}.${task.name}` === packageName,
44
+ ];
45
+ return matchers.some((match) => match);
46
+ })
37
47
  .sort(AzurePipelinesTasksDatasource.compareSemanticVersions('version'))
38
48
  .forEach((task) => {
39
49
  result.releases.push({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TypeOf, ZodType } from 'zod';\nimport { GlobalConfig } from '../../../config/global';\nimport { cache } from '../../../util/cache/package/decorator';\nimport * as hostRules from '../../../util/host-rules';\nimport type { HttpOptions } from '../../../util/http/types';\nimport { id as versioning } from '../../versioning/loose';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport {\n AzurePipelinesFallbackTasks,\n AzurePipelinesJSON,\n AzurePipelinesTaskVersion,\n} from './schema';\n\nconst TASKS_URL_BASE =\n 'https://raw.githubusercontent.com/renovatebot/azure-devops-marketplace/main';\nconst BUILT_IN_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-builtin-tasks.json`;\nconst MARKETPLACE_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-marketplace-tasks.json`;\n\nexport class AzurePipelinesTasksDatasource extends Datasource {\n static readonly id = 'azure-pipelines-tasks';\n\n constructor() {\n super(AzurePipelinesTasksDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultVersioning = versioning;\n\n async getReleases({\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const platform = GlobalConfig.get('platform');\n const endpoint = GlobalConfig.get('endpoint');\n const { token } = hostRules.find({\n hostType: AzurePipelinesTasksDatasource.id,\n url: endpoint,\n });\n\n if (platform === 'azure' && endpoint && token) {\n const auth = Buffer.from(`renovate:${token}`).toString('base64');\n const opts: HttpOptions = {\n headers: { authorization: `Basic ${auth}` },\n };\n const results = await this.getTasks(\n `${endpoint}/_apis/distributedtask/tasks/`,\n opts,\n AzurePipelinesJSON,\n );\n\n const result: ReleaseResult = { releases: [] };\n\n results.value\n .filter((task) => task.name === packageName)\n .sort(AzurePipelinesTasksDatasource.compareSemanticVersions('version'))\n .forEach((task) => {\n result.releases.push({\n version: `${task.version!.major}.${task.version!.minor}.${task.version!.patch}`,\n isDeprecated: task.deprecated,\n });\n });\n\n return result;\n } else {\n const versions =\n (\n await this.getTasks(\n BUILT_IN_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()] ??\n (\n await this.getTasks(\n MARKETPLACE_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()];\n\n if (versions) {\n const releases = versions.map((version) => ({ version }));\n return { releases };\n }\n }\n\n return null;\n }\n\n @cache({\n namespace: `datasource-${AzurePipelinesTasksDatasource.id}`,\n key: (url: string) => url,\n ttlMinutes: 24 * 60,\n })\n async getTasks<Schema extends ZodType>(\n url: string,\n opts: HttpOptions,\n schema: Schema,\n ): Promise<TypeOf<Schema>> {\n const { body } = await this.http.getJson(url, opts, schema);\n return body;\n }\n\n static compareSemanticVersions = (key: string) => (a: any, b: any) => {\n const a1Version = AzurePipelinesTaskVersion.safeParse(a[key]).data;\n const b1Version = AzurePipelinesTaskVersion.safeParse(b[key]).data;\n\n const a1 =\n a1Version === undefined\n ? ''\n : `${a1Version.major}.${a1Version.minor}.${a1Version.patch}`;\n const b1 =\n b1Version === undefined\n ? ''\n : `${b1Version.major}.${b1Version.minor}.${b1Version.patch}`;\n\n const len = Math.min(a1.length, b1.length);\n\n for (let i = 0; i < len; i++) {\n const a2 = +a1[i] || 0;\n const b2 = +b1[i] || 0;\n\n if (a2 !== b2) {\n return a2 > b2 ? 1 : -1;\n }\n }\n\n return b1.length - a1.length;\n };\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TypeOf, ZodType } from 'zod';\nimport { GlobalConfig } from '../../../config/global';\nimport { cache } from '../../../util/cache/package/decorator';\nimport * as hostRules from '../../../util/host-rules';\nimport type { HttpOptions } from '../../../util/http/types';\nimport { id as versioning } from '../../versioning/loose';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport {\n AzurePipelinesFallbackTasks,\n AzurePipelinesJSON,\n AzurePipelinesTaskVersion,\n} from './schema';\n\nconst TASKS_URL_BASE =\n 'https://raw.githubusercontent.com/renovatebot/azure-devops-marketplace/main';\nconst BUILT_IN_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-builtin-tasks.json`;\nconst MARKETPLACE_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-marketplace-tasks.json`;\n\nexport class AzurePipelinesTasksDatasource extends Datasource {\n static readonly id = 'azure-pipelines-tasks';\n\n constructor() {\n super(AzurePipelinesTasksDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultVersioning = versioning;\n\n async getReleases({\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const platform = GlobalConfig.get('platform');\n const endpoint = GlobalConfig.get('endpoint');\n const { token } = hostRules.find({\n hostType: AzurePipelinesTasksDatasource.id,\n url: endpoint,\n });\n\n if (platform === 'azure' && endpoint && token) {\n const auth = Buffer.from(`renovate:${token}`).toString('base64');\n const opts: HttpOptions = {\n headers: { authorization: `Basic ${auth}` },\n };\n const results = await this.getTasks(\n `${endpoint}/_apis/distributedtask/tasks/`,\n opts,\n AzurePipelinesJSON,\n );\n\n const result: ReleaseResult = { releases: [] };\n\n results.value\n .filter((task) => {\n const matchers = [\n task.id === packageName,\n task.name === packageName,\n task.contributionIdentifier !== null &&\n `${task.contributionIdentifier}.${task.id}` === packageName,\n task.contributionIdentifier !== null &&\n `${task.contributionIdentifier}.${task.name}` === packageName,\n ];\n return matchers.some((match) => match);\n })\n .sort(AzurePipelinesTasksDatasource.compareSemanticVersions('version'))\n .forEach((task) => {\n result.releases.push({\n version: `${task.version!.major}.${task.version!.minor}.${task.version!.patch}`,\n isDeprecated: task.deprecated,\n });\n });\n\n return result;\n } else {\n const versions =\n (\n await this.getTasks(\n BUILT_IN_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()] ??\n (\n await this.getTasks(\n MARKETPLACE_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()];\n\n if (versions) {\n const releases = versions.map((version) => ({ version }));\n return { releases };\n }\n }\n\n return null;\n }\n\n @cache({\n namespace: `datasource-${AzurePipelinesTasksDatasource.id}`,\n key: (url: string) => url,\n ttlMinutes: 24 * 60,\n })\n async getTasks<Schema extends ZodType>(\n url: string,\n opts: HttpOptions,\n schema: Schema,\n ): Promise<TypeOf<Schema>> {\n const { body } = await this.http.getJson(url, opts, schema);\n return body;\n }\n\n static compareSemanticVersions = (key: string) => (a: any, b: any) => {\n const a1Version = AzurePipelinesTaskVersion.safeParse(a[key]).data;\n const b1Version = AzurePipelinesTaskVersion.safeParse(b[key]).data;\n\n const a1 =\n a1Version === undefined\n ? ''\n : `${a1Version.major}.${a1Version.minor}.${a1Version.patch}`;\n const b1 =\n b1Version === undefined\n ? ''\n : `${b1Version.major}.${b1Version.minor}.${b1Version.patch}`;\n\n const len = Math.min(a1.length, b1.length);\n\n for (let i = 0; i < len; i++) {\n const a2 = +a1[i] || 0;\n const b2 = +b1[i] || 0;\n\n if (a2 !== b2) {\n return a2 > b2 ? 1 : -1;\n }\n }\n\n return b1.length - a1.length;\n };\n}\n"]}
@@ -13,6 +13,7 @@ export declare const AzurePipelinesTaskVersion: z.ZodObject<{
13
13
  patch: number;
14
14
  }>;
15
15
  export declare const AzurePipelinesTask: z.ZodObject<{
16
+ id: z.ZodString;
16
17
  name: z.ZodString;
17
18
  deprecated: z.ZodOptional<z.ZodBoolean>;
18
19
  version: z.ZodNullable<z.ZodObject<{
@@ -28,7 +29,9 @@ export declare const AzurePipelinesTask: z.ZodObject<{
28
29
  minor: number;
29
30
  patch: number;
30
31
  }>>;
32
+ contributionIdentifier: z.ZodOptional<z.ZodString>;
31
33
  }, "strip", z.ZodTypeAny, {
34
+ id: string;
32
35
  name: string;
33
36
  version: {
34
37
  major: number;
@@ -36,7 +39,9 @@ export declare const AzurePipelinesTask: z.ZodObject<{
36
39
  patch: number;
37
40
  } | null;
38
41
  deprecated?: boolean | undefined;
42
+ contributionIdentifier?: string | undefined;
39
43
  }, {
44
+ id: string;
40
45
  name: string;
41
46
  version: {
42
47
  major: number;
@@ -44,9 +49,11 @@ export declare const AzurePipelinesTask: z.ZodObject<{
44
49
  patch: number;
45
50
  } | null;
46
51
  deprecated?: boolean | undefined;
52
+ contributionIdentifier?: string | undefined;
47
53
  }>;
48
54
  export declare const AzurePipelinesJSON: z.ZodObject<{
49
55
  value: z.ZodArray<z.ZodObject<{
56
+ id: z.ZodString;
50
57
  name: z.ZodString;
51
58
  deprecated: z.ZodOptional<z.ZodBoolean>;
52
59
  version: z.ZodNullable<z.ZodObject<{
@@ -62,7 +69,9 @@ export declare const AzurePipelinesJSON: z.ZodObject<{
62
69
  minor: number;
63
70
  patch: number;
64
71
  }>>;
72
+ contributionIdentifier: z.ZodOptional<z.ZodString>;
65
73
  }, "strip", z.ZodTypeAny, {
74
+ id: string;
66
75
  name: string;
67
76
  version: {
68
77
  major: number;
@@ -70,7 +79,9 @@ export declare const AzurePipelinesJSON: z.ZodObject<{
70
79
  patch: number;
71
80
  } | null;
72
81
  deprecated?: boolean | undefined;
82
+ contributionIdentifier?: string | undefined;
73
83
  }, {
84
+ id: string;
74
85
  name: string;
75
86
  version: {
76
87
  major: number;
@@ -78,9 +89,11 @@ export declare const AzurePipelinesJSON: z.ZodObject<{
78
89
  patch: number;
79
90
  } | null;
80
91
  deprecated?: boolean | undefined;
92
+ contributionIdentifier?: string | undefined;
81
93
  }>, "many">;
82
94
  }, "strip", z.ZodTypeAny, {
83
95
  value: {
96
+ id: string;
84
97
  name: string;
85
98
  version: {
86
99
  major: number;
@@ -88,9 +101,11 @@ export declare const AzurePipelinesJSON: z.ZodObject<{
88
101
  patch: number;
89
102
  } | null;
90
103
  deprecated?: boolean | undefined;
104
+ contributionIdentifier?: string | undefined;
91
105
  }[];
92
106
  }, {
93
107
  value: {
108
+ id: string;
94
109
  name: string;
95
110
  version: {
96
111
  major: number;
@@ -98,6 +113,7 @@ export declare const AzurePipelinesJSON: z.ZodObject<{
98
113
  patch: number;
99
114
  } | null;
100
115
  deprecated?: boolean | undefined;
116
+ contributionIdentifier?: string | undefined;
101
117
  }[];
102
118
  }>;
103
119
  export declare const AzurePipelinesFallbackTasks: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
@@ -8,9 +8,11 @@ exports.AzurePipelinesTaskVersion = zod_1.z.object({
8
8
  patch: zod_1.z.number(),
9
9
  });
10
10
  exports.AzurePipelinesTask = zod_1.z.object({
11
+ id: zod_1.z.string(),
11
12
  name: zod_1.z.string(),
12
13
  deprecated: zod_1.z.boolean().optional(),
13
14
  version: exports.AzurePipelinesTaskVersion.nullable(),
15
+ contributionIdentifier: zod_1.z.string().optional(),
14
16
  });
15
17
  exports.AzurePipelinesJSON = zod_1.z.object({
16
18
  value: exports.AzurePipelinesTask.array(),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,iCAAyB,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,0BAAkB,CAAC,KAAK,EAAE;CAClC,CAAC,CAAC;AAEU,QAAA,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\n\nexport const AzurePipelinesTaskVersion = z.object({\n major: z.number(),\n minor: z.number(),\n patch: z.number(),\n});\n\nexport const AzurePipelinesTask = z.object({\n name: z.string(),\n deprecated: z.boolean().optional(),\n version: AzurePipelinesTaskVersion.nullable(),\n});\n\nexport const AzurePipelinesJSON = z.object({\n value: AzurePipelinesTask.array(),\n});\n\nexport const AzurePipelinesFallbackTasks = z.record(z.string().array());\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,iCAAyB,CAAC,QAAQ,EAAE;IAC7C,sBAAsB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,0BAAkB,CAAC,KAAK,EAAE;CAClC,CAAC,CAAC;AAEU,QAAA,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\n\nexport const AzurePipelinesTaskVersion = z.object({\n major: z.number(),\n minor: z.number(),\n patch: z.number(),\n});\n\nexport const AzurePipelinesTask = z.object({\n id: z.string(),\n name: z.string(),\n deprecated: z.boolean().optional(),\n version: AzurePipelinesTaskVersion.nullable(),\n contributionIdentifier: z.string().optional(),\n});\n\nexport const AzurePipelinesJSON = z.object({\n value: AzurePipelinesTask.array(),\n});\n\nexport const AzurePipelinesFallbackTasks = z.record(z.string().array());\n"]}
@@ -46,7 +46,6 @@ class BazelDatasource extends datasource_1.Datasource {
46
46
  }
47
47
  }
48
48
  catch (err) {
49
- // istanbul ignore else: not testable with nock
50
49
  if (err instanceof http_1.HttpError) {
51
50
  if (err.response?.statusCode === 404) {
52
51
  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":";;;;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,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;;AA9DH,0CA+DC;AAtCO;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;kDAsCD","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 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"]}
@@ -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":"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","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":"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","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,83 @@
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
+ if (!releases[version].isDeprecated) {
50
+ releases[version].isDeprecated = (0, array_1.isNotNullOrUndefined)(file.yankedReason);
51
+ }
52
+ }
53
+ return {
54
+ homepage,
55
+ sourceUrl,
56
+ releases: Object.values(releases),
57
+ };
58
+ }
59
+ async function getPagedResponse(http, query, data) {
60
+ const result = [];
61
+ for (let page = 0; page <= MAX_PREFIX_DEV_GRAPHQL_PAGE; page++) {
62
+ const res = await http.postJson('https://prefix.dev/api/graphql', {
63
+ body: {
64
+ operationName: 'search',
65
+ query,
66
+ variables: {
67
+ ...data,
68
+ page,
69
+ },
70
+ },
71
+ }, prefix_dev_1.PagedResponseSchema);
72
+ const currentPage = res.body.data.package?.variants;
73
+ if (!currentPage) {
74
+ break;
75
+ }
76
+ result.push(...currentPage.page);
77
+ if (page >= currentPage.pages - 1) {
78
+ break;
79
+ }
80
+ }
81
+ return result;
82
+ }
83
+ //# 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,kCA+CC;AA3ED,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,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,CAAC;YACpC,QAAQ,CAAC,OAAO,CAAC,CAAC,YAAY,GAAG,IAAA,4BAAoB,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3E,CAAC;IACH,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 if (!releases[version].isDeprecated) {\n releases[version].isDeprecated = isNotNullOrUndefined(file.yankedReason);\n }\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"]}