renovate 43.42.0 → 43.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/presets/index.js +22 -15
- package/dist/config/presets/index.js.map +1 -1
- package/dist/config/presets/internal/index.js +1 -14
- package/dist/config/presets/internal/index.js.map +1 -1
- package/dist/modules/manager/fingerprint.generated.js +1 -1
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/gradle/artifacts.js +2 -2
- package/dist/modules/manager/gradle/artifacts.js.map +1 -1
- package/package.json +3 -3
- package/renovate-schema.json +2 -2
|
@@ -18,7 +18,7 @@ import { gitea_exports } from "./gitea/index.js";
|
|
|
18
18
|
import { github_exports } from "./github/index.js";
|
|
19
19
|
import { gitlab_exports } from "./gitlab/index.js";
|
|
20
20
|
import { http_exports } from "./http/index.js";
|
|
21
|
-
import {
|
|
21
|
+
import { getPreset as getPreset$1 } from "./internal/index.js";
|
|
22
22
|
import { local_exports } from "./local/index.js";
|
|
23
23
|
import { npm_exports } from "./npm/index.js";
|
|
24
24
|
import { isArray, isNullOrUndefined, isObject, isString } from "@sindresorhus/is";
|
|
@@ -30,7 +30,6 @@ const presetSources = {
|
|
|
30
30
|
github: github_exports,
|
|
31
31
|
gitlab: gitlab_exports,
|
|
32
32
|
http: http_exports,
|
|
33
|
-
internal: internal_exports,
|
|
34
33
|
local: local_exports,
|
|
35
34
|
npm: npm_exports
|
|
36
35
|
};
|
|
@@ -62,20 +61,28 @@ async function getPreset(preset, baseConfig) {
|
|
|
62
61
|
if (newPreset) return getPreset(newPreset, baseConfig);
|
|
63
62
|
if (newPreset === null) return {};
|
|
64
63
|
const { presetSource, repo, presetPath, presetName, tag, params, rawParams } = parsePreset(preset);
|
|
65
|
-
const cacheKey = `preset:${preset}`;
|
|
66
|
-
const presetCachePersistence = GlobalConfig.get("presetCachePersistence", false);
|
|
67
64
|
let presetConfig;
|
|
68
|
-
if (
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
if (presetCachePersistence) await
|
|
78
|
-
else
|
|
65
|
+
if (presetSource === "internal") presetConfig = getPreset$1({
|
|
66
|
+
repo,
|
|
67
|
+
presetPath,
|
|
68
|
+
presetName,
|
|
69
|
+
tag
|
|
70
|
+
});
|
|
71
|
+
else {
|
|
72
|
+
const cacheKey = `preset:${preset}`;
|
|
73
|
+
const presetCachePersistence = GlobalConfig.get("presetCachePersistence", false);
|
|
74
|
+
if (presetCachePersistence) presetConfig = await get$1(presetCacheNamespace, cacheKey);
|
|
75
|
+
else presetConfig = get(cacheKey);
|
|
76
|
+
if (isNullOrUndefined(presetConfig)) {
|
|
77
|
+
presetConfig = await presetSources[presetSource].getPreset({
|
|
78
|
+
repo,
|
|
79
|
+
presetPath,
|
|
80
|
+
presetName,
|
|
81
|
+
tag
|
|
82
|
+
});
|
|
83
|
+
if (presetCachePersistence) await set$1(presetCacheNamespace, cacheKey, presetConfig, 15);
|
|
84
|
+
else set(cacheKey, presetConfig);
|
|
85
|
+
}
|
|
79
86
|
}
|
|
80
87
|
if (!presetConfig) throw new Error(PRESET_DEP_NOT_FOUND);
|
|
81
88
|
logger.trace({ presetConfig }, `Found preset ${preset}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["packageCache.get","memCache.get","packageCache.set","migration.migrateConfig","massage.massageConfig","template.compile"],"sources":["../../../lib/config/presets/index.ts"],"sourcesContent":["import {\n isArray,\n isNullOrUndefined,\n isObject,\n isString,\n} from '@sindresorhus/is';\nimport {\n CONFIG_VALIDATION,\n PLATFORM_RATE_LIMIT_EXCEEDED,\n} from '../../constants/error-messages.ts';\nimport { logger } from '../../logger/index.ts';\nimport { ExternalHostError } from '../../types/errors/external-host-error.ts';\nimport * as memCache from '../../util/cache/memory/index.ts';\nimport * as packageCache from '../../util/cache/package/index.ts';\nimport { clone } from '../../util/clone.ts';\nimport { regEx } from '../../util/regex.ts';\nimport * as template from '../../util/template/index.ts';\nimport { GlobalConfig } from '../global.ts';\nimport * as massage from '../massage.ts';\nimport * as migration from '../migration.ts';\nimport type { AllConfig, RenovateConfig } from '../types.ts';\nimport { mergeChildConfig } from '../utils.ts';\nimport { removedPresets } from './common.ts';\nimport * as forgejo from './forgejo/index.ts';\nimport * as gitea from './gitea/index.ts';\nimport * as github from './github/index.ts';\nimport * as gitlab from './gitlab/index.ts';\nimport * as http from './http/index.ts';\nimport * as internal from './internal/index.ts';\nimport * as local from './local/index.ts';\nimport * as npm from './npm/index.ts';\nimport { parsePreset } from './parse.ts';\nimport type { Preset, PresetApi } from './types.ts';\nimport {\n PRESET_DEP_NOT_FOUND,\n PRESET_INVALID,\n PRESET_INVALID_JSON,\n PRESET_NOT_FOUND,\n PRESET_PROHIBITED_SUBPRESET,\n PRESET_RENOVATE_CONFIG_NOT_FOUND,\n} from './util.ts';\n\nconst presetSources: Record<string, PresetApi> = {\n forgejo,\n gitea,\n github,\n gitlab,\n http,\n internal,\n local,\n npm,\n};\n\nconst presetCacheNamespace = 'preset';\n\nexport function replaceArgs(\n obj: string,\n argMapping: Record<string, any>,\n): string;\nexport function replaceArgs(\n obj: string[],\n argMapping: Record<string, any>,\n): string[];\nexport function replaceArgs(\n obj: Record<string, any>,\n argMapping: Record<string, any>,\n): Record<string, any>;\nexport function replaceArgs(\n obj: Record<string, any>[],\n argMapping: Record<string, any>,\n): Record<string, any>[];\n\n/**\n * TODO: fix me #22198\n * @param obj\n * @param argMapping\n */\nexport function replaceArgs(obj: any, argMapping: Record<string, any>): any;\nexport function replaceArgs(\n obj: string | string[] | Record<string, any> | Record<string, any>[],\n argMapping: Record<string, any>,\n): any {\n if (isString(obj)) {\n let returnStr = obj;\n for (const [arg, argVal] of Object.entries(argMapping)) {\n const re = regEx(`{{${arg}}}`, 'g', false);\n returnStr = returnStr.replace(re, argVal);\n }\n return returnStr;\n }\n if (isArray(obj)) {\n const returnArray = [];\n for (const item of obj) {\n returnArray.push(replaceArgs(item, argMapping));\n }\n return returnArray;\n }\n if (isObject(obj)) {\n const returnObj: Record<string, any> = {};\n for (const [key, val] of Object.entries(obj)) {\n returnObj[key] = replaceArgs(val, argMapping);\n }\n return returnObj;\n }\n return obj;\n}\n\nexport async function getPreset(\n preset: string,\n baseConfig?: RenovateConfig,\n): Promise<RenovateConfig> {\n logger.trace(`getPreset(${preset})`);\n // Check if the preset has been removed or replaced\n const newPreset = removedPresets[preset];\n if (newPreset) {\n return getPreset(newPreset, baseConfig);\n }\n if (newPreset === null) {\n return {};\n }\n const { presetSource, repo, presetPath, presetName, tag, params, rawParams } =\n parsePreset(preset);\n const cacheKey = `preset:${preset}`;\n const presetCachePersistence = GlobalConfig.get(\n 'presetCachePersistence',\n false,\n );\n\n let presetConfig: Preset | null | undefined;\n\n if (presetCachePersistence) {\n presetConfig = await packageCache.get(presetCacheNamespace, cacheKey);\n } else {\n presetConfig = memCache.get(cacheKey);\n }\n\n if (isNullOrUndefined(presetConfig)) {\n presetConfig = await presetSources[presetSource].getPreset({\n repo,\n presetPath,\n presetName,\n tag,\n });\n if (presetCachePersistence) {\n await packageCache.set(presetCacheNamespace, cacheKey, presetConfig, 15);\n } else {\n memCache.set(cacheKey, presetConfig);\n }\n }\n if (!presetConfig) {\n throw new Error(PRESET_DEP_NOT_FOUND);\n }\n logger.trace({ presetConfig }, `Found preset ${preset}`);\n if (params) {\n const argMapping: Record<string, string> = {};\n for (const [index, value] of params.entries()) {\n argMapping[`arg${index}`] = value;\n }\n if (rawParams) {\n argMapping.args = rawParams;\n }\n presetConfig = replaceArgs(presetConfig, argMapping);\n }\n logger.trace({ presetConfig }, `Applied params to preset ${preset}`);\n const presetKeys = Object.keys(presetConfig);\n if (\n presetKeys.length === 2 &&\n presetKeys.includes('description') &&\n presetKeys.includes('extends')\n ) {\n // preset is just a collection of other presets\n delete presetConfig.description;\n }\n const packageListKeys = ['description', 'matchPackageNames'];\n if (presetKeys.every((key) => packageListKeys.includes(key))) {\n delete presetConfig.description;\n }\n const { migratedConfig } = migration.migrateConfig(presetConfig);\n return massage.massageConfig(migratedConfig);\n}\n\nexport interface ResolveConfigPresetsResult {\n config: AllConfig;\n /** when resolving the given configuration, which internal/shared presets were discovered */\n visitedPresets: {\n /** which internal/shared presets were merged into the final config */\n merged: string[];\n };\n}\n\nexport async function resolveConfigPresets(\n inputConfig: AllConfig,\n baseConfig?: RenovateConfig,\n _ignorePresets?: string[],\n existingPresets: string[] = [],\n): Promise<ResolveConfigPresetsResult> {\n const allVisitedPresets = {\n merged: new Set<string>(),\n };\n\n let ignorePresets = clone(_ignorePresets);\n if (!ignorePresets || ignorePresets.length === 0) {\n ignorePresets = inputConfig.ignorePresets ?? [];\n }\n logger.trace(\n { config: inputConfig, existingPresets },\n 'resolveConfigPresets',\n );\n let config: AllConfig = {};\n // First, merge all the preset configs from left to right\n if (inputConfig.extends?.length) {\n // Compile templates\n inputConfig.extends = inputConfig.extends.map((tmpl) =>\n template.compile(tmpl, {}),\n );\n for (const preset of inputConfig.extends) {\n if (shouldResolvePreset(preset, existingPresets, ignorePresets)) {\n logger.trace(`Resolving preset \"${preset}\"`);\n const fetchedPreset = await fetchPreset(\n preset,\n baseConfig,\n inputConfig,\n existingPresets,\n );\n const { config: presetConfig, visitedPresets } =\n await resolveConfigPresets(\n fetchedPreset,\n baseConfig ?? inputConfig,\n ignorePresets,\n existingPresets.concat([preset]),\n );\n if (inputConfig?.ignoreDeps?.length === 0) {\n delete presetConfig.description;\n }\n config = mergeChildConfig(config, presetConfig);\n allVisitedPresets.merged.add(preset);\n // then also make sure we've noted any nested presets we've merged\n for (const mergedPreset of visitedPresets.merged) {\n allVisitedPresets.merged.add(mergedPreset);\n }\n }\n }\n }\n logger.trace({ config }, `Post-preset resolve config`);\n // Now assign \"regular\" config on top\n config = mergeChildConfig(config, inputConfig);\n delete config.extends;\n delete config.ignorePresets;\n logger.trace({ config }, `Post-merge resolve config`);\n for (const [key, val] of Object.entries(config) as [\n keyof AllConfig,\n unknown,\n ][]) {\n const ignoredKeys = ['content', 'onboardingConfig'];\n if (isArray(val)) {\n // Resolve nested objects inside arrays\n config[key] = [] as never; // type can't be narrowed\n for (const element of val) {\n if (isObject(element)) {\n const { config: presetConfig, visitedPresets: visited } =\n await resolveConfigPresets(\n element as RenovateConfig,\n baseConfig,\n ignorePresets,\n existingPresets,\n );\n (config[key] as RenovateConfig[]).push(presetConfig);\n\n for (const mergedPreset of visited.merged) {\n allVisitedPresets.merged.add(mergedPreset);\n }\n } else {\n (config[key] as unknown[]).push(element);\n }\n }\n } else if (isObject(val) && !ignoredKeys.includes(key)) {\n // Resolve nested objects\n logger.trace(`Resolving object \"${key}\"`);\n const { config: presetConfig, visitedPresets: visited } =\n await resolveConfigPresets(\n val as RenovateConfig,\n baseConfig,\n ignorePresets,\n existingPresets,\n );\n config[key] = presetConfig as never; // type can't be narrowed\n\n for (const mergedPreset of visited.merged) {\n allVisitedPresets.merged.add(mergedPreset);\n }\n }\n }\n logger.trace({ config: inputConfig }, 'Input config');\n logger.trace(\n { config, visitedPresets: allVisitedPresets },\n 'Resolved config',\n );\n\n return {\n config,\n visitedPresets: {\n merged: Array.from(allVisitedPresets.merged),\n },\n };\n}\n\nasync function fetchPreset(\n preset: string,\n baseConfig: RenovateConfig | undefined,\n inputConfig: AllConfig,\n existingPresets: string[],\n): Promise<AllConfig> {\n try {\n return await getPreset(preset, baseConfig ?? inputConfig);\n } catch (err) {\n logger.debug({ preset, err }, 'Preset fetch error');\n if (err instanceof ExternalHostError) {\n throw err;\n }\n if (err.message === PLATFORM_RATE_LIMIT_EXCEEDED) {\n throw err;\n }\n const error = new Error(CONFIG_VALIDATION);\n if (err.message === PRESET_DEP_NOT_FOUND) {\n error.validationError = `Cannot find preset's package (${preset})`;\n } else if (err.message === PRESET_RENOVATE_CONFIG_NOT_FOUND) {\n error.validationError = `Preset package is missing a renovate-config entry (${preset})`;\n } else if (err.message === PRESET_NOT_FOUND) {\n error.validationError = `Preset name not found within published preset config (${preset})`;\n } else if (err.message === PRESET_INVALID) {\n error.validationError = `Preset is invalid (${preset})`;\n } else if (err.message === PRESET_PROHIBITED_SUBPRESET) {\n error.validationError = `Sub-presets cannot be combined with a custom path (${preset})`;\n } else if (err.message === PRESET_INVALID_JSON) {\n error.validationError = `Preset is invalid JSON (${preset})`;\n } else {\n error.validationError = `Preset caused unexpected error (${preset})`;\n }\n if (existingPresets.length) {\n error.validationError +=\n '. Note: this is a *nested* preset so please contact the preset author if you are unable to fix it yourself.';\n }\n logger.info(\n { validationError: error.validationError },\n 'Throwing preset error',\n );\n throw error;\n }\n}\n\nfunction shouldResolvePreset(\n preset: string,\n existingPresets: string[],\n ignorePresets: string[],\n): boolean {\n if (existingPresets.includes(preset)) {\n logger.debug(\n `Already seen preset ${preset} in [${existingPresets.join(', ')}]`,\n );\n return false;\n }\n if (ignorePresets.includes(preset)) {\n logger.debug(\n `Ignoring preset ${preset} in [${existingPresets.join(', ')}]`,\n );\n return false;\n }\n return true;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["internal.getPreset","packageCache.get","memCache.get","packageCache.set","migration.migrateConfig","massage.massageConfig","template.compile"],"sources":["../../../lib/config/presets/index.ts"],"sourcesContent":["import {\n isArray,\n isNullOrUndefined,\n isObject,\n isString,\n} from '@sindresorhus/is';\nimport {\n CONFIG_VALIDATION,\n PLATFORM_RATE_LIMIT_EXCEEDED,\n} from '../../constants/error-messages.ts';\nimport { logger } from '../../logger/index.ts';\nimport { ExternalHostError } from '../../types/errors/external-host-error.ts';\nimport * as memCache from '../../util/cache/memory/index.ts';\nimport * as packageCache from '../../util/cache/package/index.ts';\nimport { clone } from '../../util/clone.ts';\nimport { regEx } from '../../util/regex.ts';\nimport * as template from '../../util/template/index.ts';\nimport { GlobalConfig } from '../global.ts';\nimport * as massage from '../massage.ts';\nimport * as migration from '../migration.ts';\nimport type { AllConfig, RenovateConfig } from '../types.ts';\nimport { mergeChildConfig } from '../utils.ts';\nimport { removedPresets } from './common.ts';\nimport * as forgejo from './forgejo/index.ts';\nimport * as gitea from './gitea/index.ts';\nimport * as github from './github/index.ts';\nimport * as gitlab from './gitlab/index.ts';\nimport * as http from './http/index.ts';\nimport * as internal from './internal/index.ts';\nimport * as local from './local/index.ts';\nimport * as npm from './npm/index.ts';\nimport { parsePreset } from './parse.ts';\nimport type { Preset, PresetApi } from './types.ts';\nimport {\n PRESET_DEP_NOT_FOUND,\n PRESET_INVALID,\n PRESET_INVALID_JSON,\n PRESET_NOT_FOUND,\n PRESET_PROHIBITED_SUBPRESET,\n PRESET_RENOVATE_CONFIG_NOT_FOUND,\n} from './util.ts';\n\nconst presetSources: Record<string, PresetApi> = {\n forgejo,\n gitea,\n github,\n gitlab,\n http,\n local,\n npm,\n};\n\nconst presetCacheNamespace = 'preset';\n\nexport function replaceArgs(\n obj: string,\n argMapping: Record<string, any>,\n): string;\nexport function replaceArgs(\n obj: string[],\n argMapping: Record<string, any>,\n): string[];\nexport function replaceArgs(\n obj: Record<string, any>,\n argMapping: Record<string, any>,\n): Record<string, any>;\nexport function replaceArgs(\n obj: Record<string, any>[],\n argMapping: Record<string, any>,\n): Record<string, any>[];\n\n/**\n * TODO: fix me #22198\n * @param obj\n * @param argMapping\n */\nexport function replaceArgs(obj: any, argMapping: Record<string, any>): any;\nexport function replaceArgs(\n obj: string | string[] | Record<string, any> | Record<string, any>[],\n argMapping: Record<string, any>,\n): any {\n if (isString(obj)) {\n let returnStr = obj;\n for (const [arg, argVal] of Object.entries(argMapping)) {\n const re = regEx(`{{${arg}}}`, 'g', false);\n returnStr = returnStr.replace(re, argVal);\n }\n return returnStr;\n }\n if (isArray(obj)) {\n const returnArray = [];\n for (const item of obj) {\n returnArray.push(replaceArgs(item, argMapping));\n }\n return returnArray;\n }\n if (isObject(obj)) {\n const returnObj: Record<string, any> = {};\n for (const [key, val] of Object.entries(obj)) {\n returnObj[key] = replaceArgs(val, argMapping);\n }\n return returnObj;\n }\n return obj;\n}\n\nexport async function getPreset(\n preset: string,\n baseConfig?: RenovateConfig,\n): Promise<RenovateConfig> {\n logger.trace(`getPreset(${preset})`);\n // Check if the preset has been removed or replaced\n const newPreset = removedPresets[preset];\n if (newPreset) {\n return getPreset(newPreset, baseConfig);\n }\n if (newPreset === null) {\n return {};\n }\n const { presetSource, repo, presetPath, presetName, tag, params, rawParams } =\n parsePreset(preset);\n\n let presetConfig: Preset | null | undefined;\n\n if (presetSource === 'internal') {\n presetConfig = internal.getPreset({\n repo,\n presetPath,\n presetName,\n tag,\n });\n } else {\n const cacheKey = `preset:${preset}`;\n const presetCachePersistence = GlobalConfig.get(\n 'presetCachePersistence',\n false,\n );\n\n if (presetCachePersistence) {\n presetConfig = await packageCache.get(presetCacheNamespace, cacheKey);\n } else {\n presetConfig = memCache.get(cacheKey);\n }\n\n if (isNullOrUndefined(presetConfig)) {\n presetConfig = await presetSources[presetSource].getPreset({\n repo,\n presetPath,\n presetName,\n tag,\n });\n if (presetCachePersistence) {\n await packageCache.set(\n presetCacheNamespace,\n cacheKey,\n presetConfig,\n 15,\n );\n } else {\n memCache.set(cacheKey, presetConfig);\n }\n }\n }\n\n if (!presetConfig) {\n throw new Error(PRESET_DEP_NOT_FOUND);\n }\n logger.trace({ presetConfig }, `Found preset ${preset}`);\n if (params) {\n const argMapping: Record<string, string> = {};\n for (const [index, value] of params.entries()) {\n argMapping[`arg${index}`] = value;\n }\n if (rawParams) {\n argMapping.args = rawParams;\n }\n presetConfig = replaceArgs(presetConfig, argMapping);\n }\n logger.trace({ presetConfig }, `Applied params to preset ${preset}`);\n const presetKeys = Object.keys(presetConfig);\n if (\n presetKeys.length === 2 &&\n presetKeys.includes('description') &&\n presetKeys.includes('extends')\n ) {\n // preset is just a collection of other presets\n delete presetConfig.description;\n }\n const packageListKeys = ['description', 'matchPackageNames'];\n if (presetKeys.every((key) => packageListKeys.includes(key))) {\n delete presetConfig.description;\n }\n const { migratedConfig } = migration.migrateConfig(presetConfig);\n return massage.massageConfig(migratedConfig);\n}\n\nexport interface ResolveConfigPresetsResult {\n config: AllConfig;\n /** when resolving the given configuration, which internal/shared presets were discovered */\n visitedPresets: {\n /** which internal/shared presets were merged into the final config */\n merged: string[];\n };\n}\n\nexport async function resolveConfigPresets(\n inputConfig: AllConfig,\n baseConfig?: RenovateConfig,\n _ignorePresets?: string[],\n existingPresets: string[] = [],\n): Promise<ResolveConfigPresetsResult> {\n const allVisitedPresets = {\n merged: new Set<string>(),\n };\n\n let ignorePresets = clone(_ignorePresets);\n if (!ignorePresets || ignorePresets.length === 0) {\n ignorePresets = inputConfig.ignorePresets ?? [];\n }\n logger.trace(\n { config: inputConfig, existingPresets },\n 'resolveConfigPresets',\n );\n let config: AllConfig = {};\n // First, merge all the preset configs from left to right\n if (inputConfig.extends?.length) {\n // Compile templates\n inputConfig.extends = inputConfig.extends.map((tmpl) =>\n template.compile(tmpl, {}),\n );\n for (const preset of inputConfig.extends) {\n if (shouldResolvePreset(preset, existingPresets, ignorePresets)) {\n logger.trace(`Resolving preset \"${preset}\"`);\n const fetchedPreset = await fetchPreset(\n preset,\n baseConfig,\n inputConfig,\n existingPresets,\n );\n const { config: presetConfig, visitedPresets } =\n await resolveConfigPresets(\n fetchedPreset,\n baseConfig ?? inputConfig,\n ignorePresets,\n existingPresets.concat([preset]),\n );\n if (inputConfig?.ignoreDeps?.length === 0) {\n delete presetConfig.description;\n }\n config = mergeChildConfig(config, presetConfig);\n allVisitedPresets.merged.add(preset);\n // then also make sure we've noted any nested presets we've merged\n for (const mergedPreset of visitedPresets.merged) {\n allVisitedPresets.merged.add(mergedPreset);\n }\n }\n }\n }\n logger.trace({ config }, `Post-preset resolve config`);\n // Now assign \"regular\" config on top\n config = mergeChildConfig(config, inputConfig);\n delete config.extends;\n delete config.ignorePresets;\n logger.trace({ config }, `Post-merge resolve config`);\n for (const [key, val] of Object.entries(config) as [\n keyof AllConfig,\n unknown,\n ][]) {\n const ignoredKeys = ['content', 'onboardingConfig'];\n if (isArray(val)) {\n // Resolve nested objects inside arrays\n config[key] = [] as never; // type can't be narrowed\n for (const element of val) {\n if (isObject(element)) {\n const { config: presetConfig, visitedPresets: visited } =\n await resolveConfigPresets(\n element as RenovateConfig,\n baseConfig,\n ignorePresets,\n existingPresets,\n );\n (config[key] as RenovateConfig[]).push(presetConfig);\n\n for (const mergedPreset of visited.merged) {\n allVisitedPresets.merged.add(mergedPreset);\n }\n } else {\n (config[key] as unknown[]).push(element);\n }\n }\n } else if (isObject(val) && !ignoredKeys.includes(key)) {\n // Resolve nested objects\n logger.trace(`Resolving object \"${key}\"`);\n const { config: presetConfig, visitedPresets: visited } =\n await resolveConfigPresets(\n val as RenovateConfig,\n baseConfig,\n ignorePresets,\n existingPresets,\n );\n config[key] = presetConfig as never; // type can't be narrowed\n\n for (const mergedPreset of visited.merged) {\n allVisitedPresets.merged.add(mergedPreset);\n }\n }\n }\n logger.trace({ config: inputConfig }, 'Input config');\n logger.trace(\n { config, visitedPresets: allVisitedPresets },\n 'Resolved config',\n );\n\n return {\n config,\n visitedPresets: {\n merged: Array.from(allVisitedPresets.merged),\n },\n };\n}\n\nasync function fetchPreset(\n preset: string,\n baseConfig: RenovateConfig | undefined,\n inputConfig: AllConfig,\n existingPresets: string[],\n): Promise<AllConfig> {\n try {\n return await getPreset(preset, baseConfig ?? inputConfig);\n } catch (err) {\n logger.debug({ preset, err }, 'Preset fetch error');\n if (err instanceof ExternalHostError) {\n throw err;\n }\n if (err.message === PLATFORM_RATE_LIMIT_EXCEEDED) {\n throw err;\n }\n const error = new Error(CONFIG_VALIDATION);\n if (err.message === PRESET_DEP_NOT_FOUND) {\n error.validationError = `Cannot find preset's package (${preset})`;\n } else if (err.message === PRESET_RENOVATE_CONFIG_NOT_FOUND) {\n error.validationError = `Preset package is missing a renovate-config entry (${preset})`;\n } else if (err.message === PRESET_NOT_FOUND) {\n error.validationError = `Preset name not found within published preset config (${preset})`;\n } else if (err.message === PRESET_INVALID) {\n error.validationError = `Preset is invalid (${preset})`;\n } else if (err.message === PRESET_PROHIBITED_SUBPRESET) {\n error.validationError = `Sub-presets cannot be combined with a custom path (${preset})`;\n } else if (err.message === PRESET_INVALID_JSON) {\n error.validationError = `Preset is invalid JSON (${preset})`;\n } else {\n error.validationError = `Preset caused unexpected error (${preset})`;\n }\n if (existingPresets.length) {\n error.validationError +=\n '. Note: this is a *nested* preset so please contact the preset author if you are unable to fix it yourself.';\n }\n logger.info(\n { validationError: error.validationError },\n 'Throwing preset error',\n );\n throw error;\n }\n}\n\nfunction shouldResolvePreset(\n preset: string,\n existingPresets: string[],\n ignorePresets: string[],\n): boolean {\n if (existingPresets.includes(preset)) {\n logger.debug(\n `Already seen preset ${preset} in [${existingPresets.join(', ')}]`,\n );\n return false;\n }\n if (ignorePresets.includes(preset)) {\n logger.debug(\n `Ignoring preset ${preset} in [${existingPresets.join(', ')}]`,\n );\n return false;\n }\n return true;\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __exportAll } from "../../../_virtual/_rolldown/runtime.js";
|
|
2
1
|
import { presets } from "./merge-confidence.preset.js";
|
|
3
2
|
import { presets as presets$1 } from "./abandonments.preset.js";
|
|
4
3
|
import { presets as presets$2 } from "./config.preset.js";
|
|
@@ -17,12 +16,6 @@ import { presets as presets$14 } from "./security.preset.js";
|
|
|
17
16
|
import { presets as presets$15 } from "./workarounds.preset.js";
|
|
18
17
|
|
|
19
18
|
//#region lib/config/presets/internal/index.ts
|
|
20
|
-
var internal_exports = /* @__PURE__ */ __exportAll({
|
|
21
|
-
getPreset: () => getPreset,
|
|
22
|
-
groups: () => groups,
|
|
23
|
-
internalPresetNames: () => internalPresetNames,
|
|
24
|
-
isInternal: () => isInternal
|
|
25
|
-
});
|
|
26
19
|
const groups = {
|
|
27
20
|
abandonments: presets$1,
|
|
28
21
|
config: presets$2,
|
|
@@ -56,13 +49,7 @@ function computeInternalPresets() {
|
|
|
56
49
|
return internalPresets;
|
|
57
50
|
}
|
|
58
51
|
const internalPresetNames = new Set(computeInternalPresets());
|
|
59
|
-
function isInternal(preset) {
|
|
60
|
-
if (internalPresetNames.has(preset)) return true;
|
|
61
|
-
const withoutParameterParts = preset.split("(");
|
|
62
|
-
if (withoutParameterParts?.length && internalPresetNames.has(withoutParameterParts[0])) return true;
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
52
|
|
|
66
53
|
//#endregion
|
|
67
|
-
export {
|
|
54
|
+
export { getPreset };
|
|
68
55
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["configAbandonments.presets","configPreset.presets","customManagersPreset.presets","defaultPreset.presets","dockerPreset.presets","globalPreset.presets","groupPreset.presets","helpersPreset.presets","mergeConfidence.presets","monorepoPreset.presets","packagesPreset.presets","previewPreset.presets","replacements.presets","schedulePreset.presets","securityPreset.presets","workaroundsPreset.presets"],"sources":["../../../../lib/config/presets/internal/index.ts"],"sourcesContent":["import type { Preset, PresetConfig } from '../types.ts';\nimport * as configAbandonments from './abandonments.preset.ts';\nimport * as configPreset from './config.preset.ts';\nimport * as customManagersPreset from './custom-managers.preset.ts';\nimport * as defaultPreset from './default.preset.ts';\nimport * as dockerPreset from './docker.preset.ts';\nimport * as globalPreset from './global.preset.ts';\nimport * as groupPreset from './group.preset.ts';\nimport * as helpersPreset from './helpers.preset.ts';\nimport * as mergeConfidence from './merge-confidence.preset.ts';\nimport * as monorepoPreset from './monorepos.preset.ts';\nimport * as packagesPreset from './packages.preset.ts';\nimport * as previewPreset from './preview.preset.ts';\nimport * as replacements from './replacements.preset.ts';\nimport * as schedulePreset from './schedule.preset.ts';\nimport * as securityPreset from './security.preset.ts';\nimport * as workaroundsPreset from './workarounds.preset.ts';\n\n/* eslint sort-keys: [\"error\", \"asc\", {caseSensitive: false, natural: true}] */\n\nexport const groups: Record<string, Record<string, Preset>> = {\n abandonments: configAbandonments.presets,\n config: configPreset.presets,\n customManagers: customManagersPreset.presets,\n default: defaultPreset.presets,\n docker: dockerPreset.presets,\n global: globalPreset.presets,\n group: groupPreset.presets,\n helpers: helpersPreset.presets,\n mergeConfidence: mergeConfidence.presets,\n monorepo: monorepoPreset.presets,\n packages: packagesPreset.presets,\n preview: previewPreset.presets,\n replacements: replacements.presets,\n schedule: schedulePreset.presets,\n security: securityPreset.presets,\n workarounds: workaroundsPreset.presets,\n};\n\nexport function getPreset({\n repo,\n presetName,\n}: PresetConfig): Preset | undefined {\n return groups[repo] && presetName ? groups[repo][presetName] : undefined;\n}\n\nfunction computeInternalPresets(): string[] {\n const internalPresets: string[] = [];\n\n for (const k in groups) {\n const v = groups[k];\n for (const kk in v) {\n if (k === 'default') {\n internalPresets.push(`:${kk}`);\n internalPresets.push(`default:${kk}`);\n } else {\n internalPresets.push(`${k}:${kk}`);\n }\n }\n }\n\n return internalPresets;\n}\n\nexport const internalPresetNames = new Set(computeInternalPresets());\n\nexport function isInternal(preset: string): boolean {\n if (internalPresetNames.has(preset)) {\n return true;\n }\n\n // a parameterised preset is one that that is parameterised will receive the argument `(...)`.\n // As we can't look up on the preset's values itself (as it could be in any property), we can look at the preset name itself, and see if it includes the start of an opening parenthesis\n const withoutParameterParts = preset.split('(');\n if (\n withoutParameterParts?.length &&\n internalPresetNames.has(withoutParameterParts[0])\n ) {\n return true;\n }\n\n return false;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["configAbandonments.presets","configPreset.presets","customManagersPreset.presets","defaultPreset.presets","dockerPreset.presets","globalPreset.presets","groupPreset.presets","helpersPreset.presets","mergeConfidence.presets","monorepoPreset.presets","packagesPreset.presets","previewPreset.presets","replacements.presets","schedulePreset.presets","securityPreset.presets","workaroundsPreset.presets"],"sources":["../../../../lib/config/presets/internal/index.ts"],"sourcesContent":["import type { Preset, PresetConfig } from '../types.ts';\nimport * as configAbandonments from './abandonments.preset.ts';\nimport * as configPreset from './config.preset.ts';\nimport * as customManagersPreset from './custom-managers.preset.ts';\nimport * as defaultPreset from './default.preset.ts';\nimport * as dockerPreset from './docker.preset.ts';\nimport * as globalPreset from './global.preset.ts';\nimport * as groupPreset from './group.preset.ts';\nimport * as helpersPreset from './helpers.preset.ts';\nimport * as mergeConfidence from './merge-confidence.preset.ts';\nimport * as monorepoPreset from './monorepos.preset.ts';\nimport * as packagesPreset from './packages.preset.ts';\nimport * as previewPreset from './preview.preset.ts';\nimport * as replacements from './replacements.preset.ts';\nimport * as schedulePreset from './schedule.preset.ts';\nimport * as securityPreset from './security.preset.ts';\nimport * as workaroundsPreset from './workarounds.preset.ts';\n\n/* eslint sort-keys: [\"error\", \"asc\", {caseSensitive: false, natural: true}] */\n\nexport const groups: Record<string, Record<string, Preset>> = {\n abandonments: configAbandonments.presets,\n config: configPreset.presets,\n customManagers: customManagersPreset.presets,\n default: defaultPreset.presets,\n docker: dockerPreset.presets,\n global: globalPreset.presets,\n group: groupPreset.presets,\n helpers: helpersPreset.presets,\n mergeConfidence: mergeConfidence.presets,\n monorepo: monorepoPreset.presets,\n packages: packagesPreset.presets,\n preview: previewPreset.presets,\n replacements: replacements.presets,\n schedule: schedulePreset.presets,\n security: securityPreset.presets,\n workarounds: workaroundsPreset.presets,\n};\n\nexport function getPreset({\n repo,\n presetName,\n}: PresetConfig): Preset | undefined {\n return groups[repo] && presetName ? groups[repo][presetName] : undefined;\n}\n\nfunction computeInternalPresets(): string[] {\n const internalPresets: string[] = [];\n\n for (const k in groups) {\n const v = groups[k];\n for (const kk in v) {\n if (k === 'default') {\n internalPresets.push(`:${kk}`);\n internalPresets.push(`default:${kk}`);\n } else {\n internalPresets.push(`${k}:${kk}`);\n }\n }\n }\n\n return internalPresets;\n}\n\nexport const internalPresetNames = new Set(computeInternalPresets());\n\nexport function isInternal(preset: string): boolean {\n if (internalPresetNames.has(preset)) {\n return true;\n }\n\n // a parameterised preset is one that that is parameterised will receive the argument `(...)`.\n // As we can't look up on the preset's values itself (as it could be in any property), we can look at the preset name itself, and see if it includes the start of an opening parenthesis\n const withoutParameterParts = preset.split('(');\n if (\n withoutParameterParts?.length &&\n internalPresetNames.has(withoutParameterParts[0])\n ) {\n return true;\n }\n\n return false;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAoBA,MAAa,SAAiD;CAC5D,cAAcA;CACd,QAAQC;CACR,gBAAgBC;CAChB,SAASC;CACT,QAAQC;CACR,QAAQC;CACR,OAAOC;CACP,SAASC;CACT,iBAAiBC;CACjB,UAAUC;CACV,UAAUC;CACV,SAASC;CACT,cAAcC;CACd,UAAUC;CACV,UAAUC;CACV,aAAaC;CACd;AAED,SAAgB,UAAU,EACxB,MACA,cACmC;AACnC,QAAO,OAAO,SAAS,aAAa,OAAO,MAAM,cAAc;;AAGjE,SAAS,yBAAmC;CAC1C,MAAM,kBAA4B,EAAE;AAEpC,MAAK,MAAM,KAAK,QAAQ;EACtB,MAAM,IAAI,OAAO;AACjB,OAAK,MAAM,MAAM,EACf,KAAI,MAAM,WAAW;AACnB,mBAAgB,KAAK,IAAI,KAAK;AAC9B,mBAAgB,KAAK,WAAW,KAAK;QAErC,iBAAgB,KAAK,GAAG,EAAE,GAAG,KAAK;;AAKxC,QAAO;;AAGT,MAAa,sBAAsB,IAAI,IAAI,wBAAwB,CAAC"}
|
|
@@ -46,7 +46,7 @@ hashMap.set("gitlabci-include", "354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22
|
|
|
46
46
|
hashMap.set("glasskube", "253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70");
|
|
47
47
|
hashMap.set("gleam", "e43a4427261082876bf6b648da34f76349055bee8ad09ab020ef9a5085d7b4e5");
|
|
48
48
|
hashMap.set("gomod", "4fe8407973497b89dd123f1c1ab263e9000ce3e5958051201ea57df252f102ea");
|
|
49
|
-
hashMap.set("gradle", "
|
|
49
|
+
hashMap.set("gradle", "52345a3f8fe72bb9444d5611e8964a862fce89d515a7f92b40ea1cdf208dc880");
|
|
50
50
|
hashMap.set("gradle-wrapper", "ab73fff877ab01fd749ca980b1900f5965352cb59ba2efd216be049b7f6cb839");
|
|
51
51
|
hashMap.set("haskell-cabal", "d796ec6859e63ab4f1b7030c4016071202c3a44c7c11d4a9131d7e2ba19b396d");
|
|
52
52
|
hashMap.set("helm-requirements", "4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','1fbc76f78daa14a8c9ab1142e9d1e05c746c0419a9f1455e4279f476590d0c04');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','1f6fcf620e9c6cd35991380cb6eafb94ec60cd77cbd13335ebe3a1d9727416c9');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','0966c335bd865d689ef5d54b6a4fbc1a8b0883403f3284a1b85f21cbdee0e8b2');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','3240f148b71c7567f784df3adc6937afbd69d7c7f8a40553bb64f5c767f26907');\nhashMap.set('bazelisk','c4c8561ff5857a14db68d70867dcc3cf63605380966b1132c295336e5cef5604');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','09eb044219d74331fea135f50121b7d4d146333eb97e4ccbfa9ddf0eb4012963');\nhashMap.set('bitrise','afdb46fe37fc0307943089e18b6724065394805e628b4b6c4430a6068c494030');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','c7c917ad579dbf031294302bc05bfd5e1053e0e3208c50d9cc425fb0d7785310');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','b04522e682849d52d0389e1bae31d784b89e7aac1788bf76575bf41fc16d1ec0');\nhashMap.set('cake','288c3c36a50371b26957fa71992cc335228d53563c75597b36919ac7286e96eb');\nhashMap.set('cargo','d4c1ee00e1cb9de15fabd129329ce9d8ced0918eeee98c5387e5bcd1c6c67796');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','135937d4720718304adb0ba998516f8ce38c3220ccd18b00b8c70c62b45df4da');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','04ad0bd9744b4a369444ac1a2c417bbc9b941d029d921e0bd8fbe1dcd0e655ad');\nhashMap.set('composer','0e9d4516e440e5bbf22e141d5e2353cdb1ae59c3be2f26abff9e5d2235779027');\nhashMap.set('conan','16b128910a5c855128f5e63f9540fa0c9c6c1a790ec651703268224264cc2234');\nhashMap.set('copier','c2243ee99dee6c667ea087a8d97ce4ff56413768f6b26d4b7699af3bb95df6fc');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','c853d5f943fe7bce7578063b25f8bb1597252726395fedeffc029a78f6321ed7');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','fe2b132bd17f9c0a46ea5877bdaa6671c6452391219c9441e367d44deabd7a9a');\nhashMap.set('flux','bffacf477a9f1a24c7d1964cefcfcf67c34337b6966a52024396cc273e27dc17');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','a286e097a5fcc6c946e792b812871147b39ad93f9ad041b5b3216b100f972e95');\nhashMap.set('github-actions','67d6a125f4b7711a3f9a853ffd09f48fe2db9e650b3430b5501ca304f46c10b8');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','e43a4427261082876bf6b648da34f76349055bee8ad09ab020ef9a5085d7b4e5');\nhashMap.set('gomod','4fe8407973497b89dd123f1c1ab263e9000ce3e5958051201ea57df252f102ea');\nhashMap.set('gradle','89a5f64d6eac944e3b4de83d7b1c5d0d1b7985998fd7c3b5d0a8eabbfd2b80b1');\nhashMap.set('gradle-wrapper','ab73fff877ab01fd749ca980b1900f5965352cb59ba2efd216be049b7f6cb839');\nhashMap.set('haskell-cabal','d796ec6859e63ab4f1b7030c4016071202c3a44c7c11d4a9131d7e2ba19b396d');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','2baa991e43f8c38e85051d12749e17c333be488b1b3af7ccb8ac3e97e134272c');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','d91b78dd3648e3acda92ba61c6b867f295176862588957635853cb4274d949a7');\nhashMap.set('hermit','0322c7489c79e76c85ebd802b11f0f55332c40fdfc82eea9ca8b300fef61dc52');\nhashMap.set('homebrew','3cd972c03dc6333a12fd26413150ffe18c0305aa61a16b490e3306fcec9f0000');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','0c15736494cd1e598985f0d49fc39e3cecc7ebeefa2101ccfab98605f92860e2');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','87d87b2c410facdd0400691e87080a3e1ffe83158f51f52cd784442713122f30');\nhashMap.set('kustomize','1e44d6ef8622252dac6d9649fb04badd12d4827eb2a55f74792aa9de2b915775');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','6faa1a3a70542bc7e84683c31b2fb86468fdf82a25c264cf2f7fc45dbc98b1d8');\nhashMap.set('maven-wrapper','ff10b7b3c33deda4e51a0904aed299522c9ab4d9deb8696faac37672419ba08c');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e');\nhashMap.set('mise','2af97573f0705892e3728ea131499d70d0353ed8a82db4cba8f66c1d7515b3fb');\nhashMap.set('mix','7c215ea50304c1269aa324f642ab9cf9a44174497cf451d8060ec09e2446b2a5');\nhashMap.set('nix','9c523d1a3e3e313aa8f278942be6556f3134d2fc979edf210f5722543e558245');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','7d874defce04a6ed616413dff24e5dac22f8b7c7bde7e1e4a8d6290fadcb6c74');\nhashMap.set('nuget','79634f60aeb99c76c76111e394ab1bc92298401b65ee13fbc9a1c91d0102cdd4');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','4c39cffc02e67b96d8c259f1384ea055f2cc1680f1611c1ae239bb5bb84830c7');\nhashMap.set('pep723','105cdc1674da67d48174457bea670c95d8a023e4263d1efc002f02c7f232b5eb');\nhashMap.set('pip-compile','ba65a1188370e4031c1554f4df2b32c513afe4da2f8c151ec008b2de1da3161d');\nhashMap.set('pip_requirements','e3cbe0e891deeeee05bb2f76020dc0c9f24ff4d964ba662267dd2080adfaa511');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','a63361766d23f3688cc50903ca335854f72a951c182b39261c5ec7ea3506d55f');\nhashMap.set('pixi','0223374aadaeaff1532b77663e0c6d88a54902d4f6740ab0c6c57868d661f25c');\nhashMap.set('poetry','c7e9443739418742c5d8fc80cb0905537d0a804133bf792da21a7e6c12edc336');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('pub','01ac02ee8d07ede5fe93045c04176a2dcc402e28378d4b696cb069eb3dad28c4');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config-presets','a394fe55f8b6ba356f29f76efd9f0d34b56baceb111e6d92f95b29b5ca50ac67');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('sbt','61f9323c91c45227da71d43120fa1eddc41685502be017118975f77b44fb1b8e');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','167a5cc79098803be3b815a28cc40ef3361c455751e1d6a7a99ba91bfce26709');\nhashMap.set('swift','9dd5ea9db9a7719e857cb6c07d8052e7cadaf42bcdcc422b8c567b207bc7e8e4');\nhashMap.set('tekton','4e35c75bba4abc9c3cf49c55da6c19db4f4e9181d1fd9583288ab55ef7c944fd');\nhashMap.set('terraform','9189cbd56cdceca57afbfb1480a28a31d78876db90e89c3bfb321701703afb52');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','b8474c65383a702602eee432cc1434f9a49a1ef886d1213de92d7a84fb98b9cd');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','4a975f0cc1aa22cd258aa835de3dc98d7a5c0d1cee0a1092324338968e08a827');\nhashMap.set('travis','bb482a0195cd009ec3896a6227bb95617f5c84bedb518c7d971e50c62235d9ca');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','379c146258e12a8cd64a6f580b4ff8a22f0fff318fe906a28a81f338b7db0317');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','7b643b49e498465cf91b25b8b840bb1fec8c8a3a59bfa8f97a39c976675325a0');"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','1fbc76f78daa14a8c9ab1142e9d1e05c746c0419a9f1455e4279f476590d0c04');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','1f6fcf620e9c6cd35991380cb6eafb94ec60cd77cbd13335ebe3a1d9727416c9');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','0966c335bd865d689ef5d54b6a4fbc1a8b0883403f3284a1b85f21cbdee0e8b2');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','3240f148b71c7567f784df3adc6937afbd69d7c7f8a40553bb64f5c767f26907');\nhashMap.set('bazelisk','c4c8561ff5857a14db68d70867dcc3cf63605380966b1132c295336e5cef5604');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','09eb044219d74331fea135f50121b7d4d146333eb97e4ccbfa9ddf0eb4012963');\nhashMap.set('bitrise','afdb46fe37fc0307943089e18b6724065394805e628b4b6c4430a6068c494030');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','c7c917ad579dbf031294302bc05bfd5e1053e0e3208c50d9cc425fb0d7785310');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','b04522e682849d52d0389e1bae31d784b89e7aac1788bf76575bf41fc16d1ec0');\nhashMap.set('cake','288c3c36a50371b26957fa71992cc335228d53563c75597b36919ac7286e96eb');\nhashMap.set('cargo','d4c1ee00e1cb9de15fabd129329ce9d8ced0918eeee98c5387e5bcd1c6c67796');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','135937d4720718304adb0ba998516f8ce38c3220ccd18b00b8c70c62b45df4da');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','04ad0bd9744b4a369444ac1a2c417bbc9b941d029d921e0bd8fbe1dcd0e655ad');\nhashMap.set('composer','0e9d4516e440e5bbf22e141d5e2353cdb1ae59c3be2f26abff9e5d2235779027');\nhashMap.set('conan','16b128910a5c855128f5e63f9540fa0c9c6c1a790ec651703268224264cc2234');\nhashMap.set('copier','c2243ee99dee6c667ea087a8d97ce4ff56413768f6b26d4b7699af3bb95df6fc');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','c853d5f943fe7bce7578063b25f8bb1597252726395fedeffc029a78f6321ed7');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','fe2b132bd17f9c0a46ea5877bdaa6671c6452391219c9441e367d44deabd7a9a');\nhashMap.set('flux','bffacf477a9f1a24c7d1964cefcfcf67c34337b6966a52024396cc273e27dc17');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','a286e097a5fcc6c946e792b812871147b39ad93f9ad041b5b3216b100f972e95');\nhashMap.set('github-actions','67d6a125f4b7711a3f9a853ffd09f48fe2db9e650b3430b5501ca304f46c10b8');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','e43a4427261082876bf6b648da34f76349055bee8ad09ab020ef9a5085d7b4e5');\nhashMap.set('gomod','4fe8407973497b89dd123f1c1ab263e9000ce3e5958051201ea57df252f102ea');\nhashMap.set('gradle','52345a3f8fe72bb9444d5611e8964a862fce89d515a7f92b40ea1cdf208dc880');\nhashMap.set('gradle-wrapper','ab73fff877ab01fd749ca980b1900f5965352cb59ba2efd216be049b7f6cb839');\nhashMap.set('haskell-cabal','d796ec6859e63ab4f1b7030c4016071202c3a44c7c11d4a9131d7e2ba19b396d');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','2baa991e43f8c38e85051d12749e17c333be488b1b3af7ccb8ac3e97e134272c');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','d91b78dd3648e3acda92ba61c6b867f295176862588957635853cb4274d949a7');\nhashMap.set('hermit','0322c7489c79e76c85ebd802b11f0f55332c40fdfc82eea9ca8b300fef61dc52');\nhashMap.set('homebrew','3cd972c03dc6333a12fd26413150ffe18c0305aa61a16b490e3306fcec9f0000');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','0c15736494cd1e598985f0d49fc39e3cecc7ebeefa2101ccfab98605f92860e2');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','87d87b2c410facdd0400691e87080a3e1ffe83158f51f52cd784442713122f30');\nhashMap.set('kustomize','1e44d6ef8622252dac6d9649fb04badd12d4827eb2a55f74792aa9de2b915775');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','6faa1a3a70542bc7e84683c31b2fb86468fdf82a25c264cf2f7fc45dbc98b1d8');\nhashMap.set('maven-wrapper','ff10b7b3c33deda4e51a0904aed299522c9ab4d9deb8696faac37672419ba08c');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e');\nhashMap.set('mise','2af97573f0705892e3728ea131499d70d0353ed8a82db4cba8f66c1d7515b3fb');\nhashMap.set('mix','7c215ea50304c1269aa324f642ab9cf9a44174497cf451d8060ec09e2446b2a5');\nhashMap.set('nix','9c523d1a3e3e313aa8f278942be6556f3134d2fc979edf210f5722543e558245');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','7d874defce04a6ed616413dff24e5dac22f8b7c7bde7e1e4a8d6290fadcb6c74');\nhashMap.set('nuget','79634f60aeb99c76c76111e394ab1bc92298401b65ee13fbc9a1c91d0102cdd4');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','4c39cffc02e67b96d8c259f1384ea055f2cc1680f1611c1ae239bb5bb84830c7');\nhashMap.set('pep723','105cdc1674da67d48174457bea670c95d8a023e4263d1efc002f02c7f232b5eb');\nhashMap.set('pip-compile','ba65a1188370e4031c1554f4df2b32c513afe4da2f8c151ec008b2de1da3161d');\nhashMap.set('pip_requirements','e3cbe0e891deeeee05bb2f76020dc0c9f24ff4d964ba662267dd2080adfaa511');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','a63361766d23f3688cc50903ca335854f72a951c182b39261c5ec7ea3506d55f');\nhashMap.set('pixi','0223374aadaeaff1532b77663e0c6d88a54902d4f6740ab0c6c57868d661f25c');\nhashMap.set('poetry','c7e9443739418742c5d8fc80cb0905537d0a804133bf792da21a7e6c12edc336');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('pub','01ac02ee8d07ede5fe93045c04176a2dcc402e28378d4b696cb069eb3dad28c4');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config-presets','a394fe55f8b6ba356f29f76efd9f0d34b56baceb111e6d92f95b29b5ca50ac67');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('sbt','61f9323c91c45227da71d43120fa1eddc41685502be017118975f77b44fb1b8e');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','167a5cc79098803be3b815a28cc40ef3361c455751e1d6a7a99ba91bfce26709');\nhashMap.set('swift','9dd5ea9db9a7719e857cb6c07d8052e7cadaf42bcdcc422b8c567b207bc7e8e4');\nhashMap.set('tekton','4e35c75bba4abc9c3cf49c55da6c19db4f4e9181d1fd9583288ab55ef7c944fd');\nhashMap.set('terraform','9189cbd56cdceca57afbfb1480a28a31d78876db90e89c3bfb321701703afb52');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','b8474c65383a702602eee432cc1434f9a49a1ef886d1213de92d7a84fb98b9cd');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','4a975f0cc1aa22cd258aa835de3dc98d7a5c0d1cee0a1092324338968e08a827');\nhashMap.set('travis','bb482a0195cd009ec3896a6227bb95617f5c84bedb518c7d971e50c62235d9ca');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','379c146258e12a8cd64a6f580b4ff8a22f0fff318fe906a28a81f338b7db0317');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','7b643b49e498465cf91b25b8b840bb1fec8c8a3a59bfa8f97a39c976675325a0');"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { regEx } from "../../../util/regex.js";
|
|
|
3
3
|
import { GlobalConfig } from "../../../config/global.js";
|
|
4
4
|
import { logger } from "../../../logger/index.js";
|
|
5
5
|
import { findUpLocal, readLocalFile, writeLocalFile } from "../../../util/fs/index.js";
|
|
6
|
-
import { exec } from "../../../util/exec/index.js";
|
|
6
|
+
import { exec, getToolSettingsOptions, gradleJvmArg } from "../../../util/exec/index.js";
|
|
7
7
|
import { getFiles, getRepoStatus } from "../../../util/git/index.js";
|
|
8
8
|
import { scm } from "../../platform/scm.js";
|
|
9
9
|
import { isGradleBuildFile } from "./utils.js";
|
|
@@ -94,7 +94,7 @@ async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileCon
|
|
|
94
94
|
try {
|
|
95
95
|
const oldLockFileContentMap = await getFiles(lockFiles);
|
|
96
96
|
await prepareGradleCommand(gradlewFile);
|
|
97
|
-
const baseCmd = `${gradlewName} --console=plain --dependency-verification lenient -q`;
|
|
97
|
+
const baseCmd = `${gradlewName}${gradleJvmArg(getToolSettingsOptions(config.toolSettings))} --console=plain --dependency-verification lenient -q`;
|
|
98
98
|
const execOptions = {
|
|
99
99
|
cwdFile: gradlewFile,
|
|
100
100
|
docker: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.js","names":[],"sources":["../../../../lib/modules/manager/gradle/artifacts.ts"],"sourcesContent":["import { isNonEmptyStringAndNotWhitespace } from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { exec } from '../../../util/exec/index.ts';\nimport type { ExecOptions } from '../../../util/exec/types.ts';\nimport {\n findUpLocal,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs/index.ts';\nimport { getFiles, getRepoStatus } from '../../../util/git/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { scm } from '../../platform/scm.ts';\nimport {\n extraEnv,\n extractGradleVersion,\n getJavaConstraint,\n gradleWrapperFileName,\n prepareGradleCommand,\n} from '../gradle-wrapper/utils.ts';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types.ts';\nimport {\n isGcvLockFile,\n isGcvPropsFile,\n} from './extract/consistent-versions-plugin.ts';\nimport { isGradleBuildFile } from './utils.ts';\n\nexport function isGradleExecutionAllowed(command: string): boolean {\n const allowlist = GlobalConfig.get('allowedUnsafeExecutions', []);\n\n if (!allowlist.includes('gradleWrapper')) {\n logger.once.warn(\n `Gradle wrapper command, \\`${command}\\`, was requested to run, but \\`gradleWrapper\\` is not permitted in the allowedUnsafeExecutions`,\n );\n return false;\n }\n\n return true;\n}\n\n// .lockfile is gradle default lockfile, /versions.lock is gradle-consistent-versions plugin lockfile\nfunction isLockFile(fileName: string): boolean {\n return fileName.endsWith('.lockfile') || isGcvLockFile(fileName);\n}\n\nasync function getUpdatedLockfiles(\n oldLockFileContentMap: Record<string, string | null>,\n): Promise<UpdateArtifactsResult[]> {\n const res: UpdateArtifactsResult[] = [];\n\n const status = await getRepoStatus();\n\n for (const modifiedFile of status.modified) {\n if (\n isLockFile(modifiedFile) ||\n modifiedFile.endsWith('gradle/verification-metadata.xml')\n ) {\n const newContent = await readLocalFile(modifiedFile, 'utf8');\n if (oldLockFileContentMap[modifiedFile] !== newContent) {\n res.push({\n file: {\n type: 'addition',\n path: modifiedFile,\n contents: newContent,\n },\n });\n }\n }\n }\n\n return res;\n}\n\nasync function getSubProjectList(\n cmd: string,\n execOptions: ExecOptions,\n): Promise<string[]> {\n const subprojects = ['']; // = root project\n const subprojectsRegex = regEx(/^[ \\t]*subprojects: \\[(?<subprojects>.+)\\]/m);\n\n const gradleProperties = await exec(`${cmd} properties`, execOptions);\n const subprojectsMatch = gradleProperties.stdout.match(subprojectsRegex);\n if (subprojectsMatch?.groups?.subprojects) {\n const projectRegex = regEx(/project '(?<name>.+?)'/g);\n const matches = subprojectsMatch.groups.subprojects.matchAll(projectRegex);\n for (const match of matches) {\n if (match?.groups?.name) {\n subprojects.push(match.groups.name);\n }\n }\n }\n\n return subprojects;\n}\n\nasync function getGradleVersion(gradlewFile: string): Promise<string | null> {\n const propertiesFile = upath.join(\n upath.dirname(gradlewFile),\n 'gradle/wrapper/gradle-wrapper.properties',\n );\n const properties = await readLocalFile(propertiesFile, 'utf8');\n const extractResult = extractGradleVersion(properties ?? '');\n\n return extractResult ? extractResult.version : null;\n}\n\nasync function buildUpdateVerificationMetadataCmd(\n verificationMetadataFile: string | undefined,\n baseCmd: string,\n): Promise<string | null> {\n if (!verificationMetadataFile) {\n return null;\n }\n\n const verificationMetadata = await readLocalFile(verificationMetadataFile);\n const verifiesChecksums = verificationMetadata?.includes(\n '<verify-metadata>true</verify-metadata>',\n );\n const verifiesSignatures = verificationMetadata?.includes(\n '<verify-signatures>true</verify-signatures>',\n );\n\n const hashTypes = ['sha256', 'sha512'].filter((type) =>\n verificationMetadata?.includes(`<${type} `),\n );\n\n if (verifiesChecksums || hashTypes.length) {\n logger.debug(\n 'Dependency metadata verification enabled or checksums present - generating checksums',\n );\n }\n\n if ((verifiesChecksums || verifiesSignatures) && !hashTypes.length) {\n // fallback algorithm for pgp and in case a weak algorithm (md5, sha1) is used for checksums\n hashTypes.push('sha256');\n }\n\n if (verifiesSignatures) {\n logger.debug(\n 'Dependency signature verification enabled - generating PGP signatures',\n );\n hashTypes.push('pgp');\n }\n\n if (!hashTypes.length) {\n return null;\n }\n\n return `${baseCmd} --write-verification-metadata ${hashTypes.join(',')} dependencies`;\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`gradle.updateArtifacts(${packageFileName})`);\n\n const fileList = await scm.getFileList();\n const lockFiles = fileList.filter((file) => isLockFile(file));\n const verificationMetadataFile = fileList.find((fileName) =>\n fileName.endsWith('gradle/verification-metadata.xml'),\n );\n if (!lockFiles.length && !verificationMetadataFile) {\n logger.debug(\n 'No Gradle dependency lockfiles or verification metadata found - skipping update',\n );\n return null;\n }\n\n const gradlewName = gradleWrapperFileName();\n const gradlewFile = await findUpLocal(\n gradlewName,\n upath.dirname(packageFileName),\n );\n if (!gradlewFile) {\n logger.debug(\n 'Found Gradle dependency lockfiles but no gradlew - aborting update',\n );\n return null;\n }\n\n if (\n config.isLockFileMaintenance &&\n (!isGradleBuildFile(packageFileName) ||\n upath.dirname(packageFileName) !== upath.dirname(gradlewFile))\n ) {\n logger.trace(\n 'No build.gradle(.kts) file or not in root project - skipping lock file maintenance',\n );\n return null;\n }\n\n if (!isGradleExecutionAllowed(gradlewFile)) {\n logger.trace(\n 'Not allowed to execute gradle due to allowedUnsafeExecutions - aborting update',\n );\n return null;\n }\n\n logger.debug('Updating found Gradle dependency lockfiles');\n\n try {\n const oldLockFileContentMap = await getFiles(lockFiles);\n await prepareGradleCommand(gradlewFile);\n\n const baseCmd = `${gradlewName} --console=plain --dependency-verification lenient -q`;\n const execOptions: ExecOptions = {\n cwdFile: gradlewFile,\n docker: {},\n extraEnv,\n toolConstraints: [\n {\n toolName: 'java',\n constraint:\n config.constraints?.java ??\n (await getJavaConstraint(\n await getGradleVersion(gradlewFile),\n gradlewFile,\n )),\n },\n ],\n };\n\n const cmds = [];\n if (lockFiles.length) {\n const subprojects = await getSubProjectList(baseCmd, execOptions);\n let lockfileCmd = `${baseCmd} ${subprojects\n .map((project) => `${project}:dependencies`)\n .map(quote)\n .join(' ')}`;\n\n if (\n config.isLockFileMaintenance === true ||\n !updatedDeps.length ||\n isGcvPropsFile(packageFileName)\n ) {\n lockfileCmd += ' --write-locks';\n } else {\n const updatedDepNames = updatedDeps\n .map(({ depName, packageName }) => packageName ?? depName)\n .filter(isNonEmptyStringAndNotWhitespace);\n\n lockfileCmd += ` --update-locks ${updatedDepNames\n .map(quote)\n .join(',')}`;\n }\n cmds.push(lockfileCmd);\n }\n\n const updateVerificationMetadataCmd =\n await buildUpdateVerificationMetadataCmd(\n verificationMetadataFile,\n baseCmd,\n );\n if (updateVerificationMetadataCmd) {\n cmds.push(updateVerificationMetadataCmd);\n }\n\n if (!cmds.length) {\n logger.debug('No lockfile or verification metadata update necessary');\n return null;\n }\n\n await writeLocalFile(packageFileName, newPackageFileContent);\n await exec(cmds, { ...execOptions, ignoreStdout: true });\n\n const res = await getUpdatedLockfiles(oldLockFileContentMap);\n logger.debug('Returning updated Gradle dependency lockfiles');\n\n return res.length > 0 ? res : null;\n } catch (err) {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n\n logger.debug({ err }, 'Error while updating Gradle dependency lockfiles');\n return [\n {\n artifactError: {\n lockFile: packageFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"artifacts.js","names":[],"sources":["../../../../lib/modules/manager/gradle/artifacts.ts"],"sourcesContent":["import { isNonEmptyStringAndNotWhitespace } from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport {\n exec,\n getToolSettingsOptions,\n gradleJvmArg,\n} from '../../../util/exec/index.ts';\nimport type { ExecOptions } from '../../../util/exec/types.ts';\nimport {\n findUpLocal,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs/index.ts';\nimport { getFiles, getRepoStatus } from '../../../util/git/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { scm } from '../../platform/scm.ts';\nimport {\n extraEnv,\n extractGradleVersion,\n getJavaConstraint,\n gradleWrapperFileName,\n prepareGradleCommand,\n} from '../gradle-wrapper/utils.ts';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types.ts';\nimport {\n isGcvLockFile,\n isGcvPropsFile,\n} from './extract/consistent-versions-plugin.ts';\nimport { isGradleBuildFile } from './utils.ts';\n\nexport function isGradleExecutionAllowed(command: string): boolean {\n const allowlist = GlobalConfig.get('allowedUnsafeExecutions', []);\n\n if (!allowlist.includes('gradleWrapper')) {\n logger.once.warn(\n `Gradle wrapper command, \\`${command}\\`, was requested to run, but \\`gradleWrapper\\` is not permitted in the allowedUnsafeExecutions`,\n );\n return false;\n }\n\n return true;\n}\n\n// .lockfile is gradle default lockfile, /versions.lock is gradle-consistent-versions plugin lockfile\nfunction isLockFile(fileName: string): boolean {\n return fileName.endsWith('.lockfile') || isGcvLockFile(fileName);\n}\n\nasync function getUpdatedLockfiles(\n oldLockFileContentMap: Record<string, string | null>,\n): Promise<UpdateArtifactsResult[]> {\n const res: UpdateArtifactsResult[] = [];\n\n const status = await getRepoStatus();\n\n for (const modifiedFile of status.modified) {\n if (\n isLockFile(modifiedFile) ||\n modifiedFile.endsWith('gradle/verification-metadata.xml')\n ) {\n const newContent = await readLocalFile(modifiedFile, 'utf8');\n if (oldLockFileContentMap[modifiedFile] !== newContent) {\n res.push({\n file: {\n type: 'addition',\n path: modifiedFile,\n contents: newContent,\n },\n });\n }\n }\n }\n\n return res;\n}\n\nasync function getSubProjectList(\n cmd: string,\n execOptions: ExecOptions,\n): Promise<string[]> {\n const subprojects = ['']; // = root project\n const subprojectsRegex = regEx(/^[ \\t]*subprojects: \\[(?<subprojects>.+)\\]/m);\n\n const gradleProperties = await exec(`${cmd} properties`, execOptions);\n const subprojectsMatch = gradleProperties.stdout.match(subprojectsRegex);\n if (subprojectsMatch?.groups?.subprojects) {\n const projectRegex = regEx(/project '(?<name>.+?)'/g);\n const matches = subprojectsMatch.groups.subprojects.matchAll(projectRegex);\n for (const match of matches) {\n if (match?.groups?.name) {\n subprojects.push(match.groups.name);\n }\n }\n }\n\n return subprojects;\n}\n\nasync function getGradleVersion(gradlewFile: string): Promise<string | null> {\n const propertiesFile = upath.join(\n upath.dirname(gradlewFile),\n 'gradle/wrapper/gradle-wrapper.properties',\n );\n const properties = await readLocalFile(propertiesFile, 'utf8');\n const extractResult = extractGradleVersion(properties ?? '');\n\n return extractResult ? extractResult.version : null;\n}\n\nasync function buildUpdateVerificationMetadataCmd(\n verificationMetadataFile: string | undefined,\n baseCmd: string,\n): Promise<string | null> {\n if (!verificationMetadataFile) {\n return null;\n }\n\n const verificationMetadata = await readLocalFile(verificationMetadataFile);\n const verifiesChecksums = verificationMetadata?.includes(\n '<verify-metadata>true</verify-metadata>',\n );\n const verifiesSignatures = verificationMetadata?.includes(\n '<verify-signatures>true</verify-signatures>',\n );\n\n const hashTypes = ['sha256', 'sha512'].filter((type) =>\n verificationMetadata?.includes(`<${type} `),\n );\n\n if (verifiesChecksums || hashTypes.length) {\n logger.debug(\n 'Dependency metadata verification enabled or checksums present - generating checksums',\n );\n }\n\n if ((verifiesChecksums || verifiesSignatures) && !hashTypes.length) {\n // fallback algorithm for pgp and in case a weak algorithm (md5, sha1) is used for checksums\n hashTypes.push('sha256');\n }\n\n if (verifiesSignatures) {\n logger.debug(\n 'Dependency signature verification enabled - generating PGP signatures',\n );\n hashTypes.push('pgp');\n }\n\n if (!hashTypes.length) {\n return null;\n }\n\n return `${baseCmd} --write-verification-metadata ${hashTypes.join(',')} dependencies`;\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`gradle.updateArtifacts(${packageFileName})`);\n\n const fileList = await scm.getFileList();\n const lockFiles = fileList.filter((file) => isLockFile(file));\n const verificationMetadataFile = fileList.find((fileName) =>\n fileName.endsWith('gradle/verification-metadata.xml'),\n );\n if (!lockFiles.length && !verificationMetadataFile) {\n logger.debug(\n 'No Gradle dependency lockfiles or verification metadata found - skipping update',\n );\n return null;\n }\n\n const gradlewName = gradleWrapperFileName();\n const gradlewFile = await findUpLocal(\n gradlewName,\n upath.dirname(packageFileName),\n );\n if (!gradlewFile) {\n logger.debug(\n 'Found Gradle dependency lockfiles but no gradlew - aborting update',\n );\n return null;\n }\n\n if (\n config.isLockFileMaintenance &&\n (!isGradleBuildFile(packageFileName) ||\n upath.dirname(packageFileName) !== upath.dirname(gradlewFile))\n ) {\n logger.trace(\n 'No build.gradle(.kts) file or not in root project - skipping lock file maintenance',\n );\n return null;\n }\n\n if (!isGradleExecutionAllowed(gradlewFile)) {\n logger.trace(\n 'Not allowed to execute gradle due to allowedUnsafeExecutions - aborting update',\n );\n return null;\n }\n\n logger.debug('Updating found Gradle dependency lockfiles');\n\n try {\n const oldLockFileContentMap = await getFiles(lockFiles);\n await prepareGradleCommand(gradlewFile);\n\n const baseCmd = `${gradlewName}${gradleJvmArg(getToolSettingsOptions(config.toolSettings))} --console=plain --dependency-verification lenient -q`;\n const execOptions: ExecOptions = {\n cwdFile: gradlewFile,\n docker: {},\n extraEnv,\n toolConstraints: [\n {\n toolName: 'java',\n constraint:\n config.constraints?.java ??\n (await getJavaConstraint(\n await getGradleVersion(gradlewFile),\n gradlewFile,\n )),\n },\n ],\n };\n\n const cmds = [];\n if (lockFiles.length) {\n const subprojects = await getSubProjectList(baseCmd, execOptions);\n let lockfileCmd = `${baseCmd} ${subprojects\n .map((project) => `${project}:dependencies`)\n .map(quote)\n .join(' ')}`;\n\n if (\n config.isLockFileMaintenance === true ||\n !updatedDeps.length ||\n isGcvPropsFile(packageFileName)\n ) {\n lockfileCmd += ' --write-locks';\n } else {\n const updatedDepNames = updatedDeps\n .map(({ depName, packageName }) => packageName ?? depName)\n .filter(isNonEmptyStringAndNotWhitespace);\n\n lockfileCmd += ` --update-locks ${updatedDepNames\n .map(quote)\n .join(',')}`;\n }\n cmds.push(lockfileCmd);\n }\n\n const updateVerificationMetadataCmd =\n await buildUpdateVerificationMetadataCmd(\n verificationMetadataFile,\n baseCmd,\n );\n if (updateVerificationMetadataCmd) {\n cmds.push(updateVerificationMetadataCmd);\n }\n\n if (!cmds.length) {\n logger.debug('No lockfile or verification metadata update necessary');\n return null;\n }\n\n await writeLocalFile(packageFileName, newPackageFileContent);\n await exec(cmds, { ...execOptions, ignoreStdout: true });\n\n const res = await getUpdatedLockfiles(oldLockFileContentMap);\n logger.debug('Returning updated Gradle dependency lockfiles');\n\n return res.length > 0 ? res : null;\n } catch (err) {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n\n logger.debug({ err }, 'Error while updating Gradle dependency lockfiles');\n return [\n {\n artifactError: {\n lockFile: packageFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "renovate",
|
|
3
3
|
"description": "Automated dependency updates. Flexible so you don't need to be.",
|
|
4
|
-
"version": "43.
|
|
4
|
+
"version": "43.43.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"renovate": "dist/renovate.js",
|
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
"fs-extra": "11.3.3",
|
|
159
159
|
"git-url-parse": "16.1.0",
|
|
160
160
|
"github-url-from-git": "1.5.0",
|
|
161
|
-
"glob": "13.0.
|
|
161
|
+
"glob": "13.0.6",
|
|
162
162
|
"global-agent": "3.0.0",
|
|
163
163
|
"google-auth-library": "10.5.0",
|
|
164
164
|
"got": "14.6.6",
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
"luxon": "3.7.2",
|
|
176
176
|
"markdown-it": "14.1.1",
|
|
177
177
|
"markdown-table": "3.0.4",
|
|
178
|
-
"minimatch": "10.2.
|
|
178
|
+
"minimatch": "10.2.2",
|
|
179
179
|
"moo": "0.5.2",
|
|
180
180
|
"ms": "2.1.3",
|
|
181
181
|
"neotraverse": "0.6.18",
|
package/renovate-schema.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"title": "JSON schema for Renovate 43.
|
|
2
|
+
"title": "JSON schema for Renovate 43.43.0 config files (https://renovatebot.com/)",
|
|
3
3
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
-
"x-renovate-version": "43.
|
|
4
|
+
"x-renovate-version": "43.43.0",
|
|
5
5
|
"allowComments": true,
|
|
6
6
|
"type": "object",
|
|
7
7
|
"properties": {
|