renovate 42.4.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 (702) 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/utils.js +3 -4
  234. package/dist/modules/manager/copier/utils.js.map +1 -1
  235. package/dist/modules/manager/crow/extract.js +2 -3
  236. package/dist/modules/manager/crow/extract.js.map +1 -1
  237. package/dist/modules/manager/custom/jsonata/index.js +2 -3
  238. package/dist/modules/manager/custom/jsonata/index.js.map +1 -1
  239. package/dist/modules/manager/custom/jsonata/utils.js +3 -3
  240. package/dist/modules/manager/custom/jsonata/utils.js.map +1 -1
  241. package/dist/modules/manager/custom/regex/index.js +2 -3
  242. package/dist/modules/manager/custom/regex/index.js.map +1 -1
  243. package/dist/modules/manager/custom/regex/strategies.js +4 -5
  244. package/dist/modules/manager/custom/regex/strategies.js.map +1 -1
  245. package/dist/modules/manager/custom/regex/utils.js +2 -2
  246. package/dist/modules/manager/custom/regex/utils.js.map +1 -1
  247. package/dist/modules/manager/custom/utils.js +6 -7
  248. package/dist/modules/manager/custom/utils.js.map +1 -1
  249. package/dist/modules/manager/deps-edn/extract.js +13 -14
  250. package/dist/modules/manager/deps-edn/extract.js.map +1 -1
  251. package/dist/modules/manager/deps-edn/parser.js +2 -2
  252. package/dist/modules/manager/deps-edn/parser.js.map +1 -1
  253. package/dist/modules/manager/devbox/artifacts.js +2 -2
  254. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  255. package/dist/modules/manager/docker-compose/extract.js +3 -4
  256. package/dist/modules/manager/docker-compose/extract.js.map +1 -1
  257. package/dist/modules/manager/docker-compose/schema.js +2 -3
  258. package/dist/modules/manager/docker-compose/schema.js.map +1 -1
  259. package/dist/modules/manager/dockerfile/extract.js +5 -5
  260. package/dist/modules/manager/dockerfile/extract.js.map +1 -1
  261. package/dist/modules/manager/fingerprint.generated.js +5 -5
  262. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  263. package/dist/modules/manager/fleet/extract.js +2 -3
  264. package/dist/modules/manager/fleet/extract.js.map +1 -1
  265. package/dist/modules/manager/flux/extract.js +2 -3
  266. package/dist/modules/manager/flux/extract.js.map +1 -1
  267. package/dist/modules/manager/glasskube/extract.js +2 -3
  268. package/dist/modules/manager/glasskube/extract.js.map +1 -1
  269. package/dist/modules/manager/gleam/artifacts.js +3 -4
  270. package/dist/modules/manager/gleam/artifacts.js.map +1 -1
  271. package/dist/modules/manager/gomod/artifacts.js +2 -2
  272. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  273. package/dist/modules/manager/gradle/artifacts.js +2 -2
  274. package/dist/modules/manager/gradle/artifacts.js.map +1 -1
  275. package/dist/modules/manager/gradle/extract/catalog.js +5 -5
  276. package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
  277. package/dist/modules/manager/gradle-wrapper/artifacts.js +2 -2
  278. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  279. package/dist/modules/manager/helm-requirements/extract.js +2 -3
  280. package/dist/modules/manager/helm-requirements/extract.js.map +1 -1
  281. package/dist/modules/manager/helmfile/artifacts.js +2 -3
  282. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  283. package/dist/modules/manager/helmfile/extract.js +4 -5
  284. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  285. package/dist/modules/manager/helmsman/extract.js +4 -5
  286. package/dist/modules/manager/helmsman/extract.js.map +1 -1
  287. package/dist/modules/manager/helmv3/artifacts.js +4 -4
  288. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  289. package/dist/modules/manager/helmv3/extract.js +4 -5
  290. package/dist/modules/manager/helmv3/extract.js.map +1 -1
  291. package/dist/modules/manager/helmv3/oci.js +3 -4
  292. package/dist/modules/manager/helmv3/oci.js.map +1 -1
  293. package/dist/modules/manager/jenkins/extract.js +3 -3
  294. package/dist/modules/manager/jenkins/extract.js.map +1 -1
  295. package/dist/modules/manager/kotlin-script/extract.js +3 -4
  296. package/dist/modules/manager/kotlin-script/extract.js.map +1 -1
  297. package/dist/modules/manager/kubernetes/extract.js +4 -4
  298. package/dist/modules/manager/kubernetes/extract.js.map +1 -1
  299. package/dist/modules/manager/kustomize/artifacts.js +8 -8
  300. package/dist/modules/manager/kustomize/artifacts.js.map +1 -1
  301. package/dist/modules/manager/kustomize/extract.js +8 -8
  302. package/dist/modules/manager/kustomize/extract.js.map +1 -1
  303. package/dist/modules/manager/maven/extract.js +4 -4
  304. package/dist/modules/manager/maven/extract.js.map +1 -1
  305. package/dist/modules/manager/maven/update.js +2 -2
  306. package/dist/modules/manager/maven/update.js.map +1 -1
  307. package/dist/modules/manager/maven-wrapper/artifacts.js +2 -2
  308. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  309. package/dist/modules/manager/mise/backends.js +9 -10
  310. package/dist/modules/manager/mise/backends.js.map +1 -1
  311. package/dist/modules/manager/mise/extract.js +7 -8
  312. package/dist/modules/manager/mise/extract.js.map +1 -1
  313. package/dist/modules/manager/mix/artifacts.js +3 -3
  314. package/dist/modules/manager/mix/artifacts.js.map +1 -1
  315. package/dist/modules/manager/nix/artifacts.js +2 -2
  316. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  317. package/dist/modules/manager/npm/detect.js +2 -2
  318. package/dist/modules/manager/npm/detect.js.map +1 -1
  319. package/dist/modules/manager/npm/extract/common/dependency.js +2 -2
  320. package/dist/modules/manager/npm/extract/common/dependency.js.map +1 -1
  321. package/dist/modules/manager/npm/extract/common/overrides.js +3 -4
  322. package/dist/modules/manager/npm/extract/common/overrides.js.map +1 -1
  323. package/dist/modules/manager/npm/extract/common/package-file.js +8 -9
  324. package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
  325. package/dist/modules/manager/npm/extract/index.js +10 -10
  326. package/dist/modules/manager/npm/extract/index.js.map +1 -1
  327. package/dist/modules/manager/npm/extract/pnpm.js +7 -7
  328. package/dist/modules/manager/npm/extract/pnpm.js.map +1 -1
  329. package/dist/modules/manager/npm/extract/post/locked-versions.js +3 -3
  330. package/dist/modules/manager/npm/extract/post/locked-versions.js.map +1 -1
  331. package/dist/modules/manager/npm/extract/post/monorepo.js +3 -4
  332. package/dist/modules/manager/npm/extract/post/monorepo.js.map +1 -1
  333. package/dist/modules/manager/npm/extract/yarn.js +2 -3
  334. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  335. package/dist/modules/manager/npm/extract/yarnrc.js +2 -3
  336. package/dist/modules/manager/npm/extract/yarnrc.js.map +1 -1
  337. package/dist/modules/manager/npm/post-update/index.js +6 -6
  338. package/dist/modules/manager/npm/post-update/index.js.map +1 -1
  339. package/dist/modules/manager/npm/post-update/npm.js +4 -4
  340. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  341. package/dist/modules/manager/npm/post-update/pnpm.js +3 -3
  342. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  343. package/dist/modules/manager/npm/post-update/rules.js +2 -2
  344. package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
  345. package/dist/modules/manager/npm/post-update/utils.js +2 -2
  346. package/dist/modules/manager/npm/post-update/utils.js.map +1 -1
  347. package/dist/modules/manager/npm/post-update/yarn.js +3 -3
  348. package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
  349. package/dist/modules/manager/npm/update/dependency/index.js +2 -3
  350. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  351. package/dist/modules/manager/npm/update/dependency/pnpm.js +2 -3
  352. package/dist/modules/manager/npm/update/dependency/pnpm.js.map +1 -1
  353. package/dist/modules/manager/npm/update/dependency/yarn.js +3 -4
  354. package/dist/modules/manager/npm/update/dependency/yarn.js.map +1 -1
  355. package/dist/modules/manager/nuget/config-formatter.js +2 -2
  356. package/dist/modules/manager/nuget/config-formatter.js.map +1 -1
  357. package/dist/modules/manager/nuget/extract.js +4 -4
  358. package/dist/modules/manager/nuget/extract.js.map +1 -1
  359. package/dist/modules/manager/nuget/package-tree.js +2 -2
  360. package/dist/modules/manager/nuget/package-tree.js.map +1 -1
  361. package/dist/modules/manager/ocb/extract.js +2 -3
  362. package/dist/modules/manager/ocb/extract.js.map +1 -1
  363. package/dist/modules/manager/osgi/extract.js +4 -4
  364. package/dist/modules/manager/osgi/extract.js.map +1 -1
  365. package/dist/modules/manager/pep621/artifacts.js +3 -4
  366. package/dist/modules/manager/pep621/artifacts.js.map +1 -1
  367. package/dist/modules/manager/pep621/processors/uv.js +2 -3
  368. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  369. package/dist/modules/manager/pep621/utils.js +8 -10
  370. package/dist/modules/manager/pep621/utils.js.map +1 -1
  371. package/dist/modules/manager/pep723/schema.js +2 -3
  372. package/dist/modules/manager/pep723/schema.js.map +1 -1
  373. package/dist/modules/manager/pip-compile/common.js +3 -3
  374. package/dist/modules/manager/pip-compile/common.js.map +1 -1
  375. package/dist/modules/manager/pip_requirements/artifacts.js +2 -3
  376. package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
  377. package/dist/modules/manager/pip_requirements/extract.js +2 -3
  378. package/dist/modules/manager/pip_requirements/extract.js.map +1 -1
  379. package/dist/modules/manager/pipenv/artifacts.js +3 -4
  380. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  381. package/dist/modules/manager/pipenv/extract.js +6 -7
  382. package/dist/modules/manager/pipenv/extract.js.map +1 -1
  383. package/dist/modules/manager/pixi/artifacts.js +2 -3
  384. package/dist/modules/manager/pixi/artifacts.js.map +1 -1
  385. package/dist/modules/manager/pixi/extract.js +2 -3
  386. package/dist/modules/manager/pixi/extract.js.map +1 -1
  387. package/dist/modules/manager/poetry/artifacts.js +4 -5
  388. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  389. package/dist/modules/manager/poetry/extract.js +2 -3
  390. package/dist/modules/manager/poetry/extract.js.map +1 -1
  391. package/dist/modules/manager/pre-commit/extract.js +4 -5
  392. package/dist/modules/manager/pre-commit/extract.js.map +1 -1
  393. package/dist/modules/manager/pub/artifacts.js +3 -4
  394. package/dist/modules/manager/pub/artifacts.js.map +1 -1
  395. package/dist/modules/manager/pub/extract.js +8 -11
  396. package/dist/modules/manager/pub/extract.js.map +1 -1
  397. package/dist/modules/manager/renovate-config-presets/extract.js +4 -5
  398. package/dist/modules/manager/renovate-config-presets/extract.js.map +1 -1
  399. package/dist/modules/manager/tekton/extract.js +9 -10
  400. package/dist/modules/manager/tekton/extract.js.map +1 -1
  401. package/dist/modules/manager/terraform/base.js +2 -3
  402. package/dist/modules/manager/terraform/base.js.map +1 -1
  403. package/dist/modules/manager/terraform/extract.js +2 -2
  404. package/dist/modules/manager/terraform/extract.js.map +1 -1
  405. package/dist/modules/manager/terraform/extractors/others/modules.js +3 -4
  406. package/dist/modules/manager/terraform/extractors/others/modules.js.map +1 -1
  407. package/dist/modules/manager/terraform/extractors/others/providers.js +3 -4
  408. package/dist/modules/manager/terraform/extractors/others/providers.js.map +1 -1
  409. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js +7 -8
  410. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js.map +1 -1
  411. package/dist/modules/manager/terraform/extractors/resources/helm-release.js +5 -6
  412. package/dist/modules/manager/terraform/extractors/resources/helm-release.js.map +1 -1
  413. package/dist/modules/manager/terraform/extractors/resources/terraform-workspace.js +3 -4
  414. package/dist/modules/manager/terraform/extractors/resources/terraform-workspace.js.map +1 -1
  415. package/dist/modules/manager/terraform/extractors/terraform-block/required-provider.js +4 -5
  416. package/dist/modules/manager/terraform/extractors/terraform-block/required-provider.js.map +1 -1
  417. package/dist/modules/manager/terraform/extractors/terraform-block/terraform-version.js +3 -3
  418. package/dist/modules/manager/terraform/extractors/terraform-block/terraform-version.js.map +1 -1
  419. package/dist/modules/manager/terraform/lockfile/index.js +2 -2
  420. package/dist/modules/manager/terraform/lockfile/index.js.map +1 -1
  421. package/dist/modules/manager/terraform/lockfile/util.js +2 -3
  422. package/dist/modules/manager/terraform/lockfile/util.js.map +1 -1
  423. package/dist/modules/manager/terraform/util.js +2 -3
  424. package/dist/modules/manager/terraform/util.js.map +1 -1
  425. package/dist/modules/manager/tflint-plugin/plugins.js +2 -3
  426. package/dist/modules/manager/tflint-plugin/plugins.js.map +1 -1
  427. package/dist/modules/manager/travis/extract.js +5 -6
  428. package/dist/modules/manager/travis/extract.js.map +1 -1
  429. package/dist/modules/manager/woodpecker/extract.js +2 -3
  430. package/dist/modules/manager/woodpecker/extract.js.map +1 -1
  431. package/dist/modules/platform/azure/index.js +2 -2
  432. package/dist/modules/platform/azure/index.js.map +1 -1
  433. package/dist/modules/platform/bitbucket/index.js +5 -5
  434. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  435. package/dist/modules/platform/bitbucket-server/pr-cache.js +2 -2
  436. package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -1
  437. package/dist/modules/platform/bitbucket-server/utils.js +2 -2
  438. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  439. package/dist/modules/platform/codecommit/codecommit-client.js +2 -2
  440. package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
  441. package/dist/modules/platform/forgejo/index.js +5 -5
  442. package/dist/modules/platform/forgejo/index.js.map +1 -1
  443. package/dist/modules/platform/forgejo/utils.js +2 -2
  444. package/dist/modules/platform/forgejo/utils.js.map +1 -1
  445. package/dist/modules/platform/gitea/index.js +5 -5
  446. package/dist/modules/platform/gitea/index.js.map +1 -1
  447. package/dist/modules/platform/gitea/utils.js +2 -2
  448. package/dist/modules/platform/gitea/utils.js.map +1 -1
  449. package/dist/modules/platform/github/common.js +4 -5
  450. package/dist/modules/platform/github/common.js.map +1 -1
  451. package/dist/modules/platform/github/index.js +5 -5
  452. package/dist/modules/platform/github/index.js.map +1 -1
  453. package/dist/modules/platform/github/pr.js +2 -3
  454. package/dist/modules/platform/github/pr.js.map +1 -1
  455. package/dist/modules/platform/gitlab/http.js +2 -3
  456. package/dist/modules/platform/gitlab/http.js.map +1 -1
  457. package/dist/modules/platform/gitlab/index.js +3 -3
  458. package/dist/modules/platform/gitlab/index.js.map +1 -1
  459. package/dist/modules/platform/gitlab/utils.js +3 -3
  460. package/dist/modules/platform/gitlab/utils.js.map +1 -1
  461. package/dist/modules/platform/pr-body.js +2 -3
  462. package/dist/modules/platform/pr-body.js.map +1 -1
  463. package/dist/modules/versioning/composer/index.js +2 -3
  464. package/dist/modules/versioning/composer/index.js.map +1 -1
  465. package/dist/modules/versioning/generic.js +5 -6
  466. package/dist/modules/versioning/generic.js.map +1 -1
  467. package/dist/modules/versioning/gradle/compare.js +3 -4
  468. package/dist/modules/versioning/gradle/compare.js.map +1 -1
  469. package/dist/modules/versioning/nixpkgs/index.js +6 -7
  470. package/dist/modules/versioning/nixpkgs/index.js.map +1 -1
  471. package/dist/modules/versioning/npm/range.js +2 -2
  472. package/dist/modules/versioning/npm/range.js.map +1 -1
  473. package/dist/modules/versioning/rpm/index.js +4 -5
  474. package/dist/modules/versioning/rpm/index.js.map +1 -1
  475. package/dist/modules/versioning/schema.js +2 -2
  476. package/dist/modules/versioning/schema.js.map +1 -1
  477. package/dist/modules/versioning/semver-coerced/index.js +3 -3
  478. package/dist/modules/versioning/semver-coerced/index.js.map +1 -1
  479. package/dist/modules/versioning/semver-partial/index.js +4 -4
  480. package/dist/modules/versioning/semver-partial/index.js.map +1 -1
  481. package/dist/proxy.js +3 -4
  482. package/dist/proxy.js.map +1 -1
  483. package/dist/util/array.js +4 -5
  484. package/dist/util/array.js.map +1 -1
  485. package/dist/util/assign-keys.js +2 -3
  486. package/dist/util/assign-keys.js.map +1 -1
  487. package/dist/util/cache/package/decorator.js +6 -6
  488. package/dist/util/cache/package/decorator.js.map +1 -1
  489. package/dist/util/cache/package/ttl.js +4 -5
  490. package/dist/util/cache/package/ttl.js.map +1 -1
  491. package/dist/util/cache/repository/impl/base.js +3 -4
  492. package/dist/util/cache/repository/impl/base.js.map +1 -1
  493. package/dist/util/cache/repository/impl/s3.js +2 -3
  494. package/dist/util/cache/repository/impl/s3.js.map +1 -1
  495. package/dist/util/exec/common.js +2 -3
  496. package/dist/util/exec/common.js.map +1 -1
  497. package/dist/util/exec/containerbase.js +2 -2
  498. package/dist/util/exec/containerbase.js.map +1 -1
  499. package/dist/util/exec/docker/index.js +5 -5
  500. package/dist/util/exec/docker/index.js.map +1 -1
  501. package/dist/util/exec/index.js +2 -2
  502. package/dist/util/exec/index.js.map +1 -1
  503. package/dist/util/exec/utils.js +3 -4
  504. package/dist/util/exec/utils.js.map +1 -1
  505. package/dist/util/filter-map.js +2 -3
  506. package/dist/util/filter-map.js.map +1 -1
  507. package/dist/util/fs/index.js +3 -3
  508. package/dist/util/fs/index.js.map +1 -1
  509. package/dist/util/git/auth.js +2 -3
  510. package/dist/util/git/auth.js.map +1 -1
  511. package/dist/util/git/config.js +3 -4
  512. package/dist/util/git/config.js.map +1 -1
  513. package/dist/util/git/index.js +4 -4
  514. package/dist/util/git/index.js.map +1 -1
  515. package/dist/util/git/private-key.js +2 -2
  516. package/dist/util/git/private-key.js.map +1 -1
  517. package/dist/util/host-rules.js +6 -6
  518. package/dist/util/host-rules.js.map +1 -1
  519. package/dist/util/http/auth.js +3 -4
  520. package/dist/util/http/auth.js.map +1 -1
  521. package/dist/util/http/bitbucket-server.js +2 -3
  522. package/dist/util/http/bitbucket-server.js.map +1 -1
  523. package/dist/util/http/bitbucket.js +3 -4
  524. package/dist/util/http/bitbucket.js.map +1 -1
  525. package/dist/util/http/cache/package-http-cache-provider.js +2 -2
  526. package/dist/util/http/cache/package-http-cache-provider.js.map +1 -1
  527. package/dist/util/http/forgejo.js +3 -4
  528. package/dist/util/http/forgejo.js.map +1 -1
  529. package/dist/util/http/gitea.js +3 -4
  530. package/dist/util/http/gitea.js.map +1 -1
  531. package/dist/util/http/github.js +10 -10
  532. package/dist/util/http/github.js.map +1 -1
  533. package/dist/util/http/gitlab.js +4 -5
  534. package/dist/util/http/gitlab.js.map +1 -1
  535. package/dist/util/http/host-rules.js +10 -10
  536. package/dist/util/http/host-rules.js.map +1 -1
  537. package/dist/util/http/http.js +5 -5
  538. package/dist/util/http/http.js.map +1 -1
  539. package/dist/util/http/rate-limits.js +3 -3
  540. package/dist/util/http/rate-limits.js.map +1 -1
  541. package/dist/util/interpolator.js +8 -9
  542. package/dist/util/interpolator.js.map +1 -1
  543. package/dist/util/merge-confidence/index.js +5 -5
  544. package/dist/util/merge-confidence/index.js.map +1 -1
  545. package/dist/util/number.js +2 -3
  546. package/dist/util/number.js.map +1 -1
  547. package/dist/util/package-rules/base-branches.js +3 -4
  548. package/dist/util/package-rules/base-branches.js.map +1 -1
  549. package/dist/util/package-rules/categories.js +3 -4
  550. package/dist/util/package-rules/categories.js.map +1 -1
  551. package/dist/util/package-rules/current-age.js +3 -4
  552. package/dist/util/package-rules/current-age.js.map +1 -1
  553. package/dist/util/package-rules/current-value.js +2 -3
  554. package/dist/util/package-rules/current-value.js.map +1 -1
  555. package/dist/util/package-rules/current-version.js +5 -5
  556. package/dist/util/package-rules/current-version.js.map +1 -1
  557. package/dist/util/package-rules/datasources.js +3 -4
  558. package/dist/util/package-rules/datasources.js.map +1 -1
  559. package/dist/util/package-rules/dep-names.js +3 -4
  560. package/dist/util/package-rules/dep-names.js.map +1 -1
  561. package/dist/util/package-rules/dep-types.js +2 -3
  562. package/dist/util/package-rules/dep-types.js.map +1 -1
  563. package/dist/util/package-rules/files.js +4 -5
  564. package/dist/util/package-rules/files.js.map +1 -1
  565. package/dist/util/package-rules/index.js +6 -6
  566. package/dist/util/package-rules/index.js.map +1 -1
  567. package/dist/util/package-rules/managers.js +3 -4
  568. package/dist/util/package-rules/managers.js.map +1 -1
  569. package/dist/util/package-rules/merge-confidence.js +5 -6
  570. package/dist/util/package-rules/merge-confidence.js.map +1 -1
  571. package/dist/util/package-rules/new-value.js +2 -3
  572. package/dist/util/package-rules/new-value.js.map +1 -1
  573. package/dist/util/package-rules/package-names.js +2 -3
  574. package/dist/util/package-rules/package-names.js.map +1 -1
  575. package/dist/util/package-rules/repositories.js +3 -4
  576. package/dist/util/package-rules/repositories.js.map +1 -1
  577. package/dist/util/package-rules/sourceurls.js +2 -3
  578. package/dist/util/package-rules/sourceurls.js.map +1 -1
  579. package/dist/util/package-rules/update-types.js +2 -3
  580. package/dist/util/package-rules/update-types.js.map +1 -1
  581. package/dist/util/pretty-time.js +4 -4
  582. package/dist/util/pretty-time.js.map +1 -1
  583. package/dist/util/regex.js +2 -3
  584. package/dist/util/regex.js.map +1 -1
  585. package/dist/util/s3.js +2 -3
  586. package/dist/util/s3.js.map +1 -1
  587. package/dist/util/sanitize.js +2 -3
  588. package/dist/util/sanitize.js.map +1 -1
  589. package/dist/util/string-match.js +2 -3
  590. package/dist/util/string-match.js.map +1 -1
  591. package/dist/util/template/index.js +6 -6
  592. package/dist/util/template/index.js.map +1 -1
  593. package/dist/util/url.js +5 -5
  594. package/dist/util/url.js.map +1 -1
  595. package/dist/workers/global/autodiscover.js +3 -4
  596. package/dist/workers/global/autodiscover.js.map +1 -1
  597. package/dist/workers/global/config/parse/additional-config-file.js +4 -4
  598. package/dist/workers/global/config/parse/additional-config-file.js.map +1 -1
  599. package/dist/workers/global/config/parse/coersions.js +2 -2
  600. package/dist/workers/global/config/parse/coersions.js.map +1 -1
  601. package/dist/workers/global/config/parse/env.js +2 -2
  602. package/dist/workers/global/config/parse/env.js.map +1 -1
  603. package/dist/workers/global/config/parse/file.js +5 -5
  604. package/dist/workers/global/config/parse/file.js.map +1 -1
  605. package/dist/workers/global/config/parse/index.js +6 -7
  606. package/dist/workers/global/config/parse/index.js.map +1 -1
  607. package/dist/workers/global/config/parse/util.js +2 -2
  608. package/dist/workers/global/config/parse/util.js.map +1 -1
  609. package/dist/workers/global/index.js +5 -5
  610. package/dist/workers/global/index.js.map +1 -1
  611. package/dist/workers/global/limits.js +6 -7
  612. package/dist/workers/global/limits.js.map +1 -1
  613. package/dist/workers/repository/config-migration/branch/index.js +2 -3
  614. package/dist/workers/repository/config-migration/branch/index.js.map +1 -1
  615. package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -2
  616. package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
  617. package/dist/workers/repository/config-migration/pr/index.js +3 -3
  618. package/dist/workers/repository/config-migration/pr/index.js.map +1 -1
  619. package/dist/workers/repository/dependency-dashboard.js +10 -10
  620. package/dist/workers/repository/dependency-dashboard.js.map +1 -1
  621. package/dist/workers/repository/extract/index.js +2 -3
  622. package/dist/workers/repository/extract/index.js.map +1 -1
  623. package/dist/workers/repository/extract/manager-files.js +2 -3
  624. package/dist/workers/repository/extract/manager-files.js.map +1 -1
  625. package/dist/workers/repository/extract/supersedes.js +4 -5
  626. package/dist/workers/repository/extract/supersedes.js.map +1 -1
  627. package/dist/workers/repository/finalize/prune.js +2 -3
  628. package/dist/workers/repository/finalize/prune.js.map +1 -1
  629. package/dist/workers/repository/init/inherited.js +5 -5
  630. package/dist/workers/repository/init/inherited.js.map +1 -1
  631. package/dist/workers/repository/init/merge.js +13 -13
  632. package/dist/workers/repository/init/merge.js.map +1 -1
  633. package/dist/workers/repository/model/commit-message.js +2 -3
  634. package/dist/workers/repository/model/commit-message.js.map +1 -1
  635. package/dist/workers/repository/onboarding/branch/index.js +2 -3
  636. package/dist/workers/repository/onboarding/branch/index.js.map +1 -1
  637. package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js +5 -6
  638. package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js.map +1 -1
  639. package/dist/workers/repository/onboarding/pr/config-description.js +2 -5
  640. package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
  641. package/dist/workers/repository/onboarding/pr/index.js +3 -3
  642. package/dist/workers/repository/onboarding/pr/index.js.map +1 -1
  643. package/dist/workers/repository/package-files.js +8 -9
  644. package/dist/workers/repository/package-files.js.map +1 -1
  645. package/dist/workers/repository/process/extract-update.js +2 -2
  646. package/dist/workers/repository/process/extract-update.js.map +1 -1
  647. package/dist/workers/repository/process/fetch.js +3 -3
  648. package/dist/workers/repository/process/fetch.js.map +1 -1
  649. package/dist/workers/repository/process/lookup/current.js +2 -3
  650. package/dist/workers/repository/process/lookup/current.js.map +1 -1
  651. package/dist/workers/repository/process/lookup/filter-checks.js +4 -5
  652. package/dist/workers/repository/process/lookup/filter-checks.js.map +1 -1
  653. package/dist/workers/repository/process/lookup/generate.js +2 -3
  654. package/dist/workers/repository/process/lookup/generate.js.map +1 -1
  655. package/dist/workers/repository/process/lookup/index.js +15 -16
  656. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  657. package/dist/workers/repository/process/lookup/utils.js +7 -7
  658. package/dist/workers/repository/process/lookup/utils.js.map +1 -1
  659. package/dist/workers/repository/process/vulnerabilities.js +11 -11
  660. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  661. package/dist/workers/repository/process/write.js +2 -3
  662. package/dist/workers/repository/process/write.js.map +1 -1
  663. package/dist/workers/repository/reconfigure/comment.js +2 -5
  664. package/dist/workers/repository/reconfigure/comment.js.map +1 -1
  665. package/dist/workers/repository/reconfigure/utils.js +2 -3
  666. package/dist/workers/repository/reconfigure/utils.js.map +1 -1
  667. package/dist/workers/repository/reconfigure/validate.js +2 -3
  668. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  669. package/dist/workers/repository/update/branch/auto-replace.js +4 -5
  670. package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
  671. package/dist/workers/repository/update/branch/commit.js +3 -4
  672. package/dist/workers/repository/update/branch/commit.js.map +1 -1
  673. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +12 -5
  674. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  675. package/dist/workers/repository/update/branch/get-updated.js +8 -9
  676. package/dist/workers/repository/update/branch/get-updated.js.map +1 -1
  677. package/dist/workers/repository/update/branch/index.js +3 -3
  678. package/dist/workers/repository/update/branch/index.js.map +1 -1
  679. package/dist/workers/repository/update/branch/schedule.js +2 -2
  680. package/dist/workers/repository/update/branch/schedule.js.map +1 -1
  681. package/dist/workers/repository/update/pr/body/notes.js +2 -2
  682. package/dist/workers/repository/update/pr/body/notes.js.map +1 -1
  683. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +2 -2
  684. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  685. package/dist/workers/repository/update/pr/changelog/index.js +3 -3
  686. package/dist/workers/repository/update/pr/changelog/index.js.map +1 -1
  687. package/dist/workers/repository/update/pr/changelog/release-notes.js +4 -4
  688. package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
  689. package/dist/workers/repository/update/pr/changelog/source.js +8 -8
  690. package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
  691. package/dist/workers/repository/update/pr/code-owners.js +2 -2
  692. package/dist/workers/repository/update/pr/code-owners.js.map +1 -1
  693. package/dist/workers/repository/update/pr/index.js +7 -8
  694. package/dist/workers/repository/update/pr/index.js.map +1 -1
  695. package/dist/workers/repository/update/pr/labels.js +4 -4
  696. package/dist/workers/repository/update/pr/labels.js.map +1 -1
  697. package/dist/workers/repository/update/pr/participants.js +4 -5
  698. package/dist/workers/repository/update/pr/participants.js.map +1 -1
  699. package/dist/workers/repository/updates/generate.js +4 -4
  700. package/dist/workers/repository/updates/generate.js.map +1 -1
  701. package/package.json +1 -1
  702. package/renovate-schema.json +2 -2
@@ -8,7 +8,7 @@ exports.supportsDigests = supportsDigests;
8
8
  exports.getDigest = getDigest;
9
9
  exports.getDefaultConfig = getDefaultConfig;
10
10
  const tslib_1 = require("tslib");
11
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
11
+ const is_1 = require("@sindresorhus/is");
12
12
  const dequal_1 = require("dequal");
13
13
  const global_1 = require("../../config/global");
14
14
  const error_messages_1 = require("../../constants/error-messages");
@@ -166,8 +166,8 @@ async function mergeRegistries(config, datasource, registryUrls) {
166
166
  for (const tag of ['release', 'latest']) {
167
167
  const existingTag = combinedRes?.tags?.[tag];
168
168
  const newTag = res.tags?.[tag];
169
- if (is_1.default.string(newTag) && releaseVersioning.isVersion(newTag)) {
170
- if (is_1.default.string(existingTag) &&
169
+ if ((0, is_1.isString)(newTag) && releaseVersioning.isVersion(newTag)) {
170
+ if ((0, is_1.isString)(existingTag) &&
171
171
  releaseVersioning.isVersion(existingTag)) {
172
172
  // We need to compare them
173
173
  if (releaseVersioning.isGreaterThan(newTag, existingTag)) {
@@ -224,9 +224,9 @@ function massageRegistryUrls(registryUrls) {
224
224
  }
225
225
  function resolveRegistryUrls(datasource, defaultRegistryUrls, registryUrls, additionalRegistryUrls) {
226
226
  if (!datasource.customRegistrySupport) {
227
- if (is_1.default.nonEmptyArray(registryUrls) ||
228
- is_1.default.nonEmptyArray(defaultRegistryUrls) ||
229
- is_1.default.nonEmptyArray(additionalRegistryUrls)) {
227
+ if ((0, is_1.isNonEmptyArray)(registryUrls) ||
228
+ (0, is_1.isNonEmptyArray)(defaultRegistryUrls) ||
229
+ (0, is_1.isNonEmptyArray)(additionalRegistryUrls)) {
230
230
  logger_1.logger.warn({
231
231
  datasource: datasource.id,
232
232
  registryUrls,
@@ -234,24 +234,24 @@ function resolveRegistryUrls(datasource, defaultRegistryUrls, registryUrls, addi
234
234
  additionalRegistryUrls,
235
235
  }, 'Custom registries are not allowed for this datasource and will be ignored');
236
236
  }
237
- return is_1.default.function(datasource.defaultRegistryUrls)
237
+ return (0, is_1.isFunction)(datasource.defaultRegistryUrls)
238
238
  ? datasource.defaultRegistryUrls()
239
239
  : (datasource.defaultRegistryUrls ?? []);
240
240
  }
241
241
  const customUrls = registryUrls?.filter(Boolean);
242
242
  let resolvedUrls = [];
243
- if (is_1.default.nonEmptyArray(customUrls)) {
243
+ if ((0, is_1.isNonEmptyArray)(customUrls)) {
244
244
  resolvedUrls = [...customUrls];
245
245
  }
246
- else if (is_1.default.nonEmptyArray(defaultRegistryUrls)) {
246
+ else if ((0, is_1.isNonEmptyArray)(defaultRegistryUrls)) {
247
247
  resolvedUrls = [...defaultRegistryUrls];
248
248
  resolvedUrls = resolvedUrls.concat(additionalRegistryUrls ?? []);
249
249
  }
250
- else if (is_1.default.function(datasource.defaultRegistryUrls)) {
250
+ else if ((0, is_1.isFunction)(datasource.defaultRegistryUrls)) {
251
251
  resolvedUrls = [...datasource.defaultRegistryUrls()];
252
252
  resolvedUrls = resolvedUrls.concat(additionalRegistryUrls ?? []);
253
253
  }
254
- else if (is_1.default.nonEmptyArray(datasource.defaultRegistryUrls)) {
254
+ else if ((0, is_1.isNonEmptyArray)(datasource.defaultRegistryUrls)) {
255
255
  resolvedUrls = [...datasource.defaultRegistryUrls];
256
256
  resolvedUrls = resolvedUrls.concat(additionalRegistryUrls ?? []);
257
257
  }
@@ -275,10 +275,10 @@ async function fetchReleases(config) {
275
275
  return null;
276
276
  }
277
277
  if (datasourceName === 'npm') {
278
- if (is_1.default.string(config.npmrc)) {
278
+ if ((0, is_1.isString)(config.npmrc)) {
279
279
  (0, npm_1.setNpmrc)(config.npmrc);
280
280
  }
281
- if (!is_1.default.nonEmptyArray(registryUrls)) {
281
+ if (!(0, is_1.isNonEmptyArray)(registryUrls)) {
282
282
  registryUrls = [(0, npmrc_1.resolveRegistryUrl)(config.packageName)];
283
283
  }
284
284
  }
@@ -292,7 +292,7 @@ async function fetchReleases(config) {
292
292
  let dep = null;
293
293
  const registryStrategy = config.registryStrategy ?? datasource.registryStrategy ?? 'hunt';
294
294
  try {
295
- if (is_1.default.nonEmptyArray(registryUrls)) {
295
+ if ((0, is_1.isNonEmptyArray)(registryUrls)) {
296
296
  if (registryStrategy === 'first') {
297
297
  dep = await firstRegistry(config, datasource, registryUrls);
298
298
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/modules/datasource/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { dequal } from 'dequal';\nimport { GlobalConfig } from '../../config/global';\nimport { HOST_DISABLED } from '../../constants/error-messages';\nimport { logger } from '../../logger';\nimport { ExternalHostError } from '../../types/errors/external-host-error';\nimport { coerceArray } from '../../util/array';\nimport * as memCache from '../../util/cache/memory';\nimport * as packageCache from '../../util/cache/package';\nimport type { PackageCacheNamespace } from '../../util/cache/package/types';\nimport { clone } from '../../util/clone';\nimport { filterMap } from '../../util/filter-map';\nimport { AsyncResult, Result } from '../../util/result';\nimport { DatasourceCacheStats } from '../../util/stats';\nimport { trimTrailingSlash } from '../../util/url';\nimport * as versioning from '../versioning';\nimport datasources from './api';\nimport {\n applyConstraintsFiltering,\n applyExtractVersion,\n applyVersionCompatibility,\n filterValidVersions,\n getDatasourceFor,\n sortAndRemoveDuplicates,\n} from './common';\nimport { addMetaData } from './metadata';\nimport { setNpmrc } from './npm';\nimport { resolveRegistryUrl } from './npm/npmrc';\nimport type {\n DatasourceApi,\n DigestConfig,\n GetDigestInputConfig,\n GetPkgReleasesConfig,\n GetReleasesConfig,\n ReleaseResult,\n} from './types';\n\nexport * from './types';\nexport { isGetPkgReleasesConfig } from './common';\n\nexport const getDatasources = (): Map<string, DatasourceApi> => datasources;\nexport const getDatasourceList = (): string[] => Array.from(datasources.keys());\n\ntype GetReleasesInternalConfig = GetReleasesConfig & GetPkgReleasesConfig;\n\n// TODO: fix error Type\nfunction logError(datasource: string, packageName: string, err: any): void {\n const { statusCode, code: errCode, url } = err;\n if (statusCode === 404) {\n logger.debug({ datasource, packageName, url }, 'Datasource 404');\n } else if (statusCode === 401 || statusCode === 403) {\n logger.debug({ datasource, packageName, url }, 'Datasource unauthorized');\n } else if (errCode) {\n logger.debug(\n { datasource, packageName, url, errCode },\n 'Datasource connection error',\n );\n } else {\n logger.debug({ datasource, packageName, err }, 'Datasource unknown error');\n }\n}\n\nasync function getRegistryReleases(\n datasource: DatasourceApi,\n config: GetReleasesConfig,\n registryUrl: string,\n): Promise<ReleaseResult | null> {\n const cacheNamespace: PackageCacheNamespace = `datasource-releases-${datasource.id}`;\n const cacheKey = `${registryUrl}:${config.packageName}`;\n\n const cacheEnabled = !!datasource.caching; // tells if `isPrivate` flag is supported in datasource result\n const cacheForced = GlobalConfig.get('cachePrivatePackages', false); // tells if caching is forced via admin config\n\n if (cacheEnabled || cacheForced) {\n const cachedResult = await packageCache.get<ReleaseResult>(\n cacheNamespace,\n cacheKey,\n );\n\n if (cachedResult) {\n logger.trace({ cacheKey }, 'Returning cached datasource response');\n DatasourceCacheStats.hit(datasource.id, registryUrl, config.packageName);\n return cachedResult;\n }\n\n DatasourceCacheStats.miss(datasource.id, registryUrl, config.packageName);\n }\n\n const res = await datasource.getReleases({ ...config, registryUrl });\n if (res?.releases.length) {\n res.registryUrl ??= registryUrl;\n }\n\n if (!res) {\n return null;\n }\n\n let cache = false;\n if (cacheForced) {\n cache = true;\n } else if (cacheEnabled && !res.isPrivate) {\n cache = true;\n }\n\n if (cache) {\n logger.trace({ cacheKey }, 'Caching datasource response');\n await packageCache.set(cacheNamespace, cacheKey, res, 15);\n DatasourceCacheStats.set(datasource.id, registryUrl, config.packageName);\n } else {\n DatasourceCacheStats.skip(datasource.id, registryUrl, config.packageName);\n }\n\n return res;\n}\n\nfunction firstRegistry(\n config: GetReleasesInternalConfig,\n datasource: DatasourceApi,\n registryUrls: string[],\n): Promise<ReleaseResult | null> {\n if (registryUrls.length > 1) {\n logger.warn(\n {\n datasource: datasource.id,\n packageName: config.packageName,\n registryUrls,\n },\n 'Excess registryUrls found for datasource lookup - using first configured only',\n );\n }\n const registryUrl = registryUrls[0];\n return getRegistryReleases(datasource, config, registryUrl);\n}\n\nasync function huntRegistries(\n config: GetReleasesInternalConfig,\n datasource: DatasourceApi,\n registryUrls: string[],\n): Promise<ReleaseResult | null> {\n let res: ReleaseResult | null = null;\n let caughtError: Error | undefined;\n for (const registryUrl of registryUrls) {\n try {\n res = await getRegistryReleases(datasource, config, registryUrl);\n if (res) {\n break;\n }\n } catch (err) {\n if (err instanceof ExternalHostError) {\n throw err;\n }\n // We'll always save the last-thrown error\n caughtError = err;\n logger.trace({ err }, 'datasource hunt failure');\n }\n }\n if (res) {\n return res;\n }\n if (caughtError) {\n throw caughtError;\n }\n return null;\n}\n\nasync function mergeRegistries(\n config: GetReleasesInternalConfig,\n datasource: DatasourceApi,\n registryUrls: string[],\n): Promise<ReleaseResult | null> {\n let combinedRes: ReleaseResult | undefined;\n let lastErr: Error | undefined;\n let singleRegistry = true;\n const releaseVersioning = versioning.get(config.versioning);\n for (const registryUrl of registryUrls) {\n try {\n const res = await getRegistryReleases(datasource, config, registryUrl);\n if (!res) {\n continue;\n }\n\n if (!combinedRes) {\n // This is the first registry, so we can just use it and continue\n combinedRes = res;\n continue;\n }\n\n if (singleRegistry) {\n // This is the second registry\n // We need to move the registryUrl from the package level to the release level\n for (const release of coerceArray(combinedRes.releases)) {\n release.registryUrl ??= combinedRes.registryUrl;\n }\n singleRegistry = false;\n }\n\n const releases = coerceArray(res.releases);\n for (const release of releases) {\n // We have more than one registry, so we need to move the registryUrl\n // from the package level to the release level before merging\n release.registryUrl ??= res.registryUrl;\n }\n\n combinedRes.releases.push(...releases);\n\n // Merge the tags from the two results\n let tags = combinedRes.tags;\n if (tags) {\n if (res.tags) {\n // Both results had tags, so we need to compare them\n for (const tag of ['release', 'latest']) {\n const existingTag = combinedRes?.tags?.[tag];\n const newTag = res.tags?.[tag];\n if (is.string(newTag) && releaseVersioning.isVersion(newTag)) {\n if (\n is.string(existingTag) &&\n releaseVersioning.isVersion(existingTag)\n ) {\n // We need to compare them\n if (releaseVersioning.isGreaterThan(newTag, existingTag)) {\n // New tag is greater than the existing one\n tags[tag] = newTag;\n }\n } else {\n // Existing tag was not present or not a version\n // so we can just use the new one\n tags[tag] = newTag;\n }\n }\n }\n }\n } else {\n // Existing results had no tags, so we can just use the new ones\n tags = res.tags;\n }\n combinedRes = { ...res, ...combinedRes };\n if (tags) {\n combinedRes.tags = tags;\n }\n // Remove the registryUrl from the package level when more than one registry\n delete combinedRes.registryUrl;\n } catch (err) {\n if (err instanceof ExternalHostError) {\n throw err;\n }\n\n lastErr = err;\n logger.trace({ err }, 'datasource merge failure');\n }\n }\n\n if (!combinedRes) {\n if (lastErr) {\n throw lastErr;\n }\n\n return null;\n }\n\n const seenVersions = new Set<string>();\n combinedRes.releases = filterMap(combinedRes.releases, (release) => {\n if (seenVersions.has(release.version)) {\n return null;\n }\n seenVersions.add(release.version);\n return release;\n });\n\n return combinedRes;\n}\n\nfunction massageRegistryUrls(registryUrls: string[]): string[] {\n return registryUrls.filter(Boolean).map(trimTrailingSlash);\n}\n\nfunction resolveRegistryUrls(\n datasource: DatasourceApi,\n defaultRegistryUrls: string[] | undefined,\n registryUrls: string[] | undefined | null,\n additionalRegistryUrls: string[] | undefined,\n): string[] {\n if (!datasource.customRegistrySupport) {\n if (\n is.nonEmptyArray(registryUrls) ||\n is.nonEmptyArray(defaultRegistryUrls) ||\n is.nonEmptyArray(additionalRegistryUrls)\n ) {\n logger.warn(\n {\n datasource: datasource.id,\n registryUrls,\n defaultRegistryUrls,\n additionalRegistryUrls,\n },\n 'Custom registries are not allowed for this datasource and will be ignored',\n );\n }\n return is.function(datasource.defaultRegistryUrls)\n ? datasource.defaultRegistryUrls()\n : (datasource.defaultRegistryUrls ?? []);\n }\n const customUrls = registryUrls?.filter(Boolean);\n let resolvedUrls: string[] = [];\n if (is.nonEmptyArray(customUrls)) {\n resolvedUrls = [...customUrls];\n } else if (is.nonEmptyArray(defaultRegistryUrls)) {\n resolvedUrls = [...defaultRegistryUrls];\n resolvedUrls = resolvedUrls.concat(additionalRegistryUrls ?? []);\n } else if (is.function(datasource.defaultRegistryUrls)) {\n resolvedUrls = [...datasource.defaultRegistryUrls()];\n resolvedUrls = resolvedUrls.concat(additionalRegistryUrls ?? []);\n } else if (is.nonEmptyArray(datasource.defaultRegistryUrls)) {\n resolvedUrls = [...datasource.defaultRegistryUrls];\n resolvedUrls = resolvedUrls.concat(additionalRegistryUrls ?? []);\n }\n return massageRegistryUrls(resolvedUrls);\n}\n\nfunction applyReplacements(\n config: GetReleasesInternalConfig,\n): Pick<ReleaseResult, 'replacementName' | 'replacementVersion'> | undefined {\n if (config.replacementName && config.replacementVersion) {\n return {\n replacementName: config.replacementName,\n replacementVersion: config.replacementVersion,\n };\n }\n return undefined;\n}\n\nasync function fetchReleases(\n config: GetReleasesInternalConfig,\n): Promise<ReleaseResult | null> {\n const { datasource: datasourceName } = config;\n let { registryUrls } = config;\n // istanbul ignore if: need test\n if (!datasourceName || getDatasourceFor(datasourceName) === undefined) {\n logger.warn({ datasource: datasourceName }, 'Unknown datasource');\n return null;\n }\n if (datasourceName === 'npm') {\n if (is.string(config.npmrc)) {\n setNpmrc(config.npmrc);\n }\n if (!is.nonEmptyArray(registryUrls)) {\n registryUrls = [resolveRegistryUrl(config.packageName)];\n }\n }\n const datasource = getDatasourceFor(datasourceName);\n // istanbul ignore if: needs test\n if (!datasource) {\n logger.warn({ datasource: datasourceName }, 'Unknown datasource');\n return null;\n }\n registryUrls = resolveRegistryUrls(\n datasource,\n config.defaultRegistryUrls,\n registryUrls,\n config.additionalRegistryUrls,\n );\n let dep: ReleaseResult | null = null;\n const registryStrategy =\n config.registryStrategy ?? datasource.registryStrategy ?? 'hunt';\n try {\n if (is.nonEmptyArray(registryUrls)) {\n if (registryStrategy === 'first') {\n dep = await firstRegistry(config, datasource, registryUrls);\n } else if (registryStrategy === 'hunt') {\n dep = await huntRegistries(config, datasource, registryUrls);\n } else if (registryStrategy === 'merge') {\n dep = await mergeRegistries(config, datasource, registryUrls);\n }\n } else {\n dep = await datasource.getReleases(config);\n }\n } catch (err) {\n if (err.message === HOST_DISABLED || err.err?.message === HOST_DISABLED) {\n return null;\n }\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logError(datasource.id, config.packageName, err);\n }\n if (!dep || dequal(dep, { releases: [] })) {\n return null;\n }\n addMetaData(dep, datasourceName, config.packageName);\n dep = { ...dep, ...applyReplacements(config) };\n return dep;\n}\n\nfunction fetchCachedReleases(\n config: GetReleasesInternalConfig,\n): Promise<ReleaseResult | null> {\n const { datasource, packageName, registryUrls } = config;\n const cacheKey = `datasource-mem:releases:${datasource}:${packageName}:${config.registryStrategy}:${String(\n registryUrls,\n )}`;\n // By returning a Promise and reusing it, we should only fetch each package at most once\n const cachedResult = memCache.get<Promise<ReleaseResult | null>>(cacheKey);\n // istanbul ignore if\n if (cachedResult !== undefined) {\n return cachedResult;\n }\n const promisedRes = fetchReleases(config);\n memCache.set(cacheKey, promisedRes);\n return promisedRes;\n}\n\nexport function getRawPkgReleases(\n config: GetPkgReleasesConfig,\n): AsyncResult<\n ReleaseResult,\n Error | 'no-datasource' | 'no-package-name' | 'no-result'\n> {\n if (!config.datasource) {\n logger.warn('No datasource found');\n return AsyncResult.err('no-datasource');\n }\n\n const packageName = config.packageName;\n if (!packageName) {\n logger.error({ config }, 'Datasource getReleases without packageName');\n return AsyncResult.err('no-package-name');\n }\n\n return Result.wrapNullable(fetchCachedReleases(config), 'no-result' as const)\n .catch((e) => {\n if (e instanceof ExternalHostError) {\n e.hostType = config.datasource;\n e.packageName = packageName;\n }\n return Result.err(e);\n })\n .transform(clone);\n}\n\nexport function applyDatasourceFilters(\n releaseResult: ReleaseResult,\n config: GetPkgReleasesConfig,\n): ReleaseResult {\n let res = releaseResult;\n res = applyExtractVersion(res, config.extractVersion);\n res = applyVersionCompatibility(\n res,\n config.versionCompatibility,\n config.currentCompatibility,\n );\n res = filterValidVersions(res, config);\n res = sortAndRemoveDuplicates(res, config);\n res = applyConstraintsFiltering(res, config);\n return res;\n}\n\nexport async function getPkgReleases(\n config: GetPkgReleasesConfig,\n): Promise<ReleaseResult | null> {\n const { val = null, err } = await getRawPkgReleases(config)\n .transform((res) => applyDatasourceFilters(res, config))\n .unwrap();\n\n if (err instanceof Error) {\n throw err;\n }\n\n return val;\n}\n\nexport function supportsDigests(datasource: string | undefined): boolean {\n const ds = !!datasource && getDatasourceFor(datasource);\n return !!ds && 'getDigest' in ds;\n}\n\nfunction getDigestConfig(\n datasource: DatasourceApi,\n config: GetDigestInputConfig,\n): DigestConfig {\n const { lookupName, currentValue, currentDigest } = config;\n const packageName = config.replacementName ?? config.packageName;\n // Prefer registryUrl from getReleases() lookup if it has been passed\n const registryUrl =\n config.registryUrl ??\n resolveRegistryUrls(\n datasource,\n config.defaultRegistryUrls,\n config.registryUrls,\n config.additionalRegistryUrls,\n )[0];\n return { lookupName, packageName, registryUrl, currentValue, currentDigest };\n}\n\nexport function getDigest(\n config: GetDigestInputConfig,\n value?: string,\n): Promise<string | null> {\n const datasource = getDatasourceFor(config.datasource);\n // istanbul ignore if: need test\n if (!datasource || !('getDigest' in datasource)) {\n return Promise.resolve(null);\n }\n const digestConfig = getDigestConfig(datasource, config);\n return datasource.getDigest!(digestConfig, value);\n}\n\nexport function getDefaultConfig(\n datasource: string,\n): Promise<Record<string, unknown>> {\n const loadedDatasource = getDatasourceFor(datasource);\n return Promise.resolve<Record<string, unknown>>(\n loadedDatasource?.defaultConfig ?? Object.create({}),\n );\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/modules/datasource/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { isFunction, isNonEmptyArray, isString } from '@sindresorhus/is';\nimport { dequal } from 'dequal';\nimport { GlobalConfig } from '../../config/global';\nimport { HOST_DISABLED } from '../../constants/error-messages';\nimport { logger } from '../../logger';\nimport { ExternalHostError } from '../../types/errors/external-host-error';\nimport { coerceArray } from '../../util/array';\nimport * as memCache from '../../util/cache/memory';\nimport * as packageCache from '../../util/cache/package';\nimport type { PackageCacheNamespace } from '../../util/cache/package/types';\nimport { clone } from '../../util/clone';\nimport { filterMap } from '../../util/filter-map';\nimport { AsyncResult, Result } from '../../util/result';\nimport { DatasourceCacheStats } from '../../util/stats';\nimport { trimTrailingSlash } from '../../util/url';\nimport * as versioning from '../versioning';\nimport datasources from './api';\nimport {\n applyConstraintsFiltering,\n applyExtractVersion,\n applyVersionCompatibility,\n filterValidVersions,\n getDatasourceFor,\n sortAndRemoveDuplicates,\n} from './common';\nimport { addMetaData } from './metadata';\nimport { setNpmrc } from './npm';\nimport { resolveRegistryUrl } from './npm/npmrc';\nimport type {\n DatasourceApi,\n DigestConfig,\n GetDigestInputConfig,\n GetPkgReleasesConfig,\n GetReleasesConfig,\n ReleaseResult,\n} from './types';\n\nexport * from './types';\nexport { isGetPkgReleasesConfig } from './common';\n\nexport const getDatasources = (): Map<string, DatasourceApi> => datasources;\nexport const getDatasourceList = (): string[] => Array.from(datasources.keys());\n\ntype GetReleasesInternalConfig = GetReleasesConfig & GetPkgReleasesConfig;\n\n// TODO: fix error Type\nfunction logError(datasource: string, packageName: string, err: any): void {\n const { statusCode, code: errCode, url } = err;\n if (statusCode === 404) {\n logger.debug({ datasource, packageName, url }, 'Datasource 404');\n } else if (statusCode === 401 || statusCode === 403) {\n logger.debug({ datasource, packageName, url }, 'Datasource unauthorized');\n } else if (errCode) {\n logger.debug(\n { datasource, packageName, url, errCode },\n 'Datasource connection error',\n );\n } else {\n logger.debug({ datasource, packageName, err }, 'Datasource unknown error');\n }\n}\n\nasync function getRegistryReleases(\n datasource: DatasourceApi,\n config: GetReleasesConfig,\n registryUrl: string,\n): Promise<ReleaseResult | null> {\n const cacheNamespace: PackageCacheNamespace = `datasource-releases-${datasource.id}`;\n const cacheKey = `${registryUrl}:${config.packageName}`;\n\n const cacheEnabled = !!datasource.caching; // tells if `isPrivate` flag is supported in datasource result\n const cacheForced = GlobalConfig.get('cachePrivatePackages', false); // tells if caching is forced via admin config\n\n if (cacheEnabled || cacheForced) {\n const cachedResult = await packageCache.get<ReleaseResult>(\n cacheNamespace,\n cacheKey,\n );\n\n if (cachedResult) {\n logger.trace({ cacheKey }, 'Returning cached datasource response');\n DatasourceCacheStats.hit(datasource.id, registryUrl, config.packageName);\n return cachedResult;\n }\n\n DatasourceCacheStats.miss(datasource.id, registryUrl, config.packageName);\n }\n\n const res = await datasource.getReleases({ ...config, registryUrl });\n if (res?.releases.length) {\n res.registryUrl ??= registryUrl;\n }\n\n if (!res) {\n return null;\n }\n\n let cache = false;\n if (cacheForced) {\n cache = true;\n } else if (cacheEnabled && !res.isPrivate) {\n cache = true;\n }\n\n if (cache) {\n logger.trace({ cacheKey }, 'Caching datasource response');\n await packageCache.set(cacheNamespace, cacheKey, res, 15);\n DatasourceCacheStats.set(datasource.id, registryUrl, config.packageName);\n } else {\n DatasourceCacheStats.skip(datasource.id, registryUrl, config.packageName);\n }\n\n return res;\n}\n\nfunction firstRegistry(\n config: GetReleasesInternalConfig,\n datasource: DatasourceApi,\n registryUrls: string[],\n): Promise<ReleaseResult | null> {\n if (registryUrls.length > 1) {\n logger.warn(\n {\n datasource: datasource.id,\n packageName: config.packageName,\n registryUrls,\n },\n 'Excess registryUrls found for datasource lookup - using first configured only',\n );\n }\n const registryUrl = registryUrls[0];\n return getRegistryReleases(datasource, config, registryUrl);\n}\n\nasync function huntRegistries(\n config: GetReleasesInternalConfig,\n datasource: DatasourceApi,\n registryUrls: string[],\n): Promise<ReleaseResult | null> {\n let res: ReleaseResult | null = null;\n let caughtError: Error | undefined;\n for (const registryUrl of registryUrls) {\n try {\n res = await getRegistryReleases(datasource, config, registryUrl);\n if (res) {\n break;\n }\n } catch (err) {\n if (err instanceof ExternalHostError) {\n throw err;\n }\n // We'll always save the last-thrown error\n caughtError = err;\n logger.trace({ err }, 'datasource hunt failure');\n }\n }\n if (res) {\n return res;\n }\n if (caughtError) {\n throw caughtError;\n }\n return null;\n}\n\nasync function mergeRegistries(\n config: GetReleasesInternalConfig,\n datasource: DatasourceApi,\n registryUrls: string[],\n): Promise<ReleaseResult | null> {\n let combinedRes: ReleaseResult | undefined;\n let lastErr: Error | undefined;\n let singleRegistry = true;\n const releaseVersioning = versioning.get(config.versioning);\n for (const registryUrl of registryUrls) {\n try {\n const res = await getRegistryReleases(datasource, config, registryUrl);\n if (!res) {\n continue;\n }\n\n if (!combinedRes) {\n // This is the first registry, so we can just use it and continue\n combinedRes = res;\n continue;\n }\n\n if (singleRegistry) {\n // This is the second registry\n // We need to move the registryUrl from the package level to the release level\n for (const release of coerceArray(combinedRes.releases)) {\n release.registryUrl ??= combinedRes.registryUrl;\n }\n singleRegistry = false;\n }\n\n const releases = coerceArray(res.releases);\n for (const release of releases) {\n // We have more than one registry, so we need to move the registryUrl\n // from the package level to the release level before merging\n release.registryUrl ??= res.registryUrl;\n }\n\n combinedRes.releases.push(...releases);\n\n // Merge the tags from the two results\n let tags = combinedRes.tags;\n if (tags) {\n if (res.tags) {\n // Both results had tags, so we need to compare them\n for (const tag of ['release', 'latest']) {\n const existingTag = combinedRes?.tags?.[tag];\n const newTag = res.tags?.[tag];\n if (isString(newTag) && releaseVersioning.isVersion(newTag)) {\n if (\n isString(existingTag) &&\n releaseVersioning.isVersion(existingTag)\n ) {\n // We need to compare them\n if (releaseVersioning.isGreaterThan(newTag, existingTag)) {\n // New tag is greater than the existing one\n tags[tag] = newTag;\n }\n } else {\n // Existing tag was not present or not a version\n // so we can just use the new one\n tags[tag] = newTag;\n }\n }\n }\n }\n } else {\n // Existing results had no tags, so we can just use the new ones\n tags = res.tags;\n }\n combinedRes = { ...res, ...combinedRes };\n if (tags) {\n combinedRes.tags = tags;\n }\n // Remove the registryUrl from the package level when more than one registry\n delete combinedRes.registryUrl;\n } catch (err) {\n if (err instanceof ExternalHostError) {\n throw err;\n }\n\n lastErr = err;\n logger.trace({ err }, 'datasource merge failure');\n }\n }\n\n if (!combinedRes) {\n if (lastErr) {\n throw lastErr;\n }\n\n return null;\n }\n\n const seenVersions = new Set<string>();\n combinedRes.releases = filterMap(combinedRes.releases, (release) => {\n if (seenVersions.has(release.version)) {\n return null;\n }\n seenVersions.add(release.version);\n return release;\n });\n\n return combinedRes;\n}\n\nfunction massageRegistryUrls(registryUrls: string[]): string[] {\n return registryUrls.filter(Boolean).map(trimTrailingSlash);\n}\n\nfunction resolveRegistryUrls(\n datasource: DatasourceApi,\n defaultRegistryUrls: string[] | undefined,\n registryUrls: string[] | undefined | null,\n additionalRegistryUrls: string[] | undefined,\n): string[] {\n if (!datasource.customRegistrySupport) {\n if (\n isNonEmptyArray(registryUrls) ||\n isNonEmptyArray(defaultRegistryUrls) ||\n isNonEmptyArray(additionalRegistryUrls)\n ) {\n logger.warn(\n {\n datasource: datasource.id,\n registryUrls,\n defaultRegistryUrls,\n additionalRegistryUrls,\n },\n 'Custom registries are not allowed for this datasource and will be ignored',\n );\n }\n return isFunction(datasource.defaultRegistryUrls)\n ? datasource.defaultRegistryUrls()\n : (datasource.defaultRegistryUrls ?? []);\n }\n const customUrls = registryUrls?.filter(Boolean);\n let resolvedUrls: string[] = [];\n if (isNonEmptyArray(customUrls)) {\n resolvedUrls = [...customUrls];\n } else if (isNonEmptyArray(defaultRegistryUrls)) {\n resolvedUrls = [...defaultRegistryUrls];\n resolvedUrls = resolvedUrls.concat(additionalRegistryUrls ?? []);\n } else if (isFunction(datasource.defaultRegistryUrls)) {\n resolvedUrls = [...datasource.defaultRegistryUrls()];\n resolvedUrls = resolvedUrls.concat(additionalRegistryUrls ?? []);\n } else if (isNonEmptyArray(datasource.defaultRegistryUrls)) {\n resolvedUrls = [...datasource.defaultRegistryUrls];\n resolvedUrls = resolvedUrls.concat(additionalRegistryUrls ?? []);\n }\n return massageRegistryUrls(resolvedUrls);\n}\n\nfunction applyReplacements(\n config: GetReleasesInternalConfig,\n): Pick<ReleaseResult, 'replacementName' | 'replacementVersion'> | undefined {\n if (config.replacementName && config.replacementVersion) {\n return {\n replacementName: config.replacementName,\n replacementVersion: config.replacementVersion,\n };\n }\n return undefined;\n}\n\nasync function fetchReleases(\n config: GetReleasesInternalConfig,\n): Promise<ReleaseResult | null> {\n const { datasource: datasourceName } = config;\n let { registryUrls } = config;\n // istanbul ignore if: need test\n if (!datasourceName || getDatasourceFor(datasourceName) === undefined) {\n logger.warn({ datasource: datasourceName }, 'Unknown datasource');\n return null;\n }\n if (datasourceName === 'npm') {\n if (isString(config.npmrc)) {\n setNpmrc(config.npmrc);\n }\n if (!isNonEmptyArray(registryUrls)) {\n registryUrls = [resolveRegistryUrl(config.packageName)];\n }\n }\n const datasource = getDatasourceFor(datasourceName);\n // istanbul ignore if: needs test\n if (!datasource) {\n logger.warn({ datasource: datasourceName }, 'Unknown datasource');\n return null;\n }\n registryUrls = resolveRegistryUrls(\n datasource,\n config.defaultRegistryUrls,\n registryUrls,\n config.additionalRegistryUrls,\n );\n let dep: ReleaseResult | null = null;\n const registryStrategy =\n config.registryStrategy ?? datasource.registryStrategy ?? 'hunt';\n try {\n if (isNonEmptyArray(registryUrls)) {\n if (registryStrategy === 'first') {\n dep = await firstRegistry(config, datasource, registryUrls);\n } else if (registryStrategy === 'hunt') {\n dep = await huntRegistries(config, datasource, registryUrls);\n } else if (registryStrategy === 'merge') {\n dep = await mergeRegistries(config, datasource, registryUrls);\n }\n } else {\n dep = await datasource.getReleases(config);\n }\n } catch (err) {\n if (err.message === HOST_DISABLED || err.err?.message === HOST_DISABLED) {\n return null;\n }\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logError(datasource.id, config.packageName, err);\n }\n if (!dep || dequal(dep, { releases: [] })) {\n return null;\n }\n addMetaData(dep, datasourceName, config.packageName);\n dep = { ...dep, ...applyReplacements(config) };\n return dep;\n}\n\nfunction fetchCachedReleases(\n config: GetReleasesInternalConfig,\n): Promise<ReleaseResult | null> {\n const { datasource, packageName, registryUrls } = config;\n const cacheKey = `datasource-mem:releases:${datasource}:${packageName}:${config.registryStrategy}:${String(\n registryUrls,\n )}`;\n // By returning a Promise and reusing it, we should only fetch each package at most once\n const cachedResult = memCache.get<Promise<ReleaseResult | null>>(cacheKey);\n // istanbul ignore if\n if (cachedResult !== undefined) {\n return cachedResult;\n }\n const promisedRes = fetchReleases(config);\n memCache.set(cacheKey, promisedRes);\n return promisedRes;\n}\n\nexport function getRawPkgReleases(\n config: GetPkgReleasesConfig,\n): AsyncResult<\n ReleaseResult,\n Error | 'no-datasource' | 'no-package-name' | 'no-result'\n> {\n if (!config.datasource) {\n logger.warn('No datasource found');\n return AsyncResult.err('no-datasource');\n }\n\n const packageName = config.packageName;\n if (!packageName) {\n logger.error({ config }, 'Datasource getReleases without packageName');\n return AsyncResult.err('no-package-name');\n }\n\n return Result.wrapNullable(fetchCachedReleases(config), 'no-result' as const)\n .catch((e) => {\n if (e instanceof ExternalHostError) {\n e.hostType = config.datasource;\n e.packageName = packageName;\n }\n return Result.err(e);\n })\n .transform(clone);\n}\n\nexport function applyDatasourceFilters(\n releaseResult: ReleaseResult,\n config: GetPkgReleasesConfig,\n): ReleaseResult {\n let res = releaseResult;\n res = applyExtractVersion(res, config.extractVersion);\n res = applyVersionCompatibility(\n res,\n config.versionCompatibility,\n config.currentCompatibility,\n );\n res = filterValidVersions(res, config);\n res = sortAndRemoveDuplicates(res, config);\n res = applyConstraintsFiltering(res, config);\n return res;\n}\n\nexport async function getPkgReleases(\n config: GetPkgReleasesConfig,\n): Promise<ReleaseResult | null> {\n const { val = null, err } = await getRawPkgReleases(config)\n .transform((res) => applyDatasourceFilters(res, config))\n .unwrap();\n\n if (err instanceof Error) {\n throw err;\n }\n\n return val;\n}\n\nexport function supportsDigests(datasource: string | undefined): boolean {\n const ds = !!datasource && getDatasourceFor(datasource);\n return !!ds && 'getDigest' in ds;\n}\n\nfunction getDigestConfig(\n datasource: DatasourceApi,\n config: GetDigestInputConfig,\n): DigestConfig {\n const { lookupName, currentValue, currentDigest } = config;\n const packageName = config.replacementName ?? config.packageName;\n // Prefer registryUrl from getReleases() lookup if it has been passed\n const registryUrl =\n config.registryUrl ??\n resolveRegistryUrls(\n datasource,\n config.defaultRegistryUrls,\n config.registryUrls,\n config.additionalRegistryUrls,\n )[0];\n return { lookupName, packageName, registryUrl, currentValue, currentDigest };\n}\n\nexport function getDigest(\n config: GetDigestInputConfig,\n value?: string,\n): Promise<string | null> {\n const datasource = getDatasourceFor(config.datasource);\n // istanbul ignore if: need test\n if (!datasource || !('getDigest' in datasource)) {\n return Promise.resolve(null);\n }\n const digestConfig = getDigestConfig(datasource, config);\n return datasource.getDigest!(digestConfig, value);\n}\n\nexport function getDefaultConfig(\n datasource: string,\n): Promise<Record<string, unknown>> {\n const loadedDatasource = getDatasourceFor(datasource);\n return Promise.resolve<Record<string, unknown>>(\n loadedDatasource?.defaultConfig ?? Object.create({}),\n );\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.JsrDatasource = void 0;
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 logger_1 = require("../../../logger");
7
7
  const decorator_1 = require("../../../util/cache/package/decorator");
8
8
  const url_1 = require("../../../util/url");
@@ -31,7 +31,7 @@ class JsrDatasource extends datasource_1.Datasource {
31
31
  return null;
32
32
  }
33
33
  const validJsrPackageName = (0, util_1.extractJsrPackageName)(packageName);
34
- if (is_1.default.null(validJsrPackageName)) {
34
+ if ((0, is_1.isNull)(validJsrPackageName)) {
35
35
  logger_1.logger.debug(`Could not extract packageName: "${packageName}"`);
36
36
  return null;
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/jsr/index.ts"],"names":[],"mappings":";;;;AAAA,kEAAkC;AAClC,4CAAyC;AACzC,qEAA8D;AAC9D,2CAAiD;AACjD,oDAAyD;AACzD,8CAA2C;AAE3C,qCAA+C;AAC/C,qCAA8C;AAC9C,iCAA+C;AAE/C,MAAa,aAAc,SAAQ,uBAAU;IAC3C,MAAM,CAAU,EAAE,GAAG,KAAK,CAAC;IAE3B,+CAA+C;IAC/C,2CAA2C;IACzB,qBAAqB,GAAG,KAAK,CAAC;IAE9B,gBAAgB,GAAG,OAAO,CAAC;IAC7C,uDAAuD;IACrC,iBAAiB,GAAG,WAAQ,CAAC;IAE/C,qDAAqD;IACnC,mBAAmB,GAAG,4BAAmB,CAAC;IAE1C,uBAAuB,GAAG,KAAK,CAAC;IAElD;QACE,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAQK,AAAN,KAAK,CAAC,WAAW,CAAC,EAChB,WAAW,EACX,WAAW,GACO;QAClB,6CAA6C;QAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAA,4BAAqB,EAAC,WAAW,CAAC,CAAC;QAC/D,IAAI,YAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACjC,eAAM,CAAC,KAAK,CAAC,mCAAmC,WAAW,GAAG,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,mCAAmC;QACnC,2CAA2C;QAC3C,MAAM,cAAc,GAAG,IAAA,kBAAY,EAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAE3E,MAAM,MAAM,GAAkB;YAC5B,QAAQ,EAAE,IAAA,kBAAY,EAAC,WAAW,EAAE,WAAW,CAAC;YAChD,WAAW;YACX,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACtC,cAAc,EACd,2BAAkB,CACnB,CAAC;YACF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,oCAAoC,CAAC,CAAC;YAC3D,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;;AA9DH,sCA+DC;AArCO;IANL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,aAAa,CAAC,EAAE,EAAE;QAC3C,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,EAAqB,EAAE,EAAE;QACvD,uBAAuB;QACvB,eAAe,WAAW,IAAI,WAAW,EAAE;KAC9C,CAAC;gDAqCD","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { joinUrlParts } from '../../../util/url';\nimport { id as semverId } from '../../versioning/semver';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport { defaultRegistryUrls } from './common';\nimport { JsrPackageMetadata } from './schema';\nimport { extractJsrPackageName } from './util';\n\nexport class JsrDatasource extends Datasource {\n static readonly id = 'jsr';\n\n // custom registry support is not yet supported\n // https://github.com/jsr-io/jsr/issues/203\n override readonly customRegistrySupport = false;\n\n override readonly registryStrategy = 'first';\n // https://jsr.io/docs/using-packages#semver-resolution\n override readonly defaultVersioning = semverId;\n\n // use npm compatible registry api url due to returns\n override readonly defaultRegistryUrls = defaultRegistryUrls;\n\n override readonly releaseTimestampSupport = false;\n\n constructor() {\n super(JsrDatasource.id);\n }\n\n @cache({\n namespace: `datasource-${JsrDatasource.id}`,\n key: ({ packageName, registryUrl }: GetReleasesConfig) =>\n // TODO: types (#22198)\n `getReleases:${registryUrl}:${packageName}`,\n })\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n\n const validJsrPackageName = extractJsrPackageName(packageName);\n if (is.null(validJsrPackageName)) {\n logger.debug(`Could not extract packageName: \"${packageName}\"`);\n return null;\n }\n // construct a package metadata url\n // https://jsr.io/docs/api#package-metadata\n const packageInfoUrl = joinUrlParts(registryUrl, packageName, 'meta.json');\n\n const result: ReleaseResult = {\n homepage: joinUrlParts(registryUrl, packageName),\n registryUrl,\n releases: [],\n };\n\n try {\n const { body } = await this.http.getJson(\n packageInfoUrl,\n JsrPackageMetadata,\n );\n result.releases.push(...body);\n } catch (err) {\n logger.warn({ err }, 'JSR: failed to get package details');\n this.handleGenericErrors(err);\n }\n\n return result.releases.length ? result : null;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/jsr/index.ts"],"names":[],"mappings":";;;;AAAA,yCAA0C;AAC1C,4CAAyC;AACzC,qEAA8D;AAC9D,2CAAiD;AACjD,oDAAyD;AACzD,8CAA2C;AAE3C,qCAA+C;AAC/C,qCAA8C;AAC9C,iCAA+C;AAE/C,MAAa,aAAc,SAAQ,uBAAU;IAC3C,MAAM,CAAU,EAAE,GAAG,KAAK,CAAC;IAE3B,+CAA+C;IAC/C,2CAA2C;IACzB,qBAAqB,GAAG,KAAK,CAAC;IAE9B,gBAAgB,GAAG,OAAO,CAAC;IAC7C,uDAAuD;IACrC,iBAAiB,GAAG,WAAQ,CAAC;IAE/C,qDAAqD;IACnC,mBAAmB,GAAG,4BAAmB,CAAC;IAE1C,uBAAuB,GAAG,KAAK,CAAC;IAElD;QACE,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAQK,AAAN,KAAK,CAAC,WAAW,CAAC,EAChB,WAAW,EACX,WAAW,GACO;QAClB,6CAA6C;QAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAA,4BAAqB,EAAC,WAAW,CAAC,CAAC;QAC/D,IAAI,IAAA,WAAM,EAAC,mBAAmB,CAAC,EAAE,CAAC;YAChC,eAAM,CAAC,KAAK,CAAC,mCAAmC,WAAW,GAAG,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,mCAAmC;QACnC,2CAA2C;QAC3C,MAAM,cAAc,GAAG,IAAA,kBAAY,EAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAE3E,MAAM,MAAM,GAAkB;YAC5B,QAAQ,EAAE,IAAA,kBAAY,EAAC,WAAW,EAAE,WAAW,CAAC;YAChD,WAAW;YACX,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACtC,cAAc,EACd,2BAAkB,CACnB,CAAC;YACF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,oCAAoC,CAAC,CAAC;YAC3D,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;;AA9DH,sCA+DC;AArCO;IANL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,aAAa,CAAC,EAAE,EAAE;QAC3C,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,EAAqB,EAAE,EAAE;QACvD,uBAAuB;QACvB,eAAe,WAAW,IAAI,WAAW,EAAE;KAC9C,CAAC;gDAqCD","sourcesContent":["import { isNull } from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { joinUrlParts } from '../../../util/url';\nimport { id as semverId } from '../../versioning/semver';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport { defaultRegistryUrls } from './common';\nimport { JsrPackageMetadata } from './schema';\nimport { extractJsrPackageName } from './util';\n\nexport class JsrDatasource extends Datasource {\n static readonly id = 'jsr';\n\n // custom registry support is not yet supported\n // https://github.com/jsr-io/jsr/issues/203\n override readonly customRegistrySupport = false;\n\n override readonly registryStrategy = 'first';\n // https://jsr.io/docs/using-packages#semver-resolution\n override readonly defaultVersioning = semverId;\n\n // use npm compatible registry api url due to returns\n override readonly defaultRegistryUrls = defaultRegistryUrls;\n\n override readonly releaseTimestampSupport = false;\n\n constructor() {\n super(JsrDatasource.id);\n }\n\n @cache({\n namespace: `datasource-${JsrDatasource.id}`,\n key: ({ packageName, registryUrl }: GetReleasesConfig) =>\n // TODO: types (#22198)\n `getReleases:${registryUrl}:${packageName}`,\n })\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n\n const validJsrPackageName = extractJsrPackageName(packageName);\n if (isNull(validJsrPackageName)) {\n logger.debug(`Could not extract packageName: \"${packageName}\"`);\n return null;\n }\n // construct a package metadata url\n // https://jsr.io/docs/api#package-metadata\n const packageInfoUrl = joinUrlParts(registryUrl, packageName, 'meta.json');\n\n const result: ReleaseResult = {\n homepage: joinUrlParts(registryUrl, packageName),\n registryUrl,\n releases: [],\n };\n\n try {\n const { body } = await this.http.getJson(\n packageInfoUrl,\n JsrPackageMetadata,\n );\n result.releases.push(...body);\n } catch (err) {\n logger.warn({ err }, 'JSR: failed to get package details');\n this.handleGenericErrors(err);\n }\n\n return result.releases.length ? result : null;\n }\n}\n"]}
@@ -4,8 +4,7 @@
4
4
  // Copyright 2024 the JSR authors. All rights reserved. MIT license.
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.extractJsrPackageName = extractJsrPackageName;
7
- const tslib_1 = require("tslib");
8
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
7
+ const is_1 = require("@sindresorhus/is");
9
8
  const regex_1 = require("../../../util/regex");
10
9
  function extractJsrPackageName(packageName) {
11
10
  // trim first @
@@ -15,10 +14,10 @@ function extractJsrPackageName(packageName) {
15
14
  return null;
16
15
  }
17
16
  const [scope, name] = parts;
18
- if (is_1.default.null(parseJsrScopeName(scope))) {
17
+ if ((0, is_1.isNull)(parseJsrScopeName(scope))) {
19
18
  return null;
20
19
  }
21
- if (is_1.default.null(parseJsrPackageName(name))) {
20
+ if ((0, is_1.isNull)(parseJsrPackageName(name))) {
22
21
  return null;
23
22
  }
24
23
  return { scope, name };
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/jsr/util.ts"],"names":[],"mappings":";AAAA,mBAAmB;AACnB,oGAAoG;AACpG,oEAAoE;;AAKpE,sDAkBC;;AArBD,kEAAkC;AAClC,+CAA4C;AAE5C,SAAgB,qBAAqB,CAAC,WAAmB;IAIvD,eAAe;IACf,MAAM,mBAAmB,GAAG,WAAW,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;IAC5B,IAAI,YAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,YAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,IAAA,aAAK,EAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,IAAA,aAAK,EAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["// Ported from jsr:\n// https://github.com/jsr-io/jsr/blob/b8d753f4ed96f032bc494e8809065cfe8df5c641/frontend/utils/ids.ts\n// Copyright 2024 the JSR authors. All rights reserved. MIT license.\n\nimport is from '@sindresorhus/is';\nimport { regEx } from '../../../util/regex';\n\nexport function extractJsrPackageName(packageName: string): {\n scope: string;\n name: string;\n} | null {\n // trim first @\n const validatePackageName = packageName.replace(regEx(/^@/), '');\n const parts = validatePackageName.split('/');\n if (parts.length !== 2) {\n return null;\n }\n const [scope, name] = parts;\n if (is.null(parseJsrScopeName(scope))) {\n return null;\n }\n if (is.null(parseJsrPackageName(name))) {\n return null;\n }\n return { scope, name };\n}\n\nfunction parseJsrScopeName(name: string): string | null {\n if (name.length > 100) {\n return null;\n }\n if (name.length < 3) {\n return null;\n }\n if (!regEx(/^[a-zA-Z0-9-_]+$/).test(name)) {\n return null;\n }\n return name;\n}\n\nfunction parseJsrPackageName(name: string): string | null {\n if (name.startsWith('@')) {\n return null;\n }\n if (name.length > 58) {\n return null;\n }\n if (!regEx(/^[a-z0-9-]+$/).test(name)) {\n return null;\n }\n if (name.startsWith('-')) {\n return null;\n }\n return name;\n}\n"]}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/jsr/util.ts"],"names":[],"mappings":";AAAA,mBAAmB;AACnB,oGAAoG;AACpG,oEAAoE;;AAKpE,sDAkBC;AArBD,yCAA0C;AAC1C,+CAA4C;AAE5C,SAAgB,qBAAqB,CAAC,WAAmB;IAIvD,eAAe;IACf,MAAM,mBAAmB,GAAG,WAAW,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;IAC5B,IAAI,IAAA,WAAM,EAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAA,WAAM,EAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,IAAA,aAAK,EAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,IAAA,aAAK,EAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["// Ported from jsr:\n// https://github.com/jsr-io/jsr/blob/b8d753f4ed96f032bc494e8809065cfe8df5c641/frontend/utils/ids.ts\n// Copyright 2024 the JSR authors. All rights reserved. MIT license.\n\nimport { isNull } from '@sindresorhus/is';\nimport { regEx } from '../../../util/regex';\n\nexport function extractJsrPackageName(packageName: string): {\n scope: string;\n name: string;\n} | null {\n // trim first @\n const validatePackageName = packageName.replace(regEx(/^@/), '');\n const parts = validatePackageName.split('/');\n if (parts.length !== 2) {\n return null;\n }\n const [scope, name] = parts;\n if (isNull(parseJsrScopeName(scope))) {\n return null;\n }\n if (isNull(parseJsrPackageName(name))) {\n return null;\n }\n return { scope, name };\n}\n\nfunction parseJsrScopeName(name: string): string | null {\n if (name.length > 100) {\n return null;\n }\n if (name.length < 3) {\n return null;\n }\n if (!regEx(/^[a-zA-Z0-9-_]+$/).test(name)) {\n return null;\n }\n return name;\n}\n\nfunction parseJsrPackageName(name: string): string | null {\n if (name.startsWith('@')) {\n return null;\n }\n if (name.length > 58) {\n return null;\n }\n if (!regEx(/^[a-z0-9-]+$/).test(name)) {\n return null;\n }\n if (name.startsWith('-')) {\n return null;\n }\n return name;\n}\n"]}
@@ -6,7 +6,7 @@ exports.massageGitlabUrl = massageGitlabUrl;
6
6
  exports.addMetaData = addMetaData;
7
7
  exports.shouldDeleteHomepage = shouldDeleteHomepage;
8
8
  const tslib_1 = require("tslib");
9
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
9
+ const is_1 = require("@sindresorhus/is");
10
10
  const github_url_from_git_1 = tslib_1.__importDefault(require("github-url-from-git"));
11
11
  const common_1 = require("../../util/common");
12
12
  const url_1 = require("../../util/git/url");
@@ -113,7 +113,7 @@ function addMetaData(dep, datasource, packageName) {
113
113
  if (dep.sourceUrl) {
114
114
  // try massaging it
115
115
  const massagedUrl = massageUrl(dep.sourceUrl);
116
- if (is_1.default.emptyString(massagedUrl)) {
116
+ if ((0, is_1.isEmptyString)(massagedUrl)) {
117
117
  delete dep.sourceUrl;
118
118
  }
119
119
  else {
@@ -143,7 +143,7 @@ function addMetaData(dep, datasource, packageName) {
143
143
  ];
144
144
  for (const urlKey of urlKeys) {
145
145
  const urlVal = dep[urlKey];
146
- if (is_1.default.string(urlVal) && (0, url_2.isHttpUrl)(urlVal.trim())) {
146
+ if ((0, is_1.isString)(urlVal) && (0, url_2.isHttpUrl)(urlVal.trim())) {
147
147
  dep[urlKey] = urlVal.trim();
148
148
  }
149
149
  else {
@@ -159,14 +159,14 @@ function addMetaData(dep, datasource, packageName) {
159
159
  * @param homepage
160
160
  */
161
161
  function shouldDeleteHomepage(sourceUrl, homepage) {
162
- if (is_1.default.nullOrUndefined(sourceUrl) || is_1.default.undefined(homepage)) {
162
+ if ((0, is_1.isNullOrUndefined)(sourceUrl) || (0, is_1.isUndefined)(homepage)) {
163
163
  return false;
164
164
  }
165
165
  const massagedSourceUrl = massageUrl(sourceUrl);
166
166
  const platform = (0, common_1.detectPlatform)(homepage);
167
167
  if (platform === 'github' || platform === 'gitlab') {
168
168
  const sourceUrlParsed = (0, url_2.parseUrl)(massagedSourceUrl);
169
- if (is_1.default.nullOrUndefined(sourceUrlParsed)) {
169
+ if ((0, is_1.isNullOrUndefined)(sourceUrlParsed)) {
170
170
  return false;
171
171
  }
172
172
  const homepageParsed = (0, url_2.parseUrl)(homepage);
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../lib/modules/datasource/metadata.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport parse from 'github-url-from-git';\nimport { detectPlatform } from '../../util/common';\nimport { parseGitUrl } from '../../util/git/url';\nimport * as hostRules from '../../util/host-rules';\nimport { regEx } from '../../util/regex';\nimport { asTimestamp } from '../../util/timestamp';\nimport { isHttpUrl, parseUrl, trimTrailingSlash } from '../../util/url';\nimport { manualChangelogUrls, manualSourceUrls } from './metadata-manual';\nimport type { ReleaseResult } from './types';\n\nconst githubPages = regEx('^https://([^.]+).github.com/([^/]+)$');\nconst gitPrefix = regEx('^git:/?/?');\n\nexport function massageUrl(sourceUrl: string): string {\n // Replace git@ sourceUrl with https so hostname can be parsed\n const massagedUrl = massageGitAtUrl(sourceUrl);\n\n // Check if URL is valid\n const parsedUrl = parseUrl(massagedUrl);\n if (!parsedUrl) {\n return '';\n }\n\n if (detectPlatform(massagedUrl) === 'gitlab') {\n return massageGitlabUrl(sourceUrl);\n }\n return massageGithubUrl(sourceUrl);\n}\n\nexport function massageGithubUrl(url: string): string {\n const massagedUrl = massageGitAtUrl(url);\n\n return massagedUrl\n .replace('http:', 'https:')\n .replace('http+git:', 'https:')\n .replace('https+git:', 'https:')\n .replace('ssh://git@', 'https://')\n .replace(gitPrefix, 'https://')\n .replace(githubPages, 'https://github.com/$1/$2')\n .replace('www.github.com', 'github.com')\n .split('/')\n .slice(0, 5)\n .join('/');\n}\n\nexport function massageGitlabUrl(url: string): string {\n const massagedUrl = massageGitAtUrl(url);\n\n return massagedUrl\n .replace('http:', 'https:')\n .replace(gitPrefix, 'https://')\n .replace(regEx(/\\/tree\\/.*$/i), '')\n .replace(regEx(/\\/$/i), '')\n .replace(regEx(/\\.git$/i), '');\n}\n\nfunction massageGitAtUrl(url: string): string {\n let massagedUrl = url;\n\n if (url.startsWith('git@')) {\n massagedUrl = url.replace(':', '/').replace('git@', 'https://');\n }\n return massagedUrl;\n}\n\nfunction massageTimestamps(dep: ReleaseResult): void {\n for (const release of dep.releases || []) {\n let { releaseTimestamp } = release;\n delete release.releaseTimestamp;\n releaseTimestamp = asTimestamp(releaseTimestamp);\n if (releaseTimestamp) {\n release.releaseTimestamp = releaseTimestamp;\n }\n }\n}\n\nexport function addMetaData(\n dep: ReleaseResult,\n datasource: string,\n packageName: string,\n): void {\n massageTimestamps(dep);\n\n const packageNameLowercase = packageName.toLowerCase();\n const manualChangelogUrl =\n manualChangelogUrls[datasource]?.[packageNameLowercase];\n if (manualChangelogUrl) {\n dep.changelogUrl = manualChangelogUrl;\n }\n\n const manualSourceUrl = manualSourceUrls[datasource]?.[packageNameLowercase];\n if (manualSourceUrl) {\n dep.sourceUrl = manualSourceUrl;\n }\n\n if (dep.sourceUrl && !dep.sourceDirectory) {\n try {\n const parsed = parseGitUrl(dep.sourceUrl);\n if (parsed.filepathtype === 'tree' && parsed.filepath !== '') {\n dep.sourceUrl = parsed.toString();\n dep.sourceDirectory = parsed.filepath;\n }\n } catch {\n // ignore invalid urls\n }\n }\n\n if (\n !dep.sourceUrl &&\n dep.changelogUrl &&\n detectPlatform(dep.changelogUrl) === 'github'\n ) {\n dep.sourceUrl = dep.changelogUrl;\n }\n\n if (!dep.sourceUrl && dep.homepage) {\n const platform = detectPlatform(dep.homepage);\n if (platform === 'github' || platform === 'gitlab') {\n dep.sourceUrl = dep.homepage;\n }\n }\n const extraBaseUrls = [];\n // istanbul ignore next\n hostRules.hosts({ hostType: 'github' }).forEach((host) => {\n extraBaseUrls.push(host, `gist.${host}`);\n });\n extraBaseUrls.push('gitlab.com');\n if (dep.sourceUrl) {\n // try massaging it\n const massagedUrl = massageUrl(dep.sourceUrl);\n if (is.emptyString(massagedUrl)) {\n delete dep.sourceUrl;\n } else {\n // parse from github-url-from-git only supports Github URLs as its name implies\n dep.sourceUrl =\n parse(massagedUrl, {\n extraBaseUrls,\n }) || dep.sourceUrl;\n // prefer massaged URL to source URL if the latter does not start with http:// or https://\n // (e.g. git@somehost.com) and the detected platform is gitlab.\n // this allows to retrieve changelogs from git hosts other than Github\n if (\n !isHttpUrl(dep.sourceUrl) &&\n detectPlatform(massagedUrl) === 'gitlab'\n ) {\n dep.sourceUrl = massagedUrl;\n }\n }\n }\n if (shouldDeleteHomepage(dep.sourceUrl, dep.homepage)) {\n delete dep.homepage;\n }\n // Clean up any empty urls\n const urlKeys: (keyof ReleaseResult)[] = [\n 'homepage',\n 'sourceUrl',\n 'changelogUrl',\n 'dependencyUrl',\n ];\n for (const urlKey of urlKeys) {\n const urlVal = dep[urlKey];\n if (is.string(urlVal) && isHttpUrl(urlVal.trim())) {\n dep[urlKey] = urlVal.trim() as never;\n } else {\n delete dep[urlKey];\n }\n }\n}\n\n/**\n * Returns true if\n * 1. it's a github or gitlab url and not a path within the repo.\n * 2. it's equal to sourceURl\n * @param sourceUrl\n * @param homepage\n */\nexport function shouldDeleteHomepage(\n sourceUrl: string | null | undefined,\n homepage: string | undefined,\n): boolean {\n if (is.nullOrUndefined(sourceUrl) || is.undefined(homepage)) {\n return false;\n }\n const massagedSourceUrl = massageUrl(sourceUrl);\n const platform = detectPlatform(homepage);\n if (platform === 'github' || platform === 'gitlab') {\n const sourceUrlParsed = parseUrl(massagedSourceUrl);\n if (is.nullOrUndefined(sourceUrlParsed)) {\n return false;\n }\n const homepageParsed = parseUrl(homepage);\n return (\n homepageParsed !== null &&\n trimTrailingSlash(homepageParsed.pathname) ===\n trimTrailingSlash(sourceUrlParsed.pathname)\n );\n }\n return massagedSourceUrl === homepage;\n}\n"]}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../lib/modules/datasource/metadata.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n isEmptyString,\n isNullOrUndefined,\n isString,\n isUndefined,\n} from '@sindresorhus/is';\nimport parse from 'github-url-from-git';\nimport { detectPlatform } from '../../util/common';\nimport { parseGitUrl } from '../../util/git/url';\nimport * as hostRules from '../../util/host-rules';\nimport { regEx } from '../../util/regex';\nimport { asTimestamp } from '../../util/timestamp';\nimport { isHttpUrl, parseUrl, trimTrailingSlash } from '../../util/url';\nimport { manualChangelogUrls, manualSourceUrls } from './metadata-manual';\nimport type { ReleaseResult } from './types';\n\nconst githubPages = regEx('^https://([^.]+).github.com/([^/]+)$');\nconst gitPrefix = regEx('^git:/?/?');\n\nexport function massageUrl(sourceUrl: string): string {\n // Replace git@ sourceUrl with https so hostname can be parsed\n const massagedUrl = massageGitAtUrl(sourceUrl);\n\n // Check if URL is valid\n const parsedUrl = parseUrl(massagedUrl);\n if (!parsedUrl) {\n return '';\n }\n\n if (detectPlatform(massagedUrl) === 'gitlab') {\n return massageGitlabUrl(sourceUrl);\n }\n return massageGithubUrl(sourceUrl);\n}\n\nexport function massageGithubUrl(url: string): string {\n const massagedUrl = massageGitAtUrl(url);\n\n return massagedUrl\n .replace('http:', 'https:')\n .replace('http+git:', 'https:')\n .replace('https+git:', 'https:')\n .replace('ssh://git@', 'https://')\n .replace(gitPrefix, 'https://')\n .replace(githubPages, 'https://github.com/$1/$2')\n .replace('www.github.com', 'github.com')\n .split('/')\n .slice(0, 5)\n .join('/');\n}\n\nexport function massageGitlabUrl(url: string): string {\n const massagedUrl = massageGitAtUrl(url);\n\n return massagedUrl\n .replace('http:', 'https:')\n .replace(gitPrefix, 'https://')\n .replace(regEx(/\\/tree\\/.*$/i), '')\n .replace(regEx(/\\/$/i), '')\n .replace(regEx(/\\.git$/i), '');\n}\n\nfunction massageGitAtUrl(url: string): string {\n let massagedUrl = url;\n\n if (url.startsWith('git@')) {\n massagedUrl = url.replace(':', '/').replace('git@', 'https://');\n }\n return massagedUrl;\n}\n\nfunction massageTimestamps(dep: ReleaseResult): void {\n for (const release of dep.releases || []) {\n let { releaseTimestamp } = release;\n delete release.releaseTimestamp;\n releaseTimestamp = asTimestamp(releaseTimestamp);\n if (releaseTimestamp) {\n release.releaseTimestamp = releaseTimestamp;\n }\n }\n}\n\nexport function addMetaData(\n dep: ReleaseResult,\n datasource: string,\n packageName: string,\n): void {\n massageTimestamps(dep);\n\n const packageNameLowercase = packageName.toLowerCase();\n const manualChangelogUrl =\n manualChangelogUrls[datasource]?.[packageNameLowercase];\n if (manualChangelogUrl) {\n dep.changelogUrl = manualChangelogUrl;\n }\n\n const manualSourceUrl = manualSourceUrls[datasource]?.[packageNameLowercase];\n if (manualSourceUrl) {\n dep.sourceUrl = manualSourceUrl;\n }\n\n if (dep.sourceUrl && !dep.sourceDirectory) {\n try {\n const parsed = parseGitUrl(dep.sourceUrl);\n if (parsed.filepathtype === 'tree' && parsed.filepath !== '') {\n dep.sourceUrl = parsed.toString();\n dep.sourceDirectory = parsed.filepath;\n }\n } catch {\n // ignore invalid urls\n }\n }\n\n if (\n !dep.sourceUrl &&\n dep.changelogUrl &&\n detectPlatform(dep.changelogUrl) === 'github'\n ) {\n dep.sourceUrl = dep.changelogUrl;\n }\n\n if (!dep.sourceUrl && dep.homepage) {\n const platform = detectPlatform(dep.homepage);\n if (platform === 'github' || platform === 'gitlab') {\n dep.sourceUrl = dep.homepage;\n }\n }\n const extraBaseUrls = [];\n // istanbul ignore next\n hostRules.hosts({ hostType: 'github' }).forEach((host) => {\n extraBaseUrls.push(host, `gist.${host}`);\n });\n extraBaseUrls.push('gitlab.com');\n if (dep.sourceUrl) {\n // try massaging it\n const massagedUrl = massageUrl(dep.sourceUrl);\n if (isEmptyString(massagedUrl)) {\n delete dep.sourceUrl;\n } else {\n // parse from github-url-from-git only supports Github URLs as its name implies\n dep.sourceUrl =\n parse(massagedUrl, {\n extraBaseUrls,\n }) || dep.sourceUrl;\n // prefer massaged URL to source URL if the latter does not start with http:// or https://\n // (e.g. git@somehost.com) and the detected platform is gitlab.\n // this allows to retrieve changelogs from git hosts other than Github\n if (\n !isHttpUrl(dep.sourceUrl) &&\n detectPlatform(massagedUrl) === 'gitlab'\n ) {\n dep.sourceUrl = massagedUrl;\n }\n }\n }\n if (shouldDeleteHomepage(dep.sourceUrl, dep.homepage)) {\n delete dep.homepage;\n }\n // Clean up any empty urls\n const urlKeys: (keyof ReleaseResult)[] = [\n 'homepage',\n 'sourceUrl',\n 'changelogUrl',\n 'dependencyUrl',\n ];\n for (const urlKey of urlKeys) {\n const urlVal = dep[urlKey];\n if (isString(urlVal) && isHttpUrl(urlVal.trim())) {\n dep[urlKey] = urlVal.trim() as never;\n } else {\n delete dep[urlKey];\n }\n }\n}\n\n/**\n * Returns true if\n * 1. it's a github or gitlab url and not a path within the repo.\n * 2. it's equal to sourceURl\n * @param sourceUrl\n * @param homepage\n */\nexport function shouldDeleteHomepage(\n sourceUrl: string | null | undefined,\n homepage: string | undefined,\n): boolean {\n if (isNullOrUndefined(sourceUrl) || isUndefined(homepage)) {\n return false;\n }\n const massagedSourceUrl = massageUrl(sourceUrl);\n const platform = detectPlatform(homepage);\n if (platform === 'github' || platform === 'gitlab') {\n const sourceUrlParsed = parseUrl(massagedSourceUrl);\n if (isNullOrUndefined(sourceUrlParsed)) {\n return false;\n }\n const homepageParsed = parseUrl(homepage);\n return (\n homepageParsed !== null &&\n trimTrailingSlash(homepageParsed.pathname) ===\n trimTrailingSlash(sourceUrlParsed.pathname)\n );\n }\n return massagedSourceUrl === homepage;\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDependency = getDependency;
4
4
  const tslib_1 = require("tslib");
5
- const is_1 = tslib_1.__importStar(require("@sindresorhus/is"));
5
+ const is_1 = require("@sindresorhus/is");
6
6
  const zod_1 = require("zod");
7
7
  const error_messages_1 = require("../../../constants/error-messages");
8
8
  const logger_1 = require("../../../logger");
@@ -116,7 +116,7 @@ async function getDependency(http, registryUrl, packageName) {
116
116
  release.isDeprecated = true;
117
117
  }
118
118
  const nodeConstraint = res.versions?.[version].engines?.node;
119
- if (is_1.default.nonEmptyString(nodeConstraint)) {
119
+ if ((0, is_1.isNonEmptyString)(nodeConstraint)) {
120
120
  release.constraints = { node: [nodeConstraint] };
121
121
  }
122
122
  const source = PackageSource.parse(res.versions?.[version].repository);
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/npm/get.ts"],"names":[],"mappings":"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","sourcesContent":["import is, { isString } from '@sindresorhus/is';\nimport { z } from 'zod';\nimport { HOST_DISABLED } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport * as hostRules from '../../../util/host-rules';\nimport type { Http } from '../../../util/http';\nimport { PackageHttpCacheProvider } from '../../../util/http/cache/package-http-cache-provider';\nimport type { HttpOptions } from '../../../util/http/types';\nimport { regEx } from '../../../util/regex';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { joinUrlParts } from '../../../util/url';\nimport type { Release, ReleaseResult } from '../types';\nimport type { NpmResponse } from './types';\n\nconst SHORT_REPO_REGEX = regEx(\n /^((?<platform>bitbucket|github|gitlab):)?(?<shortRepo>[A-Za-z0-9_.-]+\\/[A-Za-z0-9_.-]+)$/,\n);\n\nconst platformMapping: Record<string, string> = {\n bitbucket: 'https://bitbucket.org/',\n github: 'https://github.com/',\n gitlab: 'https://gitlab.com/',\n};\n\ninterface PackageSource {\n sourceUrl: string | null;\n sourceDirectory: string | null;\n}\n\nconst PackageSource = z\n .union([\n z\n .string()\n .nonempty()\n .transform((repository): PackageSource => {\n let sourceUrl: string | null = null;\n const sourceDirectory = null;\n const shortMatch = repository.match(SHORT_REPO_REGEX);\n if (shortMatch?.groups) {\n const { platform = 'github', shortRepo } = shortMatch.groups;\n sourceUrl = platformMapping[platform] + shortRepo;\n } else {\n sourceUrl = repository;\n }\n return { sourceUrl, sourceDirectory };\n }),\n z\n .object({\n url: z.string().nonempty().nullish(),\n directory: z.string().nonempty().nullish(),\n })\n .transform(({ url, directory }) => {\n const res: PackageSource = { sourceUrl: null, sourceDirectory: null };\n\n if (url) {\n res.sourceUrl = url;\n }\n\n if (directory) {\n res.sourceDirectory = directory;\n }\n\n return res;\n }),\n ])\n .catch({ sourceUrl: null, sourceDirectory: null });\n\nexport async function getDependency(\n http: Http,\n registryUrl: string,\n packageName: string,\n): Promise<ReleaseResult | null> {\n logger.trace(`npm.getDependency(${packageName})`);\n\n const packageUrl = joinUrlParts(registryUrl, packageName.replace('/', '%2F'));\n\n try {\n const cacheProvider = new PackageHttpCacheProvider({\n namespace: 'datasource-npm:cache-provider',\n checkAuthorizationHeader: false, // We don't rely on whether user token is provided or not\n checkCacheControlHeader: true,\n });\n const options: HttpOptions = { cacheProvider };\n\n // set abortOnError for registry.npmjs.org if no hostRule with explicit abortOnError exists\n if (\n registryUrl === 'https://registry.npmjs.org' &&\n hostRules.find({ url: 'https://registry.npmjs.org' })?.abortOnError ===\n undefined\n ) {\n logger.trace(\n { packageName, registry: 'https://registry.npmjs.org' },\n 'setting abortOnError hostRule for well known host',\n );\n hostRules.add({\n matchHost: 'https://registry.npmjs.org',\n abortOnError: true,\n });\n }\n\n const resp = await http.getJsonUnchecked<NpmResponse>(packageUrl, options);\n const { body: res } = resp;\n if (!res.versions || !Object.keys(res.versions).length) {\n // Registry returned a 200 OK but with no versions\n logger.debug(`No versions returned for npm dependency ${packageName}`);\n return null;\n }\n\n const latestVersion = res.versions[res['dist-tags']?.latest ?? ''];\n res.repository ??= latestVersion?.repository;\n res.homepage ??= latestVersion?.homepage;\n\n const { sourceUrl, sourceDirectory } = PackageSource.parse(res.repository);\n\n // Simplify response before caching and returning\n const dep: ReleaseResult = {\n homepage: res.homepage,\n releases: [],\n tags: res['dist-tags'],\n registryUrl,\n };\n\n if (sourceUrl) {\n dep.sourceUrl = sourceUrl;\n }\n\n if (sourceDirectory) {\n dep.sourceDirectory = sourceDirectory;\n }\n\n if (latestVersion?.deprecated) {\n dep.deprecationMessage = `On registry \\`${registryUrl}\\`, the \"latest\" version of dependency \\`${packageName}\\` has the following deprecation notice:\\n\\n\\`${latestVersion.deprecated}\\`\\n\\nMarking the latest version of an npm package as deprecated results in the entire package being considered deprecated, so contact the package author you think this is a mistake.`;\n }\n dep.releases = Object.keys(res.versions).map((version) => {\n const release: Release = {\n version,\n gitRef: res.versions?.[version].gitHead,\n dependencies: res.versions?.[version].dependencies,\n devDependencies: res.versions?.[version].devDependencies,\n attestation: isString(res.versions?.[version].dist?.attestations?.url),\n };\n const releaseTimestamp = asTimestamp(res.time?.[version]);\n if (releaseTimestamp) {\n release.releaseTimestamp = releaseTimestamp;\n }\n if (res.versions?.[version].deprecated) {\n release.isDeprecated = true;\n }\n const nodeConstraint = res.versions?.[version].engines?.node;\n if (is.nonEmptyString(nodeConstraint)) {\n release.constraints = { node: [nodeConstraint] };\n }\n const source = PackageSource.parse(res.versions?.[version].repository);\n if (source.sourceUrl && source.sourceUrl !== dep.sourceUrl) {\n release.sourceUrl = source.sourceUrl;\n }\n if (\n source.sourceDirectory &&\n source.sourceDirectory !== dep.sourceDirectory\n ) {\n release.sourceDirectory = source.sourceDirectory;\n }\n if (dep.deprecationMessage) {\n release.isDeprecated = true;\n }\n return release;\n });\n\n const isPublic = resp.headers?.['cache-control']\n ?.toLocaleLowerCase()\n ?.split(regEx(/\\s*,\\s*/))\n ?.includes('public');\n if (!isPublic) {\n dep.isPrivate = true;\n }\n\n logger.trace({ dep }, 'dep');\n return dep;\n } catch (err) {\n const actualError = err instanceof ExternalHostError ? err.err : err;\n const ignoredStatusCodes = [401, 402, 403, 404];\n const ignoredResponseCodes = ['ENOTFOUND'];\n if (\n actualError.message === HOST_DISABLED ||\n ignoredStatusCodes.includes(actualError.statusCode) ||\n ignoredResponseCodes.includes(actualError.code)\n ) {\n return null;\n }\n\n if (err instanceof ExternalHostError) {\n if (actualError.name === 'ParseError' && actualError.body) {\n actualError.body = 'err.body deleted by Renovate';\n err.err = actualError;\n }\n throw err;\n }\n logger.debug({ err }, 'Unknown npm lookup error');\n return null;\n }\n}\n"]}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/npm/get.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNonEmptyString, isString } from '@sindresorhus/is';\nimport { z } from 'zod';\nimport { HOST_DISABLED } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport * as hostRules from '../../../util/host-rules';\nimport type { Http } from '../../../util/http';\nimport { PackageHttpCacheProvider } from '../../../util/http/cache/package-http-cache-provider';\nimport type { HttpOptions } from '../../../util/http/types';\nimport { regEx } from '../../../util/regex';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { joinUrlParts } from '../../../util/url';\nimport type { Release, ReleaseResult } from '../types';\nimport type { NpmResponse } from './types';\n\nconst SHORT_REPO_REGEX = regEx(\n /^((?<platform>bitbucket|github|gitlab):)?(?<shortRepo>[A-Za-z0-9_.-]+\\/[A-Za-z0-9_.-]+)$/,\n);\n\nconst platformMapping: Record<string, string> = {\n bitbucket: 'https://bitbucket.org/',\n github: 'https://github.com/',\n gitlab: 'https://gitlab.com/',\n};\n\ninterface PackageSource {\n sourceUrl: string | null;\n sourceDirectory: string | null;\n}\n\nconst PackageSource = z\n .union([\n z\n .string()\n .nonempty()\n .transform((repository): PackageSource => {\n let sourceUrl: string | null = null;\n const sourceDirectory = null;\n const shortMatch = repository.match(SHORT_REPO_REGEX);\n if (shortMatch?.groups) {\n const { platform = 'github', shortRepo } = shortMatch.groups;\n sourceUrl = platformMapping[platform] + shortRepo;\n } else {\n sourceUrl = repository;\n }\n return { sourceUrl, sourceDirectory };\n }),\n z\n .object({\n url: z.string().nonempty().nullish(),\n directory: z.string().nonempty().nullish(),\n })\n .transform(({ url, directory }) => {\n const res: PackageSource = { sourceUrl: null, sourceDirectory: null };\n\n if (url) {\n res.sourceUrl = url;\n }\n\n if (directory) {\n res.sourceDirectory = directory;\n }\n\n return res;\n }),\n ])\n .catch({ sourceUrl: null, sourceDirectory: null });\n\nexport async function getDependency(\n http: Http,\n registryUrl: string,\n packageName: string,\n): Promise<ReleaseResult | null> {\n logger.trace(`npm.getDependency(${packageName})`);\n\n const packageUrl = joinUrlParts(registryUrl, packageName.replace('/', '%2F'));\n\n try {\n const cacheProvider = new PackageHttpCacheProvider({\n namespace: 'datasource-npm:cache-provider',\n checkAuthorizationHeader: false, // We don't rely on whether user token is provided or not\n checkCacheControlHeader: true,\n });\n const options: HttpOptions = { cacheProvider };\n\n // set abortOnError for registry.npmjs.org if no hostRule with explicit abortOnError exists\n if (\n registryUrl === 'https://registry.npmjs.org' &&\n hostRules.find({ url: 'https://registry.npmjs.org' })?.abortOnError ===\n undefined\n ) {\n logger.trace(\n { packageName, registry: 'https://registry.npmjs.org' },\n 'setting abortOnError hostRule for well known host',\n );\n hostRules.add({\n matchHost: 'https://registry.npmjs.org',\n abortOnError: true,\n });\n }\n\n const resp = await http.getJsonUnchecked<NpmResponse>(packageUrl, options);\n const { body: res } = resp;\n if (!res.versions || !Object.keys(res.versions).length) {\n // Registry returned a 200 OK but with no versions\n logger.debug(`No versions returned for npm dependency ${packageName}`);\n return null;\n }\n\n const latestVersion = res.versions[res['dist-tags']?.latest ?? ''];\n res.repository ??= latestVersion?.repository;\n res.homepage ??= latestVersion?.homepage;\n\n const { sourceUrl, sourceDirectory } = PackageSource.parse(res.repository);\n\n // Simplify response before caching and returning\n const dep: ReleaseResult = {\n homepage: res.homepage,\n releases: [],\n tags: res['dist-tags'],\n registryUrl,\n };\n\n if (sourceUrl) {\n dep.sourceUrl = sourceUrl;\n }\n\n if (sourceDirectory) {\n dep.sourceDirectory = sourceDirectory;\n }\n\n if (latestVersion?.deprecated) {\n dep.deprecationMessage = `On registry \\`${registryUrl}\\`, the \"latest\" version of dependency \\`${packageName}\\` has the following deprecation notice:\\n\\n\\`${latestVersion.deprecated}\\`\\n\\nMarking the latest version of an npm package as deprecated results in the entire package being considered deprecated, so contact the package author you think this is a mistake.`;\n }\n dep.releases = Object.keys(res.versions).map((version) => {\n const release: Release = {\n version,\n gitRef: res.versions?.[version].gitHead,\n dependencies: res.versions?.[version].dependencies,\n devDependencies: res.versions?.[version].devDependencies,\n attestation: isString(res.versions?.[version].dist?.attestations?.url),\n };\n const releaseTimestamp = asTimestamp(res.time?.[version]);\n if (releaseTimestamp) {\n release.releaseTimestamp = releaseTimestamp;\n }\n if (res.versions?.[version].deprecated) {\n release.isDeprecated = true;\n }\n const nodeConstraint = res.versions?.[version].engines?.node;\n if (isNonEmptyString(nodeConstraint)) {\n release.constraints = { node: [nodeConstraint] };\n }\n const source = PackageSource.parse(res.versions?.[version].repository);\n if (source.sourceUrl && source.sourceUrl !== dep.sourceUrl) {\n release.sourceUrl = source.sourceUrl;\n }\n if (\n source.sourceDirectory &&\n source.sourceDirectory !== dep.sourceDirectory\n ) {\n release.sourceDirectory = source.sourceDirectory;\n }\n if (dep.deprecationMessage) {\n release.isDeprecated = true;\n }\n return release;\n });\n\n const isPublic = resp.headers?.['cache-control']\n ?.toLocaleLowerCase()\n ?.split(regEx(/\\s*,\\s*/))\n ?.includes('public');\n if (!isPublic) {\n dep.isPrivate = true;\n }\n\n logger.trace({ dep }, 'dep');\n return dep;\n } catch (err) {\n const actualError = err instanceof ExternalHostError ? err.err : err;\n const ignoredStatusCodes = [401, 402, 403, 404];\n const ignoredResponseCodes = ['ENOTFOUND'];\n if (\n actualError.message === HOST_DISABLED ||\n ignoredStatusCodes.includes(actualError.statusCode) ||\n ignoredResponseCodes.includes(actualError.code)\n ) {\n return null;\n }\n\n if (err instanceof ExternalHostError) {\n if (actualError.name === 'ParseError' && actualError.body) {\n actualError.body = 'err.body deleted by Renovate';\n err.err = actualError;\n }\n throw err;\n }\n logger.debug({ err }, 'Unknown npm lookup error');\n return null;\n }\n}\n"]}
@@ -7,7 +7,7 @@ exports.resolveRegistryUrl = resolveRegistryUrl;
7
7
  exports.resolvePackageUrl = resolvePackageUrl;
8
8
  const tslib_1 = require("tslib");
9
9
  const node_url_1 = tslib_1.__importDefault(require("node:url"));
10
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
10
+ const is_1 = require("@sindresorhus/is");
11
11
  const ini_1 = tslib_1.__importDefault(require("ini"));
12
12
  const global_1 = require("../../../config/global");
13
13
  const logger_1 = require("../../../logger");
@@ -22,7 +22,7 @@ let npmrcRaw = '';
22
22
  let packageRules = [];
23
23
  function envReplace(value, env = (0, env_1.getEnv)()) {
24
24
  /* v8 ignore next 3 -- TODO: add test */
25
- if (!is_1.default.string(value)) {
25
+ if (!(0, is_1.isString)(value)) {
26
26
  return value;
27
27
  }
28
28
  const ENV_EXPR = (0, regex_1.regEx)(/(\\*)\$\{([^}]+)\}/g);
@@ -53,7 +53,7 @@ function convertNpmrcToRules(npmrc) {
53
53
  const hostType = 'npm';
54
54
  const hosts = {};
55
55
  for (const [key, value] of Object.entries(npmrc)) {
56
- if (!is_1.default.nonEmptyString(value)) {
56
+ if (!(0, is_1.isNonEmptyString)(value)) {
57
57
  continue;
58
58
  }
59
59
  const keyParts = key.split(':');
@@ -91,7 +91,7 @@ function convertNpmrcToRules(npmrc) {
91
91
  const matchDatasources = ['npm'];
92
92
  const { registry } = npmrc;
93
93
  // packageRules order matters, so look for a default registry first
94
- if (is_1.default.nonEmptyString(registry)) {
94
+ if ((0, is_1.isNonEmptyString)(registry)) {
95
95
  if ((0, url_1.isHttpUrl)(registry)) {
96
96
  // Default registry
97
97
  rules.packageRules?.push({
@@ -105,12 +105,12 @@ function convertNpmrcToRules(npmrc) {
105
105
  }
106
106
  // Now look for scoped registries
107
107
  for (const [key, value] of Object.entries(npmrc)) {
108
- if (!is_1.default.nonEmptyString(value)) {
108
+ if (!(0, is_1.isNonEmptyString)(value)) {
109
109
  continue;
110
110
  }
111
111
  const keyParts = key.split(':');
112
112
  const keyType = keyParts.pop();
113
- if (keyType === 'registry' && keyParts.length && is_1.default.nonEmptyString(value)) {
113
+ if (keyType === 'registry' && keyParts.length && (0, is_1.isNonEmptyString)(value)) {
114
114
  const scope = keyParts.join(':');
115
115
  if ((0, url_1.isHttpUrl)(value)) {
116
116
  rules.packageRules?.push({
@@ -139,7 +139,7 @@ function setNpmrc(input) {
139
139
  for (const [key, val] of Object.entries(npmrc)) {
140
140
  if (!exposeAllEnv &&
141
141
  key.endsWith('registry') &&
142
- is_1.default.string(val) &&
142
+ (0, is_1.isString)(val) &&
143
143
  val.includes('localhost')) {
144
144
  logger_1.logger.debug({ key, val }, 'Detected localhost registry - rejecting npmrc file');
145
145
  npmrc = existingNpmrc;