renovate 42.3.0 → 42.4.1

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 (732) hide show
  1. package/dist/config/decrypt.js +13 -14
  2. package/dist/config/decrypt.js.map +1 -1
  3. package/dist/config/massage.js +6 -7
  4. package/dist/config/massage.js.map +1 -1
  5. package/dist/config/migrate-validate.js +3 -3
  6. package/dist/config/migrate-validate.js.map +1 -1
  7. package/dist/config/migration.js +19 -20
  8. package/dist/config/migration.js.map +1 -1
  9. package/dist/config/migrations/base/abstract-migration.js +5 -6
  10. package/dist/config/migrations/base/abstract-migration.js.map +1 -1
  11. package/dist/config/migrations/custom/automerge-major-migration.js +2 -3
  12. package/dist/config/migrations/custom/automerge-major-migration.js.map +1 -1
  13. package/dist/config/migrations/custom/automerge-migration.js +4 -5
  14. package/dist/config/migrations/custom/automerge-migration.js.map +1 -1
  15. package/dist/config/migrations/custom/automerge-minor-migration.js +2 -3
  16. package/dist/config/migrations/custom/automerge-minor-migration.js.map +1 -1
  17. package/dist/config/migrations/custom/automerge-patch-migration.js +2 -3
  18. package/dist/config/migrations/custom/automerge-patch-migration.js.map +1 -1
  19. package/dist/config/migrations/custom/automerge-type-migration.js +2 -3
  20. package/dist/config/migrations/custom/automerge-type-migration.js.map +1 -1
  21. package/dist/config/migrations/custom/base-branch-migration.js +3 -4
  22. package/dist/config/migrations/custom/base-branch-migration.js.map +1 -1
  23. package/dist/config/migrations/custom/branch-name-migration.js +2 -3
  24. package/dist/config/migrations/custom/branch-name-migration.js.map +1 -1
  25. package/dist/config/migrations/custom/branch-prefix-migration.js +2 -3
  26. package/dist/config/migrations/custom/branch-prefix-migration.js.map +1 -1
  27. package/dist/config/migrations/custom/compatibility-migration.js +2 -3
  28. package/dist/config/migrations/custom/compatibility-migration.js.map +1 -1
  29. package/dist/config/migrations/custom/composer-ignore-platform-reqs-migration.js +2 -3
  30. package/dist/config/migrations/custom/composer-ignore-platform-reqs-migration.js.map +1 -1
  31. package/dist/config/migrations/custom/custom-managers-migration.js +2 -3
  32. package/dist/config/migrations/custom/custom-managers-migration.js.map +1 -1
  33. package/dist/config/migrations/custom/datasource-migration.js +2 -3
  34. package/dist/config/migrations/custom/datasource-migration.js.map +1 -1
  35. package/dist/config/migrations/custom/dep-types-migration.js +4 -5
  36. package/dist/config/migrations/custom/dep-types-migration.js.map +1 -1
  37. package/dist/config/migrations/custom/enabled-managers-migration.js +2 -3
  38. package/dist/config/migrations/custom/enabled-managers-migration.js.map +1 -1
  39. package/dist/config/migrations/custom/extends-migration.js +4 -5
  40. package/dist/config/migrations/custom/extends-migration.js.map +1 -1
  41. package/dist/config/migrations/custom/fetch-release-notes-migration.js +2 -3
  42. package/dist/config/migrations/custom/fetch-release-notes-migration.js.map +1 -1
  43. package/dist/config/migrations/custom/file-match-migration.js +3 -4
  44. package/dist/config/migrations/custom/file-match-migration.js.map +1 -1
  45. package/dist/config/migrations/custom/host-rules-migration.js +6 -7
  46. package/dist/config/migrations/custom/host-rules-migration.js.map +1 -1
  47. package/dist/config/migrations/custom/ignore-npmrc-file-migration.js +2 -3
  48. package/dist/config/migrations/custom/ignore-npmrc-file-migration.js.map +1 -1
  49. package/dist/config/migrations/custom/include-forks-migration.js +2 -3
  50. package/dist/config/migrations/custom/include-forks-migration.js.map +1 -1
  51. package/dist/config/migrations/custom/match-datasources-migration.js +2 -3
  52. package/dist/config/migrations/custom/match-datasources-migration.js.map +1 -1
  53. package/dist/config/migrations/custom/match-managers-migration.js +2 -3
  54. package/dist/config/migrations/custom/match-managers-migration.js.map +1 -1
  55. package/dist/config/migrations/custom/match-strings-migration.js +2 -3
  56. package/dist/config/migrations/custom/match-strings-migration.js.map +1 -1
  57. package/dist/config/migrations/custom/package-files-migration.js +6 -7
  58. package/dist/config/migrations/custom/package-files-migration.js.map +1 -1
  59. package/dist/config/migrations/custom/package-rules-migration.js +15 -16
  60. package/dist/config/migrations/custom/package-rules-migration.js.map +1 -1
  61. package/dist/config/migrations/custom/packages-migration.js +3 -4
  62. package/dist/config/migrations/custom/packages-migration.js.map +1 -1
  63. package/dist/config/migrations/custom/path-rules-migration.js +3 -4
  64. package/dist/config/migrations/custom/path-rules-migration.js.map +1 -1
  65. package/dist/config/migrations/custom/pin-versions-migration.js +2 -3
  66. package/dist/config/migrations/custom/pin-versions-migration.js.map +1 -1
  67. package/dist/config/migrations/custom/platform-commit-migration.js +2 -3
  68. package/dist/config/migrations/custom/platform-commit-migration.js.map +1 -1
  69. package/dist/config/migrations/custom/post-update-options-migration.js +2 -3
  70. package/dist/config/migrations/custom/post-update-options-migration.js.map +1 -1
  71. package/dist/config/migrations/custom/rebase-stale-prs-migration.js +2 -3
  72. package/dist/config/migrations/custom/rebase-stale-prs-migration.js.map +1 -1
  73. package/dist/config/migrations/custom/recreate-closed-migration.js +2 -3
  74. package/dist/config/migrations/custom/recreate-closed-migration.js.map +1 -1
  75. package/dist/config/migrations/custom/renovate-fork-migration.js +2 -3
  76. package/dist/config/migrations/custom/renovate-fork-migration.js.map +1 -1
  77. package/dist/config/migrations/custom/schedule-migration.js +4 -4
  78. package/dist/config/migrations/custom/schedule-migration.js.map +1 -1
  79. package/dist/config/migrations/custom/semantic-commits-migration.js +2 -3
  80. package/dist/config/migrations/custom/semantic-commits-migration.js.map +1 -1
  81. package/dist/config/migrations/custom/semantic-prefix-migration.js +2 -3
  82. package/dist/config/migrations/custom/semantic-prefix-migration.js.map +1 -1
  83. package/dist/config/migrations/custom/stability-days-migration.js +2 -3
  84. package/dist/config/migrations/custom/stability-days-migration.js.map +1 -1
  85. package/dist/config/migrations/custom/suppress-notifications-migration.js +2 -3
  86. package/dist/config/migrations/custom/suppress-notifications-migration.js.map +1 -1
  87. package/dist/config/migrations/custom/unpublish-safe-migration.js +2 -3
  88. package/dist/config/migrations/custom/unpublish-safe-migration.js.map +1 -1
  89. package/dist/config/migrations/migrations-service.js +2 -3
  90. package/dist/config/migrations/migrations-service.js.map +1 -1
  91. package/dist/config/presets/github/index.js +2 -3
  92. package/dist/config/presets/github/index.js.map +1 -1
  93. package/dist/config/presets/gitlab/index.js +2 -3
  94. package/dist/config/presets/gitlab/index.js.map +1 -1
  95. package/dist/config/presets/index.js +8 -8
  96. package/dist/config/presets/index.js.map +1 -1
  97. package/dist/config/presets/parse.js +2 -3
  98. package/dist/config/presets/parse.js.map +1 -1
  99. package/dist/config/secrets.js +3 -4
  100. package/dist/config/secrets.js.map +1 -1
  101. package/dist/config/validation-helpers/match-base-branches.js +2 -3
  102. package/dist/config/validation-helpers/match-base-branches.js.map +1 -1
  103. package/dist/config/validation-helpers/regex-glob-matchers.js +2 -3
  104. package/dist/config/validation-helpers/regex-glob-matchers.js.map +1 -1
  105. package/dist/config/validation-helpers/utils.js +6 -6
  106. package/dist/config/validation-helpers/utils.js.map +1 -1
  107. package/dist/config/validation.js +29 -29
  108. package/dist/config/validation.js.map +1 -1
  109. package/dist/instrumentation/reporting.js +7 -8
  110. package/dist/instrumentation/reporting.js.map +1 -1
  111. package/dist/instrumentation/utils.js +2 -3
  112. package/dist/instrumentation/utils.js.map +1 -1
  113. package/dist/logger/err-serializer.js +2 -2
  114. package/dist/logger/err-serializer.js.map +1 -1
  115. package/dist/logger/index.js +3 -3
  116. package/dist/logger/index.js.map +1 -1
  117. package/dist/logger/renovate-logger.js +4 -5
  118. package/dist/logger/renovate-logger.js.map +1 -1
  119. package/dist/logger/utils.js +19 -19
  120. package/dist/logger/utils.js.map +1 -1
  121. package/dist/modules/datasource/aws-eks-addon/index.js +2 -2
  122. package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -1
  123. package/dist/modules/datasource/bazel/index.js +2 -2
  124. package/dist/modules/datasource/bazel/index.js.map +1 -1
  125. package/dist/modules/datasource/bitrise/index.js +2 -2
  126. package/dist/modules/datasource/bitrise/index.js.map +1 -1
  127. package/dist/modules/datasource/common.js +4 -4
  128. package/dist/modules/datasource/common.js.map +1 -1
  129. package/dist/modules/datasource/conan/index.js +3 -3
  130. package/dist/modules/datasource/conan/index.js.map +1 -1
  131. package/dist/modules/datasource/custom/formats/html.js +2 -5
  132. package/dist/modules/datasource/custom/formats/html.js.map +1 -1
  133. package/dist/modules/datasource/custom/index.js +2 -3
  134. package/dist/modules/datasource/custom/index.js.map +1 -1
  135. package/dist/modules/datasource/custom/utils.js +4 -4
  136. package/dist/modules/datasource/custom/utils.js.map +1 -1
  137. package/dist/modules/datasource/dart-version/index.js +2 -3
  138. package/dist/modules/datasource/dart-version/index.js.map +1 -1
  139. package/dist/modules/datasource/deno/index.js +2 -2
  140. package/dist/modules/datasource/deno/index.js.map +1 -1
  141. package/dist/modules/datasource/docker/common.js +5 -5
  142. package/dist/modules/datasource/docker/common.js.map +1 -1
  143. package/dist/modules/datasource/docker/index.js +6 -6
  144. package/dist/modules/datasource/docker/index.js.map +1 -1
  145. package/dist/modules/datasource/endoflife-date/index.js +2 -2
  146. package/dist/modules/datasource/endoflife-date/index.js.map +1 -1
  147. package/dist/modules/datasource/galaxy/index.js +2 -2
  148. package/dist/modules/datasource/galaxy/index.js.map +1 -1
  149. package/dist/modules/datasource/galaxy-collection/index.js +2 -2
  150. package/dist/modules/datasource/galaxy-collection/index.js.map +1 -1
  151. package/dist/modules/datasource/git-refs/base.js +2 -2
  152. package/dist/modules/datasource/git-refs/base.js.map +1 -1
  153. package/dist/modules/datasource/github-release-attachments/index.js +2 -2
  154. package/dist/modules/datasource/github-release-attachments/index.js.map +1 -1
  155. package/dist/modules/datasource/github-releases/index.js +2 -3
  156. package/dist/modules/datasource/github-releases/index.js.map +1 -1
  157. package/dist/modules/datasource/github-tags/index.js +2 -3
  158. package/dist/modules/datasource/github-tags/index.js.map +1 -1
  159. package/dist/modules/datasource/go/goproxy-parser.js +3 -3
  160. package/dist/modules/datasource/go/goproxy-parser.js.map +1 -1
  161. package/dist/modules/datasource/go/index.js +2 -2
  162. package/dist/modules/datasource/go/index.js.map +1 -1
  163. package/dist/modules/datasource/go/releases-goproxy.js +3 -3
  164. package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
  165. package/dist/modules/datasource/hackage/index.js +2 -2
  166. package/dist/modules/datasource/hackage/index.js.map +1 -1
  167. package/dist/modules/datasource/hex/schema.js +2 -3
  168. package/dist/modules/datasource/hex/schema.js.map +1 -1
  169. package/dist/modules/datasource/hexpm-bob/index.js +2 -2
  170. package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
  171. package/dist/modules/datasource/index.js +14 -14
  172. package/dist/modules/datasource/index.js.map +1 -1
  173. package/dist/modules/datasource/jsr/index.js +2 -2
  174. package/dist/modules/datasource/jsr/index.js.map +1 -1
  175. package/dist/modules/datasource/jsr/util.js +3 -4
  176. package/dist/modules/datasource/jsr/util.js.map +1 -1
  177. package/dist/modules/datasource/metadata.js +5 -5
  178. package/dist/modules/datasource/metadata.js.map +1 -1
  179. package/dist/modules/datasource/npm/get.js +2 -2
  180. package/dist/modules/datasource/npm/get.js.map +1 -1
  181. package/dist/modules/datasource/npm/npmrc.js +7 -7
  182. package/dist/modules/datasource/npm/npmrc.js.map +1 -1
  183. package/dist/modules/datasource/nuget/v3.js +2 -2
  184. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  185. package/dist/modules/datasource/packagist/index.js +2 -2
  186. package/dist/modules/datasource/packagist/index.js.map +1 -1
  187. package/dist/modules/datasource/packagist/schema.js +3 -4
  188. package/dist/modules/datasource/packagist/schema.js.map +1 -1
  189. package/dist/modules/datasource/pypi/index.js +2 -2
  190. package/dist/modules/datasource/pypi/index.js.map +1 -1
  191. package/dist/modules/datasource/repology/index.js +3 -3
  192. package/dist/modules/datasource/repology/index.js.map +1 -1
  193. package/dist/modules/datasource/rubygems/schema.js +5 -6
  194. package/dist/modules/datasource/rubygems/schema.js.map +1 -1
  195. package/dist/modules/datasource/util.js +2 -3
  196. package/dist/modules/datasource/util.js.map +1 -1
  197. package/dist/modules/manager/argocd/extract.js +3 -4
  198. package/dist/modules/manager/argocd/extract.js.map +1 -1
  199. package/dist/modules/manager/asdf/extract.js +2 -3
  200. package/dist/modules/manager/asdf/extract.js.map +1 -1
  201. package/dist/modules/manager/bazel/artifacts.js +2 -2
  202. package/dist/modules/manager/bazel/artifacts.js.map +1 -1
  203. package/dist/modules/manager/bazel/common.js +4 -5
  204. package/dist/modules/manager/bazel/common.js.map +1 -1
  205. package/dist/modules/manager/bazel/rules/http.js +3 -4
  206. package/dist/modules/manager/bazel/rules/http.js.map +1 -1
  207. package/dist/modules/manager/bazel/rules/maven.js +2 -3
  208. package/dist/modules/manager/bazel/rules/maven.js.map +1 -1
  209. package/dist/modules/manager/bazel-module/parser/starlark.js +2 -3
  210. package/dist/modules/manager/bazel-module/parser/starlark.js.map +1 -1
  211. package/dist/modules/manager/bazel-module/rules.js +3 -3
  212. package/dist/modules/manager/bazel-module/rules.js.map +1 -1
  213. package/dist/modules/manager/bitrise/utils.js +3 -4
  214. package/dist/modules/manager/bitrise/utils.js.map +1 -1
  215. package/dist/modules/manager/buildpacks/extract.js +2 -3
  216. package/dist/modules/manager/buildpacks/extract.js.map +1 -1
  217. package/dist/modules/manager/bun/artifacts.js +2 -2
  218. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  219. package/dist/modules/manager/bun/extract.js +2 -3
  220. package/dist/modules/manager/bun/extract.js.map +1 -1
  221. package/dist/modules/manager/bundler/artifacts.js +3 -3
  222. package/dist/modules/manager/bundler/artifacts.js.map +1 -1
  223. package/dist/modules/manager/bundler/extract.js +5 -6
  224. package/dist/modules/manager/bundler/extract.js.map +1 -1
  225. package/dist/modules/manager/cargo/extract.js +3 -4
  226. package/dist/modules/manager/cargo/extract.js.map +1 -1
  227. package/dist/modules/manager/composer/artifacts.js +3 -3
  228. package/dist/modules/manager/composer/artifacts.js.map +1 -1
  229. package/dist/modules/manager/composer/utils.js +3 -4
  230. package/dist/modules/manager/composer/utils.js.map +1 -1
  231. package/dist/modules/manager/conan/extract.js +2 -3
  232. package/dist/modules/manager/conan/extract.js.map +1 -1
  233. package/dist/modules/manager/copier/artifacts.js +1 -1
  234. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  235. package/dist/modules/manager/copier/utils.js +3 -4
  236. package/dist/modules/manager/copier/utils.js.map +1 -1
  237. package/dist/modules/manager/crow/extract.js +2 -3
  238. package/dist/modules/manager/crow/extract.js.map +1 -1
  239. package/dist/modules/manager/custom/jsonata/index.js +2 -3
  240. package/dist/modules/manager/custom/jsonata/index.js.map +1 -1
  241. package/dist/modules/manager/custom/jsonata/utils.js +3 -3
  242. package/dist/modules/manager/custom/jsonata/utils.js.map +1 -1
  243. package/dist/modules/manager/custom/regex/index.js +2 -3
  244. package/dist/modules/manager/custom/regex/index.js.map +1 -1
  245. package/dist/modules/manager/custom/regex/strategies.js +4 -5
  246. package/dist/modules/manager/custom/regex/strategies.js.map +1 -1
  247. package/dist/modules/manager/custom/regex/utils.js +2 -2
  248. package/dist/modules/manager/custom/regex/utils.js.map +1 -1
  249. package/dist/modules/manager/custom/utils.js +6 -7
  250. package/dist/modules/manager/custom/utils.js.map +1 -1
  251. package/dist/modules/manager/deps-edn/extract.js +13 -14
  252. package/dist/modules/manager/deps-edn/extract.js.map +1 -1
  253. package/dist/modules/manager/deps-edn/parser.js +2 -2
  254. package/dist/modules/manager/deps-edn/parser.js.map +1 -1
  255. package/dist/modules/manager/devbox/artifacts.js +2 -2
  256. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  257. package/dist/modules/manager/docker-compose/extract.js +3 -4
  258. package/dist/modules/manager/docker-compose/extract.js.map +1 -1
  259. package/dist/modules/manager/docker-compose/schema.js +2 -3
  260. package/dist/modules/manager/docker-compose/schema.js.map +1 -1
  261. package/dist/modules/manager/dockerfile/extract.js +5 -5
  262. package/dist/modules/manager/dockerfile/extract.js.map +1 -1
  263. package/dist/modules/manager/fingerprint.generated.js +6 -6
  264. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  265. package/dist/modules/manager/fleet/extract.js +2 -3
  266. package/dist/modules/manager/fleet/extract.js.map +1 -1
  267. package/dist/modules/manager/flux/extract.js +2 -3
  268. package/dist/modules/manager/flux/extract.js.map +1 -1
  269. package/dist/modules/manager/glasskube/extract.js +2 -3
  270. package/dist/modules/manager/glasskube/extract.js.map +1 -1
  271. package/dist/modules/manager/gleam/artifacts.js +3 -4
  272. package/dist/modules/manager/gleam/artifacts.js.map +1 -1
  273. package/dist/modules/manager/gomod/artifacts.js +2 -2
  274. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  275. package/dist/modules/manager/gradle/artifacts.js +2 -2
  276. package/dist/modules/manager/gradle/artifacts.js.map +1 -1
  277. package/dist/modules/manager/gradle/extract/catalog.js +5 -5
  278. package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
  279. package/dist/modules/manager/gradle-wrapper/artifacts.js +2 -2
  280. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  281. package/dist/modules/manager/helm-requirements/extract.js +2 -3
  282. package/dist/modules/manager/helm-requirements/extract.js.map +1 -1
  283. package/dist/modules/manager/helmfile/artifacts.js +2 -3
  284. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  285. package/dist/modules/manager/helmfile/extract.js +4 -5
  286. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  287. package/dist/modules/manager/helmsman/extract.js +4 -5
  288. package/dist/modules/manager/helmsman/extract.js.map +1 -1
  289. package/dist/modules/manager/helmv3/artifacts.js +4 -4
  290. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  291. package/dist/modules/manager/helmv3/extract.js +4 -5
  292. package/dist/modules/manager/helmv3/extract.js.map +1 -1
  293. package/dist/modules/manager/helmv3/oci.js +3 -4
  294. package/dist/modules/manager/helmv3/oci.js.map +1 -1
  295. package/dist/modules/manager/homebrew/extract.js +1 -1
  296. package/dist/modules/manager/homebrew/extract.js.map +1 -1
  297. package/dist/modules/manager/jenkins/extract.js +3 -3
  298. package/dist/modules/manager/jenkins/extract.js.map +1 -1
  299. package/dist/modules/manager/kotlin-script/extract.js +3 -4
  300. package/dist/modules/manager/kotlin-script/extract.js.map +1 -1
  301. package/dist/modules/manager/kubernetes/extract.js +4 -4
  302. package/dist/modules/manager/kubernetes/extract.js.map +1 -1
  303. package/dist/modules/manager/kustomize/artifacts.js +8 -8
  304. package/dist/modules/manager/kustomize/artifacts.js.map +1 -1
  305. package/dist/modules/manager/kustomize/extract.js +8 -8
  306. package/dist/modules/manager/kustomize/extract.js.map +1 -1
  307. package/dist/modules/manager/maven/extract.js +4 -4
  308. package/dist/modules/manager/maven/extract.js.map +1 -1
  309. package/dist/modules/manager/maven/update.js +2 -2
  310. package/dist/modules/manager/maven/update.js.map +1 -1
  311. package/dist/modules/manager/maven-wrapper/artifacts.js +2 -2
  312. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  313. package/dist/modules/manager/mise/backends.js +9 -10
  314. package/dist/modules/manager/mise/backends.js.map +1 -1
  315. package/dist/modules/manager/mise/extract.js +7 -8
  316. package/dist/modules/manager/mise/extract.js.map +1 -1
  317. package/dist/modules/manager/mix/artifacts.js +3 -3
  318. package/dist/modules/manager/mix/artifacts.js.map +1 -1
  319. package/dist/modules/manager/nix/artifacts.js +2 -2
  320. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  321. package/dist/modules/manager/npm/detect.js +2 -2
  322. package/dist/modules/manager/npm/detect.js.map +1 -1
  323. package/dist/modules/manager/npm/extract/common/dependency.js +2 -2
  324. package/dist/modules/manager/npm/extract/common/dependency.js.map +1 -1
  325. package/dist/modules/manager/npm/extract/common/overrides.js +3 -4
  326. package/dist/modules/manager/npm/extract/common/overrides.js.map +1 -1
  327. package/dist/modules/manager/npm/extract/common/package-file.js +8 -9
  328. package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
  329. package/dist/modules/manager/npm/extract/index.js +10 -10
  330. package/dist/modules/manager/npm/extract/index.js.map +1 -1
  331. package/dist/modules/manager/npm/extract/pnpm.js +7 -7
  332. package/dist/modules/manager/npm/extract/pnpm.js.map +1 -1
  333. package/dist/modules/manager/npm/extract/post/locked-versions.js +3 -3
  334. package/dist/modules/manager/npm/extract/post/locked-versions.js.map +1 -1
  335. package/dist/modules/manager/npm/extract/post/monorepo.js +3 -4
  336. package/dist/modules/manager/npm/extract/post/monorepo.js.map +1 -1
  337. package/dist/modules/manager/npm/extract/yarn.js +2 -3
  338. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  339. package/dist/modules/manager/npm/extract/yarnrc.js +2 -3
  340. package/dist/modules/manager/npm/extract/yarnrc.js.map +1 -1
  341. package/dist/modules/manager/npm/post-update/index.js +6 -6
  342. package/dist/modules/manager/npm/post-update/index.js.map +1 -1
  343. package/dist/modules/manager/npm/post-update/npm.js +4 -4
  344. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  345. package/dist/modules/manager/npm/post-update/pnpm.js +3 -3
  346. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  347. package/dist/modules/manager/npm/post-update/rules.js +2 -2
  348. package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
  349. package/dist/modules/manager/npm/post-update/utils.js +2 -2
  350. package/dist/modules/manager/npm/post-update/utils.js.map +1 -1
  351. package/dist/modules/manager/npm/post-update/yarn.js +3 -3
  352. package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
  353. package/dist/modules/manager/npm/update/dependency/index.js +2 -3
  354. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  355. package/dist/modules/manager/npm/update/dependency/pnpm.js +2 -3
  356. package/dist/modules/manager/npm/update/dependency/pnpm.js.map +1 -1
  357. package/dist/modules/manager/npm/update/dependency/yarn.js +3 -4
  358. package/dist/modules/manager/npm/update/dependency/yarn.js.map +1 -1
  359. package/dist/modules/manager/nuget/config-formatter.js +2 -2
  360. package/dist/modules/manager/nuget/config-formatter.js.map +1 -1
  361. package/dist/modules/manager/nuget/extract.js +4 -4
  362. package/dist/modules/manager/nuget/extract.js.map +1 -1
  363. package/dist/modules/manager/nuget/package-tree.js +2 -2
  364. package/dist/modules/manager/nuget/package-tree.js.map +1 -1
  365. package/dist/modules/manager/ocb/extract.js +2 -3
  366. package/dist/modules/manager/ocb/extract.js.map +1 -1
  367. package/dist/modules/manager/osgi/extract.js +4 -4
  368. package/dist/modules/manager/osgi/extract.js.map +1 -1
  369. package/dist/modules/manager/pep621/artifacts.js +3 -4
  370. package/dist/modules/manager/pep621/artifacts.js.map +1 -1
  371. package/dist/modules/manager/pep621/processors/uv.js +2 -3
  372. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  373. package/dist/modules/manager/pep621/schema.d.ts +1 -1
  374. package/dist/modules/manager/pep621/schema.js +1 -0
  375. package/dist/modules/manager/pep621/schema.js.map +1 -1
  376. package/dist/modules/manager/pep621/utils.js +8 -10
  377. package/dist/modules/manager/pep621/utils.js.map +1 -1
  378. package/dist/modules/manager/pep723/schema.js +2 -3
  379. package/dist/modules/manager/pep723/schema.js.map +1 -1
  380. package/dist/modules/manager/pip-compile/common.js +3 -3
  381. package/dist/modules/manager/pip-compile/common.js.map +1 -1
  382. package/dist/modules/manager/pip_requirements/artifacts.js +2 -3
  383. package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
  384. package/dist/modules/manager/pip_requirements/extract.js +2 -3
  385. package/dist/modules/manager/pip_requirements/extract.js.map +1 -1
  386. package/dist/modules/manager/pipenv/artifacts.js +3 -4
  387. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  388. package/dist/modules/manager/pipenv/extract.js +6 -7
  389. package/dist/modules/manager/pipenv/extract.js.map +1 -1
  390. package/dist/modules/manager/pixi/artifacts.js +2 -3
  391. package/dist/modules/manager/pixi/artifacts.js.map +1 -1
  392. package/dist/modules/manager/pixi/extract.js +2 -3
  393. package/dist/modules/manager/pixi/extract.js.map +1 -1
  394. package/dist/modules/manager/poetry/artifacts.js +4 -5
  395. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  396. package/dist/modules/manager/poetry/extract.js +2 -3
  397. package/dist/modules/manager/poetry/extract.js.map +1 -1
  398. package/dist/modules/manager/poetry/schema.d.ts +4 -0
  399. package/dist/modules/manager/poetry/schema.js +5 -1
  400. package/dist/modules/manager/poetry/schema.js.map +1 -1
  401. package/dist/modules/manager/pre-commit/extract.js +4 -5
  402. package/dist/modules/manager/pre-commit/extract.js.map +1 -1
  403. package/dist/modules/manager/pub/artifacts.js +3 -4
  404. package/dist/modules/manager/pub/artifacts.js.map +1 -1
  405. package/dist/modules/manager/pub/extract.js +8 -11
  406. package/dist/modules/manager/pub/extract.js.map +1 -1
  407. package/dist/modules/manager/renovate-config-presets/extract.js +4 -5
  408. package/dist/modules/manager/renovate-config-presets/extract.js.map +1 -1
  409. package/dist/modules/manager/tekton/extract.js +9 -10
  410. package/dist/modules/manager/tekton/extract.js.map +1 -1
  411. package/dist/modules/manager/terraform/base.js +2 -3
  412. package/dist/modules/manager/terraform/base.js.map +1 -1
  413. package/dist/modules/manager/terraform/extract.js +2 -2
  414. package/dist/modules/manager/terraform/extract.js.map +1 -1
  415. package/dist/modules/manager/terraform/extractors/others/modules.js +3 -4
  416. package/dist/modules/manager/terraform/extractors/others/modules.js.map +1 -1
  417. package/dist/modules/manager/terraform/extractors/others/providers.js +3 -4
  418. package/dist/modules/manager/terraform/extractors/others/providers.js.map +1 -1
  419. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js +7 -8
  420. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js.map +1 -1
  421. package/dist/modules/manager/terraform/extractors/resources/helm-release.js +5 -6
  422. package/dist/modules/manager/terraform/extractors/resources/helm-release.js.map +1 -1
  423. package/dist/modules/manager/terraform/extractors/resources/terraform-workspace.js +3 -4
  424. package/dist/modules/manager/terraform/extractors/resources/terraform-workspace.js.map +1 -1
  425. package/dist/modules/manager/terraform/extractors/terraform-block/required-provider.js +4 -5
  426. package/dist/modules/manager/terraform/extractors/terraform-block/required-provider.js.map +1 -1
  427. package/dist/modules/manager/terraform/extractors/terraform-block/terraform-version.js +3 -3
  428. package/dist/modules/manager/terraform/extractors/terraform-block/terraform-version.js.map +1 -1
  429. package/dist/modules/manager/terraform/lockfile/index.js +2 -2
  430. package/dist/modules/manager/terraform/lockfile/index.js.map +1 -1
  431. package/dist/modules/manager/terraform/lockfile/util.js +2 -3
  432. package/dist/modules/manager/terraform/lockfile/util.js.map +1 -1
  433. package/dist/modules/manager/terraform/util.js +2 -3
  434. package/dist/modules/manager/terraform/util.js.map +1 -1
  435. package/dist/modules/manager/tflint-plugin/plugins.js +2 -3
  436. package/dist/modules/manager/tflint-plugin/plugins.js.map +1 -1
  437. package/dist/modules/manager/travis/extract.js +5 -6
  438. package/dist/modules/manager/travis/extract.js.map +1 -1
  439. package/dist/modules/manager/woodpecker/extract.js +2 -3
  440. package/dist/modules/manager/woodpecker/extract.js.map +1 -1
  441. package/dist/modules/platform/azure/index.js +2 -2
  442. package/dist/modules/platform/azure/index.js.map +1 -1
  443. package/dist/modules/platform/bitbucket/index.js +5 -5
  444. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  445. package/dist/modules/platform/bitbucket-server/pr-cache.js +3 -3
  446. package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -1
  447. package/dist/modules/platform/bitbucket-server/utils.js +2 -2
  448. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  449. package/dist/modules/platform/codecommit/codecommit-client.js +2 -2
  450. package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
  451. package/dist/modules/platform/forgejo/index.js +5 -5
  452. package/dist/modules/platform/forgejo/index.js.map +1 -1
  453. package/dist/modules/platform/forgejo/pr-cache.js +1 -1
  454. package/dist/modules/platform/forgejo/pr-cache.js.map +1 -1
  455. package/dist/modules/platform/forgejo/utils.js +2 -2
  456. package/dist/modules/platform/forgejo/utils.js.map +1 -1
  457. package/dist/modules/platform/gitea/index.js +5 -5
  458. package/dist/modules/platform/gitea/index.js.map +1 -1
  459. package/dist/modules/platform/gitea/pr-cache.js +1 -1
  460. package/dist/modules/platform/gitea/pr-cache.js.map +1 -1
  461. package/dist/modules/platform/gitea/utils.js +2 -2
  462. package/dist/modules/platform/gitea/utils.js.map +1 -1
  463. package/dist/modules/platform/github/common.js +4 -5
  464. package/dist/modules/platform/github/common.js.map +1 -1
  465. package/dist/modules/platform/github/index.js +5 -5
  466. package/dist/modules/platform/github/index.js.map +1 -1
  467. package/dist/modules/platform/github/pr.js +2 -3
  468. package/dist/modules/platform/github/pr.js.map +1 -1
  469. package/dist/modules/platform/gitlab/http.js +2 -3
  470. package/dist/modules/platform/gitlab/http.js.map +1 -1
  471. package/dist/modules/platform/gitlab/index.js +3 -3
  472. package/dist/modules/platform/gitlab/index.js.map +1 -1
  473. package/dist/modules/platform/gitlab/utils.js +3 -3
  474. package/dist/modules/platform/gitlab/utils.js.map +1 -1
  475. package/dist/modules/platform/pr-body.js +2 -3
  476. package/dist/modules/platform/pr-body.js.map +1 -1
  477. package/dist/modules/versioning/composer/index.js +2 -3
  478. package/dist/modules/versioning/composer/index.js.map +1 -1
  479. package/dist/modules/versioning/generic.js +5 -6
  480. package/dist/modules/versioning/generic.js.map +1 -1
  481. package/dist/modules/versioning/gradle/compare.js +3 -4
  482. package/dist/modules/versioning/gradle/compare.js.map +1 -1
  483. package/dist/modules/versioning/ivy/parse.js +1 -1
  484. package/dist/modules/versioning/ivy/parse.js.map +1 -1
  485. package/dist/modules/versioning/maven/index.js +1 -1
  486. package/dist/modules/versioning/maven/index.js.map +1 -1
  487. package/dist/modules/versioning/nixpkgs/index.js +6 -7
  488. package/dist/modules/versioning/nixpkgs/index.js.map +1 -1
  489. package/dist/modules/versioning/npm/range.js +2 -2
  490. package/dist/modules/versioning/npm/range.js.map +1 -1
  491. package/dist/modules/versioning/nuget/index.js +1 -1
  492. package/dist/modules/versioning/nuget/index.js.map +1 -1
  493. package/dist/modules/versioning/rpm/index.js +4 -5
  494. package/dist/modules/versioning/rpm/index.js.map +1 -1
  495. package/dist/modules/versioning/schema.js +2 -2
  496. package/dist/modules/versioning/schema.js.map +1 -1
  497. package/dist/modules/versioning/semver-coerced/index.js +3 -3
  498. package/dist/modules/versioning/semver-coerced/index.js.map +1 -1
  499. package/dist/modules/versioning/semver-partial/index.js +4 -4
  500. package/dist/modules/versioning/semver-partial/index.js.map +1 -1
  501. package/dist/proxy.js +3 -4
  502. package/dist/proxy.js.map +1 -1
  503. package/dist/util/array.js +4 -5
  504. package/dist/util/array.js.map +1 -1
  505. package/dist/util/assign-keys.js +2 -3
  506. package/dist/util/assign-keys.js.map +1 -1
  507. package/dist/util/cache/package/decorator.js +6 -6
  508. package/dist/util/cache/package/decorator.js.map +1 -1
  509. package/dist/util/cache/package/ttl.js +4 -5
  510. package/dist/util/cache/package/ttl.js.map +1 -1
  511. package/dist/util/cache/repository/impl/base.js +3 -4
  512. package/dist/util/cache/repository/impl/base.js.map +1 -1
  513. package/dist/util/cache/repository/impl/s3.js +2 -3
  514. package/dist/util/cache/repository/impl/s3.js.map +1 -1
  515. package/dist/util/exec/common.js +2 -3
  516. package/dist/util/exec/common.js.map +1 -1
  517. package/dist/util/exec/containerbase.js +2 -2
  518. package/dist/util/exec/containerbase.js.map +1 -1
  519. package/dist/util/exec/docker/index.js +5 -5
  520. package/dist/util/exec/docker/index.js.map +1 -1
  521. package/dist/util/exec/index.js +2 -2
  522. package/dist/util/exec/index.js.map +1 -1
  523. package/dist/util/exec/utils.js +3 -4
  524. package/dist/util/exec/utils.js.map +1 -1
  525. package/dist/util/filter-map.js +2 -3
  526. package/dist/util/filter-map.js.map +1 -1
  527. package/dist/util/fs/index.js +3 -3
  528. package/dist/util/fs/index.js.map +1 -1
  529. package/dist/util/git/auth.js +2 -3
  530. package/dist/util/git/auth.js.map +1 -1
  531. package/dist/util/git/behind-base-branch-cache.js +2 -1
  532. package/dist/util/git/behind-base-branch-cache.js.map +1 -1
  533. package/dist/util/git/config.js +3 -4
  534. package/dist/util/git/config.js.map +1 -1
  535. package/dist/util/git/conflicts-cache.js +2 -1
  536. package/dist/util/git/conflicts-cache.js.map +1 -1
  537. package/dist/util/git/index.js +5 -5
  538. package/dist/util/git/index.js.map +1 -1
  539. package/dist/util/git/private-key.js +2 -2
  540. package/dist/util/git/private-key.js.map +1 -1
  541. package/dist/util/github/graphql/datasource-fetcher.js +2 -1
  542. package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
  543. package/dist/util/host-rules.js +6 -6
  544. package/dist/util/host-rules.js.map +1 -1
  545. package/dist/util/http/auth.js +3 -4
  546. package/dist/util/http/auth.js.map +1 -1
  547. package/dist/util/http/bitbucket-server.js +2 -3
  548. package/dist/util/http/bitbucket-server.js.map +1 -1
  549. package/dist/util/http/bitbucket.js +3 -4
  550. package/dist/util/http/bitbucket.js.map +1 -1
  551. package/dist/util/http/cache/package-http-cache-provider.js +2 -2
  552. package/dist/util/http/cache/package-http-cache-provider.js.map +1 -1
  553. package/dist/util/http/forgejo.js +3 -4
  554. package/dist/util/http/forgejo.js.map +1 -1
  555. package/dist/util/http/gitea.js +3 -4
  556. package/dist/util/http/gitea.js.map +1 -1
  557. package/dist/util/http/github.js +10 -10
  558. package/dist/util/http/github.js.map +1 -1
  559. package/dist/util/http/gitlab.js +4 -5
  560. package/dist/util/http/gitlab.js.map +1 -1
  561. package/dist/util/http/host-rules.js +10 -10
  562. package/dist/util/http/host-rules.js.map +1 -1
  563. package/dist/util/http/http.js +5 -5
  564. package/dist/util/http/http.js.map +1 -1
  565. package/dist/util/http/rate-limits.js +3 -3
  566. package/dist/util/http/rate-limits.js.map +1 -1
  567. package/dist/util/http/retry-after.js +3 -4
  568. package/dist/util/http/retry-after.js.map +1 -1
  569. package/dist/util/interpolator.js +8 -9
  570. package/dist/util/interpolator.js.map +1 -1
  571. package/dist/util/merge-confidence/index.js +5 -5
  572. package/dist/util/merge-confidence/index.js.map +1 -1
  573. package/dist/util/number.js +2 -3
  574. package/dist/util/number.js.map +1 -1
  575. package/dist/util/package-rules/base-branches.js +3 -4
  576. package/dist/util/package-rules/base-branches.js.map +1 -1
  577. package/dist/util/package-rules/categories.js +3 -4
  578. package/dist/util/package-rules/categories.js.map +1 -1
  579. package/dist/util/package-rules/current-age.js +3 -4
  580. package/dist/util/package-rules/current-age.js.map +1 -1
  581. package/dist/util/package-rules/current-value.js +2 -3
  582. package/dist/util/package-rules/current-value.js.map +1 -1
  583. package/dist/util/package-rules/current-version.js +5 -5
  584. package/dist/util/package-rules/current-version.js.map +1 -1
  585. package/dist/util/package-rules/datasources.js +3 -4
  586. package/dist/util/package-rules/datasources.js.map +1 -1
  587. package/dist/util/package-rules/dep-names.js +3 -4
  588. package/dist/util/package-rules/dep-names.js.map +1 -1
  589. package/dist/util/package-rules/dep-types.js +2 -3
  590. package/dist/util/package-rules/dep-types.js.map +1 -1
  591. package/dist/util/package-rules/files.js +4 -5
  592. package/dist/util/package-rules/files.js.map +1 -1
  593. package/dist/util/package-rules/index.js +6 -6
  594. package/dist/util/package-rules/index.js.map +1 -1
  595. package/dist/util/package-rules/managers.js +3 -4
  596. package/dist/util/package-rules/managers.js.map +1 -1
  597. package/dist/util/package-rules/merge-confidence.js +5 -6
  598. package/dist/util/package-rules/merge-confidence.js.map +1 -1
  599. package/dist/util/package-rules/new-value.js +2 -3
  600. package/dist/util/package-rules/new-value.js.map +1 -1
  601. package/dist/util/package-rules/package-names.js +2 -3
  602. package/dist/util/package-rules/package-names.js.map +1 -1
  603. package/dist/util/package-rules/repositories.js +3 -4
  604. package/dist/util/package-rules/repositories.js.map +1 -1
  605. package/dist/util/package-rules/sourceurls.js +2 -3
  606. package/dist/util/package-rules/sourceurls.js.map +1 -1
  607. package/dist/util/package-rules/update-types.js +2 -3
  608. package/dist/util/package-rules/update-types.js.map +1 -1
  609. package/dist/util/pretty-time.js +4 -4
  610. package/dist/util/pretty-time.js.map +1 -1
  611. package/dist/util/regex.js +2 -3
  612. package/dist/util/regex.js.map +1 -1
  613. package/dist/util/s3.js +2 -3
  614. package/dist/util/s3.js.map +1 -1
  615. package/dist/util/sanitize.js +2 -3
  616. package/dist/util/sanitize.js.map +1 -1
  617. package/dist/util/string-match.js +2 -3
  618. package/dist/util/string-match.js.map +1 -1
  619. package/dist/util/template/index.js +6 -6
  620. package/dist/util/template/index.js.map +1 -1
  621. package/dist/util/url.js +5 -5
  622. package/dist/util/url.js.map +1 -1
  623. package/dist/workers/global/autodiscover.js +3 -4
  624. package/dist/workers/global/autodiscover.js.map +1 -1
  625. package/dist/workers/global/config/parse/additional-config-file.js +4 -4
  626. package/dist/workers/global/config/parse/additional-config-file.js.map +1 -1
  627. package/dist/workers/global/config/parse/coersions.js +2 -2
  628. package/dist/workers/global/config/parse/coersions.js.map +1 -1
  629. package/dist/workers/global/config/parse/env.js +2 -2
  630. package/dist/workers/global/config/parse/env.js.map +1 -1
  631. package/dist/workers/global/config/parse/file.js +5 -5
  632. package/dist/workers/global/config/parse/file.js.map +1 -1
  633. package/dist/workers/global/config/parse/index.js +6 -7
  634. package/dist/workers/global/config/parse/index.js.map +1 -1
  635. package/dist/workers/global/config/parse/util.js +2 -2
  636. package/dist/workers/global/config/parse/util.js.map +1 -1
  637. package/dist/workers/global/index.js +5 -5
  638. package/dist/workers/global/index.js.map +1 -1
  639. package/dist/workers/global/limits.js +6 -7
  640. package/dist/workers/global/limits.js.map +1 -1
  641. package/dist/workers/repository/config-migration/branch/index.js +2 -3
  642. package/dist/workers/repository/config-migration/branch/index.js.map +1 -1
  643. package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -2
  644. package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
  645. package/dist/workers/repository/config-migration/pr/index.js +3 -3
  646. package/dist/workers/repository/config-migration/pr/index.js.map +1 -1
  647. package/dist/workers/repository/dependency-dashboard.js +10 -10
  648. package/dist/workers/repository/dependency-dashboard.js.map +1 -1
  649. package/dist/workers/repository/extract/index.js +2 -3
  650. package/dist/workers/repository/extract/index.js.map +1 -1
  651. package/dist/workers/repository/extract/manager-files.js +2 -3
  652. package/dist/workers/repository/extract/manager-files.js.map +1 -1
  653. package/dist/workers/repository/extract/supersedes.js +4 -5
  654. package/dist/workers/repository/extract/supersedes.js.map +1 -1
  655. package/dist/workers/repository/finalize/prune.js +2 -3
  656. package/dist/workers/repository/finalize/prune.js.map +1 -1
  657. package/dist/workers/repository/init/inherited.js +5 -5
  658. package/dist/workers/repository/init/inherited.js.map +1 -1
  659. package/dist/workers/repository/init/merge.js +13 -13
  660. package/dist/workers/repository/init/merge.js.map +1 -1
  661. package/dist/workers/repository/model/commit-message.js +2 -3
  662. package/dist/workers/repository/model/commit-message.js.map +1 -1
  663. package/dist/workers/repository/onboarding/branch/check.js +2 -1
  664. package/dist/workers/repository/onboarding/branch/check.js.map +1 -1
  665. package/dist/workers/repository/onboarding/branch/index.js +3 -4
  666. package/dist/workers/repository/onboarding/branch/index.js.map +1 -1
  667. package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js +7 -8
  668. package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js.map +1 -1
  669. package/dist/workers/repository/onboarding/pr/config-description.js +2 -5
  670. package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
  671. package/dist/workers/repository/onboarding/pr/index.js +3 -3
  672. package/dist/workers/repository/onboarding/pr/index.js.map +1 -1
  673. package/dist/workers/repository/package-files.js +8 -9
  674. package/dist/workers/repository/package-files.js.map +1 -1
  675. package/dist/workers/repository/process/extract-update.js +2 -2
  676. package/dist/workers/repository/process/extract-update.js.map +1 -1
  677. package/dist/workers/repository/process/fetch.js +3 -3
  678. package/dist/workers/repository/process/fetch.js.map +1 -1
  679. package/dist/workers/repository/process/lookup/current.js +2 -3
  680. package/dist/workers/repository/process/lookup/current.js.map +1 -1
  681. package/dist/workers/repository/process/lookup/filter-checks.js +4 -5
  682. package/dist/workers/repository/process/lookup/filter-checks.js.map +1 -1
  683. package/dist/workers/repository/process/lookup/generate.js +2 -3
  684. package/dist/workers/repository/process/lookup/generate.js.map +1 -1
  685. package/dist/workers/repository/process/lookup/index.js +15 -16
  686. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  687. package/dist/workers/repository/process/lookup/utils.js +7 -7
  688. package/dist/workers/repository/process/lookup/utils.js.map +1 -1
  689. package/dist/workers/repository/process/vulnerabilities.js +11 -11
  690. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  691. package/dist/workers/repository/process/write.js +2 -3
  692. package/dist/workers/repository/process/write.js.map +1 -1
  693. package/dist/workers/repository/reconfigure/comment.js +2 -5
  694. package/dist/workers/repository/reconfigure/comment.js.map +1 -1
  695. package/dist/workers/repository/reconfigure/utils.js +2 -3
  696. package/dist/workers/repository/reconfigure/utils.js.map +1 -1
  697. package/dist/workers/repository/reconfigure/validate.js +2 -3
  698. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  699. package/dist/workers/repository/update/branch/auto-replace.js +4 -5
  700. package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
  701. package/dist/workers/repository/update/branch/commit.js +3 -4
  702. package/dist/workers/repository/update/branch/commit.js.map +1 -1
  703. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +12 -5
  704. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  705. package/dist/workers/repository/update/branch/get-updated.js +8 -9
  706. package/dist/workers/repository/update/branch/get-updated.js.map +1 -1
  707. package/dist/workers/repository/update/branch/index.js +3 -3
  708. package/dist/workers/repository/update/branch/index.js.map +1 -1
  709. package/dist/workers/repository/update/branch/schedule.js +2 -2
  710. package/dist/workers/repository/update/branch/schedule.js.map +1 -1
  711. package/dist/workers/repository/update/pr/body/notes.js +2 -2
  712. package/dist/workers/repository/update/pr/body/notes.js.map +1 -1
  713. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +2 -2
  714. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  715. package/dist/workers/repository/update/pr/changelog/index.js +3 -3
  716. package/dist/workers/repository/update/pr/changelog/index.js.map +1 -1
  717. package/dist/workers/repository/update/pr/changelog/release-notes.js +4 -4
  718. package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
  719. package/dist/workers/repository/update/pr/changelog/source.js +8 -8
  720. package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
  721. package/dist/workers/repository/update/pr/code-owners.js +2 -2
  722. package/dist/workers/repository/update/pr/code-owners.js.map +1 -1
  723. package/dist/workers/repository/update/pr/index.js +7 -8
  724. package/dist/workers/repository/update/pr/index.js.map +1 -1
  725. package/dist/workers/repository/update/pr/labels.js +4 -4
  726. package/dist/workers/repository/update/pr/labels.js.map +1 -1
  727. package/dist/workers/repository/update/pr/participants.js +4 -5
  728. package/dist/workers/repository/update/pr/participants.js.map +1 -1
  729. package/dist/workers/repository/updates/generate.js +4 -4
  730. package/dist/workers/repository/updates/generate.js.map +1 -1
  731. package/package.json +5 -5
  732. package/renovate-schema.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/nuget/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport type { XmlElement } from 'xmldoc';\nimport { XmlDocument } from 'xmldoc';\nimport { logger } from '../../../logger';\nimport { getSiblingFileName, localPathExists } from '../../../util/fs';\nimport { regEx } from '../../../util/regex';\nimport { NugetDatasource } from '../../datasource/nuget';\nimport * as semver from '../../versioning/semver';\nimport { getDep } from '../dockerfile/extract';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport { extractMsbuildGlobalManifest } from './extract/global-manifest';\nimport type { DotnetToolsManifest, NugetPackageDependency } from './types';\nimport {\n applyRegistries,\n findVersion,\n getConfiguredRegistries,\n isXmlElement,\n} from './util';\n\n/**\n * https://learn.microsoft.com/nuget/concepts/package-versioning\n * This article mentions that Nuget 3.x and later tries to restore the lowest possible version\n * regarding to given version range.\n * 1.3.4 equals [1.3.4,)\n */\nconst elemNames = new Set([\n 'PackageReference',\n 'PackageVersion',\n 'DotNetCliToolReference',\n 'GlobalPackageReference',\n]);\n\nfunction extractDepsFromXml(xmlNode: XmlDocument): NugetPackageDependency[] {\n const results: NugetPackageDependency[] = [];\n const vars = new Map<string, string>();\n const todo: XmlElement[] = [xmlNode];\n while (todo.length) {\n const child = todo.pop()!;\n const { name, attr } = child;\n\n if (name === 'ContainerBaseImage') {\n const { depName, ...dep } = getDep(child.val, true);\n\n if (is.nonEmptyStringAndNotWhitespace(depName)) {\n results.push({ ...dep, depName, depType: 'docker' });\n }\n } else if (elemNames.has(name)) {\n const depName = attr?.Include || attr?.Update;\n\n if (!depName) {\n continue;\n }\n\n const dep: NugetPackageDependency = {\n datasource: NugetDatasource.id,\n depType: 'nuget',\n depName,\n };\n\n let currentValue: string | undefined =\n attr?.Version ??\n attr?.version ??\n child.valueWithPath('Version') ??\n attr?.VersionOverride ??\n child.valueWithPath('VersionOverride');\n\n if (!is.nonEmptyStringAndNotWhitespace(currentValue)) {\n dep.skipReason = 'invalid-version';\n }\n\n let sharedVariableName: string | undefined;\n\n currentValue = currentValue\n ?.trim()\n ?.replace(/^\\$\\((\\w+)\\)$/, (match, key) => {\n sharedVariableName = key;\n const val = vars.get(key);\n if (val) {\n return val;\n }\n return match;\n });\n\n if (sharedVariableName) {\n if (currentValue === `$(${sharedVariableName})`) {\n // this means that be failed to find/replace the variable\n dep.skipReason = 'contains-variable';\n } else {\n dep.sharedVariableName = sharedVariableName;\n }\n }\n\n dep.currentValue = currentValue;\n results.push(dep);\n } else if (name === 'Sdk') {\n const depName = attr?.Name;\n const version = attr?.Version;\n // if sdk element is present it will always have the Name field but the Version is an optional field\n if (depName && version) {\n results.push({\n depName,\n currentValue: version,\n depType: 'msbuild-sdk',\n datasource: NugetDatasource.id,\n });\n }\n } else if (name === 'Import') {\n const depName = attr?.Sdk;\n const version = attr?.Version;\n if (depName && version) {\n results.push({\n depName,\n currentValue: version,\n depType: 'msbuild-sdk',\n datasource: NugetDatasource.id,\n });\n }\n } else {\n if (name === 'Project') {\n if (attr?.Sdk) {\n const str = attr?.Sdk;\n const [name, version] = str.split('/');\n if (name && version) {\n results.push({\n depName: name,\n depType: 'msbuild-sdk',\n currentValue: version,\n datasource: NugetDatasource.id,\n });\n }\n }\n\n const propertyGroup = child.childNamed('PropertyGroup');\n if (propertyGroup) {\n for (const propChild of propertyGroup.children) {\n if (isXmlElement(propChild)) {\n const { name, val } = propChild;\n if (!['Version', 'TargetFramework'].includes(name)) {\n vars.set(name, val);\n }\n }\n }\n }\n }\n\n todo.push(...child.children.filter(isXmlElement));\n }\n }\n return results;\n}\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n _config: ExtractConfig,\n): Promise<PackageFileContent | null> {\n logger.trace(`nuget.extractPackageFile(${packageFile})`);\n\n const registries = await getConfiguredRegistries(packageFile);\n\n if (packageFile.endsWith('dotnet-tools.json')) {\n const deps: PackageDependency[] = [];\n let manifest: DotnetToolsManifest;\n\n try {\n manifest = JSON.parse(content);\n } catch {\n logger.debug({ packageFile }, `Invalid JSON`);\n return null;\n }\n\n if (manifest.version !== 1) {\n logger.debug({ packageFile }, 'Unsupported dotnet tools version');\n return null;\n }\n\n for (const depName of Object.keys(manifest.tools ?? {})) {\n const tool = manifest.tools[depName];\n const currentValue = tool.version;\n const dep: NugetPackageDependency = {\n depType: 'nuget',\n depName,\n currentValue,\n datasource: NugetDatasource.id,\n };\n if (is.string(currentValue) && semver.isVersion(currentValue)) {\n // This is to avoid nuget versioning pinning to [1.2.3]\n dep.versioning = 'semver';\n }\n\n applyRegistries(dep, registries);\n\n deps.push(dep);\n }\n\n return deps.length ? { deps } : null;\n }\n\n if (packageFile.endsWith('global.json')) {\n return extractMsbuildGlobalManifest(content, packageFile, registries);\n }\n\n // Simple xml validation.\n // Should start with `<` and end with `>` after trimming all whitespace\n if (!regEx(/^\\s*<.+>$/m).test(content.trim())) {\n logger.debug(`NuGet: Skipping ${packageFile} as it is not XML`);\n return null;\n }\n\n let deps: PackageDependency[] = [];\n let packageFileVersion: string | undefined;\n try {\n const parsedXml = new XmlDocument(content);\n deps = extractDepsFromXml(parsedXml).map((dep) =>\n applyRegistries(dep, registries),\n );\n packageFileVersion = findVersion(parsedXml)?.val;\n } catch (err) {\n logger.debug({ err, packageFile }, `Failed to parse XML`);\n }\n\n if (!deps.length) {\n return null;\n }\n\n const res: PackageFileContent = { deps, packageFileVersion };\n const lockFileName = getSiblingFileName(packageFile, 'packages.lock.json');\n if (await localPathExists(lockFileName)) {\n res.lockFiles = [lockFileName];\n }\n return res;\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/nuget/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNonEmptyStringAndNotWhitespace, isString } from '@sindresorhus/is';\nimport type { XmlElement } from 'xmldoc';\nimport { XmlDocument } from 'xmldoc';\nimport { logger } from '../../../logger';\nimport { getSiblingFileName, localPathExists } from '../../../util/fs';\nimport { regEx } from '../../../util/regex';\nimport { NugetDatasource } from '../../datasource/nuget';\nimport * as semver from '../../versioning/semver';\nimport { getDep } from '../dockerfile/extract';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport { extractMsbuildGlobalManifest } from './extract/global-manifest';\nimport type { DotnetToolsManifest, NugetPackageDependency } from './types';\nimport {\n applyRegistries,\n findVersion,\n getConfiguredRegistries,\n isXmlElement,\n} from './util';\n\n/**\n * https://learn.microsoft.com/nuget/concepts/package-versioning\n * This article mentions that Nuget 3.x and later tries to restore the lowest possible version\n * regarding to given version range.\n * 1.3.4 equals [1.3.4,)\n */\nconst elemNames = new Set([\n 'PackageReference',\n 'PackageVersion',\n 'DotNetCliToolReference',\n 'GlobalPackageReference',\n]);\n\nfunction extractDepsFromXml(xmlNode: XmlDocument): NugetPackageDependency[] {\n const results: NugetPackageDependency[] = [];\n const vars = new Map<string, string>();\n const todo: XmlElement[] = [xmlNode];\n while (todo.length) {\n const child = todo.pop()!;\n const { name, attr } = child;\n\n if (name === 'ContainerBaseImage') {\n const { depName, ...dep } = getDep(child.val, true);\n\n if (isNonEmptyStringAndNotWhitespace(depName)) {\n results.push({ ...dep, depName, depType: 'docker' });\n }\n } else if (elemNames.has(name)) {\n const depName = attr?.Include || attr?.Update;\n\n if (!depName) {\n continue;\n }\n\n const dep: NugetPackageDependency = {\n datasource: NugetDatasource.id,\n depType: 'nuget',\n depName,\n };\n\n let currentValue: string | undefined =\n attr?.Version ??\n attr?.version ??\n child.valueWithPath('Version') ??\n attr?.VersionOverride ??\n child.valueWithPath('VersionOverride');\n\n if (!isNonEmptyStringAndNotWhitespace(currentValue)) {\n dep.skipReason = 'invalid-version';\n }\n\n let sharedVariableName: string | undefined;\n\n currentValue = currentValue\n ?.trim()\n ?.replace(/^\\$\\((\\w+)\\)$/, (match, key) => {\n sharedVariableName = key;\n const val = vars.get(key);\n if (val) {\n return val;\n }\n return match;\n });\n\n if (sharedVariableName) {\n if (currentValue === `$(${sharedVariableName})`) {\n // this means that be failed to find/replace the variable\n dep.skipReason = 'contains-variable';\n } else {\n dep.sharedVariableName = sharedVariableName;\n }\n }\n\n dep.currentValue = currentValue;\n results.push(dep);\n } else if (name === 'Sdk') {\n const depName = attr?.Name;\n const version = attr?.Version;\n // if sdk element is present it will always have the Name field but the Version is an optional field\n if (depName && version) {\n results.push({\n depName,\n currentValue: version,\n depType: 'msbuild-sdk',\n datasource: NugetDatasource.id,\n });\n }\n } else if (name === 'Import') {\n const depName = attr?.Sdk;\n const version = attr?.Version;\n if (depName && version) {\n results.push({\n depName,\n currentValue: version,\n depType: 'msbuild-sdk',\n datasource: NugetDatasource.id,\n });\n }\n } else {\n if (name === 'Project') {\n if (attr?.Sdk) {\n const str = attr?.Sdk;\n const [name, version] = str.split('/');\n if (name && version) {\n results.push({\n depName: name,\n depType: 'msbuild-sdk',\n currentValue: version,\n datasource: NugetDatasource.id,\n });\n }\n }\n\n const propertyGroup = child.childNamed('PropertyGroup');\n if (propertyGroup) {\n for (const propChild of propertyGroup.children) {\n if (isXmlElement(propChild)) {\n const { name, val } = propChild;\n if (!['Version', 'TargetFramework'].includes(name)) {\n vars.set(name, val);\n }\n }\n }\n }\n }\n\n todo.push(...child.children.filter(isXmlElement));\n }\n }\n return results;\n}\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n _config: ExtractConfig,\n): Promise<PackageFileContent | null> {\n logger.trace(`nuget.extractPackageFile(${packageFile})`);\n\n const registries = await getConfiguredRegistries(packageFile);\n\n if (packageFile.endsWith('dotnet-tools.json')) {\n const deps: PackageDependency[] = [];\n let manifest: DotnetToolsManifest;\n\n try {\n manifest = JSON.parse(content);\n } catch {\n logger.debug({ packageFile }, `Invalid JSON`);\n return null;\n }\n\n if (manifest.version !== 1) {\n logger.debug({ packageFile }, 'Unsupported dotnet tools version');\n return null;\n }\n\n for (const depName of Object.keys(manifest.tools ?? {})) {\n const tool = manifest.tools[depName];\n const currentValue = tool.version;\n const dep: NugetPackageDependency = {\n depType: 'nuget',\n depName,\n currentValue,\n datasource: NugetDatasource.id,\n };\n if (isString(currentValue) && semver.isVersion(currentValue)) {\n // This is to avoid nuget versioning pinning to [1.2.3]\n dep.versioning = 'semver';\n }\n\n applyRegistries(dep, registries);\n\n deps.push(dep);\n }\n\n return deps.length ? { deps } : null;\n }\n\n if (packageFile.endsWith('global.json')) {\n return extractMsbuildGlobalManifest(content, packageFile, registries);\n }\n\n // Simple xml validation.\n // Should start with `<` and end with `>` after trimming all whitespace\n if (!regEx(/^\\s*<.+>$/m).test(content.trim())) {\n logger.debug(`NuGet: Skipping ${packageFile} as it is not XML`);\n return null;\n }\n\n let deps: PackageDependency[] = [];\n let packageFileVersion: string | undefined;\n try {\n const parsedXml = new XmlDocument(content);\n deps = extractDepsFromXml(parsedXml).map((dep) =>\n applyRegistries(dep, registries),\n );\n packageFileVersion = findVersion(parsedXml)?.val;\n } catch (err) {\n logger.debug({ err, packageFile }, `Failed to parse XML`);\n }\n\n if (!deps.length) {\n return null;\n }\n\n const res: PackageFileContent = { deps, packageFileVersion };\n const lockFileName = getSiblingFileName(packageFile, 'packages.lock.json');\n if (await localPathExists(lockFileName)) {\n res.lockFiles = [lockFileName];\n }\n return res;\n}\n"]}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MSBUILD_CENTRAL_FILE = exports.NUGET_CENTRAL_FILE = exports.GLOBAL_JSON = void 0;
4
4
  exports.getDependentPackageFiles = getDependentPackageFiles;
5
5
  const tslib_1 = require("tslib");
6
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
6
+ const is_1 = require("@sindresorhus/is");
7
7
  const graph_data_structure_1 = require("graph-data-structure");
8
8
  const upath_1 = tslib_1.__importDefault(require("upath"));
9
9
  const logger_1 = require("../../../logger");
@@ -47,7 +47,7 @@ async function getDependentPackageFiles(packageFileName, isCentralManagement = f
47
47
  .map((ig) => ig.childrenNamed('ProjectReference'))
48
48
  .flat()
49
49
  .map((pf) => pf.attr.Include)
50
- .filter(is_1.default.nonEmptyString);
50
+ .filter(is_1.isNonEmptyString);
51
51
  const projectReferences = projectReferenceAttributes.map((a) => upath_1.default.normalize(a));
52
52
  const normalizedRelativeProjectReferences = projectReferences.map((r) => reframeRelativePathToRootOfRepo(f, r));
53
53
  for (const ref of normalizedRelativeProjectReferences) {
@@ -1 +1 @@
1
- {"version":3,"file":"package-tree.js","sourceRoot":"","sources":["../../../../lib/modules/manager/nuget/package-tree.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { Graph, hasCycle } from 'graph-data-structure';\nimport upath from 'upath';\nimport { logger } from '../../../logger';\nimport { minimatchFilter } from '../../../util/minimatch';\nimport { scm } from '../../platform/scm';\nimport type { ProjectFile } from './types';\nimport { readFileAsXmlDocument } from './util';\n\nexport const GLOBAL_JSON = 'global.json';\nexport const NUGET_CENTRAL_FILE = 'Directory.Packages.props';\nexport const MSBUILD_CENTRAL_FILE = 'Packages.props';\n\n/**\n * Get all leaf package files of ancestry that depend on packageFileName.\n */\nexport async function getDependentPackageFiles(\n packageFileName: string,\n isCentralManagement = false,\n isGlobalJson = false,\n): Promise<ProjectFile[]> {\n const packageFiles = await getAllPackageFiles();\n const graph = new Graph();\n\n if (isCentralManagement) {\n graph.addNode(packageFileName);\n }\n\n if (isGlobalJson) {\n graph.addNode(GLOBAL_JSON);\n }\n\n const parentDir =\n packageFileName === NUGET_CENTRAL_FILE ||\n packageFileName === MSBUILD_CENTRAL_FILE ||\n packageFileName === GLOBAL_JSON\n ? ''\n : upath.dirname(packageFileName);\n\n for (const f of packageFiles) {\n graph.addNode(f);\n\n if (\n (isCentralManagement || isGlobalJson) &&\n upath.dirname(f).startsWith(parentDir)\n ) {\n graph.addEdge(packageFileName, f);\n }\n }\n\n for (const f of packageFiles) {\n const doc = await readFileAsXmlDocument(f);\n if (!doc) {\n continue;\n }\n\n const projectReferenceAttributes = doc\n .childrenNamed('ItemGroup')\n .map((ig) => ig.childrenNamed('ProjectReference'))\n .flat()\n .map((pf) => pf.attr.Include)\n .filter(is.nonEmptyString);\n\n const projectReferences = projectReferenceAttributes.map((a) =>\n upath.normalize(a),\n );\n const normalizedRelativeProjectReferences = projectReferences.map((r) =>\n reframeRelativePathToRootOfRepo(f, r),\n );\n\n for (const ref of normalizedRelativeProjectReferences) {\n graph.addEdge(ref, f);\n }\n\n if (hasCycle(graph)) {\n throw new Error('Circular reference detected in NuGet package files');\n }\n }\n\n const deps = new Map<string, boolean>();\n recursivelyGetDependentPackageFiles(packageFileName, graph, deps);\n\n if (isCentralManagement || isGlobalJson) {\n // remove props file, as we don't need it\n deps.delete(packageFileName);\n }\n\n // deduplicate\n return Array.from(deps).map(([name, isLeaf]) => ({ name, isLeaf }));\n}\n\n/**\n * Traverse graph and find dependent package files at any level of ancestry\n */\nfunction recursivelyGetDependentPackageFiles(\n packageFileName: string,\n graph: Graph,\n deps: Map<string, boolean>,\n): void {\n if (deps.has(packageFileName)) {\n // we have already visited this package file\n return;\n }\n\n const dependents = graph.adjacent(packageFileName);\n\n if (!dependents || dependents.size === 0) {\n deps.set(packageFileName, true);\n return;\n }\n\n deps.set(packageFileName, false);\n\n for (const dep of dependents) {\n recursivelyGetDependentPackageFiles(dep, graph, deps);\n }\n}\n\n/**\n * Take the path relative from a project file, and make it relative from the root of the repo\n */\nfunction reframeRelativePathToRootOfRepo(\n dependentProjectRelativePath: string,\n projectReference: string,\n): string {\n const virtualRepoRoot = '/';\n const absoluteDependentProjectPath = upath.resolve(\n virtualRepoRoot,\n dependentProjectRelativePath,\n );\n const absoluteProjectReferencePath = upath.resolve(\n upath.dirname(absoluteDependentProjectPath),\n projectReference,\n );\n const relativeProjectReferencePath = upath.relative(\n virtualRepoRoot,\n absoluteProjectReferencePath,\n );\n\n return relativeProjectReferencePath;\n}\n\n/**\n * Get a list of package files in localDir\n */\nasync function getAllPackageFiles(): Promise<string[]> {\n const allFiles = await scm.getFileList();\n const filteredPackageFiles = allFiles.filter(\n minimatchFilter('*.{cs,vb,fs}proj', { matchBase: true, nocase: true }),\n );\n\n logger.trace({ filteredPackageFiles }, 'Found package files');\n\n return filteredPackageFiles;\n}\n"]}
1
+ {"version":3,"file":"package-tree.js","sourceRoot":"","sources":["../../../../lib/modules/manager/nuget/package-tree.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNonEmptyString } from '@sindresorhus/is';\nimport { Graph, hasCycle } from 'graph-data-structure';\nimport upath from 'upath';\nimport { logger } from '../../../logger';\nimport { minimatchFilter } from '../../../util/minimatch';\nimport { scm } from '../../platform/scm';\nimport type { ProjectFile } from './types';\nimport { readFileAsXmlDocument } from './util';\n\nexport const GLOBAL_JSON = 'global.json';\nexport const NUGET_CENTRAL_FILE = 'Directory.Packages.props';\nexport const MSBUILD_CENTRAL_FILE = 'Packages.props';\n\n/**\n * Get all leaf package files of ancestry that depend on packageFileName.\n */\nexport async function getDependentPackageFiles(\n packageFileName: string,\n isCentralManagement = false,\n isGlobalJson = false,\n): Promise<ProjectFile[]> {\n const packageFiles = await getAllPackageFiles();\n const graph = new Graph();\n\n if (isCentralManagement) {\n graph.addNode(packageFileName);\n }\n\n if (isGlobalJson) {\n graph.addNode(GLOBAL_JSON);\n }\n\n const parentDir =\n packageFileName === NUGET_CENTRAL_FILE ||\n packageFileName === MSBUILD_CENTRAL_FILE ||\n packageFileName === GLOBAL_JSON\n ? ''\n : upath.dirname(packageFileName);\n\n for (const f of packageFiles) {\n graph.addNode(f);\n\n if (\n (isCentralManagement || isGlobalJson) &&\n upath.dirname(f).startsWith(parentDir)\n ) {\n graph.addEdge(packageFileName, f);\n }\n }\n\n for (const f of packageFiles) {\n const doc = await readFileAsXmlDocument(f);\n if (!doc) {\n continue;\n }\n\n const projectReferenceAttributes = doc\n .childrenNamed('ItemGroup')\n .map((ig) => ig.childrenNamed('ProjectReference'))\n .flat()\n .map((pf) => pf.attr.Include)\n .filter(isNonEmptyString);\n\n const projectReferences = projectReferenceAttributes.map((a) =>\n upath.normalize(a),\n );\n const normalizedRelativeProjectReferences = projectReferences.map((r) =>\n reframeRelativePathToRootOfRepo(f, r),\n );\n\n for (const ref of normalizedRelativeProjectReferences) {\n graph.addEdge(ref, f);\n }\n\n if (hasCycle(graph)) {\n throw new Error('Circular reference detected in NuGet package files');\n }\n }\n\n const deps = new Map<string, boolean>();\n recursivelyGetDependentPackageFiles(packageFileName, graph, deps);\n\n if (isCentralManagement || isGlobalJson) {\n // remove props file, as we don't need it\n deps.delete(packageFileName);\n }\n\n // deduplicate\n return Array.from(deps).map(([name, isLeaf]) => ({ name, isLeaf }));\n}\n\n/**\n * Traverse graph and find dependent package files at any level of ancestry\n */\nfunction recursivelyGetDependentPackageFiles(\n packageFileName: string,\n graph: Graph,\n deps: Map<string, boolean>,\n): void {\n if (deps.has(packageFileName)) {\n // we have already visited this package file\n return;\n }\n\n const dependents = graph.adjacent(packageFileName);\n\n if (!dependents || dependents.size === 0) {\n deps.set(packageFileName, true);\n return;\n }\n\n deps.set(packageFileName, false);\n\n for (const dep of dependents) {\n recursivelyGetDependentPackageFiles(dep, graph, deps);\n }\n}\n\n/**\n * Take the path relative from a project file, and make it relative from the root of the repo\n */\nfunction reframeRelativePathToRootOfRepo(\n dependentProjectRelativePath: string,\n projectReference: string,\n): string {\n const virtualRepoRoot = '/';\n const absoluteDependentProjectPath = upath.resolve(\n virtualRepoRoot,\n dependentProjectRelativePath,\n );\n const absoluteProjectReferencePath = upath.resolve(\n upath.dirname(absoluteDependentProjectPath),\n projectReference,\n );\n const relativeProjectReferencePath = upath.relative(\n virtualRepoRoot,\n absoluteProjectReferencePath,\n );\n\n return relativeProjectReferencePath;\n}\n\n/**\n * Get a list of package files in localDir\n */\nasync function getAllPackageFiles(): Promise<string[]> {\n const allFiles = await scm.getFileList();\n const filteredPackageFiles = allFiles.filter(\n minimatchFilter('*.{cs,vb,fs}proj', { matchBase: true, nocase: true }),\n );\n\n logger.trace({ filteredPackageFiles }, 'Found package files');\n\n return filteredPackageFiles;\n}\n"]}
@@ -2,8 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractPackageFile = extractPackageFile;
4
4
  exports.processModule = processModule;
5
- const tslib_1 = require("tslib");
6
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
5
+ const is_1 = require("@sindresorhus/is");
7
6
  const logger_1 = require("../../../logger");
8
7
  const regex_1 = require("../../../util/regex");
9
8
  const yaml_1 = require("../../../util/yaml");
@@ -47,7 +46,7 @@ function extractPackageFile(content, packageFile, _config) {
47
46
  }
48
47
  function processModule(module, depType) {
49
48
  const deps = [];
50
- if (is_1.default.nullOrUndefined(module)) {
49
+ if ((0, is_1.isNullOrUndefined)(module)) {
51
50
  return deps;
52
51
  }
53
52
  for (const element of module) {
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/ocb/extract.ts"],"names":[],"mappings":";;AAYA,gDAgDC;AAED,sCAoBC;;AAlFD,kEAAkC;AAClC,4CAAyC;AACzC,+CAA4C;AAC5C,6CAAqD;AACrD,4CAAmD;AAMnD,qCAAkD;AAElD,SAAgB,kBAAkB,CAChC,OAAe,EACf,WAAmB,EACnB,OAAuB;IAEvB,IAAI,UAAU,GAAqB,IAAI,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAA,sBAAe,EAAC,OAAO,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,kBAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,eAAM,CAAC,KAAK,CACV,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EACpC,4BAA4B,CAC7B,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,KAAK,CACV,EAAE,WAAW,EAAE,KAAK,EAAE,EACtB,0CAA0C,CAC3C,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,IAAI,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC;YACR,UAAU,EAAE,iBAAY,CAAC,EAAE;YAC3B,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,+BAA+B;YACxC,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,eAAe;YAC7C,cAAc,EAAE,oBAAoB;SACrC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAE/D,OAAO;QACL,kBAAkB,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO;QAC3C,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAC3B,MAAc,EACd,OAAe;IAEf,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,IAAI,YAAE,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;QAC7B,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAA,aAAK,EAAC,KAAK,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC;YACR,UAAU,EAAE,iBAAY,CAAC,EAAE;YAC3B,OAAO;YACP,OAAO;YACP,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { regEx } from '../../../util/regex';\nimport { parseSingleYaml } from '../../../util/yaml';\nimport { GoDatasource } from '../../datasource/go';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport { type Module, OCBConfig } from './schema';\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n _config?: ExtractConfig,\n): PackageFileContent | null {\n let definition: OCBConfig | null = null;\n try {\n const yaml = parseSingleYaml(content);\n const parsed = OCBConfig.safeParse(yaml);\n if (!parsed.success) {\n logger.trace(\n { packageFile, error: parsed.error },\n 'Failed to parse OCB schema',\n );\n return null;\n }\n\n definition = parsed.data;\n } catch (error) {\n logger.debug(\n { packageFile, error },\n 'OCB manager failed to parse file as YAML',\n );\n return null;\n }\n\n const deps: PackageDependency[] = [];\n if (definition.dist.otelcol_version) {\n deps.push({\n datasource: GoDatasource.id,\n depType: 'collector',\n depName: 'go.opentelemetry.io/collector',\n currentValue: definition.dist.otelcol_version,\n extractVersion: '^v(?<version>\\\\S+)',\n });\n }\n\n deps.push(...processModule(definition.connectors, 'connectors'));\n deps.push(...processModule(definition.exporters, 'exports'));\n deps.push(...processModule(definition.extensions, 'extensions'));\n deps.push(...processModule(definition.processors, 'processors'));\n deps.push(...processModule(definition.providers, 'providers'));\n deps.push(...processModule(definition.receivers, 'receivers'));\n\n return {\n packageFileVersion: definition.dist.version,\n deps,\n };\n}\n\nexport function processModule(\n module: Module,\n depType: string,\n): PackageDependency[] {\n const deps: PackageDependency[] = [];\n if (is.nullOrUndefined(module)) {\n return deps;\n }\n\n for (const element of module) {\n const [depName, currentValue] = element.gomod.trim().split(regEx(/\\s+/));\n deps.push({\n datasource: GoDatasource.id,\n depType,\n depName,\n currentValue,\n });\n }\n\n return deps;\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/ocb/extract.ts"],"names":[],"mappings":";;AAYA,gDAgDC;AAED,sCAoBC;AAlFD,yCAAqD;AACrD,4CAAyC;AACzC,+CAA4C;AAC5C,6CAAqD;AACrD,4CAAmD;AAMnD,qCAAkD;AAElD,SAAgB,kBAAkB,CAChC,OAAe,EACf,WAAmB,EACnB,OAAuB;IAEvB,IAAI,UAAU,GAAqB,IAAI,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAA,sBAAe,EAAC,OAAO,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,kBAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,eAAM,CAAC,KAAK,CACV,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EACpC,4BAA4B,CAC7B,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,KAAK,CACV,EAAE,WAAW,EAAE,KAAK,EAAE,EACtB,0CAA0C,CAC3C,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,IAAI,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC;YACR,UAAU,EAAE,iBAAY,CAAC,EAAE;YAC3B,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,+BAA+B;YACxC,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,eAAe;YAC7C,cAAc,EAAE,oBAAoB;SACrC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAE/D,OAAO;QACL,kBAAkB,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO;QAC3C,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAC3B,MAAc,EACd,OAAe;IAEf,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,IAAI,IAAA,sBAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;QAC7B,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAA,aAAK,EAAC,KAAK,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC;YACR,UAAU,EAAE,iBAAY,CAAC,EAAE;YAC3B,OAAO;YACP,OAAO;YACP,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import { isNullOrUndefined } from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { regEx } from '../../../util/regex';\nimport { parseSingleYaml } from '../../../util/yaml';\nimport { GoDatasource } from '../../datasource/go';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport { type Module, OCBConfig } from './schema';\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n _config?: ExtractConfig,\n): PackageFileContent | null {\n let definition: OCBConfig | null = null;\n try {\n const yaml = parseSingleYaml(content);\n const parsed = OCBConfig.safeParse(yaml);\n if (!parsed.success) {\n logger.trace(\n { packageFile, error: parsed.error },\n 'Failed to parse OCB schema',\n );\n return null;\n }\n\n definition = parsed.data;\n } catch (error) {\n logger.debug(\n { packageFile, error },\n 'OCB manager failed to parse file as YAML',\n );\n return null;\n }\n\n const deps: PackageDependency[] = [];\n if (definition.dist.otelcol_version) {\n deps.push({\n datasource: GoDatasource.id,\n depType: 'collector',\n depName: 'go.opentelemetry.io/collector',\n currentValue: definition.dist.otelcol_version,\n extractVersion: '^v(?<version>\\\\S+)',\n });\n }\n\n deps.push(...processModule(definition.connectors, 'connectors'));\n deps.push(...processModule(definition.exporters, 'exports'));\n deps.push(...processModule(definition.extensions, 'extensions'));\n deps.push(...processModule(definition.processors, 'processors'));\n deps.push(...processModule(definition.providers, 'providers'));\n deps.push(...processModule(definition.receivers, 'receivers'));\n\n return {\n packageFileVersion: definition.dist.version,\n deps,\n };\n}\n\nexport function processModule(\n module: Module,\n depType: string,\n): PackageDependency[] {\n const deps: PackageDependency[] = [];\n if (isNullOrUndefined(module)) {\n return deps;\n }\n\n for (const element of module) {\n const [depName, currentValue] = element.gomod.trim().split(regEx(/\\s+/));\n deps.push({\n datasource: GoDatasource.id,\n depType,\n depName,\n currentValue,\n });\n }\n\n return deps;\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractPackageFile = extractPackageFile;
4
4
  const tslib_1 = require("tslib");
5
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
5
+ const is_1 = require("@sindresorhus/is");
6
6
  const json5_1 = tslib_1.__importDefault(require("json5"));
7
7
  const semver_1 = require("semver");
8
8
  const logger_1 = require("../../../logger");
@@ -24,7 +24,7 @@ function extractPackageFile(content, packageFile, _config) {
24
24
  }
25
25
  if (
26
26
  // for empty an empty result
27
- is_1.default.nullOrUndefined(featureModel) ||
27
+ (0, is_1.isNullOrUndefined)(featureModel) ||
28
28
  // Compendium R8 159.9: resource versioning
29
29
  !isSupportedFeatureResourceVersion(featureModel, packageFile)) {
30
30
  return null;
@@ -33,7 +33,7 @@ function extractPackageFile(content, packageFile, _config) {
33
33
  const allBundles = featureModel.bundles ?? [];
34
34
  // The 'execution-environment' key is supported by the Sling/OSGi feature model implementation
35
35
  const execEnvFramework = featureModel['execution-environment:JSON|false']?.framework;
36
- if (!is_1.default.nullOrUndefined(execEnvFramework)) {
36
+ if (!(0, is_1.isNullOrUndefined)(execEnvFramework)) {
37
37
  allBundles.push(execEnvFramework);
38
38
  }
39
39
  // parse custom sections
@@ -100,7 +100,7 @@ function isSupportedFeatureResourceVersion(featureModel, fileName) {
100
100
  }
101
101
  function extractArtifactList(sectionName, sectionValue) {
102
102
  // The 'ARTIFACTS' key is supported by the Sling/OSGi feature model implementation
103
- if (sectionName.includes(':ARTIFACTS|') && is_1.default.array(sectionValue)) {
103
+ if (sectionName.includes(':ARTIFACTS|') && (0, is_1.isArray)(sectionValue)) {
104
104
  return sectionValue;
105
105
  }
106
106
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/osgi/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport json5 from 'json5';\nimport { coerce, satisfies } from 'semver';\nimport { logger } from '../../../logger';\nimport { MavenDatasource } from '../../datasource/maven';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport type { Bundle, FeatureModel } from './types';\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n _config?: ExtractConfig,\n): PackageFileContent | null {\n // References:\n // - OSGi compendium release 8 ( https://docs.osgi.org/specification/osgi.cmpn/8.0.0/service.feature.html )\n // - The Sling implementation of the feature model ( https://sling.apache.org/documentation/development/feature-model.html )\n logger.trace(`osgi.extractPackageFile($packageFile)`);\n\n const deps: PackageDependency[] = [];\n let featureModel: FeatureModel;\n try {\n // Compendium R8 159.3: JS comments are supported\n featureModel = json5.parse<FeatureModel>(content);\n } catch (err) {\n logger.warn({ packageFile, err }, 'Failed to parse osgi file');\n return null;\n }\n\n if (\n // for empty an empty result\n is.nullOrUndefined(featureModel) ||\n // Compendium R8 159.9: resource versioning\n !isSupportedFeatureResourceVersion(featureModel, packageFile)\n ) {\n return null;\n }\n\n // OSGi Compendium R8 159.4: bundles entry\n const allBundles = featureModel.bundles ?? [];\n\n // The 'execution-environment' key is supported by the Sling/OSGi feature model implementation\n const execEnvFramework =\n featureModel['execution-environment:JSON|false']?.framework;\n if (!is.nullOrUndefined(execEnvFramework)) {\n allBundles.push(execEnvFramework);\n }\n\n // parse custom sections\n //\n // Note: we do not support artifact list extensions as defined in\n // section 159.7.3 yet. As of 05-12-2022, there is no implementation that\n // supports this\n for (const [section, value] of Object.entries(featureModel)) {\n logger.trace({ fileName: packageFile, section }, 'Parsing section');\n const customSectionEntries = extractArtifactList(section, value);\n allBundles.push(...customSectionEntries);\n }\n\n // convert bundles to dependencies\n for (const entry of allBundles) {\n const rawGav = typeof entry === 'string' ? entry : entry.id;\n // skip invalid definitions, such as objects without an id set\n if (!rawGav) {\n continue;\n }\n\n // both '/' and ':' are valid separators, but the Maven datasource\n // expects the separator to be ':'\n const gav = rawGav.replace(/\\//g, ':');\n\n // identifiers support 3-5 parts, see OSGi R8 - 159.2.1 Identifiers\n // groupId ':' artifactId ( ':' type ( ':' classifier )? )? ':' version\n const parts = gav.split(':');\n if (parts.length < 3 || parts.length > 5) {\n deps.push({\n depName: gav,\n skipReason: 'invalid-value',\n });\n continue;\n }\n // parsing should use the last entry for the version\n const currentValue = parts[parts.length - 1];\n const result: PackageDependency = {\n datasource: MavenDatasource.id,\n depName: `${parts[0]}:${parts[1]}`,\n };\n if (currentValue.includes('${')) {\n result.skipReason = 'contains-variable';\n } else {\n result.currentValue = currentValue;\n }\n\n deps.push(result);\n }\n\n return deps.length ? { deps } : null;\n}\n\nfunction isSupportedFeatureResourceVersion(\n featureModel: FeatureModel,\n fileName: string,\n): boolean {\n const resourceVersion = featureModel['feature-resource-version'];\n if (resourceVersion) {\n const resourceSemVer = coerce(resourceVersion);\n if (!resourceSemVer) {\n logger.debug(\n `Skipping file ${fileName} due to invalid feature-resource-version '${resourceVersion}'`,\n );\n return false;\n }\n\n // we only support 1.x, although no over version has been defined\n if (!satisfies(resourceSemVer, '^1')) {\n logger.debug(\n `Skipping file ${fileName} due to unsupported feature-resource-version '${resourceVersion}'`,\n );\n return false;\n }\n }\n\n return true;\n}\n\nfunction extractArtifactList(\n sectionName: string,\n sectionValue: unknown,\n): Bundle[] {\n // The 'ARTIFACTS' key is supported by the Sling/OSGi feature model implementation\n if (sectionName.includes(':ARTIFACTS|') && is.array(sectionValue)) {\n return sectionValue as Bundle[];\n }\n\n return [];\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/osgi/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { isArray, isNullOrUndefined } from '@sindresorhus/is';\nimport json5 from 'json5';\nimport { coerce, satisfies } from 'semver';\nimport { logger } from '../../../logger';\nimport { MavenDatasource } from '../../datasource/maven';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport type { Bundle, FeatureModel } from './types';\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n _config?: ExtractConfig,\n): PackageFileContent | null {\n // References:\n // - OSGi compendium release 8 ( https://docs.osgi.org/specification/osgi.cmpn/8.0.0/service.feature.html )\n // - The Sling implementation of the feature model ( https://sling.apache.org/documentation/development/feature-model.html )\n logger.trace(`osgi.extractPackageFile($packageFile)`);\n\n const deps: PackageDependency[] = [];\n let featureModel: FeatureModel;\n try {\n // Compendium R8 159.3: JS comments are supported\n featureModel = json5.parse<FeatureModel>(content);\n } catch (err) {\n logger.warn({ packageFile, err }, 'Failed to parse osgi file');\n return null;\n }\n\n if (\n // for empty an empty result\n isNullOrUndefined(featureModel) ||\n // Compendium R8 159.9: resource versioning\n !isSupportedFeatureResourceVersion(featureModel, packageFile)\n ) {\n return null;\n }\n\n // OSGi Compendium R8 159.4: bundles entry\n const allBundles = featureModel.bundles ?? [];\n\n // The 'execution-environment' key is supported by the Sling/OSGi feature model implementation\n const execEnvFramework =\n featureModel['execution-environment:JSON|false']?.framework;\n if (!isNullOrUndefined(execEnvFramework)) {\n allBundles.push(execEnvFramework);\n }\n\n // parse custom sections\n //\n // Note: we do not support artifact list extensions as defined in\n // section 159.7.3 yet. As of 05-12-2022, there is no implementation that\n // supports this\n for (const [section, value] of Object.entries(featureModel)) {\n logger.trace({ fileName: packageFile, section }, 'Parsing section');\n const customSectionEntries = extractArtifactList(section, value);\n allBundles.push(...customSectionEntries);\n }\n\n // convert bundles to dependencies\n for (const entry of allBundles) {\n const rawGav = typeof entry === 'string' ? entry : entry.id;\n // skip invalid definitions, such as objects without an id set\n if (!rawGav) {\n continue;\n }\n\n // both '/' and ':' are valid separators, but the Maven datasource\n // expects the separator to be ':'\n const gav = rawGav.replace(/\\//g, ':');\n\n // identifiers support 3-5 parts, see OSGi R8 - 159.2.1 Identifiers\n // groupId ':' artifactId ( ':' type ( ':' classifier )? )? ':' version\n const parts = gav.split(':');\n if (parts.length < 3 || parts.length > 5) {\n deps.push({\n depName: gav,\n skipReason: 'invalid-value',\n });\n continue;\n }\n // parsing should use the last entry for the version\n const currentValue = parts[parts.length - 1];\n const result: PackageDependency = {\n datasource: MavenDatasource.id,\n depName: `${parts[0]}:${parts[1]}`,\n };\n if (currentValue.includes('${')) {\n result.skipReason = 'contains-variable';\n } else {\n result.currentValue = currentValue;\n }\n\n deps.push(result);\n }\n\n return deps.length ? { deps } : null;\n}\n\nfunction isSupportedFeatureResourceVersion(\n featureModel: FeatureModel,\n fileName: string,\n): boolean {\n const resourceVersion = featureModel['feature-resource-version'];\n if (resourceVersion) {\n const resourceSemVer = coerce(resourceVersion);\n if (!resourceSemVer) {\n logger.debug(\n `Skipping file ${fileName} due to invalid feature-resource-version '${resourceVersion}'`,\n );\n return false;\n }\n\n // we only support 1.x, although no over version has been defined\n if (!satisfies(resourceSemVer, '^1')) {\n logger.debug(\n `Skipping file ${fileName} due to unsupported feature-resource-version '${resourceVersion}'`,\n );\n return false;\n }\n }\n\n return true;\n}\n\nfunction extractArtifactList(\n sectionName: string,\n sectionValue: unknown,\n): Bundle[] {\n // The 'ARTIFACTS' key is supported by the Sling/OSGi feature model implementation\n if (sectionName.includes(':ARTIFACTS|') && isArray(sectionValue)) {\n return sectionValue as Bundle[];\n }\n\n return [];\n}\n"]}
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateArtifacts = updateArtifacts;
4
- const tslib_1 = require("tslib");
5
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
4
+ const is_1 = require("@sindresorhus/is");
6
5
  const fs_1 = require("../../../util/fs");
7
6
  const extract_1 = require("./extract");
8
7
  const processors_1 = require("./processors");
@@ -10,7 +9,7 @@ async function updateArtifacts(updateArtifact) {
10
9
  const { packageFileName, newPackageFileContent } = updateArtifact;
11
10
  await (0, fs_1.writeLocalFile)(packageFileName, newPackageFileContent);
12
11
  const project = (0, extract_1.parsePyProject)(newPackageFileContent, packageFileName);
13
- if (is_1.default.nullOrUndefined(project)) {
12
+ if ((0, is_1.isNullOrUndefined)(project)) {
14
13
  return [
15
14
  {
16
15
  artifactError: {
@@ -23,7 +22,7 @@ async function updateArtifacts(updateArtifact) {
23
22
  const result = [];
24
23
  for (const processor of processors_1.processors) {
25
24
  const artifactUpdates = await processor.updateArtifacts(updateArtifact, project);
26
- if (is_1.default.array(artifactUpdates)) {
25
+ if ((0, is_1.isArray)(artifactUpdates)) {
27
26
  result.push(...artifactUpdates);
28
27
  }
29
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pep621/artifacts.ts"],"names":[],"mappings":";;AAMA,0CA+BC;;AArCD,kEAAkC;AAClC,yCAAkD;AAElD,uCAA2C;AAC3C,6CAA0C;AAEnC,KAAK,UAAU,eAAe,CACnC,cAA8B;IAE9B,MAAM,EAAE,eAAe,EAAE,qBAAqB,EAAE,GAAG,cAAc,CAAC;IAElE,MAAM,IAAA,mBAAc,EAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;IAE7D,MAAM,OAAO,GAAG,IAAA,wBAAc,EAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;IACvE,IAAI,YAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO;YACL;gBACE,aAAa,EAAE;oBACb,MAAM,EAAE,0CAA0C;iBACnD;aACF;SACF,CAAC;IACJ,CAAC;IAED,6BAA6B;IAC7B,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,SAAS,IAAI,uBAAU,EAAE,CAAC;QACnC,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,eAAe,CACrD,cAAc,EACd,OAAO,CACR,CAAC;QACF,IAAI,YAAE,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { writeLocalFile } from '../../../util/fs';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport { parsePyProject } from './extract';\nimport { processors } from './processors';\n\nexport async function updateArtifacts(\n updateArtifact: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n const { packageFileName, newPackageFileContent } = updateArtifact;\n\n await writeLocalFile(packageFileName, newPackageFileContent);\n\n const project = parsePyProject(newPackageFileContent, packageFileName);\n if (is.nullOrUndefined(project)) {\n return [\n {\n artifactError: {\n stderr: 'Failed to parse new package file content',\n },\n },\n ];\n }\n\n // process specific tool sets\n const result: UpdateArtifactsResult[] = [];\n for (const processor of processors) {\n const artifactUpdates = await processor.updateArtifacts(\n updateArtifact,\n project,\n );\n if (is.array(artifactUpdates)) {\n result.push(...artifactUpdates);\n }\n }\n\n return result.length > 0 ? result : null;\n}\n"]}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pep621/artifacts.ts"],"names":[],"mappings":";;AAMA,0CA+BC;AArCD,yCAA8D;AAC9D,yCAAkD;AAElD,uCAA2C;AAC3C,6CAA0C;AAEnC,KAAK,UAAU,eAAe,CACnC,cAA8B;IAE9B,MAAM,EAAE,eAAe,EAAE,qBAAqB,EAAE,GAAG,cAAc,CAAC;IAElE,MAAM,IAAA,mBAAc,EAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;IAE7D,MAAM,OAAO,GAAG,IAAA,wBAAc,EAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;IACvE,IAAI,IAAA,sBAAiB,EAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL;gBACE,aAAa,EAAE;oBACb,MAAM,EAAE,0CAA0C;iBACnD;aACF;SACF,CAAC;IACJ,CAAC;IAED,6BAA6B;IAC7B,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,SAAS,IAAI,uBAAU,EAAE,CAAC;QACnC,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,eAAe,CACrD,cAAc,EACd,OAAO,CACR,CAAC;QACF,IAAI,IAAA,YAAO,EAAC,eAAe,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC","sourcesContent":["import { isArray, isNullOrUndefined } from '@sindresorhus/is';\nimport { writeLocalFile } from '../../../util/fs';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport { parsePyProject } from './extract';\nimport { processors } from './processors';\n\nexport async function updateArtifacts(\n updateArtifact: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n const { packageFileName, newPackageFileContent } = updateArtifact;\n\n await writeLocalFile(packageFileName, newPackageFileContent);\n\n const project = parsePyProject(newPackageFileContent, packageFileName);\n if (isNullOrUndefined(project)) {\n return [\n {\n artifactError: {\n stderr: 'Failed to parse new package file content',\n },\n },\n ];\n }\n\n // process specific tool sets\n const result: UpdateArtifactsResult[] = [];\n for (const processor of processors) {\n const artifactUpdates = await processor.updateArtifacts(\n updateArtifact,\n project,\n );\n if (isArray(artifactUpdates)) {\n result.push(...artifactUpdates);\n }\n }\n\n return result.length > 0 ? result : null;\n}\n"]}
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UvProcessor = void 0;
4
- const tslib_1 = require("tslib");
5
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
4
+ const is_1 = require("@sindresorhus/is");
6
5
  const shlex_1 = require("shlex");
7
6
  const error_messages_1 = require("../../../../constants/error-messages");
8
7
  const logger_1 = require("../../../../logger");
@@ -251,7 +250,7 @@ async function getUvExtraIndexUrl(project, deps) {
251
250
  return !sources || !(packageName in sources);
252
251
  })
253
252
  .flatMap((dep) => dep.registryUrls)
254
- .filter(is_1.default.string)
253
+ .filter(is_1.isString)
255
254
  .filter((registryUrl) => {
256
255
  // Check if the registry URL is not the default one and not already configured
257
256
  const configuredIndexUrls = project.tool?.uv?.index?.map(({ url }) => url) ?? [];
@@ -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, 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"]}
1
+ {"version":3,"file":"uv.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/pep621/processors/uv.ts"],"names":[],"mappings":"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","sourcesContent":["import { isString } 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(isString)\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"]}
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import type { PackageDependency } from '../types';
3
3
  type DependencyGroup = z.ZodType<PackageDependency<Record<string, any>>[]>;
4
- declare function DependencyGroup(depType: string): DependencyGroup;
4
+ export declare function DependencyGroup(depType: string): DependencyGroup;
5
5
  declare const UvGitSource: z.ZodObject<{
6
6
  git: z.ZodString;
7
7
  rev: z.ZodOptional<z.ZodString>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UvLockfile = exports.PdmLockfile = exports.PyProject = exports.ProjectSection = void 0;
4
+ exports.DependencyGroup = DependencyGroup;
4
5
  const zod_1 = require("zod");
5
6
  const schema_utils_1 = require("../../../util/schema-utils");
6
7
  const pypi_1 = require("../../datasource/pypi");
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pep621/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { LooseArray, LooseRecord, Toml } from '../../../util/schema-utils';\nimport { PypiDatasource } from '../../datasource/pypi';\nimport { normalizePythonDepName } from '../../datasource/pypi/common';\nimport type { PackageDependency } from '../types';\nimport { depTypes, pep508ToPackageDependency } from './utils';\n\ntype Pep508Dependency = z.ZodType<PackageDependency<Record<string, any>>>;\n\nfunction Pep508Dependency(depType: string): Pep508Dependency {\n return z.string().transform((x, ctx) => {\n const res = pep508ToPackageDependency(depType, x);\n\n if (!res) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'should be a valid PEP508 dependency',\n fatal: true,\n });\n\n return z.NEVER;\n }\n\n return res;\n }) as Pep508Dependency;\n}\n\ntype DependencyGroup = z.ZodType<PackageDependency<Record<string, any>>[]>;\n\nfunction DependencyGroup(depType: string): DependencyGroup {\n return LooseRecord(LooseArray(Pep508Dependency(depType))).transform(\n (depGroups) => {\n const deps: PackageDependency[] = [];\n for (const [depGroup, groupDeps] of Object.entries(depGroups)) {\n for (const dep of groupDeps) {\n if (dep.packageName) {\n dep.depName = dep.packageName;\n }\n dep.managerData = { depGroup };\n deps.push(dep);\n }\n }\n return deps;\n },\n ) as unknown as DependencyGroup;\n}\n\nconst PdmConfig = z\n .object({\n 'dev-dependencies': DependencyGroup(depTypes.pdmDevDependencies).catch([]),\n source: LooseArray(\n z.object({\n url: z.string(),\n name: z.string(),\n }),\n )\n .transform((pdmSource) => {\n const registryUrls: string[] = [];\n\n let containsPyPiUrl = false;\n for (const source of pdmSource) {\n if (source.name === 'pypi') {\n containsPyPiUrl = true;\n }\n\n registryUrls.push(source.url);\n }\n\n // Add pypi default url, if there is no source declared with the name `pypi`\n // @see https://daobook.github.io/pdm/pyproject/tool-pdm/#specify-other-sources-for-finding-packages\n if (!containsPyPiUrl) {\n registryUrls.unshift(PypiDatasource.defaultURL);\n }\n\n return registryUrls;\n })\n .optional()\n .catch(undefined),\n })\n .transform(\n ({ 'dev-dependencies': devDependencies, source: registryUrls }) => ({\n devDependencies,\n registryUrls,\n }),\n );\n\nconst HatchConfig = z\n .object({\n envs: LooseRecord(\n z.string(),\n z.object({\n dependencies: z.unknown(),\n 'extra-dependencies': z.unknown(),\n }),\n ),\n })\n .catch({ envs: {} })\n .transform(({ envs }) => {\n const deps: PackageDependency[] = [];\n for (const [\n envName,\n { dependencies, 'extra-dependencies': extraDependencies },\n ] of Object.entries(envs)) {\n const depType = `tool.hatch.envs.${envName}`;\n const HatchDependency = LooseArray(Pep508Dependency(depType)).catch([]);\n deps.push(\n ...HatchDependency.parse(dependencies),\n ...HatchDependency.parse(extraDependencies),\n );\n }\n return { deps };\n });\n\nconst UvIndexSource = z.object({\n index: z.string(),\n});\n\nconst UvGitSource = z.object({\n git: z.string(),\n rev: z.string().optional(),\n tag: z.string().optional(),\n branch: z.string().optional(),\n});\nexport type UvGitSource = z.infer<typeof UvGitSource>;\n\nconst UvUrlSource = z.object({\n url: z.string(),\n});\n\nconst UvPathSource = z.object({\n path: z.string(),\n});\n\nconst UvWorkspaceSource = z.object({\n workspace: z.literal(true),\n});\n\n// https://docs.astral.sh/uv/concepts/dependencies/#dependency-sources\nconst UvSource = z.union([\n UvIndexSource,\n UvGitSource,\n UvUrlSource,\n UvPathSource,\n UvWorkspaceSource,\n]);\n\nconst UvConfig = z.object({\n 'dev-dependencies': LooseArray(\n Pep508Dependency(depTypes.uvDevDependencies),\n ).catch([]),\n 'required-version': z.string().optional(),\n sources: LooseRecord(\n // uv applies the same normalization as for Python dependencies on sources\n z.string().transform((source) => normalizePythonDepName(source)),\n UvSource,\n ).optional(),\n index: z\n .array(\n z.object({\n name: z.string().optional(),\n url: z.string(),\n default: z.boolean().default(false),\n explicit: z.boolean().default(false),\n }),\n )\n .optional(),\n});\n\nexport const ProjectSection = z.object({\n version: z.string().optional().catch(undefined),\n 'requires-python': z.string().optional().catch(undefined),\n dependencies: LooseArray(Pep508Dependency(depTypes.dependencies)).catch([]),\n 'optional-dependencies': DependencyGroup(depTypes.optionalDependencies).catch(\n [],\n ),\n});\n\nexport const PyProject = z.object({\n project: ProjectSection.optional().catch(undefined),\n 'build-system': z\n .object({\n requires: LooseArray(\n Pep508Dependency(depTypes.buildSystemRequires),\n ).catch([]),\n 'build-backend': z.string().optional().catch(undefined),\n })\n .optional()\n .catch(undefined),\n 'dependency-groups': DependencyGroup(depTypes.dependencyGroups).catch([]),\n tool: z\n .object({\n pdm: PdmConfig.optional().catch(undefined),\n hatch: HatchConfig.optional().catch(undefined),\n uv: UvConfig.optional().catch(undefined),\n })\n .optional()\n .catch(undefined),\n});\nexport type PyProject = z.infer<typeof PyProject>;\n\nexport const PdmLockfile = Toml.pipe(\n z.object({\n package: LooseArray(\n z.object({\n name: z.string(),\n version: z.string(),\n }),\n ),\n }),\n)\n .transform(({ package: pkg }) =>\n Object.fromEntries(\n pkg.map(({ name, version }): [string, string] => [name, version]),\n ),\n )\n .transform((lock) => ({ lock }));\n\nexport const UvLockfile = Toml.pipe(\n z.object({\n package: LooseArray(\n z.object({\n name: z.string(),\n version: z.string(),\n }),\n ),\n }),\n).transform(({ package: pkg }) =>\n Object.fromEntries(\n pkg.map(({ name, version }): [string, string] => [name, version]),\n ),\n);\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pep621/schema.ts"],"names":[],"mappings":";;;AA6BA,0CAgBC;AA7CD,6BAAwB;AACxB,6DAA2E;AAC3E,gDAAuD;AACvD,yDAAsE;AAEtE,mCAA8D;AAI9D,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,OAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,IAAA,iCAAyB,EAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAElD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,qCAAqC;gBAC9C,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,OAAO,OAAC,CAAC,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC,CAAqB,CAAC;AACzB,CAAC;AAID,SAAgB,eAAe,CAAC,OAAe;IAC7C,OAAO,IAAA,0BAAW,EAAC,IAAA,yBAAU,EAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CACjE,CAAC,SAAS,EAAE,EAAE;QACZ,MAAM,IAAI,GAAwB,EAAE,CAAC;QACrC,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9D,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC5B,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;oBACpB,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC;gBAChC,CAAC;gBACD,GAAG,CAAC,WAAW,GAAG,EAAE,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAC4B,CAAC;AAClC,CAAC;AAED,MAAM,SAAS,GAAG,OAAC;KAChB,MAAM,CAAC;IACN,kBAAkB,EAAE,eAAe,CAAC,gBAAQ,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1E,MAAM,EAAE,IAAA,yBAAU,EAChB,OAAC,CAAC,MAAM,CAAC;QACP,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;QACf,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;KACjB,CAAC,CACH;SACE,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;QACvB,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;YAC/B,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3B,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;YAED,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,4EAA4E;QAC5E,oGAAoG;QACpG,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,YAAY,CAAC,OAAO,CAAC,qBAAc,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC;SACD,QAAQ,EAAE;SACV,KAAK,CAAC,SAAS,CAAC;CACpB,CAAC;KACD,SAAS,CACR,CAAC,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;IAClE,eAAe;IACf,YAAY;CACb,CAAC,CACH,CAAC;AAEJ,MAAM,WAAW,GAAG,OAAC;KAClB,MAAM,CAAC;IACN,IAAI,EAAE,IAAA,0BAAW,EACf,OAAC,CAAC,MAAM,EAAE,EACV,OAAC,CAAC,MAAM,CAAC;QACP,YAAY,EAAE,OAAC,CAAC,OAAO,EAAE;QACzB,oBAAoB,EAAE,OAAC,CAAC,OAAO,EAAE;KAClC,CAAC,CACH;CACF,CAAC;KACD,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;KACnB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACtB,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,KAAK,MAAM,CACT,OAAO,EACP,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,EAC1D,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,mBAAmB,OAAO,EAAE,CAAC;QAC7C,MAAM,eAAe,GAAG,IAAA,yBAAU,EAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CACP,GAAG,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,EACtC,GAAG,eAAe,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAC5C,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEL,MAAM,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;IACf,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAGH,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;CAChB,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,OAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CAC3B,CAAC,CAAC;AAEH,sEAAsE;AACtE,MAAM,QAAQ,GAAG,OAAC,CAAC,KAAK,CAAC;IACvB,aAAa;IACb,WAAW;IACX,WAAW;IACX,YAAY;IACZ,iBAAiB;CAClB,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,OAAC,CAAC,MAAM,CAAC;IACxB,kBAAkB,EAAE,IAAA,yBAAU,EAC5B,gBAAgB,CAAC,gBAAQ,CAAC,iBAAiB,CAAC,CAC7C,CAAC,KAAK,CAAC,EAAE,CAAC;IACX,kBAAkB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,OAAO,EAAE,IAAA,0BAAW;IAClB,0EAA0E;IAC1E,OAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,+BAAsB,EAAC,MAAM,CAAC,CAAC,EAChE,QAAQ,CACT,CAAC,QAAQ,EAAE;IACZ,KAAK,EAAE,OAAC;SACL,KAAK,CACJ,OAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;QACf,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACnC,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;KACrC,CAAC,CACH;SACA,QAAQ,EAAE;CACd,CAAC,CAAC;AAEU,QAAA,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAC/C,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACzD,YAAY,EAAE,IAAA,yBAAU,EAAC,gBAAgB,CAAC,gBAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;IAC3E,uBAAuB,EAAE,eAAe,CAAC,gBAAQ,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAC3E,EAAE,CACH;CACF,CAAC,CAAC;AAEU,QAAA,SAAS,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,sBAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACnD,cAAc,EAAE,OAAC;SACd,MAAM,CAAC;QACN,QAAQ,EAAE,IAAA,yBAAU,EAClB,gBAAgB,CAAC,gBAAQ,CAAC,mBAAmB,CAAC,CAC/C,CAAC,KAAK,CAAC,EAAE,CAAC;QACX,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;KACxD,CAAC;SACD,QAAQ,EAAE;SACV,KAAK,CAAC,SAAS,CAAC;IACnB,mBAAmB,EAAE,eAAe,CAAC,gBAAQ,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;IACzE,IAAI,EAAE,OAAC;SACJ,MAAM,CAAC;QACN,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;QAC1C,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;QAC9C,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;KACzC,CAAC;SACD,QAAQ,EAAE;SACV,KAAK,CAAC,SAAS,CAAC;CACpB,CAAC,CAAC;AAGU,QAAA,WAAW,GAAG,mBAAI,CAAC,IAAI,CAClC,OAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,IAAA,yBAAU,EACjB,OAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;KACpB,CAAC,CACH;CACF,CAAC,CACH;KACE,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAC9B,MAAM,CAAC,WAAW,CAChB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAoB,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAClE,CACF;KACA,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAEtB,QAAA,UAAU,GAAG,mBAAI,CAAC,IAAI,CACjC,OAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,IAAA,yBAAU,EACjB,OAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;KACpB,CAAC,CACH;CACF,CAAC,CACH,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAC/B,MAAM,CAAC,WAAW,CAChB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAoB,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAClE,CACF,CAAC","sourcesContent":["import { z } from 'zod';\nimport { LooseArray, LooseRecord, Toml } from '../../../util/schema-utils';\nimport { PypiDatasource } from '../../datasource/pypi';\nimport { normalizePythonDepName } from '../../datasource/pypi/common';\nimport type { PackageDependency } from '../types';\nimport { depTypes, pep508ToPackageDependency } from './utils';\n\ntype Pep508Dependency = z.ZodType<PackageDependency<Record<string, any>>>;\n\nfunction Pep508Dependency(depType: string): Pep508Dependency {\n return z.string().transform((x, ctx) => {\n const res = pep508ToPackageDependency(depType, x);\n\n if (!res) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'should be a valid PEP508 dependency',\n fatal: true,\n });\n\n return z.NEVER;\n }\n\n return res;\n }) as Pep508Dependency;\n}\n\ntype DependencyGroup = z.ZodType<PackageDependency<Record<string, any>>[]>;\n\nexport function DependencyGroup(depType: string): DependencyGroup {\n return LooseRecord(LooseArray(Pep508Dependency(depType))).transform(\n (depGroups) => {\n const deps: PackageDependency[] = [];\n for (const [depGroup, groupDeps] of Object.entries(depGroups)) {\n for (const dep of groupDeps) {\n if (dep.packageName) {\n dep.depName = dep.packageName;\n }\n dep.managerData = { depGroup };\n deps.push(dep);\n }\n }\n return deps;\n },\n ) as unknown as DependencyGroup;\n}\n\nconst PdmConfig = z\n .object({\n 'dev-dependencies': DependencyGroup(depTypes.pdmDevDependencies).catch([]),\n source: LooseArray(\n z.object({\n url: z.string(),\n name: z.string(),\n }),\n )\n .transform((pdmSource) => {\n const registryUrls: string[] = [];\n\n let containsPyPiUrl = false;\n for (const source of pdmSource) {\n if (source.name === 'pypi') {\n containsPyPiUrl = true;\n }\n\n registryUrls.push(source.url);\n }\n\n // Add pypi default url, if there is no source declared with the name `pypi`\n // @see https://daobook.github.io/pdm/pyproject/tool-pdm/#specify-other-sources-for-finding-packages\n if (!containsPyPiUrl) {\n registryUrls.unshift(PypiDatasource.defaultURL);\n }\n\n return registryUrls;\n })\n .optional()\n .catch(undefined),\n })\n .transform(\n ({ 'dev-dependencies': devDependencies, source: registryUrls }) => ({\n devDependencies,\n registryUrls,\n }),\n );\n\nconst HatchConfig = z\n .object({\n envs: LooseRecord(\n z.string(),\n z.object({\n dependencies: z.unknown(),\n 'extra-dependencies': z.unknown(),\n }),\n ),\n })\n .catch({ envs: {} })\n .transform(({ envs }) => {\n const deps: PackageDependency[] = [];\n for (const [\n envName,\n { dependencies, 'extra-dependencies': extraDependencies },\n ] of Object.entries(envs)) {\n const depType = `tool.hatch.envs.${envName}`;\n const HatchDependency = LooseArray(Pep508Dependency(depType)).catch([]);\n deps.push(\n ...HatchDependency.parse(dependencies),\n ...HatchDependency.parse(extraDependencies),\n );\n }\n return { deps };\n });\n\nconst UvIndexSource = z.object({\n index: z.string(),\n});\n\nconst UvGitSource = z.object({\n git: z.string(),\n rev: z.string().optional(),\n tag: z.string().optional(),\n branch: z.string().optional(),\n});\nexport type UvGitSource = z.infer<typeof UvGitSource>;\n\nconst UvUrlSource = z.object({\n url: z.string(),\n});\n\nconst UvPathSource = z.object({\n path: z.string(),\n});\n\nconst UvWorkspaceSource = z.object({\n workspace: z.literal(true),\n});\n\n// https://docs.astral.sh/uv/concepts/dependencies/#dependency-sources\nconst UvSource = z.union([\n UvIndexSource,\n UvGitSource,\n UvUrlSource,\n UvPathSource,\n UvWorkspaceSource,\n]);\n\nconst UvConfig = z.object({\n 'dev-dependencies': LooseArray(\n Pep508Dependency(depTypes.uvDevDependencies),\n ).catch([]),\n 'required-version': z.string().optional(),\n sources: LooseRecord(\n // uv applies the same normalization as for Python dependencies on sources\n z.string().transform((source) => normalizePythonDepName(source)),\n UvSource,\n ).optional(),\n index: z\n .array(\n z.object({\n name: z.string().optional(),\n url: z.string(),\n default: z.boolean().default(false),\n explicit: z.boolean().default(false),\n }),\n )\n .optional(),\n});\n\nexport const ProjectSection = z.object({\n version: z.string().optional().catch(undefined),\n 'requires-python': z.string().optional().catch(undefined),\n dependencies: LooseArray(Pep508Dependency(depTypes.dependencies)).catch([]),\n 'optional-dependencies': DependencyGroup(depTypes.optionalDependencies).catch(\n [],\n ),\n});\n\nexport const PyProject = z.object({\n project: ProjectSection.optional().catch(undefined),\n 'build-system': z\n .object({\n requires: LooseArray(\n Pep508Dependency(depTypes.buildSystemRequires),\n ).catch([]),\n 'build-backend': z.string().optional().catch(undefined),\n })\n .optional()\n .catch(undefined),\n 'dependency-groups': DependencyGroup(depTypes.dependencyGroups).catch([]),\n tool: z\n .object({\n pdm: PdmConfig.optional().catch(undefined),\n hatch: HatchConfig.optional().catch(undefined),\n uv: UvConfig.optional().catch(undefined),\n })\n .optional()\n .catch(undefined),\n});\nexport type PyProject = z.infer<typeof PyProject>;\n\nexport const PdmLockfile = Toml.pipe(\n z.object({\n package: LooseArray(\n z.object({\n name: z.string(),\n version: z.string(),\n }),\n ),\n }),\n)\n .transform(({ package: pkg }) =>\n Object.fromEntries(\n pkg.map(({ name, version }): [string, string] => [name, version]),\n ),\n )\n .transform((lock) => ({ lock }));\n\nexport const UvLockfile = Toml.pipe(\n z.object({\n package: LooseArray(\n z.object({\n name: z.string(),\n version: z.string(),\n }),\n ),\n }),\n).transform(({ package: pkg }) =>\n Object.fromEntries(\n pkg.map(({ name, version }): [string, string] => [name, version]),\n ),\n);\n"]}
@@ -3,8 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.depTypes = void 0;
4
4
  exports.parsePEP508 = parsePEP508;
5
5
  exports.pep508ToPackageDependency = pep508ToPackageDependency;
6
- const tslib_1 = require("tslib");
7
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
6
+ const is_1 = require("@sindresorhus/is");
8
7
  const logger_1 = require("../../../logger");
9
8
  const regex_1 = require("../../../util/regex");
10
9
  const pypi_1 = require("../../datasource/pypi");
@@ -20,19 +19,18 @@ exports.depTypes = {
20
19
  buildSystemRequires: 'build-system.requires',
21
20
  };
22
21
  function parsePEP508(value) {
23
- if (is_1.default.nullOrUndefined(value)) {
22
+ if ((0, is_1.isNullOrUndefined)(value)) {
24
23
  return null;
25
24
  }
26
25
  const regExpExec = pep508Regex.exec(value);
27
- if (is_1.default.nullOrUndefined(regExpExec) ||
28
- is_1.default.nullOrUndefined(regExpExec?.groups)) {
26
+ if ((0, is_1.isNullOrUndefined)(regExpExec) || (0, is_1.isNullOrUndefined)(regExpExec?.groups)) {
29
27
  logger_1.logger.trace(`Pep508 could not be extracted`);
30
28
  return null;
31
29
  }
32
30
  const result = {
33
31
  packageName: regExpExec.groups.packageName,
34
32
  };
35
- if (is_1.default.nonEmptyString(regExpExec.groups.currentValue)) {
33
+ if ((0, is_1.isNonEmptyString)(regExpExec.groups.currentValue)) {
36
34
  if (regExpExec.groups.currentValue.startsWith('(') &&
37
35
  regExpExec.groups.currentValue.endsWith(')')) {
38
36
  result.currentValue = regExpExec.groups.currentValue.slice(1, -1).trim();
@@ -41,10 +39,10 @@ function parsePEP508(value) {
41
39
  result.currentValue = regExpExec.groups.currentValue;
42
40
  }
43
41
  }
44
- if (is_1.default.nonEmptyString(regExpExec.groups.marker)) {
42
+ if ((0, is_1.isNonEmptyString)(regExpExec.groups.marker)) {
45
43
  result.marker = regExpExec.groups.marker;
46
44
  }
47
- if (is_1.default.nonEmptyString(regExpExec.groups.extras)) {
45
+ if ((0, is_1.isNonEmptyString)(regExpExec.groups.extras)) {
48
46
  // trim to remove allowed whitespace between brackets
49
47
  result.extras = regExpExec.groups.extras.split(',').map((e) => e.trim());
50
48
  }
@@ -52,7 +50,7 @@ function parsePEP508(value) {
52
50
  }
53
51
  function pep508ToPackageDependency(depType, value) {
54
52
  const parsed = parsePEP508(value);
55
- if (is_1.default.nullOrUndefined(parsed)) {
53
+ if ((0, is_1.isNullOrUndefined)(parsed)) {
56
54
  return null;
57
55
  }
58
56
  const dep = {
@@ -61,7 +59,7 @@ function pep508ToPackageDependency(depType, value) {
61
59
  datasource: pypi_1.PypiDatasource.id,
62
60
  depType,
63
61
  };
64
- if (is_1.default.nullOrUndefined(parsed.currentValue)) {
62
+ if ((0, is_1.isNullOrUndefined)(parsed.currentValue)) {
65
63
  dep.skipReason = 'unspecified-version';
66
64
  }
67
65
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pep621/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { regEx } from '../../../util/regex';\nimport { PypiDatasource } from '../../datasource/pypi';\nimport { normalizePythonDepName } from '../../datasource/pypi/common';\nimport type { PackageDependency } from '../types';\nimport type { Pep508ParseResult } from './types';\n\nconst pep508Regex = regEx(\n /^(?<packageName>[A-Z0-9._-]+)\\s*(\\[(?<extras>[A-Z0-9\\s,._-]+)\\])?\\s*(?<currentValue>[^;]+)?(;\\s*(?<marker>.*))?/i,\n);\n\nexport const depTypes = {\n dependencies: 'project.dependencies',\n optionalDependencies: 'project.optional-dependencies',\n dependencyGroups: 'dependency-groups',\n pdmDevDependencies: 'tool.pdm.dev-dependencies',\n uvDevDependencies: 'tool.uv.dev-dependencies',\n uvSources: 'tool.uv.sources',\n buildSystemRequires: 'build-system.requires',\n};\n\nexport function parsePEP508(\n value: string | null | undefined,\n): Pep508ParseResult | null {\n if (is.nullOrUndefined(value)) {\n return null;\n }\n\n const regExpExec = pep508Regex.exec(value);\n if (\n is.nullOrUndefined(regExpExec) ||\n is.nullOrUndefined(regExpExec?.groups)\n ) {\n logger.trace(`Pep508 could not be extracted`);\n return null;\n }\n\n const result: Pep508ParseResult = {\n packageName: regExpExec.groups.packageName,\n };\n if (is.nonEmptyString(regExpExec.groups.currentValue)) {\n if (\n regExpExec.groups.currentValue.startsWith('(') &&\n regExpExec.groups.currentValue.endsWith(')')\n ) {\n result.currentValue = regExpExec.groups.currentValue.slice(1, -1).trim();\n } else {\n result.currentValue = regExpExec.groups.currentValue;\n }\n }\n\n if (is.nonEmptyString(regExpExec.groups.marker)) {\n result.marker = regExpExec.groups.marker;\n }\n if (is.nonEmptyString(regExpExec.groups.extras)) {\n // trim to remove allowed whitespace between brackets\n result.extras = regExpExec.groups.extras.split(',').map((e) => e.trim());\n }\n\n return result;\n}\n\nexport function pep508ToPackageDependency(\n depType: string,\n value: string,\n): PackageDependency | null {\n const parsed = parsePEP508(value);\n if (is.nullOrUndefined(parsed)) {\n return null;\n }\n\n const dep: PackageDependency = {\n packageName: normalizePythonDepName(parsed.packageName),\n depName: parsed.packageName,\n datasource: PypiDatasource.id,\n depType,\n };\n\n if (is.nullOrUndefined(parsed.currentValue)) {\n dep.skipReason = 'unspecified-version';\n } else {\n dep.currentValue = parsed.currentValue;\n\n if (parsed.currentValue.startsWith('==')) {\n dep.currentVersion = parsed.currentValue.replace(regEx(/^==\\s*/), '');\n }\n }\n return dep;\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pep621/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNonEmptyString, isNullOrUndefined } from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { regEx } from '../../../util/regex';\nimport { PypiDatasource } from '../../datasource/pypi';\nimport { normalizePythonDepName } from '../../datasource/pypi/common';\nimport type { PackageDependency } from '../types';\nimport type { Pep508ParseResult } from './types';\n\nconst pep508Regex = regEx(\n /^(?<packageName>[A-Z0-9._-]+)\\s*(\\[(?<extras>[A-Z0-9\\s,._-]+)\\])?\\s*(?<currentValue>[^;]+)?(;\\s*(?<marker>.*))?/i,\n);\n\nexport const depTypes = {\n dependencies: 'project.dependencies',\n optionalDependencies: 'project.optional-dependencies',\n dependencyGroups: 'dependency-groups',\n pdmDevDependencies: 'tool.pdm.dev-dependencies',\n uvDevDependencies: 'tool.uv.dev-dependencies',\n uvSources: 'tool.uv.sources',\n buildSystemRequires: 'build-system.requires',\n};\n\nexport function parsePEP508(\n value: string | null | undefined,\n): Pep508ParseResult | null {\n if (isNullOrUndefined(value)) {\n return null;\n }\n\n const regExpExec = pep508Regex.exec(value);\n if (isNullOrUndefined(regExpExec) || isNullOrUndefined(regExpExec?.groups)) {\n logger.trace(`Pep508 could not be extracted`);\n return null;\n }\n\n const result: Pep508ParseResult = {\n packageName: regExpExec.groups.packageName,\n };\n if (isNonEmptyString(regExpExec.groups.currentValue)) {\n if (\n regExpExec.groups.currentValue.startsWith('(') &&\n regExpExec.groups.currentValue.endsWith(')')\n ) {\n result.currentValue = regExpExec.groups.currentValue.slice(1, -1).trim();\n } else {\n result.currentValue = regExpExec.groups.currentValue;\n }\n }\n\n if (isNonEmptyString(regExpExec.groups.marker)) {\n result.marker = regExpExec.groups.marker;\n }\n if (isNonEmptyString(regExpExec.groups.extras)) {\n // trim to remove allowed whitespace between brackets\n result.extras = regExpExec.groups.extras.split(',').map((e) => e.trim());\n }\n\n return result;\n}\n\nexport function pep508ToPackageDependency(\n depType: string,\n value: string,\n): PackageDependency | null {\n const parsed = parsePEP508(value);\n if (isNullOrUndefined(parsed)) {\n return null;\n }\n\n const dep: PackageDependency = {\n packageName: normalizePythonDepName(parsed.packageName),\n depName: parsed.packageName,\n datasource: PypiDatasource.id,\n depType,\n };\n\n if (isNullOrUndefined(parsed.currentValue)) {\n dep.skipReason = 'unspecified-version';\n } else {\n dep.currentValue = parsed.currentValue;\n\n if (parsed.currentValue.startsWith('==')) {\n dep.currentVersion = parsed.currentValue.replace(regEx(/^==\\s*/), '');\n }\n }\n return dep;\n}\n"]}