renovate 42.0.0-next.2 → 42.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (778) hide show
  1. package/dist/config/app-strings.d.ts +2 -1
  2. package/dist/config/app-strings.js +10 -2
  3. package/dist/config/app-strings.js.map +1 -1
  4. package/dist/config/decrypt/bcpgp.d.ts +1 -0
  5. package/dist/config/decrypt/bcpgp.js +57 -0
  6. package/dist/config/decrypt/bcpgp.js.map +1 -0
  7. package/dist/config/decrypt/openpgp.js +0 -4
  8. package/dist/config/decrypt/openpgp.js.map +1 -1
  9. package/dist/config/decrypt.d.ts +1 -1
  10. package/dist/config/decrypt.js +9 -26
  11. package/dist/config/decrypt.js.map +1 -1
  12. package/dist/config/global.js +1 -0
  13. package/dist/config/global.js.map +1 -1
  14. package/dist/config/migrations/custom/schedule-migration.js +9 -11
  15. package/dist/config/migrations/custom/schedule-migration.js.map +1 -1
  16. package/dist/config/migrations/custom/unpublish-safe-migration.js +3 -2
  17. package/dist/config/migrations/custom/unpublish-safe-migration.js.map +1 -1
  18. package/dist/config/options/index.js +49 -2
  19. package/dist/config/options/index.js.map +1 -1
  20. package/dist/config/presets/common.js +1 -0
  21. package/dist/config/presets/common.js.map +1 -1
  22. package/dist/config/presets/internal/abandonments.js +4 -1
  23. package/dist/config/presets/internal/abandonments.js.map +1 -1
  24. package/dist/config/presets/internal/config.js +15 -0
  25. package/dist/config/presets/internal/config.js.map +1 -1
  26. package/dist/config/presets/internal/custom-managers.js +2 -2
  27. package/dist/config/presets/internal/custom-managers.js.map +1 -1
  28. package/dist/config/presets/internal/default.js +12 -1
  29. package/dist/config/presets/internal/default.js.map +1 -1
  30. package/dist/config/presets/internal/group.js +13 -0
  31. package/dist/config/presets/internal/group.js.map +1 -1
  32. package/dist/config/presets/internal/npm.js +1 -8
  33. package/dist/config/presets/internal/npm.js.map +1 -1
  34. package/dist/config/presets/internal/packages.js +5 -1
  35. package/dist/config/presets/internal/packages.js.map +1 -1
  36. package/dist/config/presets/internal/security.js +8 -0
  37. package/dist/config/presets/internal/security.js.map +1 -1
  38. package/dist/config/presets/internal/workarounds.js +2 -2
  39. package/dist/config/presets/internal/workarounds.js.map +1 -1
  40. package/dist/config/schema.d.ts +1 -1
  41. package/dist/config/secrets.js +2 -2
  42. package/dist/config/secrets.js.map +1 -1
  43. package/dist/config/types.d.ts +26 -1
  44. package/dist/config/types.js.map +1 -1
  45. package/dist/config/validation.js +4 -3
  46. package/dist/config/validation.js.map +1 -1
  47. package/dist/config-validator.js +1 -1
  48. package/dist/config-validator.js.map +1 -1
  49. package/dist/constants/platforms.js +1 -0
  50. package/dist/constants/platforms.js.map +1 -1
  51. package/dist/data/monorepo.json +13 -2
  52. package/dist/data/node-js-schedule.json +1 -1
  53. package/dist/data/replacements.json +34 -0
  54. package/dist/data-files.generated.js +3 -3
  55. package/dist/data-files.generated.js.map +1 -1
  56. package/dist/logger/renovate-logger.d.ts +1 -0
  57. package/dist/logger/renovate-logger.js +3 -0
  58. package/dist/logger/renovate-logger.js.map +1 -1
  59. package/dist/logger/utils.js +2 -1
  60. package/dist/logger/utils.js.map +1 -1
  61. package/dist/manager-list.generated.d.ts +1 -1
  62. package/dist/manager-list.generated.js +1 -1
  63. package/dist/manager-list.generated.js.map +1 -1
  64. package/dist/modules/datasource/api.js +4 -0
  65. package/dist/modules/datasource/api.js.map +1 -1
  66. package/dist/modules/datasource/aws-eks-addon/schema.d.ts +1 -8
  67. package/dist/modules/datasource/aws-eks-addon/schema.js +7 -5
  68. package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -1
  69. package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +12 -12
  70. package/dist/modules/datasource/bitrise/schema.d.ts +1 -1
  71. package/dist/modules/datasource/buildpacks-registry/index.js +1 -1
  72. package/dist/modules/datasource/buildpacks-registry/index.js.map +1 -1
  73. package/dist/modules/datasource/buildpacks-registry/schema.d.ts +1 -1
  74. package/dist/modules/datasource/buildpacks-registry/schema.js +2 -2
  75. package/dist/modules/datasource/buildpacks-registry/schema.js.map +1 -1
  76. package/dist/modules/datasource/cdnjs/index.js +2 -2
  77. package/dist/modules/datasource/cdnjs/index.js.map +1 -1
  78. package/dist/modules/datasource/cdnjs/schema.d.ts +8 -8
  79. package/dist/modules/datasource/cdnjs/schema.js +3 -3
  80. package/dist/modules/datasource/cdnjs/schema.js.map +1 -1
  81. package/dist/modules/datasource/conan/schema.d.ts +3 -3
  82. package/dist/modules/datasource/conda/prefix-dev.js +1 -1
  83. package/dist/modules/datasource/conda/prefix-dev.js.map +1 -1
  84. package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +7 -7
  85. package/dist/modules/datasource/conda/schema/prefix-dev.js +2 -2
  86. package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -1
  87. package/dist/modules/datasource/cpan/schema.js +2 -2
  88. package/dist/modules/datasource/cpan/schema.js.map +1 -1
  89. package/dist/modules/datasource/crate/index.js +12 -11
  90. package/dist/modules/datasource/crate/index.js.map +1 -1
  91. package/dist/modules/datasource/crate/schema.d.ts +1 -1
  92. package/dist/modules/datasource/crate/schema.js +2 -2
  93. package/dist/modules/datasource/crate/schema.js.map +1 -1
  94. package/dist/modules/datasource/custom/index.d.ts +1 -1
  95. package/dist/modules/datasource/custom/index.js +2 -2
  96. package/dist/modules/datasource/custom/index.js.map +1 -1
  97. package/dist/modules/datasource/custom/schema.d.ts +1 -1
  98. package/dist/modules/datasource/custom/schema.js +2 -2
  99. package/dist/modules/datasource/custom/schema.js.map +1 -1
  100. package/dist/modules/datasource/docker/index.d.ts +1 -1
  101. package/dist/modules/datasource/docker/index.js +4 -1
  102. package/dist/modules/datasource/docker/index.js.map +1 -1
  103. package/dist/modules/datasource/docker/schema.d.ts +4 -4
  104. package/dist/modules/datasource/forgejo-releases/index.js +3 -3
  105. package/dist/modules/datasource/forgejo-releases/index.js.map +1 -1
  106. package/dist/modules/datasource/forgejo-releases/schema.d.ts +6 -6
  107. package/dist/modules/datasource/forgejo-releases/schema.js +3 -3
  108. package/dist/modules/datasource/forgejo-releases/schema.js.map +1 -1
  109. package/dist/modules/datasource/forgejo-tags/index.js +3 -3
  110. package/dist/modules/datasource/forgejo-tags/index.js.map +1 -1
  111. package/dist/modules/datasource/forgejo-tags/schema.d.ts +4 -4
  112. package/dist/modules/datasource/forgejo-tags/schema.js +7 -7
  113. package/dist/modules/datasource/forgejo-tags/schema.js.map +1 -1
  114. package/dist/modules/datasource/gitea-releases/index.js +3 -3
  115. package/dist/modules/datasource/gitea-releases/index.js.map +1 -1
  116. package/dist/modules/datasource/gitea-releases/schema.d.ts +6 -6
  117. package/dist/modules/datasource/gitea-releases/schema.js +3 -3
  118. package/dist/modules/datasource/gitea-releases/schema.js.map +1 -1
  119. package/dist/modules/datasource/gitea-tags/index.js +3 -3
  120. package/dist/modules/datasource/gitea-tags/index.js.map +1 -1
  121. package/dist/modules/datasource/gitea-tags/schema.d.ts +4 -4
  122. package/dist/modules/datasource/gitea-tags/schema.js +7 -7
  123. package/dist/modules/datasource/gitea-tags/schema.js.map +1 -1
  124. package/dist/modules/datasource/github-runners/index.js +5 -3
  125. package/dist/modules/datasource/github-runners/index.js.map +1 -1
  126. package/dist/modules/datasource/go/base.js +3 -2
  127. package/dist/modules/datasource/go/base.js.map +1 -1
  128. package/dist/modules/datasource/go/common.js +13 -9
  129. package/dist/modules/datasource/go/common.js.map +1 -1
  130. package/dist/modules/datasource/go/index.js +7 -2
  131. package/dist/modules/datasource/go/index.js.map +1 -1
  132. package/dist/modules/datasource/go/releases-direct.d.ts +2 -0
  133. package/dist/modules/datasource/go/releases-direct.js +7 -1
  134. package/dist/modules/datasource/go/releases-direct.js.map +1 -1
  135. package/dist/modules/datasource/go/releases-goproxy.js +1 -1
  136. package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
  137. package/dist/modules/datasource/helm/index.js +1 -1
  138. package/dist/modules/datasource/helm/index.js.map +1 -1
  139. package/dist/modules/datasource/helm/schema.d.ts +2 -2
  140. package/dist/modules/datasource/helm/schema.js +4 -4
  141. package/dist/modules/datasource/helm/schema.js.map +1 -1
  142. package/dist/modules/datasource/jsr/common.d.ts +1 -0
  143. package/dist/modules/datasource/jsr/common.js +12 -0
  144. package/dist/modules/datasource/jsr/common.js.map +1 -0
  145. package/dist/modules/datasource/jsr/index.d.ts +12 -0
  146. package/dist/modules/datasource/jsr/index.js +66 -0
  147. package/dist/modules/datasource/jsr/index.js.map +1 -0
  148. package/dist/modules/datasource/jsr/schema.d.ts +27 -0
  149. package/dist/modules/datasource/jsr/schema.js +20 -0
  150. package/dist/modules/datasource/jsr/schema.js.map +1 -0
  151. package/dist/modules/datasource/jsr/util.d.ts +4 -0
  152. package/dist/modules/datasource/jsr/util.js +53 -0
  153. package/dist/modules/datasource/jsr/util.js.map +1 -0
  154. package/dist/modules/datasource/maven/index.js +14 -0
  155. package/dist/modules/datasource/maven/index.js.map +1 -1
  156. package/dist/modules/datasource/maven/util.js +10 -0
  157. package/dist/modules/datasource/maven/util.js.map +1 -1
  158. package/dist/modules/datasource/npm/get.js +2 -1
  159. package/dist/modules/datasource/npm/get.js.map +1 -1
  160. package/dist/modules/datasource/npm/types.d.ts +7 -0
  161. package/dist/modules/datasource/npm/types.js.map +1 -1
  162. package/dist/modules/datasource/nuget/v3.js +3 -1
  163. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  164. package/dist/modules/datasource/packagist/schema.d.ts +12 -12
  165. package/dist/modules/datasource/pypi/index.d.ts +1 -0
  166. package/dist/modules/datasource/pypi/index.js +1 -0
  167. package/dist/modules/datasource/pypi/index.js.map +1 -1
  168. package/dist/modules/datasource/python-version/schema.d.ts +3 -3
  169. package/dist/modules/datasource/rpm/index.d.ts +7 -0
  170. package/dist/modules/datasource/rpm/index.js +7 -0
  171. package/dist/modules/datasource/rpm/index.js.map +1 -1
  172. package/dist/modules/datasource/types.d.ts +2 -0
  173. package/dist/modules/datasource/types.js.map +1 -1
  174. package/dist/modules/datasource/typst/index.d.ts +11 -0
  175. package/dist/modules/datasource/typst/index.js +65 -0
  176. package/dist/modules/datasource/typst/index.js.map +1 -0
  177. package/dist/modules/datasource/typst/schema.d.ts +31 -0
  178. package/dist/modules/datasource/typst/schema.js +28 -0
  179. package/dist/modules/datasource/typst/schema.js.map +1 -0
  180. package/dist/modules/datasource/unity3d-packages/schema.d.ts +4 -4
  181. package/dist/modules/manager/api.js +6 -0
  182. package/dist/modules/manager/api.js.map +1 -1
  183. package/dist/modules/manager/argocd/extract.js +1 -1
  184. package/dist/modules/manager/argocd/extract.js.map +1 -1
  185. package/dist/modules/manager/argocd/schema.d.ts +1 -1
  186. package/dist/modules/manager/argocd/schema.js +2 -2
  187. package/dist/modules/manager/argocd/schema.js.map +1 -1
  188. package/dist/modules/manager/azure-pipelines/schema.d.ts +1 -1
  189. package/dist/modules/manager/batect/extract.js +1 -1
  190. package/dist/modules/manager/batect/extract.js.map +1 -1
  191. package/dist/modules/manager/batect/schema.d.ts +4 -4
  192. package/dist/modules/manager/batect/schema.js +2 -2
  193. package/dist/modules/manager/batect/schema.js.map +1 -1
  194. package/dist/modules/manager/bazel/rules/docker.d.ts +3 -3
  195. package/dist/modules/manager/bazel/rules/git.d.ts +5 -5
  196. package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
  197. package/dist/modules/manager/bazel/rules/oci.d.ts +3 -3
  198. package/dist/modules/manager/bazel-module/extract.js +5 -0
  199. package/dist/modules/manager/bazel-module/extract.js.map +1 -1
  200. package/dist/modules/manager/bazel-module/parser/context.d.ts +6 -0
  201. package/dist/modules/manager/bazel-module/parser/context.js +42 -2
  202. package/dist/modules/manager/bazel-module/parser/context.js.map +1 -1
  203. package/dist/modules/manager/bazel-module/parser/fragments.d.ts +276 -112
  204. package/dist/modules/manager/bazel-module/parser/fragments.js +70 -32
  205. package/dist/modules/manager/bazel-module/parser/fragments.js.map +1 -1
  206. package/dist/modules/manager/bazel-module/parser/index.js +3 -1
  207. package/dist/modules/manager/bazel-module/parser/index.js.map +1 -1
  208. package/dist/modules/manager/bazel-module/parser/maven.d.ts +27 -27
  209. package/dist/modules/manager/bazel-module/parser/maven.js +7 -7
  210. package/dist/modules/manager/bazel-module/parser/maven.js.map +1 -1
  211. package/dist/modules/manager/bazel-module/parser/oci.d.ts +38 -38
  212. package/dist/modules/manager/bazel-module/parser/oci.js +5 -5
  213. package/dist/modules/manager/bazel-module/parser/oci.js.map +1 -1
  214. package/dist/modules/manager/bazel-module/parser/repo-rules.d.ts +5 -0
  215. package/dist/modules/manager/bazel-module/parser/repo-rules.js +71 -0
  216. package/dist/modules/manager/bazel-module/parser/repo-rules.js.map +1 -0
  217. package/dist/modules/manager/bazel-module/rules-img.d.ts +229 -0
  218. package/dist/modules/manager/bazel-module/rules-img.js +74 -0
  219. package/dist/modules/manager/bazel-module/rules-img.js.map +1 -0
  220. package/dist/modules/manager/bazel-module/rules.d.ts +101 -101
  221. package/dist/modules/manager/bazel-module/rules.js +18 -18
  222. package/dist/modules/manager/bazel-module/rules.js.map +1 -1
  223. package/dist/modules/manager/bitrise/schema.d.ts +1 -1
  224. package/dist/modules/manager/bun/artifacts.js +5 -4
  225. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  226. package/dist/modules/manager/bundler/locked-version.js +44 -23
  227. package/dist/modules/manager/bundler/locked-version.js.map +1 -1
  228. package/dist/modules/manager/cargo/artifacts.js +15 -11
  229. package/dist/modules/manager/cargo/artifacts.js.map +1 -1
  230. package/dist/modules/manager/cargo/extract.js +6 -3
  231. package/dist/modules/manager/cargo/extract.js.map +1 -1
  232. package/dist/modules/manager/cargo/index.d.ts +0 -1
  233. package/dist/modules/manager/cargo/index.js +11 -4
  234. package/dist/modules/manager/cargo/index.js.map +1 -1
  235. package/dist/modules/manager/cargo/locked-version.d.ts +2 -2
  236. package/dist/modules/manager/cargo/locked-version.js +1 -1
  237. package/dist/modules/manager/cargo/locked-version.js.map +1 -1
  238. package/dist/modules/manager/cargo/schema.d.ts +206 -35
  239. package/dist/modules/manager/cargo/schema.js +26 -18
  240. package/dist/modules/manager/cargo/schema.js.map +1 -1
  241. package/dist/modules/manager/cloudbuild/schema.d.ts +1 -1
  242. package/dist/modules/manager/composer/schema.d.ts +98 -98
  243. package/dist/modules/manager/conan/artifacts.js +12 -2
  244. package/dist/modules/manager/conan/artifacts.js.map +1 -1
  245. package/dist/modules/manager/conan/extract.js +1 -1
  246. package/dist/modules/manager/conan/extract.js.map +1 -1
  247. package/dist/modules/manager/conan/index.d.ts +0 -1
  248. package/dist/modules/manager/conan/index.js +0 -1
  249. package/dist/modules/manager/conan/index.js.map +1 -1
  250. package/dist/modules/manager/copier/artifacts.js +5 -5
  251. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  252. package/dist/modules/manager/copier/schema.d.ts +2 -2
  253. package/dist/modules/manager/copier/schema.js +5 -1
  254. package/dist/modules/manager/copier/schema.js.map +1 -1
  255. package/dist/modules/manager/crossplane/extract.js +1 -1
  256. package/dist/modules/manager/crossplane/extract.js.map +1 -1
  257. package/dist/modules/manager/crossplane/schema.d.ts +2 -2
  258. package/dist/modules/manager/crossplane/schema.js +2 -2
  259. package/dist/modules/manager/crossplane/schema.js.map +1 -1
  260. package/dist/modules/manager/crow/extract.d.ts +2 -0
  261. package/dist/modules/manager/crow/extract.js +35 -0
  262. package/dist/modules/manager/crow/extract.js.map +1 -0
  263. package/dist/modules/manager/crow/index.d.ts +8 -0
  264. package/dist/modules/manager/crow/index.js +13 -0
  265. package/dist/modules/manager/crow/index.js.map +1 -0
  266. package/dist/modules/manager/crow/schema.d.ts +66 -0
  267. package/dist/modules/manager/crow/schema.js +15 -0
  268. package/dist/modules/manager/crow/schema.js.map +1 -0
  269. package/dist/modules/manager/custom/jsonata/schema.d.ts +1 -1
  270. package/dist/modules/manager/custom/jsonata/schema.js +4 -4
  271. package/dist/modules/manager/custom/jsonata/schema.js.map +1 -1
  272. package/dist/modules/manager/custom/jsonata/utils.js +3 -3
  273. package/dist/modules/manager/custom/jsonata/utils.js.map +1 -1
  274. package/dist/modules/manager/devbox/extract.js +1 -1
  275. package/dist/modules/manager/devbox/extract.js.map +1 -1
  276. package/dist/modules/manager/devbox/schema.d.ts +1 -1
  277. package/dist/modules/manager/devbox/schema.js +2 -2
  278. package/dist/modules/manager/devbox/schema.js.map +1 -1
  279. package/dist/modules/manager/devcontainer/schema.d.ts +1 -1
  280. package/dist/modules/manager/fingerprint.generated.js +35 -32
  281. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  282. package/dist/modules/manager/fleet/schema.d.ts +16 -16
  283. package/dist/modules/manager/flux/schema.d.ts +24 -24
  284. package/dist/modules/manager/github-actions/community.d.ts +96 -0
  285. package/dist/modules/manager/github-actions/community.js +116 -10
  286. package/dist/modules/manager/github-actions/community.js.map +1 -1
  287. package/dist/modules/manager/github-actions/extract.js +2 -1
  288. package/dist/modules/manager/github-actions/extract.js.map +1 -1
  289. package/dist/modules/manager/github-actions/schema.d.ts +3 -3
  290. package/dist/modules/manager/github-actions/schema.js +7 -7
  291. package/dist/modules/manager/github-actions/schema.js.map +1 -1
  292. package/dist/modules/manager/gitlabci/extract.js +2 -0
  293. package/dist/modules/manager/gitlabci/extract.js.map +1 -1
  294. package/dist/modules/manager/glasskube/schema.d.ts +12 -12
  295. package/dist/modules/manager/gleam/schema.d.ts +4 -4
  296. package/dist/modules/manager/gomod/artifacts.js +8 -4
  297. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  298. package/dist/modules/manager/gradle/parser/dependencies.js +23 -2
  299. package/dist/modules/manager/gradle/parser/dependencies.js.map +1 -1
  300. package/dist/modules/manager/gradle/parser/objects.js +15 -0
  301. package/dist/modules/manager/gradle/parser/objects.js.map +1 -1
  302. package/dist/modules/manager/gradle/parser.js +1 -1
  303. package/dist/modules/manager/gradle/parser.js.map +1 -1
  304. package/dist/modules/manager/helmfile/extract.js +26 -21
  305. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  306. package/dist/modules/manager/helmfile/index.js +4 -1
  307. package/dist/modules/manager/helmfile/index.js.map +1 -1
  308. package/dist/modules/manager/helmfile/schema.d.ts +4 -4
  309. package/dist/modules/manager/maven-wrapper/artifacts.js +1 -1
  310. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  311. package/dist/modules/manager/maven-wrapper/extract.js +4 -4
  312. package/dist/modules/manager/maven-wrapper/extract.js.map +1 -1
  313. package/dist/modules/manager/maven-wrapper/index.d.ts +1 -1
  314. package/dist/modules/manager/maven-wrapper/index.js +5 -2
  315. package/dist/modules/manager/maven-wrapper/index.js.map +1 -1
  316. package/dist/modules/manager/mise/backends.d.ts +2 -2
  317. package/dist/modules/manager/mise/backends.js +1 -1
  318. package/dist/modules/manager/mise/backends.js.map +1 -1
  319. package/dist/modules/manager/mise/extract.js.map +1 -1
  320. package/dist/modules/manager/mise/schema.d.ts +6 -29
  321. package/dist/modules/manager/mise/schema.js +7 -8
  322. package/dist/modules/manager/mise/schema.js.map +1 -1
  323. package/dist/modules/manager/mise/upgradeable-tooling.js +1 -1
  324. package/dist/modules/manager/mise/upgradeable-tooling.js.map +1 -1
  325. package/dist/modules/manager/mise/utils.d.ts +2 -2
  326. package/dist/modules/manager/mise/utils.js +1 -1
  327. package/dist/modules/manager/mise/utils.js.map +1 -1
  328. package/dist/modules/manager/nix/artifacts.js +2 -2
  329. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  330. package/dist/modules/manager/nix/extract.d.ts +2 -2
  331. package/dist/modules/manager/nix/extract.js +79 -67
  332. package/dist/modules/manager/nix/extract.js.map +1 -1
  333. package/dist/modules/manager/nix/index.d.ts +1 -0
  334. package/dist/modules/manager/nix/index.js +3 -1
  335. package/dist/modules/manager/nix/index.js.map +1 -1
  336. package/dist/modules/manager/nix/range.d.ts +3 -0
  337. package/dist/modules/manager/nix/range.js +10 -0
  338. package/dist/modules/manager/nix/range.js.map +1 -0
  339. package/dist/modules/manager/nix/schema.d.ts +42 -28
  340. package/dist/modules/manager/nix/schema.js +4 -1
  341. package/dist/modules/manager/nix/schema.js.map +1 -1
  342. package/dist/modules/manager/npm/extract/common/package-file.d.ts +1 -0
  343. package/dist/modules/manager/npm/extract/common/package-file.js +8 -0
  344. package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
  345. package/dist/modules/manager/npm/extract/index.js +24 -7
  346. package/dist/modules/manager/npm/extract/index.js.map +1 -1
  347. package/dist/modules/manager/npm/extract/pnpm.d.ts +4 -3
  348. package/dist/modules/manager/npm/extract/pnpm.js +1 -1
  349. package/dist/modules/manager/npm/extract/pnpm.js.map +1 -1
  350. package/dist/modules/manager/npm/extract/post/locked-versions.js +6 -0
  351. package/dist/modules/manager/npm/extract/post/locked-versions.js.map +1 -1
  352. package/dist/modules/manager/npm/extract/yarn.d.ts +4 -0
  353. package/dist/modules/manager/npm/extract/yarn.js +35 -0
  354. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  355. package/dist/modules/manager/npm/extract/yarnrc.d.ts +4 -4
  356. package/dist/modules/manager/npm/extract/yarnrc.js +1 -2
  357. package/dist/modules/manager/npm/extract/yarnrc.js.map +1 -1
  358. package/dist/modules/manager/npm/index.js +1 -0
  359. package/dist/modules/manager/npm/index.js.map +1 -1
  360. package/dist/modules/manager/npm/post-update/index.js +2 -1
  361. package/dist/modules/manager/npm/post-update/index.js.map +1 -1
  362. package/dist/modules/manager/npm/post-update/npm.js +14 -1
  363. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  364. package/dist/modules/manager/npm/post-update/pnpm.js +6 -1
  365. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  366. package/dist/modules/manager/npm/post-update/types.d.ts +5 -5
  367. package/dist/modules/manager/npm/post-update/types.js.map +1 -1
  368. package/dist/modules/manager/npm/post-update/utils.d.ts +3 -4
  369. package/dist/modules/manager/npm/post-update/utils.js +2 -13
  370. package/dist/modules/manager/npm/post-update/utils.js.map +1 -1
  371. package/dist/modules/manager/npm/schema.d.ts +35 -97
  372. package/dist/modules/manager/npm/schema.js +21 -16
  373. package/dist/modules/manager/npm/schema.js.map +1 -1
  374. package/dist/modules/manager/npm/update/dependency/index.js +4 -0
  375. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  376. package/dist/modules/manager/npm/update/dependency/pnpm.js +1 -1
  377. package/dist/modules/manager/npm/update/dependency/pnpm.js.map +1 -1
  378. package/dist/modules/manager/npm/update/dependency/yarn.d.ts +2 -0
  379. package/dist/modules/manager/npm/update/dependency/yarn.js +102 -0
  380. package/dist/modules/manager/npm/update/dependency/yarn.js.map +1 -0
  381. package/dist/modules/manager/npm/utils.d.ts +2 -0
  382. package/dist/modules/manager/npm/utils.js +10 -0
  383. package/dist/modules/manager/npm/utils.js.map +1 -1
  384. package/dist/modules/manager/nuget/extract.js +5 -0
  385. package/dist/modules/manager/nuget/extract.js.map +1 -1
  386. package/dist/modules/manager/nuget/schema.d.ts +3 -56
  387. package/dist/modules/manager/nuget/schema.js +5 -6
  388. package/dist/modules/manager/nuget/schema.js.map +1 -1
  389. package/dist/modules/manager/nvm/extract.js +8 -1
  390. package/dist/modules/manager/nvm/extract.js.map +1 -1
  391. package/dist/modules/manager/ocb/extract.js +1 -1
  392. package/dist/modules/manager/ocb/extract.js.map +1 -1
  393. package/dist/modules/manager/ocb/schema.d.ts +4 -4
  394. package/dist/modules/manager/ocb/schema.js +9 -9
  395. package/dist/modules/manager/ocb/schema.js.map +1 -1
  396. package/dist/modules/manager/pep621/extract.d.ts +1 -1
  397. package/dist/modules/manager/pep621/extract.js +11 -3
  398. package/dist/modules/manager/pep621/extract.js.map +1 -1
  399. package/dist/modules/manager/pep621/processors/abstract.d.ts +10 -0
  400. package/dist/modules/manager/pep621/processors/abstract.js +25 -0
  401. package/dist/modules/manager/pep621/processors/abstract.js.map +1 -0
  402. package/dist/modules/manager/pep621/processors/hatch.d.ts +2 -2
  403. package/dist/modules/manager/pep621/processors/hatch.js +2 -1
  404. package/dist/modules/manager/pep621/processors/hatch.js.map +1 -1
  405. package/dist/modules/manager/pep621/processors/index.d.ts +2 -4
  406. package/dist/modules/manager/pep621/processors/index.js.map +1 -1
  407. package/dist/modules/manager/pep621/processors/pdm.d.ts +3 -2
  408. package/dist/modules/manager/pep621/processors/pdm.js +5 -4
  409. package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
  410. package/dist/modules/manager/pep621/processors/types.d.ts +1 -0
  411. package/dist/modules/manager/pep621/processors/types.js.map +1 -1
  412. package/dist/modules/manager/pep621/processors/uv.d.ts +3 -2
  413. package/dist/modules/manager/pep621/processors/uv.js +8 -6
  414. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  415. package/dist/modules/manager/pep621/schema.d.ts +35 -257
  416. package/dist/modules/manager/pep621/schema.js +17 -21
  417. package/dist/modules/manager/pep621/schema.js.map +1 -1
  418. package/dist/modules/manager/pep723/extract.js +1 -1
  419. package/dist/modules/manager/pep723/extract.js.map +1 -1
  420. package/dist/modules/manager/pep723/schema.d.ts +1 -1
  421. package/dist/modules/manager/pep723/schema.js +2 -2
  422. package/dist/modules/manager/pep723/schema.js.map +1 -1
  423. package/dist/modules/manager/pip-compile/extract.d.ts +1 -1
  424. package/dist/modules/manager/pip-compile/extract.js +9 -6
  425. package/dist/modules/manager/pip-compile/extract.js.map +1 -1
  426. package/dist/modules/manager/pixi/extract.js +4 -7
  427. package/dist/modules/manager/pixi/extract.js.map +1 -1
  428. package/dist/modules/manager/pixi/schema.d.ts +296 -4
  429. package/dist/modules/manager/pixi/schema.js +11 -4
  430. package/dist/modules/manager/pixi/schema.js.map +1 -1
  431. package/dist/modules/manager/poetry/artifacts.js +2 -2
  432. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  433. package/dist/modules/manager/poetry/extract.js +1 -1
  434. package/dist/modules/manager/poetry/extract.js.map +1 -1
  435. package/dist/modules/manager/poetry/index.d.ts +1 -0
  436. package/dist/modules/manager/poetry/index.js +2 -1
  437. package/dist/modules/manager/poetry/index.js.map +1 -1
  438. package/dist/modules/manager/poetry/schema.d.ts +45 -138
  439. package/dist/modules/manager/poetry/schema.js +49 -32
  440. package/dist/modules/manager/poetry/schema.js.map +1 -1
  441. package/dist/modules/manager/poetry/update-locked.js +2 -2
  442. package/dist/modules/manager/poetry/update-locked.js.map +1 -1
  443. package/dist/modules/manager/pre-commit/extract.js +2 -1
  444. package/dist/modules/manager/pre-commit/extract.js.map +1 -1
  445. package/dist/modules/manager/pub/extract.js +38 -8
  446. package/dist/modules/manager/pub/extract.js.map +1 -1
  447. package/dist/modules/manager/pub/index.d.ts +0 -1
  448. package/dist/modules/manager/pub/index.js +0 -3
  449. package/dist/modules/manager/pub/index.js.map +1 -1
  450. package/dist/modules/manager/pub/schema.d.ts +25 -79
  451. package/dist/modules/manager/pub/schema.js +17 -10
  452. package/dist/modules/manager/pub/schema.js.map +1 -1
  453. package/dist/modules/manager/pub/utils.d.ts +3 -3
  454. package/dist/modules/manager/pub/utils.js +2 -2
  455. package/dist/modules/manager/pub/utils.js.map +1 -1
  456. package/dist/modules/manager/quadlet/extract.d.ts +2 -0
  457. package/dist/modules/manager/quadlet/extract.js +54 -0
  458. package/dist/modules/manager/quadlet/extract.js.map +1 -0
  459. package/dist/modules/manager/quadlet/index.d.ts +8 -0
  460. package/dist/modules/manager/quadlet/index.js +13 -0
  461. package/dist/modules/manager/quadlet/index.js.map +1 -0
  462. package/dist/modules/manager/quadlet/schema.d.ts +45 -0
  463. package/dist/modules/manager/quadlet/schema.js +23 -0
  464. package/dist/modules/manager/quadlet/schema.js.map +1 -0
  465. package/dist/modules/manager/renovate-config-presets/extract.js +1 -1
  466. package/dist/modules/manager/renovate-config-presets/extract.js.map +1 -1
  467. package/dist/modules/manager/renovate-config-presets/index.js +1 -1
  468. package/dist/modules/manager/renovate-config-presets/index.js.map +1 -1
  469. package/dist/modules/manager/renovate-config-presets/schema.d.ts +1 -1
  470. package/dist/modules/manager/renovate-config-presets/schema.js +2 -2
  471. package/dist/modules/manager/renovate-config-presets/schema.js.map +1 -1
  472. package/dist/modules/manager/swift/extract.js +25 -9
  473. package/dist/modules/manager/swift/extract.js.map +1 -1
  474. package/dist/modules/manager/swift/index.js +7 -1
  475. package/dist/modules/manager/swift/index.js.map +1 -1
  476. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js +1 -1
  477. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js.map +1 -1
  478. package/dist/modules/manager/terraform/lockfile/hash.js +1 -1
  479. package/dist/modules/manager/terraform/lockfile/hash.js.map +1 -1
  480. package/dist/modules/manager/terragrunt/util.js +1 -1
  481. package/dist/modules/manager/terragrunt/util.js.map +1 -1
  482. package/dist/modules/manager/types.d.ts +2 -0
  483. package/dist/modules/manager/types.js.map +1 -1
  484. package/dist/modules/manager/typst/extract.d.ts +2 -0
  485. package/dist/modules/manager/typst/extract.js +31 -0
  486. package/dist/modules/manager/typst/extract.js.map +1 -0
  487. package/dist/modules/manager/typst/index.d.ts +7 -0
  488. package/dist/modules/manager/typst/index.js +12 -0
  489. package/dist/modules/manager/typst/index.js.map +1 -0
  490. package/dist/modules/manager/util.js +3 -2
  491. package/dist/modules/manager/util.js.map +1 -1
  492. package/dist/modules/manager/vendir/schema.d.ts +13 -13
  493. package/dist/modules/platform/azure/azure-helper.js +1 -1
  494. package/dist/modules/platform/azure/azure-helper.js.map +1 -1
  495. package/dist/modules/platform/azure/schema.d.ts +3 -3
  496. package/dist/modules/platform/azure/schema.js +4 -4
  497. package/dist/modules/platform/azure/schema.js.map +1 -1
  498. package/dist/modules/platform/bitbucket/index.js +12 -9
  499. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  500. package/dist/modules/platform/bitbucket/schema.d.ts +7 -7
  501. package/dist/modules/platform/bitbucket/schema.js +7 -7
  502. package/dist/modules/platform/bitbucket/schema.js.map +1 -1
  503. package/dist/modules/platform/bitbucket-server/index.js +7 -6
  504. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  505. package/dist/modules/platform/bitbucket-server/schema.d.ts +16 -17
  506. package/dist/modules/platform/bitbucket-server/schema.js +6 -8
  507. package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
  508. package/dist/modules/platform/codecommit/index.d.ts +0 -8
  509. package/dist/modules/platform/codecommit/index.js +16 -16
  510. package/dist/modules/platform/codecommit/index.js.map +1 -1
  511. package/dist/modules/platform/forgejo/index.js +39 -38
  512. package/dist/modules/platform/forgejo/index.js.map +1 -1
  513. package/dist/modules/platform/forgejo/types.d.ts +3 -2
  514. package/dist/modules/platform/forgejo/types.js.map +1 -1
  515. package/dist/modules/platform/forgejo/utils.d.ts +1 -0
  516. package/dist/modules/platform/forgejo/utils.js +17 -0
  517. package/dist/modules/platform/forgejo/utils.js.map +1 -1
  518. package/dist/modules/platform/gerrit/client.d.ts +1 -1
  519. package/dist/modules/platform/gerrit/client.js +32 -33
  520. package/dist/modules/platform/gerrit/client.js.map +1 -1
  521. package/dist/modules/platform/gerrit/index.d.ts +1 -2
  522. package/dist/modules/platform/gerrit/index.js +8 -16
  523. package/dist/modules/platform/gerrit/index.js.map +1 -1
  524. package/dist/modules/platform/gerrit/scm.js +7 -13
  525. package/dist/modules/platform/gerrit/scm.js.map +1 -1
  526. package/dist/modules/platform/gerrit/types.d.ts +27 -1
  527. package/dist/modules/platform/gerrit/types.js.map +1 -1
  528. package/dist/modules/platform/gitea/index.js +34 -37
  529. package/dist/modules/platform/gitea/index.js.map +1 -1
  530. package/dist/modules/platform/gitea/schema.d.ts +3 -3
  531. package/dist/modules/platform/gitea/schema.js +3 -3
  532. package/dist/modules/platform/gitea/schema.js.map +1 -1
  533. package/dist/modules/platform/gitea/types.d.ts +3 -2
  534. package/dist/modules/platform/gitea/types.js.map +1 -1
  535. package/dist/modules/platform/gitea/utils.d.ts +1 -0
  536. package/dist/modules/platform/gitea/utils.js +17 -0
  537. package/dist/modules/platform/gitea/utils.js.map +1 -1
  538. package/dist/modules/platform/github/index.d.ts +1 -1
  539. package/dist/modules/platform/github/index.js +92 -33
  540. package/dist/modules/platform/github/index.js.map +1 -1
  541. package/dist/modules/platform/github/schema.d.ts +32 -2
  542. package/dist/modules/platform/github/schema.js +32 -8
  543. package/dist/modules/platform/github/schema.js.map +1 -1
  544. package/dist/modules/platform/github/types.d.ts +2 -2
  545. package/dist/modules/platform/github/types.js.map +1 -1
  546. package/dist/modules/platform/github/user.d.ts +2 -1
  547. package/dist/modules/platform/github/user.js.map +1 -1
  548. package/dist/modules/platform/gitlab/index.js.map +1 -1
  549. package/dist/modules/platform/gitlab/pr-cache.d.ts +0 -2
  550. package/dist/modules/platform/gitlab/pr-cache.js +28 -37
  551. package/dist/modules/platform/gitlab/pr-cache.js.map +1 -1
  552. package/dist/modules/platform/gitlab/utils.js +1 -0
  553. package/dist/modules/platform/gitlab/utils.js.map +1 -1
  554. package/dist/modules/platform/types.d.ts +1 -1
  555. package/dist/modules/platform/types.js.map +1 -1
  556. package/dist/modules/versioning/api.js +2 -0
  557. package/dist/modules/versioning/api.js.map +1 -1
  558. package/dist/modules/versioning/cargo/index.js +7 -7
  559. package/dist/modules/versioning/cargo/index.js.map +1 -1
  560. package/dist/modules/versioning/composer/index.js +0 -4
  561. package/dist/modules/versioning/composer/index.js.map +1 -1
  562. package/dist/modules/versioning/conan/index.js +1 -1
  563. package/dist/modules/versioning/conan/index.js.map +1 -1
  564. package/dist/modules/versioning/conda/index.d.ts +2 -0
  565. package/dist/modules/versioning/conda/index.js +4 -4
  566. package/dist/modules/versioning/conda/index.js.map +1 -1
  567. package/dist/modules/versioning/debian/index.d.ts +1 -1
  568. package/dist/modules/versioning/debian/index.js +2 -17
  569. package/dist/modules/versioning/debian/index.js.map +1 -1
  570. package/dist/modules/versioning/gradle/index.js +2 -2
  571. package/dist/modules/versioning/gradle/index.js.map +1 -1
  572. package/dist/modules/versioning/hashicorp/index.js +0 -1
  573. package/dist/modules/versioning/hashicorp/index.js.map +1 -1
  574. package/dist/modules/versioning/helm/index.js +0 -1
  575. package/dist/modules/versioning/helm/index.js.map +1 -1
  576. package/dist/modules/versioning/hex/index.js +0 -1
  577. package/dist/modules/versioning/hex/index.js.map +1 -1
  578. package/dist/modules/versioning/ivy/index.js +1 -2
  579. package/dist/modules/versioning/ivy/index.js.map +1 -1
  580. package/dist/modules/versioning/npm/index.js +0 -1
  581. package/dist/modules/versioning/npm/index.js.map +1 -1
  582. package/dist/modules/versioning/npm/range.js +2 -3
  583. package/dist/modules/versioning/npm/range.js.map +1 -1
  584. package/dist/modules/versioning/nuget/index.js +8 -4
  585. package/dist/modules/versioning/nuget/index.js.map +1 -1
  586. package/dist/modules/versioning/pep440/index.js +1 -1
  587. package/dist/modules/versioning/pep440/index.js.map +1 -1
  588. package/dist/modules/versioning/pep440/range.d.ts +1 -0
  589. package/dist/modules/versioning/pep440/range.js +4 -3
  590. package/dist/modules/versioning/pep440/range.js.map +1 -1
  591. package/dist/modules/versioning/poetry/index.js +0 -4
  592. package/dist/modules/versioning/poetry/index.js.map +1 -1
  593. package/dist/modules/versioning/rez/index.js +0 -1
  594. package/dist/modules/versioning/rez/index.js.map +1 -1
  595. package/dist/modules/versioning/ruby/index.js +5 -5
  596. package/dist/modules/versioning/ruby/index.js.map +1 -1
  597. package/dist/modules/versioning/ruby/strategies/index.d.ts +1 -2
  598. package/dist/modules/versioning/ruby/strategies/index.js +1 -3
  599. package/dist/modules/versioning/ruby/strategies/index.js.map +1 -1
  600. package/dist/modules/versioning/semver-partial/index.d.ts +8 -0
  601. package/dist/modules/versioning/semver-partial/index.js +211 -0
  602. package/dist/modules/versioning/semver-partial/index.js.map +1 -0
  603. package/dist/modules/versioning/swift/index.js +0 -1
  604. package/dist/modules/versioning/swift/index.js.map +1 -1
  605. package/dist/modules/versioning/types.d.ts +5 -0
  606. package/dist/modules/versioning/types.js.map +1 -1
  607. package/dist/renovate.js +0 -0
  608. package/dist/util/cache/package/decorator.js +20 -9
  609. package/dist/util/cache/package/decorator.js.map +1 -1
  610. package/dist/util/cache/package/file.d.ts +1 -1
  611. package/dist/util/cache/package/file.js +3 -3
  612. package/dist/util/cache/package/file.js.map +1 -1
  613. package/dist/util/cache/package/index.d.ts +9 -2
  614. package/dist/util/cache/package/index.js +19 -4
  615. package/dist/util/cache/package/index.js.map +1 -1
  616. package/dist/util/cache/package/namespaces.d.ts +1 -1
  617. package/dist/util/cache/package/namespaces.js +3 -0
  618. package/dist/util/cache/package/namespaces.js.map +1 -1
  619. package/dist/util/cache/package/redis.d.ts +1 -1
  620. package/dist/util/cache/package/redis.js +17 -7
  621. package/dist/util/cache/package/redis.js.map +1 -1
  622. package/dist/util/cache/package/sqlite.d.ts +1 -1
  623. package/dist/util/cache/package/sqlite.js +2 -2
  624. package/dist/util/cache/package/sqlite.js.map +1 -1
  625. package/dist/util/cache/package/types.d.ts +1 -1
  626. package/dist/util/cache/package/types.js.map +1 -1
  627. package/dist/util/cache/repository/http-cache.js +1 -1
  628. package/dist/util/cache/repository/http-cache.js.map +1 -1
  629. package/dist/util/cache/repository/schema.d.ts +1 -1
  630. package/dist/util/cache/repository/types.d.ts +1 -0
  631. package/dist/util/cache/repository/types.js.map +1 -1
  632. package/dist/util/emoji.js +2 -2
  633. package/dist/util/emoji.js.map +1 -1
  634. package/dist/util/exec/containerbase.js +5 -0
  635. package/dist/util/exec/containerbase.js.map +1 -1
  636. package/dist/util/git/index.js +6 -3
  637. package/dist/util/git/index.js.map +1 -1
  638. package/dist/util/git/private-key.js +23 -3
  639. package/dist/util/git/private-key.js.map +1 -1
  640. package/dist/util/git/types.d.ts +2 -1
  641. package/dist/util/git/types.js.map +1 -1
  642. package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +6 -6
  643. package/dist/util/http/bitbucket.js +0 -1
  644. package/dist/util/http/bitbucket.js.map +1 -1
  645. package/dist/util/http/cache/abstract-http-cache-provider.d.ts +7 -7
  646. package/dist/util/http/cache/abstract-http-cache-provider.js +11 -11
  647. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  648. package/dist/util/http/cache/memory-http-cache-provider.d.ts +3 -3
  649. package/dist/util/http/cache/memory-http-cache-provider.js +8 -8
  650. package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -1
  651. package/dist/util/http/cache/package-http-cache-provider.d.ts +5 -4
  652. package/dist/util/http/cache/package-http-cache-provider.js +17 -11
  653. package/dist/util/http/cache/package-http-cache-provider.js.map +1 -1
  654. package/dist/util/http/cache/repository-http-cache-provider.d.ts +16 -3
  655. package/dist/util/http/cache/repository-http-cache-provider.js +60 -3
  656. package/dist/util/http/cache/repository-http-cache-provider.js.map +1 -1
  657. package/dist/util/http/cache/schema.d.ts +2 -2
  658. package/dist/util/http/cache/schema.js +2 -2
  659. package/dist/util/http/cache/schema.js.map +1 -1
  660. package/dist/util/http/cache/types.d.ts +3 -3
  661. package/dist/util/http/cache/types.js.map +1 -1
  662. package/dist/util/http/gerrit.d.ts +1 -1
  663. package/dist/util/http/gerrit.js +1 -1
  664. package/dist/util/http/gerrit.js.map +1 -1
  665. package/dist/util/http/gitlab.js +0 -1
  666. package/dist/util/http/gitlab.js.map +1 -1
  667. package/dist/util/http/host-rules.js +10 -0
  668. package/dist/util/http/host-rules.js.map +1 -1
  669. package/dist/util/http/http.d.ts +1 -1
  670. package/dist/util/http/http.js +17 -15
  671. package/dist/util/http/http.js.map +1 -1
  672. package/dist/util/http/retry-after.js +1 -1
  673. package/dist/util/http/retry-after.js.map +1 -1
  674. package/dist/util/interpolator.js +2 -0
  675. package/dist/util/interpolator.js.map +1 -1
  676. package/dist/util/markdown.js +3 -3
  677. package/dist/util/markdown.js.map +1 -1
  678. package/dist/util/merge-confidence/index.js +3 -1
  679. package/dist/util/merge-confidence/index.js.map +1 -1
  680. package/dist/util/schema-utils/index.d.ts +8 -4
  681. package/dist/util/schema-utils/index.js +16 -1
  682. package/dist/util/schema-utils/index.js.map +1 -1
  683. package/dist/util/template/index.d.ts +1 -0
  684. package/dist/util/template/index.js +70 -64
  685. package/dist/util/template/index.js.map +1 -1
  686. package/dist/workers/global/config/parse/file.js +6 -0
  687. package/dist/workers/global/config/parse/file.js.map +1 -1
  688. package/dist/workers/global/config/parse/index.js +2 -1
  689. package/dist/workers/global/config/parse/index.js.map +1 -1
  690. package/dist/workers/repository/config-migration/branch/commit-message.js +2 -1
  691. package/dist/workers/repository/config-migration/branch/commit-message.js.map +1 -1
  692. package/dist/workers/repository/config-migration/branch/create.js +1 -0
  693. package/dist/workers/repository/config-migration/branch/create.js.map +1 -1
  694. package/dist/workers/repository/config-migration/branch/rebase.js +1 -0
  695. package/dist/workers/repository/config-migration/branch/rebase.js.map +1 -1
  696. package/dist/workers/repository/dependency-dashboard.js +42 -5
  697. package/dist/workers/repository/dependency-dashboard.js.map +1 -1
  698. package/dist/workers/repository/error-config.js +1 -1
  699. package/dist/workers/repository/error-config.js.map +1 -1
  700. package/dist/workers/repository/error.js +1 -1
  701. package/dist/workers/repository/error.js.map +1 -1
  702. package/dist/workers/repository/extract/supersedes.d.ts +1 -1
  703. package/dist/workers/repository/extract/supersedes.js +31 -17
  704. package/dist/workers/repository/extract/supersedes.js.map +1 -1
  705. package/dist/workers/repository/finalize/index.js +1 -1
  706. package/dist/workers/repository/finalize/index.js.map +1 -1
  707. package/dist/workers/repository/finalize/prune.js +4 -3
  708. package/dist/workers/repository/finalize/prune.js.map +1 -1
  709. package/dist/workers/repository/index.js +49 -20
  710. package/dist/workers/repository/index.js.map +1 -1
  711. package/dist/workers/repository/init/inherited.js +7 -0
  712. package/dist/workers/repository/init/inherited.js.map +1 -1
  713. package/dist/workers/repository/init/merge.js +1 -1
  714. package/dist/workers/repository/init/merge.js.map +1 -1
  715. package/dist/workers/repository/onboarding/branch/check.js +5 -3
  716. package/dist/workers/repository/onboarding/branch/check.js.map +1 -1
  717. package/dist/workers/repository/onboarding/branch/create.js +1 -0
  718. package/dist/workers/repository/onboarding/branch/create.js.map +1 -1
  719. package/dist/workers/repository/onboarding/branch/rebase.js +1 -0
  720. package/dist/workers/repository/onboarding/branch/rebase.js.map +1 -1
  721. package/dist/workers/repository/onboarding/common.js +3 -2
  722. package/dist/workers/repository/onboarding/common.js.map +1 -1
  723. package/dist/workers/repository/process/extract-update.js +2 -2
  724. package/dist/workers/repository/process/extract-update.js.map +1 -1
  725. package/dist/workers/repository/process/fetch.js +4 -3
  726. package/dist/workers/repository/process/fetch.js.map +1 -1
  727. package/dist/workers/repository/process/index.d.ts +1 -0
  728. package/dist/workers/repository/process/index.js +25 -5
  729. package/dist/workers/repository/process/index.js.map +1 -1
  730. package/dist/workers/repository/process/lookup/filter-checks.js +42 -8
  731. package/dist/workers/repository/process/lookup/filter-checks.js.map +1 -1
  732. package/dist/workers/repository/process/lookup/filter.js +5 -7
  733. package/dist/workers/repository/process/lookup/filter.js.map +1 -1
  734. package/dist/workers/repository/process/lookup/index.js +10 -13
  735. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  736. package/dist/workers/repository/process/vulnerabilities.d.ts +1 -1
  737. package/dist/workers/repository/process/vulnerabilities.js +13 -8
  738. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  739. package/dist/workers/repository/reconfigure/comment.js +1 -1
  740. package/dist/workers/repository/reconfigure/comment.js.map +1 -1
  741. package/dist/workers/repository/reconfigure/index.js +1 -1
  742. package/dist/workers/repository/reconfigure/index.js.map +1 -1
  743. package/dist/workers/repository/update/branch/commit.js +2 -0
  744. package/dist/workers/repository/update/branch/commit.js.map +1 -1
  745. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +12 -1
  746. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  747. package/dist/workers/repository/update/branch/index.js +65 -20
  748. package/dist/workers/repository/update/branch/index.js.map +1 -1
  749. package/dist/workers/repository/update/branch/status-checks.js +5 -0
  750. package/dist/workers/repository/update/branch/status-checks.js.map +1 -1
  751. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
  752. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  753. package/dist/workers/repository/update/pr/changelog/forgejo/index.js +3 -3
  754. package/dist/workers/repository/update/pr/changelog/forgejo/index.js.map +1 -1
  755. package/dist/workers/repository/update/pr/changelog/gitea/index.js +3 -3
  756. package/dist/workers/repository/update/pr/changelog/gitea/index.js.map +1 -1
  757. package/dist/workers/repository/update/pr/changelog/release-notes.js +9 -4
  758. package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
  759. package/dist/workers/repository/update/pr/index.js +28 -11
  760. package/dist/workers/repository/update/pr/index.js.map +1 -1
  761. package/dist/workers/repository/update/pr/pr-reuse.d.ts +1 -1
  762. package/dist/workers/repository/update/pr/pr-reuse.js +2 -2
  763. package/dist/workers/repository/update/pr/pr-reuse.js.map +1 -1
  764. package/dist/workers/repository/updates/generate.js +1 -0
  765. package/dist/workers/repository/updates/generate.js.map +1 -1
  766. package/dist/workers/types.d.ts +1 -0
  767. package/dist/workers/types.js.map +1 -1
  768. package/package.json +136 -153
  769. package/renovate-schema.json +325 -111
  770. package/dist/config/decrypt/kbpgp.d.ts +0 -1
  771. package/dist/config/decrypt/kbpgp.js +0 -58
  772. package/dist/config/decrypt/kbpgp.js.map +0 -1
  773. package/dist/config/decrypt/legacy.d.ts +0 -2
  774. package/dist/config/decrypt/legacy.js +0 -36
  775. package/dist/config/decrypt/legacy.js.map +0 -1
  776. package/dist/modules/versioning/ruby/strategies/pin.d.ts +0 -4
  777. package/dist/modules/versioning/ruby/strategies/pin.js +0 -4
  778. package/dist/modules/versioning/ruby/strategies/pin.js.map +0 -1
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.api = exports.supportedRangeStrategies = exports.supportsRanges = exports.urls = exports.displayName = exports.id = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
6
+ const semver_1 = tslib_1.__importDefault(require("semver"));
7
+ const regex_1 = require("../../../util/regex");
8
+ exports.id = 'semver-partial';
9
+ exports.displayName = 'Partial Semantic Versioning';
10
+ exports.urls = [
11
+ 'https://docs.gitlab.com/ci/components/#partial-semantic-versions',
12
+ ];
13
+ exports.supportsRanges = true;
14
+ exports.supportedRangeStrategies = ['pin', 'replace'];
15
+ function isLatest(input) {
16
+ return input === '~latest';
17
+ }
18
+ function massageValue(input) {
19
+ return input.trim().replace((0, regex_1.regEx)(/^v/i), '');
20
+ }
21
+ function parseVersion(input) {
22
+ return semver_1.default.parse(massageValue(input));
23
+ }
24
+ function parseRange(input) {
25
+ const stripped = massageValue(input);
26
+ const coerced = semver_1.default.coerce(stripped);
27
+ if (!coerced) {
28
+ return null;
29
+ }
30
+ const { major, minor } = coerced;
31
+ if ((0, regex_1.regEx)(/^\d+$/).test(stripped)) {
32
+ return { major };
33
+ }
34
+ return { major, minor };
35
+ }
36
+ function isValid(input) {
37
+ return isLatest(input) || !!parseVersion(input) || !!parseRange(input);
38
+ }
39
+ function isVersion(input) {
40
+ if (!input) {
41
+ return false;
42
+ }
43
+ return !!parseVersion(input);
44
+ }
45
+ function isStable(version) {
46
+ const v = parseVersion(version);
47
+ if (!v) {
48
+ return false;
49
+ }
50
+ return v.prerelease.length === 0;
51
+ }
52
+ function isSingleVersion(input) {
53
+ return isVersion(input);
54
+ }
55
+ function getMajor(version) {
56
+ return parseVersion(version)?.major ?? null;
57
+ }
58
+ function getMinor(version) {
59
+ return parseVersion(version)?.minor ?? null;
60
+ }
61
+ function getPatch(version) {
62
+ return parseVersion(version)?.patch ?? null;
63
+ }
64
+ function sortVersions(x, y) {
65
+ const a = parseVersion(x);
66
+ const b = parseVersion(y);
67
+ if (!a || !b) {
68
+ return 0;
69
+ }
70
+ return semver_1.default.compare(a, b);
71
+ }
72
+ function equals(x, y) {
73
+ const a = parseVersion(x);
74
+ const b = parseVersion(y);
75
+ if (!a || !b) {
76
+ return false;
77
+ }
78
+ return semver_1.default.eq(a, b);
79
+ }
80
+ function isGreaterThan(x, y) {
81
+ const a = parseVersion(x);
82
+ const b = parseVersion(y);
83
+ if (!a || !b) {
84
+ return false;
85
+ }
86
+ return semver_1.default.gt(a, b);
87
+ }
88
+ function matches(version, range) {
89
+ const v = parseVersion(version);
90
+ if (!v) {
91
+ return false;
92
+ }
93
+ if (isLatest(range)) {
94
+ return true;
95
+ }
96
+ const rv = parseVersion(range);
97
+ if (rv) {
98
+ return semver_1.default.eq(v, rv);
99
+ }
100
+ const r = parseRange(range);
101
+ if (!r) {
102
+ return false;
103
+ }
104
+ if (v.prerelease.length > 0) {
105
+ return false;
106
+ }
107
+ if (v.major !== r.major) {
108
+ return false;
109
+ }
110
+ if (is_1.default.undefined(r.minor)) {
111
+ return true;
112
+ }
113
+ return v.minor === r.minor;
114
+ }
115
+ function getSatisfyingVersion(versions, range) {
116
+ const sortedVersions = versions.sort(sortVersions).reverse();
117
+ for (const version of sortedVersions) {
118
+ if (matches(version, range)) {
119
+ return version;
120
+ }
121
+ }
122
+ return null;
123
+ }
124
+ function minSatisfyingVersion(versions, range) {
125
+ const sortedVersions = versions.sort(sortVersions);
126
+ for (const version of sortedVersions) {
127
+ if (matches(version, range)) {
128
+ return version;
129
+ }
130
+ }
131
+ return null;
132
+ }
133
+ function isLessThanRange(version, range) {
134
+ const v = parseVersion(version);
135
+ const r = parseRange(range);
136
+ if (!v || !r) {
137
+ return false;
138
+ }
139
+ if (v.major !== r.major) {
140
+ return v.major < r.major;
141
+ }
142
+ if (is_1.default.undefined(r.minor)) {
143
+ return false;
144
+ }
145
+ if (v.minor !== r.minor) {
146
+ return v.minor < r.minor;
147
+ }
148
+ return false;
149
+ }
150
+ function getNewValue({ currentValue, rangeStrategy, currentVersion, newVersion, }) {
151
+ if (rangeStrategy === 'pin') {
152
+ return newVersion;
153
+ }
154
+ if (isLatest(currentValue)) {
155
+ return currentValue;
156
+ }
157
+ const range = parseRange(currentValue);
158
+ if (!range) {
159
+ return newVersion;
160
+ }
161
+ const newParsed = parseVersion(newVersion);
162
+ if (!newParsed) {
163
+ return newVersion;
164
+ }
165
+ // Check if currentValue is a full version (has patch component)
166
+ const currentParsed = parseVersion(currentValue);
167
+ if (currentParsed) {
168
+ // currentValue is a full version, return full newVersion
169
+ return newVersion;
170
+ }
171
+ const [prefix] = currentValue.split(massageValue(currentValue));
172
+ if (is_1.default.undefined(range.minor)) {
173
+ return `${prefix}${newParsed.major}`;
174
+ }
175
+ return `${prefix}${newParsed.major}.${newParsed.minor}`;
176
+ }
177
+ function isCompatible(version) {
178
+ return isValid(version);
179
+ }
180
+ function isBreaking(version, current) {
181
+ const versionParsed = parseVersion(version);
182
+ const currentParsed = parseVersion(current);
183
+ if (!versionParsed || !currentParsed) {
184
+ return false;
185
+ }
186
+ if (currentParsed.major === 0) {
187
+ return versionParsed.major > 0 || versionParsed.minor > currentParsed.minor;
188
+ }
189
+ return versionParsed.major > currentParsed.major;
190
+ }
191
+ exports.api = {
192
+ equals,
193
+ getMajor,
194
+ getMinor,
195
+ getPatch,
196
+ isBreaking,
197
+ isCompatible,
198
+ isGreaterThan,
199
+ isLessThanRange,
200
+ isSingleVersion,
201
+ isStable,
202
+ isValid,
203
+ isVersion,
204
+ matches,
205
+ getSatisfyingVersion,
206
+ minSatisfyingVersion,
207
+ getNewValue,
208
+ sortVersions,
209
+ };
210
+ exports.default = exports.api;
211
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/versioning/semver-partial/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport type { SemVer } from 'semver';\nimport semver from 'semver';\nimport { regEx } from '../../../util/regex';\nimport type { NewValueConfig, VersioningApi } from '../types';\n\nexport const id = 'semver-partial';\nexport const displayName = 'Partial Semantic Versioning';\nexport const urls = [\n 'https://docs.gitlab.com/ci/components/#partial-semantic-versions',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies = ['pin', 'replace'];\n\nfunction isLatest(input: string): boolean {\n return input === '~latest';\n}\n\nfunction massageValue(input: string): string {\n return input.trim().replace(regEx(/^v/i), '');\n}\n\nfunction parseVersion(input: string): SemVer | null {\n return semver.parse(massageValue(input));\n}\n\ninterface Range {\n major: number;\n minor?: number;\n}\n\nfunction parseRange(input: string): Range | null {\n const stripped = massageValue(input);\n const coerced = semver.coerce(stripped);\n if (!coerced) {\n return null;\n }\n const { major, minor } = coerced;\n\n if (regEx(/^\\d+$/).test(stripped)) {\n return { major };\n }\n\n return { major, minor };\n}\n\nfunction isValid(input: string): boolean {\n return isLatest(input) || !!parseVersion(input) || !!parseRange(input);\n}\n\nfunction isVersion(input: string | undefined | null): boolean {\n if (!input) {\n return false;\n }\n\n return !!parseVersion(input);\n}\n\nfunction isStable(version: string): boolean {\n const v = parseVersion(version);\n if (!v) {\n return false;\n }\n\n return v.prerelease.length === 0;\n}\n\nfunction isSingleVersion(input: string): boolean {\n return isVersion(input);\n}\n\nfunction getMajor(version: string): number | null {\n return parseVersion(version)?.major ?? null;\n}\n\nfunction getMinor(version: string): number | null {\n return parseVersion(version)?.minor ?? null;\n}\n\nfunction getPatch(version: string): number | null {\n return parseVersion(version)?.patch ?? null;\n}\n\nfunction sortVersions(x: string, y: string): number {\n const a = parseVersion(x);\n const b = parseVersion(y);\n if (!a || !b) {\n return 0;\n }\n return semver.compare(a, b);\n}\n\nfunction equals(x: string, y: string): boolean {\n const a = parseVersion(x);\n const b = parseVersion(y);\n if (!a || !b) {\n return false;\n }\n return semver.eq(a, b);\n}\n\nfunction isGreaterThan(x: string, y: string): boolean {\n const a = parseVersion(x);\n const b = parseVersion(y);\n if (!a || !b) {\n return false;\n }\n return semver.gt(a, b);\n}\n\nfunction matches(version: string, range: string): boolean {\n const v = parseVersion(version);\n if (!v) {\n return false;\n }\n\n if (isLatest(range)) {\n return true;\n }\n\n const rv = parseVersion(range);\n if (rv) {\n return semver.eq(v, rv);\n }\n\n const r = parseRange(range);\n if (!r) {\n return false;\n }\n\n if (v.prerelease.length > 0) {\n return false;\n }\n\n if (v.major !== r.major) {\n return false;\n }\n\n if (is.undefined(r.minor)) {\n return true;\n }\n\n return v.minor === r.minor;\n}\n\nfunction getSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const sortedVersions = versions.sort(sortVersions).reverse();\n for (const version of sortedVersions) {\n if (matches(version, range)) {\n return version;\n }\n }\n return null;\n}\n\nfunction minSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const sortedVersions = versions.sort(sortVersions);\n for (const version of sortedVersions) {\n if (matches(version, range)) {\n return version;\n }\n }\n return null;\n}\n\nfunction isLessThanRange(version: string, range: string): boolean {\n const v = parseVersion(version);\n const r = parseRange(range);\n\n if (!v || !r) {\n return false;\n }\n\n if (v.major !== r.major) {\n return v.major < r.major;\n }\n\n if (is.undefined(r.minor)) {\n return false;\n }\n\n if (v.minor !== r.minor) {\n return v.minor < r.minor;\n }\n\n return false;\n}\n\nfunction getNewValue({\n currentValue,\n rangeStrategy,\n currentVersion,\n newVersion,\n}: NewValueConfig): string | null {\n if (rangeStrategy === 'pin') {\n return newVersion;\n }\n\n if (isLatest(currentValue)) {\n return currentValue;\n }\n\n const range = parseRange(currentValue);\n if (!range) {\n return newVersion;\n }\n\n const newParsed = parseVersion(newVersion);\n if (!newParsed) {\n return newVersion;\n }\n\n // Check if currentValue is a full version (has patch component)\n const currentParsed = parseVersion(currentValue);\n if (currentParsed) {\n // currentValue is a full version, return full newVersion\n return newVersion;\n }\n\n const [prefix] = currentValue.split(massageValue(currentValue));\n\n if (is.undefined(range.minor)) {\n return `${prefix}${newParsed.major}`;\n }\n\n return `${prefix}${newParsed.major}.${newParsed.minor}`;\n}\n\nfunction isCompatible(version: string): boolean {\n return isValid(version);\n}\n\nfunction isBreaking(version: string, current: string): boolean {\n const versionParsed = parseVersion(version);\n const currentParsed = parseVersion(current);\n\n if (!versionParsed || !currentParsed) {\n return false;\n }\n\n if (currentParsed.major === 0) {\n return versionParsed.major > 0 || versionParsed.minor > currentParsed.minor;\n }\n\n return versionParsed.major > currentParsed.major;\n}\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getPatch,\n isBreaking,\n isCompatible,\n isGreaterThan,\n isLessThanRange,\n isSingleVersion,\n isStable,\n isValid,\n isVersion,\n matches,\n getSatisfyingVersion,\n minSatisfyingVersion,\n getNewValue,\n sortVersions,\n};\n\nexport default api;\n"]}
@@ -13,7 +13,6 @@ exports.supportsRanges = true;
13
13
  exports.supportedRangeStrategies = [
14
14
  'bump',
15
15
  'widen',
16
- 'pin',
17
16
  'replace',
18
17
  ];
19
18
  const { is: isStable } = semver_stable_1.default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/versioning/swift/index.ts"],"names":[],"mappings":"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","sourcesContent":["import semver from 'semver';\nimport stable from 'semver-stable';\nimport type { RangeStrategy } from '../../../types/versioning';\nimport { regEx } from '../../../util/regex';\nimport type { VersioningApi } from '../types';\nimport { getNewValue, toSemverRange } from './range';\n\nexport const id = 'swift';\nexport const displayName = 'Swift';\nexport const urls = ['https://swift.org/package-manager/'];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies: RangeStrategy[] = [\n 'bump',\n 'widen',\n 'pin',\n 'replace',\n];\n\nconst { is: isStable } = stable;\n\nconst {\n compare: sortVersions,\n maxSatisfying,\n minSatisfying,\n major: getMajor,\n minor: getMinor,\n patch: getPatch,\n satisfies,\n valid,\n validRange,\n ltr,\n gt: isGreaterThan,\n eq: equals,\n} = semver;\n\nexport const isValid = (input: string): boolean =>\n !!valid(input) || !!validRange(toSemverRange(input));\n\nexport const isVersion = (input: string): boolean => !!valid(input);\n\nfunction getSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const normalizedVersions = versions.map((v) => v.replace(regEx(/^v/), ''));\n const semverRange = toSemverRange(range);\n return semverRange ? maxSatisfying(normalizedVersions, semverRange) : null;\n}\n\nfunction minSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const normalizedVersions = versions.map((v) => v.replace(regEx(/^v/), ''));\n const semverRange = toSemverRange(range);\n return semverRange ? minSatisfying(normalizedVersions, semverRange) : null;\n}\n\nfunction isLessThanRange(version: string, range: string): boolean {\n const semverRange = toSemverRange(range);\n return semverRange ? ltr(version, semverRange) : false;\n}\n\nfunction matches(version: string, range: string): boolean {\n // Check if both are an exact version\n if (isVersion(range) && equals(version, range)) {\n return true;\n }\n const semverRange = toSemverRange(range);\n return semverRange ? satisfies(version, semverRange) : false;\n}\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getNewValue,\n getPatch,\n isCompatible: isVersion,\n isGreaterThan,\n isLessThanRange,\n isSingleVersion: isVersion,\n isStable,\n isValid,\n isVersion,\n matches,\n getSatisfyingVersion,\n minSatisfyingVersion,\n sortVersions,\n};\n\nexport default api;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/versioning/swift/index.ts"],"names":[],"mappings":"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","sourcesContent":["import semver from 'semver';\nimport stable from 'semver-stable';\nimport type { RangeStrategy } from '../../../types/versioning';\nimport { regEx } from '../../../util/regex';\nimport type { VersioningApi } from '../types';\nimport { getNewValue, toSemverRange } from './range';\n\nexport const id = 'swift';\nexport const displayName = 'Swift';\nexport const urls = ['https://swift.org/package-manager/'];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies: RangeStrategy[] = [\n 'bump',\n 'widen',\n 'replace',\n];\n\nconst { is: isStable } = stable;\n\nconst {\n compare: sortVersions,\n maxSatisfying,\n minSatisfying,\n major: getMajor,\n minor: getMinor,\n patch: getPatch,\n satisfies,\n valid,\n validRange,\n ltr,\n gt: isGreaterThan,\n eq: equals,\n} = semver;\n\nexport const isValid = (input: string): boolean =>\n !!valid(input) || !!validRange(toSemverRange(input));\n\nexport const isVersion = (input: string): boolean => !!valid(input);\n\nfunction getSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const normalizedVersions = versions.map((v) => v.replace(regEx(/^v/), ''));\n const semverRange = toSemverRange(range);\n return semverRange ? maxSatisfying(normalizedVersions, semverRange) : null;\n}\n\nfunction minSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const normalizedVersions = versions.map((v) => v.replace(regEx(/^v/), ''));\n const semverRange = toSemverRange(range);\n return semverRange ? minSatisfying(normalizedVersions, semverRange) : null;\n}\n\nfunction isLessThanRange(version: string, range: string): boolean {\n const semverRange = toSemverRange(range);\n return semverRange ? ltr(version, semverRange) : false;\n}\n\nfunction matches(version: string, range: string): boolean {\n // Check if both are an exact version\n if (isVersion(range) && equals(version, range)) {\n return true;\n }\n const semverRange = toSemverRange(range);\n return semverRange ? satisfies(version, semverRange) : false;\n}\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getNewValue,\n getPatch,\n isCompatible: isVersion,\n isGreaterThan,\n isLessThanRange,\n isSingleVersion: isVersion,\n isStable,\n isValid,\n isVersion,\n matches,\n getSatisfyingVersion,\n minSatisfyingVersion,\n sortVersions,\n};\n\nexport default api;\n"]}
@@ -85,6 +85,11 @@ export interface VersioningApi {
85
85
  * `rangeStrategy` option, and the current and new version.
86
86
  */
87
87
  getNewValue(newValueConfig: NewValueConfig): string | null;
88
+ /**
89
+ * Convert the `newVersion` to a pinned value.
90
+ * @param newVersion
91
+ */
92
+ getPinnedValue?(newVersion: string): string;
88
93
  /**
89
94
  * Compare two versions. Return `0` if `v1 == v2`, or `1` if `v1` is
90
95
  * greater, or `-1` if `v2` is greater.
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/modules/versioning/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { SemVer } from 'semver';\nimport type { RangeStrategy } from '../../types';\n\nexport interface NewValueConfig {\n currentValue: string;\n rangeStrategy: RangeStrategy;\n currentVersion?: string;\n newVersion: string;\n isReplacement?: boolean;\n}\nexport interface VersioningApi {\n // validation\n\n /**\n * Check whether the `input` is the valid version or range.\n *\n * For some managers, ranges are called \"constraints\",\"specifiers\", \"requirements\", etc.\n * We stick to the term \"range\" for all of it.\n */\n isValid(input: string): boolean;\n\n /**\n * Check whether the `input` is a valid version.\n *\n * There is no direct way to determine whether the `input` is the range,\n * but combination of `isVersion` and `isValid` can be used for that:\n *\n * `isValid(input) && !isVersion(input)`\n */\n isVersion(input: string | undefined | null): boolean;\n\n /**\n * Check whether the `input` is the:\n *\n * 1. Version, or\n * 2. Range with the special syntax of matching exactly one version:\n * - `==1.2.3` or `===1.2.3` for Python,\n * - `=1.2.3` for NPM,\n * - `[1.2.3]` for Maven or NuGet.\n *\n * This is used to provide pinning functionality.\n */\n isSingleVersion(input: string): boolean;\n\n /**\n * Check whether the `version` is considered to be \"stable\".\n */\n isStable(version: string): boolean;\n\n /**\n * Determines whether the version is compatible with the current one,\n * in some manager-dependent way.\n *\n * For most managers, all valid versions are compatible between each other.\n *\n * However, for example, Docker versions `1.2.3` and `1.2.4-alpine` are not compatible,\n * i.e. `1.2.4-alpine` is not a valid upgrade for `1.2.3`.\n */\n isCompatible(version: string, current?: string): boolean;\n\n isBreaking?(current: string, version: string): boolean;\n\n // digestion of version\n\n getMajor(version: string | SemVer): null | number;\n getMinor(version: string | SemVer): null | number;\n getPatch(version: string | SemVer): null | number;\n\n // comparison\n\n /**\n * Check whether `version` and `other` are logically equivalent, even if\n * they're not the exact same string.\n *\n * For example, with Semver the build metadata should be ignored when comparing.\n */\n equals(version: string, other: string): boolean;\n\n /**\n * Check whether `version` is \"greater\" than the `other` version.\n */\n isGreaterThan(version: string, other: string): boolean;\n\n /**\n * Check whether the `version` is \"less\" than all the versions possible in\n * the `range`.\n */\n isLessThanRange?(version: string, range: string): boolean;\n\n /**\n * Select the highest version from `versions` that is within the given\n * `range` constraint, or return `null` if there is no matching version.\n */\n getSatisfyingVersion(versions: string[], range: string): string | null;\n\n /**\n * Select the lowest version from `versions` that is within the given\n * `range` constraint, or return `null` if there is no matching version.\n */\n minSatisfyingVersion(versions: string[], range: string): string | null;\n\n /**\n * Calculate a new version constraint based on the current constraint, the\n * `rangeStrategy` option, and the current and new version.\n */\n getNewValue(newValueConfig: NewValueConfig): string | null;\n\n /**\n * Compare two versions. Return `0` if `v1 == v2`, or `1` if `v1` is\n * greater, or `-1` if `v2` is greater.\n */\n sortVersions(version: string, other: string): number;\n\n /**\n * Check whether the `version` satisfies the `range` constraint.\n */\n matches(version: string, range: string): boolean;\n\n valueToVersion?(version: string): string;\n\n /**\n * @returns true if subRange is entirely contained by superRange, false otherwise,\n * and undefined if it cannot determine it.\n *\n * @param subRange - the sub range\n * @param superRange - the dom range\n */\n subset?(subRange: string, superRange: string): boolean | undefined;\n\n /**\n * Checks whether subRange intersects superRange.\n */\n intersects?(subRange: string, superRange: string): boolean;\n\n /**\n * Return whether unstable-to-unstable upgrades within the same major version are allowed.\n */\n allowUnstableMajorUpgrades?: boolean;\n\n /**\n * Check whether the `type` in the `a` and `b` version numbers match.\n * Both `a` and `b` must pass `isVersion`.\n */\n isSame?(type: 'major' | 'minor' | 'patch', a: string, b: string): boolean;\n}\n\nexport type VersioningApiConstructor = new (config?: string) => VersioningApi;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/modules/versioning/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { SemVer } from 'semver';\nimport type { RangeStrategy } from '../../types';\n\nexport interface NewValueConfig {\n currentValue: string;\n rangeStrategy: RangeStrategy;\n currentVersion?: string;\n newVersion: string;\n isReplacement?: boolean;\n}\nexport interface VersioningApi {\n // validation\n\n /**\n * Check whether the `input` is the valid version or range.\n *\n * For some managers, ranges are called \"constraints\",\"specifiers\", \"requirements\", etc.\n * We stick to the term \"range\" for all of it.\n */\n isValid(input: string): boolean;\n\n /**\n * Check whether the `input` is a valid version.\n *\n * There is no direct way to determine whether the `input` is the range,\n * but combination of `isVersion` and `isValid` can be used for that:\n *\n * `isValid(input) && !isVersion(input)`\n */\n isVersion(input: string | undefined | null): boolean;\n\n /**\n * Check whether the `input` is the:\n *\n * 1. Version, or\n * 2. Range with the special syntax of matching exactly one version:\n * - `==1.2.3` or `===1.2.3` for Python,\n * - `=1.2.3` for NPM,\n * - `[1.2.3]` for Maven or NuGet.\n *\n * This is used to provide pinning functionality.\n */\n isSingleVersion(input: string): boolean;\n\n /**\n * Check whether the `version` is considered to be \"stable\".\n */\n isStable(version: string): boolean;\n\n /**\n * Determines whether the version is compatible with the current one,\n * in some manager-dependent way.\n *\n * For most managers, all valid versions are compatible between each other.\n *\n * However, for example, Docker versions `1.2.3` and `1.2.4-alpine` are not compatible,\n * i.e. `1.2.4-alpine` is not a valid upgrade for `1.2.3`.\n */\n isCompatible(version: string, current?: string): boolean;\n\n isBreaking?(current: string, version: string): boolean;\n\n // digestion of version\n\n getMajor(version: string | SemVer): null | number;\n getMinor(version: string | SemVer): null | number;\n getPatch(version: string | SemVer): null | number;\n\n // comparison\n\n /**\n * Check whether `version` and `other` are logically equivalent, even if\n * they're not the exact same string.\n *\n * For example, with Semver the build metadata should be ignored when comparing.\n */\n equals(version: string, other: string): boolean;\n\n /**\n * Check whether `version` is \"greater\" than the `other` version.\n */\n isGreaterThan(version: string, other: string): boolean;\n\n /**\n * Check whether the `version` is \"less\" than all the versions possible in\n * the `range`.\n */\n isLessThanRange?(version: string, range: string): boolean;\n\n /**\n * Select the highest version from `versions` that is within the given\n * `range` constraint, or return `null` if there is no matching version.\n */\n getSatisfyingVersion(versions: string[], range: string): string | null;\n\n /**\n * Select the lowest version from `versions` that is within the given\n * `range` constraint, or return `null` if there is no matching version.\n */\n minSatisfyingVersion(versions: string[], range: string): string | null;\n\n /**\n * Calculate a new version constraint based on the current constraint, the\n * `rangeStrategy` option, and the current and new version.\n */\n getNewValue(newValueConfig: NewValueConfig): string | null;\n\n /**\n * Convert the `newVersion` to a pinned value.\n * @param newVersion\n */\n getPinnedValue?(newVersion: string): string;\n\n /**\n * Compare two versions. Return `0` if `v1 == v2`, or `1` if `v1` is\n * greater, or `-1` if `v2` is greater.\n */\n sortVersions(version: string, other: string): number;\n\n /**\n * Check whether the `version` satisfies the `range` constraint.\n */\n matches(version: string, range: string): boolean;\n\n valueToVersion?(version: string): string;\n\n /**\n * @returns true if subRange is entirely contained by superRange, false otherwise,\n * and undefined if it cannot determine it.\n *\n * @param subRange - the sub range\n * @param superRange - the dom range\n */\n subset?(subRange: string, superRange: string): boolean | undefined;\n\n /**\n * Checks whether subRange intersects superRange.\n */\n intersects?(subRange: string, superRange: string): boolean;\n\n /**\n * Return whether unstable-to-unstable upgrades within the same major version are allowed.\n */\n allowUnstableMajorUpgrades?: boolean;\n\n /**\n * Check whether the `type` in the `a` and `b` version numbers match.\n * Both `a` and `b` must pass `isVersion`.\n */\n isSame?(type: 'major' | 'minor' | 'patch', a: string, b: string): boolean;\n}\n\nexport type VersioningApiConstructor = new (config?: string) => VersioningApi;\n"]}
package/dist/renovate.js CHANGED
File without changes
@@ -43,21 +43,32 @@ function cache({ namespace, key, cacheable = () => true, ttlMinutes = 30, }) {
43
43
  const releaseLock = await (0, mutex_1.acquireLock)(finalKey, finalNamespace);
44
44
  try {
45
45
  const oldRecord = await packageCache.get(finalNamespace, finalKey);
46
- const ttlValues = (0, ttl_1.resolveTtlValues)(finalNamespace, ttlMinutes);
47
- const softTtl = ttlValues.softTtlMinutes;
48
- const hardTtl = methodName === 'getReleases' || methodName === 'getDigest'
49
- ? ttlValues.hardTtlMinutes
50
- : // Skip two-tier TTL for any intermediate data fetching
51
- softTtl;
46
+ // eslint-disable-next-line prefer-const
47
+ let { softTtlMinutes, hardTtlMinutes } = (0, ttl_1.resolveTtlValues)(finalNamespace, ttlMinutes);
48
+ // The separation between "soft" and "hard" TTL allows us to treat
49
+ // data as obsolete according to the "soft" TTL while physically storing it
50
+ // according to the "hard" TTL.
51
+ //
52
+ // This helps us return obsolete data in case of upstream server errors,
53
+ // which is more useful than throwing exceptions ourselves.
54
+ //
55
+ // However, since the default hard TTL is one week, it could create
56
+ // unnecessary pressure on storage volume. Therefore,
57
+ // we cache only `getReleases` and `getDigest` results for an extended period.
58
+ //
59
+ // For other method names being decorated, the "soft" just equals the "hard" ttl.
60
+ if (methodName !== 'getReleases' && methodName !== 'getDigest') {
61
+ hardTtlMinutes = softTtlMinutes;
62
+ }
52
63
  let oldData;
53
64
  if (oldRecord) {
54
65
  const now = luxon_1.DateTime.local();
55
66
  const cachedAt = luxon_1.DateTime.fromISO(oldRecord.cachedAt);
56
- const softDeadline = cachedAt.plus({ minutes: softTtl });
67
+ const softDeadline = cachedAt.plus({ minutes: softTtlMinutes });
57
68
  if (now < softDeadline) {
58
69
  return oldRecord.value;
59
70
  }
60
- const hardDeadline = cachedAt.plus({ minutes: hardTtl });
71
+ const hardDeadline = cachedAt.plus({ minutes: hardTtlMinutes });
61
72
  if (now < hardDeadline) {
62
73
  oldData = oldRecord.value;
63
74
  }
@@ -80,7 +91,7 @@ function cache({ namespace, key, cacheable = () => true, ttlMinutes = 30, }) {
80
91
  cachedAt: luxon_1.DateTime.local().toISO(),
81
92
  value: newData,
82
93
  };
83
- await packageCache.setWithRawTtl(finalNamespace, finalKey, newRecord, hardTtl);
94
+ await packageCache.setWithRawTtl(finalNamespace, finalKey, newRecord, hardTtlMinutes);
84
95
  }
85
96
  return newData;
86
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../../../lib/util/cache/package/decorator.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { DateTime } from 'luxon';\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport type { Decorator } from '../../decorator';\nimport { decorate } from '../../decorator';\nimport { acquireLock } from '../../mutex';\nimport { resolveTtlValues } from './ttl';\nimport type { DecoratorCachedRecord, PackageCacheNamespace } from './types';\nimport * as packageCache from '.';\n\ntype HashFunction<T extends any[] = any[]> = (...args: T) => string;\ntype NamespaceFunction<T extends any[] = any[]> = (\n ...args: T\n) => PackageCacheNamespace;\ntype BooleanFunction<T extends any[] = any[]> = (...args: T) => boolean;\n\n/**\n * The cache decorator parameters.\n */\ninterface CacheParameters {\n /**\n * The cache namespace\n * Either a string or a hash function that generates a string\n */\n namespace: PackageCacheNamespace | NamespaceFunction;\n\n /**\n * The cache key\n * Either a string or a hash function that generates a string\n */\n key: string | HashFunction;\n\n /**\n * A function that returns true if a result is cacheable\n * Used to prevent caching of private, sensitive, results\n */\n cacheable?: BooleanFunction;\n\n /**\n * The TTL (or expiry) of the key in minutes\n */\n ttlMinutes?: number;\n}\n\n/**\n * caches the result of a decorated method.\n */\nexport function cache<T>({\n namespace,\n key,\n cacheable = () => true,\n ttlMinutes = 30,\n}: CacheParameters): Decorator<T> {\n return decorate(async ({ args, instance, callback, methodName }) => {\n const cachePrivatePackages = GlobalConfig.get(\n 'cachePrivatePackages',\n false,\n );\n const isCacheable = cachePrivatePackages || cacheable.apply(instance, args);\n if (!isCacheable) {\n return callback();\n }\n\n let finalNamespace: PackageCacheNamespace | undefined;\n if (is.string(namespace)) {\n finalNamespace = namespace;\n } else if (is.function(namespace)) {\n finalNamespace = namespace.apply(instance, args);\n }\n\n let finalKey: string | undefined;\n if (is.string(key)) {\n finalKey = key;\n } else if (is.function(key)) {\n finalKey = key.apply(instance, args);\n }\n\n // istanbul ignore if\n if (!finalNamespace || !finalKey) {\n return callback();\n }\n\n finalKey = `cache-decorator:${finalKey}`;\n\n // prevent concurrent processing and cache writes\n const releaseLock = await acquireLock(finalKey, finalNamespace);\n\n try {\n const oldRecord = await packageCache.get<DecoratorCachedRecord>(\n finalNamespace,\n finalKey,\n );\n\n const ttlValues = resolveTtlValues(finalNamespace, ttlMinutes);\n const softTtl = ttlValues.softTtlMinutes;\n const hardTtl =\n methodName === 'getReleases' || methodName === 'getDigest'\n ? ttlValues.hardTtlMinutes\n : // Skip two-tier TTL for any intermediate data fetching\n softTtl;\n\n let oldData: unknown;\n if (oldRecord) {\n const now = DateTime.local();\n const cachedAt = DateTime.fromISO(oldRecord.cachedAt);\n\n const softDeadline = cachedAt.plus({ minutes: softTtl });\n if (now < softDeadline) {\n return oldRecord.value;\n }\n\n const hardDeadline = cachedAt.plus({ minutes: hardTtl });\n if (now < hardDeadline) {\n oldData = oldRecord.value;\n }\n }\n\n let newData: unknown;\n if (oldData) {\n try {\n newData = await callback();\n } catch (err) {\n logger.debug(\n { err },\n 'Package cache decorator: callback error, returning old data',\n );\n return oldData;\n }\n } else {\n newData = await callback();\n }\n\n if (!is.undefined(newData)) {\n const newRecord: DecoratorCachedRecord = {\n cachedAt: DateTime.local().toISO(),\n value: newData,\n };\n await packageCache.setWithRawTtl(\n finalNamespace,\n finalKey,\n newRecord,\n hardTtl,\n );\n }\n\n return newData;\n } finally {\n releaseLock();\n }\n });\n}\n"]}
1
+ {"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../../../lib/util/cache/package/decorator.ts"],"names":[],"mappings":";;AAgDA,sBAqHC;;AArKD,kEAAkC;AAClC,iCAAiC;AACjC,mDAAsD;AACtD,4CAAyC;AAEzC,+CAA2C;AAC3C,uCAA0C;AAC1C,+BAAyC;AAEzC,wDAAkC;AAoClC;;GAEG;AACH,SAAgB,KAAK,CAAI,EACvB,SAAS,EACT,GAAG,EACH,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,EACtB,UAAU,GAAG,EAAE,GACC;IAChB,OAAO,IAAA,oBAAQ,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;QACjE,MAAM,oBAAoB,GAAG,qBAAY,CAAC,GAAG,CAC3C,sBAAsB,EACtB,KAAK,CACN,CAAC;QACF,MAAM,WAAW,GAAG,oBAAoB,IAAI,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5E,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,QAAQ,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,cAAiD,CAAC;QACtD,IAAI,YAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACzB,cAAc,GAAG,SAAS,CAAC;QAC7B,CAAC;aAAM,IAAI,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,QAA4B,CAAC;QACjC,IAAI,YAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,QAAQ,GAAG,GAAG,CAAC;QACjB,CAAC;aAAM,IAAI,YAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;QAED,qBAAqB;QACrB,IAAI,CAAC,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,OAAO,QAAQ,EAAE,CAAC;QACpB,CAAC;QAED,QAAQ,GAAG,mBAAmB,QAAQ,EAAE,CAAC;QAEzC,iDAAiD;QACjD,MAAM,WAAW,GAAG,MAAM,IAAA,mBAAW,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAEhE,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,GAAG,CACtC,cAAc,EACd,QAAQ,CACT,CAAC;YAEF,wCAAwC;YACxC,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,IAAA,sBAAgB,EACvD,cAAc,EACd,UAAU,CACX,CAAC;YAEF,kEAAkE;YAClE,2EAA2E;YAC3E,+BAA+B;YAC/B,EAAE;YACF,wEAAwE;YACxE,2DAA2D;YAC3D,EAAE;YACF,mEAAmE;YACnE,qDAAqD;YACrD,8EAA8E;YAC9E,EAAE;YACF,iFAAiF;YACjF,IAAI,UAAU,KAAK,aAAa,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;gBAC/D,cAAc,GAAG,cAAc,CAAC;YAClC,CAAC;YAED,IAAI,OAAgB,CAAC;YACrB,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,GAAG,GAAG,gBAAQ,CAAC,KAAK,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,gBAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAEtD,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;gBAChE,IAAI,GAAG,GAAG,YAAY,EAAE,CAAC;oBACvB,OAAO,SAAS,CAAC,KAAK,CAAC;gBACzB,CAAC;gBAED,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;gBAChE,IAAI,GAAG,GAAG,YAAY,EAAE,CAAC;oBACvB,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,IAAI,OAAgB,CAAC;YACrB,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC;oBACH,OAAO,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC7B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,eAAM,CAAC,KAAK,CACV,EAAE,GAAG,EAAE,EACP,6DAA6D,CAC9D,CAAC;oBACF,OAAO,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,MAAM,QAAQ,EAAE,CAAC;YAC7B,CAAC;YAED,IAAI,CAAC,YAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAA0B;oBACvC,QAAQ,EAAE,gBAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE;oBAClC,KAAK,EAAE,OAAO;iBACf,CAAC;gBACF,MAAM,YAAY,CAAC,aAAa,CAC9B,cAAc,EACd,QAAQ,EACR,SAAS,EACT,cAAc,CACf,CAAC;YACJ,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { DateTime } from 'luxon';\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport type { Decorator } from '../../decorator';\nimport { decorate } from '../../decorator';\nimport { acquireLock } from '../../mutex';\nimport { resolveTtlValues } from './ttl';\nimport type { DecoratorCachedRecord, PackageCacheNamespace } from './types';\nimport * as packageCache from '.';\n\ntype HashFunction<T extends any[] = any[]> = (...args: T) => string;\ntype NamespaceFunction<T extends any[] = any[]> = (\n ...args: T\n) => PackageCacheNamespace;\ntype BooleanFunction<T extends any[] = any[]> = (...args: T) => boolean;\n\n/**\n * The cache decorator parameters.\n */\ninterface CacheParameters {\n /**\n * The cache namespace\n * Either a string or a hash function that generates a string\n */\n namespace: PackageCacheNamespace | NamespaceFunction;\n\n /**\n * The cache key\n * Either a string or a hash function that generates a string\n */\n key: string | HashFunction;\n\n /**\n * A function that returns true if a result is cacheable\n * Used to prevent caching of private, sensitive, results\n */\n cacheable?: BooleanFunction;\n\n /**\n * The TTL (or expiry) of the key in minutes\n */\n ttlMinutes?: number;\n}\n\n/**\n * caches the result of a decorated method.\n */\nexport function cache<T>({\n namespace,\n key,\n cacheable = () => true,\n ttlMinutes = 30,\n}: CacheParameters): Decorator<T> {\n return decorate(async ({ args, instance, callback, methodName }) => {\n const cachePrivatePackages = GlobalConfig.get(\n 'cachePrivatePackages',\n false,\n );\n const isCacheable = cachePrivatePackages || cacheable.apply(instance, args);\n if (!isCacheable) {\n return callback();\n }\n\n let finalNamespace: PackageCacheNamespace | undefined;\n if (is.string(namespace)) {\n finalNamespace = namespace;\n } else if (is.function(namespace)) {\n finalNamespace = namespace.apply(instance, args);\n }\n\n let finalKey: string | undefined;\n if (is.string(key)) {\n finalKey = key;\n } else if (is.function(key)) {\n finalKey = key.apply(instance, args);\n }\n\n // istanbul ignore if\n if (!finalNamespace || !finalKey) {\n return callback();\n }\n\n finalKey = `cache-decorator:${finalKey}`;\n\n // prevent concurrent processing and cache writes\n const releaseLock = await acquireLock(finalKey, finalNamespace);\n\n try {\n const oldRecord = await packageCache.get<DecoratorCachedRecord>(\n finalNamespace,\n finalKey,\n );\n\n // eslint-disable-next-line prefer-const\n let { softTtlMinutes, hardTtlMinutes } = resolveTtlValues(\n finalNamespace,\n ttlMinutes,\n );\n\n // The separation between \"soft\" and \"hard\" TTL allows us to treat\n // data as obsolete according to the \"soft\" TTL while physically storing it\n // according to the \"hard\" TTL.\n //\n // This helps us return obsolete data in case of upstream server errors,\n // which is more useful than throwing exceptions ourselves.\n //\n // However, since the default hard TTL is one week, it could create\n // unnecessary pressure on storage volume. Therefore,\n // we cache only `getReleases` and `getDigest` results for an extended period.\n //\n // For other method names being decorated, the \"soft\" just equals the \"hard\" ttl.\n if (methodName !== 'getReleases' && methodName !== 'getDigest') {\n hardTtlMinutes = softTtlMinutes;\n }\n\n let oldData: unknown;\n if (oldRecord) {\n const now = DateTime.local();\n const cachedAt = DateTime.fromISO(oldRecord.cachedAt);\n\n const softDeadline = cachedAt.plus({ minutes: softTtlMinutes });\n if (now < softDeadline) {\n return oldRecord.value;\n }\n\n const hardDeadline = cachedAt.plus({ minutes: hardTtlMinutes });\n if (now < hardDeadline) {\n oldData = oldRecord.value;\n }\n }\n\n let newData: unknown;\n if (oldData) {\n try {\n newData = await callback();\n } catch (err) {\n logger.debug(\n { err },\n 'Package cache decorator: callback error, returning old data',\n );\n return oldData;\n }\n } else {\n newData = await callback();\n }\n\n if (!is.undefined(newData)) {\n const newRecord: DecoratorCachedRecord = {\n cachedAt: DateTime.local().toISO(),\n value: newData,\n };\n await packageCache.setWithRawTtl(\n finalNamespace,\n finalKey,\n newRecord,\n hardTtlMinutes,\n );\n }\n\n return newData;\n } finally {\n releaseLock();\n }\n });\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { PackageCacheNamespace } from './types';
2
2
  export declare function get<T = never>(namespace: PackageCacheNamespace, key: string): Promise<T | undefined>;
3
- export declare function set(namespace: PackageCacheNamespace, key: string, value: unknown, ttlMinutes?: number): Promise<void>;
3
+ export declare function set(namespace: PackageCacheNamespace, key: string, value: unknown, hardTtlMinutes?: number): Promise<void>;
4
4
  export declare function init(cacheDir: string): string;
5
5
  export declare function cleanup(): Promise<void>;
@@ -43,15 +43,15 @@ async function get(namespace, key) {
43
43
  }
44
44
  return undefined;
45
45
  }
46
- async function set(namespace, key, value, ttlMinutes = 5) {
46
+ async function set(namespace, key, value, hardTtlMinutes = 5) {
47
47
  if (!cacheFileName) {
48
48
  return;
49
49
  }
50
- logger_1.logger.trace({ namespace, key, ttlMinutes }, 'Saving cached value');
50
+ logger_1.logger.trace({ namespace, key, hardTtlMinutes }, 'Saving cached value');
51
51
  await cacache_1.default.put(cacheFileName, getKey(namespace, key), JSON.stringify({
52
52
  compress: true,
53
53
  value: await (0, compress_1.compressToBase64)(JSON.stringify(value)),
54
- expiry: luxon_1.DateTime.local().plus({ minutes: ttlMinutes }),
54
+ expiry: luxon_1.DateTime.local().plus({ minutes: hardTtlMinutes }),
55
55
  }));
56
56
  }
57
57
  function init(cacheDir) {
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../lib/util/cache/package/file.ts"],"names":[],"mappings":"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","sourcesContent":["import cacache from 'cacache';\nimport { DateTime } from 'luxon';\nimport upath from 'upath';\nimport { logger } from '../../../logger';\nimport { compressToBase64, decompressFromBase64 } from '../../compress';\nimport type { PackageCacheNamespace } from './types';\n\nfunction getKey(namespace: PackageCacheNamespace, key: string): string {\n return `${namespace}-${key}`;\n}\n\nlet cacheFileName: string;\n\nasync function rm(\n namespace: PackageCacheNamespace,\n key: string,\n): Promise<void> {\n logger.trace({ namespace, key }, 'Removing cache entry');\n await cacache.rm.entry(cacheFileName, getKey(namespace, key));\n}\n\nexport async function get<T = never>(\n namespace: PackageCacheNamespace,\n key: string,\n): Promise<T | undefined> {\n if (!cacheFileName) {\n return undefined;\n }\n try {\n const res = await cacache.get(cacheFileName, getKey(namespace, key));\n const cachedValue = JSON.parse(res.data.toString());\n if (cachedValue) {\n if (DateTime.local() < DateTime.fromISO(cachedValue.expiry)) {\n logger.trace({ namespace, key }, 'Returning cached value');\n // istanbul ignore if\n if (!cachedValue.compress) {\n return cachedValue.value;\n }\n const res = await decompressFromBase64(cachedValue.value);\n return JSON.parse(res);\n }\n await rm(namespace, key);\n }\n } catch {\n logger.trace({ namespace, key }, 'Cache miss');\n }\n return undefined;\n}\n\nexport async function set(\n namespace: PackageCacheNamespace,\n key: string,\n value: unknown,\n ttlMinutes = 5,\n): Promise<void> {\n if (!cacheFileName) {\n return;\n }\n logger.trace({ namespace, key, ttlMinutes }, 'Saving cached value');\n await cacache.put(\n cacheFileName,\n getKey(namespace, key),\n JSON.stringify({\n compress: true,\n value: await compressToBase64(JSON.stringify(value)),\n expiry: DateTime.local().plus({ minutes: ttlMinutes }),\n }),\n );\n}\n\nexport function init(cacheDir: string): string {\n cacheFileName = upath.join(cacheDir, '/renovate/renovate-cache-v1');\n logger.debug('Initializing Renovate internal cache into ' + cacheFileName);\n return cacheFileName;\n}\n\nexport async function cleanup(): Promise<void> {\n logger.debug('Checking file package cache for expired items');\n let totalCount = 0;\n let deletedCount = 0;\n const startTime = Date.now();\n let errorCount = 0;\n for await (const item of cacache.ls.stream(cacheFileName)) {\n try {\n totalCount += 1;\n const cachedItem = item as unknown as cacache.CacheObject;\n const res = await cacache.get(cacheFileName, cachedItem.key);\n let cachedValue: any;\n try {\n cachedValue = JSON.parse(res.data.toString());\n } catch {\n logger.debug('Error parsing cached value - deleting');\n }\n if (\n !cachedValue ||\n (cachedValue?.expiry &&\n DateTime.local() > DateTime.fromISO(cachedValue.expiry))\n ) {\n await cacache.rm.entry(cacheFileName, cachedItem.key);\n await cacache.rm.content(cacheFileName, cachedItem.integrity);\n deletedCount += 1;\n }\n } catch (err) /* istanbul ignore next */ {\n logger.trace({ err }, 'Error cleaning up cache entry');\n errorCount += 1;\n }\n }\n // istanbul ignore if: cannot reproduce error\n if (errorCount > 0) {\n logger.debug(`Error count cleaning up cache: ${errorCount}`);\n }\n const durationMs = Math.round(Date.now() - startTime);\n logger.debug(\n `Deleted ${deletedCount} of ${totalCount} file cached entries in ${durationMs}ms`,\n );\n}\n"]}
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../lib/util/cache/package/file.ts"],"names":[],"mappings":"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","sourcesContent":["import cacache from 'cacache';\nimport { DateTime } from 'luxon';\nimport upath from 'upath';\nimport { logger } from '../../../logger';\nimport { compressToBase64, decompressFromBase64 } from '../../compress';\nimport type { PackageCacheNamespace } from './types';\n\nfunction getKey(namespace: PackageCacheNamespace, key: string): string {\n return `${namespace}-${key}`;\n}\n\nlet cacheFileName: string;\n\nasync function rm(\n namespace: PackageCacheNamespace,\n key: string,\n): Promise<void> {\n logger.trace({ namespace, key }, 'Removing cache entry');\n await cacache.rm.entry(cacheFileName, getKey(namespace, key));\n}\n\nexport async function get<T = never>(\n namespace: PackageCacheNamespace,\n key: string,\n): Promise<T | undefined> {\n if (!cacheFileName) {\n return undefined;\n }\n try {\n const res = await cacache.get(cacheFileName, getKey(namespace, key));\n const cachedValue = JSON.parse(res.data.toString());\n if (cachedValue) {\n if (DateTime.local() < DateTime.fromISO(cachedValue.expiry)) {\n logger.trace({ namespace, key }, 'Returning cached value');\n // istanbul ignore if\n if (!cachedValue.compress) {\n return cachedValue.value;\n }\n const res = await decompressFromBase64(cachedValue.value);\n return JSON.parse(res);\n }\n await rm(namespace, key);\n }\n } catch {\n logger.trace({ namespace, key }, 'Cache miss');\n }\n return undefined;\n}\n\nexport async function set(\n namespace: PackageCacheNamespace,\n key: string,\n value: unknown,\n hardTtlMinutes = 5,\n): Promise<void> {\n if (!cacheFileName) {\n return;\n }\n logger.trace({ namespace, key, hardTtlMinutes }, 'Saving cached value');\n await cacache.put(\n cacheFileName,\n getKey(namespace, key),\n JSON.stringify({\n compress: true,\n value: await compressToBase64(JSON.stringify(value)),\n expiry: DateTime.local().plus({ minutes: hardTtlMinutes }),\n }),\n );\n}\n\nexport function init(cacheDir: string): string {\n cacheFileName = upath.join(cacheDir, '/renovate/renovate-cache-v1');\n logger.debug('Initializing Renovate internal cache into ' + cacheFileName);\n return cacheFileName;\n}\n\nexport async function cleanup(): Promise<void> {\n logger.debug('Checking file package cache for expired items');\n let totalCount = 0;\n let deletedCount = 0;\n const startTime = Date.now();\n let errorCount = 0;\n for await (const item of cacache.ls.stream(cacheFileName)) {\n try {\n totalCount += 1;\n const cachedItem = item as unknown as cacache.CacheObject;\n const res = await cacache.get(cacheFileName, cachedItem.key);\n let cachedValue: any;\n try {\n cachedValue = JSON.parse(res.data.toString());\n } catch {\n logger.debug('Error parsing cached value - deleting');\n }\n if (\n !cachedValue ||\n (cachedValue?.expiry &&\n DateTime.local() > DateTime.fromISO(cachedValue.expiry))\n ) {\n await cacache.rm.entry(cacheFileName, cachedItem.key);\n await cacache.rm.content(cacheFileName, cachedItem.integrity);\n deletedCount += 1;\n }\n } catch (err) /* istanbul ignore next */ {\n logger.trace({ err }, 'Error cleaning up cache entry');\n errorCount += 1;\n }\n }\n // istanbul ignore if: cannot reproduce error\n if (errorCount > 0) {\n logger.debug(`Error count cleaning up cache: ${errorCount}`);\n }\n const durationMs = Math.round(Date.now() - startTime);\n logger.debug(\n `Deleted ${deletedCount} of ${totalCount} file cached entries in ${durationMs}ms`,\n );\n}\n"]}
@@ -1,10 +1,17 @@
1
1
  import type { AllConfig } from '../../../config/types';
2
2
  import type { PackageCacheNamespace } from './types';
3
+ declare let cacheType: 'redis' | 'sqlite' | 'memory' | 'file' | undefined;
4
+ export declare function getCacheType(): typeof cacheType;
3
5
  export declare function get<T = any>(namespace: PackageCacheNamespace, key: string): Promise<T | undefined>;
4
- export declare function set(namespace: PackageCacheNamespace, key: string, value: unknown, minutes: number): Promise<void>;
5
6
  /**
7
+ * Set cache value with user-defined TTL overrides.
8
+ */
9
+ export declare function set(namespace: PackageCacheNamespace, key: string, value: unknown, hardTtlMinutes: number): Promise<void>;
10
+ /**
11
+ * Set cache value ignoring user-defined TTL overrides.
6
12
  * This MUST NOT be used outside of cache implementation
7
13
  */
8
- export declare function setWithRawTtl(namespace: PackageCacheNamespace, key: string, value: unknown, minutes: number): Promise<void>;
14
+ export declare function setWithRawTtl(namespace: PackageCacheNamespace, key: string, value: unknown, hardTtlMinutes: number): Promise<void>;
9
15
  export declare function init(config: AllConfig): Promise<void>;
10
16
  export declare function cleanup(config: AllConfig): Promise<void>;
17
+ export {};
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCacheType = getCacheType;
3
4
  exports.get = get;
4
5
  exports.set = set;
5
6
  exports.setWithRawTtl = setWithRawTtl;
@@ -15,6 +16,11 @@ const redisCache = tslib_1.__importStar(require("./redis"));
15
16
  const sqlite_1 = require("./sqlite");
16
17
  const ttl_1 = require("./ttl");
17
18
  let cacheProxy;
19
+ let cacheType;
20
+ /* v8 ignore start -- not important */
21
+ function getCacheType() {
22
+ return cacheType;
23
+ } /* v8 ignore stop */
18
24
  async function get(namespace, key) {
19
25
  if (!cacheProxy) {
20
26
  return undefined;
@@ -28,33 +34,40 @@ async function get(namespace, key) {
28
34
  const result = await p;
29
35
  return result;
30
36
  }
31
- async function set(namespace, key, value, minutes) {
32
- const rawTtl = (0, ttl_1.getTtlOverride)(namespace) ?? minutes;
37
+ /**
38
+ * Set cache value with user-defined TTL overrides.
39
+ */
40
+ async function set(namespace, key, value, hardTtlMinutes) {
41
+ const rawTtl = (0, ttl_1.getTtlOverride)(namespace) ?? hardTtlMinutes;
33
42
  await setWithRawTtl(namespace, key, value, rawTtl);
34
43
  }
35
44
  /**
45
+ * Set cache value ignoring user-defined TTL overrides.
36
46
  * This MUST NOT be used outside of cache implementation
37
47
  */
38
- async function setWithRawTtl(namespace, key, value, minutes) {
48
+ async function setWithRawTtl(namespace, key, value, hardTtlMinutes) {
39
49
  if (!cacheProxy) {
40
50
  return;
41
51
  }
42
- await stats_1.PackageCacheStats.wrapSet(() => cacheProxy.set(namespace, key, value, minutes));
52
+ await stats_1.PackageCacheStats.wrapSet(() => cacheProxy.set(namespace, key, value, hardTtlMinutes));
43
53
  const combinedKey = (0, key_1.getCombinedKey)(namespace, key);
44
54
  const p = Promise.resolve(value);
45
55
  memCache.set(combinedKey, p);
46
56
  }
47
57
  async function init(config) {
58
+ cacheType = undefined;
48
59
  if (config.redisUrl) {
49
60
  await redisCache.init(config.redisUrl, config.redisPrefix);
50
61
  cacheProxy = {
51
62
  get: redisCache.get,
52
63
  set: redisCache.set,
53
64
  };
65
+ cacheType = 'redis';
54
66
  return;
55
67
  }
56
68
  if ((0, env_1.getEnv)().RENOVATE_X_SQLITE_PACKAGE_CACHE) {
57
69
  cacheProxy = await sqlite_1.SqlitePackageCache.init(config.cacheDir);
70
+ cacheType = 'sqlite';
58
71
  return;
59
72
  }
60
73
  if (config.cacheDir) {
@@ -64,10 +77,12 @@ async function init(config) {
64
77
  set: fileCache.set,
65
78
  cleanup: fileCache.cleanup,
66
79
  };
80
+ cacheType = 'file';
67
81
  return;
68
82
  }
69
83
  }
70
84
  async function cleanup(config) {
85
+ cacheType = undefined;
71
86
  if (config?.redisUrl) {
72
87
  await redisCache.end();
73
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/util/cache/package/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AllConfig } from '../../../config/types';\nimport { getEnv } from '../../env';\nimport { PackageCacheStats } from '../../stats';\nimport * as memCache from '../memory';\nimport * as fileCache from './file';\nimport { getCombinedKey } from './key';\nimport * as redisCache from './redis';\nimport { SqlitePackageCache } from './sqlite';\nimport { getTtlOverride } from './ttl';\nimport type { PackageCache, PackageCacheNamespace } from './types';\n\nlet cacheProxy: PackageCache | undefined;\n\nexport async function get<T = any>(\n namespace: PackageCacheNamespace,\n key: string,\n): Promise<T | undefined> {\n if (!cacheProxy) {\n return undefined;\n }\n\n const combinedKey = getCombinedKey(namespace, key);\n let p = memCache.get(combinedKey);\n if (!p) {\n p = PackageCacheStats.wrapGet(() =>\n cacheProxy!.get<number[]>(namespace, key),\n );\n memCache.set(combinedKey, p);\n }\n\n const result = await p;\n return result;\n}\n\nexport async function set(\n namespace: PackageCacheNamespace,\n key: string,\n value: unknown,\n minutes: number,\n): Promise<void> {\n const rawTtl = getTtlOverride(namespace) ?? minutes;\n await setWithRawTtl(namespace, key, value, rawTtl);\n}\n\n/**\n * This MUST NOT be used outside of cache implementation\n */\nexport async function setWithRawTtl(\n namespace: PackageCacheNamespace,\n key: string,\n value: unknown,\n minutes: number,\n): Promise<void> {\n if (!cacheProxy) {\n return;\n }\n\n await PackageCacheStats.wrapSet(() =>\n cacheProxy!.set(namespace, key, value, minutes),\n );\n\n const combinedKey = getCombinedKey(namespace, key);\n const p = Promise.resolve(value);\n memCache.set(combinedKey, p);\n}\n\nexport async function init(config: AllConfig): Promise<void> {\n if (config.redisUrl) {\n await redisCache.init(config.redisUrl, config.redisPrefix);\n cacheProxy = {\n get: redisCache.get,\n set: redisCache.set,\n };\n return;\n }\n\n if (getEnv().RENOVATE_X_SQLITE_PACKAGE_CACHE) {\n cacheProxy = await SqlitePackageCache.init(config.cacheDir!);\n return;\n }\n\n if (config.cacheDir) {\n fileCache.init(config.cacheDir);\n cacheProxy = {\n get: fileCache.get,\n set: fileCache.set,\n cleanup: fileCache.cleanup,\n };\n return;\n }\n}\n\nexport async function cleanup(config: AllConfig): Promise<void> {\n if (config?.redisUrl) {\n await redisCache.end();\n }\n if (cacheProxy?.cleanup) {\n await cacheProxy.cleanup();\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/util/cache/package/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AllConfig } from '../../../config/types';\nimport { getEnv } from '../../env';\nimport { PackageCacheStats } from '../../stats';\nimport * as memCache from '../memory';\nimport * as fileCache from './file';\nimport { getCombinedKey } from './key';\nimport * as redisCache from './redis';\nimport { SqlitePackageCache } from './sqlite';\nimport { getTtlOverride } from './ttl';\nimport type { PackageCache, PackageCacheNamespace } from './types';\n\nlet cacheProxy: PackageCache | undefined;\n\nlet cacheType: 'redis' | 'sqlite' | 'memory' | 'file' | undefined;\n\n/* v8 ignore start -- not important */\nexport function getCacheType(): typeof cacheType {\n return cacheType;\n} /* v8 ignore stop */\n\nexport async function get<T = any>(\n namespace: PackageCacheNamespace,\n key: string,\n): Promise<T | undefined> {\n if (!cacheProxy) {\n return undefined;\n }\n\n const combinedKey = getCombinedKey(namespace, key);\n let p = memCache.get(combinedKey);\n if (!p) {\n p = PackageCacheStats.wrapGet(() =>\n cacheProxy!.get<number[]>(namespace, key),\n );\n memCache.set(combinedKey, p);\n }\n\n const result = await p;\n return result;\n}\n\n/**\n * Set cache value with user-defined TTL overrides.\n */\nexport async function set(\n namespace: PackageCacheNamespace,\n key: string,\n value: unknown,\n hardTtlMinutes: number,\n): Promise<void> {\n const rawTtl = getTtlOverride(namespace) ?? hardTtlMinutes;\n await setWithRawTtl(namespace, key, value, rawTtl);\n}\n\n/**\n * Set cache value ignoring user-defined TTL overrides.\n * This MUST NOT be used outside of cache implementation\n */\nexport async function setWithRawTtl(\n namespace: PackageCacheNamespace,\n key: string,\n value: unknown,\n hardTtlMinutes: number,\n): Promise<void> {\n if (!cacheProxy) {\n return;\n }\n\n await PackageCacheStats.wrapSet(() =>\n cacheProxy!.set(namespace, key, value, hardTtlMinutes),\n );\n\n const combinedKey = getCombinedKey(namespace, key);\n const p = Promise.resolve(value);\n memCache.set(combinedKey, p);\n}\n\nexport async function init(config: AllConfig): Promise<void> {\n cacheType = undefined;\n\n if (config.redisUrl) {\n await redisCache.init(config.redisUrl, config.redisPrefix);\n cacheProxy = {\n get: redisCache.get,\n set: redisCache.set,\n };\n cacheType = 'redis';\n return;\n }\n\n if (getEnv().RENOVATE_X_SQLITE_PACKAGE_CACHE) {\n cacheProxy = await SqlitePackageCache.init(config.cacheDir!);\n cacheType = 'sqlite';\n return;\n }\n\n if (config.cacheDir) {\n fileCache.init(config.cacheDir);\n cacheProxy = {\n get: fileCache.get,\n set: fileCache.set,\n cleanup: fileCache.cleanup,\n };\n cacheType = 'file';\n return;\n }\n}\n\nexport async function cleanup(config: AllConfig): Promise<void> {\n cacheType = undefined;\n if (config?.redisUrl) {\n await redisCache.end();\n }\n if (cacheProxy?.cleanup) {\n await cacheProxy.cleanup();\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
- export declare const packageCacheNamespaces: readonly ["_test-namespace", "changelog-bitbucket-notes@v2", "changelog-bitbucket-release", "changelog-bitbucket-server-notes@v2", "changelog-bitbucket-server-release", "changelog-forgejo-notes@v2", "changelog-forgejo-release", "changelog-gitea-notes@v2", "changelog-gitea-release", "changelog-github-notes@v2", "changelog-github-release", "changelog-gitlab-notes@v2", "changelog-gitlab-release", "datasource-artifactory", "datasource-aws-machine-image", "datasource-aws-rds", "datasource-aws-eks-addon", "datasource-azure-bicep-resource", "datasource-azure-pipelines-tasks", "datasource-bazel", "datasource-bitbucket-tags", "datasource-bitbucket-server-tags", "datasource-bitrise", "datasource-buildpacks-registry", "datasource-cdnjs", "datasource-conan", "datasource-conda", "datasource-cpan", "datasource-crate-metadata", "datasource-crate", "datasource-deb", "datasource-deno", "datasource-docker-architecture", "datasource-docker-hub-cache", "datasource-docker-digest", "datasource-docker-hub-tags", "datasource-docker-imageconfig", "datasource-docker-labels", "datasource-docker-releases-v2", "datasource-docker-tags", "datasource-dotnet-version", "datasource-endoflife-date", "datasource-galaxy-collection", "datasource-galaxy", "datasource-git-refs", "datasource-git-tags", "datasource-git", "datasource-forgejo-releases", "datasource-forgejo-tags", "datasource-gitea-releases", "datasource-gitea-tags", "datasource-github-release-attachments", "datasource-gitlab-packages", "datasource-gitlab-releases", "datasource-gitlab-tags", "datasource-glasskube-packages", "datasource-go-direct", "datasource-go-proxy", "datasource-go", "datasource-golang-version", "datasource-gradle-version", "datasource-helm", "datasource-hermit", "datasource-hex", "datasource-hexpm-bob", "datasource-java-version", "datasource-jenkins-plugins", "datasource-maven:cache-provider", "datasource-maven:postprocess-reject", "datasource-node-version", "datasource-npm:cache-provider", "datasource-nuget-v3", "datasource-orb", "datasource-packagist", "datasource-pod", "datasource-python-version", "datasource-repology", "datasource-rpm", "datasource-ruby-version", "datasource-rubygems", "datasource-sbt-package", "datasource-terraform-module", "datasource-terraform-provider", "datasource-terraform", "datasource-unity3d", "datasource-unity3d-packages", "github-releases-datasource-v2", "github-tags-datasource-v2", "merge-confidence", "preset", "terraform-provider-hash", "url-sha256"];
1
+ export declare const packageCacheNamespaces: readonly ["_test-namespace", "changelog-bitbucket-notes@v2", "changelog-bitbucket-release", "changelog-bitbucket-server-notes@v2", "changelog-bitbucket-server-release", "changelog-forgejo-notes@v2", "changelog-forgejo-release", "changelog-gitea-notes@v2", "changelog-gitea-release", "changelog-github-notes@v2", "changelog-github-release", "changelog-gitlab-notes@v2", "changelog-gitlab-release", "datasource-artifactory", "datasource-aws-machine-image", "datasource-aws-rds", "datasource-aws-eks-addon", "datasource-azure-bicep-resource", "datasource-azure-pipelines-tasks", "datasource-bazel", "datasource-bitbucket-tags", "datasource-bitbucket-server-tags", "datasource-bitrise", "datasource-buildpacks-registry", "datasource-cdnjs", "datasource-conan", "datasource-conda", "datasource-cpan", "datasource-crate-metadata", "datasource-crate", "datasource-deb", "datasource-deno", "datasource-docker-architecture", "datasource-docker-hub-cache", "datasource-docker-digest", "datasource-docker-hub-tags", "datasource-docker-imageconfig", "datasource-docker-labels", "datasource-docker-releases-v2", "datasource-docker-tags", "datasource-dotnet-version", "datasource-endoflife-date", "datasource-galaxy-collection", "datasource-galaxy", "datasource-git-refs", "datasource-git-tags", "datasource-git", "datasource-forgejo-releases", "datasource-forgejo-tags", "datasource-gitea-releases", "datasource-gitea-tags", "datasource-github-release-attachments", "datasource-gitlab-packages", "datasource-gitlab-releases", "datasource-gitlab-tags", "datasource-glasskube-packages", "datasource-go-direct", "datasource-go-proxy", "datasource-go", "datasource-golang-version", "datasource-gradle-version", "datasource-helm", "datasource-hermit", "datasource-hex", "datasource-hexpm-bob", "datasource-java-version", "datasource-jenkins-plugins", "datasource-jsr", "datasource-maven:cache-provider", "datasource-maven:postprocess-reject", "datasource-node-version", "datasource-npm:cache-provider", "datasource-nuget-v3", "datasource-orb", "datasource-packagist", "datasource-pod", "datasource-python-version", "datasource-repology", "datasource-rpm", "datasource-ruby-version", "datasource-rubygems", "datasource-sbt-package", "datasource-terraform-module", "datasource-terraform-provider", "datasource-terraform", "datasource-typst:cache-provider", "datasource-typst:releases", "datasource-unity3d", "datasource-unity3d-packages", "github-releases-datasource-v2", "github-tags-datasource-v2", "merge-confidence", "preset", "terraform-provider-hash", "url-sha256"];
2
2
  export type PackageCacheNamespace = (typeof packageCacheNamespaces)[number] | `datasource-releases-${string}`;
3
3
  export type CombinedKey = `datasource-mem:pkg-fetch:${PackageCacheNamespace}:${string}`;