renovate 42.0.0-next.1 → 42.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (782) hide show
  1. package/dist/config/app-strings.d.ts +2 -1
  2. package/dist/config/app-strings.js +10 -2
  3. package/dist/config/app-strings.js.map +1 -1
  4. package/dist/config/decrypt/bcpgp.d.ts +1 -0
  5. package/dist/config/decrypt/bcpgp.js +57 -0
  6. package/dist/config/decrypt/bcpgp.js.map +1 -0
  7. package/dist/config/decrypt/openpgp.js +0 -4
  8. package/dist/config/decrypt/openpgp.js.map +1 -1
  9. package/dist/config/decrypt.d.ts +1 -1
  10. package/dist/config/decrypt.js +9 -26
  11. package/dist/config/decrypt.js.map +1 -1
  12. package/dist/config/global.js +1 -0
  13. package/dist/config/global.js.map +1 -1
  14. package/dist/config/migrations/custom/schedule-migration.js +9 -11
  15. package/dist/config/migrations/custom/schedule-migration.js.map +1 -1
  16. package/dist/config/migrations/custom/unpublish-safe-migration.js +3 -2
  17. package/dist/config/migrations/custom/unpublish-safe-migration.js.map +1 -1
  18. package/dist/config/options/index.js +49 -2
  19. package/dist/config/options/index.js.map +1 -1
  20. package/dist/config/presets/common.js +1 -0
  21. package/dist/config/presets/common.js.map +1 -1
  22. package/dist/config/presets/internal/abandonments.js +4 -1
  23. package/dist/config/presets/internal/abandonments.js.map +1 -1
  24. package/dist/config/presets/internal/config.js +15 -0
  25. package/dist/config/presets/internal/config.js.map +1 -1
  26. package/dist/config/presets/internal/custom-managers.js +2 -2
  27. package/dist/config/presets/internal/custom-managers.js.map +1 -1
  28. package/dist/config/presets/internal/default.js +12 -1
  29. package/dist/config/presets/internal/default.js.map +1 -1
  30. package/dist/config/presets/internal/group.js +13 -0
  31. package/dist/config/presets/internal/group.js.map +1 -1
  32. package/dist/config/presets/internal/npm.js +1 -8
  33. package/dist/config/presets/internal/npm.js.map +1 -1
  34. package/dist/config/presets/internal/packages.js +5 -1
  35. package/dist/config/presets/internal/packages.js.map +1 -1
  36. package/dist/config/presets/internal/security.js +8 -0
  37. package/dist/config/presets/internal/security.js.map +1 -1
  38. package/dist/config/presets/internal/workarounds.js +2 -2
  39. package/dist/config/presets/internal/workarounds.js.map +1 -1
  40. package/dist/config/schema.d.ts +1 -1
  41. package/dist/config/secrets.js +2 -2
  42. package/dist/config/secrets.js.map +1 -1
  43. package/dist/config/types.d.ts +26 -1
  44. package/dist/config/types.js.map +1 -1
  45. package/dist/config/validation.js +4 -3
  46. package/dist/config/validation.js.map +1 -1
  47. package/dist/config-validator.js +1 -1
  48. package/dist/config-validator.js.map +1 -1
  49. package/dist/constants/platforms.js +1 -0
  50. package/dist/constants/platforms.js.map +1 -1
  51. package/dist/data/monorepo.json +13 -2
  52. package/dist/data/node-js-schedule.json +1 -1
  53. package/dist/data/replacements.json +34 -0
  54. package/dist/data-files.generated.js +3 -3
  55. package/dist/data-files.generated.js.map +1 -1
  56. package/dist/logger/renovate-logger.d.ts +1 -0
  57. package/dist/logger/renovate-logger.js +3 -0
  58. package/dist/logger/renovate-logger.js.map +1 -1
  59. package/dist/logger/utils.js +2 -1
  60. package/dist/logger/utils.js.map +1 -1
  61. package/dist/manager-list.generated.d.ts +1 -1
  62. package/dist/manager-list.generated.js +1 -1
  63. package/dist/manager-list.generated.js.map +1 -1
  64. package/dist/modules/datasource/api.js +4 -0
  65. package/dist/modules/datasource/api.js.map +1 -1
  66. package/dist/modules/datasource/aws-eks-addon/schema.d.ts +1 -8
  67. package/dist/modules/datasource/aws-eks-addon/schema.js +7 -5
  68. package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -1
  69. package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +12 -12
  70. package/dist/modules/datasource/bitrise/schema.d.ts +1 -1
  71. package/dist/modules/datasource/buildpacks-registry/index.js +1 -1
  72. package/dist/modules/datasource/buildpacks-registry/index.js.map +1 -1
  73. package/dist/modules/datasource/buildpacks-registry/schema.d.ts +1 -1
  74. package/dist/modules/datasource/buildpacks-registry/schema.js +2 -2
  75. package/dist/modules/datasource/buildpacks-registry/schema.js.map +1 -1
  76. package/dist/modules/datasource/cdnjs/index.js +2 -2
  77. package/dist/modules/datasource/cdnjs/index.js.map +1 -1
  78. package/dist/modules/datasource/cdnjs/schema.d.ts +8 -8
  79. package/dist/modules/datasource/cdnjs/schema.js +3 -3
  80. package/dist/modules/datasource/cdnjs/schema.js.map +1 -1
  81. package/dist/modules/datasource/conan/schema.d.ts +3 -3
  82. package/dist/modules/datasource/conda/prefix-dev.js +1 -1
  83. package/dist/modules/datasource/conda/prefix-dev.js.map +1 -1
  84. package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +7 -7
  85. package/dist/modules/datasource/conda/schema/prefix-dev.js +2 -2
  86. package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -1
  87. package/dist/modules/datasource/cpan/schema.js +2 -2
  88. package/dist/modules/datasource/cpan/schema.js.map +1 -1
  89. package/dist/modules/datasource/crate/index.js +12 -11
  90. package/dist/modules/datasource/crate/index.js.map +1 -1
  91. package/dist/modules/datasource/crate/schema.d.ts +1 -1
  92. package/dist/modules/datasource/crate/schema.js +2 -2
  93. package/dist/modules/datasource/crate/schema.js.map +1 -1
  94. package/dist/modules/datasource/custom/index.d.ts +1 -1
  95. package/dist/modules/datasource/custom/index.js +2 -2
  96. package/dist/modules/datasource/custom/index.js.map +1 -1
  97. package/dist/modules/datasource/custom/schema.d.ts +1 -1
  98. package/dist/modules/datasource/custom/schema.js +2 -2
  99. package/dist/modules/datasource/custom/schema.js.map +1 -1
  100. package/dist/modules/datasource/docker/index.d.ts +1 -1
  101. package/dist/modules/datasource/docker/index.js +4 -1
  102. package/dist/modules/datasource/docker/index.js.map +1 -1
  103. package/dist/modules/datasource/docker/schema.d.ts +4 -4
  104. package/dist/modules/datasource/forgejo-releases/index.js +3 -3
  105. package/dist/modules/datasource/forgejo-releases/index.js.map +1 -1
  106. package/dist/modules/datasource/forgejo-releases/schema.d.ts +6 -6
  107. package/dist/modules/datasource/forgejo-releases/schema.js +3 -3
  108. package/dist/modules/datasource/forgejo-releases/schema.js.map +1 -1
  109. package/dist/modules/datasource/forgejo-tags/index.js +3 -3
  110. package/dist/modules/datasource/forgejo-tags/index.js.map +1 -1
  111. package/dist/modules/datasource/forgejo-tags/schema.d.ts +4 -4
  112. package/dist/modules/datasource/forgejo-tags/schema.js +7 -7
  113. package/dist/modules/datasource/forgejo-tags/schema.js.map +1 -1
  114. package/dist/modules/datasource/gitea-releases/index.js +3 -3
  115. package/dist/modules/datasource/gitea-releases/index.js.map +1 -1
  116. package/dist/modules/datasource/gitea-releases/schema.d.ts +6 -6
  117. package/dist/modules/datasource/gitea-releases/schema.js +3 -3
  118. package/dist/modules/datasource/gitea-releases/schema.js.map +1 -1
  119. package/dist/modules/datasource/gitea-tags/index.js +3 -3
  120. package/dist/modules/datasource/gitea-tags/index.js.map +1 -1
  121. package/dist/modules/datasource/gitea-tags/schema.d.ts +4 -4
  122. package/dist/modules/datasource/gitea-tags/schema.js +7 -7
  123. package/dist/modules/datasource/gitea-tags/schema.js.map +1 -1
  124. package/dist/modules/datasource/github-runners/index.js +5 -3
  125. package/dist/modules/datasource/github-runners/index.js.map +1 -1
  126. package/dist/modules/datasource/go/base.js +3 -2
  127. package/dist/modules/datasource/go/base.js.map +1 -1
  128. package/dist/modules/datasource/go/common.js +13 -9
  129. package/dist/modules/datasource/go/common.js.map +1 -1
  130. package/dist/modules/datasource/go/index.js +7 -2
  131. package/dist/modules/datasource/go/index.js.map +1 -1
  132. package/dist/modules/datasource/go/releases-direct.d.ts +2 -0
  133. package/dist/modules/datasource/go/releases-direct.js +7 -1
  134. package/dist/modules/datasource/go/releases-direct.js.map +1 -1
  135. package/dist/modules/datasource/go/releases-goproxy.js +1 -1
  136. package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
  137. package/dist/modules/datasource/helm/index.js +1 -1
  138. package/dist/modules/datasource/helm/index.js.map +1 -1
  139. package/dist/modules/datasource/helm/schema.d.ts +2 -2
  140. package/dist/modules/datasource/helm/schema.js +4 -4
  141. package/dist/modules/datasource/helm/schema.js.map +1 -1
  142. package/dist/modules/datasource/jsr/common.d.ts +1 -0
  143. package/dist/modules/datasource/jsr/common.js +12 -0
  144. package/dist/modules/datasource/jsr/common.js.map +1 -0
  145. package/dist/modules/datasource/jsr/index.d.ts +12 -0
  146. package/dist/modules/datasource/jsr/index.js +66 -0
  147. package/dist/modules/datasource/jsr/index.js.map +1 -0
  148. package/dist/modules/datasource/jsr/schema.d.ts +27 -0
  149. package/dist/modules/datasource/jsr/schema.js +20 -0
  150. package/dist/modules/datasource/jsr/schema.js.map +1 -0
  151. package/dist/modules/datasource/jsr/util.d.ts +4 -0
  152. package/dist/modules/datasource/jsr/util.js +53 -0
  153. package/dist/modules/datasource/jsr/util.js.map +1 -0
  154. package/dist/modules/datasource/maven/index.js +14 -0
  155. package/dist/modules/datasource/maven/index.js.map +1 -1
  156. package/dist/modules/datasource/maven/util.js +10 -0
  157. package/dist/modules/datasource/maven/util.js.map +1 -1
  158. package/dist/modules/datasource/npm/get.js +2 -1
  159. package/dist/modules/datasource/npm/get.js.map +1 -1
  160. package/dist/modules/datasource/npm/types.d.ts +7 -0
  161. package/dist/modules/datasource/npm/types.js.map +1 -1
  162. package/dist/modules/datasource/nuget/v3.js +3 -1
  163. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  164. package/dist/modules/datasource/packagist/schema.d.ts +12 -12
  165. package/dist/modules/datasource/pypi/index.d.ts +1 -0
  166. package/dist/modules/datasource/pypi/index.js +1 -0
  167. package/dist/modules/datasource/pypi/index.js.map +1 -1
  168. package/dist/modules/datasource/python-version/schema.d.ts +3 -3
  169. package/dist/modules/datasource/rpm/index.d.ts +7 -0
  170. package/dist/modules/datasource/rpm/index.js +7 -0
  171. package/dist/modules/datasource/rpm/index.js.map +1 -1
  172. package/dist/modules/datasource/types.d.ts +2 -0
  173. package/dist/modules/datasource/types.js.map +1 -1
  174. package/dist/modules/datasource/typst/index.d.ts +11 -0
  175. package/dist/modules/datasource/typst/index.js +65 -0
  176. package/dist/modules/datasource/typst/index.js.map +1 -0
  177. package/dist/modules/datasource/typst/schema.d.ts +31 -0
  178. package/dist/modules/datasource/typst/schema.js +28 -0
  179. package/dist/modules/datasource/typst/schema.js.map +1 -0
  180. package/dist/modules/datasource/unity3d-packages/schema.d.ts +4 -4
  181. package/dist/modules/manager/api.js +6 -0
  182. package/dist/modules/manager/api.js.map +1 -1
  183. package/dist/modules/manager/argocd/extract.js +1 -1
  184. package/dist/modules/manager/argocd/extract.js.map +1 -1
  185. package/dist/modules/manager/argocd/schema.d.ts +1 -1
  186. package/dist/modules/manager/argocd/schema.js +2 -2
  187. package/dist/modules/manager/argocd/schema.js.map +1 -1
  188. package/dist/modules/manager/azure-pipelines/schema.d.ts +1 -1
  189. package/dist/modules/manager/batect/extract.js +1 -1
  190. package/dist/modules/manager/batect/extract.js.map +1 -1
  191. package/dist/modules/manager/batect/schema.d.ts +4 -4
  192. package/dist/modules/manager/batect/schema.js +2 -2
  193. package/dist/modules/manager/batect/schema.js.map +1 -1
  194. package/dist/modules/manager/bazel/rules/docker.d.ts +3 -3
  195. package/dist/modules/manager/bazel/rules/git.d.ts +5 -5
  196. package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
  197. package/dist/modules/manager/bazel/rules/oci.d.ts +3 -3
  198. package/dist/modules/manager/bazel-module/extract.js +5 -0
  199. package/dist/modules/manager/bazel-module/extract.js.map +1 -1
  200. package/dist/modules/manager/bazel-module/parser/context.d.ts +6 -0
  201. package/dist/modules/manager/bazel-module/parser/context.js +42 -2
  202. package/dist/modules/manager/bazel-module/parser/context.js.map +1 -1
  203. package/dist/modules/manager/bazel-module/parser/fragments.d.ts +276 -112
  204. package/dist/modules/manager/bazel-module/parser/fragments.js +70 -32
  205. package/dist/modules/manager/bazel-module/parser/fragments.js.map +1 -1
  206. package/dist/modules/manager/bazel-module/parser/index.js +3 -1
  207. package/dist/modules/manager/bazel-module/parser/index.js.map +1 -1
  208. package/dist/modules/manager/bazel-module/parser/maven.d.ts +27 -27
  209. package/dist/modules/manager/bazel-module/parser/maven.js +7 -7
  210. package/dist/modules/manager/bazel-module/parser/maven.js.map +1 -1
  211. package/dist/modules/manager/bazel-module/parser/oci.d.ts +38 -38
  212. package/dist/modules/manager/bazel-module/parser/oci.js +5 -5
  213. package/dist/modules/manager/bazel-module/parser/oci.js.map +1 -1
  214. package/dist/modules/manager/bazel-module/parser/repo-rules.d.ts +5 -0
  215. package/dist/modules/manager/bazel-module/parser/repo-rules.js +71 -0
  216. package/dist/modules/manager/bazel-module/parser/repo-rules.js.map +1 -0
  217. package/dist/modules/manager/bazel-module/rules-img.d.ts +229 -0
  218. package/dist/modules/manager/bazel-module/rules-img.js +74 -0
  219. package/dist/modules/manager/bazel-module/rules-img.js.map +1 -0
  220. package/dist/modules/manager/bazel-module/rules.d.ts +101 -101
  221. package/dist/modules/manager/bazel-module/rules.js +18 -18
  222. package/dist/modules/manager/bazel-module/rules.js.map +1 -1
  223. package/dist/modules/manager/bitrise/schema.d.ts +1 -1
  224. package/dist/modules/manager/bun/artifacts.js +5 -4
  225. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  226. package/dist/modules/manager/bundler/locked-version.js +44 -23
  227. package/dist/modules/manager/bundler/locked-version.js.map +1 -1
  228. package/dist/modules/manager/cargo/artifacts.js +15 -11
  229. package/dist/modules/manager/cargo/artifacts.js.map +1 -1
  230. package/dist/modules/manager/cargo/extract.js +6 -3
  231. package/dist/modules/manager/cargo/extract.js.map +1 -1
  232. package/dist/modules/manager/cargo/index.d.ts +0 -1
  233. package/dist/modules/manager/cargo/index.js +11 -4
  234. package/dist/modules/manager/cargo/index.js.map +1 -1
  235. package/dist/modules/manager/cargo/locked-version.d.ts +2 -2
  236. package/dist/modules/manager/cargo/locked-version.js +1 -1
  237. package/dist/modules/manager/cargo/locked-version.js.map +1 -1
  238. package/dist/modules/manager/cargo/schema.d.ts +206 -35
  239. package/dist/modules/manager/cargo/schema.js +26 -18
  240. package/dist/modules/manager/cargo/schema.js.map +1 -1
  241. package/dist/modules/manager/cloudbuild/schema.d.ts +1 -1
  242. package/dist/modules/manager/composer/schema.d.ts +98 -98
  243. package/dist/modules/manager/conan/artifacts.js +12 -2
  244. package/dist/modules/manager/conan/artifacts.js.map +1 -1
  245. package/dist/modules/manager/conan/extract.js +1 -1
  246. package/dist/modules/manager/conan/extract.js.map +1 -1
  247. package/dist/modules/manager/conan/index.d.ts +0 -1
  248. package/dist/modules/manager/conan/index.js +0 -1
  249. package/dist/modules/manager/conan/index.js.map +1 -1
  250. package/dist/modules/manager/copier/artifacts.js +5 -5
  251. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  252. package/dist/modules/manager/copier/schema.d.ts +2 -2
  253. package/dist/modules/manager/copier/schema.js +5 -1
  254. package/dist/modules/manager/copier/schema.js.map +1 -1
  255. package/dist/modules/manager/crossplane/extract.js +1 -1
  256. package/dist/modules/manager/crossplane/extract.js.map +1 -1
  257. package/dist/modules/manager/crossplane/schema.d.ts +2 -2
  258. package/dist/modules/manager/crossplane/schema.js +2 -2
  259. package/dist/modules/manager/crossplane/schema.js.map +1 -1
  260. package/dist/modules/manager/crow/extract.d.ts +2 -0
  261. package/dist/modules/manager/crow/extract.js +35 -0
  262. package/dist/modules/manager/crow/extract.js.map +1 -0
  263. package/dist/modules/manager/crow/index.d.ts +8 -0
  264. package/dist/modules/manager/crow/index.js +13 -0
  265. package/dist/modules/manager/crow/index.js.map +1 -0
  266. package/dist/modules/manager/crow/schema.d.ts +66 -0
  267. package/dist/modules/manager/crow/schema.js +15 -0
  268. package/dist/modules/manager/crow/schema.js.map +1 -0
  269. package/dist/modules/manager/custom/jsonata/schema.d.ts +1 -1
  270. package/dist/modules/manager/custom/jsonata/schema.js +4 -4
  271. package/dist/modules/manager/custom/jsonata/schema.js.map +1 -1
  272. package/dist/modules/manager/custom/jsonata/utils.js +3 -3
  273. package/dist/modules/manager/custom/jsonata/utils.js.map +1 -1
  274. package/dist/modules/manager/devbox/extract.js +1 -1
  275. package/dist/modules/manager/devbox/extract.js.map +1 -1
  276. package/dist/modules/manager/devbox/schema.d.ts +1 -1
  277. package/dist/modules/manager/devbox/schema.js +2 -2
  278. package/dist/modules/manager/devbox/schema.js.map +1 -1
  279. package/dist/modules/manager/devcontainer/schema.d.ts +1 -1
  280. package/dist/modules/manager/fingerprint.generated.js +35 -32
  281. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  282. package/dist/modules/manager/fleet/schema.d.ts +16 -16
  283. package/dist/modules/manager/flux/schema.d.ts +24 -24
  284. package/dist/modules/manager/github-actions/community.d.ts +96 -0
  285. package/dist/modules/manager/github-actions/community.js +116 -10
  286. package/dist/modules/manager/github-actions/community.js.map +1 -1
  287. package/dist/modules/manager/github-actions/extract.js +2 -1
  288. package/dist/modules/manager/github-actions/extract.js.map +1 -1
  289. package/dist/modules/manager/github-actions/schema.d.ts +3 -3
  290. package/dist/modules/manager/github-actions/schema.js +7 -7
  291. package/dist/modules/manager/github-actions/schema.js.map +1 -1
  292. package/dist/modules/manager/gitlabci/extract.js +2 -0
  293. package/dist/modules/manager/gitlabci/extract.js.map +1 -1
  294. package/dist/modules/manager/glasskube/schema.d.ts +12 -12
  295. package/dist/modules/manager/gleam/schema.d.ts +4 -4
  296. package/dist/modules/manager/gomod/artifacts.js +8 -4
  297. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  298. package/dist/modules/manager/gradle/parser/dependencies.js +23 -2
  299. package/dist/modules/manager/gradle/parser/dependencies.js.map +1 -1
  300. package/dist/modules/manager/gradle/parser/objects.js +15 -0
  301. package/dist/modules/manager/gradle/parser/objects.js.map +1 -1
  302. package/dist/modules/manager/gradle/parser.js +1 -1
  303. package/dist/modules/manager/gradle/parser.js.map +1 -1
  304. package/dist/modules/manager/helmfile/extract.js +26 -21
  305. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  306. package/dist/modules/manager/helmfile/index.js +4 -1
  307. package/dist/modules/manager/helmfile/index.js.map +1 -1
  308. package/dist/modules/manager/helmfile/schema.d.ts +4 -4
  309. package/dist/modules/manager/maven-wrapper/artifacts.js +1 -1
  310. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  311. package/dist/modules/manager/maven-wrapper/extract.js +4 -4
  312. package/dist/modules/manager/maven-wrapper/extract.js.map +1 -1
  313. package/dist/modules/manager/maven-wrapper/index.d.ts +1 -1
  314. package/dist/modules/manager/maven-wrapper/index.js +5 -2
  315. package/dist/modules/manager/maven-wrapper/index.js.map +1 -1
  316. package/dist/modules/manager/mise/backends.d.ts +2 -2
  317. package/dist/modules/manager/mise/backends.js +1 -1
  318. package/dist/modules/manager/mise/backends.js.map +1 -1
  319. package/dist/modules/manager/mise/extract.js.map +1 -1
  320. package/dist/modules/manager/mise/schema.d.ts +6 -29
  321. package/dist/modules/manager/mise/schema.js +7 -8
  322. package/dist/modules/manager/mise/schema.js.map +1 -1
  323. package/dist/modules/manager/mise/upgradeable-tooling.js +1 -1
  324. package/dist/modules/manager/mise/upgradeable-tooling.js.map +1 -1
  325. package/dist/modules/manager/mise/utils.d.ts +2 -2
  326. package/dist/modules/manager/mise/utils.js +1 -1
  327. package/dist/modules/manager/mise/utils.js.map +1 -1
  328. package/dist/modules/manager/nix/artifacts.js +2 -2
  329. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  330. package/dist/modules/manager/nix/extract.d.ts +2 -2
  331. package/dist/modules/manager/nix/extract.js +79 -67
  332. package/dist/modules/manager/nix/extract.js.map +1 -1
  333. package/dist/modules/manager/nix/index.d.ts +1 -0
  334. package/dist/modules/manager/nix/index.js +3 -1
  335. package/dist/modules/manager/nix/index.js.map +1 -1
  336. package/dist/modules/manager/nix/range.d.ts +3 -0
  337. package/dist/modules/manager/nix/range.js +10 -0
  338. package/dist/modules/manager/nix/range.js.map +1 -0
  339. package/dist/modules/manager/nix/schema.d.ts +42 -28
  340. package/dist/modules/manager/nix/schema.js +4 -1
  341. package/dist/modules/manager/nix/schema.js.map +1 -1
  342. package/dist/modules/manager/npm/extract/common/package-file.d.ts +1 -0
  343. package/dist/modules/manager/npm/extract/common/package-file.js +8 -0
  344. package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
  345. package/dist/modules/manager/npm/extract/index.js +24 -7
  346. package/dist/modules/manager/npm/extract/index.js.map +1 -1
  347. package/dist/modules/manager/npm/extract/pnpm.d.ts +4 -3
  348. package/dist/modules/manager/npm/extract/pnpm.js +1 -1
  349. package/dist/modules/manager/npm/extract/pnpm.js.map +1 -1
  350. package/dist/modules/manager/npm/extract/post/locked-versions.js +6 -0
  351. package/dist/modules/manager/npm/extract/post/locked-versions.js.map +1 -1
  352. package/dist/modules/manager/npm/extract/yarn.d.ts +4 -0
  353. package/dist/modules/manager/npm/extract/yarn.js +35 -0
  354. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  355. package/dist/modules/manager/npm/extract/yarnrc.d.ts +4 -4
  356. package/dist/modules/manager/npm/extract/yarnrc.js +1 -2
  357. package/dist/modules/manager/npm/extract/yarnrc.js.map +1 -1
  358. package/dist/modules/manager/npm/index.js +1 -0
  359. package/dist/modules/manager/npm/index.js.map +1 -1
  360. package/dist/modules/manager/npm/post-update/index.js +2 -1
  361. package/dist/modules/manager/npm/post-update/index.js.map +1 -1
  362. package/dist/modules/manager/npm/post-update/npm.js +14 -1
  363. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  364. package/dist/modules/manager/npm/post-update/pnpm.js +6 -1
  365. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  366. package/dist/modules/manager/npm/post-update/types.d.ts +5 -5
  367. package/dist/modules/manager/npm/post-update/types.js.map +1 -1
  368. package/dist/modules/manager/npm/post-update/utils.d.ts +3 -4
  369. package/dist/modules/manager/npm/post-update/utils.js +2 -13
  370. package/dist/modules/manager/npm/post-update/utils.js.map +1 -1
  371. package/dist/modules/manager/npm/schema.d.ts +35 -97
  372. package/dist/modules/manager/npm/schema.js +21 -16
  373. package/dist/modules/manager/npm/schema.js.map +1 -1
  374. package/dist/modules/manager/npm/update/dependency/index.js +4 -0
  375. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  376. package/dist/modules/manager/npm/update/dependency/pnpm.js +1 -1
  377. package/dist/modules/manager/npm/update/dependency/pnpm.js.map +1 -1
  378. package/dist/modules/manager/npm/update/dependency/yarn.d.ts +2 -0
  379. package/dist/modules/manager/npm/update/dependency/yarn.js +102 -0
  380. package/dist/modules/manager/npm/update/dependency/yarn.js.map +1 -0
  381. package/dist/modules/manager/npm/utils.d.ts +2 -0
  382. package/dist/modules/manager/npm/utils.js +10 -0
  383. package/dist/modules/manager/npm/utils.js.map +1 -1
  384. package/dist/modules/manager/nuget/extract.js +5 -0
  385. package/dist/modules/manager/nuget/extract.js.map +1 -1
  386. package/dist/modules/manager/nuget/schema.d.ts +3 -56
  387. package/dist/modules/manager/nuget/schema.js +5 -6
  388. package/dist/modules/manager/nuget/schema.js.map +1 -1
  389. package/dist/modules/manager/nvm/extract.js +8 -1
  390. package/dist/modules/manager/nvm/extract.js.map +1 -1
  391. package/dist/modules/manager/ocb/extract.js +1 -1
  392. package/dist/modules/manager/ocb/extract.js.map +1 -1
  393. package/dist/modules/manager/ocb/schema.d.ts +4 -4
  394. package/dist/modules/manager/ocb/schema.js +9 -9
  395. package/dist/modules/manager/ocb/schema.js.map +1 -1
  396. package/dist/modules/manager/pep621/extract.d.ts +1 -1
  397. package/dist/modules/manager/pep621/extract.js +11 -3
  398. package/dist/modules/manager/pep621/extract.js.map +1 -1
  399. package/dist/modules/manager/pep621/processors/abstract.d.ts +10 -0
  400. package/dist/modules/manager/pep621/processors/abstract.js +25 -0
  401. package/dist/modules/manager/pep621/processors/abstract.js.map +1 -0
  402. package/dist/modules/manager/pep621/processors/hatch.d.ts +2 -2
  403. package/dist/modules/manager/pep621/processors/hatch.js +2 -1
  404. package/dist/modules/manager/pep621/processors/hatch.js.map +1 -1
  405. package/dist/modules/manager/pep621/processors/index.d.ts +2 -4
  406. package/dist/modules/manager/pep621/processors/index.js.map +1 -1
  407. package/dist/modules/manager/pep621/processors/pdm.d.ts +3 -2
  408. package/dist/modules/manager/pep621/processors/pdm.js +5 -4
  409. package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
  410. package/dist/modules/manager/pep621/processors/types.d.ts +1 -0
  411. package/dist/modules/manager/pep621/processors/types.js.map +1 -1
  412. package/dist/modules/manager/pep621/processors/uv.d.ts +3 -2
  413. package/dist/modules/manager/pep621/processors/uv.js +8 -6
  414. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  415. package/dist/modules/manager/pep621/schema.d.ts +35 -257
  416. package/dist/modules/manager/pep621/schema.js +17 -21
  417. package/dist/modules/manager/pep621/schema.js.map +1 -1
  418. package/dist/modules/manager/pep723/extract.js +1 -1
  419. package/dist/modules/manager/pep723/extract.js.map +1 -1
  420. package/dist/modules/manager/pep723/schema.d.ts +1 -1
  421. package/dist/modules/manager/pep723/schema.js +2 -2
  422. package/dist/modules/manager/pep723/schema.js.map +1 -1
  423. package/dist/modules/manager/pip-compile/extract.d.ts +1 -1
  424. package/dist/modules/manager/pip-compile/extract.js +9 -6
  425. package/dist/modules/manager/pip-compile/extract.js.map +1 -1
  426. package/dist/modules/manager/pixi/extract.js +4 -7
  427. package/dist/modules/manager/pixi/extract.js.map +1 -1
  428. package/dist/modules/manager/pixi/schema.d.ts +296 -4
  429. package/dist/modules/manager/pixi/schema.js +11 -4
  430. package/dist/modules/manager/pixi/schema.js.map +1 -1
  431. package/dist/modules/manager/poetry/artifacts.js +2 -2
  432. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  433. package/dist/modules/manager/poetry/extract.js +1 -1
  434. package/dist/modules/manager/poetry/extract.js.map +1 -1
  435. package/dist/modules/manager/poetry/index.d.ts +1 -0
  436. package/dist/modules/manager/poetry/index.js +2 -1
  437. package/dist/modules/manager/poetry/index.js.map +1 -1
  438. package/dist/modules/manager/poetry/schema.d.ts +45 -138
  439. package/dist/modules/manager/poetry/schema.js +49 -32
  440. package/dist/modules/manager/poetry/schema.js.map +1 -1
  441. package/dist/modules/manager/poetry/update-locked.js +2 -2
  442. package/dist/modules/manager/poetry/update-locked.js.map +1 -1
  443. package/dist/modules/manager/pre-commit/extract.js +2 -1
  444. package/dist/modules/manager/pre-commit/extract.js.map +1 -1
  445. package/dist/modules/manager/pub/extract.js +38 -8
  446. package/dist/modules/manager/pub/extract.js.map +1 -1
  447. package/dist/modules/manager/pub/index.d.ts +0 -1
  448. package/dist/modules/manager/pub/index.js +0 -3
  449. package/dist/modules/manager/pub/index.js.map +1 -1
  450. package/dist/modules/manager/pub/schema.d.ts +25 -79
  451. package/dist/modules/manager/pub/schema.js +17 -10
  452. package/dist/modules/manager/pub/schema.js.map +1 -1
  453. package/dist/modules/manager/pub/utils.d.ts +3 -3
  454. package/dist/modules/manager/pub/utils.js +2 -2
  455. package/dist/modules/manager/pub/utils.js.map +1 -1
  456. package/dist/modules/manager/quadlet/extract.d.ts +2 -0
  457. package/dist/modules/manager/quadlet/extract.js +54 -0
  458. package/dist/modules/manager/quadlet/extract.js.map +1 -0
  459. package/dist/modules/manager/quadlet/index.d.ts +8 -0
  460. package/dist/modules/manager/quadlet/index.js +13 -0
  461. package/dist/modules/manager/quadlet/index.js.map +1 -0
  462. package/dist/modules/manager/quadlet/schema.d.ts +45 -0
  463. package/dist/modules/manager/quadlet/schema.js +23 -0
  464. package/dist/modules/manager/quadlet/schema.js.map +1 -0
  465. package/dist/modules/manager/renovate-config-presets/extract.js +1 -1
  466. package/dist/modules/manager/renovate-config-presets/extract.js.map +1 -1
  467. package/dist/modules/manager/renovate-config-presets/index.js +1 -1
  468. package/dist/modules/manager/renovate-config-presets/index.js.map +1 -1
  469. package/dist/modules/manager/renovate-config-presets/schema.d.ts +1 -1
  470. package/dist/modules/manager/renovate-config-presets/schema.js +2 -2
  471. package/dist/modules/manager/renovate-config-presets/schema.js.map +1 -1
  472. package/dist/modules/manager/swift/extract.js +25 -9
  473. package/dist/modules/manager/swift/extract.js.map +1 -1
  474. package/dist/modules/manager/swift/index.js +7 -1
  475. package/dist/modules/manager/swift/index.js.map +1 -1
  476. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js +1 -1
  477. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js.map +1 -1
  478. package/dist/modules/manager/terraform/lockfile/hash.js +1 -1
  479. package/dist/modules/manager/terraform/lockfile/hash.js.map +1 -1
  480. package/dist/modules/manager/terragrunt/util.js +1 -1
  481. package/dist/modules/manager/terragrunt/util.js.map +1 -1
  482. package/dist/modules/manager/types.d.ts +2 -0
  483. package/dist/modules/manager/types.js.map +1 -1
  484. package/dist/modules/manager/typst/extract.d.ts +2 -0
  485. package/dist/modules/manager/typst/extract.js +31 -0
  486. package/dist/modules/manager/typst/extract.js.map +1 -0
  487. package/dist/modules/manager/typst/index.d.ts +7 -0
  488. package/dist/modules/manager/typst/index.js +12 -0
  489. package/dist/modules/manager/typst/index.js.map +1 -0
  490. package/dist/modules/manager/util.js +3 -2
  491. package/dist/modules/manager/util.js.map +1 -1
  492. package/dist/modules/manager/vendir/schema.d.ts +13 -13
  493. package/dist/modules/platform/azure/azure-helper.js +1 -1
  494. package/dist/modules/platform/azure/azure-helper.js.map +1 -1
  495. package/dist/modules/platform/azure/schema.d.ts +3 -3
  496. package/dist/modules/platform/azure/schema.js +4 -4
  497. package/dist/modules/platform/azure/schema.js.map +1 -1
  498. package/dist/modules/platform/bitbucket/index.js +12 -9
  499. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  500. package/dist/modules/platform/bitbucket/schema.d.ts +7 -7
  501. package/dist/modules/platform/bitbucket/schema.js +7 -7
  502. package/dist/modules/platform/bitbucket/schema.js.map +1 -1
  503. package/dist/modules/platform/bitbucket-server/index.d.ts +3 -1
  504. package/dist/modules/platform/bitbucket-server/index.js +87 -4
  505. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  506. package/dist/modules/platform/bitbucket-server/schema.d.ts +106 -11
  507. package/dist/modules/platform/bitbucket-server/schema.js +13 -7
  508. package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
  509. package/dist/modules/platform/bitbucket-server/utils.d.ts +2 -0
  510. package/dist/modules/platform/bitbucket-server/utils.js +25 -0
  511. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  512. package/dist/modules/platform/codecommit/index.d.ts +0 -8
  513. package/dist/modules/platform/codecommit/index.js +16 -16
  514. package/dist/modules/platform/codecommit/index.js.map +1 -1
  515. package/dist/modules/platform/forgejo/index.js +39 -38
  516. package/dist/modules/platform/forgejo/index.js.map +1 -1
  517. package/dist/modules/platform/forgejo/types.d.ts +3 -2
  518. package/dist/modules/platform/forgejo/types.js.map +1 -1
  519. package/dist/modules/platform/forgejo/utils.d.ts +1 -0
  520. package/dist/modules/platform/forgejo/utils.js +17 -0
  521. package/dist/modules/platform/forgejo/utils.js.map +1 -1
  522. package/dist/modules/platform/gerrit/client.d.ts +1 -1
  523. package/dist/modules/platform/gerrit/client.js +32 -33
  524. package/dist/modules/platform/gerrit/client.js.map +1 -1
  525. package/dist/modules/platform/gerrit/index.d.ts +1 -2
  526. package/dist/modules/platform/gerrit/index.js +8 -16
  527. package/dist/modules/platform/gerrit/index.js.map +1 -1
  528. package/dist/modules/platform/gerrit/scm.js +7 -13
  529. package/dist/modules/platform/gerrit/scm.js.map +1 -1
  530. package/dist/modules/platform/gerrit/types.d.ts +27 -1
  531. package/dist/modules/platform/gerrit/types.js.map +1 -1
  532. package/dist/modules/platform/gitea/index.js +34 -37
  533. package/dist/modules/platform/gitea/index.js.map +1 -1
  534. package/dist/modules/platform/gitea/schema.d.ts +3 -3
  535. package/dist/modules/platform/gitea/schema.js +3 -3
  536. package/dist/modules/platform/gitea/schema.js.map +1 -1
  537. package/dist/modules/platform/gitea/types.d.ts +3 -2
  538. package/dist/modules/platform/gitea/types.js.map +1 -1
  539. package/dist/modules/platform/gitea/utils.d.ts +1 -0
  540. package/dist/modules/platform/gitea/utils.js +17 -0
  541. package/dist/modules/platform/gitea/utils.js.map +1 -1
  542. package/dist/modules/platform/github/index.d.ts +1 -1
  543. package/dist/modules/platform/github/index.js +92 -33
  544. package/dist/modules/platform/github/index.js.map +1 -1
  545. package/dist/modules/platform/github/schema.d.ts +32 -2
  546. package/dist/modules/platform/github/schema.js +32 -8
  547. package/dist/modules/platform/github/schema.js.map +1 -1
  548. package/dist/modules/platform/github/types.d.ts +2 -2
  549. package/dist/modules/platform/github/types.js.map +1 -1
  550. package/dist/modules/platform/github/user.d.ts +2 -1
  551. package/dist/modules/platform/github/user.js.map +1 -1
  552. package/dist/modules/platform/gitlab/index.js.map +1 -1
  553. package/dist/modules/platform/gitlab/pr-cache.d.ts +0 -2
  554. package/dist/modules/platform/gitlab/pr-cache.js +28 -37
  555. package/dist/modules/platform/gitlab/pr-cache.js.map +1 -1
  556. package/dist/modules/platform/gitlab/utils.js +1 -0
  557. package/dist/modules/platform/gitlab/utils.js.map +1 -1
  558. package/dist/modules/platform/types.d.ts +1 -1
  559. package/dist/modules/platform/types.js.map +1 -1
  560. package/dist/modules/versioning/api.js +2 -0
  561. package/dist/modules/versioning/api.js.map +1 -1
  562. package/dist/modules/versioning/cargo/index.js +7 -7
  563. package/dist/modules/versioning/cargo/index.js.map +1 -1
  564. package/dist/modules/versioning/composer/index.js +0 -4
  565. package/dist/modules/versioning/composer/index.js.map +1 -1
  566. package/dist/modules/versioning/conan/index.js +1 -1
  567. package/dist/modules/versioning/conan/index.js.map +1 -1
  568. package/dist/modules/versioning/conda/index.d.ts +2 -0
  569. package/dist/modules/versioning/conda/index.js +4 -4
  570. package/dist/modules/versioning/conda/index.js.map +1 -1
  571. package/dist/modules/versioning/debian/index.d.ts +1 -1
  572. package/dist/modules/versioning/debian/index.js +2 -17
  573. package/dist/modules/versioning/debian/index.js.map +1 -1
  574. package/dist/modules/versioning/gradle/index.js +2 -2
  575. package/dist/modules/versioning/gradle/index.js.map +1 -1
  576. package/dist/modules/versioning/hashicorp/index.js +0 -1
  577. package/dist/modules/versioning/hashicorp/index.js.map +1 -1
  578. package/dist/modules/versioning/helm/index.js +0 -1
  579. package/dist/modules/versioning/helm/index.js.map +1 -1
  580. package/dist/modules/versioning/hex/index.js +0 -1
  581. package/dist/modules/versioning/hex/index.js.map +1 -1
  582. package/dist/modules/versioning/ivy/index.js +1 -2
  583. package/dist/modules/versioning/ivy/index.js.map +1 -1
  584. package/dist/modules/versioning/npm/index.js +0 -1
  585. package/dist/modules/versioning/npm/index.js.map +1 -1
  586. package/dist/modules/versioning/npm/range.js +2 -3
  587. package/dist/modules/versioning/npm/range.js.map +1 -1
  588. package/dist/modules/versioning/nuget/index.js +8 -4
  589. package/dist/modules/versioning/nuget/index.js.map +1 -1
  590. package/dist/modules/versioning/pep440/index.js +1 -1
  591. package/dist/modules/versioning/pep440/index.js.map +1 -1
  592. package/dist/modules/versioning/pep440/range.d.ts +1 -0
  593. package/dist/modules/versioning/pep440/range.js +4 -3
  594. package/dist/modules/versioning/pep440/range.js.map +1 -1
  595. package/dist/modules/versioning/poetry/index.js +0 -4
  596. package/dist/modules/versioning/poetry/index.js.map +1 -1
  597. package/dist/modules/versioning/rez/index.js +0 -1
  598. package/dist/modules/versioning/rez/index.js.map +1 -1
  599. package/dist/modules/versioning/ruby/index.js +5 -5
  600. package/dist/modules/versioning/ruby/index.js.map +1 -1
  601. package/dist/modules/versioning/ruby/strategies/index.d.ts +1 -2
  602. package/dist/modules/versioning/ruby/strategies/index.js +1 -3
  603. package/dist/modules/versioning/ruby/strategies/index.js.map +1 -1
  604. package/dist/modules/versioning/semver-partial/index.d.ts +8 -0
  605. package/dist/modules/versioning/semver-partial/index.js +211 -0
  606. package/dist/modules/versioning/semver-partial/index.js.map +1 -0
  607. package/dist/modules/versioning/swift/index.js +0 -1
  608. package/dist/modules/versioning/swift/index.js.map +1 -1
  609. package/dist/modules/versioning/types.d.ts +5 -0
  610. package/dist/modules/versioning/types.js.map +1 -1
  611. package/dist/renovate.js +0 -0
  612. package/dist/util/cache/package/decorator.js +20 -9
  613. package/dist/util/cache/package/decorator.js.map +1 -1
  614. package/dist/util/cache/package/file.d.ts +1 -1
  615. package/dist/util/cache/package/file.js +3 -3
  616. package/dist/util/cache/package/file.js.map +1 -1
  617. package/dist/util/cache/package/index.d.ts +9 -2
  618. package/dist/util/cache/package/index.js +19 -4
  619. package/dist/util/cache/package/index.js.map +1 -1
  620. package/dist/util/cache/package/namespaces.d.ts +1 -1
  621. package/dist/util/cache/package/namespaces.js +3 -0
  622. package/dist/util/cache/package/namespaces.js.map +1 -1
  623. package/dist/util/cache/package/redis.d.ts +1 -1
  624. package/dist/util/cache/package/redis.js +17 -7
  625. package/dist/util/cache/package/redis.js.map +1 -1
  626. package/dist/util/cache/package/sqlite.d.ts +1 -1
  627. package/dist/util/cache/package/sqlite.js +2 -2
  628. package/dist/util/cache/package/sqlite.js.map +1 -1
  629. package/dist/util/cache/package/types.d.ts +1 -1
  630. package/dist/util/cache/package/types.js.map +1 -1
  631. package/dist/util/cache/repository/http-cache.js +1 -1
  632. package/dist/util/cache/repository/http-cache.js.map +1 -1
  633. package/dist/util/cache/repository/schema.d.ts +1 -1
  634. package/dist/util/cache/repository/types.d.ts +1 -0
  635. package/dist/util/cache/repository/types.js.map +1 -1
  636. package/dist/util/emoji.js +2 -2
  637. package/dist/util/emoji.js.map +1 -1
  638. package/dist/util/exec/containerbase.js +5 -0
  639. package/dist/util/exec/containerbase.js.map +1 -1
  640. package/dist/util/git/index.js +6 -3
  641. package/dist/util/git/index.js.map +1 -1
  642. package/dist/util/git/private-key.js +23 -3
  643. package/dist/util/git/private-key.js.map +1 -1
  644. package/dist/util/git/types.d.ts +2 -1
  645. package/dist/util/git/types.js.map +1 -1
  646. package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +6 -6
  647. package/dist/util/http/bitbucket.js +0 -1
  648. package/dist/util/http/bitbucket.js.map +1 -1
  649. package/dist/util/http/cache/abstract-http-cache-provider.d.ts +7 -7
  650. package/dist/util/http/cache/abstract-http-cache-provider.js +11 -11
  651. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  652. package/dist/util/http/cache/memory-http-cache-provider.d.ts +3 -3
  653. package/dist/util/http/cache/memory-http-cache-provider.js +8 -8
  654. package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -1
  655. package/dist/util/http/cache/package-http-cache-provider.d.ts +5 -4
  656. package/dist/util/http/cache/package-http-cache-provider.js +17 -11
  657. package/dist/util/http/cache/package-http-cache-provider.js.map +1 -1
  658. package/dist/util/http/cache/repository-http-cache-provider.d.ts +16 -3
  659. package/dist/util/http/cache/repository-http-cache-provider.js +60 -3
  660. package/dist/util/http/cache/repository-http-cache-provider.js.map +1 -1
  661. package/dist/util/http/cache/schema.d.ts +2 -2
  662. package/dist/util/http/cache/schema.js +2 -2
  663. package/dist/util/http/cache/schema.js.map +1 -1
  664. package/dist/util/http/cache/types.d.ts +3 -3
  665. package/dist/util/http/cache/types.js.map +1 -1
  666. package/dist/util/http/gerrit.d.ts +1 -1
  667. package/dist/util/http/gerrit.js +1 -1
  668. package/dist/util/http/gerrit.js.map +1 -1
  669. package/dist/util/http/gitlab.js +0 -1
  670. package/dist/util/http/gitlab.js.map +1 -1
  671. package/dist/util/http/host-rules.js +10 -0
  672. package/dist/util/http/host-rules.js.map +1 -1
  673. package/dist/util/http/http.d.ts +1 -1
  674. package/dist/util/http/http.js +17 -15
  675. package/dist/util/http/http.js.map +1 -1
  676. package/dist/util/http/retry-after.js +1 -1
  677. package/dist/util/http/retry-after.js.map +1 -1
  678. package/dist/util/interpolator.js +2 -0
  679. package/dist/util/interpolator.js.map +1 -1
  680. package/dist/util/markdown.js +3 -3
  681. package/dist/util/markdown.js.map +1 -1
  682. package/dist/util/merge-confidence/index.js +3 -1
  683. package/dist/util/merge-confidence/index.js.map +1 -1
  684. package/dist/util/schema-utils/index.d.ts +8 -4
  685. package/dist/util/schema-utils/index.js +16 -1
  686. package/dist/util/schema-utils/index.js.map +1 -1
  687. package/dist/util/template/index.d.ts +1 -0
  688. package/dist/util/template/index.js +70 -64
  689. package/dist/util/template/index.js.map +1 -1
  690. package/dist/workers/global/config/parse/file.js +6 -0
  691. package/dist/workers/global/config/parse/file.js.map +1 -1
  692. package/dist/workers/global/config/parse/index.js +2 -1
  693. package/dist/workers/global/config/parse/index.js.map +1 -1
  694. package/dist/workers/repository/config-migration/branch/commit-message.js +2 -1
  695. package/dist/workers/repository/config-migration/branch/commit-message.js.map +1 -1
  696. package/dist/workers/repository/config-migration/branch/create.js +1 -0
  697. package/dist/workers/repository/config-migration/branch/create.js.map +1 -1
  698. package/dist/workers/repository/config-migration/branch/rebase.js +1 -0
  699. package/dist/workers/repository/config-migration/branch/rebase.js.map +1 -1
  700. package/dist/workers/repository/dependency-dashboard.js +42 -5
  701. package/dist/workers/repository/dependency-dashboard.js.map +1 -1
  702. package/dist/workers/repository/error-config.js +1 -1
  703. package/dist/workers/repository/error-config.js.map +1 -1
  704. package/dist/workers/repository/error.js +1 -1
  705. package/dist/workers/repository/error.js.map +1 -1
  706. package/dist/workers/repository/extract/supersedes.d.ts +1 -1
  707. package/dist/workers/repository/extract/supersedes.js +31 -17
  708. package/dist/workers/repository/extract/supersedes.js.map +1 -1
  709. package/dist/workers/repository/finalize/index.js +1 -1
  710. package/dist/workers/repository/finalize/index.js.map +1 -1
  711. package/dist/workers/repository/finalize/prune.js +4 -3
  712. package/dist/workers/repository/finalize/prune.js.map +1 -1
  713. package/dist/workers/repository/index.js +49 -20
  714. package/dist/workers/repository/index.js.map +1 -1
  715. package/dist/workers/repository/init/inherited.js +7 -0
  716. package/dist/workers/repository/init/inherited.js.map +1 -1
  717. package/dist/workers/repository/init/merge.js +1 -1
  718. package/dist/workers/repository/init/merge.js.map +1 -1
  719. package/dist/workers/repository/onboarding/branch/check.js +5 -3
  720. package/dist/workers/repository/onboarding/branch/check.js.map +1 -1
  721. package/dist/workers/repository/onboarding/branch/create.js +1 -0
  722. package/dist/workers/repository/onboarding/branch/create.js.map +1 -1
  723. package/dist/workers/repository/onboarding/branch/rebase.js +1 -0
  724. package/dist/workers/repository/onboarding/branch/rebase.js.map +1 -1
  725. package/dist/workers/repository/onboarding/common.js +3 -2
  726. package/dist/workers/repository/onboarding/common.js.map +1 -1
  727. package/dist/workers/repository/process/extract-update.js +2 -2
  728. package/dist/workers/repository/process/extract-update.js.map +1 -1
  729. package/dist/workers/repository/process/fetch.js +4 -3
  730. package/dist/workers/repository/process/fetch.js.map +1 -1
  731. package/dist/workers/repository/process/index.d.ts +1 -0
  732. package/dist/workers/repository/process/index.js +25 -5
  733. package/dist/workers/repository/process/index.js.map +1 -1
  734. package/dist/workers/repository/process/lookup/filter-checks.js +42 -8
  735. package/dist/workers/repository/process/lookup/filter-checks.js.map +1 -1
  736. package/dist/workers/repository/process/lookup/filter.js +5 -7
  737. package/dist/workers/repository/process/lookup/filter.js.map +1 -1
  738. package/dist/workers/repository/process/lookup/index.js +10 -13
  739. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  740. package/dist/workers/repository/process/vulnerabilities.d.ts +1 -1
  741. package/dist/workers/repository/process/vulnerabilities.js +13 -8
  742. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  743. package/dist/workers/repository/reconfigure/comment.js +1 -1
  744. package/dist/workers/repository/reconfigure/comment.js.map +1 -1
  745. package/dist/workers/repository/reconfigure/index.js +1 -1
  746. package/dist/workers/repository/reconfigure/index.js.map +1 -1
  747. package/dist/workers/repository/update/branch/commit.js +2 -0
  748. package/dist/workers/repository/update/branch/commit.js.map +1 -1
  749. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +12 -1
  750. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  751. package/dist/workers/repository/update/branch/index.js +65 -20
  752. package/dist/workers/repository/update/branch/index.js.map +1 -1
  753. package/dist/workers/repository/update/branch/status-checks.js +5 -0
  754. package/dist/workers/repository/update/branch/status-checks.js.map +1 -1
  755. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
  756. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  757. package/dist/workers/repository/update/pr/changelog/forgejo/index.js +3 -3
  758. package/dist/workers/repository/update/pr/changelog/forgejo/index.js.map +1 -1
  759. package/dist/workers/repository/update/pr/changelog/gitea/index.js +3 -3
  760. package/dist/workers/repository/update/pr/changelog/gitea/index.js.map +1 -1
  761. package/dist/workers/repository/update/pr/changelog/release-notes.js +9 -4
  762. package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
  763. package/dist/workers/repository/update/pr/index.js +28 -11
  764. package/dist/workers/repository/update/pr/index.js.map +1 -1
  765. package/dist/workers/repository/update/pr/pr-reuse.d.ts +1 -1
  766. package/dist/workers/repository/update/pr/pr-reuse.js +2 -2
  767. package/dist/workers/repository/update/pr/pr-reuse.js.map +1 -1
  768. package/dist/workers/repository/updates/generate.js +1 -0
  769. package/dist/workers/repository/updates/generate.js.map +1 -1
  770. package/dist/workers/types.d.ts +1 -0
  771. package/dist/workers/types.js.map +1 -1
  772. package/package.json +136 -153
  773. package/renovate-schema.json +325 -111
  774. package/dist/config/decrypt/kbpgp.d.ts +0 -1
  775. package/dist/config/decrypt/kbpgp.js +0 -58
  776. package/dist/config/decrypt/kbpgp.js.map +0 -1
  777. package/dist/config/decrypt/legacy.d.ts +0 -2
  778. package/dist/config/decrypt/legacy.js +0 -36
  779. package/dist/config/decrypt/legacy.js.map +0 -1
  780. package/dist/modules/versioning/ruby/strategies/pin.d.ts +0 -4
  781. package/dist/modules/versioning/ruby/strategies/pin.js +0 -4
  782. package/dist/modules/versioning/ruby/strategies/pin.js.map +0 -1
@@ -12,7 +12,7 @@ const schema_1 = require("./schema");
12
12
  function parsePyProject(content, packageFile) {
13
13
  try {
14
14
  const jsonMap = (0, toml_1.parse)((0, toml_1.massage)(content));
15
- return schema_1.PyProjectSchema.parse(jsonMap);
15
+ return schema_1.PyProject.parse(jsonMap);
16
16
  }
17
17
  catch (err) {
18
18
  logger_1.logger.debug({ packageFile, err }, `Failed to parse and validate pyproject file`);
@@ -57,13 +57,21 @@ async function extractPackageFile(content, packageFile, _config) {
57
57
  }
58
58
  // process specific tool sets
59
59
  let processedDeps = deps;
60
+ const lockFiles = [];
60
61
  for (const processor of processors_1.processors) {
61
62
  processedDeps = processor.process(def, processedDeps);
62
63
  processedDeps = await processor.extractLockedVersions(def, processedDeps, packageFile);
64
+ const processedLockFiles = await processor.getLockfiles(def, packageFile);
65
+ lockFiles.push(...processedLockFiles);
63
66
  }
64
67
  const packageFileVersion = def.project?.version;
65
- return processedDeps.length
66
- ? { extractedConstraints, deps: processedDeps, packageFileVersion }
68
+ return processedDeps.length || lockFiles.length
69
+ ? {
70
+ extractedConstraints,
71
+ deps: processedDeps,
72
+ packageFileVersion,
73
+ lockFiles,
74
+ }
67
75
  : null;
68
76
  }
69
77
  //# sourceMappingURL=extract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pep621/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { massage as massageToml, parse as parseToml } from '../../../util/toml';\nimport { PythonVersionDatasource } from '../../datasource/python-version';\nimport * as pep440 from '../../versioning/pep440';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport { processors } from './processors';\nimport { type PyProject, PyProjectSchema } from './schema';\n\nexport function parsePyProject(\n content: string,\n packageFile?: string,\n): PyProject | null {\n try {\n const jsonMap = parseToml(massageToml(content));\n return PyProjectSchema.parse(jsonMap);\n } catch (err) {\n logger.debug(\n { packageFile, err },\n `Failed to parse and validate pyproject file`,\n );\n return null;\n }\n}\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n _config?: ExtractConfig,\n): Promise<PackageFileContent | null> {\n logger.trace(`pep621.extractPackageFile(${packageFile})`);\n\n const def = parsePyProject(content, packageFile);\n if (!def) {\n return null;\n }\n\n const deps: PackageDependency[] = [];\n\n const pythonConstraint = def.project?.['requires-python'];\n const extractedConstraints: Record<string, string> = {};\n if (pythonConstraint) {\n extractedConstraints.python = pythonConstraint;\n deps.push({\n packageName: 'python',\n depType: 'requires-python',\n currentValue: pythonConstraint,\n commitMessageTopic: 'Python',\n datasource: PythonVersionDatasource.id,\n versioning: pep440.id,\n });\n }\n\n const projectDependencies = def.project?.dependencies;\n if (projectDependencies) {\n deps.push(...projectDependencies);\n }\n\n const dependencyGroups = def['dependency-groups'];\n if (dependencyGroups) {\n deps.push(...dependencyGroups);\n }\n\n const projectOptionalDependencies = def.project?.['optional-dependencies'];\n if (projectOptionalDependencies) {\n deps.push(...projectOptionalDependencies);\n }\n\n const buildSystemRequires = def['build-system']?.requires;\n if (buildSystemRequires) {\n deps.push(...buildSystemRequires);\n }\n\n // process specific tool sets\n let processedDeps = deps;\n for (const processor of processors) {\n processedDeps = processor.process(def, processedDeps);\n processedDeps = await processor.extractLockedVersions(\n def,\n processedDeps,\n packageFile,\n );\n }\n\n const packageFileVersion = def.project?.version;\n return processedDeps.length\n ? { extractedConstraints, deps: processedDeps, packageFileVersion }\n : null;\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pep621/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { massage as massageToml, parse as parseToml } from '../../../util/toml';\nimport { PythonVersionDatasource } from '../../datasource/python-version';\nimport * as pep440 from '../../versioning/pep440';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport { processors } from './processors';\nimport { PyProject } from './schema';\n\nexport function parsePyProject(\n content: string,\n packageFile?: string,\n): PyProject | null {\n try {\n const jsonMap = parseToml(massageToml(content));\n return PyProject.parse(jsonMap);\n } catch (err) {\n logger.debug(\n { packageFile, err },\n `Failed to parse and validate pyproject file`,\n );\n return null;\n }\n}\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n _config?: ExtractConfig,\n): Promise<PackageFileContent | null> {\n logger.trace(`pep621.extractPackageFile(${packageFile})`);\n\n const def = parsePyProject(content, packageFile);\n if (!def) {\n return null;\n }\n\n const deps: PackageDependency[] = [];\n\n const pythonConstraint = def.project?.['requires-python'];\n const extractedConstraints: Record<string, string> = {};\n if (pythonConstraint) {\n extractedConstraints.python = pythonConstraint;\n deps.push({\n packageName: 'python',\n depType: 'requires-python',\n currentValue: pythonConstraint,\n commitMessageTopic: 'Python',\n datasource: PythonVersionDatasource.id,\n versioning: pep440.id,\n });\n }\n\n const projectDependencies = def.project?.dependencies;\n if (projectDependencies) {\n deps.push(...projectDependencies);\n }\n\n const dependencyGroups = def['dependency-groups'];\n if (dependencyGroups) {\n deps.push(...dependencyGroups);\n }\n\n const projectOptionalDependencies = def.project?.['optional-dependencies'];\n if (projectOptionalDependencies) {\n deps.push(...projectOptionalDependencies);\n }\n\n const buildSystemRequires = def['build-system']?.requires;\n if (buildSystemRequires) {\n deps.push(...buildSystemRequires);\n }\n\n // process specific tool sets\n let processedDeps = deps;\n const lockFiles: string[] = [];\n for (const processor of processors) {\n processedDeps = processor.process(def, processedDeps);\n processedDeps = await processor.extractLockedVersions(\n def,\n processedDeps,\n packageFile,\n );\n\n const processedLockFiles = await processor.getLockfiles(def, packageFile);\n lockFiles.push(...processedLockFiles);\n }\n\n const packageFileVersion = def.project?.version;\n return processedDeps.length || lockFiles.length\n ? {\n extractedConstraints,\n deps: processedDeps,\n packageFileVersion,\n lockFiles,\n }\n : null;\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import type { PackageDependency, UpdateArtifact, UpdateArtifactsResult } from '../../types';
2
+ import type { PyProject } from '../schema';
3
+ import type { PyProjectProcessor } from './types';
4
+ export declare abstract class BasePyProjectProcessor implements PyProjectProcessor {
5
+ protected lockfileName: string | undefined;
6
+ abstract updateArtifacts(updateArtifact: UpdateArtifact, project: PyProject): Promise<UpdateArtifactsResult[] | null>;
7
+ abstract process(project: PyProject, deps: PackageDependency[]): PackageDependency[];
8
+ abstract extractLockedVersions(project: PyProject, deps: PackageDependency[], packageFile: string): Promise<PackageDependency[]>;
9
+ getLockfiles(_project: PyProject, packageFile: string): Promise<string[]>;
10
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BasePyProjectProcessor = void 0;
4
+ const logger_1 = require("../../../../logger");
5
+ const fs_1 = require("../../../../util/fs");
6
+ class BasePyProjectProcessor {
7
+ // The name of the lockfiles to be searched for.
8
+ // This should be defined in the concrete processor classes.
9
+ // No lockfiles will be forwarded outside the manager implementation.
10
+ lockfileName;
11
+ async getLockfiles(_project, packageFile) {
12
+ if (!this.lockfileName) {
13
+ logger_1.logger.trace({ packageFile }, `No lockfile name defined for ${this.constructor.name}`);
14
+ return [];
15
+ }
16
+ const lockfilePath = await (0, fs_1.findLocalSiblingOrParent)(packageFile, this.lockfileName);
17
+ if (lockfilePath) {
18
+ return [lockfilePath];
19
+ }
20
+ logger_1.logger.debug({ packageFile }, `No ${this.lockfileName} found`);
21
+ return [];
22
+ }
23
+ }
24
+ exports.BasePyProjectProcessor = BasePyProjectProcessor;
25
+ //# sourceMappingURL=abstract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/pep621/processors/abstract.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAC5C,4CAA+D;AAS/D,MAAsB,sBAAsB;IAC1C,gDAAgD;IAChD,4DAA4D;IAC5D,qEAAqE;IAC3D,YAAY,CAAqB;IAkB3C,KAAK,CAAC,YAAY,CAChB,QAAmB,EACnB,WAAmB;QAEnB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,eAAM,CAAC,KAAK,CACV,EAAE,WAAW,EAAE,EACf,gCAAgC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CACxD,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAA,6BAAwB,EACjD,WAAW,EACX,IAAI,CAAC,YAAY,CAClB,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,YAAY,CAAC,CAAC;QACxB,CAAC;QAED,eAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,MAAM,IAAI,CAAC,YAAY,QAAQ,CAAC,CAAC;QAC/D,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AA7CD,wDA6CC","sourcesContent":["import { logger } from '../../../../logger';\nimport { findLocalSiblingOrParent } from '../../../../util/fs';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsResult,\n} from '../../types';\nimport type { PyProject } from '../schema';\nimport type { PyProjectProcessor } from './types';\n\nexport abstract class BasePyProjectProcessor implements PyProjectProcessor {\n // The name of the lockfiles to be searched for.\n // This should be defined in the concrete processor classes.\n // No lockfiles will be forwarded outside the manager implementation.\n protected lockfileName: string | undefined;\n\n abstract updateArtifacts(\n updateArtifact: UpdateArtifact,\n project: PyProject,\n ): Promise<UpdateArtifactsResult[] | null>;\n\n abstract process(\n project: PyProject,\n deps: PackageDependency[],\n ): PackageDependency[];\n\n abstract extractLockedVersions(\n project: PyProject,\n deps: PackageDependency[],\n packageFile: string,\n ): Promise<PackageDependency[]>;\n\n async getLockfiles(\n _project: PyProject,\n packageFile: string,\n ): Promise<string[]> {\n if (!this.lockfileName) {\n logger.trace(\n { packageFile },\n `No lockfile name defined for ${this.constructor.name}`,\n );\n return [];\n }\n\n const lockfilePath = await findLocalSiblingOrParent(\n packageFile,\n this.lockfileName,\n );\n if (lockfilePath) {\n return [lockfilePath];\n }\n\n logger.debug({ packageFile }, `No ${this.lockfileName} found`);\n return [];\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import type { PackageDependency, UpdateArtifact, UpdateArtifactsResult } from '../../types';
2
2
  import type { PyProject } from '../schema';
3
- import type { PyProjectProcessor } from './types';
4
- export declare class HatchProcessor implements PyProjectProcessor {
3
+ import { BasePyProjectProcessor } from './abstract';
4
+ export declare class HatchProcessor extends BasePyProjectProcessor {
5
5
  process(pyproject: PyProject, deps: PackageDependency[]): PackageDependency[];
6
6
  extractLockedVersions(project: PyProject, deps: PackageDependency[], packageFile: string): Promise<PackageDependency[]>;
7
7
  updateArtifacts(updateArtifact: UpdateArtifact, project: PyProject): Promise<UpdateArtifactsResult[] | null>;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HatchProcessor = void 0;
4
- class HatchProcessor {
4
+ const abstract_1 = require("./abstract");
5
+ class HatchProcessor extends abstract_1.BasePyProjectProcessor {
5
6
  process(pyproject, deps) {
6
7
  const hatchDeps = pyproject.tool?.hatch?.deps;
7
8
  if (hatchDeps) {
@@ -1 +1 @@
1
- {"version":3,"file":"hatch.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/pep621/processors/hatch.ts"],"names":[],"mappings":";;;AAQA,MAAa,cAAc;IACzB,OAAO,CACL,SAAoB,EACpB,IAAyB;QAEzB,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC;QAC9C,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qBAAqB,CACnB,OAAkB,EAClB,IAAyB,EACzB,WAAmB;QAEnB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,eAAe,CACb,cAA8B,EAC9B,OAAkB;QAElB,+CAA+C;QAC/C,2CAA2C;QAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF;AA5BD,wCA4BC","sourcesContent":["import type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsResult,\n} from '../../types';\nimport type { PyProject } from '../schema';\nimport type { PyProjectProcessor } from './types';\n\nexport class HatchProcessor implements PyProjectProcessor {\n process(\n pyproject: PyProject,\n deps: PackageDependency[],\n ): PackageDependency[] {\n const hatchDeps = pyproject.tool?.hatch?.deps;\n if (hatchDeps) {\n deps.push(...hatchDeps);\n }\n return deps;\n }\n\n extractLockedVersions(\n project: PyProject,\n deps: PackageDependency[],\n packageFile: string,\n ): Promise<PackageDependency[]> {\n return Promise.resolve(deps);\n }\n\n updateArtifacts(\n updateArtifact: UpdateArtifact,\n project: PyProject,\n ): Promise<UpdateArtifactsResult[] | null> {\n // Hatch does not have lock files at the moment\n // https://github.com/pypa/hatch/issues/749\n return Promise.resolve(null);\n }\n}\n"]}
1
+ {"version":3,"file":"hatch.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/pep621/processors/hatch.ts"],"names":[],"mappings":";;;AAMA,yCAAoD;AAEpD,MAAa,cAAe,SAAQ,iCAAsB;IACxD,OAAO,CACL,SAAoB,EACpB,IAAyB;QAEzB,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC;QAC9C,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qBAAqB,CACnB,OAAkB,EAClB,IAAyB,EACzB,WAAmB;QAEnB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,eAAe,CACb,cAA8B,EAC9B,OAAkB;QAElB,+CAA+C;QAC/C,2CAA2C;QAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF;AA5BD,wCA4BC","sourcesContent":["import type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsResult,\n} from '../../types';\nimport type { PyProject } from '../schema';\nimport { BasePyProjectProcessor } from './abstract';\n\nexport class HatchProcessor extends BasePyProjectProcessor {\n process(\n pyproject: PyProject,\n deps: PackageDependency[],\n ): PackageDependency[] {\n const hatchDeps = pyproject.tool?.hatch?.deps;\n if (hatchDeps) {\n deps.push(...hatchDeps);\n }\n return deps;\n }\n\n extractLockedVersions(\n project: PyProject,\n deps: PackageDependency[],\n packageFile: string,\n ): Promise<PackageDependency[]> {\n return Promise.resolve(deps);\n }\n\n updateArtifacts(\n updateArtifact: UpdateArtifact,\n project: PyProject,\n ): Promise<UpdateArtifactsResult[] | null> {\n // Hatch does not have lock files at the moment\n // https://github.com/pypa/hatch/issues/749\n return Promise.resolve(null);\n }\n}\n"]}
@@ -1,4 +1,2 @@
1
- import { HatchProcessor } from './hatch';
2
- import { PdmProcessor } from './pdm';
3
- import { UvProcessor } from './uv';
4
- export declare const processors: (HatchProcessor | PdmProcessor | UvProcessor)[];
1
+ import type { PyProjectProcessor } from './types';
2
+ export declare const processors: PyProjectProcessor[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/pep621/processors/index.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AACzC,+BAAqC;AACrC,6BAAmC;AAEtB,QAAA,UAAU,GAAG;IACxB,IAAI,sBAAc,EAAE;IACpB,IAAI,kBAAY,EAAE;IAClB,IAAI,gBAAW,EAAE;CAClB,CAAC","sourcesContent":["import { HatchProcessor } from './hatch';\nimport { PdmProcessor } from './pdm';\nimport { UvProcessor } from './uv';\n\nexport const processors = [\n new HatchProcessor(),\n new PdmProcessor(),\n new UvProcessor(),\n];\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/pep621/processors/index.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AACzC,+BAAqC;AAErC,6BAAmC;AAEtB,QAAA,UAAU,GAAyB;IAC9C,IAAI,sBAAc,EAAE;IACpB,IAAI,kBAAY,EAAE;IAClB,IAAI,gBAAW,EAAE;CAClB,CAAC","sourcesContent":["import { HatchProcessor } from './hatch';\nimport { PdmProcessor } from './pdm';\nimport type { PyProjectProcessor } from './types';\nimport { UvProcessor } from './uv';\n\nexport const processors: PyProjectProcessor[] = [\n new HatchProcessor(),\n new PdmProcessor(),\n new UvProcessor(),\n];\n"]}
@@ -1,8 +1,9 @@
1
1
  import type { PackageDependency, UpdateArtifact, UpdateArtifactsResult } from '../../types';
2
2
  import { type PyProject } from '../schema';
3
3
  import type { Pep621ManagerData } from '../types';
4
- import type { PyProjectProcessor } from './types';
5
- export declare class PdmProcessor implements PyProjectProcessor {
4
+ import { BasePyProjectProcessor } from './abstract';
5
+ export declare class PdmProcessor extends BasePyProjectProcessor {
6
+ lockfileName: string;
6
7
  process(project: PyProject, deps: PackageDependency[]): PackageDependency<Pep621ManagerData>[];
7
8
  extractLockedVersions(project: PyProject, deps: PackageDependency[], packageFile: string): Promise<PackageDependency[]>;
8
9
  updateArtifacts(updateArtifact: UpdateArtifact, project: PyProject): Promise<UpdateArtifactsResult[] | null>;
@@ -11,8 +11,10 @@ const result_1 = require("../../../../util/result");
11
11
  const pypi_1 = require("../../../datasource/pypi");
12
12
  const schema_1 = require("../schema");
13
13
  const utils_1 = require("../utils");
14
+ const abstract_1 = require("./abstract");
14
15
  const pdmUpdateCMD = 'pdm update --no-sync --update-eager';
15
- class PdmProcessor {
16
+ class PdmProcessor extends abstract_1.BasePyProjectProcessor {
17
+ lockfileName = 'pdm.lock';
16
18
  process(project, deps) {
17
19
  const devDependencies = project.tool?.pdm?.devDependencies;
18
20
  if (devDependencies) {
@@ -36,7 +38,7 @@ class PdmProcessor {
36
38
  const lockFileName = (0, fs_1.getSiblingFileName)(packageFile, 'pdm.lock');
37
39
  const lockFileContent = await (0, fs_1.readLocalFile)(lockFileName, 'utf8');
38
40
  if (lockFileContent) {
39
- const lockFileMapping = result_1.Result.parse(lockFileContent, schema_1.PdmLockfileSchema.transform(({ lock }) => lock)).unwrapOr({});
41
+ const lockFileMapping = result_1.Result.parse(lockFileContent, schema_1.PdmLockfile.transform(({ lock }) => lock)).unwrapOr({});
40
42
  for (const dep of deps) {
41
43
  const packageName = dep.packageName;
42
44
  if (packageName && packageName in lockFileMapping) {
@@ -50,7 +52,7 @@ class PdmProcessor {
50
52
  const { config, updatedDeps, packageFileName } = updateArtifact;
51
53
  const { isLockFileMaintenance } = config;
52
54
  // abort if no lockfile is defined
53
- const lockFileName = (0, fs_1.getSiblingFileName)(packageFileName, 'pdm.lock');
55
+ const lockFileName = (0, fs_1.getSiblingFileName)(packageFileName, this.lockfileName);
54
56
  try {
55
57
  const existingLockFileContent = await (0, fs_1.readLocalFile)(lockFileName, 'utf8');
56
58
  if (!existingLockFileContent) {
@@ -103,7 +105,6 @@ class PdmProcessor {
103
105
  return fileChanges.length ? fileChanges : null;
104
106
  }
105
107
  catch (err) {
106
- // istanbul ignore if
107
108
  if (err.message === error_messages_1.TEMPORARY_ERROR) {
108
109
  throw err;
109
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pdm.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/pep621/processors/pdm.ts"],"names":[],"mappings":"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","sourcesContent":["import { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../../constants/error-messages';\nimport { logger } from '../../../../logger';\nimport { exec } from '../../../../util/exec';\nimport type { ExecOptions, ToolConstraint } from '../../../../util/exec/types';\nimport { getSiblingFileName, readLocalFile } from '../../../../util/fs';\nimport { getGitEnvironmentVariables } from '../../../../util/git/auth';\nimport { Result } from '../../../../util/result';\nimport { PypiDatasource } from '../../../datasource/pypi';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsResult,\n Upgrade,\n} from '../../types';\nimport { PdmLockfileSchema, type PyProject } from '../schema';\nimport type { Pep621ManagerData } from '../types';\nimport { depTypes } from '../utils';\nimport type { PyProjectProcessor } from './types';\n\nconst pdmUpdateCMD = 'pdm update --no-sync --update-eager';\n\nexport class PdmProcessor implements PyProjectProcessor {\n process(\n project: PyProject,\n deps: PackageDependency[],\n ): PackageDependency<Pep621ManagerData>[] {\n const devDependencies = project.tool?.pdm?.devDependencies;\n if (devDependencies) {\n deps.push(...devDependencies);\n }\n\n const registryUrls = project.tool?.pdm?.registryUrls;\n if (registryUrls) {\n for (const dep of deps) {\n if (dep.datasource === PypiDatasource.id) {\n dep.registryUrls = registryUrls;\n }\n }\n }\n\n return deps;\n }\n\n async extractLockedVersions(\n project: PyProject,\n deps: PackageDependency[],\n packageFile: string,\n ): Promise<PackageDependency[]> {\n if (\n !project.tool?.pdm &&\n project['build-system']?.['build-backend'] !== 'pdm.backend'\n ) {\n return Promise.resolve(deps);\n }\n\n const lockFileName = getSiblingFileName(packageFile, 'pdm.lock');\n const lockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (lockFileContent) {\n const lockFileMapping = Result.parse(\n lockFileContent,\n PdmLockfileSchema.transform(({ lock }) => lock),\n ).unwrapOr({});\n\n for (const dep of deps) {\n const packageName = dep.packageName;\n if (packageName && packageName in lockFileMapping) {\n dep.lockedVersion = lockFileMapping[packageName];\n }\n }\n }\n\n return Promise.resolve(deps);\n }\n\n async updateArtifacts(\n updateArtifact: UpdateArtifact,\n project: PyProject,\n ): Promise<UpdateArtifactsResult[] | null> {\n const { config, updatedDeps, packageFileName } = updateArtifact;\n\n const { isLockFileMaintenance } = config;\n\n // abort if no lockfile is defined\n const lockFileName = getSiblingFileName(packageFileName, 'pdm.lock');\n try {\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent) {\n logger.debug('No pdm.lock found');\n return null;\n }\n\n const pythonConstraint: ToolConstraint = {\n toolName: 'python',\n constraint:\n config.constraints?.python ?? project.project?.['requires-python'],\n };\n const pdmConstraint: ToolConstraint = {\n toolName: 'pdm',\n constraint: config.constraints?.pdm,\n };\n\n const extraEnv = {\n ...getGitEnvironmentVariables(['pep621']),\n };\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n extraEnv,\n docker: {},\n toolConstraints: [pythonConstraint, pdmConstraint],\n };\n\n // on lockFileMaintenance do not specify any packages and update the complete lock file\n // else only update specific packages\n const cmds: string[] = [];\n if (isLockFileMaintenance) {\n cmds.push(pdmUpdateCMD);\n } else {\n cmds.push(...generateCMDs(updatedDeps));\n }\n await exec(cmds, execOptions);\n\n // check for changes\n const fileChanges: UpdateArtifactsResult[] = [];\n const newLockContent = await readLocalFile(lockFileName, 'utf8');\n const isLockFileChanged = existingLockFileContent !== newLockContent;\n if (isLockFileChanged) {\n fileChanges.push({\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newLockContent,\n },\n });\n } else {\n logger.debug('pdm.lock is unchanged');\n }\n\n return fileChanges.length ? fileChanges : null;\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update PDM lock file');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n }\n}\n\nfunction generateCMDs(updatedDeps: Upgrade<Pep621ManagerData>[]): string[] {\n const cmds: string[] = [];\n const packagesByCMD: Record<string, string[]> = {};\n for (const dep of updatedDeps) {\n switch (dep.depType) {\n case depTypes.optionalDependencies: {\n if (!dep.managerData?.depGroup) {\n logger.once.warn(\n { dep: dep.depName },\n 'Unexpected optional dependency without group',\n );\n continue;\n }\n addPackageToCMDRecord(\n packagesByCMD,\n `${pdmUpdateCMD} -G ${quote(dep.managerData.depGroup)}`,\n dep.packageName!,\n );\n break;\n }\n case depTypes.dependencyGroups:\n case depTypes.pdmDevDependencies: {\n if (!dep.managerData?.depGroup) {\n logger.once.warn(\n { dep: dep.depName },\n 'Unexpected dev dependency without group',\n );\n continue;\n }\n addPackageToCMDRecord(\n packagesByCMD,\n `${pdmUpdateCMD} -dG ${quote(dep.managerData.depGroup)}`,\n dep.packageName!,\n );\n break;\n }\n case depTypes.buildSystemRequires:\n // build requirements are not locked in the lock files, no need to update.\n // Reference: https://github.com/pdm-project/pdm/discussions/2869\n break;\n default: {\n addPackageToCMDRecord(packagesByCMD, pdmUpdateCMD, dep.packageName!);\n }\n }\n }\n\n for (const commandPrefix in packagesByCMD) {\n const packageList = packagesByCMD[commandPrefix].map(quote).join(' ');\n const cmd = `${commandPrefix} ${packageList}`;\n cmds.push(cmd);\n }\n\n return cmds;\n}\n\nfunction addPackageToCMDRecord(\n packagesByCMD: Record<string, string[]>,\n commandPrefix: string,\n packageName: string,\n): void {\n if (!packagesByCMD[commandPrefix]) {\n packagesByCMD[commandPrefix] = [];\n }\n packagesByCMD[commandPrefix].push(packageName);\n}\n"]}
1
+ {"version":3,"file":"pdm.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/pep621/processors/pdm.ts"],"names":[],"mappings":"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","sourcesContent":["import { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../../constants/error-messages';\nimport { logger } from '../../../../logger';\nimport { exec } from '../../../../util/exec';\nimport type { ExecOptions, ToolConstraint } from '../../../../util/exec/types';\nimport { getSiblingFileName, readLocalFile } from '../../../../util/fs';\nimport { getGitEnvironmentVariables } from '../../../../util/git/auth';\nimport { Result } from '../../../../util/result';\nimport { PypiDatasource } from '../../../datasource/pypi';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsResult,\n Upgrade,\n} from '../../types';\nimport { PdmLockfile, type PyProject } from '../schema';\nimport type { Pep621ManagerData } from '../types';\nimport { depTypes } from '../utils';\nimport { BasePyProjectProcessor } from './abstract';\n\nconst pdmUpdateCMD = 'pdm update --no-sync --update-eager';\n\nexport class PdmProcessor extends BasePyProjectProcessor {\n override lockfileName = 'pdm.lock';\n\n process(\n project: PyProject,\n deps: PackageDependency[],\n ): PackageDependency<Pep621ManagerData>[] {\n const devDependencies = project.tool?.pdm?.devDependencies;\n if (devDependencies) {\n deps.push(...devDependencies);\n }\n\n const registryUrls = project.tool?.pdm?.registryUrls;\n if (registryUrls) {\n for (const dep of deps) {\n if (dep.datasource === PypiDatasource.id) {\n dep.registryUrls = registryUrls;\n }\n }\n }\n\n return deps;\n }\n\n async extractLockedVersions(\n project: PyProject,\n deps: PackageDependency[],\n packageFile: string,\n ): Promise<PackageDependency[]> {\n if (\n !project.tool?.pdm &&\n project['build-system']?.['build-backend'] !== 'pdm.backend'\n ) {\n return Promise.resolve(deps);\n }\n\n const lockFileName = getSiblingFileName(packageFile, 'pdm.lock');\n const lockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (lockFileContent) {\n const lockFileMapping = Result.parse(\n lockFileContent,\n PdmLockfile.transform(({ lock }) => lock),\n ).unwrapOr({});\n\n for (const dep of deps) {\n const packageName = dep.packageName;\n if (packageName && packageName in lockFileMapping) {\n dep.lockedVersion = lockFileMapping[packageName];\n }\n }\n }\n\n return Promise.resolve(deps);\n }\n\n async updateArtifacts(\n updateArtifact: UpdateArtifact,\n project: PyProject,\n ): Promise<UpdateArtifactsResult[] | null> {\n const { config, updatedDeps, packageFileName } = updateArtifact;\n\n const { isLockFileMaintenance } = config;\n\n // abort if no lockfile is defined\n const lockFileName = getSiblingFileName(packageFileName, this.lockfileName);\n try {\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent) {\n logger.debug('No pdm.lock found');\n return null;\n }\n\n const pythonConstraint: ToolConstraint = {\n toolName: 'python',\n constraint:\n config.constraints?.python ?? project.project?.['requires-python'],\n };\n const pdmConstraint: ToolConstraint = {\n toolName: 'pdm',\n constraint: config.constraints?.pdm,\n };\n\n const extraEnv = {\n ...getGitEnvironmentVariables(['pep621']),\n };\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n extraEnv,\n docker: {},\n toolConstraints: [pythonConstraint, pdmConstraint],\n };\n\n // on lockFileMaintenance do not specify any packages and update the complete lock file\n // else only update specific packages\n const cmds: string[] = [];\n if (isLockFileMaintenance) {\n cmds.push(pdmUpdateCMD);\n } else {\n cmds.push(...generateCMDs(updatedDeps));\n }\n await exec(cmds, execOptions);\n\n // check for changes\n const fileChanges: UpdateArtifactsResult[] = [];\n const newLockContent = await readLocalFile(lockFileName, 'utf8');\n const isLockFileChanged = existingLockFileContent !== newLockContent;\n if (isLockFileChanged) {\n fileChanges.push({\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newLockContent,\n },\n });\n } else {\n logger.debug('pdm.lock is unchanged');\n }\n\n return fileChanges.length ? fileChanges : null;\n } catch (err) {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update PDM lock file');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n }\n}\n\nfunction generateCMDs(updatedDeps: Upgrade<Pep621ManagerData>[]): string[] {\n const cmds: string[] = [];\n const packagesByCMD: Record<string, string[]> = {};\n for (const dep of updatedDeps) {\n switch (dep.depType) {\n case depTypes.optionalDependencies: {\n if (!dep.managerData?.depGroup) {\n logger.once.warn(\n { dep: dep.depName },\n 'Unexpected optional dependency without group',\n );\n continue;\n }\n addPackageToCMDRecord(\n packagesByCMD,\n `${pdmUpdateCMD} -G ${quote(dep.managerData.depGroup)}`,\n dep.packageName!,\n );\n break;\n }\n case depTypes.dependencyGroups:\n case depTypes.pdmDevDependencies: {\n if (!dep.managerData?.depGroup) {\n logger.once.warn(\n { dep: dep.depName },\n 'Unexpected dev dependency without group',\n );\n continue;\n }\n addPackageToCMDRecord(\n packagesByCMD,\n `${pdmUpdateCMD} -dG ${quote(dep.managerData.depGroup)}`,\n dep.packageName!,\n );\n break;\n }\n case depTypes.buildSystemRequires:\n // build requirements are not locked in the lock files, no need to update.\n // Reference: https://github.com/pdm-project/pdm/discussions/2869\n break;\n default: {\n addPackageToCMDRecord(packagesByCMD, pdmUpdateCMD, dep.packageName!);\n }\n }\n }\n\n for (const commandPrefix in packagesByCMD) {\n const packageList = packagesByCMD[commandPrefix].map(quote).join(' ');\n const cmd = `${commandPrefix} ${packageList}`;\n cmds.push(cmd);\n }\n\n return cmds;\n}\n\nfunction addPackageToCMDRecord(\n packagesByCMD: Record<string, string[]>,\n commandPrefix: string,\n packageName: string,\n): void {\n if (!packagesByCMD[commandPrefix]) {\n packagesByCMD[commandPrefix] = [];\n }\n packagesByCMD[commandPrefix].push(packageName);\n}\n"]}
@@ -10,4 +10,5 @@ export interface PyProjectProcessor {
10
10
  */
11
11
  process(project: PyProject, deps: PackageDependency[]): PackageDependency[];
12
12
  extractLockedVersions(project: PyProject, deps: PackageDependency[], packageFile: string): Promise<PackageDependency[]>;
13
+ getLockfiles(project: PyProject, packageFile: string): Promise<string[]>;
13
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/pep621/processors/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsResult,\n} from '../../types';\nimport type { PyProject } from '../schema';\n\nexport interface PyProjectProcessor {\n updateArtifacts(\n updateArtifact: UpdateArtifact,\n project: PyProject,\n ): Promise<UpdateArtifactsResult[] | null>;\n\n /**\n * Extracts additional dependencies and/or modifies existing ones based on the tool configuration.\n * If no relevant section for the processor exists, then it should return the received dependencies unmodified.\n * @param project PyProject object\n * @param deps List of already extracted/processed dependencies\n */\n process(project: PyProject, deps: PackageDependency[]): PackageDependency[];\n\n extractLockedVersions(\n project: PyProject,\n deps: PackageDependency[],\n packageFile: string,\n ): Promise<PackageDependency[]>;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/pep621/processors/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsResult,\n} from '../../types';\nimport type { PyProject } from '../schema';\n\nexport interface PyProjectProcessor {\n updateArtifacts(\n updateArtifact: UpdateArtifact,\n project: PyProject,\n ): Promise<UpdateArtifactsResult[] | null>;\n\n /**\n * Extracts additional dependencies and/or modifies existing ones based on the tool configuration.\n * If no relevant section for the processor exists, then it should return the received dependencies unmodified.\n * @param project PyProject object\n * @param deps List of already extracted/processed dependencies\n */\n process(project: PyProject, deps: PackageDependency[]): PackageDependency[];\n\n extractLockedVersions(\n project: PyProject,\n deps: PackageDependency[],\n packageFile: string,\n ): Promise<PackageDependency[]>;\n\n getLockfiles(project: PyProject, packageFile: string): Promise<string[]>;\n}\n"]}
@@ -1,7 +1,8 @@
1
1
  import type { PackageDependency, UpdateArtifact, UpdateArtifactsResult } from '../../types';
2
2
  import { type PyProject } from '../schema';
3
- import type { PyProjectProcessor } from './types';
4
- export declare class UvProcessor implements PyProjectProcessor {
3
+ import { BasePyProjectProcessor } from './abstract';
4
+ export declare class UvProcessor extends BasePyProjectProcessor {
5
+ lockfileName: string;
5
6
  process(project: PyProject, deps: PackageDependency[]): PackageDependency[];
6
7
  extractLockedVersions(project: PyProject, deps: PackageDependency[], packageFile: string): Promise<PackageDependency[]>;
7
8
  updateArtifacts(updateArtifact: UpdateArtifact, project: PyProject): Promise<UpdateArtifactsResult[] | null>;
@@ -17,8 +17,10 @@ const util_1 = require("../../../datasource/util");
17
17
  const util_2 = require("../../util");
18
18
  const schema_1 = require("../schema");
19
19
  const utils_1 = require("../utils");
20
+ const abstract_1 = require("./abstract");
20
21
  const uvUpdateCMD = 'uv lock';
21
- class UvProcessor {
22
+ class UvProcessor extends abstract_1.BasePyProjectProcessor {
23
+ lockfileName = 'uv.lock';
22
24
  process(project, deps) {
23
25
  const uv = project.tool?.uv;
24
26
  if (!uv) {
@@ -37,7 +39,7 @@ class UvProcessor {
37
39
  // Skip sources that do not make sense to handle (e.g. path).
38
40
  if (uv.sources || defaultIndex || implicitIndexUrls) {
39
41
  for (const dep of deps) {
40
- // istanbul ignore if
42
+ /* v8 ignore next 3 -- needs test */
41
43
  if (!dep.packageName) {
42
44
  continue;
43
45
  }
@@ -67,6 +69,7 @@ class UvProcessor {
67
69
  }
68
70
  else if ('workspace' in depSource) {
69
71
  dep.skipReason = 'inherited-dependency';
72
+ /* v8 ignore next 3 -- needs test */
70
73
  }
71
74
  else {
72
75
  dep.skipReason = 'unknown-registry';
@@ -94,14 +97,14 @@ class UvProcessor {
94
97
  return deps;
95
98
  }
96
99
  async extractLockedVersions(project, deps, packageFile) {
97
- const lockFileName = await (0, fs_1.findLocalSiblingOrParent)(packageFile, 'uv.lock');
100
+ const lockFileName = await (0, fs_1.findLocalSiblingOrParent)(packageFile, this.lockfileName);
98
101
  if (lockFileName === null) {
99
102
  logger_1.logger.debug({ packageFile }, `No uv lock file found`);
100
103
  }
101
104
  else {
102
105
  const lockFileContent = await (0, fs_1.readLocalFile)(lockFileName, 'utf8');
103
106
  if (lockFileContent) {
104
- const { val: lockFileMapping, err } = result_1.Result.parse(lockFileContent, schema_1.UvLockfileSchema).unwrap();
107
+ const { val: lockFileMapping, err } = result_1.Result.parse(lockFileContent, schema_1.UvLockfile).unwrap();
105
108
  if (err) {
106
109
  logger_1.logger.debug({ packageFile, err }, `Error parsing uv lock file`);
107
110
  }
@@ -180,7 +183,6 @@ class UvProcessor {
180
183
  return fileChanges.length ? fileChanges : null;
181
184
  }
182
185
  catch (err) {
183
- // istanbul ignore if
184
186
  if (err.message === error_messages_1.TEMPORARY_ERROR) {
185
187
  throw err;
186
188
  }
@@ -286,7 +288,7 @@ async function getUvIndexCredentials(project) {
286
288
  const entries = [];
287
289
  for (const { name, url } of uv_indexes) {
288
290
  const parsedUrl = (0, url_1.parseUrl)(url);
289
- // istanbul ignore if
291
+ /* v8 ignore next 3 -- needs test */
290
292
  if (!parsedUrl) {
291
293
  continue;
292
294
  }
@@ -1 +1 @@
1
- {"version":3,"file":"uv.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/pep621/processors/uv.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../../constants/error-messages';\nimport { logger } from '../../../../logger';\nimport type { HostRule } from '../../../../types';\nimport { exec } from '../../../../util/exec';\nimport type { ExecOptions, ToolConstraint } from '../../../../util/exec/types';\nimport { findLocalSiblingOrParent, readLocalFile } from '../../../../util/fs';\nimport { getGitEnvironmentVariables } from '../../../../util/git/auth';\nimport { find } from '../../../../util/host-rules';\nimport { Result } from '../../../../util/result';\nimport { parseUrl } from '../../../../util/url';\nimport { PypiDatasource } from '../../../datasource/pypi';\nimport { getGoogleAuthHostRule } from '../../../datasource/util';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsResult,\n Upgrade,\n} from '../../types';\nimport { applyGitSource } from '../../util';\nimport { type PyProject, UvLockfileSchema } from '../schema';\nimport { depTypes } from '../utils';\nimport type { PyProjectProcessor } from './types';\n\nconst uvUpdateCMD = 'uv lock';\n\nexport class UvProcessor implements PyProjectProcessor {\n process(project: PyProject, deps: PackageDependency[]): PackageDependency[] {\n const uv = project.tool?.uv;\n if (!uv) {\n return deps;\n }\n\n const hasExplicitDefault = uv.index?.some(\n (index) => index.default && index.explicit,\n );\n const defaultIndex = uv.index?.find(\n (index) => index.default && !index.explicit,\n );\n const implicitIndexUrls = uv.index\n ?.filter((index) => !index.explicit && index.name !== defaultIndex?.name)\n ?.map(({ url }) => url);\n\n const devDependencies = uv['dev-dependencies'];\n if (devDependencies) {\n deps.push(...devDependencies);\n }\n\n // https://docs.astral.sh/uv/concepts/dependencies/#dependency-sources\n // Skip sources that do not make sense to handle (e.g. path).\n if (uv.sources || defaultIndex || implicitIndexUrls) {\n for (const dep of deps) {\n // istanbul ignore if\n if (!dep.packageName) {\n continue;\n }\n\n if (dep.depType === 'requires-python') {\n continue;\n }\n\n // Using `packageName` as it applies PEP 508 normalization, which is\n // also applied by uv when matching a source to a dependency.\n const depSource = uv.sources?.[dep.packageName];\n if (depSource) {\n // Dependency is pinned to a specific source.\n dep.depType = depTypes.uvSources;\n if ('index' in depSource) {\n const index = uv.index?.find(\n ({ name }) => name === depSource.index,\n );\n if (index) {\n dep.registryUrls = [index.url];\n }\n } else if ('git' in depSource) {\n applyGitSource(\n dep,\n depSource.git,\n depSource.rev,\n depSource.tag,\n depSource.branch,\n );\n } else if ('url' in depSource) {\n dep.skipReason = 'unsupported-url';\n } else if ('path' in depSource) {\n dep.skipReason = 'path-dependency';\n } else if ('workspace' in depSource) {\n dep.skipReason = 'inherited-dependency';\n } else {\n dep.skipReason = 'unknown-registry';\n }\n } else {\n // Dependency is not pinned to a specific source, so we need to\n // determine the source based on the index configuration.\n if (hasExplicitDefault) {\n // don't fall back to pypi if there is an explicit default index\n dep.registryUrls = [];\n } else if (defaultIndex) {\n // There is a default index configured, so use it.\n dep.registryUrls = [defaultIndex.url];\n }\n\n if (implicitIndexUrls?.length) {\n // If there are implicit indexes, check them first and fall back\n // to the default.\n dep.registryUrls = implicitIndexUrls.concat(\n dep.registryUrls ?? PypiDatasource.defaultURL,\n );\n }\n }\n }\n }\n\n return deps;\n }\n\n async extractLockedVersions(\n project: PyProject,\n deps: PackageDependency[],\n packageFile: string,\n ): Promise<PackageDependency[]> {\n const lockFileName = await findLocalSiblingOrParent(packageFile, 'uv.lock');\n if (lockFileName === null) {\n logger.debug({ packageFile }, `No uv lock file found`);\n } else {\n const lockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (lockFileContent) {\n const { val: lockFileMapping, err } = Result.parse(\n lockFileContent,\n UvLockfileSchema,\n ).unwrap();\n\n if (err) {\n logger.debug({ packageFile, err }, `Error parsing uv lock file`);\n } else {\n for (const dep of deps) {\n const packageName = dep.packageName;\n if (packageName && packageName in lockFileMapping) {\n dep.lockedVersion = lockFileMapping[packageName];\n }\n }\n }\n }\n }\n\n return Promise.resolve(deps);\n }\n\n async updateArtifacts(\n updateArtifact: UpdateArtifact,\n project: PyProject,\n ): Promise<UpdateArtifactsResult[] | null> {\n const { config, updatedDeps, packageFileName } = updateArtifact;\n\n const { isLockFileMaintenance } = config;\n\n // abort if no lockfile is defined\n const lockFileName = await findLocalSiblingOrParent(\n packageFileName,\n 'uv.lock',\n );\n if (lockFileName === null) {\n logger.debug({ packageFileName }, `No uv lock file found`);\n return null;\n }\n try {\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent) {\n logger.debug('No uv.lock found');\n return null;\n }\n\n const pythonConstraint: ToolConstraint = {\n toolName: 'python',\n constraint:\n config.constraints?.python ?? project.project?.['requires-python'],\n };\n const uvConstraint: ToolConstraint = {\n toolName: 'uv',\n constraint:\n config.constraints?.uv ?? project.tool?.uv?.['required-version'],\n };\n\n const extraEnv = {\n ...getGitEnvironmentVariables(['pep621']),\n ...(await getUvExtraIndexUrl(project, updateArtifact.updatedDeps)),\n ...(await getUvIndexCredentials(project)),\n };\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n extraEnv,\n docker: {},\n toolConstraints: [pythonConstraint, uvConstraint],\n };\n\n // on lockFileMaintenance do not specify any packages and update the complete lock file\n // else only update specific packages\n let cmd: string;\n if (isLockFileMaintenance) {\n cmd = `${uvUpdateCMD} --upgrade`;\n } else {\n cmd = generateCMD(updatedDeps);\n }\n await exec(cmd, execOptions);\n\n // check for changes\n const fileChanges: UpdateArtifactsResult[] = [];\n const newLockContent = await readLocalFile(lockFileName, 'utf8');\n const isLockFileChanged = existingLockFileContent !== newLockContent;\n if (isLockFileChanged) {\n fileChanges.push({\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newLockContent,\n },\n });\n } else {\n logger.debug('uv.lock is unchanged');\n }\n\n return fileChanges.length ? fileChanges : null;\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update uv lock file');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n }\n}\n\nfunction generateCMD(updatedDeps: Upgrade[]): string {\n const deps: string[] = [];\n\n for (const dep of updatedDeps) {\n switch (dep.depType) {\n case depTypes.optionalDependencies: {\n deps.push(dep.depName!);\n break;\n }\n case depTypes.uvDevDependencies:\n case depTypes.uvSources: {\n deps.push(dep.depName!);\n break;\n }\n case depTypes.buildSystemRequires:\n // build requirements are not locked in the lock files, no need to update.\n break;\n default: {\n deps.push(dep.packageName!);\n }\n }\n }\n\n return `${uvUpdateCMD} ${deps.map((dep) => `--upgrade-package ${quote(dep)}`).join(' ')}`;\n}\n\nfunction getMatchingHostRule(url: string | undefined): HostRule {\n return find({ hostType: PypiDatasource.id, url });\n}\n\nasync function getUsernamePassword(\n url: URL,\n): Promise<{ username?: string; password?: string }> {\n const rule = getMatchingHostRule(url.toString());\n if (rule.username || rule.password) {\n return rule;\n }\n\n if (url.hostname.endsWith('.pkg.dev')) {\n const hostRule = await getGoogleAuthHostRule();\n if (hostRule) {\n return hostRule;\n } else {\n logger.once.debug({ url }, 'Could not get Google access token');\n }\n }\n\n return {};\n}\n\nasync function getUvExtraIndexUrl(\n project: PyProject,\n deps: Upgrade[],\n): Promise<NodeJS.ProcessEnv> {\n const pyPiRegistryUrls = deps\n .filter((dep) => dep.datasource === PypiDatasource.id)\n .filter((dep) => {\n // Remove dependencies that are pinned to a specific index\n const sources = project.tool?.uv?.sources;\n const packageName = dep.packageName!;\n return !sources || !(packageName in sources);\n })\n .flatMap((dep) => dep.registryUrls)\n .filter(is.string)\n .filter((registryUrl) => {\n // Check if the registry URL is not the default one and not already configured\n const configuredIndexUrls =\n project.tool?.uv?.index?.map(({ url }) => url) ?? [];\n return (\n registryUrl !== PypiDatasource.defaultURL &&\n !configuredIndexUrls.includes(registryUrl)\n );\n });\n\n const registryUrls = new Set(pyPiRegistryUrls);\n const extraIndexUrls: string[] = [];\n\n for (const registryUrl of registryUrls) {\n const parsedUrl = parseUrl(registryUrl);\n if (!parsedUrl) {\n continue;\n }\n\n const { username, password } = await getUsernamePassword(parsedUrl);\n if (username || password) {\n if (username) {\n parsedUrl.username = username;\n }\n if (password) {\n parsedUrl.password = password;\n }\n }\n\n extraIndexUrls.push(parsedUrl.toString());\n }\n\n return {\n UV_EXTRA_INDEX_URL: extraIndexUrls.join(' '),\n };\n}\n\nasync function getUvIndexCredentials(\n project: PyProject,\n): Promise<NodeJS.ProcessEnv> {\n const uv_indexes = project.tool?.uv?.index;\n\n if (!uv_indexes) {\n return {};\n }\n\n const entries = [];\n\n for (const { name, url } of uv_indexes) {\n const parsedUrl = parseUrl(url);\n // istanbul ignore if\n if (!parsedUrl) {\n continue;\n }\n\n // If no name is provided for the index, authentication information must be passed through alternative methods\n if (!name) {\n continue;\n }\n\n const { username, password } = await getUsernamePassword(parsedUrl);\n\n const NAME = name.toUpperCase().replace(/[^A-Z0-9]/g, '_');\n\n if (username) {\n entries.push([`UV_INDEX_${NAME}_USERNAME`, username]);\n }\n\n if (password) {\n entries.push([`UV_INDEX_${NAME}_PASSWORD`, password]);\n }\n }\n\n return Object.fromEntries(entries);\n}\n"]}
1
+ {"version":3,"file":"uv.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/pep621/processors/uv.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../../constants/error-messages';\nimport { logger } from '../../../../logger';\nimport type { HostRule } from '../../../../types';\nimport { exec } from '../../../../util/exec';\nimport type { ExecOptions, ToolConstraint } from '../../../../util/exec/types';\nimport { findLocalSiblingOrParent, readLocalFile } from '../../../../util/fs';\nimport { getGitEnvironmentVariables } from '../../../../util/git/auth';\nimport { find } from '../../../../util/host-rules';\nimport { Result } from '../../../../util/result';\nimport { parseUrl } from '../../../../util/url';\nimport { PypiDatasource } from '../../../datasource/pypi';\nimport { getGoogleAuthHostRule } from '../../../datasource/util';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsResult,\n Upgrade,\n} from '../../types';\nimport { applyGitSource } from '../../util';\nimport { type PyProject, UvLockfile } from '../schema';\nimport { depTypes } from '../utils';\n\nimport { BasePyProjectProcessor } from './abstract';\n\nconst uvUpdateCMD = 'uv lock';\n\nexport class UvProcessor extends BasePyProjectProcessor {\n override lockfileName = 'uv.lock';\n\n process(project: PyProject, deps: PackageDependency[]): PackageDependency[] {\n const uv = project.tool?.uv;\n if (!uv) {\n return deps;\n }\n\n const hasExplicitDefault = uv.index?.some(\n (index) => index.default && index.explicit,\n );\n const defaultIndex = uv.index?.find(\n (index) => index.default && !index.explicit,\n );\n const implicitIndexUrls = uv.index\n ?.filter((index) => !index.explicit && index.name !== defaultIndex?.name)\n ?.map(({ url }) => url);\n\n const devDependencies = uv['dev-dependencies'];\n if (devDependencies) {\n deps.push(...devDependencies);\n }\n\n // https://docs.astral.sh/uv/concepts/dependencies/#dependency-sources\n // Skip sources that do not make sense to handle (e.g. path).\n if (uv.sources || defaultIndex || implicitIndexUrls) {\n for (const dep of deps) {\n /* v8 ignore next 3 -- needs test */\n if (!dep.packageName) {\n continue;\n }\n\n if (dep.depType === 'requires-python') {\n continue;\n }\n\n // Using `packageName` as it applies PEP 508 normalization, which is\n // also applied by uv when matching a source to a dependency.\n const depSource = uv.sources?.[dep.packageName];\n if (depSource) {\n // Dependency is pinned to a specific source.\n dep.depType = depTypes.uvSources;\n if ('index' in depSource) {\n const index = uv.index?.find(\n ({ name }) => name === depSource.index,\n );\n if (index) {\n dep.registryUrls = [index.url];\n }\n } else if ('git' in depSource) {\n applyGitSource(\n dep,\n depSource.git,\n depSource.rev,\n depSource.tag,\n depSource.branch,\n );\n } else if ('url' in depSource) {\n dep.skipReason = 'unsupported-url';\n } else if ('path' in depSource) {\n dep.skipReason = 'path-dependency';\n } else if ('workspace' in depSource) {\n dep.skipReason = 'inherited-dependency';\n /* v8 ignore next 3 -- needs test */\n } else {\n dep.skipReason = 'unknown-registry';\n }\n } else {\n // Dependency is not pinned to a specific source, so we need to\n // determine the source based on the index configuration.\n if (hasExplicitDefault) {\n // don't fall back to pypi if there is an explicit default index\n dep.registryUrls = [];\n } else if (defaultIndex) {\n // There is a default index configured, so use it.\n dep.registryUrls = [defaultIndex.url];\n }\n\n if (implicitIndexUrls?.length) {\n // If there are implicit indexes, check them first and fall back\n // to the default.\n dep.registryUrls = implicitIndexUrls.concat(\n dep.registryUrls ?? PypiDatasource.defaultURL,\n );\n }\n }\n }\n }\n\n return deps;\n }\n\n async extractLockedVersions(\n project: PyProject,\n deps: PackageDependency[],\n packageFile: string,\n ): Promise<PackageDependency[]> {\n const lockFileName = await findLocalSiblingOrParent(\n packageFile,\n this.lockfileName,\n );\n if (lockFileName === null) {\n logger.debug({ packageFile }, `No uv lock file found`);\n } else {\n const lockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (lockFileContent) {\n const { val: lockFileMapping, err } = Result.parse(\n lockFileContent,\n UvLockfile,\n ).unwrap();\n\n if (err) {\n logger.debug({ packageFile, err }, `Error parsing uv lock file`);\n } else {\n for (const dep of deps) {\n const packageName = dep.packageName;\n if (packageName && packageName in lockFileMapping) {\n dep.lockedVersion = lockFileMapping[packageName];\n }\n }\n }\n }\n }\n\n return Promise.resolve(deps);\n }\n\n async updateArtifacts(\n updateArtifact: UpdateArtifact,\n project: PyProject,\n ): Promise<UpdateArtifactsResult[] | null> {\n const { config, updatedDeps, packageFileName } = updateArtifact;\n\n const { isLockFileMaintenance } = config;\n\n // abort if no lockfile is defined\n const lockFileName = await findLocalSiblingOrParent(\n packageFileName,\n 'uv.lock',\n );\n if (lockFileName === null) {\n logger.debug({ packageFileName }, `No uv lock file found`);\n return null;\n }\n try {\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent) {\n logger.debug('No uv.lock found');\n return null;\n }\n\n const pythonConstraint: ToolConstraint = {\n toolName: 'python',\n constraint:\n config.constraints?.python ?? project.project?.['requires-python'],\n };\n const uvConstraint: ToolConstraint = {\n toolName: 'uv',\n constraint:\n config.constraints?.uv ?? project.tool?.uv?.['required-version'],\n };\n\n const extraEnv = {\n ...getGitEnvironmentVariables(['pep621']),\n ...(await getUvExtraIndexUrl(project, updateArtifact.updatedDeps)),\n ...(await getUvIndexCredentials(project)),\n };\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n extraEnv,\n docker: {},\n toolConstraints: [pythonConstraint, uvConstraint],\n };\n\n // on lockFileMaintenance do not specify any packages and update the complete lock file\n // else only update specific packages\n let cmd: string;\n if (isLockFileMaintenance) {\n cmd = `${uvUpdateCMD} --upgrade`;\n } else {\n cmd = generateCMD(updatedDeps);\n }\n await exec(cmd, execOptions);\n\n // check for changes\n const fileChanges: UpdateArtifactsResult[] = [];\n const newLockContent = await readLocalFile(lockFileName, 'utf8');\n const isLockFileChanged = existingLockFileContent !== newLockContent;\n if (isLockFileChanged) {\n fileChanges.push({\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newLockContent,\n },\n });\n } else {\n logger.debug('uv.lock is unchanged');\n }\n\n return fileChanges.length ? fileChanges : null;\n } catch (err) {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update uv lock file');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n }\n}\n\nfunction generateCMD(updatedDeps: Upgrade[]): string {\n const deps: string[] = [];\n\n for (const dep of updatedDeps) {\n switch (dep.depType) {\n case depTypes.optionalDependencies: {\n deps.push(dep.depName!);\n break;\n }\n case depTypes.uvDevDependencies:\n case depTypes.uvSources: {\n deps.push(dep.depName!);\n break;\n }\n case depTypes.buildSystemRequires:\n // build requirements are not locked in the lock files, no need to update.\n break;\n default: {\n deps.push(dep.packageName!);\n }\n }\n }\n\n return `${uvUpdateCMD} ${deps.map((dep) => `--upgrade-package ${quote(dep)}`).join(' ')}`;\n}\n\nfunction getMatchingHostRule(url: string | undefined): HostRule {\n return find({ hostType: PypiDatasource.id, url });\n}\n\nasync function getUsernamePassword(\n url: URL,\n): Promise<{ username?: string; password?: string }> {\n const rule = getMatchingHostRule(url.toString());\n if (rule.username || rule.password) {\n return rule;\n }\n\n if (url.hostname.endsWith('.pkg.dev')) {\n const hostRule = await getGoogleAuthHostRule();\n if (hostRule) {\n return hostRule;\n } else {\n logger.once.debug({ url }, 'Could not get Google access token');\n }\n }\n\n return {};\n}\n\nasync function getUvExtraIndexUrl(\n project: PyProject,\n deps: Upgrade[],\n): Promise<NodeJS.ProcessEnv> {\n const pyPiRegistryUrls = deps\n .filter((dep) => dep.datasource === PypiDatasource.id)\n .filter((dep) => {\n // Remove dependencies that are pinned to a specific index\n const sources = project.tool?.uv?.sources;\n const packageName = dep.packageName!;\n return !sources || !(packageName in sources);\n })\n .flatMap((dep) => dep.registryUrls)\n .filter(is.string)\n .filter((registryUrl) => {\n // Check if the registry URL is not the default one and not already configured\n const configuredIndexUrls =\n project.tool?.uv?.index?.map(({ url }) => url) ?? [];\n return (\n registryUrl !== PypiDatasource.defaultURL &&\n !configuredIndexUrls.includes(registryUrl)\n );\n });\n\n const registryUrls = new Set(pyPiRegistryUrls);\n const extraIndexUrls: string[] = [];\n\n for (const registryUrl of registryUrls) {\n const parsedUrl = parseUrl(registryUrl);\n if (!parsedUrl) {\n continue;\n }\n\n const { username, password } = await getUsernamePassword(parsedUrl);\n if (username || password) {\n if (username) {\n parsedUrl.username = username;\n }\n if (password) {\n parsedUrl.password = password;\n }\n }\n\n extraIndexUrls.push(parsedUrl.toString());\n }\n\n return {\n UV_EXTRA_INDEX_URL: extraIndexUrls.join(' '),\n };\n}\n\nasync function getUvIndexCredentials(\n project: PyProject,\n): Promise<NodeJS.ProcessEnv> {\n const uv_indexes = project.tool?.uv?.index;\n\n if (!uv_indexes) {\n return {};\n }\n\n const entries = [];\n\n for (const { name, url } of uv_indexes) {\n const parsedUrl = parseUrl(url);\n /* v8 ignore next 3 -- needs test */\n if (!parsedUrl) {\n continue;\n }\n\n // If no name is provided for the index, authentication information must be passed through alternative methods\n if (!name) {\n continue;\n }\n\n const { username, password } = await getUsernamePassword(parsedUrl);\n\n const NAME = name.toUpperCase().replace(/[^A-Z0-9]/g, '_');\n\n if (username) {\n entries.push([`UV_INDEX_${NAME}_USERNAME`, username]);\n }\n\n if (password) {\n entries.push([`UV_INDEX_${NAME}_PASSWORD`, password]);\n }\n }\n\n return Object.fromEntries(entries);\n}\n"]}