renovate 42.96.5 → 42.96.6

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 (226) hide show
  1. package/dist/config/defaults.d.ts +8 -0
  2. package/dist/config/defaults.js +3 -2
  3. package/dist/config/defaults.js.map +1 -1
  4. package/dist/config/index.js +5 -5
  5. package/dist/config/index.js.map +1 -1
  6. package/dist/config/massage.js +2 -2
  7. package/dist/config/massage.js.map +1 -1
  8. package/dist/config/migration.js +5 -5
  9. package/dist/config/migration.js.map +1 -1
  10. package/dist/config/options/index.d.ts +7 -0
  11. package/dist/config/presets/gitlab/index.js +2 -2
  12. package/dist/config/presets/gitlab/index.js.map +1 -1
  13. package/dist/config/presets/index.js +22 -22
  14. package/dist/config/presets/index.js.map +1 -1
  15. package/dist/config/utils.d.ts +5 -0
  16. package/dist/config/utils.js +2 -2
  17. package/dist/config/utils.js.map +1 -1
  18. package/dist/config/validation.js +4 -4
  19. package/dist/config/validation.js.map +1 -1
  20. package/dist/config-validator.js +2 -2
  21. package/dist/config-validator.js.map +1 -1
  22. package/dist/instrumentation/reporting.js +3 -3
  23. package/dist/instrumentation/reporting.js.map +1 -1
  24. package/dist/modules/datasource/deno/index.js +5 -5
  25. package/dist/modules/datasource/deno/index.js.map +1 -1
  26. package/dist/modules/datasource/docker/dockerhub-cache.js +3 -3
  27. package/dist/modules/datasource/docker/dockerhub-cache.js.map +1 -1
  28. package/dist/modules/datasource/gitlab-packages/index.js +2 -2
  29. package/dist/modules/datasource/gitlab-packages/index.js.map +1 -1
  30. package/dist/modules/datasource/gitlab-releases/index.js +2 -2
  31. package/dist/modules/datasource/gitlab-releases/index.js.map +1 -1
  32. package/dist/modules/datasource/gitlab-tags/index.js +2 -2
  33. package/dist/modules/datasource/gitlab-tags/index.js.map +1 -1
  34. package/dist/modules/datasource/index.js +3 -3
  35. package/dist/modules/datasource/index.js.map +1 -1
  36. package/dist/modules/datasource/maven/index.js +6 -6
  37. package/dist/modules/datasource/maven/index.js.map +1 -1
  38. package/dist/modules/datasource/maven/util.js +5 -5
  39. package/dist/modules/datasource/maven/util.js.map +1 -1
  40. package/dist/modules/datasource/nuget/v3.js +8 -8
  41. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  42. package/dist/modules/datasource/rubygems/metadata-cache.js +3 -3
  43. package/dist/modules/datasource/rubygems/metadata-cache.js.map +1 -1
  44. package/dist/modules/datasource/sbt-package/index.js +15 -15
  45. package/dist/modules/datasource/sbt-package/index.js.map +1 -1
  46. package/dist/modules/manager/bazel/artifacts.js +5 -5
  47. package/dist/modules/manager/bazel/artifacts.js.map +1 -1
  48. package/dist/modules/manager/bundler/artifacts.js +2 -2
  49. package/dist/modules/manager/bundler/artifacts.js.map +1 -1
  50. package/dist/modules/manager/cocoapods/artifacts.js +2 -2
  51. package/dist/modules/manager/cocoapods/artifacts.js.map +1 -1
  52. package/dist/modules/manager/composer/artifacts.js +2 -2
  53. package/dist/modules/manager/composer/artifacts.js.map +1 -1
  54. package/dist/modules/manager/copier/artifacts.js +2 -2
  55. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  56. package/dist/modules/manager/gomod/artifacts.js +2 -2
  57. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  58. package/dist/modules/manager/gradle/artifacts.js +3 -3
  59. package/dist/modules/manager/gradle/artifacts.js.map +1 -1
  60. package/dist/modules/manager/gradle-wrapper/artifacts.js +2 -2
  61. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  62. package/dist/modules/manager/helmfile/artifacts.js +2 -2
  63. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  64. package/dist/modules/manager/helmv3/artifacts.js +2 -2
  65. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  66. package/dist/modules/manager/hermit/artifacts.js +2 -2
  67. package/dist/modules/manager/hermit/artifacts.js.map +1 -1
  68. package/dist/modules/manager/jsonnet-bundler/artifacts.js +2 -2
  69. package/dist/modules/manager/jsonnet-bundler/artifacts.js.map +1 -1
  70. package/dist/modules/manager/kustomize/artifacts.js +2 -2
  71. package/dist/modules/manager/kustomize/artifacts.js.map +1 -1
  72. package/dist/modules/manager/maven-wrapper/artifacts.js +2 -2
  73. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  74. package/dist/modules/manager/nix/artifacts.js +2 -2
  75. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  76. package/dist/modules/manager/npm/post-update/index.js +9 -9
  77. package/dist/modules/manager/npm/post-update/index.js.map +1 -1
  78. package/dist/modules/manager/nuget/artifacts.js +2 -2
  79. package/dist/modules/manager/nuget/artifacts.js.map +1 -1
  80. package/dist/modules/manager/pip-compile/artifacts.js +2 -2
  81. package/dist/modules/manager/pip-compile/artifacts.js.map +1 -1
  82. package/dist/modules/manager/pipenv/artifacts.js +2 -2
  83. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  84. package/dist/modules/manager/vendir/artifacts.js +2 -2
  85. package/dist/modules/manager/vendir/artifacts.js.map +1 -1
  86. package/dist/modules/platform/api.js +16 -16
  87. package/dist/modules/platform/api.js.map +1 -1
  88. package/dist/modules/platform/azure/index.js +2 -2
  89. package/dist/modules/platform/azure/index.js.map +1 -1
  90. package/dist/modules/platform/bitbucket/index.d.ts +91 -0
  91. package/dist/modules/platform/bitbucket/index.js +30 -3
  92. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  93. package/dist/modules/platform/bitbucket-server/index.d.ts +94 -0
  94. package/dist/modules/platform/bitbucket-server/index.js +38 -7
  95. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  96. package/dist/modules/platform/bitbucket-server/types.d.ts +10 -0
  97. package/dist/modules/platform/bitbucket-server/utils.js +2 -2
  98. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  99. package/dist/modules/platform/codecommit/index.js +2 -2
  100. package/dist/modules/platform/codecommit/index.js.map +1 -1
  101. package/dist/modules/platform/default-scm.js +13 -13
  102. package/dist/modules/platform/default-scm.js.map +1 -1
  103. package/dist/modules/platform/forgejo/index.js +3 -3
  104. package/dist/modules/platform/forgejo/index.js.map +1 -1
  105. package/dist/modules/platform/gerrit/index.js +2 -2
  106. package/dist/modules/platform/gerrit/index.js.map +1 -1
  107. package/dist/modules/platform/gerrit/scm.js +7 -7
  108. package/dist/modules/platform/gerrit/scm.js.map +1 -1
  109. package/dist/modules/platform/gitea/index.js +3 -3
  110. package/dist/modules/platform/gitea/index.js.map +1 -1
  111. package/dist/modules/platform/github/index.js +11 -11
  112. package/dist/modules/platform/github/index.js.map +1 -1
  113. package/dist/modules/platform/github/scm.js +4 -4
  114. package/dist/modules/platform/github/scm.js.map +1 -1
  115. package/dist/modules/platform/gitlab/code-owners.d.ts +7 -0
  116. package/dist/modules/platform/gitlab/http.js +2 -2
  117. package/dist/modules/platform/gitlab/http.js.map +1 -1
  118. package/dist/modules/platform/gitlab/index.d.ts +97 -0
  119. package/dist/modules/platform/gitlab/index.js +42 -8
  120. package/dist/modules/platform/gitlab/index.js.map +1 -1
  121. package/dist/modules/platform/gitlab/types.d.ts +15 -0
  122. package/dist/modules/platform/index.js +2 -2
  123. package/dist/modules/platform/index.js.map +1 -1
  124. package/dist/types/git.d.ts +6 -0
  125. package/dist/util/cache/package/index.d.ts +21 -0
  126. package/dist/util/cache/package/index.js +5 -5
  127. package/dist/util/cache/package/index.js.map +1 -1
  128. package/dist/util/cache/package/namespaces.d.ts +6 -0
  129. package/dist/util/cache/package/redis.d.ts +11 -0
  130. package/dist/util/cache/package/redis.js +1 -0
  131. package/dist/util/cache/package/with-cache.js +3 -3
  132. package/dist/util/cache/package/with-cache.js.map +1 -1
  133. package/dist/util/cache/repository/impl/s3.js +3 -3
  134. package/dist/util/cache/repository/impl/s3.js.map +1 -1
  135. package/dist/util/git/config.d.ts +8 -0
  136. package/dist/util/git/index.d.ts +160 -0
  137. package/dist/util/git/index.js +11 -0
  138. package/dist/util/git/private-key.d.ts +5 -0
  139. package/dist/util/git/semantic.js +2 -2
  140. package/dist/util/git/semantic.js.map +1 -1
  141. package/dist/util/git/set-branch-commit.js +2 -2
  142. package/dist/util/git/set-branch-commit.js.map +1 -1
  143. package/dist/util/git/types.d.ts +30 -2
  144. package/dist/util/github/graphql/cache-strategies/package-cache-strategy.js +3 -3
  145. package/dist/util/github/graphql/cache-strategies/package-cache-strategy.js.map +1 -1
  146. package/dist/util/github/graphql/datasource-fetcher.js +3 -3
  147. package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
  148. package/dist/util/http/cache/package-http-cache-provider.js +3 -3
  149. package/dist/util/http/cache/package-http-cache-provider.js.map +1 -1
  150. package/dist/util/http/gitlab.d.ts +19 -0
  151. package/dist/util/merge-confidence/index.js +5 -5
  152. package/dist/util/merge-confidence/index.js.map +1 -1
  153. package/dist/util/package-rules/index.js +2 -2
  154. package/dist/util/package-rules/index.js.map +1 -1
  155. package/dist/util/s3.d.ts +12 -0
  156. package/dist/workers/global/config/parse/cli.js +2 -2
  157. package/dist/workers/global/config/parse/cli.js.map +1 -1
  158. package/dist/workers/global/config/parse/env.js +2 -2
  159. package/dist/workers/global/config/parse/env.js.map +1 -1
  160. package/dist/workers/global/config/parse/index.d.ts +8 -0
  161. package/dist/workers/global/config/parse/index.js +10 -9
  162. package/dist/workers/global/config/parse/index.js.map +1 -1
  163. package/dist/workers/global/index.js +8 -8
  164. package/dist/workers/global/index.js.map +1 -1
  165. package/dist/workers/global/initialize.js +7 -7
  166. package/dist/workers/global/initialize.js.map +1 -1
  167. package/dist/workers/repository/config-migration/branch/rebase.js +2 -2
  168. package/dist/workers/repository/config-migration/branch/rebase.js.map +1 -1
  169. package/dist/workers/repository/extract/extract-fingerprint-config.js +2 -2
  170. package/dist/workers/repository/extract/extract-fingerprint-config.js.map +1 -1
  171. package/dist/workers/repository/extract/index.js +2 -2
  172. package/dist/workers/repository/extract/index.js.map +1 -1
  173. package/dist/workers/repository/finalize/index.js +4 -4
  174. package/dist/workers/repository/finalize/index.js.map +1 -1
  175. package/dist/workers/repository/finalize/prune.js +3 -3
  176. package/dist/workers/repository/finalize/prune.js.map +1 -1
  177. package/dist/workers/repository/index.js +13 -13
  178. package/dist/workers/repository/index.js.map +1 -1
  179. package/dist/workers/repository/init/index.js +3 -3
  180. package/dist/workers/repository/init/index.js.map +1 -1
  181. package/dist/workers/repository/init/inherited.js +3 -3
  182. package/dist/workers/repository/init/inherited.js.map +1 -1
  183. package/dist/workers/repository/init/merge.js +5 -5
  184. package/dist/workers/repository/init/merge.js.map +1 -1
  185. package/dist/workers/repository/onboarding/branch/check.js +2 -2
  186. package/dist/workers/repository/onboarding/branch/check.js.map +1 -1
  187. package/dist/workers/repository/onboarding/branch/index.js +8 -8
  188. package/dist/workers/repository/onboarding/branch/index.js.map +1 -1
  189. package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js +5 -5
  190. package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js.map +1 -1
  191. package/dist/workers/repository/onboarding/pr/index.js +4 -4
  192. package/dist/workers/repository/onboarding/pr/index.js.map +1 -1
  193. package/dist/workers/repository/process/fetch.js +4 -4
  194. package/dist/workers/repository/process/fetch.js.map +1 -1
  195. package/dist/workers/repository/process/index.js +7 -7
  196. package/dist/workers/repository/process/index.js.map +1 -1
  197. package/dist/workers/repository/process/lookup/filter-checks.js +3 -3
  198. package/dist/workers/repository/process/lookup/filter-checks.js.map +1 -1
  199. package/dist/workers/repository/process/lookup/index.js +4 -4
  200. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  201. package/dist/workers/repository/process/vulnerabilities.js +2 -2
  202. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  203. package/dist/workers/repository/reconfigure/index.js +4 -4
  204. package/dist/workers/repository/reconfigure/index.js.map +1 -1
  205. package/dist/workers/repository/reconfigure/validate.js +2 -2
  206. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  207. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +6 -6
  208. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  209. package/dist/workers/repository/update/branch/get-updated.js +3 -3
  210. package/dist/workers/repository/update/branch/get-updated.js.map +1 -1
  211. package/dist/workers/repository/update/pr/changelog/gitlab/index.js +2 -2
  212. package/dist/workers/repository/update/pr/changelog/gitlab/index.js.map +1 -1
  213. package/dist/workers/repository/update/pr/changelog/release-notes.js +20 -20
  214. package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
  215. package/dist/workers/repository/update/pr/changelog/source.js +3 -3
  216. package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
  217. package/dist/workers/repository/update/pr/code-owners.js +2 -2
  218. package/dist/workers/repository/update/pr/code-owners.js.map +1 -1
  219. package/dist/workers/repository/update/pr/index.js +7 -7
  220. package/dist/workers/repository/update/pr/index.js.map +1 -1
  221. package/dist/workers/repository/updates/flatten.js +10 -10
  222. package/dist/workers/repository/updates/flatten.js.map +1 -1
  223. package/dist/workers/repository/updates/generate.js +2 -2
  224. package/dist/workers/repository/updates/generate.js.map +1 -1
  225. package/package.json +1 -1
  226. package/renovate-schema.json +2 -2
@@ -0,0 +1,8 @@
1
+ import { AllConfig, RenovateOptions } from "./types.js";
2
+
3
+ //#region lib/config/defaults.d.ts
4
+ declare function getDefault(option: RenovateOptions): any;
5
+ declare function getConfig(): AllConfig;
6
+ //#endregion
7
+ export { getConfig, getDefault };
8
+ //# sourceMappingURL=defaults.d.ts.map
@@ -1,5 +1,5 @@
1
1
  const require_clone = require('../util/clone.js');
2
- const require_index = require('./options/index.js');
2
+ const require_config_options_index = require('./options/index.js');
3
3
 
4
4
  //#region lib/config/defaults.ts
5
5
  const defaultValueFactories = {
@@ -13,7 +13,7 @@ function getDefault(option) {
13
13
  return option.default === void 0 ? defaultValueFactories[option.type]() : require_clone.clone(option.default);
14
14
  }
15
15
  function getConfig() {
16
- const options = require_index.getOptions();
16
+ const options = require_config_options_index.getOptions();
17
17
  const config = {};
18
18
  options.forEach((option) => {
19
19
  if (!option.parents || option.parents.includes(".")) config[option.name] = getDefault(option);
@@ -23,4 +23,5 @@ function getConfig() {
23
23
 
24
24
  //#endregion
25
25
  exports.getConfig = getConfig;
26
+ exports.getDefault = getDefault;
26
27
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","names":["clone","getOptions"],"sources":["../../lib/config/defaults.ts"],"sourcesContent":["import { clone } from '../util/clone.ts';\nimport { getOptions } from './options/index.ts';\nimport type { AllConfig, RenovateOptions } from './types.ts';\n\n// Use functions instead of direct values to avoid introducing global references.\n// In particular, we want a new array instance every time we request a default array\n// instead of sharing a single instance - mutation of this value could cause serious problems.\n// See https://github.com/mend/renovate-on-prem/issues/290 for an example\nconst defaultValueFactories = {\n boolean: () => true,\n array: () => [],\n string: () => null,\n object: () => null,\n integer: () => null,\n} as const;\n\nexport function getDefault(option: RenovateOptions): any {\n return option.default === undefined\n ? defaultValueFactories[option.type]()\n : clone(option.default);\n}\n\nexport function getConfig(): AllConfig {\n const options = getOptions();\n const config: AllConfig = {};\n options.forEach((option) => {\n if (!option.parents || option.parents.includes('.')) {\n config[option.name as keyof AllConfig] = getDefault(option);\n }\n });\n return config;\n}\n"],"mappings":";;;;AAQA,MAAM,wBAAwB;CAC5B,eAAe;CACf,aAAa,EAAE;CACf,cAAc;CACd,cAAc;CACd,eAAe;CAChB;AAED,SAAgB,WAAW,QAA8B;AACvD,QAAO,OAAO,YAAY,SACtB,sBAAsB,OAAO,OAAO,GACpCA,oBAAM,OAAO,QAAQ;;AAG3B,SAAgB,YAAuB;CACrC,MAAM,UAAUC,0BAAY;CAC5B,MAAM,SAAoB,EAAE;AAC5B,SAAQ,SAAS,WAAW;AAC1B,MAAI,CAAC,OAAO,WAAW,OAAO,QAAQ,SAAS,IAAI,CACjD,QAAO,OAAO,QAA2B,WAAW,OAAO;GAE7D;AACF,QAAO"}
1
+ {"version":3,"file":"defaults.js","names":["clone","getOptions"],"sources":["../../lib/config/defaults.ts"],"sourcesContent":["import { clone } from '../util/clone.ts';\nimport { getOptions } from './options/index.ts';\nimport type { AllConfig, RenovateOptions } from './types.ts';\n\n// Use functions instead of direct values to avoid introducing global references.\n// In particular, we want a new array instance every time we request a default array\n// instead of sharing a single instance - mutation of this value could cause serious problems.\n// See https://github.com/mend/renovate-on-prem/issues/290 for an example\nconst defaultValueFactories = {\n boolean: () => true,\n array: () => [],\n string: () => null,\n object: () => null,\n integer: () => null,\n} as const;\n\nexport function getDefault(option: RenovateOptions): any {\n return option.default === undefined\n ? defaultValueFactories[option.type]()\n : clone(option.default);\n}\n\nexport function getConfig(): AllConfig {\n const options = getOptions();\n const config: AllConfig = {};\n options.forEach((option) => {\n if (!option.parents || option.parents.includes('.')) {\n config[option.name as keyof AllConfig] = getDefault(option);\n }\n });\n return config;\n}\n"],"mappings":";;;;AAQA,MAAM,wBAAwB;CAC5B,eAAe;CACf,aAAa,EAAE;CACf,cAAc;CACd,cAAc;CACd,eAAe;CAChB;AAED,SAAgB,WAAW,QAA8B;AACvD,QAAO,OAAO,YAAY,SACtB,sBAAsB,OAAO,OAAO,GACpCA,oBAAM,OAAO,QAAQ;;AAG3B,SAAgB,YAAuB;CACrC,MAAM,UAAUC,yCAAY;CAC5B,MAAM,SAAoB,EAAE;AAC5B,SAAQ,SAAS,WAAW;AAC1B,MAAI,CAAC,OAAO,WAAW,OAAO,QAAQ,SAAS,IAAI,CACjD,QAAO,OAAO,QAA2B,WAAW,OAAO;GAE7D;AACF,QAAO"}
@@ -1,7 +1,7 @@
1
1
  const require_logger_index = require('../logger/index.js');
2
2
  const require_modules_manager_index = require('../modules/manager/index.js');
3
- const require_index = require('./options/index.js');
4
- const require_utils = require('./utils.js');
3
+ const require_config_options_index = require('./options/index.js');
4
+ const require_config_utils = require('./utils.js');
5
5
 
6
6
  //#region lib/config/index.ts
7
7
  require_logger_index.init_logger();
@@ -12,13 +12,13 @@ function getManagerConfig(config, manager) {
12
12
  };
13
13
  const categories = require_modules_manager_index.get(manager, "categories");
14
14
  if (categories) managerConfig.categories = categories;
15
- managerConfig = require_utils.mergeChildConfig(managerConfig, config[manager]);
15
+ managerConfig = require_config_utils.mergeChildConfig(managerConfig, config[manager]);
16
16
  for (const i of require_modules_manager_index.allManagersList) delete managerConfig[i];
17
17
  return managerConfig;
18
18
  }
19
19
  function removeGlobalConfig(config, keepInherited) {
20
20
  const outputConfig = { ...config };
21
- for (const option of require_index.getOptions()) {
21
+ for (const option of require_config_options_index.getOptions()) {
22
22
  if (keepInherited && option.inheritConfigSupport) continue;
23
23
  if (option.globalOnly) delete outputConfig[option.name];
24
24
  }
@@ -36,7 +36,7 @@ function filterConfig(inputConfig, targetStage) {
36
36
  "pr"
37
37
  ];
38
38
  const targetIndex = stages.indexOf(targetStage);
39
- for (const option of require_index.getOptions()) {
39
+ for (const option of require_config_options_index.getOptions()) {
40
40
  const optionIndex = stages.indexOf(option.stage);
41
41
  if (optionIndex !== -1 && optionIndex < targetIndex) delete outputConfig[option.name];
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["get","mergeChildConfig","allManagersList"],"sources":["../../lib/config/index.ts"],"sourcesContent":["import { logger } from '../logger/index.ts';\nimport { allManagersList, get } from '../modules/manager/index.ts';\nimport * as options from './options/index.ts';\nimport type {\n AllConfig,\n ManagerConfig,\n RenovateConfig,\n RenovateConfigStage,\n} from './types.ts';\nimport { mergeChildConfig } from './utils.ts';\n\nexport { mergeChildConfig };\n\nexport function getManagerConfig(\n config: RenovateConfig,\n manager: string,\n): ManagerConfig {\n let managerConfig: ManagerConfig = {\n ...config,\n manager,\n };\n const categories = get(manager, 'categories');\n if (categories) {\n managerConfig.categories = categories;\n }\n // TODO: fix types #22198\n // @ts-expect-error -- not easily typed\n managerConfig = mergeChildConfig(managerConfig, config[manager] as any);\n for (const i of allManagersList) {\n // @ts-expect-error -- not easily typed\n delete managerConfig[i];\n }\n return managerConfig;\n}\n\nexport function removeGlobalConfig(\n config: RenovateConfig,\n keepInherited: boolean,\n): RenovateConfig {\n const outputConfig: RenovateConfig = { ...config };\n for (const option of options.getOptions()) {\n if (keepInherited && option.inheritConfigSupport) {\n continue;\n }\n if (option.globalOnly) {\n // @ts-expect-error -- not easily typed\n delete outputConfig[option.name];\n }\n }\n return outputConfig;\n}\n\nexport function filterConfig<T extends AllConfig = AllConfig>(\n inputConfig: T,\n targetStage: RenovateConfigStage,\n): T {\n logger.trace({ config: inputConfig }, `filterConfig('${targetStage}')`);\n const outputConfig: T = { ...inputConfig };\n const stages: (string | undefined)[] = [\n 'global',\n 'inherit',\n 'repository',\n 'package',\n 'branch',\n 'pr',\n ];\n const targetIndex = stages.indexOf(targetStage);\n for (const option of options.getOptions()) {\n const optionIndex = stages.indexOf(option.stage);\n if (optionIndex !== -1 && optionIndex < targetIndex) {\n // @ts-expect-error -- not easily typed\n delete outputConfig[option.name];\n }\n }\n return outputConfig;\n}\n"],"mappings":";;;;;;kCAA4C;AAa5C,SAAgB,iBACd,QACA,SACe;CACf,IAAI,gBAA+B;EACjC,GAAG;EACH;EACD;CACD,MAAM,aAAaA,kCAAI,SAAS,aAAa;AAC7C,KAAI,WACF,eAAc,aAAa;AAI7B,iBAAgBC,+BAAiB,eAAe,OAAO,SAAgB;AACvE,MAAK,MAAM,KAAKC,8CAEd,QAAO,cAAc;AAEvB,QAAO;;AAGT,SAAgB,mBACd,QACA,eACgB;CAChB,MAAM,eAA+B,EAAE,GAAG,QAAQ;AAClD,MAAK,MAAM,oCAA8B,EAAE;AACzC,MAAI,iBAAiB,OAAO,qBAC1B;AAEF,MAAI,OAAO,WAET,QAAO,aAAa,OAAO;;AAG/B,QAAO;;AAGT,SAAgB,aACd,aACA,aACG;AACH,6BAAO,MAAM,EAAE,QAAQ,aAAa,EAAE,iBAAiB,YAAY,IAAI;CACvE,MAAM,eAAkB,EAAE,GAAG,aAAa;CAC1C,MAAM,SAAiC;EACrC;EACA;EACA;EACA;EACA;EACA;EACD;CACD,MAAM,cAAc,OAAO,QAAQ,YAAY;AAC/C,MAAK,MAAM,oCAA8B,EAAE;EACzC,MAAM,cAAc,OAAO,QAAQ,OAAO,MAAM;AAChD,MAAI,gBAAgB,MAAM,cAAc,YAEtC,QAAO,aAAa,OAAO;;AAG/B,QAAO"}
1
+ {"version":3,"file":"index.js","names":["get","mergeChildConfig","allManagersList"],"sources":["../../lib/config/index.ts"],"sourcesContent":["import { logger } from '../logger/index.ts';\nimport { allManagersList, get } from '../modules/manager/index.ts';\nimport * as options from './options/index.ts';\nimport type {\n AllConfig,\n ManagerConfig,\n RenovateConfig,\n RenovateConfigStage,\n} from './types.ts';\nimport { mergeChildConfig } from './utils.ts';\n\nexport { mergeChildConfig };\n\nexport function getManagerConfig(\n config: RenovateConfig,\n manager: string,\n): ManagerConfig {\n let managerConfig: ManagerConfig = {\n ...config,\n manager,\n };\n const categories = get(manager, 'categories');\n if (categories) {\n managerConfig.categories = categories;\n }\n // TODO: fix types #22198\n // @ts-expect-error -- not easily typed\n managerConfig = mergeChildConfig(managerConfig, config[manager] as any);\n for (const i of allManagersList) {\n // @ts-expect-error -- not easily typed\n delete managerConfig[i];\n }\n return managerConfig;\n}\n\nexport function removeGlobalConfig(\n config: RenovateConfig,\n keepInherited: boolean,\n): RenovateConfig {\n const outputConfig: RenovateConfig = { ...config };\n for (const option of options.getOptions()) {\n if (keepInherited && option.inheritConfigSupport) {\n continue;\n }\n if (option.globalOnly) {\n // @ts-expect-error -- not easily typed\n delete outputConfig[option.name];\n }\n }\n return outputConfig;\n}\n\nexport function filterConfig<T extends AllConfig = AllConfig>(\n inputConfig: T,\n targetStage: RenovateConfigStage,\n): T {\n logger.trace({ config: inputConfig }, `filterConfig('${targetStage}')`);\n const outputConfig: T = { ...inputConfig };\n const stages: (string | undefined)[] = [\n 'global',\n 'inherit',\n 'repository',\n 'package',\n 'branch',\n 'pr',\n ];\n const targetIndex = stages.indexOf(targetStage);\n for (const option of options.getOptions()) {\n const optionIndex = stages.indexOf(option.stage);\n if (optionIndex !== -1 && optionIndex < targetIndex) {\n // @ts-expect-error -- not easily typed\n delete outputConfig[option.name];\n }\n }\n return outputConfig;\n}\n"],"mappings":";;;;;;kCAA4C;AAa5C,SAAgB,iBACd,QACA,SACe;CACf,IAAI,gBAA+B;EACjC,GAAG;EACH;EACD;CACD,MAAM,aAAaA,kCAAI,SAAS,aAAa;AAC7C,KAAI,WACF,eAAc,aAAa;AAI7B,iBAAgBC,sCAAiB,eAAe,OAAO,SAAgB;AACvE,MAAK,MAAM,KAAKC,8CAEd,QAAO,cAAc;AAEvB,QAAO;;AAGT,SAAgB,mBACd,QACA,eACgB;CAChB,MAAM,eAA+B,EAAE,GAAG,QAAQ;AAClD,MAAK,MAAM,mDAA8B,EAAE;AACzC,MAAI,iBAAiB,OAAO,qBAC1B;AAEF,MAAI,OAAO,WAET,QAAO,aAAa,OAAO;;AAG/B,QAAO;;AAGT,SAAgB,aACd,aACA,aACG;AACH,6BAAO,MAAM,EAAE,QAAQ,aAAa,EAAE,iBAAiB,YAAY,IAAI;CACvE,MAAM,eAAkB,EAAE,GAAG,aAAa;CAC1C,MAAM,SAAiC;EACrC;EACA;EACA;EACA;EACA;EACA;EACD;CACD,MAAM,cAAc,OAAO,QAAQ,YAAY;AAC/C,MAAK,MAAM,mDAA8B,EAAE;EACzC,MAAM,cAAc,OAAO,QAAQ,OAAO,MAAM;AAChD,MAAI,gBAAgB,MAAM,cAAc,YAEtC,QAAO,aAAa,OAAO;;AAG/B,QAAO"}
@@ -1,10 +1,10 @@
1
1
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
2
2
  const require_clone = require('../util/clone.js');
3
- const require_index = require('./options/index.js');
3
+ const require_config_options_index = require('./options/index.js');
4
4
  let _sindresorhus_is = require("@sindresorhus/is");
5
5
 
6
6
  //#region lib/config/massage.ts
7
- const options = require_index.getOptions();
7
+ const options = require_config_options_index.getOptions();
8
8
  let allowedStrings;
9
9
  function massageConfig(config) {
10
10
  if (!allowedStrings) {
@@ -1 +1 @@
1
- {"version":3,"file":"massage.js","names":["getOptions","clone"],"sources":["../../lib/config/massage.ts"],"sourcesContent":["import { isArray, isNonEmptyArray, isObject, isString } from '@sindresorhus/is';\nimport { clone } from '../util/clone.ts';\nimport { getOptions } from './options/index.ts';\nimport type { PackageRule, RenovateConfig, UpdateType } from './types.ts';\n\nconst options = getOptions();\n\nlet allowedStrings: string[];\n\n// Returns a massaged config\nexport function massageConfig(config: RenovateConfig): RenovateConfig {\n if (!allowedStrings) {\n allowedStrings = [];\n options.forEach((option) => {\n if (option.allowString) {\n allowedStrings.push(option.name);\n }\n });\n }\n const massagedConfig = clone(config);\n for (const [key, val] of Object.entries(config)) {\n if (allowedStrings.includes(key) && isString(val)) {\n // @ts-expect-error -- TODO: fix me\n massagedConfig[key] = [val];\n } else if (isArray(val)) {\n // @ts-expect-error -- TODO: fix me\n massagedConfig[key] = [];\n val.forEach((item) => {\n if (isObject(item)) {\n // @ts-expect-error -- TODO: fix me\n (massagedConfig[key] as RenovateConfig[]).push(\n massageConfig(item as RenovateConfig),\n );\n } else {\n // @ts-expect-error -- TODO: fix me\n (massagedConfig[key] as unknown[]).push(item);\n }\n });\n } else if (isObject(val) && key !== 'encrypted') {\n // @ts-expect-error -- TODO: fix me\n massagedConfig[key] = massageConfig(val as RenovateConfig);\n }\n }\n if (isNonEmptyArray(massagedConfig.packageRules)) {\n let newRules: PackageRule[] = [];\n const updateTypes: UpdateType[] = [\n 'major',\n 'minor',\n 'patch',\n 'pin',\n 'digest',\n 'rollback',\n ];\n for (const rule of massagedConfig.packageRules) {\n newRules.push(rule);\n for (const [key, val] of Object.entries(rule) as [\n UpdateType,\n PackageRule,\n ][]) {\n if (updateTypes.includes(key)) {\n let newRule = clone(rule);\n Object.keys(newRule).forEach((newKey) => {\n if (!(newKey.startsWith(`match`) || newKey.startsWith('exclude'))) {\n // @ts-expect-error -- TODO: fix me\n delete newRule[newKey];\n }\n });\n newRule.matchUpdateTypes = rule.matchUpdateTypes ?? [];\n newRule.matchUpdateTypes.push(key);\n newRule = { ...newRule, ...val };\n newRules.push(newRule);\n }\n }\n }\n for (const rule of newRules) {\n updateTypes.forEach((updateType) => {\n delete rule[updateType];\n });\n }\n newRules = newRules.filter((rule) => {\n if (\n Object.keys(rule).every(\n (key) => key.startsWith('match') || key.startsWith('exclude'),\n )\n ) {\n // Exclude rules which contain only match or exclude options\n return false;\n }\n return true;\n });\n massagedConfig.packageRules = newRules;\n }\n return massagedConfig;\n}\n"],"mappings":";;;;;;AAKA,MAAM,UAAUA,0BAAY;AAE5B,IAAI;AAGJ,SAAgB,cAAc,QAAwC;AACpE,KAAI,CAAC,gBAAgB;AACnB,mBAAiB,EAAE;AACnB,UAAQ,SAAS,WAAW;AAC1B,OAAI,OAAO,YACT,gBAAe,KAAK,OAAO,KAAK;IAElC;;CAEJ,MAAM,iBAAiBC,oBAAM,OAAO;AACpC,MAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,OAAO,CAC7C,KAAI,eAAe,SAAS,IAAI,mCAAa,IAAI,CAE/C,gBAAe,OAAO,CAAC,IAAI;wCACV,IAAI,EAAE;AAEvB,iBAAe,OAAO,EAAE;AACxB,MAAI,SAAS,SAAS;AACpB,sCAAa,KAAK,CAEhB,CAAC,eAAe,KAA0B,KACxC,cAAc,KAAuB,CACtC;OAGD,CAAC,eAAe,KAAmB,KAAK,KAAK;IAE/C;2CACgB,IAAI,IAAI,QAAQ,YAElC,gBAAe,OAAO,cAAc,IAAsB;AAG9D,2CAAoB,eAAe,aAAa,EAAE;EAChD,IAAI,WAA0B,EAAE;EAChC,MAAM,cAA4B;GAChC;GACA;GACA;GACA;GACA;GACA;GACD;AACD,OAAK,MAAM,QAAQ,eAAe,cAAc;AAC9C,YAAS,KAAK,KAAK;AACnB,QAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,KAAK,CAI3C,KAAI,YAAY,SAAS,IAAI,EAAE;IAC7B,IAAI,UAAUA,oBAAM,KAAK;AACzB,WAAO,KAAK,QAAQ,CAAC,SAAS,WAAW;AACvC,SAAI,EAAE,OAAO,WAAW,QAAQ,IAAI,OAAO,WAAW,UAAU,EAE9D,QAAO,QAAQ;MAEjB;AACF,YAAQ,mBAAmB,KAAK,oBAAoB,EAAE;AACtD,YAAQ,iBAAiB,KAAK,IAAI;AAClC,cAAU;KAAE,GAAG;KAAS,GAAG;KAAK;AAChC,aAAS,KAAK,QAAQ;;;AAI5B,OAAK,MAAM,QAAQ,SACjB,aAAY,SAAS,eAAe;AAClC,UAAO,KAAK;IACZ;AAEJ,aAAW,SAAS,QAAQ,SAAS;AACnC,OACE,OAAO,KAAK,KAAK,CAAC,OACf,QAAQ,IAAI,WAAW,QAAQ,IAAI,IAAI,WAAW,UAAU,CAC9D,CAGD,QAAO;AAET,UAAO;IACP;AACF,iBAAe,eAAe;;AAEhC,QAAO"}
1
+ {"version":3,"file":"massage.js","names":["getOptions","clone"],"sources":["../../lib/config/massage.ts"],"sourcesContent":["import { isArray, isNonEmptyArray, isObject, isString } from '@sindresorhus/is';\nimport { clone } from '../util/clone.ts';\nimport { getOptions } from './options/index.ts';\nimport type { PackageRule, RenovateConfig, UpdateType } from './types.ts';\n\nconst options = getOptions();\n\nlet allowedStrings: string[];\n\n// Returns a massaged config\nexport function massageConfig(config: RenovateConfig): RenovateConfig {\n if (!allowedStrings) {\n allowedStrings = [];\n options.forEach((option) => {\n if (option.allowString) {\n allowedStrings.push(option.name);\n }\n });\n }\n const massagedConfig = clone(config);\n for (const [key, val] of Object.entries(config)) {\n if (allowedStrings.includes(key) && isString(val)) {\n // @ts-expect-error -- TODO: fix me\n massagedConfig[key] = [val];\n } else if (isArray(val)) {\n // @ts-expect-error -- TODO: fix me\n massagedConfig[key] = [];\n val.forEach((item) => {\n if (isObject(item)) {\n // @ts-expect-error -- TODO: fix me\n (massagedConfig[key] as RenovateConfig[]).push(\n massageConfig(item as RenovateConfig),\n );\n } else {\n // @ts-expect-error -- TODO: fix me\n (massagedConfig[key] as unknown[]).push(item);\n }\n });\n } else if (isObject(val) && key !== 'encrypted') {\n // @ts-expect-error -- TODO: fix me\n massagedConfig[key] = massageConfig(val as RenovateConfig);\n }\n }\n if (isNonEmptyArray(massagedConfig.packageRules)) {\n let newRules: PackageRule[] = [];\n const updateTypes: UpdateType[] = [\n 'major',\n 'minor',\n 'patch',\n 'pin',\n 'digest',\n 'rollback',\n ];\n for (const rule of massagedConfig.packageRules) {\n newRules.push(rule);\n for (const [key, val] of Object.entries(rule) as [\n UpdateType,\n PackageRule,\n ][]) {\n if (updateTypes.includes(key)) {\n let newRule = clone(rule);\n Object.keys(newRule).forEach((newKey) => {\n if (!(newKey.startsWith(`match`) || newKey.startsWith('exclude'))) {\n // @ts-expect-error -- TODO: fix me\n delete newRule[newKey];\n }\n });\n newRule.matchUpdateTypes = rule.matchUpdateTypes ?? [];\n newRule.matchUpdateTypes.push(key);\n newRule = { ...newRule, ...val };\n newRules.push(newRule);\n }\n }\n }\n for (const rule of newRules) {\n updateTypes.forEach((updateType) => {\n delete rule[updateType];\n });\n }\n newRules = newRules.filter((rule) => {\n if (\n Object.keys(rule).every(\n (key) => key.startsWith('match') || key.startsWith('exclude'),\n )\n ) {\n // Exclude rules which contain only match or exclude options\n return false;\n }\n return true;\n });\n massagedConfig.packageRules = newRules;\n }\n return massagedConfig;\n}\n"],"mappings":";;;;;;AAKA,MAAM,UAAUA,yCAAY;AAE5B,IAAI;AAGJ,SAAgB,cAAc,QAAwC;AACpE,KAAI,CAAC,gBAAgB;AACnB,mBAAiB,EAAE;AACnB,UAAQ,SAAS,WAAW;AAC1B,OAAI,OAAO,YACT,gBAAe,KAAK,OAAO,KAAK;IAElC;;CAEJ,MAAM,iBAAiBC,oBAAM,OAAO;AACpC,MAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,OAAO,CAC7C,KAAI,eAAe,SAAS,IAAI,mCAAa,IAAI,CAE/C,gBAAe,OAAO,CAAC,IAAI;wCACV,IAAI,EAAE;AAEvB,iBAAe,OAAO,EAAE;AACxB,MAAI,SAAS,SAAS;AACpB,sCAAa,KAAK,CAEhB,CAAC,eAAe,KAA0B,KACxC,cAAc,KAAuB,CACtC;OAGD,CAAC,eAAe,KAAmB,KAAK,KAAK;IAE/C;2CACgB,IAAI,IAAI,QAAQ,YAElC,gBAAe,OAAO,cAAc,IAAsB;AAG9D,2CAAoB,eAAe,aAAa,EAAE;EAChD,IAAI,WAA0B,EAAE;EAChC,MAAM,cAA4B;GAChC;GACA;GACA;GACA;GACA;GACA;GACD;AACD,OAAK,MAAM,QAAQ,eAAe,cAAc;AAC9C,YAAS,KAAK,KAAK;AACnB,QAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,KAAK,CAI3C,KAAI,YAAY,SAAS,IAAI,EAAE;IAC7B,IAAI,UAAUA,oBAAM,KAAK;AACzB,WAAO,KAAK,QAAQ,CAAC,SAAS,WAAW;AACvC,SAAI,EAAE,OAAO,WAAW,QAAQ,IAAI,OAAO,WAAW,UAAU,EAE9D,QAAO,QAAQ;MAEjB;AACF,YAAQ,mBAAmB,KAAK,oBAAoB,EAAE;AACtD,YAAQ,iBAAiB,KAAK,IAAI;AAClC,cAAU;KAAE,GAAG;KAAS,GAAG;KAAK;AAChC,aAAS,KAAK,QAAQ;;;AAI5B,OAAK,MAAM,QAAQ,SACjB,aAAY,SAAS,eAAe;AAClC,UAAO,KAAK;IACZ;AAEJ,aAAW,SAAS,QAAQ,SAAS;AACnC,OACE,OAAO,KAAK,KAAK,CAAC,OACf,QAAQ,IAAI,WAAW,QAAQ,IAAI,IAAI,WAAW,UAAU,CAC9D,CAGD,QAAO;AAET,UAAO;IACP;AACF,iBAAe,eAAe;;AAEhC,QAAO"}
@@ -2,17 +2,17 @@ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
2
2
  const require_regex = require('../util/regex.js');
3
3
  const require_logger_index = require('../logger/index.js');
4
4
  const require_clone = require('../util/clone.js');
5
- const require_index = require('./options/index.js');
5
+ const require_config_options_index = require('./options/index.js');
6
6
  const require_migrations_service = require('./migrations/migrations-service.js');
7
7
  require('./migrations/index.js');
8
- const require_utils = require('./utils.js');
8
+ const require_config_utils = require('./utils.js');
9
9
  let dequal = require("dequal");
10
10
  let _sindresorhus_is = require("@sindresorhus/is");
11
11
 
12
12
  //#region lib/config/migration.ts
13
13
  require_logger_index.init_logger();
14
14
  require_regex.init_regex();
15
- const options = require_index.getOptions();
15
+ const options = require_config_options_index.getOptions();
16
16
  function fixShortHours(input) {
17
17
  return input.replace(require_regex.regEx(/( \d?\d)((a|p)m)/g), "$1:00$2");
18
18
  }
@@ -88,7 +88,7 @@ function migrateConfig(config, parentKey) {
88
88
  for (const packageRule of existingRules) if ((0, _sindresorhus_is.isArray)(packageRule.packageRules)) {
89
89
  require_logger_index.logger.debug("Flattening nested packageRules");
90
90
  for (const subrule of packageRule.packageRules) {
91
- const combinedRule = require_utils.mergeChildConfig(packageRule, subrule);
91
+ const combinedRule = require_config_utils.mergeChildConfig(packageRule, subrule);
92
92
  delete combinedRule.packageRules;
93
93
  migratedConfig.packageRules.push(combinedRule);
94
94
  }
@@ -107,7 +107,7 @@ function migrateConfig(config, parentKey) {
107
107
  migratedConfig.matchManagers = migratedConfig.matchManagers.filter((manager) => manager !== "gradle-lite");
108
108
  }
109
109
  }
110
- if ((0, _sindresorhus_is.isNonEmptyObject)(migratedConfig["gradle-lite"])) migratedConfig.gradle = require_utils.mergeChildConfig(migratedConfig.gradle ?? {}, migratedConfig["gradle-lite"]);
110
+ if ((0, _sindresorhus_is.isNonEmptyObject)(migratedConfig["gradle-lite"])) migratedConfig.gradle = require_config_utils.mergeChildConfig(migratedConfig.gradle ?? {}, migratedConfig["gradle-lite"]);
111
111
  delete migratedConfig["gradle-lite"];
112
112
  const isMigrated = !(0, dequal.dequal)(config, migratedConfig);
113
113
  if (isMigrated) return {
@@ -1 +1 @@
1
- {"version":3,"file":"migration.js","names":["getOptions","regEx","MigrationsService","clone","mergeChildConfig"],"sources":["../../lib/config/migration.ts"],"sourcesContent":["import {\n isArray,\n isBoolean,\n isNonEmptyArray,\n isNonEmptyObject,\n isObject,\n isString,\n} from '@sindresorhus/is';\nimport { dequal } from 'dequal';\nimport { logger } from '../logger/index.ts';\nimport { clone } from '../util/clone.ts';\nimport { regEx } from '../util/regex.ts';\nimport { MigrationsService } from './migrations/index.ts';\nimport { getOptions } from './options/index.ts';\nimport type {\n MigratedConfig,\n MigratedRenovateConfig,\n PackageRule,\n RenovateConfig,\n RenovateOptions,\n} from './types.ts';\nimport { mergeChildConfig } from './utils.ts';\n\nconst options = getOptions();\nexport function fixShortHours(input: string): string {\n return input.replace(regEx(/( \\d?\\d)((a|p)m)/g), '$1:00$2');\n}\n\nlet optionTypes: Record<string, RenovateOptions['type']>;\n// Returns a migrated config\nexport function migrateConfig(\n config: RenovateConfig,\n parentKey?: string,\n): MigratedConfig {\n try {\n if (!optionTypes) {\n optionTypes = {};\n options.forEach((option) => {\n optionTypes[option.name] = option.type;\n });\n }\n const newConfig = MigrationsService.run(config, parentKey);\n const migratedConfig = clone(newConfig) as MigratedRenovateConfig;\n\n for (const [key, val] of Object.entries(newConfig)) {\n if (isString(val) && val.includes('{{baseDir}}')) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = val.replace(\n regEx(/{{baseDir}}/g),\n '{{packageFileDir}}',\n );\n } else if (isString(val) && val.includes('{{lookupName}}')) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = val.replace(\n regEx(/{{lookupName}}/g),\n '{{packageName}}',\n );\n } else if (isString(val) && val.includes('{{depNameShort}}')) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = val.replace(\n regEx(/{{depNameShort}}/g),\n '{{depName}}',\n );\n } else if (isString(val) && val.startsWith('{{semanticPrefix}}')) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = val.replace(\n '{{semanticPrefix}}',\n '{{#if semanticCommitType}}{{semanticCommitType}}{{#if semanticCommitScope}}({{semanticCommitScope}}){{/if}}: {{/if}}',\n );\n } else if (optionTypes[key] === 'object' && isBoolean(val)) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = { enabled: val };\n } else if (optionTypes[key] === 'boolean') {\n if (val === 'true') {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = true;\n } else if (val === 'false') {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = false;\n }\n } else if (\n optionTypes[key] === 'string' &&\n isArray(val) &&\n val.length === 1\n ) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = String(val[0]);\n } else if (isArray(val)) {\n // @ts-expect-error -- TODO: fix me\n // v8 ignore else -- TODO: add test #40625\n if (isArray(migratedConfig?.[key])) {\n const newArray = [];\n // @ts-expect-error -- TODO: fix me\n for (const item of migratedConfig[key]) {\n if (isObject(item) && !isArray(item)) {\n const arrMigrate = migrateConfig(item as RenovateConfig);\n newArray.push(arrMigrate.migratedConfig);\n } else {\n newArray.push(item);\n }\n }\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = newArray;\n }\n } else if (isObject(val)) {\n const subMigrate = migrateConfig(\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] as RenovateConfig,\n key,\n );\n if (subMigrate.isMigrated) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = subMigrate.migratedConfig;\n }\n }\n\n const migratedTemplates = {\n fromVersion: 'currentVersion',\n newValueMajor: 'newMajor',\n newValueMinor: 'newMinor',\n newVersionMajor: 'newMajor',\n newVersionMinor: 'newMinor',\n toVersion: 'newVersion',\n };\n // @ts-expect-error -- TODO: fix me\n if (isString(migratedConfig[key])) {\n for (const [from, to] of Object.entries(migratedTemplates)) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = (migratedConfig[key] as string).replace(\n regEx(from, 'g'),\n to,\n );\n }\n }\n }\n const languages = [\n 'docker',\n 'dotnet',\n 'golang',\n 'java',\n 'js',\n 'node',\n 'php',\n 'python',\n 'ruby',\n 'rust',\n ];\n for (const language of languages) {\n // @ts-expect-error -- TODO: fix me\n if (isNonEmptyObject(migratedConfig[language])) {\n migratedConfig.packageRules ??= [];\n // @ts-expect-error -- TODO: fix me\n const currentContent = migratedConfig[language] as any;\n const packageRule = {\n matchCategories: [language],\n ...currentContent,\n };\n migratedConfig.packageRules.unshift(packageRule);\n // @ts-expect-error -- TODO: fix me\n delete migratedConfig[language];\n }\n }\n // Migrate nested packageRules\n if (isNonEmptyArray(migratedConfig.packageRules)) {\n const existingRules = migratedConfig.packageRules;\n migratedConfig.packageRules = [];\n for (const packageRule of existingRules) {\n // @ts-expect-error -- TODO: fix me\n if (isArray(packageRule.packageRules)) {\n logger.debug('Flattening nested packageRules');\n // merge each subrule and add to the parent list\n // @ts-expect-error -- TODO: fix me\n for (const subrule of packageRule.packageRules) {\n // TODO: fix types #22198\n const combinedRule = mergeChildConfig(\n packageRule,\n subrule as PackageRule,\n );\n // @ts-expect-error -- TODO: fix me\n delete combinedRule.packageRules;\n migratedConfig.packageRules.push(combinedRule);\n }\n } else {\n migratedConfig.packageRules.push(packageRule);\n }\n }\n }\n if (\n // @ts-expect-error -- TODO: fix me\n isNonEmptyObject(migratedConfig['pip-compile']) &&\n // @ts-expect-error -- TODO: fix me\n isNonEmptyArray(migratedConfig['pip-compile'].managerFilePatterns)\n ) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig['pip-compile'].managerFilePatterns = migratedConfig[\n 'pip-compile'\n ].managerFilePatterns.map((filePattern) => {\n const pattern = filePattern as string;\n if (pattern.endsWith('.in')) {\n return pattern.replace(/\\.in$/, '.txt');\n }\n if (pattern.endsWith('.in/')) {\n return pattern.replace(/\\.in\\/$/, '.txt/');\n }\n return pattern.replace(/\\.in\\$\\/$/, '.txt$/');\n });\n }\n // @ts-expect-error -- TODO: fix me\n if (isNonEmptyArray(migratedConfig.matchManagers)) {\n // @ts-expect-error -- TODO: fix me\n if (migratedConfig.matchManagers.includes('gradle-lite')) {\n // @ts-expect-error -- TODO: fix me\n // v8 ignore else -- TODO: add test #40625\n if (!migratedConfig.matchManagers.includes('gradle')) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig.matchManagers.push('gradle');\n }\n // @ts-expect-error -- TODO: fix me\n migratedConfig.matchManagers = migratedConfig.matchManagers.filter(\n // @ts-expect-error -- TODO: fix me\n (manager) => manager !== 'gradle-lite',\n );\n }\n }\n // @ts-expect-error -- TODO: fix me\n if (isNonEmptyObject(migratedConfig['gradle-lite'])) {\n migratedConfig.gradle = mergeChildConfig(\n migratedConfig.gradle ?? {},\n // @ts-expect-error -- TODO: fix me\n migratedConfig['gradle-lite'],\n );\n }\n // @ts-expect-error -- TODO: fix me\n delete migratedConfig['gradle-lite'];\n const isMigrated = !dequal(config, migratedConfig);\n if (isMigrated) {\n // recursive call in case any migrated configs need further migrating\n return {\n isMigrated,\n migratedConfig: migrateConfig(migratedConfig).migratedConfig,\n };\n }\n return { isMigrated, migratedConfig };\n } catch (err) {\n logger.debug({ config, err }, 'migrateConfig() error');\n throw err;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"migration.js","names":["getOptions","regEx","MigrationsService","clone","mergeChildConfig"],"sources":["../../lib/config/migration.ts"],"sourcesContent":["import {\n isArray,\n isBoolean,\n isNonEmptyArray,\n isNonEmptyObject,\n isObject,\n isString,\n} from '@sindresorhus/is';\nimport { dequal } from 'dequal';\nimport { logger } from '../logger/index.ts';\nimport { clone } from '../util/clone.ts';\nimport { regEx } from '../util/regex.ts';\nimport { MigrationsService } from './migrations/index.ts';\nimport { getOptions } from './options/index.ts';\nimport type {\n MigratedConfig,\n MigratedRenovateConfig,\n PackageRule,\n RenovateConfig,\n RenovateOptions,\n} from './types.ts';\nimport { mergeChildConfig } from './utils.ts';\n\nconst options = getOptions();\nexport function fixShortHours(input: string): string {\n return input.replace(regEx(/( \\d?\\d)((a|p)m)/g), '$1:00$2');\n}\n\nlet optionTypes: Record<string, RenovateOptions['type']>;\n// Returns a migrated config\nexport function migrateConfig(\n config: RenovateConfig,\n parentKey?: string,\n): MigratedConfig {\n try {\n if (!optionTypes) {\n optionTypes = {};\n options.forEach((option) => {\n optionTypes[option.name] = option.type;\n });\n }\n const newConfig = MigrationsService.run(config, parentKey);\n const migratedConfig = clone(newConfig) as MigratedRenovateConfig;\n\n for (const [key, val] of Object.entries(newConfig)) {\n if (isString(val) && val.includes('{{baseDir}}')) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = val.replace(\n regEx(/{{baseDir}}/g),\n '{{packageFileDir}}',\n );\n } else if (isString(val) && val.includes('{{lookupName}}')) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = val.replace(\n regEx(/{{lookupName}}/g),\n '{{packageName}}',\n );\n } else if (isString(val) && val.includes('{{depNameShort}}')) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = val.replace(\n regEx(/{{depNameShort}}/g),\n '{{depName}}',\n );\n } else if (isString(val) && val.startsWith('{{semanticPrefix}}')) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = val.replace(\n '{{semanticPrefix}}',\n '{{#if semanticCommitType}}{{semanticCommitType}}{{#if semanticCommitScope}}({{semanticCommitScope}}){{/if}}: {{/if}}',\n );\n } else if (optionTypes[key] === 'object' && isBoolean(val)) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = { enabled: val };\n } else if (optionTypes[key] === 'boolean') {\n if (val === 'true') {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = true;\n } else if (val === 'false') {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = false;\n }\n } else if (\n optionTypes[key] === 'string' &&\n isArray(val) &&\n val.length === 1\n ) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = String(val[0]);\n } else if (isArray(val)) {\n // @ts-expect-error -- TODO: fix me\n // v8 ignore else -- TODO: add test #40625\n if (isArray(migratedConfig?.[key])) {\n const newArray = [];\n // @ts-expect-error -- TODO: fix me\n for (const item of migratedConfig[key]) {\n if (isObject(item) && !isArray(item)) {\n const arrMigrate = migrateConfig(item as RenovateConfig);\n newArray.push(arrMigrate.migratedConfig);\n } else {\n newArray.push(item);\n }\n }\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = newArray;\n }\n } else if (isObject(val)) {\n const subMigrate = migrateConfig(\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] as RenovateConfig,\n key,\n );\n if (subMigrate.isMigrated) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = subMigrate.migratedConfig;\n }\n }\n\n const migratedTemplates = {\n fromVersion: 'currentVersion',\n newValueMajor: 'newMajor',\n newValueMinor: 'newMinor',\n newVersionMajor: 'newMajor',\n newVersionMinor: 'newMinor',\n toVersion: 'newVersion',\n };\n // @ts-expect-error -- TODO: fix me\n if (isString(migratedConfig[key])) {\n for (const [from, to] of Object.entries(migratedTemplates)) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig[key] = (migratedConfig[key] as string).replace(\n regEx(from, 'g'),\n to,\n );\n }\n }\n }\n const languages = [\n 'docker',\n 'dotnet',\n 'golang',\n 'java',\n 'js',\n 'node',\n 'php',\n 'python',\n 'ruby',\n 'rust',\n ];\n for (const language of languages) {\n // @ts-expect-error -- TODO: fix me\n if (isNonEmptyObject(migratedConfig[language])) {\n migratedConfig.packageRules ??= [];\n // @ts-expect-error -- TODO: fix me\n const currentContent = migratedConfig[language] as any;\n const packageRule = {\n matchCategories: [language],\n ...currentContent,\n };\n migratedConfig.packageRules.unshift(packageRule);\n // @ts-expect-error -- TODO: fix me\n delete migratedConfig[language];\n }\n }\n // Migrate nested packageRules\n if (isNonEmptyArray(migratedConfig.packageRules)) {\n const existingRules = migratedConfig.packageRules;\n migratedConfig.packageRules = [];\n for (const packageRule of existingRules) {\n // @ts-expect-error -- TODO: fix me\n if (isArray(packageRule.packageRules)) {\n logger.debug('Flattening nested packageRules');\n // merge each subrule and add to the parent list\n // @ts-expect-error -- TODO: fix me\n for (const subrule of packageRule.packageRules) {\n // TODO: fix types #22198\n const combinedRule = mergeChildConfig(\n packageRule,\n subrule as PackageRule,\n );\n // @ts-expect-error -- TODO: fix me\n delete combinedRule.packageRules;\n migratedConfig.packageRules.push(combinedRule);\n }\n } else {\n migratedConfig.packageRules.push(packageRule);\n }\n }\n }\n if (\n // @ts-expect-error -- TODO: fix me\n isNonEmptyObject(migratedConfig['pip-compile']) &&\n // @ts-expect-error -- TODO: fix me\n isNonEmptyArray(migratedConfig['pip-compile'].managerFilePatterns)\n ) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig['pip-compile'].managerFilePatterns = migratedConfig[\n 'pip-compile'\n ].managerFilePatterns.map((filePattern) => {\n const pattern = filePattern as string;\n if (pattern.endsWith('.in')) {\n return pattern.replace(/\\.in$/, '.txt');\n }\n if (pattern.endsWith('.in/')) {\n return pattern.replace(/\\.in\\/$/, '.txt/');\n }\n return pattern.replace(/\\.in\\$\\/$/, '.txt$/');\n });\n }\n // @ts-expect-error -- TODO: fix me\n if (isNonEmptyArray(migratedConfig.matchManagers)) {\n // @ts-expect-error -- TODO: fix me\n if (migratedConfig.matchManagers.includes('gradle-lite')) {\n // @ts-expect-error -- TODO: fix me\n // v8 ignore else -- TODO: add test #40625\n if (!migratedConfig.matchManagers.includes('gradle')) {\n // @ts-expect-error -- TODO: fix me\n migratedConfig.matchManagers.push('gradle');\n }\n // @ts-expect-error -- TODO: fix me\n migratedConfig.matchManagers = migratedConfig.matchManagers.filter(\n // @ts-expect-error -- TODO: fix me\n (manager) => manager !== 'gradle-lite',\n );\n }\n }\n // @ts-expect-error -- TODO: fix me\n if (isNonEmptyObject(migratedConfig['gradle-lite'])) {\n migratedConfig.gradle = mergeChildConfig(\n migratedConfig.gradle ?? {},\n // @ts-expect-error -- TODO: fix me\n migratedConfig['gradle-lite'],\n );\n }\n // @ts-expect-error -- TODO: fix me\n delete migratedConfig['gradle-lite'];\n const isMigrated = !dequal(config, migratedConfig);\n if (isMigrated) {\n // recursive call in case any migrated configs need further migrating\n return {\n isMigrated,\n migratedConfig: migrateConfig(migratedConfig).migratedConfig,\n };\n }\n return { isMigrated, migratedConfig };\n } catch (err) {\n logger.debug({ config, err }, 'migrateConfig() error');\n throw err;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { RenovateOptions } from "../types.js";
2
+
3
+ //#region lib/config/options/index.d.ts
4
+ declare function getOptions(): Readonly<RenovateOptions>[];
5
+ //#endregion
6
+ export { getOptions };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -1,7 +1,7 @@
1
1
  const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.js');
2
2
  const require_logger_index = require('../../../logger/index.js');
3
3
  const require_external_host_error = require('../../../types/errors/external-host-error.js');
4
- const require_gitlab = require('../../../util/http/gitlab.js');
4
+ const require_util_http_gitlab = require('../../../util/http/gitlab.js');
5
5
  const require_util = require('../util.js');
6
6
  let _sindresorhus_is = require("@sindresorhus/is");
7
7
 
@@ -13,7 +13,7 @@ var gitlab_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
13
13
  getPresetFromEndpoint: () => getPresetFromEndpoint
14
14
  });
15
15
  require_logger_index.init_logger();
16
- const gitlabApi = new require_gitlab.GitlabHttp();
16
+ const gitlabApi = new require_util_http_gitlab.GitlabHttp();
17
17
  const Endpoint = "https://gitlab.com/api/v4/";
18
18
  async function getDefaultBranchName(urlEncodedPkgName, endpoint) {
19
19
  return (await gitlabApi.getJsonUnchecked(`${endpoint}projects/${urlEncodedPkgName}`)).body.default_branch ?? "master";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["GitlabHttp","ExternalHostError","PRESET_DEP_NOT_FOUND","parsePreset","fetchPreset"],"sources":["../../../../lib/config/presets/gitlab/index.ts"],"sourcesContent":["import { isNonEmptyString } from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport { ExternalHostError } from '../../../types/errors/external-host-error.ts';\nimport type { Nullish } from '../../../types/index.ts';\nimport type { GitlabProject } from '../../../types/platform/gitlab/index.ts';\nimport { GitlabHttp } from '../../../util/http/gitlab.ts';\nimport type { HttpResponse } from '../../../util/http/types.ts';\nimport type { Preset, PresetConfig } from '../types.ts';\nimport { PRESET_DEP_NOT_FOUND, fetchPreset, parsePreset } from '../util.ts';\n\nconst gitlabApi = new GitlabHttp();\nexport const Endpoint = 'https://gitlab.com/api/v4/';\n\nasync function getDefaultBranchName(\n urlEncodedPkgName: string,\n endpoint: string,\n): Promise<string> {\n const res = await gitlabApi.getJsonUnchecked<GitlabProject>(\n `${endpoint}projects/${urlEncodedPkgName}`,\n );\n return res.body.default_branch ?? 'master'; // should never happen, but we keep this to ensure the current behavior\n}\n\nexport async function fetchJSONFile(\n repo: string,\n fileName: string,\n endpoint: string,\n tag?: string,\n): Promise<Nullish<Preset>> {\n let url = endpoint;\n let ref = '';\n let res: HttpResponse;\n try {\n const urlEncodedRepo = encodeURIComponent(repo);\n const urlEncodedPkgName = encodeURIComponent(fileName);\n if (isNonEmptyString(tag)) {\n ref = `?ref=${tag}`;\n } else {\n const defaultBranchName = await getDefaultBranchName(\n urlEncodedRepo,\n endpoint,\n );\n ref = `?ref=${defaultBranchName}`;\n }\n url += `projects/${urlEncodedRepo}/repository/files/${urlEncodedPkgName}/raw${ref}`;\n logger.trace({ url }, `Preset URL`);\n res = await gitlabApi.getText(url);\n } catch (err) {\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logger.debug(\n `Preset file ${fileName} not found in ${repo}: ${err.message}`,\n );\n throw new Error(PRESET_DEP_NOT_FOUND);\n }\n\n return parsePreset(res.body, fileName);\n}\n\nexport function getPresetFromEndpoint(\n repo: string,\n presetName: string,\n presetPath?: string,\n endpoint = Endpoint,\n tag?: string,\n): Promise<Nullish<Preset>> {\n return fetchPreset({\n repo,\n filePreset: presetName,\n presetPath,\n endpoint,\n tag,\n fetch: fetchJSONFile,\n });\n}\n\nexport function getPreset({\n repo,\n presetPath,\n presetName = 'default',\n tag = undefined,\n}: PresetConfig): Promise<Nullish<Preset>> {\n return getPresetFromEndpoint(repo, presetName, presetPath, Endpoint, tag);\n}\n"],"mappings":";;;;;;;;;;;;;;kCACkD;AASlD,MAAM,YAAY,IAAIA,2BAAY;AAClC,MAAa,WAAW;AAExB,eAAe,qBACb,mBACA,UACiB;AAIjB,SAHY,MAAM,UAAU,iBAC1B,GAAG,SAAS,WAAW,oBACxB,EACU,KAAK,kBAAkB;;AAGpC,eAAsB,cACpB,MACA,UACA,UACA,KAC0B;CAC1B,IAAI,MAAM;CACV,IAAI,MAAM;CACV,IAAI;AACJ,KAAI;EACF,MAAM,iBAAiB,mBAAmB,KAAK;EAC/C,MAAM,oBAAoB,mBAAmB,SAAS;AACtD,6CAAqB,IAAI,CACvB,OAAM,QAAQ;MAMd,OAAM,QAJoB,MAAM,qBAC9B,gBACA,SACD;AAGH,SAAO,YAAY,eAAe,oBAAoB,kBAAkB,MAAM;AAC9E,8BAAO,MAAM,EAAE,KAAK,EAAE,aAAa;AACnC,QAAM,MAAM,UAAU,QAAQ,IAAI;UAC3B,KAAK;AACZ,MAAI,eAAeC,8CACjB,OAAM;AAER,8BAAO,MACL,eAAe,SAAS,gBAAgB,KAAK,IAAI,IAAI,UACtD;AACD,QAAM,IAAI,MAAMC,kCAAqB;;AAGvC,QAAOC,yBAAY,IAAI,MAAM,SAAS;;AAGxC,SAAgB,sBACd,MACA,YACA,YACA,WAAW,UACX,KAC0B;AAC1B,QAAOC,yBAAY;EACjB;EACA,YAAY;EACZ;EACA;EACA;EACA,OAAO;EACR,CAAC;;AAGJ,SAAgB,UAAU,EACxB,MACA,YACA,aAAa,WACb,MAAM,UACmC;AACzC,QAAO,sBAAsB,MAAM,YAAY,YAAY,UAAU,IAAI"}
1
+ {"version":3,"file":"index.js","names":["GitlabHttp","ExternalHostError","PRESET_DEP_NOT_FOUND","parsePreset","fetchPreset"],"sources":["../../../../lib/config/presets/gitlab/index.ts"],"sourcesContent":["import { isNonEmptyString } from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport { ExternalHostError } from '../../../types/errors/external-host-error.ts';\nimport type { Nullish } from '../../../types/index.ts';\nimport type { GitlabProject } from '../../../types/platform/gitlab/index.ts';\nimport { GitlabHttp } from '../../../util/http/gitlab.ts';\nimport type { HttpResponse } from '../../../util/http/types.ts';\nimport type { Preset, PresetConfig } from '../types.ts';\nimport { PRESET_DEP_NOT_FOUND, fetchPreset, parsePreset } from '../util.ts';\n\nconst gitlabApi = new GitlabHttp();\nexport const Endpoint = 'https://gitlab.com/api/v4/';\n\nasync function getDefaultBranchName(\n urlEncodedPkgName: string,\n endpoint: string,\n): Promise<string> {\n const res = await gitlabApi.getJsonUnchecked<GitlabProject>(\n `${endpoint}projects/${urlEncodedPkgName}`,\n );\n return res.body.default_branch ?? 'master'; // should never happen, but we keep this to ensure the current behavior\n}\n\nexport async function fetchJSONFile(\n repo: string,\n fileName: string,\n endpoint: string,\n tag?: string,\n): Promise<Nullish<Preset>> {\n let url = endpoint;\n let ref = '';\n let res: HttpResponse;\n try {\n const urlEncodedRepo = encodeURIComponent(repo);\n const urlEncodedPkgName = encodeURIComponent(fileName);\n if (isNonEmptyString(tag)) {\n ref = `?ref=${tag}`;\n } else {\n const defaultBranchName = await getDefaultBranchName(\n urlEncodedRepo,\n endpoint,\n );\n ref = `?ref=${defaultBranchName}`;\n }\n url += `projects/${urlEncodedRepo}/repository/files/${urlEncodedPkgName}/raw${ref}`;\n logger.trace({ url }, `Preset URL`);\n res = await gitlabApi.getText(url);\n } catch (err) {\n if (err instanceof ExternalHostError) {\n throw err;\n }\n logger.debug(\n `Preset file ${fileName} not found in ${repo}: ${err.message}`,\n );\n throw new Error(PRESET_DEP_NOT_FOUND);\n }\n\n return parsePreset(res.body, fileName);\n}\n\nexport function getPresetFromEndpoint(\n repo: string,\n presetName: string,\n presetPath?: string,\n endpoint = Endpoint,\n tag?: string,\n): Promise<Nullish<Preset>> {\n return fetchPreset({\n repo,\n filePreset: presetName,\n presetPath,\n endpoint,\n tag,\n fetch: fetchJSONFile,\n });\n}\n\nexport function getPreset({\n repo,\n presetPath,\n presetName = 'default',\n tag = undefined,\n}: PresetConfig): Promise<Nullish<Preset>> {\n return getPresetFromEndpoint(repo, presetName, presetPath, Endpoint, tag);\n}\n"],"mappings":";;;;;;;;;;;;;;kCACkD;AASlD,MAAM,YAAY,IAAIA,qCAAY;AAClC,MAAa,WAAW;AAExB,eAAe,qBACb,mBACA,UACiB;AAIjB,SAHY,MAAM,UAAU,iBAC1B,GAAG,SAAS,WAAW,oBACxB,EACU,KAAK,kBAAkB;;AAGpC,eAAsB,cACpB,MACA,UACA,UACA,KAC0B;CAC1B,IAAI,MAAM;CACV,IAAI,MAAM;CACV,IAAI;AACJ,KAAI;EACF,MAAM,iBAAiB,mBAAmB,KAAK;EAC/C,MAAM,oBAAoB,mBAAmB,SAAS;AACtD,6CAAqB,IAAI,CACvB,OAAM,QAAQ;MAMd,OAAM,QAJoB,MAAM,qBAC9B,gBACA,SACD;AAGH,SAAO,YAAY,eAAe,oBAAoB,kBAAkB,MAAM;AAC9E,8BAAO,MAAM,EAAE,KAAK,EAAE,aAAa;AACnC,QAAM,MAAM,UAAU,QAAQ,IAAI;UAC3B,KAAK;AACZ,MAAI,eAAeC,8CACjB,OAAM;AAER,8BAAO,MACL,eAAe,SAAS,gBAAgB,KAAK,IAAI,IAAI,UACtD;AACD,QAAM,IAAI,MAAMC,kCAAqB;;AAGvC,QAAOC,yBAAY,IAAI,MAAM,SAAS;;AAGxC,SAAgB,sBACd,MACA,YACA,YACA,WAAW,UACX,KAC0B;AAC1B,QAAOC,yBAAY;EACjB;EACA,YAAY;EACZ;EACA;EACA;EACA,OAAO;EACR,CAAC;;AAGJ,SAAgB,UAAU,EACxB,MACA,YACA,aAAa,WACb,MAAM,UACmC;AACzC,QAAO,sBAAsB,MAAM,YAAY,YAAY,UAAU,IAAI"}
@@ -7,21 +7,21 @@ const require_logger_index = require('../../logger/index.js');
7
7
  const require_clone = require('../../util/clone.js');
8
8
  const require_index$1 = require('../../util/template/index.js');
9
9
  const require_external_host_error = require('../../types/errors/external-host-error.js');
10
- const require_index$2 = require('../../util/cache/package/index.js');
10
+ const require_util_cache_package_index = require('../../util/cache/package/index.js');
11
11
  const require_util = require('./util.js');
12
12
  const require_parse = require('./parse.js');
13
13
  const require_massage = require('../massage.js');
14
14
  const require_common = require('./common.js');
15
- const require_utils = require('../utils.js');
15
+ const require_config_utils = require('../utils.js');
16
16
  const require_migration = require('../migration.js');
17
- const require_index$3 = require('./forgejo/index.js');
18
- const require_index$4 = require('./gitea/index.js');
19
- const require_index$5 = require('./github/index.js');
20
- const require_index$6 = require('./gitlab/index.js');
21
- const require_index$7 = require('./http/index.js');
22
- const require_index$8 = require('./internal/index.js');
23
- const require_index$9 = require('./local/index.js');
24
- const require_index$10 = require('./npm/index.js');
17
+ const require_index$2 = require('./forgejo/index.js');
18
+ const require_index$3 = require('./gitea/index.js');
19
+ const require_index$4 = require('./github/index.js');
20
+ const require_index$5 = require('./gitlab/index.js');
21
+ const require_index$6 = require('./http/index.js');
22
+ const require_index$7 = require('./internal/index.js');
23
+ const require_index$8 = require('./local/index.js');
24
+ const require_index$9 = require('./npm/index.js');
25
25
  let _sindresorhus_is = require("@sindresorhus/is");
26
26
 
27
27
  //#region lib/config/presets/index.ts
@@ -30,14 +30,14 @@ require_logger_index.init_logger();
30
30
  require_index.init_memory();
31
31
  require_regex.init_regex();
32
32
  const presetSources = {
33
- forgejo: require_index$3.forgejo_exports,
34
- gitea: require_index$4.gitea_exports,
35
- github: require_index$5.github_exports,
36
- gitlab: require_index$6.gitlab_exports,
37
- http: require_index$7.http_exports,
38
- internal: require_index$8.internal_exports,
39
- local: require_index$9.local_exports,
40
- npm: require_index$10.npm_exports
33
+ forgejo: require_index$2.forgejo_exports,
34
+ gitea: require_index$3.gitea_exports,
35
+ github: require_index$4.github_exports,
36
+ gitlab: require_index$5.gitlab_exports,
37
+ http: require_index$6.http_exports,
38
+ internal: require_index$7.internal_exports,
39
+ local: require_index$8.local_exports,
40
+ npm: require_index$9.npm_exports
41
41
  };
42
42
  const presetCacheNamespace = "preset";
43
43
  function replaceArgs(obj, argMapping) {
@@ -70,7 +70,7 @@ async function getPreset(preset, baseConfig) {
70
70
  const cacheKey = `preset:${preset}`;
71
71
  const presetCachePersistence = require_config_global.GlobalConfig.get("presetCachePersistence", false);
72
72
  let presetConfig;
73
- if (presetCachePersistence) presetConfig = await require_index$2.get(presetCacheNamespace, cacheKey);
73
+ if (presetCachePersistence) presetConfig = await require_util_cache_package_index.get(presetCacheNamespace, cacheKey);
74
74
  else presetConfig = require_index.get(cacheKey);
75
75
  if ((0, _sindresorhus_is.isNullOrUndefined)(presetConfig)) {
76
76
  presetConfig = await presetSources[presetSource].getPreset({
@@ -79,7 +79,7 @@ async function getPreset(preset, baseConfig) {
79
79
  presetName,
80
80
  tag
81
81
  });
82
- if (presetCachePersistence) await require_index$2.set(presetCacheNamespace, cacheKey, presetConfig, 15);
82
+ if (presetCachePersistence) await require_util_cache_package_index.set(presetCacheNamespace, cacheKey, presetConfig, 15);
83
83
  else require_index.set(cacheKey, presetConfig);
84
84
  }
85
85
  if (!presetConfig) throw new Error(require_util.PRESET_DEP_NOT_FOUND);
@@ -113,13 +113,13 @@ async function resolveConfigPresets(inputConfig, baseConfig, _ignorePresets, exi
113
113
  require_logger_index.logger.trace(`Resolving preset "${preset}"`);
114
114
  const { config: presetConfig, visitedPresets } = await resolveConfigPresets(await fetchPreset(preset, baseConfig, inputConfig, existingPresets), baseConfig ?? inputConfig, ignorePresets, existingPresets.concat([preset]));
115
115
  if (inputConfig?.ignoreDeps?.length === 0) delete presetConfig.description;
116
- config = require_utils.mergeChildConfig(config, presetConfig);
116
+ config = require_config_utils.mergeChildConfig(config, presetConfig);
117
117
  allVisitedPresets.merged.add(preset);
118
118
  for (const mergedPreset of visitedPresets.merged) allVisitedPresets.merged.add(mergedPreset);
119
119
  }
120
120
  }
121
121
  require_logger_index.logger.trace({ config }, `Post-preset resolve config`);
122
- config = require_utils.mergeChildConfig(config, inputConfig);
122
+ config = require_config_utils.mergeChildConfig(config, inputConfig);
123
123
  delete config.extends;
124
124
  delete config.ignorePresets;
125
125
  require_logger_index.logger.trace({ config }, `Post-merge resolve config`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["regEx","removedPresets","parsePreset","GlobalConfig","PRESET_DEP_NOT_FOUND","clone","mergeChildConfig","ExternalHostError","PLATFORM_RATE_LIMIT_EXCEEDED","CONFIG_VALIDATION","PRESET_RENOVATE_CONFIG_NOT_FOUND","PRESET_NOT_FOUND","PRESET_INVALID","PRESET_PROHIBITED_SUBPRESET","PRESET_INVALID_JSON"],"sources":["../../../lib/config/presets/index.ts"],"sourcesContent":["import {\n isArray,\n isNullOrUndefined,\n isObject,\n isString,\n} from '@sindresorhus/is';\nimport {\n CONFIG_VALIDATION,\n PLATFORM_RATE_LIMIT_EXCEEDED,\n} from '../../constants/error-messages.ts';\nimport { logger } from '../../logger/index.ts';\nimport { ExternalHostError } from '../../types/errors/external-host-error.ts';\nimport * as memCache from '../../util/cache/memory/index.ts';\nimport * as packageCache from '../../util/cache/package/index.ts';\nimport { clone } from '../../util/clone.ts';\nimport { regEx } from '../../util/regex.ts';\nimport * as template from '../../util/template/index.ts';\nimport { GlobalConfig } from '../global.ts';\nimport * as massage from '../massage.ts';\nimport * as migration from '../migration.ts';\nimport type { AllConfig, RenovateConfig } from '../types.ts';\nimport { mergeChildConfig } from '../utils.ts';\nimport { removedPresets } from './common.ts';\nimport * as forgejo from './forgejo/index.ts';\nimport * as gitea from './gitea/index.ts';\nimport * as github from './github/index.ts';\nimport * as gitlab from './gitlab/index.ts';\nimport * as http from './http/index.ts';\nimport * as internal from './internal/index.ts';\nimport * as local from './local/index.ts';\nimport * as npm from './npm/index.ts';\nimport { parsePreset } from './parse.ts';\nimport type { Preset, PresetApi } from './types.ts';\nimport {\n PRESET_DEP_NOT_FOUND,\n PRESET_INVALID,\n PRESET_INVALID_JSON,\n PRESET_NOT_FOUND,\n PRESET_PROHIBITED_SUBPRESET,\n PRESET_RENOVATE_CONFIG_NOT_FOUND,\n} from './util.ts';\n\nconst presetSources: Record<string, PresetApi> = {\n forgejo,\n gitea,\n github,\n gitlab,\n http,\n internal,\n local,\n npm,\n};\n\nconst presetCacheNamespace = 'preset';\n\nexport function replaceArgs(\n obj: string,\n argMapping: Record<string, any>,\n): string;\nexport function replaceArgs(\n obj: string[],\n argMapping: Record<string, any>,\n): string[];\nexport function replaceArgs(\n obj: Record<string, any>,\n argMapping: Record<string, any>,\n): Record<string, any>;\nexport function replaceArgs(\n obj: Record<string, any>[],\n argMapping: Record<string, any>,\n): Record<string, any>[];\n\n/**\n * TODO: fix me #22198\n * @param obj\n * @param argMapping\n */\nexport function replaceArgs(obj: any, argMapping: Record<string, any>): any;\nexport function replaceArgs(\n obj: string | string[] | Record<string, any> | Record<string, any>[],\n argMapping: Record<string, any>,\n): any {\n if (isString(obj)) {\n let returnStr = obj;\n for (const [arg, argVal] of Object.entries(argMapping)) {\n const re = regEx(`{{${arg}}}`, 'g', false);\n returnStr = returnStr.replace(re, argVal);\n }\n return returnStr;\n }\n if (isArray(obj)) {\n const returnArray = [];\n for (const item of obj) {\n returnArray.push(replaceArgs(item, argMapping));\n }\n return returnArray;\n }\n if (isObject(obj)) {\n const returnObj: Record<string, any> = {};\n for (const [key, val] of Object.entries(obj)) {\n returnObj[key] = replaceArgs(val, argMapping);\n }\n return returnObj;\n }\n return obj;\n}\n\nexport async function getPreset(\n preset: string,\n baseConfig?: RenovateConfig,\n): Promise<RenovateConfig> {\n logger.trace(`getPreset(${preset})`);\n // Check if the preset has been removed or replaced\n const newPreset = removedPresets[preset];\n if (newPreset) {\n return getPreset(newPreset, baseConfig);\n }\n if (newPreset === null) {\n return {};\n }\n const { presetSource, repo, presetPath, presetName, tag, params, rawParams } =\n parsePreset(preset);\n const cacheKey = `preset:${preset}`;\n const presetCachePersistence = GlobalConfig.get(\n 'presetCachePersistence',\n false,\n );\n\n let presetConfig: Preset | null | undefined;\n\n if (presetCachePersistence) {\n presetConfig = await packageCache.get(presetCacheNamespace, cacheKey);\n } else {\n presetConfig = memCache.get(cacheKey);\n }\n\n if (isNullOrUndefined(presetConfig)) {\n presetConfig = await presetSources[presetSource].getPreset({\n repo,\n presetPath,\n presetName,\n tag,\n });\n if (presetCachePersistence) {\n await packageCache.set(presetCacheNamespace, cacheKey, presetConfig, 15);\n } else {\n memCache.set(cacheKey, presetConfig);\n }\n }\n if (!presetConfig) {\n throw new Error(PRESET_DEP_NOT_FOUND);\n }\n logger.trace({ presetConfig }, `Found preset ${preset}`);\n if (params) {\n const argMapping: Record<string, string> = {};\n for (const [index, value] of params.entries()) {\n argMapping[`arg${index}`] = value;\n }\n if (rawParams) {\n argMapping.args = rawParams;\n }\n presetConfig = replaceArgs(presetConfig, argMapping);\n }\n logger.trace({ presetConfig }, `Applied params to preset ${preset}`);\n const presetKeys = Object.keys(presetConfig);\n if (\n presetKeys.length === 2 &&\n presetKeys.includes('description') &&\n presetKeys.includes('extends')\n ) {\n // preset is just a collection of other presets\n delete presetConfig.description;\n }\n const packageListKeys = ['description', 'matchPackageNames'];\n if (presetKeys.every((key) => packageListKeys.includes(key))) {\n delete presetConfig.description;\n }\n const { migratedConfig } = migration.migrateConfig(presetConfig);\n return massage.massageConfig(migratedConfig);\n}\n\nexport interface ResolveConfigPresetsResult {\n config: AllConfig;\n /** when resolving the given configuration, which internal/shared presets were discovered */\n visitedPresets: {\n /** which internal/shared presets were merged into the final config */\n merged: string[];\n };\n}\n\nexport async function resolveConfigPresets(\n inputConfig: AllConfig,\n baseConfig?: RenovateConfig,\n _ignorePresets?: string[],\n existingPresets: string[] = [],\n): Promise<ResolveConfigPresetsResult> {\n const allVisitedPresets = {\n merged: new Set<string>(),\n };\n\n let ignorePresets = clone(_ignorePresets);\n if (!ignorePresets || ignorePresets.length === 0) {\n ignorePresets = inputConfig.ignorePresets ?? [];\n }\n logger.trace(\n { config: inputConfig, existingPresets },\n 'resolveConfigPresets',\n );\n let config: AllConfig = {};\n // First, merge all the preset configs from left to right\n if (inputConfig.extends?.length) {\n // Compile templates\n inputConfig.extends = inputConfig.extends.map((tmpl) =>\n template.compile(tmpl, {}),\n );\n for (const preset of inputConfig.extends) {\n if (shouldResolvePreset(preset, existingPresets, ignorePresets)) {\n logger.trace(`Resolving preset \"${preset}\"`);\n const fetchedPreset = await fetchPreset(\n preset,\n baseConfig,\n inputConfig,\n existingPresets,\n );\n const { config: presetConfig, visitedPresets } =\n await resolveConfigPresets(\n fetchedPreset,\n baseConfig ?? inputConfig,\n ignorePresets,\n existingPresets.concat([preset]),\n );\n if (inputConfig?.ignoreDeps?.length === 0) {\n delete presetConfig.description;\n }\n config = mergeChildConfig(config, presetConfig);\n allVisitedPresets.merged.add(preset);\n // then also make sure we've noted any nested presets we've merged\n for (const mergedPreset of visitedPresets.merged) {\n allVisitedPresets.merged.add(mergedPreset);\n }\n }\n }\n }\n logger.trace({ config }, `Post-preset resolve config`);\n // Now assign \"regular\" config on top\n config = mergeChildConfig(config, inputConfig);\n delete config.extends;\n delete config.ignorePresets;\n logger.trace({ config }, `Post-merge resolve config`);\n for (const [key, val] of Object.entries(config) as [\n keyof AllConfig,\n unknown,\n ][]) {\n const ignoredKeys = ['content', 'onboardingConfig'];\n if (isArray(val)) {\n // Resolve nested objects inside arrays\n config[key] = [] as never; // type can't be narrowed\n for (const element of val) {\n if (isObject(element)) {\n const { config: presetConfig, visitedPresets: visited } =\n await resolveConfigPresets(\n element as RenovateConfig,\n baseConfig,\n ignorePresets,\n existingPresets,\n );\n (config[key] as RenovateConfig[]).push(presetConfig);\n\n for (const mergedPreset of visited.merged) {\n allVisitedPresets.merged.add(mergedPreset);\n }\n } else {\n (config[key] as unknown[]).push(element);\n }\n }\n } else if (isObject(val) && !ignoredKeys.includes(key)) {\n // Resolve nested objects\n logger.trace(`Resolving object \"${key}\"`);\n const { config: presetConfig, visitedPresets: visited } =\n await resolveConfigPresets(\n val as RenovateConfig,\n baseConfig,\n ignorePresets,\n existingPresets,\n );\n config[key] = presetConfig as never; // type can't be narrowed\n\n for (const mergedPreset of visited.merged) {\n allVisitedPresets.merged.add(mergedPreset);\n }\n }\n }\n logger.trace({ config: inputConfig }, 'Input config');\n logger.trace(\n { config, visitedPresets: allVisitedPresets },\n 'Resolved config',\n );\n\n return {\n config,\n visitedPresets: {\n merged: Array.from(allVisitedPresets.merged),\n },\n };\n}\n\nasync function fetchPreset(\n preset: string,\n baseConfig: RenovateConfig | undefined,\n inputConfig: AllConfig,\n existingPresets: string[],\n): Promise<AllConfig> {\n try {\n return await getPreset(preset, baseConfig ?? inputConfig);\n } catch (err) {\n logger.debug({ preset, err }, 'Preset fetch error');\n if (err instanceof ExternalHostError) {\n throw err;\n }\n if (err.message === PLATFORM_RATE_LIMIT_EXCEEDED) {\n throw err;\n }\n const error = new Error(CONFIG_VALIDATION);\n if (err.message === PRESET_DEP_NOT_FOUND) {\n error.validationError = `Cannot find preset's package (${preset})`;\n } else if (err.message === PRESET_RENOVATE_CONFIG_NOT_FOUND) {\n error.validationError = `Preset package is missing a renovate-config entry (${preset})`;\n } else if (err.message === PRESET_NOT_FOUND) {\n error.validationError = `Preset name not found within published preset config (${preset})`;\n } else if (err.message === PRESET_INVALID) {\n error.validationError = `Preset is invalid (${preset})`;\n } else if (err.message === PRESET_PROHIBITED_SUBPRESET) {\n error.validationError = `Sub-presets cannot be combined with a custom path (${preset})`;\n } else if (err.message === PRESET_INVALID_JSON) {\n error.validationError = `Preset is invalid JSON (${preset})`;\n } else {\n error.validationError = `Preset caused unexpected error (${preset})`;\n }\n if (existingPresets.length) {\n error.validationError +=\n '. Note: this is a *nested* preset so please contact the preset author if you are unable to fix it yourself.';\n }\n logger.info(\n { validationError: error.validationError },\n 'Throwing preset error',\n );\n throw error;\n }\n}\n\nfunction shouldResolvePreset(\n preset: string,\n existingPresets: string[],\n ignorePresets: string[],\n): boolean {\n if (existingPresets.includes(preset)) {\n logger.debug(\n `Already seen preset ${preset} in [${existingPresets.join(', ')}]`,\n );\n return false;\n }\n if (ignorePresets.includes(preset)) {\n logger.debug(\n `Ignoring preset ${preset} in [${existingPresets.join(', ')}]`,\n );\n return false;\n }\n return true;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["regEx","removedPresets","parsePreset","GlobalConfig","PRESET_DEP_NOT_FOUND","clone","mergeChildConfig","ExternalHostError","PLATFORM_RATE_LIMIT_EXCEEDED","CONFIG_VALIDATION","PRESET_RENOVATE_CONFIG_NOT_FOUND","PRESET_NOT_FOUND","PRESET_INVALID","PRESET_PROHIBITED_SUBPRESET","PRESET_INVALID_JSON"],"sources":["../../../lib/config/presets/index.ts"],"sourcesContent":["import {\n isArray,\n isNullOrUndefined,\n isObject,\n isString,\n} from '@sindresorhus/is';\nimport {\n CONFIG_VALIDATION,\n PLATFORM_RATE_LIMIT_EXCEEDED,\n} from '../../constants/error-messages.ts';\nimport { logger } from '../../logger/index.ts';\nimport { ExternalHostError } from '../../types/errors/external-host-error.ts';\nimport * as memCache from '../../util/cache/memory/index.ts';\nimport * as packageCache from '../../util/cache/package/index.ts';\nimport { clone } from '../../util/clone.ts';\nimport { regEx } from '../../util/regex.ts';\nimport * as template from '../../util/template/index.ts';\nimport { GlobalConfig } from '../global.ts';\nimport * as massage from '../massage.ts';\nimport * as migration from '../migration.ts';\nimport type { AllConfig, RenovateConfig } from '../types.ts';\nimport { mergeChildConfig } from '../utils.ts';\nimport { removedPresets } from './common.ts';\nimport * as forgejo from './forgejo/index.ts';\nimport * as gitea from './gitea/index.ts';\nimport * as github from './github/index.ts';\nimport * as gitlab from './gitlab/index.ts';\nimport * as http from './http/index.ts';\nimport * as internal from './internal/index.ts';\nimport * as local from './local/index.ts';\nimport * as npm from './npm/index.ts';\nimport { parsePreset } from './parse.ts';\nimport type { Preset, PresetApi } from './types.ts';\nimport {\n PRESET_DEP_NOT_FOUND,\n PRESET_INVALID,\n PRESET_INVALID_JSON,\n PRESET_NOT_FOUND,\n PRESET_PROHIBITED_SUBPRESET,\n PRESET_RENOVATE_CONFIG_NOT_FOUND,\n} from './util.ts';\n\nconst presetSources: Record<string, PresetApi> = {\n forgejo,\n gitea,\n github,\n gitlab,\n http,\n internal,\n local,\n npm,\n};\n\nconst presetCacheNamespace = 'preset';\n\nexport function replaceArgs(\n obj: string,\n argMapping: Record<string, any>,\n): string;\nexport function replaceArgs(\n obj: string[],\n argMapping: Record<string, any>,\n): string[];\nexport function replaceArgs(\n obj: Record<string, any>,\n argMapping: Record<string, any>,\n): Record<string, any>;\nexport function replaceArgs(\n obj: Record<string, any>[],\n argMapping: Record<string, any>,\n): Record<string, any>[];\n\n/**\n * TODO: fix me #22198\n * @param obj\n * @param argMapping\n */\nexport function replaceArgs(obj: any, argMapping: Record<string, any>): any;\nexport function replaceArgs(\n obj: string | string[] | Record<string, any> | Record<string, any>[],\n argMapping: Record<string, any>,\n): any {\n if (isString(obj)) {\n let returnStr = obj;\n for (const [arg, argVal] of Object.entries(argMapping)) {\n const re = regEx(`{{${arg}}}`, 'g', false);\n returnStr = returnStr.replace(re, argVal);\n }\n return returnStr;\n }\n if (isArray(obj)) {\n const returnArray = [];\n for (const item of obj) {\n returnArray.push(replaceArgs(item, argMapping));\n }\n return returnArray;\n }\n if (isObject(obj)) {\n const returnObj: Record<string, any> = {};\n for (const [key, val] of Object.entries(obj)) {\n returnObj[key] = replaceArgs(val, argMapping);\n }\n return returnObj;\n }\n return obj;\n}\n\nexport async function getPreset(\n preset: string,\n baseConfig?: RenovateConfig,\n): Promise<RenovateConfig> {\n logger.trace(`getPreset(${preset})`);\n // Check if the preset has been removed or replaced\n const newPreset = removedPresets[preset];\n if (newPreset) {\n return getPreset(newPreset, baseConfig);\n }\n if (newPreset === null) {\n return {};\n }\n const { presetSource, repo, presetPath, presetName, tag, params, rawParams } =\n parsePreset(preset);\n const cacheKey = `preset:${preset}`;\n const presetCachePersistence = GlobalConfig.get(\n 'presetCachePersistence',\n false,\n );\n\n let presetConfig: Preset | null | undefined;\n\n if (presetCachePersistence) {\n presetConfig = await packageCache.get(presetCacheNamespace, cacheKey);\n } else {\n presetConfig = memCache.get(cacheKey);\n }\n\n if (isNullOrUndefined(presetConfig)) {\n presetConfig = await presetSources[presetSource].getPreset({\n repo,\n presetPath,\n presetName,\n tag,\n });\n if (presetCachePersistence) {\n await packageCache.set(presetCacheNamespace, cacheKey, presetConfig, 15);\n } else {\n memCache.set(cacheKey, presetConfig);\n }\n }\n if (!presetConfig) {\n throw new Error(PRESET_DEP_NOT_FOUND);\n }\n logger.trace({ presetConfig }, `Found preset ${preset}`);\n if (params) {\n const argMapping: Record<string, string> = {};\n for (const [index, value] of params.entries()) {\n argMapping[`arg${index}`] = value;\n }\n if (rawParams) {\n argMapping.args = rawParams;\n }\n presetConfig = replaceArgs(presetConfig, argMapping);\n }\n logger.trace({ presetConfig }, `Applied params to preset ${preset}`);\n const presetKeys = Object.keys(presetConfig);\n if (\n presetKeys.length === 2 &&\n presetKeys.includes('description') &&\n presetKeys.includes('extends')\n ) {\n // preset is just a collection of other presets\n delete presetConfig.description;\n }\n const packageListKeys = ['description', 'matchPackageNames'];\n if (presetKeys.every((key) => packageListKeys.includes(key))) {\n delete presetConfig.description;\n }\n const { migratedConfig } = migration.migrateConfig(presetConfig);\n return massage.massageConfig(migratedConfig);\n}\n\nexport interface ResolveConfigPresetsResult {\n config: AllConfig;\n /** when resolving the given configuration, which internal/shared presets were discovered */\n visitedPresets: {\n /** which internal/shared presets were merged into the final config */\n merged: string[];\n };\n}\n\nexport async function resolveConfigPresets(\n inputConfig: AllConfig,\n baseConfig?: RenovateConfig,\n _ignorePresets?: string[],\n existingPresets: string[] = [],\n): Promise<ResolveConfigPresetsResult> {\n const allVisitedPresets = {\n merged: new Set<string>(),\n };\n\n let ignorePresets = clone(_ignorePresets);\n if (!ignorePresets || ignorePresets.length === 0) {\n ignorePresets = inputConfig.ignorePresets ?? [];\n }\n logger.trace(\n { config: inputConfig, existingPresets },\n 'resolveConfigPresets',\n );\n let config: AllConfig = {};\n // First, merge all the preset configs from left to right\n if (inputConfig.extends?.length) {\n // Compile templates\n inputConfig.extends = inputConfig.extends.map((tmpl) =>\n template.compile(tmpl, {}),\n );\n for (const preset of inputConfig.extends) {\n if (shouldResolvePreset(preset, existingPresets, ignorePresets)) {\n logger.trace(`Resolving preset \"${preset}\"`);\n const fetchedPreset = await fetchPreset(\n preset,\n baseConfig,\n inputConfig,\n existingPresets,\n );\n const { config: presetConfig, visitedPresets } =\n await resolveConfigPresets(\n fetchedPreset,\n baseConfig ?? inputConfig,\n ignorePresets,\n existingPresets.concat([preset]),\n );\n if (inputConfig?.ignoreDeps?.length === 0) {\n delete presetConfig.description;\n }\n config = mergeChildConfig(config, presetConfig);\n allVisitedPresets.merged.add(preset);\n // then also make sure we've noted any nested presets we've merged\n for (const mergedPreset of visitedPresets.merged) {\n allVisitedPresets.merged.add(mergedPreset);\n }\n }\n }\n }\n logger.trace({ config }, `Post-preset resolve config`);\n // Now assign \"regular\" config on top\n config = mergeChildConfig(config, inputConfig);\n delete config.extends;\n delete config.ignorePresets;\n logger.trace({ config }, `Post-merge resolve config`);\n for (const [key, val] of Object.entries(config) as [\n keyof AllConfig,\n unknown,\n ][]) {\n const ignoredKeys = ['content', 'onboardingConfig'];\n if (isArray(val)) {\n // Resolve nested objects inside arrays\n config[key] = [] as never; // type can't be narrowed\n for (const element of val) {\n if (isObject(element)) {\n const { config: presetConfig, visitedPresets: visited } =\n await resolveConfigPresets(\n element as RenovateConfig,\n baseConfig,\n ignorePresets,\n existingPresets,\n );\n (config[key] as RenovateConfig[]).push(presetConfig);\n\n for (const mergedPreset of visited.merged) {\n allVisitedPresets.merged.add(mergedPreset);\n }\n } else {\n (config[key] as unknown[]).push(element);\n }\n }\n } else if (isObject(val) && !ignoredKeys.includes(key)) {\n // Resolve nested objects\n logger.trace(`Resolving object \"${key}\"`);\n const { config: presetConfig, visitedPresets: visited } =\n await resolveConfigPresets(\n val as RenovateConfig,\n baseConfig,\n ignorePresets,\n existingPresets,\n );\n config[key] = presetConfig as never; // type can't be narrowed\n\n for (const mergedPreset of visited.merged) {\n allVisitedPresets.merged.add(mergedPreset);\n }\n }\n }\n logger.trace({ config: inputConfig }, 'Input config');\n logger.trace(\n { config, visitedPresets: allVisitedPresets },\n 'Resolved config',\n );\n\n return {\n config,\n visitedPresets: {\n merged: Array.from(allVisitedPresets.merged),\n },\n };\n}\n\nasync function fetchPreset(\n preset: string,\n baseConfig: RenovateConfig | undefined,\n inputConfig: AllConfig,\n existingPresets: string[],\n): Promise<AllConfig> {\n try {\n return await getPreset(preset, baseConfig ?? inputConfig);\n } catch (err) {\n logger.debug({ preset, err }, 'Preset fetch error');\n if (err instanceof ExternalHostError) {\n throw err;\n }\n if (err.message === PLATFORM_RATE_LIMIT_EXCEEDED) {\n throw err;\n }\n const error = new Error(CONFIG_VALIDATION);\n if (err.message === PRESET_DEP_NOT_FOUND) {\n error.validationError = `Cannot find preset's package (${preset})`;\n } else if (err.message === PRESET_RENOVATE_CONFIG_NOT_FOUND) {\n error.validationError = `Preset package is missing a renovate-config entry (${preset})`;\n } else if (err.message === PRESET_NOT_FOUND) {\n error.validationError = `Preset name not found within published preset config (${preset})`;\n } else if (err.message === PRESET_INVALID) {\n error.validationError = `Preset is invalid (${preset})`;\n } else if (err.message === PRESET_PROHIBITED_SUBPRESET) {\n error.validationError = `Sub-presets cannot be combined with a custom path (${preset})`;\n } else if (err.message === PRESET_INVALID_JSON) {\n error.validationError = `Preset is invalid JSON (${preset})`;\n } else {\n error.validationError = `Preset caused unexpected error (${preset})`;\n }\n if (existingPresets.length) {\n error.validationError +=\n '. Note: this is a *nested* preset so please contact the preset author if you are unable to fix it yourself.';\n }\n logger.info(\n { validationError: error.validationError },\n 'Throwing preset error',\n );\n throw error;\n }\n}\n\nfunction shouldResolvePreset(\n preset: string,\n existingPresets: string[],\n ignorePresets: string[],\n): boolean {\n if (existingPresets.includes(preset)) {\n logger.debug(\n `Already seen preset ${preset} in [${existingPresets.join(', ')}]`,\n );\n return false;\n }\n if (ignorePresets.includes(preset)) {\n logger.debug(\n `Ignoring preset ${preset} in [${existingPresets.join(', ')}]`,\n );\n return false;\n }\n return true;\n}\n"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ //#region lib/config/utils.d.ts
2
+ declare function mergeChildConfig<T extends Record<string, any>, TChild extends Record<string, any> | undefined>(parent: T, child: TChild): T & TChild;
3
+ //#endregion
4
+ export { mergeChildConfig };
5
+ //# sourceMappingURL=utils.d.ts.map
@@ -1,6 +1,6 @@
1
1
  const require_logger_index = require('../logger/index.js');
2
2
  const require_clone = require('../util/clone.js');
3
- const require_index = require('./options/index.js');
3
+ const require_config_options_index = require('./options/index.js');
4
4
  const require_utils = require('../util/vulnerability/utils.js');
5
5
 
6
6
  //#region lib/config/utils.ts
@@ -18,7 +18,7 @@ function mergeChildConfig(parent, child) {
18
18
  ...childConfig
19
19
  };
20
20
  if (config?.isVulnerabilityAlert) config.vulnerabilitySeverity = require_utils.getHighestVulnerabilitySeverity(parent, child);
21
- for (const option of require_index.getOptions()) if (option.mergeable && childConfig[option.name] && parentConfig[option.name]) {
21
+ for (const option of require_config_options_index.getOptions()) if (option.mergeable && childConfig[option.name] && parentConfig[option.name]) {
22
22
  require_logger_index.logger.trace(`mergeable option: ${option.name}`);
23
23
  if (option.name === "constraints") config[option.name] = {
24
24
  ...parentConfig[option.name],
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["clone","getHighestVulnerabilitySeverity"],"sources":["../../lib/config/utils.ts"],"sourcesContent":["import { logger } from '../logger/index.ts';\nimport { clone } from '../util/clone.ts';\nimport { getHighestVulnerabilitySeverity } from '../util/vulnerability/utils.ts';\nimport * as options from './options/index.ts';\nimport type { RenovateConfig } from './types.ts';\n\nexport function mergeChildConfig<\n T extends Record<string, any>,\n TChild extends Record<string, any> | undefined,\n>(parent: T, child: TChild): T & TChild {\n logger.trace({ parent, child }, `mergeChildConfig`);\n if (!child) {\n return parent as never;\n }\n const parentConfig = clone(parent);\n const childConfig = clone(child);\n const config: Record<string, any> = { ...parentConfig, ...childConfig };\n\n // Ensure highest severity survives parent / child merge\n if (config?.isVulnerabilityAlert) {\n config.vulnerabilitySeverity = getHighestVulnerabilitySeverity(\n parent,\n child,\n );\n }\n\n for (const option of options.getOptions()) {\n if (\n option.mergeable &&\n childConfig[option.name] &&\n parentConfig[option.name]\n ) {\n logger.trace(`mergeable option: ${option.name}`);\n\n if (option.name === 'constraints') {\n config[option.name] = {\n ...parentConfig[option.name],\n ...childConfig[option.name],\n };\n } else if (option.type === 'array') {\n config[option.name] = (parentConfig[option.name] as unknown[]).concat(\n config[option.name],\n );\n } else {\n config[option.name] = mergeChildConfig(\n parentConfig[option.name] as RenovateConfig,\n childConfig[option.name] as RenovateConfig,\n );\n }\n logger.trace(\n { result: config[option.name] },\n `Merged config.${option.name}`,\n );\n }\n }\n return { ...config, ...config.force };\n}\n"],"mappings":";;;;;;kCAA4C;AAM5C,SAAgB,iBAGd,QAAW,OAA2B;AACtC,6BAAO,MAAM;EAAE;EAAQ;EAAO,EAAE,mBAAmB;AACnD,KAAI,CAAC,MACH,QAAO;CAET,MAAM,eAAeA,oBAAM,OAAO;CAClC,MAAM,cAAcA,oBAAM,MAAM;CAChC,MAAM,SAA8B;EAAE,GAAG;EAAc,GAAG;EAAa;AAGvE,KAAI,QAAQ,qBACV,QAAO,wBAAwBC,8CAC7B,QACA,MACD;AAGH,MAAK,MAAM,oCAA8B,CACvC,KACE,OAAO,aACP,YAAY,OAAO,SACnB,aAAa,OAAO,OACpB;AACA,8BAAO,MAAM,qBAAqB,OAAO,OAAO;AAEhD,MAAI,OAAO,SAAS,cAClB,QAAO,OAAO,QAAQ;GACpB,GAAG,aAAa,OAAO;GACvB,GAAG,YAAY,OAAO;GACvB;WACQ,OAAO,SAAS,QACzB,QAAO,OAAO,QAAS,aAAa,OAAO,MAAoB,OAC7D,OAAO,OAAO,MACf;MAED,QAAO,OAAO,QAAQ,iBACpB,aAAa,OAAO,OACpB,YAAY,OAAO,MACpB;AAEH,8BAAO,MACL,EAAE,QAAQ,OAAO,OAAO,OAAO,EAC/B,iBAAiB,OAAO,OACzB;;AAGL,QAAO;EAAE,GAAG;EAAQ,GAAG,OAAO;EAAO"}
1
+ {"version":3,"file":"utils.js","names":["clone","getHighestVulnerabilitySeverity"],"sources":["../../lib/config/utils.ts"],"sourcesContent":["import { logger } from '../logger/index.ts';\nimport { clone } from '../util/clone.ts';\nimport { getHighestVulnerabilitySeverity } from '../util/vulnerability/utils.ts';\nimport * as options from './options/index.ts';\nimport type { RenovateConfig } from './types.ts';\n\nexport function mergeChildConfig<\n T extends Record<string, any>,\n TChild extends Record<string, any> | undefined,\n>(parent: T, child: TChild): T & TChild {\n logger.trace({ parent, child }, `mergeChildConfig`);\n if (!child) {\n return parent as never;\n }\n const parentConfig = clone(parent);\n const childConfig = clone(child);\n const config: Record<string, any> = { ...parentConfig, ...childConfig };\n\n // Ensure highest severity survives parent / child merge\n if (config?.isVulnerabilityAlert) {\n config.vulnerabilitySeverity = getHighestVulnerabilitySeverity(\n parent,\n child,\n );\n }\n\n for (const option of options.getOptions()) {\n if (\n option.mergeable &&\n childConfig[option.name] &&\n parentConfig[option.name]\n ) {\n logger.trace(`mergeable option: ${option.name}`);\n\n if (option.name === 'constraints') {\n config[option.name] = {\n ...parentConfig[option.name],\n ...childConfig[option.name],\n };\n } else if (option.type === 'array') {\n config[option.name] = (parentConfig[option.name] as unknown[]).concat(\n config[option.name],\n );\n } else {\n config[option.name] = mergeChildConfig(\n parentConfig[option.name] as RenovateConfig,\n childConfig[option.name] as RenovateConfig,\n );\n }\n logger.trace(\n { result: config[option.name] },\n `Merged config.${option.name}`,\n );\n }\n }\n return { ...config, ...config.force };\n}\n"],"mappings":";;;;;;kCAA4C;AAM5C,SAAgB,iBAGd,QAAW,OAA2B;AACtC,6BAAO,MAAM;EAAE;EAAQ;EAAO,EAAE,mBAAmB;AACnD,KAAI,CAAC,MACH,QAAO;CAET,MAAM,eAAeA,oBAAM,OAAO;CAClC,MAAM,cAAcA,oBAAM,MAAM;CAChC,MAAM,SAA8B;EAAE,GAAG;EAAc,GAAG;EAAa;AAGvE,KAAI,QAAQ,qBACV,QAAO,wBAAwBC,8CAC7B,QACA,MACD;AAGH,MAAK,MAAM,mDAA8B,CACvC,KACE,OAAO,aACP,YAAY,OAAO,SACnB,aAAa,OAAO,OACpB;AACA,8BAAO,MAAM,qBAAqB,OAAO,OAAO;AAEhD,MAAI,OAAO,SAAS,cAClB,QAAO,OAAO,QAAQ;GACpB,GAAG,aAAa,OAAO;GACvB,GAAG,YAAY,OAAO;GACvB;WACQ,OAAO,SAAS,QACzB,QAAO,OAAO,QAAS,aAAa,OAAO,MAAoB,OAC7D,OAAO,OAAO,MACf;MAED,QAAO,OAAO,QAAQ,iBACpB,aAAa,OAAO,OACpB,YAAY,OAAO,MACpB;AAEH,8BAAO,MACL,EAAE,QAAQ,OAAO,OAAO,OAAO,EAC/B,iBAAiB,OAAO,OACzB;;AAGL,QAAO;EAAE,GAAG;EAAQ,GAAG,OAAO;EAAO"}
@@ -10,10 +10,10 @@ const require_jsonata = require('../util/jsonata.js');
10
10
  const require_modules_manager_index = require('../modules/manager/index.js');
11
11
  const require_merge_confidence = require('./presets/internal/merge-confidence.js');
12
12
  const require_config_types = require('./types.js');
13
- const require_index$2 = require('./options/index.js');
13
+ const require_config_options_index = require('./options/index.js');
14
14
  const require_migration = require('./migration.js');
15
15
  const require_schedule = require('../workers/repository/update/branch/schedule.js');
16
- const require_index$3 = require('./presets/index.js');
16
+ const require_index$2 = require('./presets/index.js');
17
17
  const require_match_base_branches = require('./validation-helpers/match-base-branches.js');
18
18
  const require_regex_glob_matchers = require('./validation-helpers/regex-glob-matchers.js');
19
19
  const require_utils = require('./validation-helpers/utils.js');
@@ -24,7 +24,7 @@ _sindresorhus_is = require_rolldown_runtime.__toESM(_sindresorhus_is);
24
24
  require_regex.init_regex();
25
25
  require_util_string_match.init_string_match();
26
26
  require_util_url.init_url();
27
- const options = require_index$2.getOptions();
27
+ const options = require_config_options_index.getOptions();
28
28
  let optionsInitialized = false;
29
29
  let optionTypes;
30
30
  let optionParents;
@@ -250,7 +250,7 @@ async function validateConfig(configType, config, isPreset, parentPath) {
250
250
  "matchJsonata"
251
251
  ];
252
252
  if (key === "packageRules") for (const [subIndex, packageRule] of val.entries()) if ((0, _sindresorhus_is.isObject)(packageRule)) {
253
- const { config: resolved } = await require_index$3.resolveConfigPresets(packageRule, config);
253
+ const { config: resolved } = await require_index$2.resolveConfigPresets(packageRule, config);
254
254
  const resolvedRule = require_migration.migrateConfig({ packageRules: [resolved] }).migratedConfig.packageRules[0];
255
255
  warnings.push(...require_match_base_branches.check({
256
256
  resolvedRule,