renovate 43.24.2 → 43.25.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 (262) hide show
  1. package/dist/config/migrations/base/abstract-migration.js.map +1 -1
  2. package/dist/config/schema.js +1 -1
  3. package/dist/config/schema.js.map +1 -1
  4. package/dist/config/types.js.map +1 -1
  5. package/dist/logger/utils.d.ts +1 -1
  6. package/dist/logger/utils.js +1 -1
  7. package/dist/logger/utils.js.map +1 -1
  8. package/dist/modules/datasource/azure-bicep-resource/schema.js +1 -1
  9. package/dist/modules/datasource/azure-bicep-resource/schema.js.map +1 -1
  10. package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
  11. package/dist/modules/datasource/azure-pipelines-tasks/schema.js +1 -1
  12. package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
  13. package/dist/modules/datasource/bazel/schema.js +1 -1
  14. package/dist/modules/datasource/bazel/schema.js.map +1 -1
  15. package/dist/modules/datasource/bitbucket-server-tags/index.js +1 -1
  16. package/dist/modules/datasource/bitbucket-server-tags/index.js.map +1 -1
  17. package/dist/modules/datasource/bitbucket-server-tags/schema.js +1 -1
  18. package/dist/modules/datasource/bitbucket-server-tags/schema.js.map +1 -1
  19. package/dist/modules/datasource/bitrise/schema.js +1 -1
  20. package/dist/modules/datasource/bitrise/schema.js.map +1 -1
  21. package/dist/modules/datasource/buildpacks-registry/index.js +1 -1
  22. package/dist/modules/datasource/buildpacks-registry/index.js.map +1 -1
  23. package/dist/modules/datasource/buildpacks-registry/schema.js +1 -1
  24. package/dist/modules/datasource/buildpacks-registry/schema.js.map +1 -1
  25. package/dist/modules/datasource/cdnjs/index.js +1 -1
  26. package/dist/modules/datasource/cdnjs/index.js.map +1 -1
  27. package/dist/modules/datasource/cdnjs/schema.js +1 -1
  28. package/dist/modules/datasource/cdnjs/schema.js.map +1 -1
  29. package/dist/modules/datasource/conan/schema.js +1 -1
  30. package/dist/modules/datasource/conan/schema.js.map +1 -1
  31. package/dist/modules/datasource/conda/schema/prefix-dev.js +1 -1
  32. package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -1
  33. package/dist/modules/datasource/cpan/schema.js +1 -1
  34. package/dist/modules/datasource/cpan/schema.js.map +1 -1
  35. package/dist/modules/datasource/crate/schema.js +1 -1
  36. package/dist/modules/datasource/crate/schema.js.map +1 -1
  37. package/dist/modules/datasource/custom/schema.js +1 -1
  38. package/dist/modules/datasource/custom/schema.js.map +1 -1
  39. package/dist/modules/datasource/deno/schema.js +1 -1
  40. package/dist/modules/datasource/deno/schema.js.map +1 -1
  41. package/dist/modules/datasource/devbox/schema.js +1 -1
  42. package/dist/modules/datasource/devbox/schema.js.map +1 -1
  43. package/dist/modules/datasource/docker/schema.js +1 -1
  44. package/dist/modules/datasource/docker/schema.js.map +1 -1
  45. package/dist/modules/datasource/dotnet-version/schema.js +1 -1
  46. package/dist/modules/datasource/dotnet-version/schema.js.map +1 -1
  47. package/dist/modules/datasource/endoflife-date/schema.js +1 -1
  48. package/dist/modules/datasource/endoflife-date/schema.js.map +1 -1
  49. package/dist/modules/datasource/forgejo-releases/schema.js +1 -1
  50. package/dist/modules/datasource/forgejo-releases/schema.js.map +1 -1
  51. package/dist/modules/datasource/forgejo-tags/schema.js +1 -1
  52. package/dist/modules/datasource/forgejo-tags/schema.js.map +1 -1
  53. package/dist/modules/datasource/galaxy/schema.js +1 -1
  54. package/dist/modules/datasource/galaxy/schema.js.map +1 -1
  55. package/dist/modules/datasource/galaxy-collection/schema.js +1 -1
  56. package/dist/modules/datasource/galaxy-collection/schema.js.map +1 -1
  57. package/dist/modules/datasource/gitea-releases/schema.js +1 -1
  58. package/dist/modules/datasource/gitea-releases/schema.js.map +1 -1
  59. package/dist/modules/datasource/gitea-tags/schema.js +1 -1
  60. package/dist/modules/datasource/gitea-tags/schema.js.map +1 -1
  61. package/dist/modules/datasource/glasskube-packages/schema.js +1 -1
  62. package/dist/modules/datasource/glasskube-packages/schema.js.map +1 -1
  63. package/dist/modules/datasource/hackage/schema.js +1 -1
  64. package/dist/modules/datasource/hackage/schema.js.map +1 -1
  65. package/dist/modules/datasource/helm/schema.js +1 -1
  66. package/dist/modules/datasource/helm/schema.js.map +1 -1
  67. package/dist/modules/datasource/hex/schema.js +1 -1
  68. package/dist/modules/datasource/hex/schema.js.map +1 -1
  69. package/dist/modules/datasource/jsr/schema.js +1 -1
  70. package/dist/modules/datasource/jsr/schema.js.map +1 -1
  71. package/dist/modules/datasource/nextcloud/schema.js +1 -1
  72. package/dist/modules/datasource/nextcloud/schema.js.map +1 -1
  73. package/dist/modules/datasource/npm/get.js +1 -1
  74. package/dist/modules/datasource/npm/get.js.map +1 -1
  75. package/dist/modules/datasource/packagist/index.js +1 -1
  76. package/dist/modules/datasource/packagist/index.js.map +1 -1
  77. package/dist/modules/datasource/packagist/schema.js +1 -1
  78. package/dist/modules/datasource/packagist/schema.js.map +1 -1
  79. package/dist/modules/datasource/python-version/schema.js +1 -1
  80. package/dist/modules/datasource/python-version/schema.js.map +1 -1
  81. package/dist/modules/datasource/rubygems/index.js.map +1 -1
  82. package/dist/modules/datasource/rubygems/schema.js +1 -1
  83. package/dist/modules/datasource/rubygems/schema.js.map +1 -1
  84. package/dist/modules/datasource/rubygems/versions-endpoint-cache.js +1 -1
  85. package/dist/modules/datasource/rubygems/versions-endpoint-cache.js.map +1 -1
  86. package/dist/modules/datasource/schema.js +1 -1
  87. package/dist/modules/datasource/schema.js.map +1 -1
  88. package/dist/modules/datasource/typst/schema.js +1 -1
  89. package/dist/modules/datasource/typst/schema.js.map +1 -1
  90. package/dist/modules/datasource/unity3d/schema.js +1 -1
  91. package/dist/modules/datasource/unity3d/schema.js.map +1 -1
  92. package/dist/modules/datasource/unity3d-packages/schema.js +1 -1
  93. package/dist/modules/datasource/unity3d-packages/schema.js.map +1 -1
  94. package/dist/modules/manager/argocd/schema.js +1 -1
  95. package/dist/modules/manager/argocd/schema.js.map +1 -1
  96. package/dist/modules/manager/azure-pipelines/schema.js +1 -1
  97. package/dist/modules/manager/azure-pipelines/schema.js.map +1 -1
  98. package/dist/modules/manager/batect/schema.js +1 -1
  99. package/dist/modules/manager/batect/schema.js.map +1 -1
  100. package/dist/modules/manager/bazel/rules/docker.js +1 -1
  101. package/dist/modules/manager/bazel/rules/docker.js.map +1 -1
  102. package/dist/modules/manager/bazel/rules/git.js +1 -1
  103. package/dist/modules/manager/bazel/rules/git.js.map +1 -1
  104. package/dist/modules/manager/bazel/rules/go.js +1 -1
  105. package/dist/modules/manager/bazel/rules/go.js.map +1 -1
  106. package/dist/modules/manager/bazel/rules/http.js +1 -1
  107. package/dist/modules/manager/bazel/rules/http.js.map +1 -1
  108. package/dist/modules/manager/bazel/rules/index.js +1 -1
  109. package/dist/modules/manager/bazel/rules/index.js.map +1 -1
  110. package/dist/modules/manager/bazel/rules/maven.js +1 -1
  111. package/dist/modules/manager/bazel/rules/maven.js.map +1 -1
  112. package/dist/modules/manager/bazel/rules/oci.js +1 -1
  113. package/dist/modules/manager/bazel/rules/oci.js.map +1 -1
  114. package/dist/modules/manager/bazel-module/parser/fragments.js +1 -1
  115. package/dist/modules/manager/bazel-module/parser/fragments.js.map +1 -1
  116. package/dist/modules/manager/bazel-module/parser/maven.js +1 -1
  117. package/dist/modules/manager/bazel-module/parser/maven.js.map +1 -1
  118. package/dist/modules/manager/bazel-module/parser/oci.js +1 -1
  119. package/dist/modules/manager/bazel-module/parser/oci.js.map +1 -1
  120. package/dist/modules/manager/bazel-module/rules-img.js +1 -1
  121. package/dist/modules/manager/bazel-module/rules-img.js.map +1 -1
  122. package/dist/modules/manager/bazel-module/rules.js +1 -1
  123. package/dist/modules/manager/bazel-module/rules.js.map +1 -1
  124. package/dist/modules/manager/bitrise/schema.js +1 -1
  125. package/dist/modules/manager/bitrise/schema.js.map +1 -1
  126. package/dist/modules/manager/buildpacks/schema.js +1 -1
  127. package/dist/modules/manager/buildpacks/schema.js.map +1 -1
  128. package/dist/modules/manager/cargo/schema.js +1 -1
  129. package/dist/modules/manager/cargo/schema.js.map +1 -1
  130. package/dist/modules/manager/circleci/schema.js +1 -1
  131. package/dist/modules/manager/circleci/schema.js.map +1 -1
  132. package/dist/modules/manager/cloudbuild/schema.js +1 -1
  133. package/dist/modules/manager/cloudbuild/schema.js.map +1 -1
  134. package/dist/modules/manager/composer/artifacts.js +1 -1
  135. package/dist/modules/manager/composer/artifacts.js.map +1 -1
  136. package/dist/modules/manager/composer/schema.js +1 -1
  137. package/dist/modules/manager/composer/schema.js.map +1 -1
  138. package/dist/modules/manager/copier/schema.js +1 -1
  139. package/dist/modules/manager/copier/schema.js.map +1 -1
  140. package/dist/modules/manager/crossplane/schema.js +1 -1
  141. package/dist/modules/manager/crossplane/schema.js.map +1 -1
  142. package/dist/modules/manager/crow/schema.js +1 -1
  143. package/dist/modules/manager/crow/schema.js.map +1 -1
  144. package/dist/modules/manager/custom/jsonata/schema.js +1 -1
  145. package/dist/modules/manager/custom/jsonata/schema.js.map +1 -1
  146. package/dist/modules/manager/devbox/schema.js +1 -1
  147. package/dist/modules/manager/devbox/schema.js.map +1 -1
  148. package/dist/modules/manager/devcontainer/schema.js +1 -1
  149. package/dist/modules/manager/devcontainer/schema.js.map +1 -1
  150. package/dist/modules/manager/docker-compose/schema.js +1 -1
  151. package/dist/modules/manager/docker-compose/schema.js.map +1 -1
  152. package/dist/modules/manager/fleet/schema.js +1 -1
  153. package/dist/modules/manager/fleet/schema.js.map +1 -1
  154. package/dist/modules/manager/flux/schema.js +1 -1
  155. package/dist/modules/manager/flux/schema.js.map +1 -1
  156. package/dist/modules/manager/fvm/schema.js +1 -1
  157. package/dist/modules/manager/fvm/schema.js.map +1 -1
  158. package/dist/modules/manager/github-actions/community.js +1 -1
  159. package/dist/modules/manager/github-actions/community.js.map +1 -1
  160. package/dist/modules/manager/github-actions/schema.js +1 -1
  161. package/dist/modules/manager/github-actions/schema.js.map +1 -1
  162. package/dist/modules/manager/gitlabci/schema.js +1 -1
  163. package/dist/modules/manager/gitlabci/schema.js.map +1 -1
  164. package/dist/modules/manager/gitlabci-include/schema.js +1 -1
  165. package/dist/modules/manager/gitlabci-include/schema.js.map +1 -1
  166. package/dist/modules/manager/glasskube/schema.js +1 -1
  167. package/dist/modules/manager/glasskube/schema.js.map +1 -1
  168. package/dist/modules/manager/gleam/schema.js +1 -1
  169. package/dist/modules/manager/gleam/schema.js.map +1 -1
  170. package/dist/modules/manager/helmfile/schema.js +1 -1
  171. package/dist/modules/manager/helmfile/schema.js.map +1 -1
  172. package/dist/modules/manager/kubernetes/schema.js +1 -1
  173. package/dist/modules/manager/kubernetes/schema.js.map +1 -1
  174. package/dist/modules/manager/mise/schema.js +1 -1
  175. package/dist/modules/manager/mise/schema.js.map +1 -1
  176. package/dist/modules/manager/nix/schema.js +1 -1
  177. package/dist/modules/manager/nix/schema.js.map +1 -1
  178. package/dist/modules/manager/npm/extract/pnpm.js.map +1 -1
  179. package/dist/modules/manager/npm/schema.js +1 -1
  180. package/dist/modules/manager/npm/schema.js.map +1 -1
  181. package/dist/modules/manager/nuget/schema.js +1 -1
  182. package/dist/modules/manager/nuget/schema.js.map +1 -1
  183. package/dist/modules/manager/ocb/schema.js +1 -1
  184. package/dist/modules/manager/ocb/schema.js.map +1 -1
  185. package/dist/modules/manager/pep621/schema.js +1 -1
  186. package/dist/modules/manager/pep621/schema.js.map +1 -1
  187. package/dist/modules/manager/pep723/schema.js +1 -1
  188. package/dist/modules/manager/pep723/schema.js.map +1 -1
  189. package/dist/modules/manager/pixi/extract.js +1 -1
  190. package/dist/modules/manager/pixi/extract.js.map +1 -1
  191. package/dist/modules/manager/pixi/schema.js +1 -1
  192. package/dist/modules/manager/pixi/schema.js.map +1 -1
  193. package/dist/modules/manager/poetry/schema.js +1 -1
  194. package/dist/modules/manager/poetry/schema.js.map +1 -1
  195. package/dist/modules/manager/pub/schema.js +1 -1
  196. package/dist/modules/manager/pub/schema.js.map +1 -1
  197. package/dist/modules/manager/quadlet/schema.js +1 -1
  198. package/dist/modules/manager/quadlet/schema.js.map +1 -1
  199. package/dist/modules/manager/renovate-config-presets/schema.js +1 -1
  200. package/dist/modules/manager/renovate-config-presets/schema.js.map +1 -1
  201. package/dist/modules/manager/sveltos/schema.js +1 -1
  202. package/dist/modules/manager/sveltos/schema.js.map +1 -1
  203. package/dist/modules/manager/vendir/schema.js +1 -1
  204. package/dist/modules/manager/vendir/schema.js.map +1 -1
  205. package/dist/modules/platform/azure/schema.js +1 -1
  206. package/dist/modules/platform/azure/schema.js.map +1 -1
  207. package/dist/modules/platform/bitbucket/schema.js +1 -1
  208. package/dist/modules/platform/bitbucket/schema.js.map +1 -1
  209. package/dist/modules/platform/bitbucket-server/schema.js +1 -1
  210. package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
  211. package/dist/modules/platform/gerrit/client.js +1 -1
  212. package/dist/modules/platform/gerrit/client.js.map +1 -1
  213. package/dist/modules/platform/gitea/schema.js +1 -1
  214. package/dist/modules/platform/gitea/schema.js.map +1 -1
  215. package/dist/modules/platform/github/branch.js +1 -1
  216. package/dist/modules/platform/github/branch.js.map +1 -1
  217. package/dist/modules/platform/github/issue.js +1 -1
  218. package/dist/modules/platform/github/issue.js.map +1 -1
  219. package/dist/modules/platform/github/schema.js +1 -1
  220. package/dist/modules/platform/github/schema.js.map +1 -1
  221. package/dist/modules/platform/gitlab/schema.js +1 -1
  222. package/dist/modules/platform/gitlab/schema.js.map +1 -1
  223. package/dist/modules/versioning/generic.js.map +1 -1
  224. package/dist/modules/versioning/schema.js +1 -1
  225. package/dist/modules/versioning/schema.js.map +1 -1
  226. package/dist/util/cache/repository/schema.js +1 -1
  227. package/dist/util/cache/repository/schema.js.map +1 -1
  228. package/dist/util/emoji.js +1 -1
  229. package/dist/util/emoji.js.map +1 -1
  230. package/dist/util/github/graphql/cache-strategies/abstract-cache-strategy.js.map +1 -1
  231. package/dist/util/github/graphql/query-adapters/branches-query-adapter.js +1 -1
  232. package/dist/util/github/graphql/query-adapters/branches-query-adapter.js.map +1 -1
  233. package/dist/util/github/graphql/query-adapters/releases-query-adapter.js +1 -1
  234. package/dist/util/github/graphql/query-adapters/releases-query-adapter.js.map +1 -1
  235. package/dist/util/github/graphql/query-adapters/tags-query-adapter.js +1 -1
  236. package/dist/util/github/graphql/query-adapters/tags-query-adapter.js.map +1 -1
  237. package/dist/util/http/cache/schema.js +1 -1
  238. package/dist/util/http/cache/schema.js.map +1 -1
  239. package/dist/util/http/http.d.ts +1 -1
  240. package/dist/util/http/http.js +1 -1
  241. package/dist/util/http/http.js.map +1 -1
  242. package/dist/util/http/types.d.ts +1 -1
  243. package/dist/util/result.d.ts +1 -1
  244. package/dist/util/result.js +1 -1
  245. package/dist/util/result.js.map +1 -1
  246. package/dist/util/schema-utils/index.d.ts +1 -1
  247. package/dist/util/schema-utils/index.js +1 -1
  248. package/dist/util/schema-utils/index.js.map +1 -1
  249. package/dist/util/timestamp.d.ts +1 -1
  250. package/dist/util/timestamp.js +1 -1
  251. package/dist/util/timestamp.js.map +1 -1
  252. package/dist/util/toml.js +1 -1
  253. package/dist/util/toml.js.map +1 -1
  254. package/dist/util/yaml.d.ts +1 -1
  255. package/dist/util/yaml.js.map +1 -1
  256. package/dist/workers/repository/dependency-dashboard.js +19 -8
  257. package/dist/workers/repository/dependency-dashboard.js.map +1 -1
  258. package/dist/workers/repository/process/vulnerabilities.js +1 -1
  259. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  260. package/dist/workers/repository/update/pr/index.js.map +1 -1
  261. package/package.json +20 -20
  262. package/renovate-schema.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-migration.js","names":[],"sources":["../../../../lib/config/migrations/base/abstract-migration.ts"],"sourcesContent":["import { isNullOrUndefined, isString } from '@sindresorhus/is';\nimport type { AllConfig, RenovateConfig } from '../../types.ts';\nimport type { MigratableConfig, Migration } from '../types.ts';\n\nexport abstract class AbstractMigration<T extends RenovateConfig = AllConfig>\n implements Migration\n{\n readonly deprecated: boolean = false;\n abstract readonly propertyName: string | RegExp;\n private readonly originalConfig: MigratableConfig<T>;\n private readonly migratedConfig: MigratableConfig<T>;\n\n constructor(\n originalConfig: MigratableConfig<T>,\n migratedConfig: MigratableConfig<T>,\n ) {\n this.originalConfig = originalConfig;\n this.migratedConfig = migratedConfig;\n }\n\n abstract run(value: unknown, key: string): void;\n\n protected get<Key extends keyof MigratableConfig<T>>(\n key: Key,\n ): MigratableConfig<T>[Key] {\n return this.migratedConfig[key] ?? this.originalConfig[key];\n }\n\n protected has<Key extends keyof T | string>(key: Key): boolean {\n return key in this.originalConfig;\n }\n\n protected setSafely<Key extends keyof MigratableConfig<T>>(\n key: Key,\n value: MigratableConfig<T>[Key],\n ): void {\n if (\n isNullOrUndefined(this.originalConfig[key]) &&\n isNullOrUndefined(this.migratedConfig[key])\n ) {\n this.migratedConfig[key] = value;\n }\n }\n\n protected setHard<Key extends keyof MigratableConfig<T>>(\n key: Key,\n value: MigratableConfig<T>[Key],\n ): void {\n this.migratedConfig[key] = value;\n }\n\n protected rewrite(value: unknown): void {\n if (!isString(this.propertyName)) {\n throw new Error();\n }\n\n // TODO: fix types\n this.setHard(\n this.propertyName as keyof MigratableConfig<T>,\n value as never,\n );\n }\n\n protected delete(property = this.propertyName): void {\n if (!isString(property)) {\n throw new Error();\n }\n\n // TODO: fix types\n delete this.migratedConfig[property as keyof MigratableConfig<T>];\n }\n}\n"],"mappings":";;;AAIA,IAAsB,oBAAtB,MAEA;CACE,AAAS,aAAsB;CAE/B,AAAiB;CACjB,AAAiB;CAEjB,YACE,gBACA,gBACA;AACA,OAAK,iBAAiB;AACtB,OAAK,iBAAiB;;CAKxB,AAAU,IACR,KAC0B;AAC1B,SAAO,KAAK,eAAe,QAAQ,KAAK,eAAe;;CAGzD,AAAU,IAAkC,KAAmB;AAC7D,SAAO,OAAO,KAAK;;CAGrB,AAAU,UACR,KACA,OACM;AACN,MACE,kBAAkB,KAAK,eAAe,KAAK,IAC3C,kBAAkB,KAAK,eAAe,KAAK,CAE3C,MAAK,eAAe,OAAO;;CAI/B,AAAU,QACR,KACA,OACM;AACN,OAAK,eAAe,OAAO;;CAG7B,AAAU,QAAQ,OAAsB;AACtC,MAAI,CAAC,SAAS,KAAK,aAAa,CAC9B,OAAM,IAAI,OAAO;AAInB,OAAK,QACH,KAAK,cACL,MACD;;CAGH,AAAU,OAAO,WAAW,KAAK,cAAoB;AACnD,MAAI,CAAC,SAAS,SAAS,CACrB,OAAM,IAAI,OAAO;AAInB,SAAO,KAAK,eAAe"}
1
+ {"version":3,"file":"abstract-migration.js","names":[],"sources":["../../../../lib/config/migrations/base/abstract-migration.ts"],"sourcesContent":["import { isNullOrUndefined, isString } from '@sindresorhus/is';\nimport type { AllConfig, RenovateConfig } from '../../types.ts';\nimport type { MigratableConfig, Migration } from '../types.ts';\n\nexport abstract class AbstractMigration<\n T extends RenovateConfig = AllConfig,\n> implements Migration {\n readonly deprecated: boolean = false;\n abstract readonly propertyName: string | RegExp;\n private readonly originalConfig: MigratableConfig<T>;\n private readonly migratedConfig: MigratableConfig<T>;\n\n constructor(\n originalConfig: MigratableConfig<T>,\n migratedConfig: MigratableConfig<T>,\n ) {\n this.originalConfig = originalConfig;\n this.migratedConfig = migratedConfig;\n }\n\n abstract run(value: unknown, key: string): void;\n\n protected get<Key extends keyof MigratableConfig<T>>(\n key: Key,\n ): MigratableConfig<T>[Key] {\n return this.migratedConfig[key] ?? this.originalConfig[key];\n }\n\n protected has<Key extends keyof T | string>(key: Key): boolean {\n return key in this.originalConfig;\n }\n\n protected setSafely<Key extends keyof MigratableConfig<T>>(\n key: Key,\n value: MigratableConfig<T>[Key],\n ): void {\n if (\n isNullOrUndefined(this.originalConfig[key]) &&\n isNullOrUndefined(this.migratedConfig[key])\n ) {\n this.migratedConfig[key] = value;\n }\n }\n\n protected setHard<Key extends keyof MigratableConfig<T>>(\n key: Key,\n value: MigratableConfig<T>[Key],\n ): void {\n this.migratedConfig[key] = value;\n }\n\n protected rewrite(value: unknown): void {\n if (!isString(this.propertyName)) {\n throw new Error();\n }\n\n // TODO: fix types\n this.setHard(\n this.propertyName as keyof MigratableConfig<T>,\n value as never,\n );\n }\n\n protected delete(property = this.propertyName): void {\n if (!isString(property)) {\n throw new Error();\n }\n\n // TODO: fix types\n delete this.migratedConfig[property as keyof MigratableConfig<T>];\n }\n}\n"],"mappings":";;;AAIA,IAAsB,oBAAtB,MAEuB;CACrB,AAAS,aAAsB;CAE/B,AAAiB;CACjB,AAAiB;CAEjB,YACE,gBACA,gBACA;AACA,OAAK,iBAAiB;AACtB,OAAK,iBAAiB;;CAKxB,AAAU,IACR,KAC0B;AAC1B,SAAO,KAAK,eAAe,QAAQ,KAAK,eAAe;;CAGzD,AAAU,IAAkC,KAAmB;AAC7D,SAAO,OAAO,KAAK;;CAGrB,AAAU,UACR,KACA,OACM;AACN,MACE,kBAAkB,KAAK,eAAe,KAAK,IAC3C,kBAAkB,KAAK,eAAe,KAAK,CAE3C,MAAK,eAAe,OAAO;;CAI/B,AAAU,QACR,KACA,OACM;AACN,OAAK,eAAe,OAAO;;CAG7B,AAAU,QAAQ,OAAsB;AACtC,MAAI,CAAC,SAAS,KAAK,aAAa,CAC9B,OAAM,IAAI,OAAO;AAInB,OAAK,QACH,KAAK,cACL,MACD;;CAGH,AAAU,OAAO,WAAW,KAAK,cAAoB;AACnD,MAAI,CAAC,SAAS,SAAS,CACrB,OAAM,IAAI,OAAO;AAInB,SAAO,KAAK,eAAe"}
@@ -1,5 +1,5 @@
1
1
  import { Json } from "../util/schema-utils/index.js";
2
- import { z } from "zod";
2
+ import { z } from "zod/v3";
3
3
 
4
4
  //#region lib/config/schema.ts
5
5
  const DecryptedObject = Json.pipe(z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":[],"sources":["../../lib/config/schema.ts"],"sourcesContent":["import { z } from 'zod';\nimport { Json } from '../util/schema-utils/index.ts';\n\nexport const DecryptedObject = Json.pipe(\n z.object({\n o: z.string().optional(),\n r: z.string().optional(),\n v: z.string().optional(),\n }),\n);\n"],"mappings":";;;;AAGA,MAAa,kBAAkB,KAAK,KAClC,EAAE,OAAO;CACP,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,GAAG,EAAE,QAAQ,CAAC,UAAU;CACzB,CAAC,CACH"}
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../lib/config/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\nimport { Json } from '../util/schema-utils/index.ts';\n\nexport const DecryptedObject = Json.pipe(\n z.object({\n o: z.string().optional(),\n r: z.string().optional(),\n v: z.string().optional(),\n }),\n);\n"],"mappings":";;;;AAGA,MAAa,kBAAkB,KAAK,KAClC,EAAE,OAAO;CACP,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,GAAG,EAAE,QAAQ,CAAC,UAAU;CACxB,GAAG,EAAE,QAAQ,CAAC,UAAU;CACzB,CAAC,CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../lib/config/types.ts"],"sourcesContent":["import type { Category, PlatformId } from '../constants/index.ts';\nimport type { LogLevelRemap } from '../logger/types.ts';\nimport type { ManagerName } from '../manager-list.generated.ts';\nimport type { CustomManager } from '../modules/manager/custom/types.ts';\nimport type { RepoSortMethod, SortMethod } from '../modules/platform/types.ts';\nimport type {\n AutoMergeType,\n HostRule,\n Nullish,\n RangeStrategy,\n SkipReason,\n} from '../types/index.ts';\nimport type { StageName } from '../types/skip-reason.ts';\nimport type { GitNoVerifyOption } from '../util/git/types.ts';\nimport type { MergeConfidence } from '../util/merge-confidence/types.ts';\nimport type { Timestamp } from '../util/timestamp.ts';\n\nexport type RenovateConfigStage =\n | 'global'\n | 'inherit'\n | 'repository'\n | 'package'\n | 'branch'\n | 'pr';\n\nexport type RenovateSplit =\n | 'init'\n | 'onboarding'\n | 'extract'\n | 'lookup'\n | 'update';\n\nexport type RepositoryCacheConfig = 'disabled' | 'enabled' | 'reset';\nexport type RepositoryCacheType = 'local' | (string & {});\nexport type DryRunConfig = 'extract' | 'lookup' | 'full';\nexport type RequiredConfig = 'required' | 'optional' | 'ignored';\n\nexport interface GroupConfig extends Record<string, unknown> {\n branchName?: string;\n branchTopic?: string;\n}\n\nexport type RecreateWhen = 'auto' | 'never' | 'always';\nexport type PlatformCommitOptions = 'auto' | 'disabled' | 'enabled';\n\nexport type BinarySource = 'docker' | 'global' | 'install' | 'hermit';\n\n// TODO: Proper typings\n/**\n * Any configuration that could be used either top-level in a repository config (or Global, Inherited or Shareable Preset configuration), or:\n *\n * - in a datasource-specific configuration\n * - in a manager-specific configuration\n * - in a Package Rule\n *\n * @see RenovateConfig for the superset of all configuration allowed in a given repository\n *\n */\nexport interface RenovateSharedConfig {\n $schema?: string;\n abandonmentThreshold?: Nullish<string>;\n addLabels?: string[];\n assignAutomerge?: boolean;\n autoApprove?: boolean;\n autoReplaceGlobalMatch?: boolean;\n automerge?: boolean;\n automergeSchedule?: string[];\n automergeStrategy?: MergeStrategy;\n automergeType?: AutoMergeType;\n azureWorkItemId?: number;\n branchName?: string;\n branchNameStrict?: boolean;\n branchPrefix?: string;\n branchPrefixOld?: string;\n bumpVersions?: BumpVersionConfig[];\n commitBody?: string;\n commitBodyTable?: boolean;\n commitMessage?: string;\n commitMessageAction?: string;\n commitMessageExtra?: string;\n commitMessageLowerCase?: 'auto' | 'never';\n commitMessagePrefix?: string;\n commitMessageTopic?: string;\n confidential?: boolean;\n configValidationError?: boolean;\n changelogUrl?: string;\n dependencyDashboardApproval?: boolean;\n draftPR?: boolean;\n enabled?: boolean;\n enabledManagers?: string[];\n encrypted?: Record<string, string>;\n extends?: string[];\n extractVersion?: string;\n managerFilePatterns?: string[];\n followTag?: string;\n force?: RenovateConfig;\n gitIgnoredAuthors?: string[];\n group?: GroupConfig;\n groupName?: string;\n groupSlug?: string;\n hashedBranchLength?: number;\n ignoreDeps?: string[];\n ignorePaths?: string[];\n ignoreTests?: boolean;\n ignoreUnstable?: boolean;\n includePaths?: string[];\n internalChecksAsSuccess?: boolean;\n internalChecksFilter?: 'strict' | 'flexible' | 'none';\n keepUpdatedLabel?: string;\n labels?: string[];\n manager?: string;\n milestone?: number;\n minimumReleaseAge?: Nullish<string>;\n npmrc?: string;\n npmrcMerge?: boolean;\n npmToken?: string;\n\n pinDigests?: boolean;\n platformAutomerge?: boolean;\n platformCommit?: PlatformCommitOptions;\n postUpgradeTasks?: PostUpgradeTasks;\n prBodyColumns?: string[];\n prBodyDefinitions?: Record<string, string>;\n prBodyHeadingDefinitions?: Record<string, string>;\n prBodyNotes?: string[];\n prCreation?: 'immediate' | 'not-pending' | 'status-success' | 'approval';\n prFooter?: string;\n prHeader?: string;\n prPriority?: number;\n prTitle?: string;\n prTitleStrict?: boolean;\n productLinks?: Record<string, string>;\n pruneBranchAfterAutomerge?: boolean;\n rangeStrategy?: RangeStrategy;\n rebaseLabel?: string;\n rebaseWhen?: string;\n recreateClosed?: boolean;\n recreateWhen?: RecreateWhen;\n repository?: string;\n repositoryCache?: RepositoryCacheConfig;\n repositoryCacheType?: RepositoryCacheType;\n respectLatest?: boolean;\n rollbackPrs?: boolean;\n schedule?: string[];\n semanticCommitScope?: string | null;\n semanticCommitType?: string;\n semanticCommits?: 'auto' | 'enabled' | 'disabled';\n separateMajorMinor?: boolean;\n separateMinorPatch?: boolean;\n separateMultipleMajor?: boolean;\n separateMultipleMinor?: boolean;\n skipArtifactsUpdate?: boolean;\n stopUpdatingLabel?: string;\n suppressNotifications?: string[];\n timezone?: string;\n unicodeEmoji?: boolean;\n updateNotScheduled?: boolean;\n versioning?: string;\n versionCompatibility?: string;\n}\n\n/**\n * Contains all options with globalOnly=true && inheritConfigSupport=true\n */\nexport interface GlobalInheritableConfig {\n bbUseDevelopmentBranch?: boolean;\n configFileNames?: string[];\n onboardingAutoCloseAge?: number;\n onboardingBranch?: string;\n}\n\n// Config options used only within the global worker\n// The below should contain config options where stage=global\n/** @deprecated use `RepoGlobalConfig` instead **/\nexport interface GlobalOnlyConfigLegacy {\n autodiscover?: boolean;\n autodiscoverFilter?: string[] | string;\n autodiscoverNamespaces?: string[];\n autodiscoverProjects?: string[];\n autodiscoverTopics?: string[];\n baseDir?: string;\n cacheDir?: string;\n containerbaseDir?: string;\n detectHostRulesFromEnv?: boolean;\n dockerCliOptions?: string;\n endpoint?: string;\n forceCli?: boolean;\n gitNoVerify?: GitNoVerifyOption[];\n gitPrivateKey?: string;\n gitPrivateKeyPassphrase?: string;\n globalExtends?: string[];\n mergeConfidenceDatasources?: string[];\n mergeConfidenceEndpoint?: string;\n platform?: PlatformId;\n processEnv?: Record<string, string>;\n prCommitsPerRunLimit?: number;\n privateKey?: string;\n privateKeyOld?: string;\n privateKeyPath?: string;\n privateKeyPathOld?: string;\n redisPrefix?: string;\n redisUrl?: string;\n repositories?: RenovateRepository[];\n useCloudMetadataServices?: boolean;\n deleteConfigFile?: boolean;\n deleteAdditionalConfigFile?: boolean;\n}\n\n/**\n * Any global-only configuration set by self-hosted administrators.\n *\n * Used within the repository worker.\n *\n * Should only contain config options where globalOnly=true.\n */\nexport interface RepoGlobalConfig extends GlobalInheritableConfig {\n allowedCommands?: string[];\n allowCustomCrateRegistries?: boolean;\n allowPlugins?: boolean;\n allowScripts?: boolean;\n allowShellExecutorForPostUpgradeCommands?: boolean;\n allowedEnv?: string[];\n allowedHeaders?: string[];\n binarySource?: BinarySource;\n cacheDir?: string;\n cacheHardTtlMinutes?: number;\n cacheTtlOverride?: Record<string, number>;\n containerbaseDir?: string;\n customEnvVariables?: Record<string, string>;\n dockerChildPrefix?: string;\n dockerCliOptions?: string;\n dockerSidecarImage?: string;\n dockerUser?: string;\n dryRun?: DryRunConfig;\n encryptedWarning?: string;\n endpoint?: string;\n executionTimeout?: number;\n exposeAllEnv?: boolean;\n gitTimeout?: number;\n githubTokenWarn?: boolean;\n includeMirrors?: boolean;\n localDir?: string;\n migratePresets?: Record<string, string>;\n platform?: PlatformId;\n presetCachePersistence?: boolean;\n httpCacheTtlDays?: number;\n autodiscoverRepoSort?: RepoSortMethod;\n autodiscoverRepoOrder?: SortMethod;\n userAgent?: string;\n dockerMaxPages?: number;\n s3Endpoint?: string;\n s3PathStyle?: boolean;\n cachePrivatePackages?: boolean;\n repositoryCacheForceLocal?: boolean;\n configFileNames?: string[];\n ignorePrAuthor?: boolean;\n allowedUnsafeExecutions?: AllowedUnsafeExecution[];\n onboardingAutoCloseAge?: number;\n toolSettings?: ToolSettingsOptions;\n}\n\n/**\n * Those options are global only but still passed into the repository worker config.\n *\n * @deprecated https://github.com/renovatebot/renovate/issues/39693\n */\nexport interface LegacyAdminConfig {\n baseDir?: string;\n localDir?: string;\n\n logContext?: string;\n\n onboarding?: boolean;\n onboardingBranch?: string;\n onboardingCommitMessage?: string;\n onboardingNoDeps?: 'auto' | 'enabled' | 'disabled';\n onboardingRebaseCheckbox?: boolean;\n onboardingPrTitle?: string;\n onboardingConfig?: RenovateConfig;\n onboardingConfigFileName?: string;\n\n optimizeForDisabled?: boolean;\n\n persistRepoData?: boolean;\n\n prCommitsPerRunLimit?: number;\n\n requireConfig?: RequiredConfig;\n\n useCloudMetadataServices?: boolean;\n\n writeDiscoveredRepos?: string;\n}\n\nexport type ExecutionMode = 'branch' | 'update';\n\nexport interface PostUpgradeTasks {\n commands?: string[];\n workingDirTemplate?: string;\n dataFileTemplate?: string;\n fileFilters?: string[];\n executionMode: ExecutionMode;\n}\n\nexport type UpdateConfig<\n T extends RenovateSharedConfig = RenovateSharedConfig,\n> = Partial<Record<UpdateType, T | null>>;\n\nexport type RenovateRepository =\n | string\n | (RenovateConfig & {\n repository: string;\n });\n\nexport type UseBaseBranchConfigType = 'merge' | 'none';\nexport type ConstraintsFilter = 'strict' | 'none';\nexport type MinimumReleaseAgeBehaviour =\n | 'timestamp-required'\n | 'timestamp-optional';\n\nexport const allowedStatusCheckStrings = [\n 'minimumReleaseAge',\n 'mergeConfidence',\n 'configValidation',\n 'artifactError',\n] as const;\nexport type StatusCheckKey = (typeof allowedStatusCheckStrings)[number];\ntype UserEnv = Record<string, string>;\n\n/**\n * Computed properties, for internal use only\n */\nexport interface RenovateInternalConfig {\n /** computed base branch from patterns - for internal use only */\n baseBranches?: string[];\n currentCompatibility?: string;\n datasource?: string;\n hasBaseBranches?: boolean;\n isFork?: boolean;\n isVulnerabilityAlert?: boolean;\n\n /** What is this used for? */\n remediations?: unknown;\n /** What is this used for? */\n vulnerabilityAlertsOnly?: boolean;\n}\n\n// TODO: Proper typings\n/**\n * Configuration that could be used either top-level in a repository config (or Global, Inherited or Shareable Preset configuration).\n *\n * This is a superset of any configuration that a Renovate user (not self-hosted administrator) can set.\n */\nexport interface RenovateConfig\n extends LegacyAdminConfig,\n RenovateSharedConfig,\n UpdateConfig<PackageRule>,\n AssigneesAndReviewersConfig,\n ConfigMigration,\n RenovateInternalConfig {\n s3Endpoint?: string;\n s3PathStyle?: boolean;\n reportPath?: string;\n reportType?: 'logging' | 'file' | 's3' | null;\n depName?: string;\n /** user configurable base branch patterns*/\n baseBranchPatterns?: string[];\n useBaseBranchConfig?: UseBaseBranchConfigType;\n baseBranch?: string;\n defaultBranch?: string;\n branchList?: string[];\n cloneSubmodules?: boolean;\n cloneSubmodulesFilter?: string[];\n description?: string | string[];\n detectGlobalManagerConfig?: boolean;\n errors?: ValidationMessage[];\n forkModeDisallowMaintainerEdits?: boolean;\n forkProcessing?: 'auto' | 'enabled' | 'disabled';\n forkToken?: string;\n\n gitAuthor?: string;\n\n hostRules?: HostRule[];\n\n inheritConfig?: boolean;\n inheritConfigFileName?: string;\n inheritConfigRepoName?: string;\n inheritConfigStrict?: boolean;\n\n ignorePresets?: string[];\n\n fileList?: string[];\n configWarningReuseIssue?: boolean;\n dependencyDashboard?: boolean;\n dependencyDashboardAutoclose?: boolean;\n dependencyDashboardChecks?: Record<string, string>;\n dependencyDashboardIssue?: number;\n dependencyDashboardTitle?: string;\n dependencyDashboardHeader?: string;\n dependencyDashboardFooter?: string;\n dependencyDashboardLabels?: string[];\n dependencyDashboardOSVVulnerabilitySummary?: 'none' | 'all' | 'unresolved';\n dependencyDashboardReportAbandonment?: boolean;\n mode?: 'silent' | 'full';\n packageFile?: string;\n packageRules?: PackageRule[];\n postUpdateOptions?: string[];\n branchConcurrentLimit?: number | null;\n parentOrg?: string;\n prConcurrentLimit?: number;\n prHourlyLimit?: number;\n\n printConfig?: boolean;\n\n pruneStaleBranches?: boolean;\n\n defaultRegistryUrls?: string[];\n registryUrls?: string[] | null;\n registryAliases?: Record<string, string>;\n\n /**\n * What is this used for?\n * @deprecated\n */\n renovateJsonPresent?: boolean;\n\n repoIsOnboarded?: boolean;\n repoIsActivated?: boolean;\n\n topLevelOrg?: string;\n updateInternalDeps?: boolean;\n updateType?: UpdateType;\n\n warnings?: ValidationMessage[];\n vulnerabilityAlerts?: RenovateSharedConfig;\n osvVulnerabilityAlerts?: boolean;\n vulnerabilitySeverity?: string;\n customManagers?: CustomManager[];\n customDatasources?: Record<string, CustomDatasourceConfig>;\n\n fetchChangeLogs?: FetchChangeLogsOptions;\n secrets?: Record<string, string>;\n variables?: Record<string, string>;\n\n constraints?: Record<string, string>;\n skipInstalls?: boolean | null;\n\n constraintsFiltering?: ConstraintsFilter;\n\n checkedBranches?: string[];\n customizeDashboard?: Record<string, string>;\n\n statusCheckNames?: Record<StatusCheckKey, string | null>;\n /**\n * User configured environment variables that Renovate uses when executing package manager commands\n */\n env?: UserEnv;\n logLevelRemap?: LogLevelRemap[];\n\n branchTopic?: string;\n additionalBranchPrefix?: string;\n sharedVariableName?: string;\n minimumGroupSize?: number;\n configFileNames?: string[];\n minimumReleaseAgeBehaviour?: MinimumReleaseAgeBehaviour;\n toolSettings?: ToolSettingsOptions;\n}\n\nconst CustomDatasourceFormats = [\n 'html',\n 'json',\n 'plain',\n 'toml',\n 'yaml',\n] as const;\nexport type CustomDatasourceFormats = (typeof CustomDatasourceFormats)[number];\n\nexport interface CustomDatasourceConfig {\n defaultRegistryUrlTemplate?: string;\n format?: CustomDatasourceFormats;\n transformTemplates?: string[];\n}\n\n/**\n * The superset of all configuration that a self-hosted administrator can set, alongside all repository-level configuration.\n *\n */\nexport interface AllConfig\n extends RenovateConfig,\n GlobalOnlyConfigLegacy,\n RepoGlobalConfig {\n password?: string;\n token?: string;\n username?: string;\n}\n\nexport interface AssigneesAndReviewersConfig {\n assigneesFromCodeOwners?: boolean;\n expandCodeOwnersGroups?: boolean;\n assignees?: string[];\n assigneesSampleSize?: number;\n ignoreReviewers?: string[];\n reviewersFromCodeOwners?: boolean;\n reviewers?: string[];\n reviewersSampleSize?: number;\n additionalReviewers?: string[];\n filterUnavailableUsers?: boolean;\n}\n\nexport type UpdateType =\n | 'major'\n | 'minor'\n | 'patch'\n | 'pin'\n | 'digest'\n | 'pinDigest'\n | 'lockFileMaintenance'\n | 'lockfileUpdate'\n | 'rollback'\n | 'bump'\n | 'replacement';\n\n// These are the update types which can have configuration\nexport const UpdateTypesOptions = [\n 'major',\n 'minor',\n 'patch',\n 'pin',\n 'digest',\n 'pinDigest',\n 'lockFileMaintenance',\n 'rollback',\n 'replacement',\n] as const;\n\nexport type UpdateTypeOptions = (typeof UpdateTypesOptions)[number];\n\nexport type FetchChangeLogsOptions = 'off' | 'branch' | 'pr';\n\nexport type MatchStringsStrategy = 'any' | 'recursive' | 'combination';\n\nexport type MergeStrategy =\n | 'auto'\n | 'fast-forward'\n | 'merge-commit'\n | 'rebase'\n | 'rebase-merge'\n | 'squash';\n\n// This list should be added to as any new unsafe execution commands should be permitted\nexport type AllowedUnsafeExecution = 'goGenerate' | 'gradleWrapper';\n\n// TODO: Proper typings\nexport interface PackageRule\n extends RenovateSharedConfig,\n RenovateInternalConfig,\n UpdateConfig {\n allowedVersions?: string;\n description?: string | string[];\n matchBaseBranches?: string[];\n matchCategories?: string[];\n matchConfidence?: MergeConfidence[];\n matchCurrentAge?: string;\n matchCurrentValue?: string;\n matchCurrentVersion?: string;\n matchDatasources?: string[];\n matchDepNames?: string[];\n matchDepTypes?: string[];\n matchFileNames?: string[];\n matchManagers?: string[];\n matchNewValue?: string;\n matchPackageNames?: string[];\n matchRepositories?: string[];\n matchSourceUrls?: string[];\n matchUpdateTypes?: UpdateType[];\n matchJsonata?: string[];\n overrideDatasource?: string;\n overrideDepName?: string;\n overridePackageName?: string;\n registryUrls?: string[] | null;\n replacementName?: string;\n replacementVersion?: string;\n sourceUrl?: string;\n sourceDirectory?: string;\n vulnerabilitySeverity?: string;\n vulnerabilityFixVersion?: string;\n}\n\nexport interface ValidationMessage {\n topic: string;\n message: string;\n}\n\nexport type AllowedParents =\n | '.'\n | 'bumpVersions'\n | 'customDatasources'\n | 'customManagers'\n | 'hostRules'\n | 'logLevelRemap'\n | 'packageRules'\n | 'postUpgradeTasks'\n | 'vulnerabilityAlerts'\n | 'toolSettings'\n | ManagerName\n | UpdateTypeOptions;\nexport interface RenovateOptionBase {\n /**\n * If true, the option can only be configured by people with access to the Renovate instance.\n * Furthermore, the option should be documented in docs/usage/self-hosted-configuration.md.\n */\n globalOnly?: boolean;\n\n inheritConfigSupport?: boolean;\n\n allowedValues?: string[];\n\n allowString?: boolean;\n\n cli?: boolean;\n\n description: string;\n\n env?: false | string;\n\n /**\n * Do not validate object children\n */\n freeChoice?: boolean;\n\n mergeable?: boolean;\n\n autogenerated?: boolean;\n\n name: string;\n\n parents?: AllowedParents[];\n\n stage?: RenovateConfigStage;\n\n experimental?: boolean;\n\n experimentalDescription?: string;\n\n experimentalIssues?: number[];\n\n advancedUse?: boolean;\n\n /**\n * This is used to add a deprecation message in the docs\n */\n deprecationMsg?: string;\n\n /**\n * For internal use only: add it to any config option that supports regex or glob matching\n */\n patternMatch?: boolean;\n\n /**\n * For internal use only: add it to any config option of type integer that supports negative integers\n */\n allowNegative?: boolean;\n\n /**\n * Managers which support this option, leave undefined if all managers support it.\n */\n supportedManagers?: string[];\n\n /**\n * Platforms which support this option, leave undefined if all platforms support it.\n */\n supportedPlatforms?: PlatformId[];\n\n /**\n * Conditions that must be met for this option to be required.\n */\n requiredIf?: RenovateRequiredOption[];\n}\n\nexport interface RenovateRequiredOption {\n siblingProperties: { property: string; value: string }[];\n}\n\nexport interface RenovateArrayOption<\n T extends string | number | Record<string, unknown> = Record<string, unknown>,\n> extends RenovateOptionBase {\n default?: T[] | null;\n mergeable?: boolean;\n type: 'array';\n subType?: 'string' | 'object' | 'number';\n}\n\nexport interface RenovateStringArrayOption extends RenovateArrayOption<string> {\n format?: 'regex';\n subType: 'string';\n}\n\nexport interface RenovateNumberArrayOption extends RenovateArrayOption<number> {\n subType: 'number';\n}\n\nexport interface RenovateBooleanOption extends RenovateOptionBase {\n default?: boolean | null;\n type: 'boolean';\n}\n\nexport interface RenovateIntegerOption extends RenovateOptionBase {\n default?: number | null;\n type: 'integer';\n}\n\nexport interface RenovateStringOption extends RenovateOptionBase {\n default?: string | null;\n format?: 'regex';\n\n // Not used\n replaceLineReturns?: boolean;\n type: 'string';\n}\n\nexport interface RenovateObjectOption extends RenovateOptionBase {\n default?: any;\n additionalProperties?: Record<string, unknown> | boolean;\n mergeable?: boolean;\n type: 'object';\n}\n\nexport type RenovateOptions =\n | RenovateStringOption\n | RenovateNumberArrayOption\n | RenovateStringArrayOption\n | RenovateIntegerOption\n | RenovateBooleanOption\n | RenovateArrayOption\n | RenovateObjectOption;\n\nexport interface PackageRuleInputConfig extends RenovateConfig {\n versioning?: string;\n packageFile?: string;\n lockFiles?: string[];\n depType?: string;\n depTypes?: string[];\n depName?: string;\n packageName?: string | null;\n newValue?: string | null;\n currentValue?: string | null;\n currentVersion?: string;\n lockedVersion?: string;\n updateType?: UpdateType;\n mergeConfidenceLevel?: MergeConfidence | undefined;\n isBump?: boolean;\n sourceUrl?: string | null;\n categories?: string[];\n baseBranch?: string;\n manager?: string;\n datasource?: string;\n packageRules?: (PackageRule & PackageRuleInputConfig)[];\n releaseTimestamp?: Timestamp | null;\n repository?: string;\n currentVersionAgeInDays?: number;\n currentVersionTimestamp?: string;\n enabled?: boolean;\n skipReason?: SkipReason;\n skipStage?: StageName;\n}\n\nexport interface ConfigMigration {\n configMigration?: boolean;\n}\n\nexport interface MigratedConfig {\n /**\n * Indicates whether there was a migration applied to the configuration.\n *\n * @returns\n * `false` if the configuration does not need migrating, and `migratedConfig` can be ignored\n * `true` if the configuration was migrated, and if so, `migratedConfig` should be used instead of the provided config\n */\n isMigrated: boolean;\n migratedConfig: RenovateConfig;\n}\n\nexport interface MigratedRenovateConfig extends RenovateConfig {\n endpoints?: HostRule[];\n pathRules: PackageRule[];\n packages: PackageRule[];\n\n node?: RenovateConfig;\n travis?: RenovateConfig;\n gradle?: RenovateConfig;\n}\n\nexport interface ManagerConfig extends RenovateConfig {\n manager: string;\n categories?: Category[];\n}\n\nexport interface ValidationResult {\n errors: ValidationMessage[];\n warnings: ValidationMessage[];\n}\n\nexport interface BumpVersionConfig {\n bumpType?: string;\n filePatterns: string[];\n matchStrings: string[];\n name?: string;\n}\n\nexport interface ToolSettingsOptions {\n jvmMaxMemory?: number;\n jvmMemory?: number;\n}\n"],"mappings":";AAgUA,MAAa,4BAA4B;CACvC;CACA;CACA;CACA;CACD;AAsMD,MAAa,qBAAqB;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../lib/config/types.ts"],"sourcesContent":["import type { Category, PlatformId } from '../constants/index.ts';\nimport type { LogLevelRemap } from '../logger/types.ts';\nimport type { ManagerName } from '../manager-list.generated.ts';\nimport type { CustomManager } from '../modules/manager/custom/types.ts';\nimport type { RepoSortMethod, SortMethod } from '../modules/platform/types.ts';\nimport type {\n AutoMergeType,\n HostRule,\n Nullish,\n RangeStrategy,\n SkipReason,\n} from '../types/index.ts';\nimport type { StageName } from '../types/skip-reason.ts';\nimport type { GitNoVerifyOption } from '../util/git/types.ts';\nimport type { MergeConfidence } from '../util/merge-confidence/types.ts';\nimport type { Timestamp } from '../util/timestamp.ts';\n\nexport type RenovateConfigStage =\n | 'global'\n | 'inherit'\n | 'repository'\n | 'package'\n | 'branch'\n | 'pr';\n\nexport type RenovateSplit =\n | 'init'\n | 'onboarding'\n | 'extract'\n | 'lookup'\n | 'update';\n\nexport type RepositoryCacheConfig = 'disabled' | 'enabled' | 'reset';\nexport type RepositoryCacheType = 'local' | (string & {});\nexport type DryRunConfig = 'extract' | 'lookup' | 'full';\nexport type RequiredConfig = 'required' | 'optional' | 'ignored';\n\nexport interface GroupConfig extends Record<string, unknown> {\n branchName?: string;\n branchTopic?: string;\n}\n\nexport type RecreateWhen = 'auto' | 'never' | 'always';\nexport type PlatformCommitOptions = 'auto' | 'disabled' | 'enabled';\n\nexport type BinarySource = 'docker' | 'global' | 'install' | 'hermit';\n\n// TODO: Proper typings\n/**\n * Any configuration that could be used either top-level in a repository config (or Global, Inherited or Shareable Preset configuration), or:\n *\n * - in a datasource-specific configuration\n * - in a manager-specific configuration\n * - in a Package Rule\n *\n * @see RenovateConfig for the superset of all configuration allowed in a given repository\n *\n */\nexport interface RenovateSharedConfig {\n $schema?: string;\n abandonmentThreshold?: Nullish<string>;\n addLabels?: string[];\n assignAutomerge?: boolean;\n autoApprove?: boolean;\n autoReplaceGlobalMatch?: boolean;\n automerge?: boolean;\n automergeSchedule?: string[];\n automergeStrategy?: MergeStrategy;\n automergeType?: AutoMergeType;\n azureWorkItemId?: number;\n branchName?: string;\n branchNameStrict?: boolean;\n branchPrefix?: string;\n branchPrefixOld?: string;\n bumpVersions?: BumpVersionConfig[];\n commitBody?: string;\n commitBodyTable?: boolean;\n commitMessage?: string;\n commitMessageAction?: string;\n commitMessageExtra?: string;\n commitMessageLowerCase?: 'auto' | 'never';\n commitMessagePrefix?: string;\n commitMessageTopic?: string;\n confidential?: boolean;\n configValidationError?: boolean;\n changelogUrl?: string;\n dependencyDashboardApproval?: boolean;\n draftPR?: boolean;\n enabled?: boolean;\n enabledManagers?: string[];\n encrypted?: Record<string, string>;\n extends?: string[];\n extractVersion?: string;\n managerFilePatterns?: string[];\n followTag?: string;\n force?: RenovateConfig;\n gitIgnoredAuthors?: string[];\n group?: GroupConfig;\n groupName?: string;\n groupSlug?: string;\n hashedBranchLength?: number;\n ignoreDeps?: string[];\n ignorePaths?: string[];\n ignoreTests?: boolean;\n ignoreUnstable?: boolean;\n includePaths?: string[];\n internalChecksAsSuccess?: boolean;\n internalChecksFilter?: 'strict' | 'flexible' | 'none';\n keepUpdatedLabel?: string;\n labels?: string[];\n manager?: string;\n milestone?: number;\n minimumReleaseAge?: Nullish<string>;\n npmrc?: string;\n npmrcMerge?: boolean;\n npmToken?: string;\n\n pinDigests?: boolean;\n platformAutomerge?: boolean;\n platformCommit?: PlatformCommitOptions;\n postUpgradeTasks?: PostUpgradeTasks;\n prBodyColumns?: string[];\n prBodyDefinitions?: Record<string, string>;\n prBodyHeadingDefinitions?: Record<string, string>;\n prBodyNotes?: string[];\n prCreation?: 'immediate' | 'not-pending' | 'status-success' | 'approval';\n prFooter?: string;\n prHeader?: string;\n prPriority?: number;\n prTitle?: string;\n prTitleStrict?: boolean;\n productLinks?: Record<string, string>;\n pruneBranchAfterAutomerge?: boolean;\n rangeStrategy?: RangeStrategy;\n rebaseLabel?: string;\n rebaseWhen?: string;\n recreateClosed?: boolean;\n recreateWhen?: RecreateWhen;\n repository?: string;\n repositoryCache?: RepositoryCacheConfig;\n repositoryCacheType?: RepositoryCacheType;\n respectLatest?: boolean;\n rollbackPrs?: boolean;\n schedule?: string[];\n semanticCommitScope?: string | null;\n semanticCommitType?: string;\n semanticCommits?: 'auto' | 'enabled' | 'disabled';\n separateMajorMinor?: boolean;\n separateMinorPatch?: boolean;\n separateMultipleMajor?: boolean;\n separateMultipleMinor?: boolean;\n skipArtifactsUpdate?: boolean;\n stopUpdatingLabel?: string;\n suppressNotifications?: string[];\n timezone?: string;\n unicodeEmoji?: boolean;\n updateNotScheduled?: boolean;\n versioning?: string;\n versionCompatibility?: string;\n}\n\n/**\n * Contains all options with globalOnly=true && inheritConfigSupport=true\n */\nexport interface GlobalInheritableConfig {\n bbUseDevelopmentBranch?: boolean;\n configFileNames?: string[];\n onboardingAutoCloseAge?: number;\n onboardingBranch?: string;\n}\n\n// Config options used only within the global worker\n// The below should contain config options where stage=global\n/** @deprecated use `RepoGlobalConfig` instead **/\nexport interface GlobalOnlyConfigLegacy {\n autodiscover?: boolean;\n autodiscoverFilter?: string[] | string;\n autodiscoverNamespaces?: string[];\n autodiscoverProjects?: string[];\n autodiscoverTopics?: string[];\n baseDir?: string;\n cacheDir?: string;\n containerbaseDir?: string;\n detectHostRulesFromEnv?: boolean;\n dockerCliOptions?: string;\n endpoint?: string;\n forceCli?: boolean;\n gitNoVerify?: GitNoVerifyOption[];\n gitPrivateKey?: string;\n gitPrivateKeyPassphrase?: string;\n globalExtends?: string[];\n mergeConfidenceDatasources?: string[];\n mergeConfidenceEndpoint?: string;\n platform?: PlatformId;\n processEnv?: Record<string, string>;\n prCommitsPerRunLimit?: number;\n privateKey?: string;\n privateKeyOld?: string;\n privateKeyPath?: string;\n privateKeyPathOld?: string;\n redisPrefix?: string;\n redisUrl?: string;\n repositories?: RenovateRepository[];\n useCloudMetadataServices?: boolean;\n deleteConfigFile?: boolean;\n deleteAdditionalConfigFile?: boolean;\n}\n\n/**\n * Any global-only configuration set by self-hosted administrators.\n *\n * Used within the repository worker.\n *\n * Should only contain config options where globalOnly=true.\n */\nexport interface RepoGlobalConfig extends GlobalInheritableConfig {\n allowedCommands?: string[];\n allowCustomCrateRegistries?: boolean;\n allowPlugins?: boolean;\n allowScripts?: boolean;\n allowShellExecutorForPostUpgradeCommands?: boolean;\n allowedEnv?: string[];\n allowedHeaders?: string[];\n binarySource?: BinarySource;\n cacheDir?: string;\n cacheHardTtlMinutes?: number;\n cacheTtlOverride?: Record<string, number>;\n containerbaseDir?: string;\n customEnvVariables?: Record<string, string>;\n dockerChildPrefix?: string;\n dockerCliOptions?: string;\n dockerSidecarImage?: string;\n dockerUser?: string;\n dryRun?: DryRunConfig;\n encryptedWarning?: string;\n endpoint?: string;\n executionTimeout?: number;\n exposeAllEnv?: boolean;\n gitTimeout?: number;\n githubTokenWarn?: boolean;\n includeMirrors?: boolean;\n localDir?: string;\n migratePresets?: Record<string, string>;\n platform?: PlatformId;\n presetCachePersistence?: boolean;\n httpCacheTtlDays?: number;\n autodiscoverRepoSort?: RepoSortMethod;\n autodiscoverRepoOrder?: SortMethod;\n userAgent?: string;\n dockerMaxPages?: number;\n s3Endpoint?: string;\n s3PathStyle?: boolean;\n cachePrivatePackages?: boolean;\n repositoryCacheForceLocal?: boolean;\n configFileNames?: string[];\n ignorePrAuthor?: boolean;\n allowedUnsafeExecutions?: AllowedUnsafeExecution[];\n onboardingAutoCloseAge?: number;\n toolSettings?: ToolSettingsOptions;\n}\n\n/**\n * Those options are global only but still passed into the repository worker config.\n *\n * @deprecated https://github.com/renovatebot/renovate/issues/39693\n */\nexport interface LegacyAdminConfig {\n baseDir?: string;\n localDir?: string;\n\n logContext?: string;\n\n onboarding?: boolean;\n onboardingBranch?: string;\n onboardingCommitMessage?: string;\n onboardingNoDeps?: 'auto' | 'enabled' | 'disabled';\n onboardingRebaseCheckbox?: boolean;\n onboardingPrTitle?: string;\n onboardingConfig?: RenovateConfig;\n onboardingConfigFileName?: string;\n\n optimizeForDisabled?: boolean;\n\n persistRepoData?: boolean;\n\n prCommitsPerRunLimit?: number;\n\n requireConfig?: RequiredConfig;\n\n useCloudMetadataServices?: boolean;\n\n writeDiscoveredRepos?: string;\n}\n\nexport type ExecutionMode = 'branch' | 'update';\n\nexport interface PostUpgradeTasks {\n commands?: string[];\n workingDirTemplate?: string;\n dataFileTemplate?: string;\n fileFilters?: string[];\n executionMode: ExecutionMode;\n}\n\nexport type UpdateConfig<\n T extends RenovateSharedConfig = RenovateSharedConfig,\n> = Partial<Record<UpdateType, T | null>>;\n\nexport type RenovateRepository =\n | string\n | (RenovateConfig & {\n repository: string;\n });\n\nexport type UseBaseBranchConfigType = 'merge' | 'none';\nexport type ConstraintsFilter = 'strict' | 'none';\nexport type MinimumReleaseAgeBehaviour =\n | 'timestamp-required'\n | 'timestamp-optional';\n\nexport const allowedStatusCheckStrings = [\n 'minimumReleaseAge',\n 'mergeConfidence',\n 'configValidation',\n 'artifactError',\n] as const;\nexport type StatusCheckKey = (typeof allowedStatusCheckStrings)[number];\ntype UserEnv = Record<string, string>;\n\n/**\n * Computed properties, for internal use only\n */\nexport interface RenovateInternalConfig {\n /** computed base branch from patterns - for internal use only */\n baseBranches?: string[];\n currentCompatibility?: string;\n datasource?: string;\n hasBaseBranches?: boolean;\n isFork?: boolean;\n isVulnerabilityAlert?: boolean;\n\n /** What is this used for? */\n remediations?: unknown;\n /** What is this used for? */\n vulnerabilityAlertsOnly?: boolean;\n}\n\n// TODO: Proper typings\n/**\n * Configuration that could be used either top-level in a repository config (or Global, Inherited or Shareable Preset configuration).\n *\n * This is a superset of any configuration that a Renovate user (not self-hosted administrator) can set.\n */\nexport interface RenovateConfig\n extends\n LegacyAdminConfig,\n RenovateSharedConfig,\n UpdateConfig<PackageRule>,\n AssigneesAndReviewersConfig,\n ConfigMigration,\n RenovateInternalConfig {\n s3Endpoint?: string;\n s3PathStyle?: boolean;\n reportPath?: string;\n reportType?: 'logging' | 'file' | 's3' | null;\n depName?: string;\n /** user configurable base branch patterns*/\n baseBranchPatterns?: string[];\n useBaseBranchConfig?: UseBaseBranchConfigType;\n baseBranch?: string;\n defaultBranch?: string;\n branchList?: string[];\n cloneSubmodules?: boolean;\n cloneSubmodulesFilter?: string[];\n description?: string | string[];\n detectGlobalManagerConfig?: boolean;\n errors?: ValidationMessage[];\n forkModeDisallowMaintainerEdits?: boolean;\n forkProcessing?: 'auto' | 'enabled' | 'disabled';\n forkToken?: string;\n\n gitAuthor?: string;\n\n hostRules?: HostRule[];\n\n inheritConfig?: boolean;\n inheritConfigFileName?: string;\n inheritConfigRepoName?: string;\n inheritConfigStrict?: boolean;\n\n ignorePresets?: string[];\n\n fileList?: string[];\n configWarningReuseIssue?: boolean;\n dependencyDashboard?: boolean;\n dependencyDashboardAutoclose?: boolean;\n dependencyDashboardChecks?: Record<string, string>;\n dependencyDashboardIssue?: number;\n dependencyDashboardTitle?: string;\n dependencyDashboardHeader?: string;\n dependencyDashboardFooter?: string;\n dependencyDashboardLabels?: string[];\n dependencyDashboardOSVVulnerabilitySummary?: 'none' | 'all' | 'unresolved';\n dependencyDashboardReportAbandonment?: boolean;\n mode?: 'silent' | 'full';\n packageFile?: string;\n packageRules?: PackageRule[];\n postUpdateOptions?: string[];\n branchConcurrentLimit?: number | null;\n parentOrg?: string;\n prConcurrentLimit?: number;\n prHourlyLimit?: number;\n\n printConfig?: boolean;\n\n pruneStaleBranches?: boolean;\n\n defaultRegistryUrls?: string[];\n registryUrls?: string[] | null;\n registryAliases?: Record<string, string>;\n\n /**\n * What is this used for?\n * @deprecated\n */\n renovateJsonPresent?: boolean;\n\n repoIsOnboarded?: boolean;\n repoIsActivated?: boolean;\n\n topLevelOrg?: string;\n updateInternalDeps?: boolean;\n updateType?: UpdateType;\n\n warnings?: ValidationMessage[];\n vulnerabilityAlerts?: RenovateSharedConfig;\n osvVulnerabilityAlerts?: boolean;\n vulnerabilitySeverity?: string;\n customManagers?: CustomManager[];\n customDatasources?: Record<string, CustomDatasourceConfig>;\n\n fetchChangeLogs?: FetchChangeLogsOptions;\n secrets?: Record<string, string>;\n variables?: Record<string, string>;\n\n constraints?: Record<string, string>;\n skipInstalls?: boolean | null;\n\n constraintsFiltering?: ConstraintsFilter;\n\n checkedBranches?: string[];\n customizeDashboard?: Record<string, string>;\n\n statusCheckNames?: Record<StatusCheckKey, string | null>;\n /**\n * User configured environment variables that Renovate uses when executing package manager commands\n */\n env?: UserEnv;\n logLevelRemap?: LogLevelRemap[];\n\n branchTopic?: string;\n additionalBranchPrefix?: string;\n sharedVariableName?: string;\n minimumGroupSize?: number;\n configFileNames?: string[];\n minimumReleaseAgeBehaviour?: MinimumReleaseAgeBehaviour;\n toolSettings?: ToolSettingsOptions;\n}\n\nconst CustomDatasourceFormats = [\n 'html',\n 'json',\n 'plain',\n 'toml',\n 'yaml',\n] as const;\nexport type CustomDatasourceFormats = (typeof CustomDatasourceFormats)[number];\n\nexport interface CustomDatasourceConfig {\n defaultRegistryUrlTemplate?: string;\n format?: CustomDatasourceFormats;\n transformTemplates?: string[];\n}\n\n/**\n * The superset of all configuration that a self-hosted administrator can set, alongside all repository-level configuration.\n *\n */\nexport interface AllConfig\n extends RenovateConfig, GlobalOnlyConfigLegacy, RepoGlobalConfig {\n password?: string;\n token?: string;\n username?: string;\n}\n\nexport interface AssigneesAndReviewersConfig {\n assigneesFromCodeOwners?: boolean;\n expandCodeOwnersGroups?: boolean;\n assignees?: string[];\n assigneesSampleSize?: number;\n ignoreReviewers?: string[];\n reviewersFromCodeOwners?: boolean;\n reviewers?: string[];\n reviewersSampleSize?: number;\n additionalReviewers?: string[];\n filterUnavailableUsers?: boolean;\n}\n\nexport type UpdateType =\n | 'major'\n | 'minor'\n | 'patch'\n | 'pin'\n | 'digest'\n | 'pinDigest'\n | 'lockFileMaintenance'\n | 'lockfileUpdate'\n | 'rollback'\n | 'bump'\n | 'replacement';\n\n// These are the update types which can have configuration\nexport const UpdateTypesOptions = [\n 'major',\n 'minor',\n 'patch',\n 'pin',\n 'digest',\n 'pinDigest',\n 'lockFileMaintenance',\n 'rollback',\n 'replacement',\n] as const;\n\nexport type UpdateTypeOptions = (typeof UpdateTypesOptions)[number];\n\nexport type FetchChangeLogsOptions = 'off' | 'branch' | 'pr';\n\nexport type MatchStringsStrategy = 'any' | 'recursive' | 'combination';\n\nexport type MergeStrategy =\n | 'auto'\n | 'fast-forward'\n | 'merge-commit'\n | 'rebase'\n | 'rebase-merge'\n | 'squash';\n\n// This list should be added to as any new unsafe execution commands should be permitted\nexport type AllowedUnsafeExecution = 'goGenerate' | 'gradleWrapper';\n\n// TODO: Proper typings\nexport interface PackageRule\n extends RenovateSharedConfig, RenovateInternalConfig, UpdateConfig {\n allowedVersions?: string;\n description?: string | string[];\n matchBaseBranches?: string[];\n matchCategories?: string[];\n matchConfidence?: MergeConfidence[];\n matchCurrentAge?: string;\n matchCurrentValue?: string;\n matchCurrentVersion?: string;\n matchDatasources?: string[];\n matchDepNames?: string[];\n matchDepTypes?: string[];\n matchFileNames?: string[];\n matchManagers?: string[];\n matchNewValue?: string;\n matchPackageNames?: string[];\n matchRepositories?: string[];\n matchSourceUrls?: string[];\n matchUpdateTypes?: UpdateType[];\n matchJsonata?: string[];\n overrideDatasource?: string;\n overrideDepName?: string;\n overridePackageName?: string;\n registryUrls?: string[] | null;\n replacementName?: string;\n replacementVersion?: string;\n sourceUrl?: string;\n sourceDirectory?: string;\n vulnerabilitySeverity?: string;\n vulnerabilityFixVersion?: string;\n}\n\nexport interface ValidationMessage {\n topic: string;\n message: string;\n}\n\nexport type AllowedParents =\n | '.'\n | 'bumpVersions'\n | 'customDatasources'\n | 'customManagers'\n | 'hostRules'\n | 'logLevelRemap'\n | 'packageRules'\n | 'postUpgradeTasks'\n | 'vulnerabilityAlerts'\n | 'toolSettings'\n | ManagerName\n | UpdateTypeOptions;\nexport interface RenovateOptionBase {\n /**\n * If true, the option can only be configured by people with access to the Renovate instance.\n * Furthermore, the option should be documented in docs/usage/self-hosted-configuration.md.\n */\n globalOnly?: boolean;\n\n inheritConfigSupport?: boolean;\n\n allowedValues?: string[];\n\n allowString?: boolean;\n\n cli?: boolean;\n\n description: string;\n\n env?: false | string;\n\n /**\n * Do not validate object children\n */\n freeChoice?: boolean;\n\n mergeable?: boolean;\n\n autogenerated?: boolean;\n\n name: string;\n\n parents?: AllowedParents[];\n\n stage?: RenovateConfigStage;\n\n experimental?: boolean;\n\n experimentalDescription?: string;\n\n experimentalIssues?: number[];\n\n advancedUse?: boolean;\n\n /**\n * This is used to add a deprecation message in the docs\n */\n deprecationMsg?: string;\n\n /**\n * For internal use only: add it to any config option that supports regex or glob matching\n */\n patternMatch?: boolean;\n\n /**\n * For internal use only: add it to any config option of type integer that supports negative integers\n */\n allowNegative?: boolean;\n\n /**\n * Managers which support this option, leave undefined if all managers support it.\n */\n supportedManagers?: string[];\n\n /**\n * Platforms which support this option, leave undefined if all platforms support it.\n */\n supportedPlatforms?: PlatformId[];\n\n /**\n * Conditions that must be met for this option to be required.\n */\n requiredIf?: RenovateRequiredOption[];\n}\n\nexport interface RenovateRequiredOption {\n siblingProperties: { property: string; value: string }[];\n}\n\nexport interface RenovateArrayOption<\n T extends string | number | Record<string, unknown> = Record<string, unknown>,\n> extends RenovateOptionBase {\n default?: T[] | null;\n mergeable?: boolean;\n type: 'array';\n subType?: 'string' | 'object' | 'number';\n}\n\nexport interface RenovateStringArrayOption extends RenovateArrayOption<string> {\n format?: 'regex';\n subType: 'string';\n}\n\nexport interface RenovateNumberArrayOption extends RenovateArrayOption<number> {\n subType: 'number';\n}\n\nexport interface RenovateBooleanOption extends RenovateOptionBase {\n default?: boolean | null;\n type: 'boolean';\n}\n\nexport interface RenovateIntegerOption extends RenovateOptionBase {\n default?: number | null;\n type: 'integer';\n}\n\nexport interface RenovateStringOption extends RenovateOptionBase {\n default?: string | null;\n format?: 'regex';\n\n // Not used\n replaceLineReturns?: boolean;\n type: 'string';\n}\n\nexport interface RenovateObjectOption extends RenovateOptionBase {\n default?: any;\n additionalProperties?: Record<string, unknown> | boolean;\n mergeable?: boolean;\n type: 'object';\n}\n\nexport type RenovateOptions =\n | RenovateStringOption\n | RenovateNumberArrayOption\n | RenovateStringArrayOption\n | RenovateIntegerOption\n | RenovateBooleanOption\n | RenovateArrayOption\n | RenovateObjectOption;\n\nexport interface PackageRuleInputConfig extends RenovateConfig {\n versioning?: string;\n packageFile?: string;\n lockFiles?: string[];\n depType?: string;\n depTypes?: string[];\n depName?: string;\n packageName?: string | null;\n newValue?: string | null;\n currentValue?: string | null;\n currentVersion?: string;\n lockedVersion?: string;\n updateType?: UpdateType;\n mergeConfidenceLevel?: MergeConfidence | undefined;\n isBump?: boolean;\n sourceUrl?: string | null;\n categories?: string[];\n baseBranch?: string;\n manager?: string;\n datasource?: string;\n packageRules?: (PackageRule & PackageRuleInputConfig)[];\n releaseTimestamp?: Timestamp | null;\n repository?: string;\n currentVersionAgeInDays?: number;\n currentVersionTimestamp?: string;\n enabled?: boolean;\n skipReason?: SkipReason;\n skipStage?: StageName;\n}\n\nexport interface ConfigMigration {\n configMigration?: boolean;\n}\n\nexport interface MigratedConfig {\n /**\n * Indicates whether there was a migration applied to the configuration.\n *\n * @returns\n * `false` if the configuration does not need migrating, and `migratedConfig` can be ignored\n * `true` if the configuration was migrated, and if so, `migratedConfig` should be used instead of the provided config\n */\n isMigrated: boolean;\n migratedConfig: RenovateConfig;\n}\n\nexport interface MigratedRenovateConfig extends RenovateConfig {\n endpoints?: HostRule[];\n pathRules: PackageRule[];\n packages: PackageRule[];\n\n node?: RenovateConfig;\n travis?: RenovateConfig;\n gradle?: RenovateConfig;\n}\n\nexport interface ManagerConfig extends RenovateConfig {\n manager: string;\n categories?: Category[];\n}\n\nexport interface ValidationResult {\n errors: ValidationMessage[];\n warnings: ValidationMessage[];\n}\n\nexport interface BumpVersionConfig {\n bumpType?: string;\n filePatterns: string[];\n matchStrings: string[];\n name?: string;\n}\n\nexport interface ToolSettingsOptions {\n jvmMaxMemory?: number;\n jvmMemory?: number;\n}\n"],"mappings":";AAgUA,MAAa,4BAA4B;CACvC;CACA;CACA;CACA;CACD;AAqMD,MAAa,qBAAqB;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
@@ -1,7 +1,7 @@
1
1
  import { BunyanRecord } from "./types.js";
2
2
  import bunyan from "bunyan";
3
3
  import { Stream } from "node:stream";
4
- import { ZodError } from "zod";
4
+ import { ZodError } from "zod/v3";
5
5
 
6
6
  //#region lib/logger/utils.d.ts
7
7
  declare class ProblemStream extends Stream {
@@ -6,7 +6,7 @@ import { isArray, isBuffer, isDate, isEmptyObject, isError, isFunction, isNonEmp
6
6
  import bunyan from "bunyan";
7
7
  import { Stream } from "node:stream";
8
8
  import { RequestError } from "got";
9
- import { ZodError } from "zod";
9
+ import { ZodError } from "zod/v3";
10
10
 
11
11
  //#region lib/logger/utils.ts
12
12
  const excludeProps = [
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["HttpError"],"sources":["../../lib/logger/utils.ts"],"sourcesContent":["import { Stream } from 'node:stream';\nimport {\n isArray,\n isBuffer,\n isDate,\n isEmptyObject,\n isError,\n isFunction,\n isNonEmptyObject,\n isNonEmptyStringAndNotWhitespace,\n isObject,\n isPlainObject,\n isString,\n isUndefined,\n} from '@sindresorhus/is';\nimport bunyan from 'bunyan';\nimport fs from 'fs-extra';\nimport { RequestError as HttpError } from 'got';\nimport { ZodError } from 'zod';\nimport { ExecError } from '../util/exec/exec-error.ts';\nimport { regEx } from '../util/regex.ts';\nimport { redactedFields, sanitize } from '../util/sanitize.ts';\nimport type { BunyanRecord, BunyanStream } from './types.ts';\n\nconst excludeProps = ['pid', 'time', 'v', 'hostname'];\n\nexport class ProblemStream extends Stream {\n private _problems: BunyanRecord[] = [];\n\n readable: boolean;\n\n writable: boolean;\n\n constructor() {\n super();\n this.readable = false;\n this.writable = true;\n }\n\n write(data: BunyanRecord): boolean {\n const problem = { ...data };\n for (const prop of excludeProps) {\n delete problem[prop];\n }\n this._problems.push(problem);\n return true;\n }\n\n getProblems(): BunyanRecord[] {\n return this._problems;\n }\n\n clearProblems(): void {\n this._problems = [];\n }\n}\n\nconst contentFields = [\n 'content',\n 'contents',\n 'packageLockParsed',\n 'yarnLockParsed',\n];\n\ntype ZodShortenedIssue =\n | null\n | string\n | string[]\n | {\n [key: string]: ZodShortenedIssue;\n };\n\nexport function prepareZodIssues(input: unknown): ZodShortenedIssue {\n if (!isPlainObject(input)) {\n return null;\n }\n\n let err: null | string | string[] = null;\n // v8 ignore else -- TODO: add test #40625\n if (isArray(input._errors, isString)) {\n if (input._errors.length === 1) {\n err = input._errors[0];\n } else if (input._errors.length > 1) {\n err = input._errors;\n } else {\n err = null;\n }\n }\n delete input._errors;\n\n if (isEmptyObject(input)) {\n return err;\n }\n\n const output: Record<string, ZodShortenedIssue> = {};\n const entries = Object.entries(input);\n for (const [key, value] of entries.slice(0, 3)) {\n const child = prepareZodIssues(value);\n // v8 ignore else -- TODO: add test #40625\n if (child !== null) {\n output[key] = child;\n }\n }\n\n if (entries.length > 3) {\n output.___ = `... ${entries.length - 3} more`;\n }\n\n return output;\n}\n\nexport function prepareZodError(err: ZodError): Record<string, unknown> {\n Object.defineProperty(err, 'message', {\n get: () => 'Schema error',\n /* v8 ignore start -- TODO: drop set? */\n set: () => {\n /* intentionally empty */\n },\n // v8 ignore stop -- TODO: drop set? */\n });\n\n return {\n message: err.message,\n stack: err.stack,\n issues: prepareZodIssues(err.format()),\n };\n}\n\nexport default function prepareError(err: Error): Record<string, unknown> {\n if (err instanceof ZodError) {\n return prepareZodError(err);\n }\n\n const response: Record<string, unknown> = {\n ...err,\n };\n\n // Required as message is non-enumerable\n if (!response.message && err.message) {\n response.message = err.message;\n }\n\n // Required as stack is non-enumerable\n if (!response.stack && err.stack) {\n response.stack = err.stack;\n }\n\n if (err instanceof AggregateError) {\n response.errors = err.errors.map((error) => prepareError(error));\n }\n\n // handle rawExec error\n if (err instanceof ExecError && isNonEmptyObject(err.options?.env)) {\n const env = Object.keys(err.options.env);\n response.options = { ...err.options, env };\n }\n\n // handle got error\n if (err instanceof HttpError) {\n const options: Record<string, unknown> = {\n headers: structuredClone(err.options.headers),\n url: err.options.url?.toString(),\n hostType: err.options.context.hostType,\n };\n response.options = options;\n\n options.username = err.options.username;\n options.password = err.options.password;\n options.method = err.options.method;\n options.http2 = err.options.http2;\n\n // v8 ignore else -- TODO: add test #40625\n if (err.response) {\n response.response = {\n statusCode: err.response.statusCode,\n statusMessage: err.response.statusMessage,\n body:\n err.name === 'TimeoutError'\n ? undefined\n : structuredClone(err.response.body),\n headers: structuredClone(err.response.headers),\n httpVersion: err.response.httpVersion,\n retryCount: err.response.retryCount,\n };\n }\n }\n\n return response;\n}\n\ntype NestedValue = unknown[] | object;\n\nfunction isNested(value: unknown): value is NestedValue {\n return isArray(value) || isObject(value);\n}\n\nexport function sanitizeValue(\n value: unknown,\n seen = new WeakMap<NestedValue, unknown>(),\n): any {\n if (isString(value)) {\n return sanitize(sanitizeUrls(value));\n }\n\n if (isDate(value)) {\n return value;\n }\n\n if (isFunction(value)) {\n return '[function]';\n }\n\n if (isBuffer(value)) {\n return '[content]';\n }\n\n if (isError(value)) {\n const err = prepareError(value);\n return sanitizeValue(err, seen);\n }\n\n if (isArray(value)) {\n const length = value.length;\n const arrayResult = Array(length);\n seen.set(value, arrayResult);\n for (let idx = 0; idx < length; idx += 1) {\n const val = value[idx];\n arrayResult[idx] =\n isNested(val) && seen.has(val)\n ? seen.get(val)\n : sanitizeValue(val, seen);\n }\n return arrayResult;\n }\n\n if (isObject(value)) {\n const objectResult: Record<string, any> = {};\n seen.set(value, objectResult);\n for (const [key, val] of Object.entries<any>(value)) {\n let curValue: any;\n if (!val) {\n curValue = val;\n } else if (redactedFields.includes(key)) {\n // Do not mask/sanitize secrets templates\n if (isString(val) && regEx(/^{{\\s*secrets\\..*}}$/).test(val)) {\n curValue = val;\n } else {\n curValue = '***********';\n }\n } else if (contentFields.includes(key)) {\n curValue = '[content]';\n } else if (key === 'secrets') {\n curValue = {};\n Object.keys(val).forEach((secretKey) => {\n curValue[secretKey] = '***********';\n });\n } else {\n curValue = seen.has(val) ? seen.get(val) : sanitizeValue(val, seen);\n }\n\n const sanitizedKey = sanitizeValue(key, seen);\n objectResult[sanitizedKey] = curValue;\n }\n\n return objectResult;\n }\n\n return value;\n}\n\nexport function withSanitizer(streamConfig: bunyan.Stream): bunyan.Stream {\n if (streamConfig.type === 'rotating-file') {\n throw new Error(\"Rotating files aren't supported\");\n }\n\n const stream = streamConfig.stream as BunyanStream;\n if (stream?.writable) {\n const write = (\n chunk: BunyanRecord,\n enc: BufferEncoding,\n cb: (err?: Error | null) => void,\n ): void => {\n const raw = sanitizeValue(chunk);\n const result =\n streamConfig.type === 'raw'\n ? raw\n : JSON.stringify(raw, bunyan.safeCycles()).replace(\n regEx(/\\n?$/),\n '\\n',\n );\n stream.write(result, enc, cb);\n };\n\n return {\n ...streamConfig,\n type: 'raw',\n stream: { write },\n } as bunyan.Stream;\n }\n\n if (streamConfig.path) {\n const fileStream = fs.createWriteStream(streamConfig.path, {\n flags: 'a',\n encoding: 'utf8',\n });\n\n return withSanitizer({ ...streamConfig, stream: fileStream });\n }\n\n throw new Error(\"Missing 'stream' or 'path' for bunyan stream\");\n}\n\n/**\n * A function that terminates execution if the log level that was entered is\n * not a valid value for the Bunyan logger.\n * @param logLevelToCheck\n * @returns returns the logLevel when the logLevelToCheck is valid or the defaultLevel passed as argument when it is undefined. Else it stops execution.\n */\nexport function validateLogLevel(\n logLevelToCheck: string | undefined,\n defaultLevel: bunyan.LogLevelString,\n): bunyan.LogLevelString {\n const allowedValues: bunyan.LogLevelString[] = [\n 'trace',\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'fatal',\n ];\n\n if (\n isUndefined(logLevelToCheck) ||\n (isString(logLevelToCheck) &&\n allowedValues.includes(logLevelToCheck as bunyan.LogLevelString))\n ) {\n // log level is in the allowed values or its undefined\n return (logLevelToCheck as bunyan.LogLevelString) ?? defaultLevel;\n }\n\n const logger = bunyan.createLogger({\n name: 'renovate',\n streams: [\n {\n level: 'fatal',\n stream: process.stdout,\n },\n ],\n });\n logger.fatal({ logLevel: logLevelToCheck }, 'Invalid log level');\n process.exit(1);\n}\n\n// Can't use `util/regex` because of circular reference to logger\nconst urlRe = /[a-z]{3,9}:\\/\\/[^@/]+@[a-z0-9.-]+/gi;\nconst urlCredRe = /\\/\\/[^@]+@/g;\nconst dataUriCredRe = /^(data:[0-9a-z-]+\\/[0-9a-z-]+;).+/i;\n\nexport function sanitizeUrls(text: string): string {\n return text\n .replace(urlRe, (url) => {\n return url.replace(urlCredRe, '//**redacted**@');\n })\n .replace(dataUriCredRe, '$1**redacted**');\n}\n\nexport function getEnv(key: string): string | undefined {\n return [process.env[`RENOVATE_${key}`], process.env[key]]\n .map((v) => v?.toLowerCase().trim())\n .find(isNonEmptyStringAndNotWhitespace);\n}\n\nexport function getMessage(\n p1: string | Record<string, any>,\n p2?: string,\n): string | undefined {\n return isString(p1) ? p1 : p2;\n}\n\nexport function toMeta(\n p1: string | Record<string, any>,\n): Record<string, unknown> {\n return isObject(p1) ? p1 : {};\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","names":["HttpError"],"sources":["../../lib/logger/utils.ts"],"sourcesContent":["import { Stream } from 'node:stream';\nimport {\n isArray,\n isBuffer,\n isDate,\n isEmptyObject,\n isError,\n isFunction,\n isNonEmptyObject,\n isNonEmptyStringAndNotWhitespace,\n isObject,\n isPlainObject,\n isString,\n isUndefined,\n} from '@sindresorhus/is';\nimport bunyan from 'bunyan';\nimport fs from 'fs-extra';\nimport { RequestError as HttpError } from 'got';\nimport { ZodError } from 'zod/v3';\nimport { ExecError } from '../util/exec/exec-error.ts';\nimport { regEx } from '../util/regex.ts';\nimport { redactedFields, sanitize } from '../util/sanitize.ts';\nimport type { BunyanRecord, BunyanStream } from './types.ts';\n\nconst excludeProps = ['pid', 'time', 'v', 'hostname'];\n\nexport class ProblemStream extends Stream {\n private _problems: BunyanRecord[] = [];\n\n readable: boolean;\n\n writable: boolean;\n\n constructor() {\n super();\n this.readable = false;\n this.writable = true;\n }\n\n write(data: BunyanRecord): boolean {\n const problem = { ...data };\n for (const prop of excludeProps) {\n delete problem[prop];\n }\n this._problems.push(problem);\n return true;\n }\n\n getProblems(): BunyanRecord[] {\n return this._problems;\n }\n\n clearProblems(): void {\n this._problems = [];\n }\n}\n\nconst contentFields = [\n 'content',\n 'contents',\n 'packageLockParsed',\n 'yarnLockParsed',\n];\n\ntype ZodShortenedIssue =\n | null\n | string\n | string[]\n | {\n [key: string]: ZodShortenedIssue;\n };\n\nexport function prepareZodIssues(input: unknown): ZodShortenedIssue {\n if (!isPlainObject(input)) {\n return null;\n }\n\n let err: null | string | string[] = null;\n // v8 ignore else -- TODO: add test #40625\n if (isArray(input._errors, isString)) {\n if (input._errors.length === 1) {\n err = input._errors[0];\n } else if (input._errors.length > 1) {\n err = input._errors;\n } else {\n err = null;\n }\n }\n delete input._errors;\n\n if (isEmptyObject(input)) {\n return err;\n }\n\n const output: Record<string, ZodShortenedIssue> = {};\n const entries = Object.entries(input);\n for (const [key, value] of entries.slice(0, 3)) {\n const child = prepareZodIssues(value);\n // v8 ignore else -- TODO: add test #40625\n if (child !== null) {\n output[key] = child;\n }\n }\n\n if (entries.length > 3) {\n output.___ = `... ${entries.length - 3} more`;\n }\n\n return output;\n}\n\nexport function prepareZodError(err: ZodError): Record<string, unknown> {\n Object.defineProperty(err, 'message', {\n get: () => 'Schema error',\n /* v8 ignore start -- TODO: drop set? */\n set: () => {\n /* intentionally empty */\n },\n // v8 ignore stop -- TODO: drop set? */\n });\n\n return {\n message: err.message,\n stack: err.stack,\n issues: prepareZodIssues(err.format()),\n };\n}\n\nexport default function prepareError(err: Error): Record<string, unknown> {\n if (err instanceof ZodError) {\n return prepareZodError(err);\n }\n\n const response: Record<string, unknown> = {\n ...err,\n };\n\n // Required as message is non-enumerable\n if (!response.message && err.message) {\n response.message = err.message;\n }\n\n // Required as stack is non-enumerable\n if (!response.stack && err.stack) {\n response.stack = err.stack;\n }\n\n if (err instanceof AggregateError) {\n response.errors = err.errors.map((error) => prepareError(error));\n }\n\n // handle rawExec error\n if (err instanceof ExecError && isNonEmptyObject(err.options?.env)) {\n const env = Object.keys(err.options.env);\n response.options = { ...err.options, env };\n }\n\n // handle got error\n if (err instanceof HttpError) {\n const options: Record<string, unknown> = {\n headers: structuredClone(err.options.headers),\n url: err.options.url?.toString(),\n hostType: err.options.context.hostType,\n };\n response.options = options;\n\n options.username = err.options.username;\n options.password = err.options.password;\n options.method = err.options.method;\n options.http2 = err.options.http2;\n\n // v8 ignore else -- TODO: add test #40625\n if (err.response) {\n response.response = {\n statusCode: err.response.statusCode,\n statusMessage: err.response.statusMessage,\n body:\n err.name === 'TimeoutError'\n ? undefined\n : structuredClone(err.response.body),\n headers: structuredClone(err.response.headers),\n httpVersion: err.response.httpVersion,\n retryCount: err.response.retryCount,\n };\n }\n }\n\n return response;\n}\n\ntype NestedValue = unknown[] | object;\n\nfunction isNested(value: unknown): value is NestedValue {\n return isArray(value) || isObject(value);\n}\n\nexport function sanitizeValue(\n value: unknown,\n seen = new WeakMap<NestedValue, unknown>(),\n): any {\n if (isString(value)) {\n return sanitize(sanitizeUrls(value));\n }\n\n if (isDate(value)) {\n return value;\n }\n\n if (isFunction(value)) {\n return '[function]';\n }\n\n if (isBuffer(value)) {\n return '[content]';\n }\n\n if (isError(value)) {\n const err = prepareError(value);\n return sanitizeValue(err, seen);\n }\n\n if (isArray(value)) {\n const length = value.length;\n const arrayResult = Array(length);\n seen.set(value, arrayResult);\n for (let idx = 0; idx < length; idx += 1) {\n const val = value[idx];\n arrayResult[idx] =\n isNested(val) && seen.has(val)\n ? seen.get(val)\n : sanitizeValue(val, seen);\n }\n return arrayResult;\n }\n\n if (isObject(value)) {\n const objectResult: Record<string, any> = {};\n seen.set(value, objectResult);\n for (const [key, val] of Object.entries<any>(value)) {\n let curValue: any;\n if (!val) {\n curValue = val;\n } else if (redactedFields.includes(key)) {\n // Do not mask/sanitize secrets templates\n if (isString(val) && regEx(/^{{\\s*secrets\\..*}}$/).test(val)) {\n curValue = val;\n } else {\n curValue = '***********';\n }\n } else if (contentFields.includes(key)) {\n curValue = '[content]';\n } else if (key === 'secrets') {\n curValue = {};\n Object.keys(val).forEach((secretKey) => {\n curValue[secretKey] = '***********';\n });\n } else {\n curValue = seen.has(val) ? seen.get(val) : sanitizeValue(val, seen);\n }\n\n const sanitizedKey = sanitizeValue(key, seen);\n objectResult[sanitizedKey] = curValue;\n }\n\n return objectResult;\n }\n\n return value;\n}\n\nexport function withSanitizer(streamConfig: bunyan.Stream): bunyan.Stream {\n if (streamConfig.type === 'rotating-file') {\n throw new Error(\"Rotating files aren't supported\");\n }\n\n const stream = streamConfig.stream as BunyanStream;\n if (stream?.writable) {\n const write = (\n chunk: BunyanRecord,\n enc: BufferEncoding,\n cb: (err?: Error | null) => void,\n ): void => {\n const raw = sanitizeValue(chunk);\n const result =\n streamConfig.type === 'raw'\n ? raw\n : JSON.stringify(raw, bunyan.safeCycles()).replace(\n regEx(/\\n?$/),\n '\\n',\n );\n stream.write(result, enc, cb);\n };\n\n return {\n ...streamConfig,\n type: 'raw',\n stream: { write },\n } as bunyan.Stream;\n }\n\n if (streamConfig.path) {\n const fileStream = fs.createWriteStream(streamConfig.path, {\n flags: 'a',\n encoding: 'utf8',\n });\n\n return withSanitizer({ ...streamConfig, stream: fileStream });\n }\n\n throw new Error(\"Missing 'stream' or 'path' for bunyan stream\");\n}\n\n/**\n * A function that terminates execution if the log level that was entered is\n * not a valid value for the Bunyan logger.\n * @param logLevelToCheck\n * @returns returns the logLevel when the logLevelToCheck is valid or the defaultLevel passed as argument when it is undefined. Else it stops execution.\n */\nexport function validateLogLevel(\n logLevelToCheck: string | undefined,\n defaultLevel: bunyan.LogLevelString,\n): bunyan.LogLevelString {\n const allowedValues: bunyan.LogLevelString[] = [\n 'trace',\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'fatal',\n ];\n\n if (\n isUndefined(logLevelToCheck) ||\n (isString(logLevelToCheck) &&\n allowedValues.includes(logLevelToCheck as bunyan.LogLevelString))\n ) {\n // log level is in the allowed values or its undefined\n return (logLevelToCheck as bunyan.LogLevelString) ?? defaultLevel;\n }\n\n const logger = bunyan.createLogger({\n name: 'renovate',\n streams: [\n {\n level: 'fatal',\n stream: process.stdout,\n },\n ],\n });\n logger.fatal({ logLevel: logLevelToCheck }, 'Invalid log level');\n process.exit(1);\n}\n\n// Can't use `util/regex` because of circular reference to logger\nconst urlRe = /[a-z]{3,9}:\\/\\/[^@/]+@[a-z0-9.-]+/gi;\nconst urlCredRe = /\\/\\/[^@]+@/g;\nconst dataUriCredRe = /^(data:[0-9a-z-]+\\/[0-9a-z-]+;).+/i;\n\nexport function sanitizeUrls(text: string): string {\n return text\n .replace(urlRe, (url) => {\n return url.replace(urlCredRe, '//**redacted**@');\n })\n .replace(dataUriCredRe, '$1**redacted**');\n}\n\nexport function getEnv(key: string): string | undefined {\n return [process.env[`RENOVATE_${key}`], process.env[key]]\n .map((v) => v?.toLowerCase().trim())\n .find(isNonEmptyStringAndNotWhitespace);\n}\n\nexport function getMessage(\n p1: string | Record<string, any>,\n p2?: string,\n): string | undefined {\n return isString(p1) ? p1 : p2;\n}\n\nexport function toMeta(\n p1: string | Record<string, any>,\n): Record<string, unknown> {\n return isObject(p1) ? p1 : {};\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from "zod/v3";
2
2
 
3
3
  //#region lib/modules/datasource/azure-bicep-resource/schema.ts
4
4
  const BicepResourceVersionIndex = z.object({ resources: z.record(z.string(), z.unknown()) }).transform(({ resources }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/azure-bicep-resource/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const BicepResourceVersionIndex = z\n .object({\n resources: z.record(z.string(), z.unknown()),\n })\n .transform(({ resources }) => {\n const releaseMap = new Map<string, string[]>();\n\n for (const resourceReference of Object.keys(resources)) {\n const [type, version] = resourceReference.toLowerCase().split('@', 2);\n const versions = releaseMap.get(type) ?? [];\n versions.push(version);\n releaseMap.set(type, versions);\n }\n\n return Object.fromEntries(releaseMap);\n });\n\nexport type BicepResourceVersionIndex = z.infer<\n typeof BicepResourceVersionIndex\n>;\n"],"mappings":";;;AAEA,MAAa,4BAA4B,EACtC,OAAO,EACN,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,EAC7C,CAAC,CACD,WAAW,EAAE,gBAAgB;CAC5B,MAAM,6BAAa,IAAI,KAAuB;AAE9C,MAAK,MAAM,qBAAqB,OAAO,KAAK,UAAU,EAAE;EACtD,MAAM,CAAC,MAAM,WAAW,kBAAkB,aAAa,CAAC,MAAM,KAAK,EAAE;EACrE,MAAM,WAAW,WAAW,IAAI,KAAK,IAAI,EAAE;AAC3C,WAAS,KAAK,QAAQ;AACtB,aAAW,IAAI,MAAM,SAAS;;AAGhC,QAAO,OAAO,YAAY,WAAW;EACrC"}
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/azure-bicep-resource/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\n\nexport const BicepResourceVersionIndex = z\n .object({\n resources: z.record(z.string(), z.unknown()),\n })\n .transform(({ resources }) => {\n const releaseMap = new Map<string, string[]>();\n\n for (const resourceReference of Object.keys(resources)) {\n const [type, version] = resourceReference.toLowerCase().split('@', 2);\n const versions = releaseMap.get(type) ?? [];\n versions.push(version);\n releaseMap.set(type, versions);\n }\n\n return Object.fromEntries(releaseMap);\n });\n\nexport type BicepResourceVersionIndex = z.infer<\n typeof BicepResourceVersionIndex\n>;\n"],"mappings":";;;AAEA,MAAa,4BAA4B,EACtC,OAAO,EACN,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,EAC7C,CAAC,CACD,WAAW,EAAE,gBAAgB;CAC5B,MAAM,6BAAa,IAAI,KAAuB;AAE9C,MAAK,MAAM,qBAAqB,OAAO,KAAK,UAAU,EAAE;EACtD,MAAM,CAAC,MAAM,WAAW,kBAAkB,aAAa,CAAC,MAAM,KAAK,EAAE;EACrE,MAAM,WAAW,WAAW,IAAI,KAAK,IAAI,EAAE;AAC3C,WAAS,KAAK,QAAQ;AACtB,aAAW,IAAI,MAAM,SAAS;;AAGhC,QAAO,OAAO,YAAY,WAAW;EACrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["versioning","hostRules.find"],"sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/index.ts"],"sourcesContent":["import type { TypeOf, ZodType } from 'zod';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport * as hostRules from '../../../util/host-rules.ts';\nimport type { HttpOptions } from '../../../util/http/types.ts';\nimport { id as versioning } from '../../versioning/loose/index.ts';\nimport { Datasource } from '../datasource.ts';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types.ts';\nimport {\n AzurePipelinesFallbackTasks,\n AzurePipelinesJSON,\n AzurePipelinesTaskVersion,\n} from './schema.ts';\n\nconst TASKS_URL_BASE =\n 'https://raw.githubusercontent.com/renovatebot/azure-devops-marketplace/main';\nconst BUILT_IN_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-builtin-tasks.json`;\nconst MARKETPLACE_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-marketplace-tasks.json`;\nconst BUILT_IN_TASKS_CHANGELOG_URL =\n 'https://github.com/microsoft/azure-pipelines-tasks/releases';\n\nexport class AzurePipelinesTasksDatasource extends Datasource {\n static readonly id = 'azure-pipelines-tasks';\n\n constructor() {\n super(AzurePipelinesTasksDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultVersioning = versioning;\n\n async getReleases({\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const platform = GlobalConfig.get('platform');\n const endpoint = GlobalConfig.get('endpoint');\n const { token } = hostRules.find({\n hostType: AzurePipelinesTasksDatasource.id,\n url: endpoint,\n });\n\n if (platform === 'azure' && endpoint && token) {\n const auth = Buffer.from(`renovate:${token}`).toString('base64');\n const opts: HttpOptions = {\n headers: { authorization: `Basic ${auth}` },\n };\n const results = await this.getTasks(\n `${endpoint}/_apis/distributedtask/tasks/`,\n opts,\n AzurePipelinesJSON,\n );\n\n const result: ReleaseResult = { releases: [] };\n\n results.value\n .filter((task) => {\n const matchers = [\n task.id === packageName,\n task.name === packageName,\n task.contributionIdentifier !== null &&\n `${task.contributionIdentifier}.${task.id}` === packageName,\n task.contributionIdentifier !== null &&\n `${task.contributionIdentifier}.${task.name}` === packageName,\n ];\n return matchers.some((match) => match);\n })\n .sort(AzurePipelinesTasksDatasource.compareSemanticVersions('version'))\n .forEach((task) => {\n const release: Release = {\n version: `${task.version!.major}.${task.version!.minor}.${task.version!.patch}`,\n changelogContent: task.releaseNotes,\n isDeprecated: task.deprecated,\n };\n\n if (task.serverOwned) {\n release.changelogUrl = BUILT_IN_TASKS_CHANGELOG_URL;\n }\n\n result.releases.push(release);\n });\n\n return result;\n } else {\n const versions =\n (\n await this.getTasks(\n BUILT_IN_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()] ??\n (\n await this.getTasks(\n MARKETPLACE_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()];\n\n if (versions) {\n const releases = versions.map((version) => ({ version }));\n return { releases };\n }\n }\n\n return null;\n }\n\n private async _getTasks<Schema extends ZodType>(\n url: string,\n opts: HttpOptions,\n schema: Schema,\n ): Promise<TypeOf<Schema>> {\n const { body } = await this.http.getJson(url, opts, schema);\n return body;\n }\n\n getTasks<Schema extends ZodType>(\n url: string,\n opts: HttpOptions,\n schema: Schema,\n ): Promise<TypeOf<Schema>> {\n return withCache(\n {\n namespace: `datasource-${AzurePipelinesTasksDatasource.id}`,\n key: url,\n ttlMinutes: 24 * 60,\n },\n () => this._getTasks(url, opts, schema),\n );\n }\n\n static compareSemanticVersions = (key: string) => (a: any, b: any) => {\n const a1Version = AzurePipelinesTaskVersion.safeParse(a[key]).data;\n const b1Version = AzurePipelinesTaskVersion.safeParse(b[key]).data;\n\n const a1 =\n a1Version === undefined\n ? ''\n : `${a1Version.major}.${a1Version.minor}.${a1Version.patch}`;\n const b1 =\n b1Version === undefined\n ? ''\n : `${b1Version.major}.${b1Version.minor}.${b1Version.patch}`;\n\n const len = Math.min(a1.length, b1.length);\n\n for (let i = 0; i < len; i++) {\n const a2 = +a1[i] || 0;\n const b2 = +b1[i] || 0;\n\n if (a2 !== b2) {\n return a2 > b2 ? 1 : -1;\n }\n }\n\n return b1.length - a1.length;\n };\n}\n"],"mappings":";;;;;;;;AAcA,MAAM,iBACJ;AACF,MAAM,qBAAqB,GAAG,eAAe;AAC7C,MAAM,wBAAwB,GAAG,eAAe;AAChD,MAAM,+BACJ;AAEF,IAAa,gCAAb,MAAa,sCAAsC,WAAW;CAC5D,OAAgB,KAAK;CAErB,cAAc;AACZ,QAAM,8BAA8B,GAAG;;CAGzC,AAAkB,wBAAwB;CAE1C,AAAkB,oBAAoBA;CAEtC,MAAM,YAAY,EAChB,eACmD;EACnD,MAAM,WAAW,aAAa,IAAI,WAAW;EAC7C,MAAM,WAAW,aAAa,IAAI,WAAW;EAC7C,MAAM,EAAE,UAAUC,KAAe;GAC/B,UAAU,8BAA8B;GACxC,KAAK;GACN,CAAC;AAEF,MAAI,aAAa,WAAW,YAAY,OAAO;GAE7C,MAAM,OAAoB,EACxB,SAAS,EAAE,eAAe,SAFf,OAAO,KAAK,YAAY,QAAQ,CAAC,SAAS,SAAS,IAEnB,EAC5C;GACD,MAAM,UAAU,MAAM,KAAK,SACzB,GAAG,SAAS,gCACZ,MACA,mBACD;GAED,MAAM,SAAwB,EAAE,UAAU,EAAE,EAAE;AAE9C,WAAQ,MACL,QAAQ,SAAS;AAShB,WARiB;KACf,KAAK,OAAO;KACZ,KAAK,SAAS;KACd,KAAK,2BAA2B,QAC9B,GAAG,KAAK,uBAAuB,GAAG,KAAK,SAAS;KAClD,KAAK,2BAA2B,QAC9B,GAAG,KAAK,uBAAuB,GAAG,KAAK,WAAW;KACrD,CACe,MAAM,UAAU,MAAM;KACtC,CACD,KAAK,8BAA8B,wBAAwB,UAAU,CAAC,CACtE,SAAS,SAAS;IACjB,MAAM,UAAmB;KACvB,SAAS,GAAG,KAAK,QAAS,MAAM,GAAG,KAAK,QAAS,MAAM,GAAG,KAAK,QAAS;KACxE,kBAAkB,KAAK;KACvB,cAAc,KAAK;KACpB;AAED,QAAI,KAAK,YACP,SAAQ,eAAe;AAGzB,WAAO,SAAS,KAAK,QAAQ;KAC7B;AAEJ,UAAO;SACF;GACL,MAAM,YAEF,MAAM,KAAK,SACT,oBACA,EAAE,EACF,4BACD,EACD,YAAY,aAAa,MAEzB,MAAM,KAAK,SACT,uBACA,EAAE,EACF,4BACD,EACD,YAAY,aAAa;AAE7B,OAAI,SAEF,QAAO,EAAE,UADQ,SAAS,KAAK,aAAa,EAAE,SAAS,EAAE,EACtC;;AAIvB,SAAO;;CAGT,MAAc,UACZ,KACA,MACA,QACyB;EACzB,MAAM,EAAE,SAAS,MAAM,KAAK,KAAK,QAAQ,KAAK,MAAM,OAAO;AAC3D,SAAO;;CAGT,SACE,KACA,MACA,QACyB;AACzB,SAAO,UACL;GACE,WAAW,cAAc,8BAA8B;GACvD,KAAK;GACL,YAAY;GACb,QACK,KAAK,UAAU,KAAK,MAAM,OAAO,CACxC;;CAGH,OAAO,2BAA2B,SAAiB,GAAQ,MAAW;EACpE,MAAM,YAAY,0BAA0B,UAAU,EAAE,KAAK,CAAC;EAC9D,MAAM,YAAY,0BAA0B,UAAU,EAAE,KAAK,CAAC;EAE9D,MAAM,KACJ,cAAc,SACV,KACA,GAAG,UAAU,MAAM,GAAG,UAAU,MAAM,GAAG,UAAU;EACzD,MAAM,KACJ,cAAc,SACV,KACA,GAAG,UAAU,MAAM,GAAG,UAAU,MAAM,GAAG,UAAU;EAEzD,MAAM,MAAM,KAAK,IAAI,GAAG,QAAQ,GAAG,OAAO;AAE1C,OAAK,IAAI,IAAI,GAAG,IAAI,KAAK,KAAK;GAC5B,MAAM,KAAK,CAAC,GAAG,MAAM;GACrB,MAAM,KAAK,CAAC,GAAG,MAAM;AAErB,OAAI,OAAO,GACT,QAAO,KAAK,KAAK,IAAI;;AAIzB,SAAO,GAAG,SAAS,GAAG"}
1
+ {"version":3,"file":"index.js","names":["versioning","hostRules.find"],"sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/index.ts"],"sourcesContent":["import type { TypeOf, ZodType } from 'zod/v3';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport * as hostRules from '../../../util/host-rules.ts';\nimport type { HttpOptions } from '../../../util/http/types.ts';\nimport { id as versioning } from '../../versioning/loose/index.ts';\nimport { Datasource } from '../datasource.ts';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types.ts';\nimport {\n AzurePipelinesFallbackTasks,\n AzurePipelinesJSON,\n AzurePipelinesTaskVersion,\n} from './schema.ts';\n\nconst TASKS_URL_BASE =\n 'https://raw.githubusercontent.com/renovatebot/azure-devops-marketplace/main';\nconst BUILT_IN_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-builtin-tasks.json`;\nconst MARKETPLACE_TASKS_URL = `${TASKS_URL_BASE}/azure-pipelines-marketplace-tasks.json`;\nconst BUILT_IN_TASKS_CHANGELOG_URL =\n 'https://github.com/microsoft/azure-pipelines-tasks/releases';\n\nexport class AzurePipelinesTasksDatasource extends Datasource {\n static readonly id = 'azure-pipelines-tasks';\n\n constructor() {\n super(AzurePipelinesTasksDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultVersioning = versioning;\n\n async getReleases({\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const platform = GlobalConfig.get('platform');\n const endpoint = GlobalConfig.get('endpoint');\n const { token } = hostRules.find({\n hostType: AzurePipelinesTasksDatasource.id,\n url: endpoint,\n });\n\n if (platform === 'azure' && endpoint && token) {\n const auth = Buffer.from(`renovate:${token}`).toString('base64');\n const opts: HttpOptions = {\n headers: { authorization: `Basic ${auth}` },\n };\n const results = await this.getTasks(\n `${endpoint}/_apis/distributedtask/tasks/`,\n opts,\n AzurePipelinesJSON,\n );\n\n const result: ReleaseResult = { releases: [] };\n\n results.value\n .filter((task) => {\n const matchers = [\n task.id === packageName,\n task.name === packageName,\n task.contributionIdentifier !== null &&\n `${task.contributionIdentifier}.${task.id}` === packageName,\n task.contributionIdentifier !== null &&\n `${task.contributionIdentifier}.${task.name}` === packageName,\n ];\n return matchers.some((match) => match);\n })\n .sort(AzurePipelinesTasksDatasource.compareSemanticVersions('version'))\n .forEach((task) => {\n const release: Release = {\n version: `${task.version!.major}.${task.version!.minor}.${task.version!.patch}`,\n changelogContent: task.releaseNotes,\n isDeprecated: task.deprecated,\n };\n\n if (task.serverOwned) {\n release.changelogUrl = BUILT_IN_TASKS_CHANGELOG_URL;\n }\n\n result.releases.push(release);\n });\n\n return result;\n } else {\n const versions =\n (\n await this.getTasks(\n BUILT_IN_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()] ??\n (\n await this.getTasks(\n MARKETPLACE_TASKS_URL,\n {},\n AzurePipelinesFallbackTasks,\n )\n )[packageName.toLowerCase()];\n\n if (versions) {\n const releases = versions.map((version) => ({ version }));\n return { releases };\n }\n }\n\n return null;\n }\n\n private async _getTasks<Schema extends ZodType>(\n url: string,\n opts: HttpOptions,\n schema: Schema,\n ): Promise<TypeOf<Schema>> {\n const { body } = await this.http.getJson(url, opts, schema);\n return body;\n }\n\n getTasks<Schema extends ZodType>(\n url: string,\n opts: HttpOptions,\n schema: Schema,\n ): Promise<TypeOf<Schema>> {\n return withCache(\n {\n namespace: `datasource-${AzurePipelinesTasksDatasource.id}`,\n key: url,\n ttlMinutes: 24 * 60,\n },\n () => this._getTasks(url, opts, schema),\n );\n }\n\n static compareSemanticVersions = (key: string) => (a: any, b: any) => {\n const a1Version = AzurePipelinesTaskVersion.safeParse(a[key]).data;\n const b1Version = AzurePipelinesTaskVersion.safeParse(b[key]).data;\n\n const a1 =\n a1Version === undefined\n ? ''\n : `${a1Version.major}.${a1Version.minor}.${a1Version.patch}`;\n const b1 =\n b1Version === undefined\n ? ''\n : `${b1Version.major}.${b1Version.minor}.${b1Version.patch}`;\n\n const len = Math.min(a1.length, b1.length);\n\n for (let i = 0; i < len; i++) {\n const a2 = +a1[i] || 0;\n const b2 = +b1[i] || 0;\n\n if (a2 !== b2) {\n return a2 > b2 ? 1 : -1;\n }\n }\n\n return b1.length - a1.length;\n };\n}\n"],"mappings":";;;;;;;;AAcA,MAAM,iBACJ;AACF,MAAM,qBAAqB,GAAG,eAAe;AAC7C,MAAM,wBAAwB,GAAG,eAAe;AAChD,MAAM,+BACJ;AAEF,IAAa,gCAAb,MAAa,sCAAsC,WAAW;CAC5D,OAAgB,KAAK;CAErB,cAAc;AACZ,QAAM,8BAA8B,GAAG;;CAGzC,AAAkB,wBAAwB;CAE1C,AAAkB,oBAAoBA;CAEtC,MAAM,YAAY,EAChB,eACmD;EACnD,MAAM,WAAW,aAAa,IAAI,WAAW;EAC7C,MAAM,WAAW,aAAa,IAAI,WAAW;EAC7C,MAAM,EAAE,UAAUC,KAAe;GAC/B,UAAU,8BAA8B;GACxC,KAAK;GACN,CAAC;AAEF,MAAI,aAAa,WAAW,YAAY,OAAO;GAE7C,MAAM,OAAoB,EACxB,SAAS,EAAE,eAAe,SAFf,OAAO,KAAK,YAAY,QAAQ,CAAC,SAAS,SAAS,IAEnB,EAC5C;GACD,MAAM,UAAU,MAAM,KAAK,SACzB,GAAG,SAAS,gCACZ,MACA,mBACD;GAED,MAAM,SAAwB,EAAE,UAAU,EAAE,EAAE;AAE9C,WAAQ,MACL,QAAQ,SAAS;AAShB,WARiB;KACf,KAAK,OAAO;KACZ,KAAK,SAAS;KACd,KAAK,2BAA2B,QAC9B,GAAG,KAAK,uBAAuB,GAAG,KAAK,SAAS;KAClD,KAAK,2BAA2B,QAC9B,GAAG,KAAK,uBAAuB,GAAG,KAAK,WAAW;KACrD,CACe,MAAM,UAAU,MAAM;KACtC,CACD,KAAK,8BAA8B,wBAAwB,UAAU,CAAC,CACtE,SAAS,SAAS;IACjB,MAAM,UAAmB;KACvB,SAAS,GAAG,KAAK,QAAS,MAAM,GAAG,KAAK,QAAS,MAAM,GAAG,KAAK,QAAS;KACxE,kBAAkB,KAAK;KACvB,cAAc,KAAK;KACpB;AAED,QAAI,KAAK,YACP,SAAQ,eAAe;AAGzB,WAAO,SAAS,KAAK,QAAQ;KAC7B;AAEJ,UAAO;SACF;GACL,MAAM,YAEF,MAAM,KAAK,SACT,oBACA,EAAE,EACF,4BACD,EACD,YAAY,aAAa,MAEzB,MAAM,KAAK,SACT,uBACA,EAAE,EACF,4BACD,EACD,YAAY,aAAa;AAE7B,OAAI,SAEF,QAAO,EAAE,UADQ,SAAS,KAAK,aAAa,EAAE,SAAS,EAAE,EACtC;;AAIvB,SAAO;;CAGT,MAAc,UACZ,KACA,MACA,QACyB;EACzB,MAAM,EAAE,SAAS,MAAM,KAAK,KAAK,QAAQ,KAAK,MAAM,OAAO;AAC3D,SAAO;;CAGT,SACE,KACA,MACA,QACyB;AACzB,SAAO,UACL;GACE,WAAW,cAAc,8BAA8B;GACvD,KAAK;GACL,YAAY;GACb,QACK,KAAK,UAAU,KAAK,MAAM,OAAO,CACxC;;CAGH,OAAO,2BAA2B,SAAiB,GAAQ,MAAW;EACpE,MAAM,YAAY,0BAA0B,UAAU,EAAE,KAAK,CAAC;EAC9D,MAAM,YAAY,0BAA0B,UAAU,EAAE,KAAK,CAAC;EAE9D,MAAM,KACJ,cAAc,SACV,KACA,GAAG,UAAU,MAAM,GAAG,UAAU,MAAM,GAAG,UAAU;EACzD,MAAM,KACJ,cAAc,SACV,KACA,GAAG,UAAU,MAAM,GAAG,UAAU,MAAM,GAAG,UAAU;EAEzD,MAAM,MAAM,KAAK,IAAI,GAAG,QAAQ,GAAG,OAAO;AAE1C,OAAK,IAAI,IAAI,GAAG,IAAI,KAAK,KAAK;GAC5B,MAAM,KAAK,CAAC,GAAG,MAAM;GACrB,MAAM,KAAK,CAAC,GAAG,MAAM;AAErB,OAAI,OAAO,GACT,QAAO,KAAK,KAAK,IAAI;;AAIzB,SAAO,GAAG,SAAS,GAAG"}
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from "zod/v3";
2
2
 
3
3
  //#region lib/modules/datasource/azure-pipelines-tasks/schema.ts
4
4
  const AzurePipelinesTaskVersion = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const AzurePipelinesTaskVersion = z.object({\n major: z.number(),\n minor: z.number(),\n patch: z.number(),\n});\n\nexport const AzurePipelinesTask = z.object({\n id: z.string(),\n name: z.string(),\n deprecated: z.boolean().optional(),\n releaseNotes: z.string().optional(),\n serverOwned: z.boolean().optional(),\n version: AzurePipelinesTaskVersion.nullable(),\n contributionIdentifier: z.string().optional(),\n});\n\nexport const AzurePipelinesJSON = z.object({\n value: AzurePipelinesTask.array(),\n});\n\nexport const AzurePipelinesFallbackTasks = z.record(z.string().array());\n"],"mappings":";;;AAEA,MAAa,4BAA4B,EAAE,OAAO;CAChD,OAAO,EAAE,QAAQ;CACjB,OAAO,EAAE,QAAQ;CACjB,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEF,MAAa,qBAAqB,EAAE,OAAO;CACzC,IAAI,EAAE,QAAQ;CACd,MAAM,EAAE,QAAQ;CAChB,YAAY,EAAE,SAAS,CAAC,UAAU;CAClC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,aAAa,EAAE,SAAS,CAAC,UAAU;CACnC,SAAS,0BAA0B,UAAU;CAC7C,wBAAwB,EAAE,QAAQ,CAAC,UAAU;CAC9C,CAAC;AAEF,MAAa,qBAAqB,EAAE,OAAO,EACzC,OAAO,mBAAmB,OAAO,EAClC,CAAC;AAEF,MAAa,8BAA8B,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/azure-pipelines-tasks/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\n\nexport const AzurePipelinesTaskVersion = z.object({\n major: z.number(),\n minor: z.number(),\n patch: z.number(),\n});\n\nexport const AzurePipelinesTask = z.object({\n id: z.string(),\n name: z.string(),\n deprecated: z.boolean().optional(),\n releaseNotes: z.string().optional(),\n serverOwned: z.boolean().optional(),\n version: AzurePipelinesTaskVersion.nullable(),\n contributionIdentifier: z.string().optional(),\n});\n\nexport const AzurePipelinesJSON = z.object({\n value: AzurePipelinesTask.array(),\n});\n\nexport const AzurePipelinesFallbackTasks = z.record(z.string().array());\n"],"mappings":";;;AAEA,MAAa,4BAA4B,EAAE,OAAO;CAChD,OAAO,EAAE,QAAQ;CACjB,OAAO,EAAE,QAAQ;CACjB,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEF,MAAa,qBAAqB,EAAE,OAAO;CACzC,IAAI,EAAE,QAAQ;CACd,MAAM,EAAE,QAAQ;CAChB,YAAY,EAAE,SAAS,CAAC,UAAU;CAClC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,aAAa,EAAE,SAAS,CAAC,UAAU;CACnC,SAAS,0BAA0B,UAAU;CAC7C,wBAAwB,EAAE,QAAQ,CAAC,UAAU;CAC9C,CAAC;AAEF,MAAa,qBAAqB,EAAE,OAAO,EACzC,OAAO,mBAAmB,OAAO,EAClC,CAAC;AAEF,MAAa,8BAA8B,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC"}
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from "zod/v3";
2
2
 
3
3
  //#region lib/modules/datasource/bazel/schema.ts
4
4
  const BazelModuleMetadata = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/bazel/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const BazelModuleMetadata = z.object({\n homepage: z.string().optional().nullable(),\n versions: z.array(z.string()),\n yanked_versions: z.record(z.string(), z.string()).optional(),\n});\n\nexport type BazelModuleMetadata = z.infer<typeof BazelModuleMetadata>;\n"],"mappings":";;;AAEA,MAAa,sBAAsB,EAAE,OAAO;CAC1C,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC1C,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC;CAC7B,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,UAAU;CAC7D,CAAC"}
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/bazel/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\n\nexport const BazelModuleMetadata = z.object({\n homepage: z.string().optional().nullable(),\n versions: z.array(z.string()),\n yanked_versions: z.record(z.string(), z.string()).optional(),\n});\n\nexport type BazelModuleMetadata = z.infer<typeof BazelModuleMetadata>;\n"],"mappings":";;;AAEA,MAAa,sBAAsB,EAAE,OAAO;CAC1C,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC1C,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC;CAC7B,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,UAAU;CAC7D,CAAC"}
@@ -7,7 +7,7 @@ import { Datasource } from "../datasource.js";
7
7
  import { DigestsConfig, ReleasesConfig } from "../schema.js";
8
8
  import { BitbucketServerHttp } from "../../../util/http/bitbucket-server.js";
9
9
  import { BitbucketServerCommits, BitbucketServerTag, BitbucketServerTags } from "./schema.js";
10
- import { ZodError } from "zod";
10
+ import { ZodError } from "zod/v3";
11
11
 
12
12
  //#region lib/modules/datasource/bitbucket-server-tags/index.ts
13
13
  var BitbucketServerTagsDatasource = class BitbucketServerTagsDatasource extends Datasource {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/bitbucket-server-tags/index.ts"],"sourcesContent":["import { ZodError } from 'zod';\nimport { logger } from '../../../logger/index.ts';\nimport type { PackageCacheNamespace } from '../../../util/cache/package/types.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport { BitbucketServerHttp } from '../../../util/http/bitbucket-server.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { Result } from '../../../util/result.ts';\nimport { ensureTrailingSlash } from '../../../util/url.ts';\nimport { Datasource } from '../datasource.ts';\nimport { DigestsConfig, ReleasesConfig } from '../schema.ts';\nimport type {\n DigestConfig,\n GetReleasesConfig,\n ReleaseResult,\n} from '../types.ts';\nimport {\n BitbucketServerCommits,\n BitbucketServerTag,\n BitbucketServerTags,\n} from './schema.ts';\n\nexport class BitbucketServerTagsDatasource extends Datasource {\n static readonly id = 'bitbucket-server-tags';\n\n override http = new BitbucketServerHttp(BitbucketServerTagsDatasource.id);\n\n static readonly sourceUrlSupport = 'package';\n static readonly sourceUrlNote =\n 'The source URL is determined by using the `packageName` and `registryUrl`.';\n\n static readonly cacheNamespace: PackageCacheNamespace = `datasource-${BitbucketServerTagsDatasource.id}`;\n\n constructor() {\n super(BitbucketServerTagsDatasource.id);\n }\n\n static getRegistryURL(registryUrl: string): string {\n return registryUrl?.replace(regEx(/\\/rest\\/api\\/1.0$/), '');\n }\n\n static getSourceUrl(\n projectKey: string,\n repositorySlug: string,\n registryUrl: string,\n ): string {\n const url = BitbucketServerTagsDatasource.getRegistryURL(registryUrl);\n return `${ensureTrailingSlash(url)}projects/${projectKey}/repos/${repositorySlug}`;\n }\n\n static getApiUrl(registryUrl: string): string {\n const res = BitbucketServerTagsDatasource.getRegistryURL(registryUrl);\n return `${ensureTrailingSlash(res)}rest/api/1.0/`;\n }\n\n static getCacheKey(\n registryUrl: string | undefined,\n repo: string,\n type: string,\n ): string {\n return `${BitbucketServerTagsDatasource.getRegistryURL(registryUrl ?? '')}:${repo}:${type}`;\n }\n\n // getReleases fetches list of tags for the repository\n private async _getReleases(\n config: GetReleasesConfig,\n ): Promise<ReleaseResult | null> {\n const { registryUrl, packageName } = config;\n const [projectKey, repositorySlug] = packageName.split('/');\n if (!registryUrl) {\n logger.debug('Missing registryUrl');\n return null;\n }\n\n const result = Result.parse(config, ReleasesConfig)\n .transform(({ registryUrl }) => {\n const url = `${BitbucketServerTagsDatasource.getApiUrl(registryUrl)}projects/${projectKey}/repos/${repositorySlug}/tags`;\n\n return this.http.getJsonSafe(\n url,\n { paginate: true },\n BitbucketServerTags,\n );\n })\n .transform((tags) =>\n tags.map(({ displayId, hash }) => ({\n version: displayId,\n gitRef: displayId,\n newDigest: hash ?? undefined,\n })),\n )\n .transform((versions): ReleaseResult => {\n return {\n sourceUrl: BitbucketServerTagsDatasource.getSourceUrl(\n projectKey,\n repositorySlug,\n registryUrl,\n ),\n registryUrl:\n BitbucketServerTagsDatasource.getRegistryURL(registryUrl),\n releases: versions,\n };\n });\n const { val, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'bitbucket-server-tags: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n return withCache(\n {\n namespace: BitbucketServerTagsDatasource.cacheNamespace,\n key: BitbucketServerTagsDatasource.getCacheKey(\n config.registryUrl,\n config.packageName,\n 'tags',\n ),\n fallback: true,\n },\n () => this._getReleases(config),\n );\n }\n\n // getTagCommit fetches the commit hash for the specified tag\n private async _getTagCommit(\n baseUrl: string,\n tag: string,\n ): Promise<string | null> {\n const bitbucketServerTag = (\n await this.http.getJson(`${baseUrl}/tags/${tag}`, BitbucketServerTag)\n ).body;\n\n return bitbucketServerTag.hash ?? null;\n }\n\n getTagCommit(\n baseUrl: string,\n tag: string,\n config: DigestConfig,\n ): Promise<string | null> {\n return withCache(\n {\n namespace: BitbucketServerTagsDatasource.cacheNamespace,\n key: BitbucketServerTagsDatasource.getCacheKey(\n config.registryUrl,\n config.packageName,\n `tag-${tag}`,\n ),\n },\n () => this._getTagCommit(baseUrl, tag),\n );\n }\n\n // getDigest fetches the latest commit for repository main branch.\n // If newValue is provided, then getTagCommit is called\n private async _getDigest(\n config: DigestConfig,\n newValue?: string,\n ): Promise<string | null> {\n const { registryUrl, packageName } = config;\n const [projectKey, repositorySlug] = packageName.split('/');\n if (!registryUrl) {\n logger.debug('Missing registryUrl');\n return null;\n }\n\n const baseUrl = `${BitbucketServerTagsDatasource.getApiUrl(registryUrl)}projects/${projectKey}/repos/${repositorySlug}`;\n\n if (newValue?.length) {\n return this.getTagCommit(baseUrl, newValue, config);\n }\n\n const result = Result.parse(config, DigestsConfig)\n .transform(() => {\n const url = `${baseUrl}/commits?ignoreMissing=true`;\n\n return this.http.getJsonSafe(\n url,\n {\n paginate: true,\n limit: 1,\n maxPages: 1,\n },\n BitbucketServerCommits,\n );\n })\n .transform((commits) => {\n return commits[0]?.id;\n });\n\n const { val = null, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'bitbucket-server-tags: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n override getDigest(\n config: DigestConfig,\n newValue?: string,\n ): Promise<string | null> {\n return withCache(\n {\n namespace: BitbucketServerTagsDatasource.cacheNamespace,\n key: BitbucketServerTagsDatasource.getCacheKey(\n config.registryUrl,\n config.packageName,\n 'digest',\n ),\n fallback: true,\n },\n () => this._getDigest(config, newValue),\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/bitbucket-server-tags/index.ts"],"sourcesContent":["import { ZodError } from 'zod/v3';\nimport { logger } from '../../../logger/index.ts';\nimport type { PackageCacheNamespace } from '../../../util/cache/package/types.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport { BitbucketServerHttp } from '../../../util/http/bitbucket-server.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { Result } from '../../../util/result.ts';\nimport { ensureTrailingSlash } from '../../../util/url.ts';\nimport { Datasource } from '../datasource.ts';\nimport { DigestsConfig, ReleasesConfig } from '../schema.ts';\nimport type {\n DigestConfig,\n GetReleasesConfig,\n ReleaseResult,\n} from '../types.ts';\nimport {\n BitbucketServerCommits,\n BitbucketServerTag,\n BitbucketServerTags,\n} from './schema.ts';\n\nexport class BitbucketServerTagsDatasource extends Datasource {\n static readonly id = 'bitbucket-server-tags';\n\n override http = new BitbucketServerHttp(BitbucketServerTagsDatasource.id);\n\n static readonly sourceUrlSupport = 'package';\n static readonly sourceUrlNote =\n 'The source URL is determined by using the `packageName` and `registryUrl`.';\n\n static readonly cacheNamespace: PackageCacheNamespace = `datasource-${BitbucketServerTagsDatasource.id}`;\n\n constructor() {\n super(BitbucketServerTagsDatasource.id);\n }\n\n static getRegistryURL(registryUrl: string): string {\n return registryUrl?.replace(regEx(/\\/rest\\/api\\/1.0$/), '');\n }\n\n static getSourceUrl(\n projectKey: string,\n repositorySlug: string,\n registryUrl: string,\n ): string {\n const url = BitbucketServerTagsDatasource.getRegistryURL(registryUrl);\n return `${ensureTrailingSlash(url)}projects/${projectKey}/repos/${repositorySlug}`;\n }\n\n static getApiUrl(registryUrl: string): string {\n const res = BitbucketServerTagsDatasource.getRegistryURL(registryUrl);\n return `${ensureTrailingSlash(res)}rest/api/1.0/`;\n }\n\n static getCacheKey(\n registryUrl: string | undefined,\n repo: string,\n type: string,\n ): string {\n return `${BitbucketServerTagsDatasource.getRegistryURL(registryUrl ?? '')}:${repo}:${type}`;\n }\n\n // getReleases fetches list of tags for the repository\n private async _getReleases(\n config: GetReleasesConfig,\n ): Promise<ReleaseResult | null> {\n const { registryUrl, packageName } = config;\n const [projectKey, repositorySlug] = packageName.split('/');\n if (!registryUrl) {\n logger.debug('Missing registryUrl');\n return null;\n }\n\n const result = Result.parse(config, ReleasesConfig)\n .transform(({ registryUrl }) => {\n const url = `${BitbucketServerTagsDatasource.getApiUrl(registryUrl)}projects/${projectKey}/repos/${repositorySlug}/tags`;\n\n return this.http.getJsonSafe(\n url,\n { paginate: true },\n BitbucketServerTags,\n );\n })\n .transform((tags) =>\n tags.map(({ displayId, hash }) => ({\n version: displayId,\n gitRef: displayId,\n newDigest: hash ?? undefined,\n })),\n )\n .transform((versions): ReleaseResult => {\n return {\n sourceUrl: BitbucketServerTagsDatasource.getSourceUrl(\n projectKey,\n repositorySlug,\n registryUrl,\n ),\n registryUrl:\n BitbucketServerTagsDatasource.getRegistryURL(registryUrl),\n releases: versions,\n };\n });\n const { val, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'bitbucket-server-tags: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n return withCache(\n {\n namespace: BitbucketServerTagsDatasource.cacheNamespace,\n key: BitbucketServerTagsDatasource.getCacheKey(\n config.registryUrl,\n config.packageName,\n 'tags',\n ),\n fallback: true,\n },\n () => this._getReleases(config),\n );\n }\n\n // getTagCommit fetches the commit hash for the specified tag\n private async _getTagCommit(\n baseUrl: string,\n tag: string,\n ): Promise<string | null> {\n const bitbucketServerTag = (\n await this.http.getJson(`${baseUrl}/tags/${tag}`, BitbucketServerTag)\n ).body;\n\n return bitbucketServerTag.hash ?? null;\n }\n\n getTagCommit(\n baseUrl: string,\n tag: string,\n config: DigestConfig,\n ): Promise<string | null> {\n return withCache(\n {\n namespace: BitbucketServerTagsDatasource.cacheNamespace,\n key: BitbucketServerTagsDatasource.getCacheKey(\n config.registryUrl,\n config.packageName,\n `tag-${tag}`,\n ),\n },\n () => this._getTagCommit(baseUrl, tag),\n );\n }\n\n // getDigest fetches the latest commit for repository main branch.\n // If newValue is provided, then getTagCommit is called\n private async _getDigest(\n config: DigestConfig,\n newValue?: string,\n ): Promise<string | null> {\n const { registryUrl, packageName } = config;\n const [projectKey, repositorySlug] = packageName.split('/');\n if (!registryUrl) {\n logger.debug('Missing registryUrl');\n return null;\n }\n\n const baseUrl = `${BitbucketServerTagsDatasource.getApiUrl(registryUrl)}projects/${projectKey}/repos/${repositorySlug}`;\n\n if (newValue?.length) {\n return this.getTagCommit(baseUrl, newValue, config);\n }\n\n const result = Result.parse(config, DigestsConfig)\n .transform(() => {\n const url = `${baseUrl}/commits?ignoreMissing=true`;\n\n return this.http.getJsonSafe(\n url,\n {\n paginate: true,\n limit: 1,\n maxPages: 1,\n },\n BitbucketServerCommits,\n );\n })\n .transform((commits) => {\n return commits[0]?.id;\n });\n\n const { val = null, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'bitbucket-server-tags: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n override getDigest(\n config: DigestConfig,\n newValue?: string,\n ): Promise<string | null> {\n return withCache(\n {\n namespace: BitbucketServerTagsDatasource.cacheNamespace,\n key: BitbucketServerTagsDatasource.getCacheKey(\n config.registryUrl,\n config.packageName,\n 'digest',\n ),\n fallback: true,\n },\n () => this._getDigest(config, newValue),\n );\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from "zod/v3";
2
2
 
3
3
  //#region lib/modules/datasource/bitbucket-server-tags/schema.ts
4
4
  const BitbucketServerTag = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/bitbucket-server-tags/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const BitbucketServerTag = z.object({\n displayId: z.string(),\n hash: z.string().nullish(),\n});\n\nexport const BitbucketServerTags = z.array(BitbucketServerTag);\n\nexport const BitbucketServerCommits = z.array(\n z.object({\n id: z.string(),\n }),\n);\n"],"mappings":";;;AAEA,MAAa,qBAAqB,EAAE,OAAO;CACzC,WAAW,EAAE,QAAQ;CACrB,MAAM,EAAE,QAAQ,CAAC,SAAS;CAC3B,CAAC;AAEF,MAAa,sBAAsB,EAAE,MAAM,mBAAmB;AAE9D,MAAa,yBAAyB,EAAE,MACtC,EAAE,OAAO,EACP,IAAI,EAAE,QAAQ,EACf,CAAC,CACH"}
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/bitbucket-server-tags/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\n\nexport const BitbucketServerTag = z.object({\n displayId: z.string(),\n hash: z.string().nullish(),\n});\n\nexport const BitbucketServerTags = z.array(BitbucketServerTag);\n\nexport const BitbucketServerCommits = z.array(\n z.object({\n id: z.string(),\n }),\n);\n"],"mappings":";;;AAEA,MAAa,qBAAqB,EAAE,OAAO;CACzC,WAAW,EAAE,QAAQ;CACrB,MAAM,EAAE,QAAQ,CAAC,SAAS;CAC3B,CAAC;AAEF,MAAa,sBAAsB,EAAE,MAAM,mBAAmB;AAE9D,MAAa,yBAAyB,EAAE,MACtC,EAAE,OAAO,EACP,IAAI,EAAE,QAAQ,EACf,CAAC,CACH"}
@@ -1,6 +1,6 @@
1
1
  import { Yaml } from "../../../util/schema-utils/index.js";
2
2
  import { MaybeTimestamp } from "../../../util/timestamp.js";
3
- import { z } from "zod";
3
+ import { z } from "zod/v3";
4
4
 
5
5
  //#region lib/modules/datasource/bitrise/schema.ts
6
6
  const BitriseStepFile = Yaml.pipe(z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/bitrise/schema.ts"],"sourcesContent":["import { z } from 'zod';\nimport { Yaml } from '../../../util/schema-utils/index.ts';\nimport { MaybeTimestamp } from '../../../util/timestamp.ts';\n\nexport const BitriseStepFile = Yaml.pipe(\n z.object({\n published_at: MaybeTimestamp,\n source_code_url: z.string().optional(),\n }),\n);\n"],"mappings":";;;;;AAIA,MAAa,kBAAkB,KAAK,KAClC,EAAE,OAAO;CACP,cAAc;CACd,iBAAiB,EAAE,QAAQ,CAAC,UAAU;CACvC,CAAC,CACH"}
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/bitrise/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\nimport { Yaml } from '../../../util/schema-utils/index.ts';\nimport { MaybeTimestamp } from '../../../util/timestamp.ts';\n\nexport const BitriseStepFile = Yaml.pipe(\n z.object({\n published_at: MaybeTimestamp,\n source_code_url: z.string().optional(),\n }),\n);\n"],"mappings":";;;;;AAIA,MAAa,kBAAkB,KAAK,KAClC,EAAE,OAAO;CACP,cAAc;CACd,iBAAiB,EAAE,QAAQ,CAAC,UAAU;CACvC,CAAC,CACH"}
@@ -4,7 +4,7 @@ import { Result } from "../../../util/result.js";
4
4
  import { Datasource } from "../datasource.js";
5
5
  import { ReleasesConfig } from "../schema.js";
6
6
  import { BuildpacksRegistryResponse } from "./schema.js";
7
- import { ZodError } from "zod";
7
+ import { ZodError } from "zod/v3";
8
8
  import urlJoin from "url-join";
9
9
 
10
10
  //#region lib/modules/datasource/buildpacks-registry/index.ts
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/buildpacks-registry/index.ts"],"sourcesContent":["import urlJoin from 'url-join';\nimport { ZodError } from 'zod';\nimport { logger } from '../../../logger/index.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport { Result } from '../../../util/result.ts';\nimport { Datasource } from '../datasource.ts';\nimport { ReleasesConfig } from '../schema.ts';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types.ts';\nimport { BuildpacksRegistryResponse } from './schema.ts';\n\nexport class BuildpacksRegistryDatasource extends Datasource {\n static readonly id = 'buildpacks-registry';\n\n constructor() {\n super(BuildpacksRegistryDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultRegistryUrls = ['https://registry.buildpacks.io'];\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `published_at` field in the results.';\n override readonly sourceUrlSupport = 'release';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `source_code_url` field of the release object in the results.';\n\n private async _getReleases(\n config: GetReleasesConfig,\n ): Promise<ReleaseResult | null> {\n const result = Result.parse(config, ReleasesConfig)\n .transform(({ packageName, registryUrl }) => {\n const url = urlJoin(\n registryUrl,\n 'api',\n 'v1',\n 'buildpacks',\n packageName,\n );\n\n return this.http.getJsonSafe(url, BuildpacksRegistryResponse);\n })\n .transform(({ versions, latest }): ReleaseResult => {\n const releases: Release[] = versions;\n\n const res: ReleaseResult = { releases };\n\n if (latest?.homepage) {\n res.homepage = latest.homepage;\n }\n\n return res;\n });\n\n const { val, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'buildpacks: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n return withCache(\n {\n namespace: `datasource-${BuildpacksRegistryDatasource.id}`,\n key: `${config.registryUrl}:${config.packageName}`,\n fallback: true,\n },\n () => this._getReleases(config),\n );\n }\n}\n"],"mappings":";;;;;;;;;;AAUA,IAAa,+BAAb,MAAa,qCAAqC,WAAW;CAC3D,OAAgB,KAAK;CAErB,cAAc;AACZ,QAAM,6BAA6B,GAAG;;CAGxC,AAAkB,wBAAwB;CAE1C,AAAkB,sBAAsB,CAAC,iCAAiC;CAE1E,AAAkB,0BAA0B;CAC5C,AAAkB,uBAChB;CACF,AAAkB,mBAAmB;CACrC,AAAkB,gBAChB;CAEF,MAAc,aACZ,QAC+B;EAyB/B,MAAM,EAAE,KAAK,QAAQ,MAxBN,OAAO,MAAM,QAAQ,eAAe,CAChD,WAAW,EAAE,aAAa,kBAAkB;GAC3C,MAAM,MAAM,QACV,aACA,OACA,MACA,cACA,YACD;AAED,UAAO,KAAK,KAAK,YAAY,KAAK,2BAA2B;IAC7D,CACD,WAAW,EAAE,UAAU,aAA4B;GAGlD,MAAM,MAAqB,EAAE,UAFD,UAEW;AAEvC,OAAI,QAAQ,SACV,KAAI,WAAW,OAAO;AAGxB,UAAO;IACP,CAE8B,QAAQ;AAE1C,MAAI,eAAe,UAAU;AAC3B,UAAO,MAAM,EAAE,KAAK,EAAE,+BAA+B;AACrD,UAAO;;AAGT,MAAI,IACF,MAAK,oBAAoB,IAAI;AAG/B,SAAO;;CAGT,YAAY,QAA0D;AACpE,SAAO,UACL;GACE,WAAW,cAAc,6BAA6B;GACtD,KAAK,GAAG,OAAO,YAAY,GAAG,OAAO;GACrC,UAAU;GACX,QACK,KAAK,aAAa,OAAO,CAChC"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/buildpacks-registry/index.ts"],"sourcesContent":["import urlJoin from 'url-join';\nimport { ZodError } from 'zod/v3';\nimport { logger } from '../../../logger/index.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport { Result } from '../../../util/result.ts';\nimport { Datasource } from '../datasource.ts';\nimport { ReleasesConfig } from '../schema.ts';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types.ts';\nimport { BuildpacksRegistryResponse } from './schema.ts';\n\nexport class BuildpacksRegistryDatasource extends Datasource {\n static readonly id = 'buildpacks-registry';\n\n constructor() {\n super(BuildpacksRegistryDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultRegistryUrls = ['https://registry.buildpacks.io'];\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `published_at` field in the results.';\n override readonly sourceUrlSupport = 'release';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `source_code_url` field of the release object in the results.';\n\n private async _getReleases(\n config: GetReleasesConfig,\n ): Promise<ReleaseResult | null> {\n const result = Result.parse(config, ReleasesConfig)\n .transform(({ packageName, registryUrl }) => {\n const url = urlJoin(\n registryUrl,\n 'api',\n 'v1',\n 'buildpacks',\n packageName,\n );\n\n return this.http.getJsonSafe(url, BuildpacksRegistryResponse);\n })\n .transform(({ versions, latest }): ReleaseResult => {\n const releases: Release[] = versions;\n\n const res: ReleaseResult = { releases };\n\n if (latest?.homepage) {\n res.homepage = latest.homepage;\n }\n\n return res;\n });\n\n const { val, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'buildpacks: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n return withCache(\n {\n namespace: `datasource-${BuildpacksRegistryDatasource.id}`,\n key: `${config.registryUrl}:${config.packageName}`,\n fallback: true,\n },\n () => this._getReleases(config),\n );\n }\n}\n"],"mappings":";;;;;;;;;;AAUA,IAAa,+BAAb,MAAa,qCAAqC,WAAW;CAC3D,OAAgB,KAAK;CAErB,cAAc;AACZ,QAAM,6BAA6B,GAAG;;CAGxC,AAAkB,wBAAwB;CAE1C,AAAkB,sBAAsB,CAAC,iCAAiC;CAE1E,AAAkB,0BAA0B;CAC5C,AAAkB,uBAChB;CACF,AAAkB,mBAAmB;CACrC,AAAkB,gBAChB;CAEF,MAAc,aACZ,QAC+B;EAyB/B,MAAM,EAAE,KAAK,QAAQ,MAxBN,OAAO,MAAM,QAAQ,eAAe,CAChD,WAAW,EAAE,aAAa,kBAAkB;GAC3C,MAAM,MAAM,QACV,aACA,OACA,MACA,cACA,YACD;AAED,UAAO,KAAK,KAAK,YAAY,KAAK,2BAA2B;IAC7D,CACD,WAAW,EAAE,UAAU,aAA4B;GAGlD,MAAM,MAAqB,EAAE,UAFD,UAEW;AAEvC,OAAI,QAAQ,SACV,KAAI,WAAW,OAAO;AAGxB,UAAO;IACP,CAE8B,QAAQ;AAE1C,MAAI,eAAe,UAAU;AAC3B,UAAO,MAAM,EAAE,KAAK,EAAE,+BAA+B;AACrD,UAAO;;AAGT,MAAI,IACF,MAAK,oBAAoB,IAAI;AAG/B,SAAO;;CAGT,YAAY,QAA0D;AACpE,SAAO,UACL;GACE,WAAW,cAAc,6BAA6B;GACtD,KAAK,GAAG,OAAO,YAAY,GAAG,OAAO;GACrC,UAAU;GACX,QACK,KAAK,aAAa,OAAO,CAChC"}
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from "zod/v3";
2
2
 
3
3
  //#region lib/modules/datasource/buildpacks-registry/schema.ts
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/buildpacks-registry/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\n/**\n * Response from registry.buildpacks.io\n */\nexport const BuildpacksRegistryResponse = z.object({\n latest: z\n .object({\n homepage: z.string().optional(),\n })\n .optional(),\n versions: z\n .object({\n version: z.string(),\n })\n .array(),\n});\n"],"mappings":";;;;;;AAKA,MAAa,6BAA6B,EAAE,OAAO;CACjD,QAAQ,EACL,OAAO,EACN,UAAU,EAAE,QAAQ,CAAC,UAAU,EAChC,CAAC,CACD,UAAU;CACb,UAAU,EACP,OAAO,EACN,SAAS,EAAE,QAAQ,EACpB,CAAC,CACD,OAAO;CACX,CAAC"}
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/buildpacks-registry/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\n\n/**\n * Response from registry.buildpacks.io\n */\nexport const BuildpacksRegistryResponse = z.object({\n latest: z\n .object({\n homepage: z.string().optional(),\n })\n .optional(),\n versions: z\n .object({\n version: z.string(),\n })\n .array(),\n});\n"],"mappings":";;;;;;AAKA,MAAa,6BAA6B,EAAE,OAAO;CACjD,QAAQ,EACL,OAAO,EACN,UAAU,EAAE,QAAQ,CAAC,UAAU,EAChC,CAAC,CACD,UAAU;CACb,UAAU,EACP,OAAO,EACN,SAAS,EAAE,QAAQ,EACpB,CAAC,CACD,OAAO;CACX,CAAC"}
@@ -6,7 +6,7 @@ import { Result } from "../../../util/result.js";
6
6
  import { Datasource } from "../datasource.js";
7
7
  import { DigestsConfig, ReleasesConfig } from "../schema.js";
8
8
  import { CdnjsAPISriResponse, CdnjsAPIVersionResponse } from "./schema.js";
9
- import { ZodError } from "zod";
9
+ import { ZodError } from "zod/v3";
10
10
 
11
11
  //#region lib/modules/datasource/cdnjs/index.ts
12
12
  var CdnjsDatasource = class CdnjsDatasource extends Datasource {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/cdnjs/index.ts"],"sourcesContent":["import { ZodError } from 'zod';\nimport { logger } from '../../../logger/index.ts';\nimport { ExternalHostError } from '../../../types/errors/external-host-error.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport { memCacheProvider } from '../../../util/http/cache/memory-http-cache-provider.ts';\nimport type { HttpError } from '../../../util/http/index.ts';\nimport { Result } from '../../../util/result.ts';\nimport { Datasource } from '../datasource.ts';\nimport { DigestsConfig, ReleasesConfig } from '../schema.ts';\nimport type {\n DigestConfig,\n GetReleasesConfig,\n Release,\n ReleaseResult,\n} from '../types.ts';\nimport { CdnjsAPISriResponse, CdnjsAPIVersionResponse } from './schema.ts';\n\nexport class CdnjsDatasource extends Datasource {\n static readonly id = 'cdnjs';\n\n constructor() {\n super(CdnjsDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultRegistryUrls = ['https://api.cdnjs.com/'];\n\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `repository` field in the results.';\n\n private async _getReleases(\n config: GetReleasesConfig,\n ): Promise<ReleaseResult | null> {\n const result = Result.parse(config, ReleasesConfig)\n .transform(({ packageName, registryUrl }) => {\n const [library] = packageName.split('/');\n\n const url = `${registryUrl}libraries/${library}?fields=homepage,repository,versions`;\n\n return this.http.getJsonSafe(\n url,\n { cacheProvider: memCacheProvider },\n CdnjsAPIVersionResponse,\n );\n })\n .transform(({ versions, homepage, repository }): ReleaseResult => {\n const releases: Release[] = versions;\n\n const res: ReleaseResult = { releases };\n\n if (homepage) {\n res.homepage = homepage;\n }\n\n if (repository) {\n res.sourceUrl = repository;\n }\n\n return res;\n });\n\n const { val, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'cdnjs: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n const library = config.packageName.split('/')[0];\n return withCache(\n {\n namespace: `datasource-${CdnjsDatasource.id}`,\n key: `getReleases:${library}`,\n fallback: true,\n },\n () => this._getReleases(config),\n );\n }\n\n private async _getDigest(\n config: DigestConfig,\n newValue: string,\n ): Promise<string | null> {\n const { packageName } = config;\n const [library] = packageName.split('/');\n const assetName = packageName.replace(`${library}/`, '');\n\n const result = Result.parse(config, DigestsConfig)\n .transform(({ registryUrl }) => {\n const url = `${registryUrl}libraries/${library}/${newValue}?fields=sri`;\n\n return this.http.getJsonSafe(url, CdnjsAPISriResponse);\n })\n .transform(({ sri }): string => {\n return sri?.[assetName];\n });\n\n const { val = null, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'cdnjs: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n override getDigest(\n config: DigestConfig,\n newValue: string,\n ): Promise<string | null> {\n return withCache(\n {\n namespace: `datasource-${CdnjsDatasource.id}`,\n key: `getDigest:${config.registryUrl}:${config.packageName}:${newValue}`,\n fallback: true,\n },\n () => this._getDigest(config, newValue),\n );\n }\n\n override handleHttpErrors(err: HttpError): void {\n if (err.response?.statusCode !== 404) {\n throw new ExternalHostError(err);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;AAiBA,IAAa,kBAAb,MAAa,wBAAwB,WAAW;CAC9C,OAAgB,KAAK;CAErB,cAAc;AACZ,QAAM,gBAAgB,GAAG;;CAG3B,AAAkB,wBAAwB;CAE1C,AAAkB,sBAAsB,CAAC,yBAAyB;CAElE,AAAkB,mBAAmB;CACrC,AAAkB,gBAChB;CAEF,MAAc,aACZ,QAC+B;EA6B/B,MAAM,EAAE,KAAK,QAAQ,MA5BN,OAAO,MAAM,QAAQ,eAAe,CAChD,WAAW,EAAE,aAAa,kBAAkB;GAC3C,MAAM,CAAC,WAAW,YAAY,MAAM,IAAI;GAExC,MAAM,MAAM,GAAG,YAAY,YAAY,QAAQ;AAE/C,UAAO,KAAK,KAAK,YACf,KACA,EAAE,eAAe,kBAAkB,EACnC,wBACD;IACD,CACD,WAAW,EAAE,UAAU,UAAU,iBAAgC;GAGhE,MAAM,MAAqB,EAAE,UAFD,UAEW;AAEvC,OAAI,SACF,KAAI,WAAW;AAGjB,OAAI,WACF,KAAI,YAAY;AAGlB,UAAO;IACP,CAE8B,QAAQ;AAE1C,MAAI,eAAe,UAAU;AAC3B,UAAO,MAAM,EAAE,KAAK,EAAE,0BAA0B;AAChD,UAAO;;AAGT,MAAI,IACF,MAAK,oBAAoB,IAAI;AAG/B,SAAO;;CAGT,YAAY,QAA0D;EACpE,MAAM,UAAU,OAAO,YAAY,MAAM,IAAI,CAAC;AAC9C,SAAO,UACL;GACE,WAAW,cAAc,gBAAgB;GACzC,KAAK,eAAe;GACpB,UAAU;GACX,QACK,KAAK,aAAa,OAAO,CAChC;;CAGH,MAAc,WACZ,QACA,UACwB;EACxB,MAAM,EAAE,gBAAgB;EACxB,MAAM,CAAC,WAAW,YAAY,MAAM,IAAI;EACxC,MAAM,YAAY,YAAY,QAAQ,GAAG,QAAQ,IAAI,GAAG;EAYxD,MAAM,EAAE,MAAM,MAAM,QAAQ,MAVb,OAAO,MAAM,QAAQ,cAAc,CAC/C,WAAW,EAAE,kBAAkB;GAC9B,MAAM,MAAM,GAAG,YAAY,YAAY,QAAQ,GAAG,SAAS;AAE3D,UAAO,KAAK,KAAK,YAAY,KAAK,oBAAoB;IACtD,CACD,WAAW,EAAE,UAAkB;AAC9B,UAAO,MAAM;IACb,CAEqC,QAAQ;AAEjD,MAAI,eAAe,UAAU;AAC3B,UAAO,MAAM,EAAE,KAAK,EAAE,0BAA0B;AAChD,UAAO;;AAGT,MAAI,IACF,MAAK,oBAAoB,IAAI;AAG/B,SAAO;;CAGT,AAAS,UACP,QACA,UACwB;AACxB,SAAO,UACL;GACE,WAAW,cAAc,gBAAgB;GACzC,KAAK,aAAa,OAAO,YAAY,GAAG,OAAO,YAAY,GAAG;GAC9D,UAAU;GACX,QACK,KAAK,WAAW,QAAQ,SAAS,CACxC;;CAGH,AAAS,iBAAiB,KAAsB;AAC9C,MAAI,IAAI,UAAU,eAAe,IAC/B,OAAM,IAAI,kBAAkB,IAAI"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/cdnjs/index.ts"],"sourcesContent":["import { ZodError } from 'zod/v3';\nimport { logger } from '../../../logger/index.ts';\nimport { ExternalHostError } from '../../../types/errors/external-host-error.ts';\nimport { withCache } from '../../../util/cache/package/with-cache.ts';\nimport { memCacheProvider } from '../../../util/http/cache/memory-http-cache-provider.ts';\nimport type { HttpError } from '../../../util/http/index.ts';\nimport { Result } from '../../../util/result.ts';\nimport { Datasource } from '../datasource.ts';\nimport { DigestsConfig, ReleasesConfig } from '../schema.ts';\nimport type {\n DigestConfig,\n GetReleasesConfig,\n Release,\n ReleaseResult,\n} from '../types.ts';\nimport { CdnjsAPISriResponse, CdnjsAPIVersionResponse } from './schema.ts';\n\nexport class CdnjsDatasource extends Datasource {\n static readonly id = 'cdnjs';\n\n constructor() {\n super(CdnjsDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly defaultRegistryUrls = ['https://api.cdnjs.com/'];\n\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `repository` field in the results.';\n\n private async _getReleases(\n config: GetReleasesConfig,\n ): Promise<ReleaseResult | null> {\n const result = Result.parse(config, ReleasesConfig)\n .transform(({ packageName, registryUrl }) => {\n const [library] = packageName.split('/');\n\n const url = `${registryUrl}libraries/${library}?fields=homepage,repository,versions`;\n\n return this.http.getJsonSafe(\n url,\n { cacheProvider: memCacheProvider },\n CdnjsAPIVersionResponse,\n );\n })\n .transform(({ versions, homepage, repository }): ReleaseResult => {\n const releases: Release[] = versions;\n\n const res: ReleaseResult = { releases };\n\n if (homepage) {\n res.homepage = homepage;\n }\n\n if (repository) {\n res.sourceUrl = repository;\n }\n\n return res;\n });\n\n const { val, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'cdnjs: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n const library = config.packageName.split('/')[0];\n return withCache(\n {\n namespace: `datasource-${CdnjsDatasource.id}`,\n key: `getReleases:${library}`,\n fallback: true,\n },\n () => this._getReleases(config),\n );\n }\n\n private async _getDigest(\n config: DigestConfig,\n newValue: string,\n ): Promise<string | null> {\n const { packageName } = config;\n const [library] = packageName.split('/');\n const assetName = packageName.replace(`${library}/`, '');\n\n const result = Result.parse(config, DigestsConfig)\n .transform(({ registryUrl }) => {\n const url = `${registryUrl}libraries/${library}/${newValue}?fields=sri`;\n\n return this.http.getJsonSafe(url, CdnjsAPISriResponse);\n })\n .transform(({ sri }): string => {\n return sri?.[assetName];\n });\n\n const { val = null, err } = await result.unwrap();\n\n if (err instanceof ZodError) {\n logger.debug({ err }, 'cdnjs: validation error');\n return null;\n }\n\n if (err) {\n this.handleGenericErrors(err);\n }\n\n return val;\n }\n\n override getDigest(\n config: DigestConfig,\n newValue: string,\n ): Promise<string | null> {\n return withCache(\n {\n namespace: `datasource-${CdnjsDatasource.id}`,\n key: `getDigest:${config.registryUrl}:${config.packageName}:${newValue}`,\n fallback: true,\n },\n () => this._getDigest(config, newValue),\n );\n }\n\n override handleHttpErrors(err: HttpError): void {\n if (err.response?.statusCode !== 404) {\n throw new ExternalHostError(err);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;AAiBA,IAAa,kBAAb,MAAa,wBAAwB,WAAW;CAC9C,OAAgB,KAAK;CAErB,cAAc;AACZ,QAAM,gBAAgB,GAAG;;CAG3B,AAAkB,wBAAwB;CAE1C,AAAkB,sBAAsB,CAAC,yBAAyB;CAElE,AAAkB,mBAAmB;CACrC,AAAkB,gBAChB;CAEF,MAAc,aACZ,QAC+B;EA6B/B,MAAM,EAAE,KAAK,QAAQ,MA5BN,OAAO,MAAM,QAAQ,eAAe,CAChD,WAAW,EAAE,aAAa,kBAAkB;GAC3C,MAAM,CAAC,WAAW,YAAY,MAAM,IAAI;GAExC,MAAM,MAAM,GAAG,YAAY,YAAY,QAAQ;AAE/C,UAAO,KAAK,KAAK,YACf,KACA,EAAE,eAAe,kBAAkB,EACnC,wBACD;IACD,CACD,WAAW,EAAE,UAAU,UAAU,iBAAgC;GAGhE,MAAM,MAAqB,EAAE,UAFD,UAEW;AAEvC,OAAI,SACF,KAAI,WAAW;AAGjB,OAAI,WACF,KAAI,YAAY;AAGlB,UAAO;IACP,CAE8B,QAAQ;AAE1C,MAAI,eAAe,UAAU;AAC3B,UAAO,MAAM,EAAE,KAAK,EAAE,0BAA0B;AAChD,UAAO;;AAGT,MAAI,IACF,MAAK,oBAAoB,IAAI;AAG/B,SAAO;;CAGT,YAAY,QAA0D;EACpE,MAAM,UAAU,OAAO,YAAY,MAAM,IAAI,CAAC;AAC9C,SAAO,UACL;GACE,WAAW,cAAc,gBAAgB;GACzC,KAAK,eAAe;GACpB,UAAU;GACX,QACK,KAAK,aAAa,OAAO,CAChC;;CAGH,MAAc,WACZ,QACA,UACwB;EACxB,MAAM,EAAE,gBAAgB;EACxB,MAAM,CAAC,WAAW,YAAY,MAAM,IAAI;EACxC,MAAM,YAAY,YAAY,QAAQ,GAAG,QAAQ,IAAI,GAAG;EAYxD,MAAM,EAAE,MAAM,MAAM,QAAQ,MAVb,OAAO,MAAM,QAAQ,cAAc,CAC/C,WAAW,EAAE,kBAAkB;GAC9B,MAAM,MAAM,GAAG,YAAY,YAAY,QAAQ,GAAG,SAAS;AAE3D,UAAO,KAAK,KAAK,YAAY,KAAK,oBAAoB;IACtD,CACD,WAAW,EAAE,UAAkB;AAC9B,UAAO,MAAM;IACb,CAEqC,QAAQ;AAEjD,MAAI,eAAe,UAAU;AAC3B,UAAO,MAAM,EAAE,KAAK,EAAE,0BAA0B;AAChD,UAAO;;AAGT,MAAI,IACF,MAAK,oBAAoB,IAAI;AAG/B,SAAO;;CAGT,AAAS,UACP,QACA,UACwB;AACxB,SAAO,UACL;GACE,WAAW,cAAc,gBAAgB;GACzC,KAAK,aAAa,OAAO,YAAY,GAAG,OAAO,YAAY,GAAG;GAC9D,UAAU;GACX,QACK,KAAK,WAAW,QAAQ,SAAS,CACxC;;CAGH,AAAS,iBAAiB,KAAsB;AAC9C,MAAI,IAAI,UAAU,eAAe,IAC/B,OAAM,IAAI,kBAAkB,IAAI"}
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from "zod/v3";
2
2
 
3
3
  //#region lib/modules/datasource/cdnjs/schema.ts
4
4
  const Homepage = z.string().optional().catch(void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/cdnjs/schema.ts"],"sourcesContent":["import { z } from 'zod';\nimport type { Release } from '../types.ts';\n\nexport const Homepage = z.string().optional().catch(undefined);\n\nexport const Repository = z\n .object({\n type: z.literal('git'),\n url: z.string(),\n })\n .transform(({ url }) => url)\n .optional()\n .catch(undefined);\n\nexport const Versions = z\n .string()\n .transform((version): Release => ({ version }))\n .array();\n\nexport const Sri = z.record(z.string());\n\nexport const CdnjsAPIVersionResponse = z.object({\n homepage: Homepage,\n repository: Repository,\n versions: Versions,\n});\n\nexport const CdnjsAPISriResponse = z.object({\n sri: Sri,\n});\n"],"mappings":";;;AAGA,MAAa,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,OAAU;AAE9D,MAAa,aAAa,EACvB,OAAO;CACN,MAAM,EAAE,QAAQ,MAAM;CACtB,KAAK,EAAE,QAAQ;CAChB,CAAC,CACD,WAAW,EAAE,UAAU,IAAI,CAC3B,UAAU,CACV,MAAM,OAAU;AAEnB,MAAa,WAAW,EACrB,QAAQ,CACR,WAAW,aAAsB,EAAE,SAAS,EAAE,CAC9C,OAAO;AAEV,MAAa,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;AAEvC,MAAa,0BAA0B,EAAE,OAAO;CAC9C,UAAU;CACV,YAAY;CACZ,UAAU;CACX,CAAC;AAEF,MAAa,sBAAsB,EAAE,OAAO,EAC1C,KAAK,KACN,CAAC"}
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/cdnjs/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\nimport type { Release } from '../types.ts';\n\nexport const Homepage = z.string().optional().catch(undefined);\n\nexport const Repository = z\n .object({\n type: z.literal('git'),\n url: z.string(),\n })\n .transform(({ url }) => url)\n .optional()\n .catch(undefined);\n\nexport const Versions = z\n .string()\n .transform((version): Release => ({ version }))\n .array();\n\nexport const Sri = z.record(z.string());\n\nexport const CdnjsAPIVersionResponse = z.object({\n homepage: Homepage,\n repository: Repository,\n versions: Versions,\n});\n\nexport const CdnjsAPISriResponse = z.object({\n sri: Sri,\n});\n"],"mappings":";;;AAGA,MAAa,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,OAAU;AAE9D,MAAa,aAAa,EACvB,OAAO;CACN,MAAM,EAAE,QAAQ,MAAM;CACtB,KAAK,EAAE,QAAQ;CAChB,CAAC,CACD,WAAW,EAAE,UAAU,IAAI,CAC3B,UAAU,CACV,MAAM,OAAU;AAEnB,MAAa,WAAW,EACrB,QAAQ,CACR,WAAW,aAAsB,EAAE,SAAS,EAAE,CAC9C,OAAO;AAEV,MAAa,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;AAEvC,MAAa,0BAA0B,EAAE,OAAO;CAC9C,UAAU;CACV,YAAY;CACZ,UAAU;CACX,CAAC;AAEF,MAAa,sBAAsB,EAAE,OAAO,EAC1C,KAAK,KACN,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { LooseArray } from "../../../util/schema-utils/index.js";
2
2
  import { conanDatasourceRegex } from "./common.js";
3
- import { z } from "zod";
3
+ import { z } from "zod/v3";
4
4
 
5
5
  //#region lib/modules/datasource/conan/schema.ts
6
6
  const ConanCenterReleases = z.object({ versions: z.record(z.string(), z.unknown()) }).transform(({ versions }) => ({ releases: Object.keys(versions).map((version) => ({ version })) })).nullable().catch(null);
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/conan/schema.ts"],"sourcesContent":["import { z } from 'zod';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\nimport type { ReleaseResult } from '../types.ts';\nimport { conanDatasourceRegex } from './common.ts';\n\nexport const ConanCenterReleases = z\n .object({\n versions: z.record(z.string(), z.unknown()),\n })\n .transform(\n ({ versions }): ReleaseResult => ({\n releases: Object.keys(versions).map((version) => ({ version })),\n }),\n )\n .nullable()\n .catch(null);\n\nexport const ConanJSON = z\n .object({\n results: z\n .string()\n .array()\n .transform((array) =>\n array.map((val) => val.match(conanDatasourceRegex)?.groups),\n )\n .pipe(\n LooseArray(\n z.object({\n name: z.string(),\n version: z.string(),\n userChannel: z.string(),\n }),\n ),\n ),\n })\n .transform(({ results }) => results)\n .nullable()\n .catch(null);\n\nexport const ConanRevisionJSON = z.object({\n revision: z.string(),\n time: z.string(),\n});\n\nexport const ConanLatestRevision = z\n .object({ revisions: z.unknown().array() })\n .transform(({ revisions }) => revisions[0])\n .pipe(ConanRevisionJSON)\n .transform(({ revision }) => revision)\n .nullable()\n .catch(null);\n\nexport const ConanProperties = z\n .object({\n properties: z.object({\n 'conan.package.url': z.union([\n z.string().transform((url) => [url]),\n z.string().array(),\n ]),\n }),\n })\n .transform(({ properties }) => {\n const sourceUrl = properties['conan.package.url'][0];\n return { sourceUrl };\n });\n"],"mappings":";;;;;AAKA,MAAa,sBAAsB,EAChC,OAAO,EACN,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,EAC5C,CAAC,CACD,WACE,EAAE,gBAA+B,EAChC,UAAU,OAAO,KAAK,SAAS,CAAC,KAAK,aAAa,EAAE,SAAS,EAAE,EAChE,EACF,CACA,UAAU,CACV,MAAM,KAAK;AAEd,MAAa,YAAY,EACtB,OAAO,EACN,SAAS,EACN,QAAQ,CACR,OAAO,CACP,WAAW,UACV,MAAM,KAAK,QAAQ,IAAI,MAAM,qBAAqB,EAAE,OAAO,CAC5D,CACA,KACC,WACE,EAAE,OAAO;CACP,MAAM,EAAE,QAAQ;CAChB,SAAS,EAAE,QAAQ;CACnB,aAAa,EAAE,QAAQ;CACxB,CAAC,CACH,CACF,EACJ,CAAC,CACD,WAAW,EAAE,cAAc,QAAQ,CACnC,UAAU,CACV,MAAM,KAAK;AAEd,MAAa,oBAAoB,EAAE,OAAO;CACxC,UAAU,EAAE,QAAQ;CACpB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAa,sBAAsB,EAChC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAC1C,WAAW,EAAE,gBAAgB,UAAU,GAAG,CAC1C,KAAK,kBAAkB,CACvB,WAAW,EAAE,eAAe,SAAS,CACrC,UAAU,CACV,MAAM,KAAK;AAEd,MAAa,kBAAkB,EAC5B,OAAO,EACN,YAAY,EAAE,OAAO,EACnB,qBAAqB,EAAE,MAAM,CAC3B,EAAE,QAAQ,CAAC,WAAW,QAAQ,CAAC,IAAI,CAAC,EACpC,EAAE,QAAQ,CAAC,OAAO,CACnB,CAAC,EACH,CAAC,EACH,CAAC,CACD,WAAW,EAAE,iBAAiB;AAE7B,QAAO,EAAE,WADS,WAAW,qBAAqB,IAC9B;EACpB"}
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/conan/schema.ts"],"sourcesContent":["import { z } from 'zod/v3';\nimport { LooseArray } from '../../../util/schema-utils/index.ts';\nimport type { ReleaseResult } from '../types.ts';\nimport { conanDatasourceRegex } from './common.ts';\n\nexport const ConanCenterReleases = z\n .object({\n versions: z.record(z.string(), z.unknown()),\n })\n .transform(\n ({ versions }): ReleaseResult => ({\n releases: Object.keys(versions).map((version) => ({ version })),\n }),\n )\n .nullable()\n .catch(null);\n\nexport const ConanJSON = z\n .object({\n results: z\n .string()\n .array()\n .transform((array) =>\n array.map((val) => val.match(conanDatasourceRegex)?.groups),\n )\n .pipe(\n LooseArray(\n z.object({\n name: z.string(),\n version: z.string(),\n userChannel: z.string(),\n }),\n ),\n ),\n })\n .transform(({ results }) => results)\n .nullable()\n .catch(null);\n\nexport const ConanRevisionJSON = z.object({\n revision: z.string(),\n time: z.string(),\n});\n\nexport const ConanLatestRevision = z\n .object({ revisions: z.unknown().array() })\n .transform(({ revisions }) => revisions[0])\n .pipe(ConanRevisionJSON)\n .transform(({ revision }) => revision)\n .nullable()\n .catch(null);\n\nexport const ConanProperties = z\n .object({\n properties: z.object({\n 'conan.package.url': z.union([\n z.string().transform((url) => [url]),\n z.string().array(),\n ]),\n }),\n })\n .transform(({ properties }) => {\n const sourceUrl = properties['conan.package.url'][0];\n return { sourceUrl };\n });\n"],"mappings":";;;;;AAKA,MAAa,sBAAsB,EAChC,OAAO,EACN,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,EAC5C,CAAC,CACD,WACE,EAAE,gBAA+B,EAChC,UAAU,OAAO,KAAK,SAAS,CAAC,KAAK,aAAa,EAAE,SAAS,EAAE,EAChE,EACF,CACA,UAAU,CACV,MAAM,KAAK;AAEd,MAAa,YAAY,EACtB,OAAO,EACN,SAAS,EACN,QAAQ,CACR,OAAO,CACP,WAAW,UACV,MAAM,KAAK,QAAQ,IAAI,MAAM,qBAAqB,EAAE,OAAO,CAC5D,CACA,KACC,WACE,EAAE,OAAO;CACP,MAAM,EAAE,QAAQ;CAChB,SAAS,EAAE,QAAQ;CACnB,aAAa,EAAE,QAAQ;CACxB,CAAC,CACH,CACF,EACJ,CAAC,CACD,WAAW,EAAE,cAAc,QAAQ,CACnC,UAAU,CACV,MAAM,KAAK;AAEd,MAAa,oBAAoB,EAAE,OAAO;CACxC,UAAU,EAAE,QAAQ;CACpB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAa,sBAAsB,EAChC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAC1C,WAAW,EAAE,gBAAgB,UAAU,GAAG,CAC1C,KAAK,kBAAkB,CACvB,WAAW,EAAE,eAAe,SAAS,CACrC,UAAU,CACV,MAAM,KAAK;AAEd,MAAa,kBAAkB,EAC5B,OAAO,EACN,YAAY,EAAE,OAAO,EACnB,qBAAqB,EAAE,MAAM,CAC3B,EAAE,QAAQ,CAAC,WAAW,QAAQ,CAAC,IAAI,CAAC,EACpC,EAAE,QAAQ,CAAC,OAAO,CACnB,CAAC,EACH,CAAC,EACH,CAAC,CACD,WAAW,EAAE,iBAAiB;AAE7B,QAAO,EAAE,WADS,WAAW,qBAAqB,IAC9B;EACpB"}
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from "zod/v3";
2
2
 
3
3
  //#region lib/modules/datasource/conda/schema/prefix-dev.ts
4
4
  const File = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"prefix-dev.js","names":[],"sources":["../../../../../lib/modules/datasource/conda/schema/prefix-dev.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const File = z.object({\n version: z.string(),\n createdAt: z.string().nullable(),\n yankedReason: z.string().nullable(),\n urls: z\n .array(z.object({ url: z.string(), kind: z.string() }))\n .optional()\n .default([])\n .transform((urls) => {\n return Object.fromEntries(urls.map((url) => [url.kind, url.url]));\n }),\n});\n\nexport type File = z.infer<typeof File>;\n\nexport const PagedResponse = z.object({\n data: z.object({\n package: z\n .object({\n variants: z\n .object({\n pages: z.number(),\n page: z.array(File),\n })\n .nullable(),\n })\n .nullable(),\n }),\n});\n"],"mappings":";;;AAEA,MAAa,OAAO,EAAE,OAAO;CAC3B,SAAS,EAAE,QAAQ;CACnB,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,MAAM,EACH,MAAM,EAAE,OAAO;EAAE,KAAK,EAAE,QAAQ;EAAE,MAAM,EAAE,QAAQ;EAAE,CAAC,CAAC,CACtD,UAAU,CACV,QAAQ,EAAE,CAAC,CACX,WAAW,SAAS;AACnB,SAAO,OAAO,YAAY,KAAK,KAAK,QAAQ,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC;GACjE;CACL,CAAC;AAIF,MAAa,gBAAgB,EAAE,OAAO,EACpC,MAAM,EAAE,OAAO,EACb,SAAS,EACN,OAAO,EACN,UAAU,EACP,OAAO;CACN,OAAO,EAAE,QAAQ;CACjB,MAAM,EAAE,MAAM,KAAK;CACpB,CAAC,CACD,UAAU,EACd,CAAC,CACD,UAAU,EACd,CAAC,EACH,CAAC"}
1
+ {"version":3,"file":"prefix-dev.js","names":[],"sources":["../../../../../lib/modules/datasource/conda/schema/prefix-dev.ts"],"sourcesContent":["import { z } from 'zod/v3';\n\nexport const File = z.object({\n version: z.string(),\n createdAt: z.string().nullable(),\n yankedReason: z.string().nullable(),\n urls: z\n .array(z.object({ url: z.string(), kind: z.string() }))\n .optional()\n .default([])\n .transform((urls) => {\n return Object.fromEntries(urls.map((url) => [url.kind, url.url]));\n }),\n});\n\nexport type File = z.infer<typeof File>;\n\nexport const PagedResponse = z.object({\n data: z.object({\n package: z\n .object({\n variants: z\n .object({\n pages: z.number(),\n page: z.array(File),\n })\n .nullable(),\n })\n .nullable(),\n }),\n});\n"],"mappings":";;;AAEA,MAAa,OAAO,EAAE,OAAO;CAC3B,SAAS,EAAE,QAAQ;CACnB,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,cAAc,EAAE,QAAQ,CAAC,UAAU;CACnC,MAAM,EACH,MAAM,EAAE,OAAO;EAAE,KAAK,EAAE,QAAQ;EAAE,MAAM,EAAE,QAAQ;EAAE,CAAC,CAAC,CACtD,UAAU,CACV,QAAQ,EAAE,CAAC,CACX,WAAW,SAAS;AACnB,SAAO,OAAO,YAAY,KAAK,KAAK,QAAQ,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC;GACjE;CACL,CAAC;AAIF,MAAa,gBAAgB,EAAE,OAAO,EACpC,MAAM,EAAE,OAAO,EACb,SAAS,EACN,OAAO,EACN,UAAU,EACP,OAAO;CACN,OAAO,EAAE,QAAQ;CACjB,MAAM,EAAE,MAAM,KAAK;CACpB,CAAC,CACD,UAAU,EACd,CAAC,CACD,UAAU,EACd,CAAC,EACH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { LooseArray } from "../../../util/schema-utils/index.js";
2
2
  import { MaybeTimestamp } from "../../../util/timestamp.js";
3
- import { z } from "zod";
3
+ import { z } from "zod/v3";
4
4
 
5
5
  //#region lib/modules/datasource/cpan/schema.ts
6
6
  /**