renovate 39.189.0 → 39.190.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/dist/config/decrypt.js +1 -1
  2. package/dist/config/decrypt.js.map +1 -1
  3. package/dist/config/migrate-validate.js +2 -2
  4. package/dist/config/migrate-validate.js.map +1 -1
  5. package/dist/config/migration.js +1 -1
  6. package/dist/config/migration.js.map +1 -1
  7. package/dist/config/validation.js +2 -2
  8. package/dist/config/validation.js.map +1 -1
  9. package/dist/instrumentation/index.js +2 -2
  10. package/dist/instrumentation/index.js.map +1 -1
  11. package/dist/logger/once.js +2 -2
  12. package/dist/logger/once.js.map +1 -1
  13. package/dist/logger/renovate-logger.js +1 -1
  14. package/dist/logger/renovate-logger.js.map +1 -1
  15. package/dist/logger/utils.js +1 -1
  16. package/dist/logger/utils.js.map +1 -1
  17. package/dist/modules/datasource/artifactory/index.js +0 -1
  18. package/dist/modules/datasource/artifactory/index.js.map +1 -1
  19. package/dist/modules/datasource/aws-machine-image/index.js +6 -5
  20. package/dist/modules/datasource/aws-machine-image/index.js.map +1 -1
  21. package/dist/modules/datasource/bazel/index.js +0 -1
  22. package/dist/modules/datasource/bazel/index.js.map +1 -1
  23. package/dist/modules/datasource/bitrise/index.js +1 -1
  24. package/dist/modules/datasource/bitrise/index.js.map +1 -1
  25. package/dist/modules/datasource/conda/index.js +0 -1
  26. package/dist/modules/datasource/conda/index.js.map +1 -1
  27. package/dist/modules/datasource/cpan/index.js +1 -1
  28. package/dist/modules/datasource/cpan/index.js.map +1 -1
  29. package/dist/modules/datasource/crate/index.js +2 -2
  30. package/dist/modules/datasource/crate/index.js.map +1 -1
  31. package/dist/modules/datasource/dart/index.js +1 -1
  32. package/dist/modules/datasource/dart/index.js.map +1 -1
  33. package/dist/modules/datasource/dart-version/index.js +1 -1
  34. package/dist/modules/datasource/dart-version/index.js.map +1 -1
  35. package/dist/modules/datasource/datasource.js +0 -1
  36. package/dist/modules/datasource/datasource.js.map +1 -1
  37. package/dist/modules/datasource/deb/index.js +1 -1
  38. package/dist/modules/datasource/deb/index.js.map +1 -1
  39. package/dist/modules/datasource/deno/index.js +1 -1
  40. package/dist/modules/datasource/deno/index.js.map +1 -1
  41. package/dist/modules/datasource/devbox/index.js +0 -1
  42. package/dist/modules/datasource/devbox/index.js.map +1 -1
  43. package/dist/modules/datasource/docker/common.js +1 -1
  44. package/dist/modules/datasource/docker/common.js.map +1 -1
  45. package/dist/modules/datasource/docker/index.js +5 -5
  46. package/dist/modules/datasource/docker/index.js.map +1 -1
  47. package/dist/modules/datasource/docker/schema.js +2 -1
  48. package/dist/modules/datasource/docker/schema.js.map +1 -1
  49. package/dist/modules/datasource/flutter-version/index.js +1 -1
  50. package/dist/modules/datasource/flutter-version/index.js.map +1 -1
  51. package/dist/modules/datasource/git-refs/index.js +1 -1
  52. package/dist/modules/datasource/git-refs/index.js.map +1 -1
  53. package/dist/modules/datasource/gitlab-packages/index.js +1 -1
  54. package/dist/modules/datasource/gitlab-packages/index.js.map +1 -1
  55. package/dist/modules/datasource/gitlab-releases/index.js +1 -3
  56. package/dist/modules/datasource/gitlab-releases/index.js.map +1 -1
  57. package/dist/modules/datasource/go/index.js +1 -1
  58. package/dist/modules/datasource/go/index.js.map +1 -1
  59. package/dist/modules/datasource/go/releases-direct.js +2 -2
  60. package/dist/modules/datasource/go/releases-direct.js.map +1 -1
  61. package/dist/modules/datasource/golang-version/index.js +1 -1
  62. package/dist/modules/datasource/golang-version/index.js.map +1 -1
  63. package/dist/modules/datasource/gradle-version/index.js +1 -1
  64. package/dist/modules/datasource/gradle-version/index.js.map +1 -1
  65. package/dist/modules/datasource/helm/index.js +1 -1
  66. package/dist/modules/datasource/helm/index.js.map +1 -1
  67. package/dist/modules/datasource/hex/index.js +1 -1
  68. package/dist/modules/datasource/hex/index.js.map +1 -1
  69. package/dist/modules/datasource/java-version/index.js +0 -1
  70. package/dist/modules/datasource/java-version/index.js.map +1 -1
  71. package/dist/modules/datasource/jenkins-plugins/index.js +1 -1
  72. package/dist/modules/datasource/jenkins-plugins/index.js.map +1 -1
  73. package/dist/modules/datasource/maven/index.js +3 -3
  74. package/dist/modules/datasource/maven/index.js.map +1 -1
  75. package/dist/modules/datasource/maven/util.js +2 -2
  76. package/dist/modules/datasource/maven/util.js.map +1 -1
  77. package/dist/modules/datasource/node-version/index.js +1 -1
  78. package/dist/modules/datasource/node-version/index.js.map +1 -1
  79. package/dist/modules/datasource/npm/index.js +1 -1
  80. package/dist/modules/datasource/npm/index.js.map +1 -1
  81. package/dist/modules/datasource/npm/npmrc.js +1 -1
  82. package/dist/modules/datasource/npm/npmrc.js.map +1 -1
  83. package/dist/modules/datasource/nuget/index.js +1 -1
  84. package/dist/modules/datasource/nuget/index.js.map +1 -1
  85. package/dist/modules/datasource/nuget/v3.js +1 -3
  86. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  87. package/dist/modules/datasource/orb/index.js +1 -1
  88. package/dist/modules/datasource/orb/index.js.map +1 -1
  89. package/dist/modules/datasource/packagist/index.js +1 -1
  90. package/dist/modules/datasource/packagist/index.js.map +1 -1
  91. package/dist/modules/datasource/pod/index.js +1 -1
  92. package/dist/modules/datasource/pod/index.js.map +1 -1
  93. package/dist/modules/datasource/python-version/index.js +1 -1
  94. package/dist/modules/datasource/python-version/index.js.map +1 -1
  95. package/dist/modules/datasource/repology/index.js +1 -1
  96. package/dist/modules/datasource/repology/index.js.map +1 -1
  97. package/dist/modules/datasource/rubygems/index.js +1 -1
  98. package/dist/modules/datasource/rubygems/index.js.map +1 -1
  99. package/dist/modules/datasource/sbt-package/index.js +1 -1
  100. package/dist/modules/datasource/sbt-package/index.js.map +1 -1
  101. package/dist/modules/datasource/sbt-plugin/index.js +1 -1
  102. package/dist/modules/datasource/sbt-plugin/index.js.map +1 -1
  103. package/dist/modules/datasource/terraform-module/index.js +1 -1
  104. package/dist/modules/datasource/terraform-module/index.js.map +1 -1
  105. package/dist/modules/datasource/terraform-provider/index.js +1 -2
  106. package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
  107. package/dist/modules/manager/api.js +2 -0
  108. package/dist/modules/manager/api.js.map +1 -1
  109. package/dist/modules/manager/fingerprint.generated.js +2 -1
  110. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  111. package/dist/modules/manager/gomod/update.js +2 -2
  112. package/dist/modules/manager/gomod/update.js.map +1 -1
  113. package/dist/modules/manager/helmv3/utils.js +3 -1
  114. package/dist/modules/manager/helmv3/utils.js.map +1 -1
  115. package/dist/modules/manager/homebrew/extract.js +0 -1
  116. package/dist/modules/manager/homebrew/extract.js.map +1 -1
  117. package/dist/modules/manager/pep621/schema.d.ts +5 -0
  118. package/dist/modules/manager/pep621/schema.js +2 -0
  119. package/dist/modules/manager/pep621/schema.js.map +1 -1
  120. package/dist/modules/manager/pixi/artifacts.d.ts +3 -0
  121. package/dist/modules/manager/pixi/artifacts.js +85 -0
  122. package/dist/modules/manager/pixi/artifacts.js.map +1 -0
  123. package/dist/modules/manager/pixi/extract.d.ts +2 -0
  124. package/dist/modules/manager/pixi/extract.js +53 -0
  125. package/dist/modules/manager/pixi/extract.js.map +1 -0
  126. package/dist/modules/manager/pixi/index.d.ts +11 -0
  127. package/dist/modules/manager/pixi/index.js +22 -0
  128. package/dist/modules/manager/pixi/index.js.map +1 -0
  129. package/dist/modules/manager/pixi/lockfile.d.ts +6 -0
  130. package/dist/modules/manager/pixi/lockfile.js +25 -0
  131. package/dist/modules/manager/pixi/lockfile.js.map +1 -0
  132. package/dist/modules/manager/pixi/schema.d.ts +14 -0
  133. package/dist/modules/manager/pixi/schema.js +14 -0
  134. package/dist/modules/manager/pixi/schema.js.map +1 -0
  135. package/dist/modules/platform/index.js +0 -1
  136. package/dist/modules/platform/index.js.map +1 -1
  137. package/dist/proxy.js +1 -1
  138. package/dist/proxy.js.map +1 -1
  139. package/dist/renovate.js +2 -2
  140. package/dist/renovate.js.map +1 -1
  141. package/dist/util/exec/containerbase.js +5 -0
  142. package/dist/util/exec/containerbase.js.map +1 -1
  143. package/dist/util/http/bitbucket.js +1 -1
  144. package/dist/util/http/bitbucket.js.map +1 -1
  145. package/dist/util/http/cache/abstract-http-cache-provider.js +1 -1
  146. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  147. package/dist/workers/global/config/parse/file.js +1 -1
  148. package/dist/workers/global/config/parse/file.js.map +1 -1
  149. package/dist/workers/repository/process/extract-update.js +0 -1
  150. package/dist/workers/repository/process/extract-update.js.map +1 -1
  151. package/dist/workers/repository/updates/flatten.js +0 -1
  152. package/dist/workers/repository/updates/flatten.js.map +1 -1
  153. package/dist/workers/repository/updates/generate.js +0 -1
  154. package/dist/workers/repository/updates/generate.js.map +1 -1
  155. package/package.json +1 -1
  156. package/renovate-schema.json +11 -0
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pickConfig = pickConfig;
4
+ /**
5
+ * There is no way to know which version we should pick based on `pixi.toml` and `pixi.lock`
6
+ * so we need to maintain a mapping from pixi version and it's generated lock file version.
7
+ *
8
+ * it should support lock version < 6 but old version of pixi doesn't release the binary we need, so just skip them and support only lock file version >=6
9
+ *
10
+ */
11
+ const pixiGenerateLockFileVersion = [
12
+ { lockVersion: 6, range: '>=0.39.2, <0.43.0' },
13
+ ];
14
+ function pickConfig(lockVersion) {
15
+ if (!lockVersion) {
16
+ return null;
17
+ }
18
+ for (const pixi of pixiGenerateLockFileVersion) {
19
+ if (lockVersion === pixi.lockVersion) {
20
+ return pixi;
21
+ }
22
+ }
23
+ return null;
24
+ }
25
+ //# sourceMappingURL=lockfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pixi/lockfile.ts"],"names":[],"mappings":";;AAgBA,gCAYC;AA5BD;;;;;;GAMG;AACH,MAAM,2BAA2B,GAAa;IAC5C,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE;CACtC,CAAC;AAOX,SAAgB,UAAU,CAAC,WAAoB;IAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,2BAA2B,EAAE,CAAC;QAC/C,IAAI,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["/**\n * There is no way to know which version we should pick based on `pixi.toml` and `pixi.lock`\n * so we need to maintain a mapping from pixi version and it's generated lock file version.\n *\n * it should support lock version < 6 but old version of pixi doesn't release the binary we need, so just skip them and support only lock file version >=6\n *\n */\nconst pixiGenerateLockFileVersion: Config[] = [\n { lockVersion: 6, range: '>=0.39.2, <0.43.0' },\n] as const;\n\ninterface Config {\n lockVersion: number;\n range: string;\n}\n\nexport function pickConfig(lockVersion?: number): Config | null {\n if (!lockVersion) {\n return null;\n }\n\n for (const pixi of pixiGenerateLockFileVersion) {\n if (lockVersion === pixi.lockVersion) {\n return pixi;\n }\n }\n\n return null;\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * config of `pixi.toml` of `tool.pixi` of `pyproject.toml`
4
+ */
5
+ export declare const PixiConfigSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
6
+ export type PixiConfig = z.infer<typeof PixiConfigSchema>;
7
+ export declare const PixiToml: z.ZodPipeline<z.ZodEffects<z.ZodString, unknown, string>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
8
+ export declare const LockfileYaml: z.ZodPipeline<z.ZodEffects<z.ZodString, string | number | boolean | import("type-fest").JsonObject | import("type-fest").JsonValue[] | readonly import("type-fest").JsonValue[] | null, string>, z.ZodObject<{
9
+ version: z.ZodNumber;
10
+ }, "strip", z.ZodTypeAny, {
11
+ version: number;
12
+ }, {
13
+ version: number;
14
+ }>>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LockfileYaml = exports.PixiToml = exports.PixiConfigSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const schema_utils_1 = require("../../../util/schema-utils");
6
+ /**
7
+ * config of `pixi.toml` of `tool.pixi` of `pyproject.toml`
8
+ */
9
+ exports.PixiConfigSchema = zod_1.z.object({});
10
+ exports.PixiToml = schema_utils_1.Toml.pipe(exports.PixiConfigSchema);
11
+ exports.LockfileYaml = schema_utils_1.Yaml.pipe(zod_1.z.object({
12
+ version: zod_1.z.number(),
13
+ }));
14
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/manager/pixi/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,6DAAwD;AAExD;;GAEG;AACU,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAIhC,QAAA,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,wBAAgB,CAAC,CAAC;AAEvC,QAAA,YAAY,GAAG,mBAAI,CAAC,IAAI,CACnC,OAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CACH,CAAC","sourcesContent":["import { z } from 'zod';\nimport { Toml, Yaml } from '../../../util/schema-utils';\n\n/**\n * config of `pixi.toml` of `tool.pixi` of `pyproject.toml`\n */\nexport const PixiConfigSchema = z.object({});\n\nexport type PixiConfig = z.infer<typeof PixiConfigSchema>;\n\nexport const PixiToml = Toml.pipe(PixiConfigSchema);\n\nexport const LockfileYaml = Yaml.pipe(\n z.object({\n version: z.number(),\n }),\n);\n"]}
@@ -45,7 +45,6 @@ async function initPlatform(config) {
45
45
  ...(config.hostRules ?? []),
46
46
  ],
47
47
  };
48
- // istanbul ignore else
49
48
  if (config?.gitAuthor) {
50
49
  logger_1.logger.debug(`Using configured gitAuthor (${config.gitAuthor})`);
51
50
  returnConfig.gitAuthor = config.gitAuthor;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/modules/platform/index.ts"],"names":[],"mappings":"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","sourcesContent":["import URL from 'node:url';\nimport type { AllConfig } from '../../config/types';\nimport type { PlatformId } from '../../constants';\nimport { PLATFORM_NOT_FOUND } from '../../constants/error-messages';\nimport { logger } from '../../logger';\nimport type { HostRule } from '../../types';\nimport { setGitAuthor, setNoVerify, setPrivateKey } from '../../util/git';\nimport * as hostRules from '../../util/host-rules';\nimport platforms from './api';\nimport { setPlatformScmApi } from './scm';\nimport type { Platform } from './types';\n\nexport type * from './types';\n\nexport const getPlatformList = (): string[] => Array.from(platforms.keys());\n\nlet _platform: Platform | undefined;\n\nconst handler: ProxyHandler<Platform> = {\n get(_target: Platform, prop: keyof Platform) {\n if (!_platform) {\n throw new Error(PLATFORM_NOT_FOUND);\n }\n return _platform[prop];\n },\n};\n\nexport const platform = new Proxy<Platform>({} as any, handler);\n\nexport function setPlatformApi(name: PlatformId): void {\n if (!platforms.has(name)) {\n throw new Error(\n `Init: Platform \"${name}\" not found. Must be one of: ${getPlatformList().join(\n ', ',\n )}`,\n );\n }\n _platform = platforms.get(name);\n setPlatformScmApi(name);\n}\n\nexport async function initPlatform(config: AllConfig): Promise<AllConfig> {\n setPrivateKey(config.gitPrivateKey);\n setNoVerify(config.gitNoVerify ?? []);\n // TODO: `platform` (#22198)\n setPlatformApi(config.platform!);\n // TODO: types\n const platformInfo = await platform.initPlatform(config);\n const returnConfig: any = {\n ...config,\n ...platformInfo,\n hostRules: [\n ...(platformInfo?.hostRules ?? []),\n ...(config.hostRules ?? []),\n ],\n };\n // istanbul ignore else\n if (config?.gitAuthor) {\n logger.debug(`Using configured gitAuthor (${config.gitAuthor})`);\n returnConfig.gitAuthor = config.gitAuthor;\n } else if (platformInfo?.gitAuthor) {\n logger.debug(`Using platform gitAuthor: ${String(platformInfo.gitAuthor)}`);\n returnConfig.gitAuthor = platformInfo.gitAuthor;\n }\n // This is done for validation and will be overridden later once repo config is incorporated\n setGitAuthor(returnConfig.gitAuthor);\n const platformRule: HostRule = {\n // TODO: null check (#22198)\n matchHost: URL.parse(returnConfig.endpoint).hostname!,\n };\n // There might have been platform-specific modifications to the token\n if (returnConfig.token) {\n config.token = returnConfig.token;\n }\n (\n ['token', 'username', 'password'] as ('token' | 'username' | 'password')[]\n ).forEach((field) => {\n if (config[field]) {\n // TODO: types #22198\n platformRule[field] = config[field] as string;\n delete returnConfig[field];\n }\n });\n const typedPlatformRule = {\n ...platformRule,\n hostType: returnConfig.platform,\n };\n returnConfig.hostRules.push(typedPlatformRule);\n hostRules.add(typedPlatformRule);\n return returnConfig;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/modules/platform/index.ts"],"names":[],"mappings":"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","sourcesContent":["import URL from 'node:url';\nimport type { AllConfig } from '../../config/types';\nimport type { PlatformId } from '../../constants';\nimport { PLATFORM_NOT_FOUND } from '../../constants/error-messages';\nimport { logger } from '../../logger';\nimport type { HostRule } from '../../types';\nimport { setGitAuthor, setNoVerify, setPrivateKey } from '../../util/git';\nimport * as hostRules from '../../util/host-rules';\nimport platforms from './api';\nimport { setPlatformScmApi } from './scm';\nimport type { Platform } from './types';\n\nexport type * from './types';\n\nexport const getPlatformList = (): string[] => Array.from(platforms.keys());\n\nlet _platform: Platform | undefined;\n\nconst handler: ProxyHandler<Platform> = {\n get(_target: Platform, prop: keyof Platform) {\n if (!_platform) {\n throw new Error(PLATFORM_NOT_FOUND);\n }\n return _platform[prop];\n },\n};\n\nexport const platform = new Proxy<Platform>({} as any, handler);\n\nexport function setPlatformApi(name: PlatformId): void {\n if (!platforms.has(name)) {\n throw new Error(\n `Init: Platform \"${name}\" not found. Must be one of: ${getPlatformList().join(\n ', ',\n )}`,\n );\n }\n _platform = platforms.get(name);\n setPlatformScmApi(name);\n}\n\nexport async function initPlatform(config: AllConfig): Promise<AllConfig> {\n setPrivateKey(config.gitPrivateKey);\n setNoVerify(config.gitNoVerify ?? []);\n // TODO: `platform` (#22198)\n setPlatformApi(config.platform!);\n // TODO: types\n const platformInfo = await platform.initPlatform(config);\n const returnConfig: any = {\n ...config,\n ...platformInfo,\n hostRules: [\n ...(platformInfo?.hostRules ?? []),\n ...(config.hostRules ?? []),\n ],\n };\n if (config?.gitAuthor) {\n logger.debug(`Using configured gitAuthor (${config.gitAuthor})`);\n returnConfig.gitAuthor = config.gitAuthor;\n } else if (platformInfo?.gitAuthor) {\n logger.debug(`Using platform gitAuthor: ${String(platformInfo.gitAuthor)}`);\n returnConfig.gitAuthor = platformInfo.gitAuthor;\n }\n // This is done for validation and will be overridden later once repo config is incorporated\n setGitAuthor(returnConfig.gitAuthor);\n const platformRule: HostRule = {\n // TODO: null check (#22198)\n matchHost: URL.parse(returnConfig.endpoint).hostname!,\n };\n // There might have been platform-specific modifications to the token\n if (returnConfig.token) {\n config.token = returnConfig.token;\n }\n (\n ['token', 'username', 'password'] as ('token' | 'username' | 'password')[]\n ).forEach((field) => {\n if (config[field]) {\n // TODO: types #22198\n platformRule[field] = config[field] as string;\n delete returnConfig[field];\n }\n });\n const typedPlatformRule = {\n ...platformRule,\n hostType: returnConfig.platform,\n };\n returnConfig.hostRules.push(typedPlatformRule);\n hostRules.add(typedPlatformRule);\n return returnConfig;\n}\n"]}
package/dist/proxy.js CHANGED
@@ -10,7 +10,7 @@ const envVars = ['HTTP_PROXY', 'HTTPS_PROXY', 'NO_PROXY'];
10
10
  let agent = false;
11
11
  function bootstrap() {
12
12
  envVars.forEach((envVar) => {
13
- /* v8 ignore start: env is case-insensitive on windows */
13
+ /* v8 ignore start -- env is case-insensitive on windows */
14
14
  if (typeof process.env[envVar] === 'undefined' &&
15
15
  typeof process.env[envVar.toLowerCase()] !== 'undefined') {
16
16
  process.env[envVar] = process.env[envVar.toLowerCase()];
package/dist/proxy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../lib/proxy.ts"],"names":[],"mappings":";;AAQA,8BA6BC;AAGD,4BAEC;;AA1CD,kEAAkC;AAClC,+CAAsD;AACtD,qCAAkC;AAElC,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;AAE1D,IAAI,KAAK,GAAG,KAAK,CAAC;AAElB,SAAgB,SAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,yDAAyD;QACzD,IACE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,WAAW;YAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,WAAW,EACxD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,oBAAoB;QAEpB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,eAAM,CAAC,KAAK,CAAC,YAAY,MAAM,eAAe,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IACE,YAAE,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QACzC,YAAE,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAC1C,CAAC;QACD,IAAA,qCAAsB,EAAC;YACrB,4BAA4B,EAAE,EAAE;SACjC,CAAC,CAAC;QACH,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;SAAM,CAAC;QACN,gDAAgD;QAChD,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;AACH,CAAC;AAED,uCAAuC;AACvC,SAAgB,QAAQ;IACtB,OAAO,KAAK,KAAK,IAAI,CAAC;AACxB,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { createGlobalProxyAgent } from 'global-agent';\nimport { logger } from './logger';\n\nconst envVars = ['HTTP_PROXY', 'HTTPS_PROXY', 'NO_PROXY'];\n\nlet agent = false;\n\nexport function bootstrap(): void {\n envVars.forEach((envVar) => {\n /* v8 ignore start: env is case-insensitive on windows */\n if (\n typeof process.env[envVar] === 'undefined' &&\n typeof process.env[envVar.toLowerCase()] !== 'undefined'\n ) {\n process.env[envVar] = process.env[envVar.toLowerCase()];\n }\n /* v8 ignore stop */\n\n if (process.env[envVar]) {\n logger.debug(`Detected ${envVar} value in env`);\n process.env[envVar.toLowerCase()] = process.env[envVar];\n }\n });\n\n if (\n is.nonEmptyString(process.env.HTTP_PROXY) ||\n is.nonEmptyString(process.env.HTTPS_PROXY)\n ) {\n createGlobalProxyAgent({\n environmentVariableNamespace: '',\n });\n agent = true;\n } else {\n // for testing only, does not reset global agent\n agent = false;\n }\n}\n\n// will be used by our http layer later\nexport function hasProxy(): boolean {\n return agent === true;\n}\n"]}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../lib/proxy.ts"],"names":[],"mappings":";;AAQA,8BA6BC;AAGD,4BAEC;;AA1CD,kEAAkC;AAClC,+CAAsD;AACtD,qCAAkC;AAElC,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;AAE1D,IAAI,KAAK,GAAG,KAAK,CAAC;AAElB,SAAgB,SAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,2DAA2D;QAC3D,IACE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,WAAW;YAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,WAAW,EACxD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,oBAAoB;QAEpB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,eAAM,CAAC,KAAK,CAAC,YAAY,MAAM,eAAe,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IACE,YAAE,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QACzC,YAAE,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAC1C,CAAC;QACD,IAAA,qCAAsB,EAAC;YACrB,4BAA4B,EAAE,EAAE;SACjC,CAAC,CAAC;QACH,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;SAAM,CAAC;QACN,gDAAgD;QAChD,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;AACH,CAAC;AAED,uCAAuC;AACvC,SAAgB,QAAQ;IACtB,OAAO,KAAK,KAAK,IAAI,CAAC;AACxB,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { createGlobalProxyAgent } from 'global-agent';\nimport { logger } from './logger';\n\nconst envVars = ['HTTP_PROXY', 'HTTPS_PROXY', 'NO_PROXY'];\n\nlet agent = false;\n\nexport function bootstrap(): void {\n envVars.forEach((envVar) => {\n /* v8 ignore start -- env is case-insensitive on windows */\n if (\n typeof process.env[envVar] === 'undefined' &&\n typeof process.env[envVar.toLowerCase()] !== 'undefined'\n ) {\n process.env[envVar] = process.env[envVar.toLowerCase()];\n }\n /* v8 ignore stop */\n\n if (process.env[envVar]) {\n logger.debug(`Detected ${envVar} value in env`);\n process.env[envVar.toLowerCase()] = process.env[envVar];\n }\n });\n\n if (\n is.nonEmptyString(process.env.HTTP_PROXY) ||\n is.nonEmptyString(process.env.HTTPS_PROXY)\n ) {\n createGlobalProxyAgent({\n environmentVariableNamespace: '',\n });\n agent = true;\n } else {\n // for testing only, does not reset global agent\n agent = false;\n }\n}\n\n// will be used by our http layer later\nexport function hasProxy(): boolean {\n return agent === true;\n}\n"]}
package/dist/renovate.js CHANGED
@@ -7,7 +7,7 @@ const instrumentation_1 = require("./instrumentation"); // has to be imported be
7
7
  const logger_1 = require("./logger");
8
8
  const proxy_1 = require("./proxy");
9
9
  const global_1 = require("./workers/global");
10
- /* v8 ignore next 3: not easily testable */
10
+ /* v8 ignore next 3 -- not easily testable */
11
11
  process.on('unhandledRejection', (err) => {
12
12
  logger_1.logger.error({ err }, 'unhandledRejection');
13
13
  });
@@ -16,7 +16,7 @@ process.on('unhandledRejection', (err) => {
16
16
  (async () => {
17
17
  process.exitCode = await (0, instrumentation_1.instrument)('run', () => (0, global_1.start)());
18
18
  await (0, instrumentation_1.shutdown)(); //gracefully shutdown OpenTelemetry
19
- /* v8 ignore next 3: no test required */
19
+ /* v8 ignore next 3 -- no test required */
20
20
  if (process.env.RENOVATE_X_HARD_EXIT) {
21
21
  process.exit(process.exitCode);
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"renovate.js","sourceRoot":"","sources":["../lib/renovate.ts"],"names":[],"mappings":";;;AAEA,uCAAqC;AACrC,0BAAwB;AACxB,uDAA8E,CAAC,kFAAkF;AACjK,qCAAkC;AAClC,mCAAoC;AACpC,6CAAyC;AAEzC,2CAA2C;AAC3C,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE;IACvC,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAS,GAAE,CAAC;AAEZ,mEAAmE;AACnE,CAAC,KAAK,IAAmB,EAAE;IACzB,OAAO,CAAC,QAAQ,GAAG,MAAM,IAAA,4BAAU,EAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAA,cAAK,GAAE,CAAC,CAAC;IAC1D,MAAM,IAAA,0BAAiB,GAAE,CAAC,CAAC,mCAAmC;IAE9D,wCAAwC;IACxC,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAC,EAAE,CAAC","sourcesContent":["#!/usr/bin/env node\n\nimport 'source-map-support/register';\nimport './punycode.cjs';\nimport { instrument, shutdown as telemetryShutdown } from './instrumentation'; // has to be imported before logger and other libraries which are instrumentalised\nimport { logger } from './logger';\nimport { bootstrap } from './proxy';\nimport { start } from './workers/global';\n\n/* v8 ignore next 3: not easily testable */\nprocess.on('unhandledRejection', (err) => {\n logger.error({ err }, 'unhandledRejection');\n});\n\nbootstrap();\n\n// eslint-disable-next-line @typescript-eslint/no-floating-promises\n(async (): Promise<void> => {\n process.exitCode = await instrument('run', () => start());\n await telemetryShutdown(); //gracefully shutdown OpenTelemetry\n\n /* v8 ignore next 3: no test required */\n if (process.env.RENOVATE_X_HARD_EXIT) {\n process.exit(process.exitCode);\n }\n})();\n"]}
1
+ {"version":3,"file":"renovate.js","sourceRoot":"","sources":["../lib/renovate.ts"],"names":[],"mappings":";;;AAEA,uCAAqC;AACrC,0BAAwB;AACxB,uDAA8E,CAAC,kFAAkF;AACjK,qCAAkC;AAClC,mCAAoC;AACpC,6CAAyC;AAEzC,6CAA6C;AAC7C,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE;IACvC,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAS,GAAE,CAAC;AAEZ,mEAAmE;AACnE,CAAC,KAAK,IAAmB,EAAE;IACzB,OAAO,CAAC,QAAQ,GAAG,MAAM,IAAA,4BAAU,EAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAA,cAAK,GAAE,CAAC,CAAC;IAC1D,MAAM,IAAA,0BAAiB,GAAE,CAAC,CAAC,mCAAmC;IAE9D,0CAA0C;IAC1C,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAC,EAAE,CAAC","sourcesContent":["#!/usr/bin/env node\n\nimport 'source-map-support/register';\nimport './punycode.cjs';\nimport { instrument, shutdown as telemetryShutdown } from './instrumentation'; // has to be imported before logger and other libraries which are instrumentalised\nimport { logger } from './logger';\nimport { bootstrap } from './proxy';\nimport { start } from './workers/global';\n\n/* v8 ignore next 3 -- not easily testable */\nprocess.on('unhandledRejection', (err) => {\n logger.error({ err }, 'unhandledRejection');\n});\n\nbootstrap();\n\n// eslint-disable-next-line @typescript-eslint/no-floating-promises\n(async (): Promise<void> => {\n process.exitCode = await instrument('run', () => start());\n await telemetryShutdown(); //gracefully shutdown OpenTelemetry\n\n /* v8 ignore next 3 -- no test required */\n if (process.env.RENOVATE_X_HARD_EXIT) {\n process.exit(process.exitCode);\n }\n})();\n"]}
@@ -176,6 +176,11 @@ const allToolConfig = {
176
176
  packageName: 'pnpm',
177
177
  versioning: npm_1.id,
178
178
  },
179
+ pixi: {
180
+ datasource: 'github-releases',
181
+ packageName: 'prefix-dev/pixi',
182
+ versioning: pep440_1.id,
183
+ },
179
184
  poetry: {
180
185
  datasource: 'pypi',
181
186
  packageName: 'poetry',
@@ -1 +1 @@
1
- {"version":3,"file":"containerbase.js","sourceRoot":"","sources":["../../../lib/util/exec/containerbase.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { GlobalConfig } from '../../config/global';\nimport { logger } from '../../logger';\nimport type { ReleaseResult } from '../../modules/datasource';\nimport * as allVersioning from '../../modules/versioning';\nimport { id as composerVersioningId } from '../../modules/versioning/composer';\nimport { id as gradleVersioningId } from '../../modules/versioning/gradle';\nimport { id as mavenVersioningId } from '../../modules/versioning/maven';\nimport { id as nodeVersioningId } from '../../modules/versioning/node';\nimport { id as npmVersioningId } from '../../modules/versioning/npm';\nimport { id as pep440VersioningId } from '../../modules/versioning/pep440';\nimport { id as pythonVersioningId } from '../../modules/versioning/python';\nimport { id as rubyVersioningId } from '../../modules/versioning/ruby';\nimport { id as semverVersioningId } from '../../modules/versioning/semver';\nimport { id as semverCoercedVersioningId } from '../../modules/versioning/semver-coerced';\nimport type { Opt, ToolConfig, ToolConstraint } from './types';\n\nconst allToolConfig: Record<string, ToolConfig> = {\n bun: {\n datasource: 'github-releases',\n packageName: 'oven-sh/bun',\n extractVersion: '^bun-v(?<version>.*)$',\n versioning: npmVersioningId,\n },\n bundler: {\n datasource: 'rubygems',\n packageName: 'bundler',\n versioning: rubyVersioningId,\n },\n cocoapods: {\n datasource: 'rubygems',\n packageName: 'cocoapods',\n versioning: rubyVersioningId,\n },\n composer: {\n datasource: 'github-releases',\n packageName: 'containerbase/composer-prebuild',\n versioning: composerVersioningId,\n },\n copier: {\n datasource: 'pypi',\n packageName: 'copier',\n versioning: pep440VersioningId,\n },\n corepack: {\n datasource: 'npm',\n packageName: 'corepack',\n versioning: npmVersioningId,\n },\n devbox: {\n datasource: 'github-releases',\n packageName: 'jetify-com/devbox',\n versioning: semverVersioningId,\n },\n dotnet: {\n datasource: 'dotnet-version',\n packageName: 'dotnet-sdk',\n versioning: semverVersioningId,\n },\n erlang: {\n datasource: 'github-releases',\n packageName: 'containerbase/erlang-prebuild',\n versioning: semverCoercedVersioningId,\n },\n elixir: {\n datasource: 'github-releases',\n packageName: 'elixir-lang/elixir',\n versioning: semverVersioningId,\n },\n flux: {\n datasource: 'github-releases',\n packageName: 'fluxcd/flux2',\n versioning: semverVersioningId,\n },\n gleam: {\n datasource: 'github-releases',\n packageName: 'gleam-lang/gleam',\n versioning: semverVersioningId,\n },\n golang: {\n datasource: 'github-releases',\n packageName: 'containerbase/golang-prebuild',\n versioning: npmVersioningId,\n },\n gradle: {\n datasource: 'gradle-version',\n packageName: 'gradle',\n versioning: gradleVersioningId,\n },\n hashin: {\n datasource: 'pypi',\n packageName: 'hashin',\n versioning: pep440VersioningId,\n },\n helm: {\n datasource: 'github-releases',\n packageName: 'helm/helm',\n versioning: semverVersioningId,\n },\n helmfile: {\n datasource: 'github-releases',\n packageName: 'helmfile/helmfile',\n versioning: semverVersioningId,\n },\n java: {\n datasource: 'java-version',\n packageName: 'java',\n versioning: npmVersioningId,\n },\n /* not used in Renovate */\n 'java-maven': {\n datasource: 'java-version',\n packageName: 'java',\n versioning: mavenVersioningId,\n },\n jb: {\n datasource: 'github-releases',\n packageName: 'jsonnet-bundler/jsonnet-bundler',\n versioning: semverVersioningId,\n },\n kustomize: {\n datasource: 'github-releases',\n packageName: 'kubernetes-sigs/kustomize',\n extractVersion: '^kustomize/v(?<version>.*)$',\n versioning: semverVersioningId,\n },\n maven: {\n datasource: 'github-releases',\n packageName: 'containerbase/maven-prebuild',\n versioning: mavenVersioningId,\n },\n nix: {\n datasource: 'github-releases',\n packageName: 'containerbase/nix-prebuild',\n versioning: semverVersioningId,\n },\n node: {\n datasource: 'github-releases',\n packageName: 'containerbase/node-prebuild',\n versioning: nodeVersioningId,\n },\n npm: {\n datasource: 'npm',\n packageName: 'npm',\n hash: true,\n versioning: npmVersioningId,\n },\n pdm: {\n datasource: 'github-releases',\n packageName: 'pdm-project/pdm',\n versioning: semverVersioningId,\n },\n php: {\n datasource: 'github-releases',\n packageName: 'containerbase/php-prebuild',\n versioning: composerVersioningId,\n },\n 'pip-tools': {\n datasource: 'pypi',\n packageName: 'pip-tools',\n versioning: pep440VersioningId,\n },\n pipenv: {\n datasource: 'pypi',\n packageName: 'pipenv',\n versioning: pep440VersioningId,\n },\n pnpm: {\n datasource: 'npm',\n packageName: 'pnpm',\n versioning: npmVersioningId,\n },\n poetry: {\n datasource: 'pypi',\n packageName: 'poetry',\n versioning: pep440VersioningId,\n },\n python: {\n datasource: 'github-releases',\n packageName: 'containerbase/python-prebuild',\n versioning: pythonVersioningId,\n },\n ruby: {\n datasource: 'github-releases',\n packageName: 'containerbase/ruby-prebuild',\n versioning: rubyVersioningId,\n },\n rust: {\n datasource: 'docker',\n packageName: 'rust',\n versioning: semverVersioningId,\n },\n uv: {\n datasource: 'pypi',\n packageName: 'uv',\n versioning: pep440VersioningId,\n },\n yarn: {\n datasource: 'npm',\n packageName: 'yarn',\n versioning: npmVersioningId,\n },\n 'yarn-slim': {\n datasource: 'npm',\n packageName: 'yarn',\n versioning: npmVersioningId,\n },\n dart: {\n datasource: 'dart-version',\n packageName: 'dart',\n versioning: npmVersioningId,\n },\n flutter: {\n datasource: 'github-releases',\n packageName: 'containerbase/flutter-prebuild',\n versioning: npmVersioningId,\n },\n vendir: {\n datasource: 'github-releases',\n packageName: 'carvel-dev/vendir',\n versioning: semverVersioningId,\n },\n};\n\nlet _getPkgReleases: Promise<typeof import('../../modules/datasource')> | null =\n null;\n\nasync function getPkgReleases(\n toolConfig: ToolConfig,\n): Promise<ReleaseResult | null> {\n if (_getPkgReleases === null) {\n _getPkgReleases = import('../../modules/datasource/index.js');\n }\n const { getPkgReleases } = await _getPkgReleases;\n return getPkgReleases(toolConfig);\n}\n\nexport function supportsDynamicInstall(toolName: string): boolean {\n return !!allToolConfig[toolName];\n}\n\nexport function isContainerbase(): boolean {\n return !!process.env.CONTAINERBASE;\n}\n\nexport function isDynamicInstall(\n toolConstraints?: Opt<ToolConstraint[]>,\n): boolean {\n if (GlobalConfig.get('binarySource') !== 'install') {\n return false;\n }\n if (!isContainerbase()) {\n logger.debug('Falling back to binarySource=global');\n return false;\n }\n return (\n !toolConstraints ||\n toolConstraints.every((toolConstraint) =>\n supportsDynamicInstall(toolConstraint.toolName),\n )\n );\n}\n\nfunction isStable(\n version: string,\n versioningApi: allVersioning.VersioningApi,\n latest?: string,\n): boolean {\n if (!versioningApi.isStable(version)) {\n return false;\n }\n if (is.string(latest)) {\n if (versioningApi.isGreaterThan(version, latest)) {\n return false;\n }\n }\n return true;\n}\n\nexport async function resolveConstraint(\n toolConstraint: ToolConstraint,\n): Promise<string> {\n const { toolName } = toolConstraint;\n const toolConfig = allToolConfig[toolName];\n if (!toolConfig) {\n throw new Error(`Invalid tool to install: ${toolName}`);\n }\n\n const versioning = allVersioning.get(toolConfig.versioning);\n let constraint = toolConstraint.constraint;\n if (constraint) {\n if (versioning.isValid(constraint)) {\n if (versioning.isSingleVersion(constraint)) {\n return constraint.replace(/^=+/, '').trim();\n }\n } else {\n logger.warn(\n { toolName, constraint, versioning: toolConfig.versioning },\n 'Invalid tool constraint',\n );\n constraint = undefined;\n }\n }\n\n const pkgReleases = await getPkgReleases(toolConfig);\n const releases = pkgReleases?.releases ?? [];\n\n if (!releases?.length) {\n logger.warn({ toolConfig }, 'No tool releases found.');\n throw new Error('No tool releases found.');\n }\n\n const matchingReleases = releases.filter(\n (r) => !constraint || versioning.matches(r.version, constraint),\n );\n\n const stableMatchingVersion = matchingReleases\n .filter((r) => isStable(r.version, versioning, pkgReleases?.tags?.latest))\n .pop()?.version;\n if (stableMatchingVersion) {\n logger.debug(\n { toolName, constraint, resolvedVersion: stableMatchingVersion },\n 'Resolved stable matching version',\n );\n return stableMatchingVersion;\n }\n\n const unstableMatchingVersion = matchingReleases.pop()?.version;\n if (unstableMatchingVersion) {\n logger.debug(\n { toolName, constraint, resolvedVersion: unstableMatchingVersion },\n 'Resolved unstable matching version',\n );\n return unstableMatchingVersion;\n }\n\n const stableVersion = releases\n .filter((r) => isStable(r.version, versioning, pkgReleases?.tags?.latest))\n .pop()?.version;\n if (stableVersion) {\n logger.warn(\n { toolName, constraint, stableVersion },\n 'No matching tool versions found for constraint - using latest stable version',\n );\n }\n\n const highestVersion = releases.pop()!.version;\n logger.warn(\n { toolName, constraint, highestVersion },\n 'No matching or stable tool versions found - using an unstable version',\n );\n return highestVersion;\n}\n\nexport async function generateInstallCommands(\n toolConstraints: Opt<ToolConstraint[]>,\n): Promise<string[]> {\n const installCommands: string[] = [];\n if (toolConstraints?.length) {\n for (const toolConstraint of toolConstraints) {\n const toolVersion = await resolveConstraint(toolConstraint);\n const { toolName } = toolConstraint;\n const installCommand = `install-tool ${toolName} ${quote(toolVersion)}`;\n installCommands.push(installCommand);\n if (allToolConfig[toolName].hash) {\n installCommands.push(`hash -d ${toolName} 2>/dev/null || true`);\n }\n }\n }\n return installCommands;\n}\n"]}
1
+ {"version":3,"file":"containerbase.js","sourceRoot":"","sources":["../../../lib/util/exec/containerbase.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { GlobalConfig } from '../../config/global';\nimport { logger } from '../../logger';\nimport type { ReleaseResult } from '../../modules/datasource';\nimport * as allVersioning from '../../modules/versioning';\nimport { id as composerVersioningId } from '../../modules/versioning/composer';\nimport { id as gradleVersioningId } from '../../modules/versioning/gradle';\nimport { id as mavenVersioningId } from '../../modules/versioning/maven';\nimport { id as nodeVersioningId } from '../../modules/versioning/node';\nimport { id as npmVersioningId } from '../../modules/versioning/npm';\nimport { id as pep440VersioningId } from '../../modules/versioning/pep440';\nimport { id as pythonVersioningId } from '../../modules/versioning/python';\nimport { id as rubyVersioningId } from '../../modules/versioning/ruby';\nimport { id as semverVersioningId } from '../../modules/versioning/semver';\nimport { id as semverCoercedVersioningId } from '../../modules/versioning/semver-coerced';\nimport type { Opt, ToolConfig, ToolConstraint } from './types';\n\nconst allToolConfig: Record<string, ToolConfig> = {\n bun: {\n datasource: 'github-releases',\n packageName: 'oven-sh/bun',\n extractVersion: '^bun-v(?<version>.*)$',\n versioning: npmVersioningId,\n },\n bundler: {\n datasource: 'rubygems',\n packageName: 'bundler',\n versioning: rubyVersioningId,\n },\n cocoapods: {\n datasource: 'rubygems',\n packageName: 'cocoapods',\n versioning: rubyVersioningId,\n },\n composer: {\n datasource: 'github-releases',\n packageName: 'containerbase/composer-prebuild',\n versioning: composerVersioningId,\n },\n copier: {\n datasource: 'pypi',\n packageName: 'copier',\n versioning: pep440VersioningId,\n },\n corepack: {\n datasource: 'npm',\n packageName: 'corepack',\n versioning: npmVersioningId,\n },\n devbox: {\n datasource: 'github-releases',\n packageName: 'jetify-com/devbox',\n versioning: semverVersioningId,\n },\n dotnet: {\n datasource: 'dotnet-version',\n packageName: 'dotnet-sdk',\n versioning: semverVersioningId,\n },\n erlang: {\n datasource: 'github-releases',\n packageName: 'containerbase/erlang-prebuild',\n versioning: semverCoercedVersioningId,\n },\n elixir: {\n datasource: 'github-releases',\n packageName: 'elixir-lang/elixir',\n versioning: semverVersioningId,\n },\n flux: {\n datasource: 'github-releases',\n packageName: 'fluxcd/flux2',\n versioning: semverVersioningId,\n },\n gleam: {\n datasource: 'github-releases',\n packageName: 'gleam-lang/gleam',\n versioning: semverVersioningId,\n },\n golang: {\n datasource: 'github-releases',\n packageName: 'containerbase/golang-prebuild',\n versioning: npmVersioningId,\n },\n gradle: {\n datasource: 'gradle-version',\n packageName: 'gradle',\n versioning: gradleVersioningId,\n },\n hashin: {\n datasource: 'pypi',\n packageName: 'hashin',\n versioning: pep440VersioningId,\n },\n helm: {\n datasource: 'github-releases',\n packageName: 'helm/helm',\n versioning: semverVersioningId,\n },\n helmfile: {\n datasource: 'github-releases',\n packageName: 'helmfile/helmfile',\n versioning: semverVersioningId,\n },\n java: {\n datasource: 'java-version',\n packageName: 'java',\n versioning: npmVersioningId,\n },\n /* not used in Renovate */\n 'java-maven': {\n datasource: 'java-version',\n packageName: 'java',\n versioning: mavenVersioningId,\n },\n jb: {\n datasource: 'github-releases',\n packageName: 'jsonnet-bundler/jsonnet-bundler',\n versioning: semverVersioningId,\n },\n kustomize: {\n datasource: 'github-releases',\n packageName: 'kubernetes-sigs/kustomize',\n extractVersion: '^kustomize/v(?<version>.*)$',\n versioning: semverVersioningId,\n },\n maven: {\n datasource: 'github-releases',\n packageName: 'containerbase/maven-prebuild',\n versioning: mavenVersioningId,\n },\n nix: {\n datasource: 'github-releases',\n packageName: 'containerbase/nix-prebuild',\n versioning: semverVersioningId,\n },\n node: {\n datasource: 'github-releases',\n packageName: 'containerbase/node-prebuild',\n versioning: nodeVersioningId,\n },\n npm: {\n datasource: 'npm',\n packageName: 'npm',\n hash: true,\n versioning: npmVersioningId,\n },\n pdm: {\n datasource: 'github-releases',\n packageName: 'pdm-project/pdm',\n versioning: semverVersioningId,\n },\n php: {\n datasource: 'github-releases',\n packageName: 'containerbase/php-prebuild',\n versioning: composerVersioningId,\n },\n 'pip-tools': {\n datasource: 'pypi',\n packageName: 'pip-tools',\n versioning: pep440VersioningId,\n },\n pipenv: {\n datasource: 'pypi',\n packageName: 'pipenv',\n versioning: pep440VersioningId,\n },\n pnpm: {\n datasource: 'npm',\n packageName: 'pnpm',\n versioning: npmVersioningId,\n },\n pixi: {\n datasource: 'github-releases',\n packageName: 'prefix-dev/pixi',\n versioning: pep440VersioningId,\n },\n poetry: {\n datasource: 'pypi',\n packageName: 'poetry',\n versioning: pep440VersioningId,\n },\n python: {\n datasource: 'github-releases',\n packageName: 'containerbase/python-prebuild',\n versioning: pythonVersioningId,\n },\n ruby: {\n datasource: 'github-releases',\n packageName: 'containerbase/ruby-prebuild',\n versioning: rubyVersioningId,\n },\n rust: {\n datasource: 'docker',\n packageName: 'rust',\n versioning: semverVersioningId,\n },\n uv: {\n datasource: 'pypi',\n packageName: 'uv',\n versioning: pep440VersioningId,\n },\n yarn: {\n datasource: 'npm',\n packageName: 'yarn',\n versioning: npmVersioningId,\n },\n 'yarn-slim': {\n datasource: 'npm',\n packageName: 'yarn',\n versioning: npmVersioningId,\n },\n dart: {\n datasource: 'dart-version',\n packageName: 'dart',\n versioning: npmVersioningId,\n },\n flutter: {\n datasource: 'github-releases',\n packageName: 'containerbase/flutter-prebuild',\n versioning: npmVersioningId,\n },\n vendir: {\n datasource: 'github-releases',\n packageName: 'carvel-dev/vendir',\n versioning: semverVersioningId,\n },\n};\n\nlet _getPkgReleases: Promise<typeof import('../../modules/datasource')> | null =\n null;\n\nasync function getPkgReleases(\n toolConfig: ToolConfig,\n): Promise<ReleaseResult | null> {\n if (_getPkgReleases === null) {\n _getPkgReleases = import('../../modules/datasource/index.js');\n }\n const { getPkgReleases } = await _getPkgReleases;\n return getPkgReleases(toolConfig);\n}\n\nexport function supportsDynamicInstall(toolName: string): boolean {\n return !!allToolConfig[toolName];\n}\n\nexport function isContainerbase(): boolean {\n return !!process.env.CONTAINERBASE;\n}\n\nexport function isDynamicInstall(\n toolConstraints?: Opt<ToolConstraint[]>,\n): boolean {\n if (GlobalConfig.get('binarySource') !== 'install') {\n return false;\n }\n if (!isContainerbase()) {\n logger.debug('Falling back to binarySource=global');\n return false;\n }\n return (\n !toolConstraints ||\n toolConstraints.every((toolConstraint) =>\n supportsDynamicInstall(toolConstraint.toolName),\n )\n );\n}\n\nfunction isStable(\n version: string,\n versioningApi: allVersioning.VersioningApi,\n latest?: string,\n): boolean {\n if (!versioningApi.isStable(version)) {\n return false;\n }\n if (is.string(latest)) {\n if (versioningApi.isGreaterThan(version, latest)) {\n return false;\n }\n }\n return true;\n}\n\nexport async function resolveConstraint(\n toolConstraint: ToolConstraint,\n): Promise<string> {\n const { toolName } = toolConstraint;\n const toolConfig = allToolConfig[toolName];\n if (!toolConfig) {\n throw new Error(`Invalid tool to install: ${toolName}`);\n }\n\n const versioning = allVersioning.get(toolConfig.versioning);\n let constraint = toolConstraint.constraint;\n if (constraint) {\n if (versioning.isValid(constraint)) {\n if (versioning.isSingleVersion(constraint)) {\n return constraint.replace(/^=+/, '').trim();\n }\n } else {\n logger.warn(\n { toolName, constraint, versioning: toolConfig.versioning },\n 'Invalid tool constraint',\n );\n constraint = undefined;\n }\n }\n\n const pkgReleases = await getPkgReleases(toolConfig);\n const releases = pkgReleases?.releases ?? [];\n\n if (!releases?.length) {\n logger.warn({ toolConfig }, 'No tool releases found.');\n throw new Error('No tool releases found.');\n }\n\n const matchingReleases = releases.filter(\n (r) => !constraint || versioning.matches(r.version, constraint),\n );\n\n const stableMatchingVersion = matchingReleases\n .filter((r) => isStable(r.version, versioning, pkgReleases?.tags?.latest))\n .pop()?.version;\n if (stableMatchingVersion) {\n logger.debug(\n { toolName, constraint, resolvedVersion: stableMatchingVersion },\n 'Resolved stable matching version',\n );\n return stableMatchingVersion;\n }\n\n const unstableMatchingVersion = matchingReleases.pop()?.version;\n if (unstableMatchingVersion) {\n logger.debug(\n { toolName, constraint, resolvedVersion: unstableMatchingVersion },\n 'Resolved unstable matching version',\n );\n return unstableMatchingVersion;\n }\n\n const stableVersion = releases\n .filter((r) => isStable(r.version, versioning, pkgReleases?.tags?.latest))\n .pop()?.version;\n if (stableVersion) {\n logger.warn(\n { toolName, constraint, stableVersion },\n 'No matching tool versions found for constraint - using latest stable version',\n );\n }\n\n const highestVersion = releases.pop()!.version;\n logger.warn(\n { toolName, constraint, highestVersion },\n 'No matching or stable tool versions found - using an unstable version',\n );\n return highestVersion;\n}\n\nexport async function generateInstallCommands(\n toolConstraints: Opt<ToolConstraint[]>,\n): Promise<string[]> {\n const installCommands: string[] = [];\n if (toolConstraints?.length) {\n for (const toolConstraint of toolConstraints) {\n const toolVersion = await resolveConstraint(toolConstraint);\n const { toolName } = toolConstraint;\n const installCommand = `install-tool ${toolName} ${quote(toolVersion)}`;\n installCommands.push(installCommand);\n if (allToolConfig[toolName].hash) {\n installCommands.push(`hash -d ${toolName} 2>/dev/null || true`);\n }\n }\n }\n return installCommands;\n}\n"]}
@@ -42,7 +42,7 @@ class BitbucketHttp extends http_1.HttpBase {
42
42
  }
43
43
  // Override other page-related attributes
44
44
  resultBody.pagelen = resultBody.values.length;
45
- /* v8 ignore start: hard to test all branches */
45
+ /* v8 ignore start -- hard to test all branches */
46
46
  resultBody.size =
47
47
  page <= MAX_PAGES ? resultBody.values.length : undefined;
48
48
  resultBody.next = page <= MAX_PAGES ? nextURL : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"bitbucket.js","sourceRoot":"","sources":["../../../lib/util/http/bitbucket.ts"],"names":[],"mappings":";;;AAUA,gCAEC;;AAZD,kEAAkC;AAElC,iCAAkE;AAGlE,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,IAAI,OAAO,GAAG,4BAA4B,CAAC;AAE3C,SAAgB,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,GAAG,CAAC;AAChB,CAAC;AAOD,MAAa,aAAc,SAAQ,eAA8B;IAC/D,IAAuB,OAAO;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,YAAY,IAAI,GAAG,WAAW,EAAE,OAA8B;QAC5D,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvB,CAAC;IAEkB,KAAK,CAAC,iBAAiB,CACxC,MAAkB,EAClB,OAAwD;QAExD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACtE,MAAM,IAAI,GAAoD;YAC5D,GAAG,OAAO;YACV,GAAG,EAAE,WAAW;SACjB,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;QAE5C,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAY,CAAC,OAAO,IAAI,WAAW,CAAC;YACzD,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAC1C,MAAM,EACN,IAAI,CACL,CAAC;QAEF,IAAI,QAAQ,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;YAC/B,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/B,IAAI,IAAI,GAAG,CAAC,CAAC;YAEb,OAAO,OAAO,IAAI,IAAI,IAAI,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC5C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;gBACnB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAC9C,MAAM,EACN,IAAI,CACL,CAAC;gBAEF,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClD,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC,CAAC;YAED,yCAAyC;YACzC,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9C,gDAAgD;YAChD,UAAU,CAAC,IAAI;gBACb,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3D,UAAU,CAAC,IAAI,GAAG,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,oBAAoB;QACtB,CAAC;QAED,OAAO,MAAyB,CAAC;IACnC,CAAC;CACF;AAzDD,sCAyDC;AAED,SAAS,UAAU,CAAC,GAAQ;IAC1B,OAAO,CAAC,YAAE,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,aAAa,CAAI,GAAQ;IAChC,OAAO,YAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7D,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport type { PagedResult } from '../../modules/platform/bitbucket/types';\nimport { HttpBase, type InternalJsonUnsafeOptions } from './http';\nimport type { HttpMethod, HttpOptions, HttpResponse } from './types';\n\nconst MAX_PAGES = 100;\nconst MAX_PAGELEN = 100;\n\nlet baseUrl = 'https://api.bitbucket.org/';\n\nexport function setBaseUrl(url: string): void {\n baseUrl = url;\n}\n\nexport interface BitbucketHttpOptions extends HttpOptions {\n paginate?: boolean;\n pagelen?: number;\n}\n\nexport class BitbucketHttp extends HttpBase<BitbucketHttpOptions> {\n protected override get baseUrl(): string | undefined {\n return baseUrl;\n }\n\n constructor(type = 'bitbucket', options?: BitbucketHttpOptions) {\n super(type, options);\n }\n\n protected override async requestJsonUnsafe<T>(\n method: HttpMethod,\n options: InternalJsonUnsafeOptions<BitbucketHttpOptions>,\n ): Promise<HttpResponse<T>> {\n const resolvedUrl = this.resolveUrl(options.url, options.httpOptions);\n const opts: InternalJsonUnsafeOptions<BitbucketHttpOptions> = {\n ...options,\n url: resolvedUrl,\n };\n const paginate = opts.httpOptions?.paginate;\n\n if (paginate && !hasPagelen(resolvedUrl)) {\n const pagelen = opts.httpOptions!.pagelen ?? MAX_PAGELEN;\n resolvedUrl.searchParams.set('pagelen', pagelen.toString());\n }\n\n const result = await super.requestJsonUnsafe<T | PagedResult<T>>(\n method,\n opts,\n );\n\n if (paginate && isPagedResult(result.body)) {\n const resultBody = result.body;\n let nextURL = result.body.next;\n let page = 1;\n\n for (; nextURL && page <= MAX_PAGES; page++) {\n opts.url = nextURL;\n const nextResult = await super.requestJsonUnsafe<PagedResult<T>>(\n method,\n opts,\n );\n\n resultBody.values.push(...nextResult.body.values);\n nextURL = nextResult.body.next;\n }\n\n // Override other page-related attributes\n resultBody.pagelen = resultBody.values.length;\n /* v8 ignore start: hard to test all branches */\n resultBody.size =\n page <= MAX_PAGES ? resultBody.values.length : undefined;\n resultBody.next = page <= MAX_PAGES ? nextURL : undefined;\n /* v8 ignore stop */\n }\n\n return result as HttpResponse<T>;\n }\n}\n\nfunction hasPagelen(url: URL): boolean {\n return !is.nullOrUndefined(url.searchParams.get('pagelen'));\n}\n\nfunction isPagedResult<T>(obj: any): obj is PagedResult<T> {\n return is.nonEmptyObject(obj) && Array.isArray(obj.values);\n}\n"]}
1
+ {"version":3,"file":"bitbucket.js","sourceRoot":"","sources":["../../../lib/util/http/bitbucket.ts"],"names":[],"mappings":";;;AAUA,gCAEC;;AAZD,kEAAkC;AAElC,iCAAkE;AAGlE,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,IAAI,OAAO,GAAG,4BAA4B,CAAC;AAE3C,SAAgB,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,GAAG,CAAC;AAChB,CAAC;AAOD,MAAa,aAAc,SAAQ,eAA8B;IAC/D,IAAuB,OAAO;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,YAAY,IAAI,GAAG,WAAW,EAAE,OAA8B;QAC5D,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvB,CAAC;IAEkB,KAAK,CAAC,iBAAiB,CACxC,MAAkB,EAClB,OAAwD;QAExD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACtE,MAAM,IAAI,GAAoD;YAC5D,GAAG,OAAO;YACV,GAAG,EAAE,WAAW;SACjB,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;QAE5C,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAY,CAAC,OAAO,IAAI,WAAW,CAAC;YACzD,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAC1C,MAAM,EACN,IAAI,CACL,CAAC;QAEF,IAAI,QAAQ,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;YAC/B,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/B,IAAI,IAAI,GAAG,CAAC,CAAC;YAEb,OAAO,OAAO,IAAI,IAAI,IAAI,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC5C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;gBACnB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAC9C,MAAM,EACN,IAAI,CACL,CAAC;gBAEF,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClD,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC,CAAC;YAED,yCAAyC;YACzC,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9C,kDAAkD;YAClD,UAAU,CAAC,IAAI;gBACb,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3D,UAAU,CAAC,IAAI,GAAG,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,oBAAoB;QACtB,CAAC;QAED,OAAO,MAAyB,CAAC;IACnC,CAAC;CACF;AAzDD,sCAyDC;AAED,SAAS,UAAU,CAAC,GAAQ;IAC1B,OAAO,CAAC,YAAE,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,aAAa,CAAI,GAAQ;IAChC,OAAO,YAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7D,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport type { PagedResult } from '../../modules/platform/bitbucket/types';\nimport { HttpBase, type InternalJsonUnsafeOptions } from './http';\nimport type { HttpMethod, HttpOptions, HttpResponse } from './types';\n\nconst MAX_PAGES = 100;\nconst MAX_PAGELEN = 100;\n\nlet baseUrl = 'https://api.bitbucket.org/';\n\nexport function setBaseUrl(url: string): void {\n baseUrl = url;\n}\n\nexport interface BitbucketHttpOptions extends HttpOptions {\n paginate?: boolean;\n pagelen?: number;\n}\n\nexport class BitbucketHttp extends HttpBase<BitbucketHttpOptions> {\n protected override get baseUrl(): string | undefined {\n return baseUrl;\n }\n\n constructor(type = 'bitbucket', options?: BitbucketHttpOptions) {\n super(type, options);\n }\n\n protected override async requestJsonUnsafe<T>(\n method: HttpMethod,\n options: InternalJsonUnsafeOptions<BitbucketHttpOptions>,\n ): Promise<HttpResponse<T>> {\n const resolvedUrl = this.resolveUrl(options.url, options.httpOptions);\n const opts: InternalJsonUnsafeOptions<BitbucketHttpOptions> = {\n ...options,\n url: resolvedUrl,\n };\n const paginate = opts.httpOptions?.paginate;\n\n if (paginate && !hasPagelen(resolvedUrl)) {\n const pagelen = opts.httpOptions!.pagelen ?? MAX_PAGELEN;\n resolvedUrl.searchParams.set('pagelen', pagelen.toString());\n }\n\n const result = await super.requestJsonUnsafe<T | PagedResult<T>>(\n method,\n opts,\n );\n\n if (paginate && isPagedResult(result.body)) {\n const resultBody = result.body;\n let nextURL = result.body.next;\n let page = 1;\n\n for (; nextURL && page <= MAX_PAGES; page++) {\n opts.url = nextURL;\n const nextResult = await super.requestJsonUnsafe<PagedResult<T>>(\n method,\n opts,\n );\n\n resultBody.values.push(...nextResult.body.values);\n nextURL = nextResult.body.next;\n }\n\n // Override other page-related attributes\n resultBody.pagelen = resultBody.values.length;\n /* v8 ignore start -- hard to test all branches */\n resultBody.size =\n page <= MAX_PAGES ? resultBody.values.length : undefined;\n resultBody.next = page <= MAX_PAGES ? nextURL : undefined;\n /* v8 ignore stop */\n }\n\n return result as HttpResponse<T>;\n }\n}\n\nfunction hasPagelen(url: URL): boolean {\n return !is.nullOrUndefined(url.searchParams.get('pagelen'));\n}\n\nfunction isPagedResult<T>(obj: any): obj is PagedResult<T> {\n return is.nonEmptyObject(obj) && Array.isArray(obj.values);\n}\n"]}
@@ -43,7 +43,7 @@ class AbstractHttpCacheProvider {
43
43
  httpResponse,
44
44
  timestamp,
45
45
  });
46
- /* v8 ignore next 4: should never happen */
46
+ /* v8 ignore next 4 -- should never happen */
47
47
  if (!newHttpCache) {
48
48
  logger_1.logger.debug(`http cache: failed to persist cache for ${url}`);
49
49
  return resp;
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-http-cache-provider.js","sourceRoot":"","sources":["../../../../lib/util/http/cache/abstract-http-cache-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { HttpCacheStats } from '../../stats';\nimport type { GotOptions, HttpResponse } from '../types';\nimport { copyResponse } from '../util';\nimport { type HttpCache, HttpCacheSchema } from './schema';\nimport type { HttpCacheProvider } from './types';\n\nexport abstract class AbstractHttpCacheProvider implements HttpCacheProvider {\n protected abstract load(url: string): Promise<unknown>;\n protected abstract persist(url: string, data: HttpCache): Promise<void>;\n\n async get(url: string): Promise<HttpCache | null> {\n const cache = await this.load(url);\n const httpCache = HttpCacheSchema.parse(cache);\n if (!httpCache) {\n return null;\n }\n\n return httpCache;\n }\n\n async setCacheHeaders<T extends Pick<GotOptions, 'headers'>>(\n url: string,\n opts: T,\n ): Promise<void> {\n const httpCache = await this.get(url);\n if (!httpCache) {\n return;\n }\n\n opts.headers ??= {};\n\n if (httpCache.etag) {\n opts.headers['If-None-Match'] = httpCache.etag;\n }\n\n if (httpCache.lastModified) {\n opts.headers['If-Modified-Since'] = httpCache.lastModified;\n }\n }\n\n bypassServer<T>(\n _url: string,\n _ignoreSoftTtl: boolean,\n ): Promise<HttpResponse<T> | null> {\n return Promise.resolve(null);\n }\n\n async wrapServerResponse<T>(\n url: string,\n resp: HttpResponse<T>,\n ): Promise<HttpResponse<T>> {\n if (resp.statusCode === 200) {\n const etag = resp.headers?.etag;\n const lastModified = resp.headers?.['last-modified'];\n\n HttpCacheStats.incRemoteMisses(url);\n\n const httpResponse = copyResponse(resp, true);\n const timestamp = new Date().toISOString();\n\n const newHttpCache = HttpCacheSchema.parse({\n etag,\n lastModified,\n httpResponse,\n timestamp,\n });\n\n /* v8 ignore next 4: should never happen */\n if (!newHttpCache) {\n logger.debug(`http cache: failed to persist cache for ${url}`);\n return resp;\n }\n\n logger.debug(\n `http cache: saving ${url} (etag=${etag}, lastModified=${lastModified})`,\n );\n await this.persist(url, newHttpCache as HttpCache);\n return resp;\n }\n\n if (resp.statusCode === 304) {\n const httpCache = await this.get(url);\n if (!httpCache) {\n return resp;\n }\n\n const timestamp = httpCache.timestamp;\n logger.debug(\n `http cache: Using cached response: ${url} from ${timestamp}`,\n );\n HttpCacheStats.incRemoteHits(url);\n const cachedResp = copyResponse(\n httpCache.httpResponse as HttpResponse<T>,\n true,\n );\n cachedResp.authorization = resp.authorization;\n return cachedResp;\n }\n\n return resp;\n }\n}\n"]}
1
+ {"version":3,"file":"abstract-http-cache-provider.js","sourceRoot":"","sources":["../../../../lib/util/http/cache/abstract-http-cache-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { HttpCacheStats } from '../../stats';\nimport type { GotOptions, HttpResponse } from '../types';\nimport { copyResponse } from '../util';\nimport { type HttpCache, HttpCacheSchema } from './schema';\nimport type { HttpCacheProvider } from './types';\n\nexport abstract class AbstractHttpCacheProvider implements HttpCacheProvider {\n protected abstract load(url: string): Promise<unknown>;\n protected abstract persist(url: string, data: HttpCache): Promise<void>;\n\n async get(url: string): Promise<HttpCache | null> {\n const cache = await this.load(url);\n const httpCache = HttpCacheSchema.parse(cache);\n if (!httpCache) {\n return null;\n }\n\n return httpCache;\n }\n\n async setCacheHeaders<T extends Pick<GotOptions, 'headers'>>(\n url: string,\n opts: T,\n ): Promise<void> {\n const httpCache = await this.get(url);\n if (!httpCache) {\n return;\n }\n\n opts.headers ??= {};\n\n if (httpCache.etag) {\n opts.headers['If-None-Match'] = httpCache.etag;\n }\n\n if (httpCache.lastModified) {\n opts.headers['If-Modified-Since'] = httpCache.lastModified;\n }\n }\n\n bypassServer<T>(\n _url: string,\n _ignoreSoftTtl: boolean,\n ): Promise<HttpResponse<T> | null> {\n return Promise.resolve(null);\n }\n\n async wrapServerResponse<T>(\n url: string,\n resp: HttpResponse<T>,\n ): Promise<HttpResponse<T>> {\n if (resp.statusCode === 200) {\n const etag = resp.headers?.etag;\n const lastModified = resp.headers?.['last-modified'];\n\n HttpCacheStats.incRemoteMisses(url);\n\n const httpResponse = copyResponse(resp, true);\n const timestamp = new Date().toISOString();\n\n const newHttpCache = HttpCacheSchema.parse({\n etag,\n lastModified,\n httpResponse,\n timestamp,\n });\n\n /* v8 ignore next 4 -- should never happen */\n if (!newHttpCache) {\n logger.debug(`http cache: failed to persist cache for ${url}`);\n return resp;\n }\n\n logger.debug(\n `http cache: saving ${url} (etag=${etag}, lastModified=${lastModified})`,\n );\n await this.persist(url, newHttpCache as HttpCache);\n return resp;\n }\n\n if (resp.statusCode === 304) {\n const httpCache = await this.get(url);\n if (!httpCache) {\n return resp;\n }\n\n const timestamp = httpCache.timestamp;\n logger.debug(\n `http cache: Using cached response: ${url} from ${timestamp}`,\n );\n HttpCacheStats.incRemoteHits(url);\n const cachedResp = copyResponse(\n httpCache.httpResponse as HttpResponse<T>,\n true,\n );\n cachedResp.authorization = resp.authorization;\n return cachedResp;\n }\n\n return resp;\n }\n}\n"]}
@@ -34,7 +34,7 @@ async function getParsedContent(file) {
34
34
  // use file url paths to avoid issues with windows paths
35
35
  // typescript does not support file URL for import
36
36
  const tmpConfig = await import((0, url_1.pathToFileURL)(absoluteFilePath).href);
37
- /* v8 ignore next: not testable */
37
+ /* v8 ignore next -- not testable */
38
38
  let config = tmpConfig.default ? tmpConfig.default : tmpConfig;
39
39
  // Allow the config to be a function
40
40
  if (is_1.default.function_(config)) {
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/file.ts"],"names":[],"mappings":";;AAYA,4CAkCC;AAED,8BA6DC;AAED,wDAwBC;;AAvID,6BAAoC;AACpC,kEAAkC;AAClC,gEAA0B;AAC1B,0DAA0B;AAC1B,0DAA0B;AAE1B,+CAA4C;AAC5C,oDAAoD;AACpD,4CAAqD;AACrD,gDAAwD;AACxD,iCAAkD;AAE3C,KAAK,UAAU,gBAAgB,CAAC,IAAY;IACjD,IAAI,eAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,aAAa,EAAE,CAAC;QAC3C,OAAO,eAAK,CAAC,KAAK,CAAC,MAAM,IAAA,mBAAc,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,QAAQ,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,OAAO,IAAA,sBAAe,EAAC,MAAM,IAAA,mBAAc,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7D,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO;YACV,OAAO,IAAA,kBAAS,EACd,MAAM,IAAA,mBAAc,EAAC,IAAI,EAAE,MAAM,CAAC,EAClC,IAAI,CACa,CAAC;QACtB,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,gBAAgB,GAAG,eAAK,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC7C,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC;YAC/B,wDAAwD;YACxD,kDAAkD;YAClD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAA,mBAAa,EAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC;YACrE,kCAAkC;YAClC,IAAI,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,oCAAoC;YACpC,IAAI,YAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,MAAM,GAAG,MAAM,EAAE,CAAC;YACpB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,GAAsB;IACpD,MAAM,UAAU,GAAG,GAAG,CAAC,oBAAoB,IAAI,WAAW,CAAC;IAE3D,MAAM,gBAAgB,GAAG,MAAM,kBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACzD,IAAI,GAAG,CAAC,oBAAoB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAClD,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,EACd,iEAAiE,CAClE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,GAAc,EAAE,CAAC;IAE3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,eAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,eAAM,CAAC,KAAK,CAAC,8BAA8B,GAAG,UAAU,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,WAAW,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;YAC3D,eAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,EAAE,6BAA6B,CAAC,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;YACzC,eAAM,CAAC,KAAK,CACV,4DAA4D,GAAG,CAAC,OAAO,EAAE,CAC1E,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,GAAG,CAAC,OAAO,KAAK,uBAAuB,EAAE,CAAC;YACnD,eAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,GAAG,CAAC,oBAAoB,EAAE,CAAC;YACpC,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;YACrC,eAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,YAAE,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,YAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,mCAAmC,CAAC,CAAC;gBAC3D,SAAS;YACX,CAAC;YAED,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC;QACD,eAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,YAAY,EAAE,EACtB,sCAAsC,CACvC,CAAC;QACF,OAAO,MAAM,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,OAAO,IAAA,+BAAwB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACtD,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,GAAsB,EACtB,gBAAyB;IAEzB,MAAM,UAAU,GAAG,GAAG,CAAC,oBAAoB,CAAC;IAE5C,IAAI,YAAE,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,YAAE,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC;QACvE,OAAO;IACT,CAAC;IAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,kBAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,eAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,kCAAkC,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,4BAA4B,CAAC,CAAC;IACrD,CAAC;AACH,CAAC","sourcesContent":["import { pathToFileURL } from 'url';\nimport is from '@sindresorhus/is';\nimport fs from 'fs-extra';\nimport JSON5 from 'json5';\nimport upath from 'upath';\nimport type { AllConfig, RenovateConfig } from '../../../../config/types';\nimport { logger } from '../../../../logger';\nimport { parseJson } from '../../../../util/common';\nimport { readSystemFile } from '../../../../util/fs';\nimport { parseSingleYaml } from '../../../../util/yaml';\nimport { migrateAndValidateConfig } from './util';\n\nexport async function getParsedContent(file: string): Promise<RenovateConfig> {\n if (upath.basename(file) === '.renovaterc') {\n return JSON5.parse(await readSystemFile(file, 'utf8'));\n }\n switch (upath.extname(file)) {\n case '.yaml':\n case '.yml':\n return parseSingleYaml(await readSystemFile(file, 'utf8'));\n case '.json5':\n case '.json':\n return parseJson(\n await readSystemFile(file, 'utf8'),\n file,\n ) as RenovateConfig;\n case '.cjs':\n case '.mjs':\n case '.js': {\n const absoluteFilePath = upath.isAbsolute(file)\n ? file\n : `${process.cwd()}/${file}`;\n // use file url paths to avoid issues with windows paths\n // typescript does not support file URL for import\n const tmpConfig = await import(pathToFileURL(absoluteFilePath).href);\n /* v8 ignore next: not testable */\n let config = tmpConfig.default ? tmpConfig.default : tmpConfig;\n // Allow the config to be a function\n if (is.function_(config)) {\n config = config();\n }\n return config;\n }\n default:\n throw new Error('Unsupported file type');\n }\n}\n\nexport async function getConfig(env: NodeJS.ProcessEnv): Promise<AllConfig> {\n const configFile = env.RENOVATE_CONFIG_FILE ?? 'config.js';\n\n const configFileExists = await fs.pathExists(configFile);\n if (env.RENOVATE_CONFIG_FILE && !configFileExists) {\n logger.fatal(\n { configFile },\n `Custom config file specified in RENOVATE_CONFIG_FILE must exist`,\n );\n process.exit(1);\n }\n\n let config: AllConfig = {};\n\n if (!configFileExists) {\n logger.debug('No config file found on disk - skipping');\n return config;\n }\n\n logger.debug('Checking for config file in ' + configFile);\n try {\n config = await getParsedContent(configFile);\n } catch (err) {\n if (err instanceof SyntaxError || err instanceof TypeError) {\n logger.fatal({ error: err.stack }, 'Could not parse config file');\n process.exit(1);\n } else if (err instanceof ReferenceError) {\n logger.fatal(\n `Error parsing config file due to unresolved variable(s): ${err.message}`,\n );\n process.exit(1);\n } else if (err.message === 'Unsupported file type') {\n logger.fatal(err.message);\n process.exit(1);\n } else if (env.RENOVATE_CONFIG_FILE) {\n logger.debug({ err }, 'Parse error');\n logger.fatal('Error parsing config file');\n process.exit(1);\n }\n logger.debug('Error reading or parsing file - skipping');\n }\n\n if (is.nonEmptyObject(config.processEnv)) {\n const exportedKeys = [];\n for (const [key, value] of Object.entries(config.processEnv)) {\n if (!is.nonEmptyString(value)) {\n logger.error({ key }, 'processEnv value is not a string.');\n continue;\n }\n\n exportedKeys.push(key);\n process.env[key] = value;\n }\n logger.debug(\n { keys: exportedKeys },\n 'processEnv keys were exported to env',\n );\n delete config.processEnv;\n }\n\n return migrateAndValidateConfig(config, configFile);\n}\n\nexport async function deleteNonDefaultConfig(\n env: NodeJS.ProcessEnv,\n deleteConfigFile: boolean,\n): Promise<void> {\n const configFile = env.RENOVATE_CONFIG_FILE;\n\n if (is.undefined(configFile) || is.emptyStringOrWhitespace(configFile)) {\n return;\n }\n\n if (!deleteConfigFile) {\n return;\n }\n\n if (!(await fs.pathExists(configFile))) {\n return;\n }\n\n try {\n await fs.remove(configFile);\n logger.trace({ path: configFile }, 'config file successfully deleted');\n } catch (err) {\n logger.warn({ err }, 'error deleting config file');\n }\n}\n"]}
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/file.ts"],"names":[],"mappings":"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","sourcesContent":["import { pathToFileURL } from 'url';\nimport is from '@sindresorhus/is';\nimport fs from 'fs-extra';\nimport JSON5 from 'json5';\nimport upath from 'upath';\nimport type { AllConfig, RenovateConfig } from '../../../../config/types';\nimport { logger } from '../../../../logger';\nimport { parseJson } from '../../../../util/common';\nimport { readSystemFile } from '../../../../util/fs';\nimport { parseSingleYaml } from '../../../../util/yaml';\nimport { migrateAndValidateConfig } from './util';\n\nexport async function getParsedContent(file: string): Promise<RenovateConfig> {\n if (upath.basename(file) === '.renovaterc') {\n return JSON5.parse(await readSystemFile(file, 'utf8'));\n }\n switch (upath.extname(file)) {\n case '.yaml':\n case '.yml':\n return parseSingleYaml(await readSystemFile(file, 'utf8'));\n case '.json5':\n case '.json':\n return parseJson(\n await readSystemFile(file, 'utf8'),\n file,\n ) as RenovateConfig;\n case '.cjs':\n case '.mjs':\n case '.js': {\n const absoluteFilePath = upath.isAbsolute(file)\n ? file\n : `${process.cwd()}/${file}`;\n // use file url paths to avoid issues with windows paths\n // typescript does not support file URL for import\n const tmpConfig = await import(pathToFileURL(absoluteFilePath).href);\n /* v8 ignore next -- not testable */\n let config = tmpConfig.default ? tmpConfig.default : tmpConfig;\n // Allow the config to be a function\n if (is.function_(config)) {\n config = config();\n }\n return config;\n }\n default:\n throw new Error('Unsupported file type');\n }\n}\n\nexport async function getConfig(env: NodeJS.ProcessEnv): Promise<AllConfig> {\n const configFile = env.RENOVATE_CONFIG_FILE ?? 'config.js';\n\n const configFileExists = await fs.pathExists(configFile);\n if (env.RENOVATE_CONFIG_FILE && !configFileExists) {\n logger.fatal(\n { configFile },\n `Custom config file specified in RENOVATE_CONFIG_FILE must exist`,\n );\n process.exit(1);\n }\n\n let config: AllConfig = {};\n\n if (!configFileExists) {\n logger.debug('No config file found on disk - skipping');\n return config;\n }\n\n logger.debug('Checking for config file in ' + configFile);\n try {\n config = await getParsedContent(configFile);\n } catch (err) {\n if (err instanceof SyntaxError || err instanceof TypeError) {\n logger.fatal({ error: err.stack }, 'Could not parse config file');\n process.exit(1);\n } else if (err instanceof ReferenceError) {\n logger.fatal(\n `Error parsing config file due to unresolved variable(s): ${err.message}`,\n );\n process.exit(1);\n } else if (err.message === 'Unsupported file type') {\n logger.fatal(err.message);\n process.exit(1);\n } else if (env.RENOVATE_CONFIG_FILE) {\n logger.debug({ err }, 'Parse error');\n logger.fatal('Error parsing config file');\n process.exit(1);\n }\n logger.debug('Error reading or parsing file - skipping');\n }\n\n if (is.nonEmptyObject(config.processEnv)) {\n const exportedKeys = [];\n for (const [key, value] of Object.entries(config.processEnv)) {\n if (!is.nonEmptyString(value)) {\n logger.error({ key }, 'processEnv value is not a string.');\n continue;\n }\n\n exportedKeys.push(key);\n process.env[key] = value;\n }\n logger.debug(\n { keys: exportedKeys },\n 'processEnv keys were exported to env',\n );\n delete config.processEnv;\n }\n\n return migrateAndValidateConfig(config, configFile);\n}\n\nexport async function deleteNonDefaultConfig(\n env: NodeJS.ProcessEnv,\n deleteConfigFile: boolean,\n): Promise<void> {\n const configFile = env.RENOVATE_CONFIG_FILE;\n\n if (is.undefined(configFile) || is.emptyStringOrWhitespace(configFile)) {\n return;\n }\n\n if (!deleteConfigFile) {\n return;\n }\n\n if (!(await fs.pathExists(configFile))) {\n return;\n }\n\n try {\n await fs.remove(configFile);\n logger.trace({ path: configFile }, 'config file successfully deleted');\n } catch (err) {\n logger.warn({ err }, 'error deleting config file');\n }\n}\n"]}
@@ -168,7 +168,6 @@ async function lookup(config, packageFiles) {
168
168
  }
169
169
  async function update(config, branches) {
170
170
  let res;
171
- // istanbul ignore else
172
171
  if (config.repoIsOnboarded) {
173
172
  res = await (0, write_1.writeUpdates)(config, branches);
174
173
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extract-update.js","sourceRoot":"","sources":["../../../../lib/workers/repository/process/extract-update.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport type { RenovateConfig } from '../../../config/types';\nimport { logger } from '../../../logger';\nimport { hashMap } from '../../../modules/manager';\nimport type { PackageFile } from '../../../modules/manager/types';\nimport { scm } from '../../../modules/platform/scm';\nimport { getCache } from '../../../util/cache/repository';\nimport type { BaseBranchCache } from '../../../util/cache/repository/types';\nimport { checkGithubToken as ensureGithubToken } from '../../../util/check-token';\nimport { fingerprint } from '../../../util/fingerprint';\nimport type { BranchConfig } from '../../types';\nimport { extractAllDependencies } from '../extract';\nimport { generateFingerprintConfig } from '../extract/extract-fingerprint-config';\nimport { branchifyUpgrades } from '../updates/branchify';\nimport { fetchUpdates } from './fetch';\nimport { calculateLibYears } from './libyear';\nimport { sortBranches } from './sort';\nimport { Vulnerabilities } from './vulnerabilities';\nimport type { WriteUpdateResult } from './write';\nimport { writeUpdates } from './write';\n\n// Increment this if needing to cache bust ALL extract caches\nexport const EXTRACT_CACHE_REVISION = 1;\n\nexport interface ExtractResult {\n branches: BranchConfig[];\n branchList: string[];\n packageFiles: Record<string, PackageFile[]>;\n}\n\nexport interface StatsResult {\n fileCount: number;\n depCount: number;\n}\n\nexport interface Stats {\n managers: Record<string, StatsResult>;\n total: StatsResult;\n}\n\n// istanbul ignore next\nfunction extractStats(\n packageFiles: Record<string, PackageFile[]>,\n): Stats | null {\n if (!packageFiles) {\n return null;\n }\n const stats: Stats = {\n managers: {},\n total: {\n fileCount: 0,\n depCount: 0,\n },\n };\n for (const [manager, managerPackageFiles] of Object.entries(packageFiles)) {\n const fileCount = managerPackageFiles.length;\n let depCount = 0;\n for (const file of managerPackageFiles) {\n depCount += file.deps.length;\n }\n stats.managers[manager] = {\n fileCount,\n depCount,\n };\n stats.total.fileCount += fileCount;\n stats.total.depCount += depCount;\n }\n return stats;\n}\n\nexport function isCacheExtractValid(\n baseBranchSha: string,\n configHash: string,\n cachedExtract?: BaseBranchCache,\n): boolean {\n if (!cachedExtract) {\n return false;\n }\n\n if (!cachedExtract.revision) {\n logger.debug('Cached extract is missing revision, so cannot be used');\n return false;\n }\n\n if (cachedExtract.revision !== EXTRACT_CACHE_REVISION) {\n logger.debug(\n `Extract cache revision has changed (old=${cachedExtract.revision}, new=${EXTRACT_CACHE_REVISION})`,\n );\n return false;\n }\n\n if (!(cachedExtract.sha && cachedExtract.configHash)) {\n return false;\n }\n if (cachedExtract.sha !== baseBranchSha) {\n logger.debug(\n `Cached extract result cannot be used due to base branch SHA change (old=${cachedExtract.sha}, new=${baseBranchSha})`,\n );\n return false;\n }\n if (cachedExtract.configHash !== configHash) {\n logger.debug('Cached extract result cannot be used due to config change');\n return false;\n }\n if (!cachedExtract.extractionFingerprints) {\n logger.debug(\n 'Cached extract is missing extractionFingerprints, so cannot be used',\n );\n return false;\n }\n const changedManagers = new Set();\n for (const [manager, fingerprint] of Object.entries(\n cachedExtract.extractionFingerprints,\n )) {\n if (fingerprint !== hashMap.get(manager)) {\n changedManagers.add(manager);\n }\n }\n if (changedManagers.size > 0) {\n logger.debug(\n { changedManagers: [...changedManagers] },\n 'Manager fingerprint(s) have changed, extract cache cannot be reused',\n );\n return false;\n }\n logger.debug(\n `Cached extract for sha=${baseBranchSha} is valid and can be used`,\n );\n return true;\n}\n\nexport async function extract(\n config: RenovateConfig,\n): Promise<Record<string, PackageFile[]>> {\n logger.debug('extract()');\n const { baseBranch } = config;\n const baseBranchSha = await scm.getBranchCommit(baseBranch!);\n let packageFiles: Record<string, PackageFile[]>;\n const cache = getCache();\n cache.scan ??= {};\n const cachedExtract = cache.scan[baseBranch!];\n const configHash = fingerprint(generateFingerprintConfig(config));\n // istanbul ignore if\n if (isCacheExtractValid(baseBranchSha!, configHash, cachedExtract)) {\n packageFiles = cachedExtract.packageFiles;\n try {\n for (const files of Object.values(packageFiles)) {\n for (const file of files) {\n for (const dep of file.deps) {\n delete dep.updates;\n }\n }\n }\n logger.debug('Deleted cached dep updates');\n } catch (err) {\n logger.info({ err }, 'Error deleting cached dep updates');\n }\n } else {\n await scm.checkoutBranch(baseBranch!);\n const extractResult = (await extractAllDependencies(config)) || {};\n packageFiles = extractResult.packageFiles;\n const { extractionFingerprints } = extractResult;\n // TODO: fix types (#22198)\n cache.scan[baseBranch!] = {\n revision: EXTRACT_CACHE_REVISION,\n sha: baseBranchSha!,\n configHash,\n extractionFingerprints,\n packageFiles,\n };\n // Clean up cached branch extracts\n const baseBranches = is.nonEmptyArray(config.baseBranches)\n ? config.baseBranches\n : [baseBranch];\n Object.keys(cache.scan).forEach((branchName) => {\n if (!baseBranches.includes(branchName)) {\n delete cache.scan![branchName];\n }\n });\n }\n const stats = extractStats(packageFiles);\n logger.info(\n { baseBranch: config.baseBranch, stats },\n `Dependency extraction complete`,\n );\n logger.trace({ config: packageFiles }, 'packageFiles');\n ensureGithubToken(packageFiles);\n return packageFiles;\n}\n\nasync function fetchVulnerabilities(\n config: RenovateConfig,\n packageFiles: Record<string, PackageFile[]>,\n): Promise<void> {\n if (config.osvVulnerabilityAlerts) {\n logger.debug('fetchVulnerabilities() - osvVulnerabilityAlerts=true');\n try {\n const vulnerabilities = await Vulnerabilities.create();\n await vulnerabilities.appendVulnerabilityPackageRules(\n config,\n packageFiles,\n );\n } catch (err) {\n logger.warn({ err }, 'Unable to read vulnerability information');\n }\n }\n}\n\nexport async function lookup(\n config: RenovateConfig,\n packageFiles: Record<string, PackageFile[]>,\n): Promise<ExtractResult> {\n await fetchVulnerabilities(config, packageFiles);\n await fetchUpdates(config, packageFiles);\n calculateLibYears(config, packageFiles);\n const { branches, branchList } = await branchifyUpgrades(\n config,\n packageFiles,\n );\n logger.debug(\n { baseBranch: config.baseBranch, config: packageFiles },\n 'packageFiles with updates',\n );\n sortBranches(branches);\n return { branches, branchList, packageFiles };\n}\n\nexport async function update(\n config: RenovateConfig,\n branches: BranchConfig[],\n): Promise<WriteUpdateResult | undefined> {\n let res: WriteUpdateResult | undefined;\n // istanbul ignore else\n if (config.repoIsOnboarded) {\n res = await writeUpdates(config, branches);\n }\n\n return res;\n}\n"]}
1
+ {"version":3,"file":"extract-update.js","sourceRoot":"","sources":["../../../../lib/workers/repository/process/extract-update.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport type { RenovateConfig } from '../../../config/types';\nimport { logger } from '../../../logger';\nimport { hashMap } from '../../../modules/manager';\nimport type { PackageFile } from '../../../modules/manager/types';\nimport { scm } from '../../../modules/platform/scm';\nimport { getCache } from '../../../util/cache/repository';\nimport type { BaseBranchCache } from '../../../util/cache/repository/types';\nimport { checkGithubToken as ensureGithubToken } from '../../../util/check-token';\nimport { fingerprint } from '../../../util/fingerprint';\nimport type { BranchConfig } from '../../types';\nimport { extractAllDependencies } from '../extract';\nimport { generateFingerprintConfig } from '../extract/extract-fingerprint-config';\nimport { branchifyUpgrades } from '../updates/branchify';\nimport { fetchUpdates } from './fetch';\nimport { calculateLibYears } from './libyear';\nimport { sortBranches } from './sort';\nimport { Vulnerabilities } from './vulnerabilities';\nimport type { WriteUpdateResult } from './write';\nimport { writeUpdates } from './write';\n\n// Increment this if needing to cache bust ALL extract caches\nexport const EXTRACT_CACHE_REVISION = 1;\n\nexport interface ExtractResult {\n branches: BranchConfig[];\n branchList: string[];\n packageFiles: Record<string, PackageFile[]>;\n}\n\nexport interface StatsResult {\n fileCount: number;\n depCount: number;\n}\n\nexport interface Stats {\n managers: Record<string, StatsResult>;\n total: StatsResult;\n}\n\n// istanbul ignore next\nfunction extractStats(\n packageFiles: Record<string, PackageFile[]>,\n): Stats | null {\n if (!packageFiles) {\n return null;\n }\n const stats: Stats = {\n managers: {},\n total: {\n fileCount: 0,\n depCount: 0,\n },\n };\n for (const [manager, managerPackageFiles] of Object.entries(packageFiles)) {\n const fileCount = managerPackageFiles.length;\n let depCount = 0;\n for (const file of managerPackageFiles) {\n depCount += file.deps.length;\n }\n stats.managers[manager] = {\n fileCount,\n depCount,\n };\n stats.total.fileCount += fileCount;\n stats.total.depCount += depCount;\n }\n return stats;\n}\n\nexport function isCacheExtractValid(\n baseBranchSha: string,\n configHash: string,\n cachedExtract?: BaseBranchCache,\n): boolean {\n if (!cachedExtract) {\n return false;\n }\n\n if (!cachedExtract.revision) {\n logger.debug('Cached extract is missing revision, so cannot be used');\n return false;\n }\n\n if (cachedExtract.revision !== EXTRACT_CACHE_REVISION) {\n logger.debug(\n `Extract cache revision has changed (old=${cachedExtract.revision}, new=${EXTRACT_CACHE_REVISION})`,\n );\n return false;\n }\n\n if (!(cachedExtract.sha && cachedExtract.configHash)) {\n return false;\n }\n if (cachedExtract.sha !== baseBranchSha) {\n logger.debug(\n `Cached extract result cannot be used due to base branch SHA change (old=${cachedExtract.sha}, new=${baseBranchSha})`,\n );\n return false;\n }\n if (cachedExtract.configHash !== configHash) {\n logger.debug('Cached extract result cannot be used due to config change');\n return false;\n }\n if (!cachedExtract.extractionFingerprints) {\n logger.debug(\n 'Cached extract is missing extractionFingerprints, so cannot be used',\n );\n return false;\n }\n const changedManagers = new Set();\n for (const [manager, fingerprint] of Object.entries(\n cachedExtract.extractionFingerprints,\n )) {\n if (fingerprint !== hashMap.get(manager)) {\n changedManagers.add(manager);\n }\n }\n if (changedManagers.size > 0) {\n logger.debug(\n { changedManagers: [...changedManagers] },\n 'Manager fingerprint(s) have changed, extract cache cannot be reused',\n );\n return false;\n }\n logger.debug(\n `Cached extract for sha=${baseBranchSha} is valid and can be used`,\n );\n return true;\n}\n\nexport async function extract(\n config: RenovateConfig,\n): Promise<Record<string, PackageFile[]>> {\n logger.debug('extract()');\n const { baseBranch } = config;\n const baseBranchSha = await scm.getBranchCommit(baseBranch!);\n let packageFiles: Record<string, PackageFile[]>;\n const cache = getCache();\n cache.scan ??= {};\n const cachedExtract = cache.scan[baseBranch!];\n const configHash = fingerprint(generateFingerprintConfig(config));\n // istanbul ignore if\n if (isCacheExtractValid(baseBranchSha!, configHash, cachedExtract)) {\n packageFiles = cachedExtract.packageFiles;\n try {\n for (const files of Object.values(packageFiles)) {\n for (const file of files) {\n for (const dep of file.deps) {\n delete dep.updates;\n }\n }\n }\n logger.debug('Deleted cached dep updates');\n } catch (err) {\n logger.info({ err }, 'Error deleting cached dep updates');\n }\n } else {\n await scm.checkoutBranch(baseBranch!);\n const extractResult = (await extractAllDependencies(config)) || {};\n packageFiles = extractResult.packageFiles;\n const { extractionFingerprints } = extractResult;\n // TODO: fix types (#22198)\n cache.scan[baseBranch!] = {\n revision: EXTRACT_CACHE_REVISION,\n sha: baseBranchSha!,\n configHash,\n extractionFingerprints,\n packageFiles,\n };\n // Clean up cached branch extracts\n const baseBranches = is.nonEmptyArray(config.baseBranches)\n ? config.baseBranches\n : [baseBranch];\n Object.keys(cache.scan).forEach((branchName) => {\n if (!baseBranches.includes(branchName)) {\n delete cache.scan![branchName];\n }\n });\n }\n const stats = extractStats(packageFiles);\n logger.info(\n { baseBranch: config.baseBranch, stats },\n `Dependency extraction complete`,\n );\n logger.trace({ config: packageFiles }, 'packageFiles');\n ensureGithubToken(packageFiles);\n return packageFiles;\n}\n\nasync function fetchVulnerabilities(\n config: RenovateConfig,\n packageFiles: Record<string, PackageFile[]>,\n): Promise<void> {\n if (config.osvVulnerabilityAlerts) {\n logger.debug('fetchVulnerabilities() - osvVulnerabilityAlerts=true');\n try {\n const vulnerabilities = await Vulnerabilities.create();\n await vulnerabilities.appendVulnerabilityPackageRules(\n config,\n packageFiles,\n );\n } catch (err) {\n logger.warn({ err }, 'Unable to read vulnerability information');\n }\n }\n}\n\nexport async function lookup(\n config: RenovateConfig,\n packageFiles: Record<string, PackageFile[]>,\n): Promise<ExtractResult> {\n await fetchVulnerabilities(config, packageFiles);\n await fetchUpdates(config, packageFiles);\n calculateLibYears(config, packageFiles);\n const { branches, branchList } = await branchifyUpgrades(\n config,\n packageFiles,\n );\n logger.debug(\n { baseBranch: config.baseBranch, config: packageFiles },\n 'packageFiles with updates',\n );\n sortBranches(branches);\n return { branches, branchList, packageFiles };\n}\n\nexport async function update(\n config: RenovateConfig,\n branches: BranchConfig[],\n): Promise<WriteUpdateResult | undefined> {\n let res: WriteUpdateResult | undefined;\n if (config.repoIsOnboarded) {\n res = await writeUpdates(config, branches);\n }\n\n return res;\n}\n"]}
@@ -68,7 +68,6 @@ async function flattenUpdates(config, packageFiles) {
68
68
  for (const packageFile of files) {
69
69
  const packageFileConfig = (0, config_1.mergeChildConfig)(managerConfig, packageFile);
70
70
  const packagePath = packageFile.packageFile?.split('/');
71
- // istanbul ignore else: can never happen and would throw
72
71
  if (packagePath.length > 0) {
73
72
  packagePath.splice(-1, 1);
74
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"flatten.js","sourceRoot":"","sources":["../../../../lib/workers/repository/updates/flatten.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n filterConfig,\n getManagerConfig,\n mergeChildConfig,\n} from '../../../config';\nimport type { RenovateConfig } from '../../../config/types';\nimport { getDefaultConfig } from '../../../modules/datasource';\nimport { get } from '../../../modules/manager';\nimport { detectSemanticCommits } from '../../../util/git/semantic';\nimport { applyPackageRules } from '../../../util/package-rules';\nimport { regEx } from '../../../util/regex';\nimport * as template from '../../../util/template';\nimport { parseUrl } from '../../../util/url';\nimport type { BranchUpgradeConfig } from '../../types';\nimport { generateBranchName } from './branch-name';\n\nconst upper = (str: string): string =>\n str.charAt(0).toUpperCase() + str.substring(1);\n\nexport function sanitizeDepName(depName: string): string {\n return depName\n .replace('@types/', '')\n .replace('@', '')\n .replace(regEx(/\\//g), '-')\n .replace(regEx(/\\s+/g), '-')\n .replace(regEx(/:/g), '-')\n .replace(regEx(/-+/), '-')\n .toLowerCase();\n}\n\nexport function applyUpdateConfig(input: BranchUpgradeConfig): any {\n const updateConfig = { ...input };\n delete updateConfig.packageRules;\n // TODO: Remove next line once #8075 is complete\n updateConfig.depNameSanitized = updateConfig.depName\n ? sanitizeDepName(updateConfig.depName)\n : undefined;\n updateConfig.newNameSanitized = updateConfig.newName\n ? sanitizeDepName(updateConfig.newName)\n : undefined;\n if (updateConfig.sourceUrl) {\n const parsedSourceUrl = parseUrl(updateConfig.sourceUrl);\n if (parsedSourceUrl?.pathname) {\n updateConfig.sourceRepoSlug = parsedSourceUrl.pathname\n .replace(regEx(/^\\//), '') // remove leading slash\n .replace(regEx(/\\//g), '-') // change slashes to hyphens\n .replace(regEx(/-+/g), '-'); // remove multiple hyphens\n updateConfig.sourceRepo = parsedSourceUrl.pathname.replace(\n regEx(/^\\//),\n '',\n ); // remove leading slash\n updateConfig.sourceRepoOrg = updateConfig.sourceRepo.replace(\n regEx(/\\/.*/g),\n '',\n ); // remove everything after first slash\n updateConfig.sourceRepoName = updateConfig.sourceRepo.replace(\n regEx(/.*\\//g),\n '',\n ); // remove everything up to the last slash\n }\n }\n if (updateConfig.sourceDirectory) {\n updateConfig.sourceDirectory = template.compile(\n updateConfig.sourceDirectory,\n updateConfig,\n );\n }\n generateBranchName(updateConfig);\n return updateConfig;\n}\n\nexport async function flattenUpdates(\n config: RenovateConfig,\n packageFiles: Record<string, any[]>,\n): Promise<RenovateConfig[]> {\n const updates = [];\n const updateTypes = [\n 'major',\n 'minor',\n 'patch',\n 'pin',\n 'digest',\n 'lockFileMaintenance',\n 'replacement',\n ];\n for (const [manager, files] of Object.entries(packageFiles)) {\n const managerConfig = getManagerConfig(config, manager);\n for (const packageFile of files) {\n const packageFileConfig = mergeChildConfig(managerConfig, packageFile);\n const packagePath = packageFile.packageFile?.split('/');\n // istanbul ignore else: can never happen and would throw\n if (packagePath.length > 0) {\n packagePath.splice(-1, 1);\n }\n if (packagePath.length > 0) {\n packageFileConfig.parentDir = packagePath[packagePath.length - 1];\n packageFileConfig.packageFileDir = packagePath.join('/');\n } else {\n packageFileConfig.parentDir = '';\n packageFileConfig.packageFileDir = '';\n }\n let depIndex = 0;\n for (const dep of packageFile.deps) {\n if (dep.updates.length) {\n const depConfig = mergeChildConfig(packageFileConfig, dep);\n delete depConfig.deps;\n depConfig.depIndex = depIndex; // used for autoreplace\n for (const update of dep.updates) {\n let updateConfig = mergeChildConfig(depConfig, update);\n delete updateConfig.updates;\n if (updateConfig.updateType) {\n updateConfig[`is${upper(updateConfig.updateType)}`] = true;\n }\n if (updateConfig.updateTypes) {\n updateConfig.updateTypes.forEach((updateType: string) => {\n updateConfig[`is${upper(updateType)}`] = true;\n });\n }\n // apply config from datasource\n const datasourceConfig = await getDefaultConfig(\n depConfig.datasource,\n );\n updateConfig = mergeChildConfig(updateConfig, datasourceConfig);\n updateConfig = await applyPackageRules(\n updateConfig,\n 'datasource-merge',\n );\n // apply major/minor/patch/pin/digest\n updateConfig = mergeChildConfig(\n updateConfig,\n updateConfig[updateConfig.updateType],\n );\n for (const updateType of updateTypes) {\n delete updateConfig[updateType];\n }\n // Apply again in case any were added by the updateType config\n updateConfig = await applyPackageRules(\n updateConfig,\n 'update-type-merge',\n );\n updateConfig = applyUpdateConfig(updateConfig);\n updateConfig.baseDeps = packageFile.deps;\n update.branchName = updateConfig.branchName;\n updates.push(updateConfig);\n }\n }\n depIndex += 1;\n }\n if (\n get(manager, 'supportsLockFileMaintenance') &&\n packageFileConfig.lockFileMaintenance.enabled\n ) {\n // Apply lockFileMaintenance config before packageRules\n let lockFileConfig = mergeChildConfig(\n packageFileConfig,\n packageFileConfig.lockFileMaintenance,\n );\n lockFileConfig.updateType = 'lockFileMaintenance';\n lockFileConfig.isLockFileMaintenance = true;\n lockFileConfig = await applyPackageRules(\n lockFileConfig,\n 'lock-file-maintenance-merge',\n );\n // Apply lockFileMaintenance and packageRules again\n lockFileConfig = mergeChildConfig(\n lockFileConfig,\n lockFileConfig.lockFileMaintenance,\n );\n lockFileConfig = await applyPackageRules(\n lockFileConfig,\n 'lock-file-maintenance-merge-2',\n );\n // Remove unnecessary objects\n for (const updateType of updateTypes) {\n delete lockFileConfig[updateType];\n }\n delete lockFileConfig.packageRules;\n delete lockFileConfig.deps;\n generateBranchName(lockFileConfig);\n updates.push(lockFileConfig);\n }\n if (get(manager, 'updateLockedDependency')) {\n for (const lockFile of packageFileConfig.lockFiles || []) {\n const lockfileRemediations = config.remediations as Record<\n string,\n Record<string, any>[]\n >;\n const remediations = lockfileRemediations?.[lockFile];\n if (remediations) {\n for (const remediation of remediations) {\n let updateConfig = mergeChildConfig(\n packageFileConfig,\n remediation,\n );\n updateConfig = mergeChildConfig(\n updateConfig,\n config.vulnerabilityAlerts,\n );\n delete updateConfig.vulnerabilityAlerts;\n updateConfig.isVulnerabilityAlert = true;\n updateConfig.isRemediation = true;\n updateConfig.lockFile = lockFile;\n updateConfig.currentValue = updateConfig.currentVersion;\n updateConfig.newValue = updateConfig.newVersion;\n updateConfig = applyUpdateConfig(updateConfig);\n updateConfig.enabled = true;\n updates.push(updateConfig);\n }\n }\n }\n }\n }\n }\n if (config.semanticCommits === 'auto') {\n const semanticCommits = await detectSemanticCommits();\n for (const update of updates) {\n update.semanticCommits = semanticCommits;\n }\n }\n return updates\n .filter((update) => update.enabled)\n .map(({ vulnerabilityAlerts, ...update }) => update)\n .map((update) => filterConfig(update, 'branch'));\n}\n"]}
1
+ {"version":3,"file":"flatten.js","sourceRoot":"","sources":["../../../../lib/workers/repository/updates/flatten.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n filterConfig,\n getManagerConfig,\n mergeChildConfig,\n} from '../../../config';\nimport type { RenovateConfig } from '../../../config/types';\nimport { getDefaultConfig } from '../../../modules/datasource';\nimport { get } from '../../../modules/manager';\nimport { detectSemanticCommits } from '../../../util/git/semantic';\nimport { applyPackageRules } from '../../../util/package-rules';\nimport { regEx } from '../../../util/regex';\nimport * as template from '../../../util/template';\nimport { parseUrl } from '../../../util/url';\nimport type { BranchUpgradeConfig } from '../../types';\nimport { generateBranchName } from './branch-name';\n\nconst upper = (str: string): string =>\n str.charAt(0).toUpperCase() + str.substring(1);\n\nexport function sanitizeDepName(depName: string): string {\n return depName\n .replace('@types/', '')\n .replace('@', '')\n .replace(regEx(/\\//g), '-')\n .replace(regEx(/\\s+/g), '-')\n .replace(regEx(/:/g), '-')\n .replace(regEx(/-+/), '-')\n .toLowerCase();\n}\n\nexport function applyUpdateConfig(input: BranchUpgradeConfig): any {\n const updateConfig = { ...input };\n delete updateConfig.packageRules;\n // TODO: Remove next line once #8075 is complete\n updateConfig.depNameSanitized = updateConfig.depName\n ? sanitizeDepName(updateConfig.depName)\n : undefined;\n updateConfig.newNameSanitized = updateConfig.newName\n ? sanitizeDepName(updateConfig.newName)\n : undefined;\n if (updateConfig.sourceUrl) {\n const parsedSourceUrl = parseUrl(updateConfig.sourceUrl);\n if (parsedSourceUrl?.pathname) {\n updateConfig.sourceRepoSlug = parsedSourceUrl.pathname\n .replace(regEx(/^\\//), '') // remove leading slash\n .replace(regEx(/\\//g), '-') // change slashes to hyphens\n .replace(regEx(/-+/g), '-'); // remove multiple hyphens\n updateConfig.sourceRepo = parsedSourceUrl.pathname.replace(\n regEx(/^\\//),\n '',\n ); // remove leading slash\n updateConfig.sourceRepoOrg = updateConfig.sourceRepo.replace(\n regEx(/\\/.*/g),\n '',\n ); // remove everything after first slash\n updateConfig.sourceRepoName = updateConfig.sourceRepo.replace(\n regEx(/.*\\//g),\n '',\n ); // remove everything up to the last slash\n }\n }\n if (updateConfig.sourceDirectory) {\n updateConfig.sourceDirectory = template.compile(\n updateConfig.sourceDirectory,\n updateConfig,\n );\n }\n generateBranchName(updateConfig);\n return updateConfig;\n}\n\nexport async function flattenUpdates(\n config: RenovateConfig,\n packageFiles: Record<string, any[]>,\n): Promise<RenovateConfig[]> {\n const updates = [];\n const updateTypes = [\n 'major',\n 'minor',\n 'patch',\n 'pin',\n 'digest',\n 'lockFileMaintenance',\n 'replacement',\n ];\n for (const [manager, files] of Object.entries(packageFiles)) {\n const managerConfig = getManagerConfig(config, manager);\n for (const packageFile of files) {\n const packageFileConfig = mergeChildConfig(managerConfig, packageFile);\n const packagePath = packageFile.packageFile?.split('/');\n if (packagePath.length > 0) {\n packagePath.splice(-1, 1);\n }\n if (packagePath.length > 0) {\n packageFileConfig.parentDir = packagePath[packagePath.length - 1];\n packageFileConfig.packageFileDir = packagePath.join('/');\n } else {\n packageFileConfig.parentDir = '';\n packageFileConfig.packageFileDir = '';\n }\n let depIndex = 0;\n for (const dep of packageFile.deps) {\n if (dep.updates.length) {\n const depConfig = mergeChildConfig(packageFileConfig, dep);\n delete depConfig.deps;\n depConfig.depIndex = depIndex; // used for autoreplace\n for (const update of dep.updates) {\n let updateConfig = mergeChildConfig(depConfig, update);\n delete updateConfig.updates;\n if (updateConfig.updateType) {\n updateConfig[`is${upper(updateConfig.updateType)}`] = true;\n }\n if (updateConfig.updateTypes) {\n updateConfig.updateTypes.forEach((updateType: string) => {\n updateConfig[`is${upper(updateType)}`] = true;\n });\n }\n // apply config from datasource\n const datasourceConfig = await getDefaultConfig(\n depConfig.datasource,\n );\n updateConfig = mergeChildConfig(updateConfig, datasourceConfig);\n updateConfig = await applyPackageRules(\n updateConfig,\n 'datasource-merge',\n );\n // apply major/minor/patch/pin/digest\n updateConfig = mergeChildConfig(\n updateConfig,\n updateConfig[updateConfig.updateType],\n );\n for (const updateType of updateTypes) {\n delete updateConfig[updateType];\n }\n // Apply again in case any were added by the updateType config\n updateConfig = await applyPackageRules(\n updateConfig,\n 'update-type-merge',\n );\n updateConfig = applyUpdateConfig(updateConfig);\n updateConfig.baseDeps = packageFile.deps;\n update.branchName = updateConfig.branchName;\n updates.push(updateConfig);\n }\n }\n depIndex += 1;\n }\n if (\n get(manager, 'supportsLockFileMaintenance') &&\n packageFileConfig.lockFileMaintenance.enabled\n ) {\n // Apply lockFileMaintenance config before packageRules\n let lockFileConfig = mergeChildConfig(\n packageFileConfig,\n packageFileConfig.lockFileMaintenance,\n );\n lockFileConfig.updateType = 'lockFileMaintenance';\n lockFileConfig.isLockFileMaintenance = true;\n lockFileConfig = await applyPackageRules(\n lockFileConfig,\n 'lock-file-maintenance-merge',\n );\n // Apply lockFileMaintenance and packageRules again\n lockFileConfig = mergeChildConfig(\n lockFileConfig,\n lockFileConfig.lockFileMaintenance,\n );\n lockFileConfig = await applyPackageRules(\n lockFileConfig,\n 'lock-file-maintenance-merge-2',\n );\n // Remove unnecessary objects\n for (const updateType of updateTypes) {\n delete lockFileConfig[updateType];\n }\n delete lockFileConfig.packageRules;\n delete lockFileConfig.deps;\n generateBranchName(lockFileConfig);\n updates.push(lockFileConfig);\n }\n if (get(manager, 'updateLockedDependency')) {\n for (const lockFile of packageFileConfig.lockFiles || []) {\n const lockfileRemediations = config.remediations as Record<\n string,\n Record<string, any>[]\n >;\n const remediations = lockfileRemediations?.[lockFile];\n if (remediations) {\n for (const remediation of remediations) {\n let updateConfig = mergeChildConfig(\n packageFileConfig,\n remediation,\n );\n updateConfig = mergeChildConfig(\n updateConfig,\n config.vulnerabilityAlerts,\n );\n delete updateConfig.vulnerabilityAlerts;\n updateConfig.isVulnerabilityAlert = true;\n updateConfig.isRemediation = true;\n updateConfig.lockFile = lockFile;\n updateConfig.currentValue = updateConfig.currentVersion;\n updateConfig.newValue = updateConfig.newVersion;\n updateConfig = applyUpdateConfig(updateConfig);\n updateConfig.enabled = true;\n updates.push(updateConfig);\n }\n }\n }\n }\n }\n }\n if (config.semanticCommits === 'auto') {\n const semanticCommits = await detectSemanticCommits();\n for (const update of updates) {\n update.semanticCommits = semanticCommits;\n }\n }\n return updates\n .filter((update) => update.enabled)\n .map(({ vulnerabilityAlerts, ...update }) => update)\n .map((update) => filterConfig(update, 'branch'));\n}\n"]}
@@ -239,7 +239,6 @@ function generateBranchConfig(upgrades) {
239
239
  }
240
240
  // Delete group config regardless of whether it was applied
241
241
  delete upgrade.group;
242
- // istanbul ignore else
243
242
  if (toVersions.length > 1 &&
244
243
  toValues.size > 1 &&
245
244
  newValue.length > 1 &&